@tailwindcss/language-server 0.14.25 → 0.14.26
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1754,7 +1754,7 @@ ${u}
|
|
1754
1754
|
${s}}`;for(let H=r.length-1;H>=0;H--)i+=`${o.repeat(H)}
|
1755
1755
|
}`;return i=vS(i,n.tailwindCSS),i}function L4e(e,t){let n=t.__pseudo.join("");return`${t.__scope?`${t.__scope} `:""}.${(0,fre.default)(e)}${n}`}var xne=mr(Fo());var ZS=["aspnetcorerazor","astro","astro-markdown","blade","django-html","edge","ejs","erb","gohtml","GoHTML","gohtmltmpl","haml","handlebars","hbs","html","HTML (Eex)","HTML (EEx)","html-eex","htmldjango","jade","latte","leaf","liquid","markdown","mdx","mustache","njk","nunjucks","phoenix-heex","php","razor","slim","surface","twig"],zS=["css","less","postcss","sass","scss","stylus","sugarss","tailwindcss"],JS=["javascript","javascriptreact","reason","rescript","typescript","typescriptreact","glimmer-js","glimmer-ts"],T4e=["vue","svelte"],GPt=[...zS,...ZS,...JS,...T4e],_re=["sass","sugarss","stylus"];function QS(e,t={}){return _re.includes(e)||_re.includes(t[e])}var Tre=mr(WR());function su(e,t){return e.line===t.start.line&&e.character>=t.start.character?!(e.line===t.end.line&&e.character>t.end.character):e.line===t.end.line&&e.character<=t.end.character?!(e.line===t.start.line&&e.character<t.end.character):e.line>t.start.line&&e.line<t.end.line}function nd(e,t){let n=Object.keys(e.editor.userLanguages).filter(i=>JS.includes(e.editor.userLanguages[i]));return[...JS,...n].indexOf(t.languageId)!==-1}function YS(e,t,n){let i=t.getText({start:{line:0,character:0},end:n}),o=Ha(e,t,i);return o?["js","ts","jsx","tsx"].includes(o[o.length-1].type):!1}function VR(e,t,n){let i=t.getText({start:{line:0,character:0},end:n}),o=Ha(e,t,i);return o?["jsx","tsx"].includes(o[o.length-1].type):!1}var _0=mr(tL());var KR=e=>{let t=!1,n=null,i=function(){return t||(n=e.apply(this,arguments),t=!0),n};return i.isLazy=!0,i};var Are=()=>({doubleClassList:{arb:{match:new RegExp("(?<!\\\\)\\["),push:"arbitrary"},lbrace:{match:new RegExp("(?<!\\\\)\\{"),push:"interpBrace"},rbrace:{match:new RegExp("(?<!\\\\)\\}"),pop:1},end:{match:new RegExp('(?<!\\\\)"'),pop:1},classlist:{match:new RegExp("[\\s\\S]"),lineBreaks:!0}},singleClassList:{lbrace:{match:new RegExp("(?<!\\\\)\\{"),push:"interpBrace"},rbrace:{match:new RegExp("(?<!\\\\)\\}"),pop:1},end:{match:new RegExp("(?<!\\\\)'"),pop:1},classlist:{match:new RegExp("[\\s\\S]"),lineBreaks:!0}},tickClassList:{lbrace:{match:new RegExp("(?<=(?<!\\\\)\\$)\\{"),push:"interpBrace"},rbrace:{match:new RegExp("(?<!\\\\)\\}"),pop:1},end:{match:new RegExp("(?<!\\\\)`"),pop:1},classlist:{match:new RegExp("[\\s\\S]"),lineBreaks:!0}},interpBrace:{startSingle:{match:new RegExp("(?<!\\\\)'"),push:"singleClassList"},startDouble:{match:new RegExp('(?<!\\\\)"'),push:"doubleClassList"},startTick:{match:new RegExp("(?<!\\\\)`"),push:"tickClassList"},lbrace:{match:new RegExp("(?<!\\\\)\\{"),push:"interpBrace"},rbrace:{match:new RegExp("(?<!\\\\)\\}"),pop:1},text:{match:new RegExp("[\\s\\S]"),lineBreaks:!0}},interpParen:{startSingle:{match:new RegExp("(?<!\\\\)'"),push:"singleClassList"},startDouble:{match:new RegExp('(?<!\\\\)"'),push:"doubleClassList"},startTick:{match:new RegExp("(?<!\\\\)`"),push:"tickClassList"},lbrace:{match:new RegExp("(?<!\\\\)\\("),push:"interpParen"},rbrace:{match:new RegExp("(?<!\\\\)\\)"),pop:1},text:{match:new RegExp("[\\s\\S]"),lineBreaks:!0}},interpSingle:{startDouble:{match:new RegExp('(?<!\\\\)"'),push:"doubleClassList"},startTick:{match:new RegExp("(?<!\\\\)`"),push:"tickClassList"},single:{match:new RegExp("(?<!\\\\)'"),pop:1},text:{match:new RegExp("[\\s\\S]"),lineBreaks:!0}},interpDouble:{startSingle:{match:new RegExp("(?<!\\\\)'"),push:"singleClassList"},startTick:{match:new RegExp("(?<!\\\\)`"),push:"tickClassList"},double:{match:new RegExp('(?<!\\\\)"'),pop:1},text:{match:new RegExp("[\\s\\S]"),lineBreaks:!0}},arbitrary:{arb:{match:new RegExp("(?<!\\\\)\\]"),pop:1},space:{match:/\s/,pop:1,lineBreaks:!0},arb2:{match:new RegExp("[\\s\\S]"),lineBreaks:!0}}}),Ire={main:{start:{match:'"',push:"doubleClassList"}},doubleClassList:{end:{match:'"',pop:1},classlist:{match:/[\s\S]/,lineBreaks:!0}}},rL=KR(()=>{let e=!0;try{new RegExp("(?<!)")}catch{e=!1}return e?_0.default.states({main:{start1:{match:'"',push:"doubleClassList"},start2:{match:"'",push:"singleClassList"},start3:{match:"{",push:"interpBrace"},start4:{match:"`",push:"tickClassList"},start5:{match:"(",push:"interpParen"}},...Are()}):_0.default.states(Ire)}),nL=KR(()=>{let e=!0;try{new RegExp("(?<!)")}catch{e=!1}return e?_0.default.states({main:{lbrace:{match:"{",push:"interpBrace"},single:{match:"'",push:"interpSingle"},double:{match:'"',push:"interpDouble"}},...Are()}):_0.default.states(Ire)});function Ys(e,t){return{start:{line:(t?.start.line||0)+e.start.line,character:(e.end.line===0&&t?.start.character||0)+e.start.character},end:{line:(t?.start.line||0)+e.end.line,character:(e.end.line===0&&t?.start.character||0)+e.end.character}}}var Sre=mr(tL());function xs(e,t,n){let i=typeof e=="string"?e:e.getText(n);return t==="js"||t==="jsx"?N4e(i):t==="css"?k4e(i):i.replace(/<!--.*?-->/gs,Lre)}function k4e(e){let s=[];for(let u=0;u<e.length;++u){let H=e.charCodeAt(u);if(H===92)u+=1;else if(H===39||H===34)for(let a=u+1;a<e.length;++a){let l=e.charCodeAt(a);if(l===92)a+=1;else if(l===H){u=a;break}else if(l===10){u=a;break}}else if(H===47&&e.charCodeAt(u+1)===42){let a=u;for(let l=u+2;l<e.length;l++){let p=e.charCodeAt(l);if(p===92)l+=1;else if(p===42&&e.charCodeAt(l+1)===47){u=l+1;break}}s.push({start:a,end:u+1,replacement:Lre(e.slice(a,u+1))})}}return VI(e,s)}function Lre(e){return e.replace(/./gs,t=>t===`
|
1756
1756
|
`?`
|
1757
|
-
`:" ")}var iL;function N4e(e){iL||(iL=Sre.default.states({main:{commentLine:/\/\/.*?$/,commentBlock:{match:/\/\*[^]*?\*\//,lineBreaks:!0},stringDouble:/"(?:[^"\\]|\\.)*"/,stringSingle:/'(?:[^'\\]|\\.)*'/,stringBacktick:/`(?:[^`\\]|\\.)*`/,other:{match:/[^]/,lineBreaks:!0}}}));let t="";iL.reset(e);for(let n of iL)n.type==="commentLine"?t+=" ".repeat(n.value.length):n.type==="commentBlock"?t+=n.value.replace(/./g," "):t+=n.value;return t=R4e(t),t}function R4e(e){let g=32,y=9,_=!1,E=!1,A=!1,S=-1,T=-1,I=null;for(let L=0;L<e.length;++L){let x=e.charCodeAt(L);if(_){if(x===10)break;if(E)E=!1;else if(x===47&&!A){_=!1,T=L;break}else x===91?A=!0:x===92?E=!0:x===93&&(A=!1);continue}if(x===39)for(let C=L;C<e.length;++C){let D=e.charCodeAt(C);if(D===92)C+=1;else if(D===39){L=C;break}else if(D===10){L=C;break}}else if(x===34)for(let C=L;C<e.length;++C){let D=e.charCodeAt(C);if(D===92)C+=1;else if(D===34){L=C;break}else if(D===10){L=C;break}}else if(x===96)for(let C=L;C<e.length;++C){let D=e.charCodeAt(C);if(D===92)C+=1;else if(D===96){L=C;break}else if(D===10){L=C;break}}else x===g||x===y||(x===47?(I===44||I===58||I===61||I===59||I===91||I===63||I===40||I===123||I===10)&&(_=!0,S=L):I=x)}return _||S===-1||T===-1?e:e.slice(0,S)+" ".repeat(T-S+1)+e.slice(T+1)}function*sL({text:e,filters:t,cursor:n=null}){for(let i of t){let[o,r]=Array.isArray(i)?i:[i],c=new RegExp(o,"gd"),s=r?new RegExp(r,"gd"):void 0;for(let u of $4e(e,c,s,n))yield u}}function*$4e(e,t,n,i){for(let o of e.matchAll(t)){if(o[1]===void 0){console.warn(`Regex /${t.source}/ must have exactly one capture group`);continue}let r=o.indices[1][0],c=r+o[1].length;if(!(i!==null&&(i<r||i>c))){if(!n){yield{classList:i!==null?o[1].slice(0,i-r):o[1],range:[r,c]};continue}for(let s of o[1].matchAll(n)){if(s[1]===void 0){console.warn(`Regex /${n.source}/ must have exactly one capture group`);continue}let u=r+s.indices[1][0],H=u+s[1].length;i!==null&&(i<u||i>H)||(yield{classList:i!==null?s[1].slice(0,i-u):s[1],range:[u,H]})}}}}function Sa(e,t){let n,i=[];for(;(n=e.exec(t))!==null;)i.push({...n});return i}function vre(e,t){let n=Sa(e,t);return n.length===0?null:n[n.length-1]}function Ku({classList:e,range:t,important:n},i){let o=e.split(/(\s+)/),r=[],c=0;for(let s=0;s<o.length;s++){if(s%2===0&&!i.includes(o[s])){let u=Gn(e,c),H=Gn(e,c+o[s].length);r.push({className:o[s],classList:{classList:e,range:t,important:n},relativeRange:{start:u,end:H},range:{start:{line:t.start.line+u.line,character:(H.line===0?t.start.character:0)+u.character},end:{line:t.start.line+H.line,character:(H.line===0?t.start.character:0)+H.character}}})}c+=o[s].length}return r}async function tm(e,t,n,i,o=!0){let r=await aL(e,t,n,i,o);return fH(r.map(c=>Ku(c,e.blocklist)))}function GR(e,t,n,i){let o=xs(t,"css",n),r=QS(i??t.languageId,e.editor?.userLanguages)?/(@apply\s+)(?<classList>[^}\r\n]+?)(?<important>\s*!important)?(?:\r|\n|}|$)/g:/(@apply\s+)(?<classList>[^;}]+?)(?<important>\s*!important)?\s*[;}]/g,c=Sa(r,o),s=n?n.start:{line:0,character:0};return c.map(u=>{let H=Gn(o,u.index+u[1].length),a=Gn(o,u.index+u[1].length+u.groups.classList.length);return{classList:u.groups.classList,important:!!u.groups.important,range:{start:{line:s.line+H.line,character:(a.line===0?s.character:0)+H.character},end:{line:s.line+a.line,character:(a.line===0?s.character:0)+a.character}}}})}async function Cre(e,t,n){let o=(await e.editor.getConfiguration(t.uri)).tailwindCSS.experimental.classRegex;if(!Array.isArray(o)||o.length===0)return[];let r=t.getText(n?{...n,start:t.positionAt(0)}:void 0),c=[];try{for(let s of sL({text:r,filters:o}))c.push({classList:s.classList,range:{start:t.positionAt(s.range[0]),end:t.positionAt(s.range[1])}})}catch(s){throw console.error(s),console.log({text:r,filters:o}),new Error("Failed to parse custom class regex")}return c}function XR(e,t){let n=t.filter(o=>typeof o=="string").flatMap(o=>[o,`\\[${o}\\]`]),i=/(?:\s|:|\()(ATTRS)\s*=\s*['"`{]/;return Sa(new RegExp(i.source.replace("ATTRS",n.join("|")),"gi"),e)}function ZR(e,t){let n=t.filter(u=>typeof u=="string");if(n.length===0)return[];let o=Sa(/(?<=^|[:=,;\s{()])([\p{ID_Start}$_][\p{ID_Continue}$_.]*)[(`]/dgiu,e),r=/^(NAMES)$/,c=new RegExp(r.source.replace("NAMES",n.join("|")),"i");return o.filter(u=>c.test(u[1]))}async function xre(e,t,n,i){if(!e.editor)return[];let o=xs(t,n,i),r=(await e.editor.getConfiguration(t.uri)).tailwindCSS,c=XR(o,r.classAttributes),s=Ha(e,t);for(let a of s??[]){if(!(a.type==="js"||a.type==="jsx")||!r.classFunctions?.length)continue;let p=t.getText(a.range),d=t.offsetAt(a.range.start),h=ZR(p,r.classFunctions);h.forEach(m=>{m.index&&(m.index+=d)}),c.push(...h)}let u=new Set,H=[];return c.forEach(a=>{let l=o.substr(a.index+a[0].length-1),p=a[0][0]===":"||a[1].startsWith("[")&&a[1].endsWith("]")?nL():rL();p.reset(l);let d=[],h,m;try{for(let g of p)g.type==="classlist"||g.type.startsWith("arb")?m?m.value+=g.value:m={value:g.value,offset:g.offset}:(m&&d.push({value:m.value,offset:m.offset}),m=void 0)}catch{}m&&d.push({value:m.value,offset:m.offset}),d.forEach(({value:g,offset:y})=>{if(g.trim()==="")return null;let _=g.match(/^\s*/),E=_===null?0:_[0].length,A=g.match(/\s*$/),S=A===null?0:-A[0].length,T=Gn(o,a.index+a[0].length-1+y+E),I=Gn(o,a.index+a[0].length-1+y+g.length+S),L={classList:g.substr(E,g.length+S),range:{start:{line:(i?.start.line||0)+T.line,character:(I.line===0&&i?.start.character||0)+T.character},end:{line:(i?.start.line||0)+I.line,character:(I.line===0&&i?.start.character||0)+I.character}}},x=[L.classList,L.range.start.line,L.range.start.character,L.range.end.line,L.range.end.character].join(":");u.has(x)||(u.add(x),H.push(L))})}),H}async function aL(e,t,n,i,o=!0,r){let c=[];return i==="css"?c=GR(e,t,n,r):(i==="html"||i==="jsx")&&(c=await xre(e,t,i,n)),Lh([...c,...o?await Cre(e,t,n):[]])}async function id(e,t){if(bl(e,t))return GR(e,t);let n=Ha(e,t);return n?Lh(fH([...await Promise.all(n.filter(i=>i.type==="html"||i.type==="jsx").map(({type:i,range:o})=>xre(e,t,i==="html"?"html":"jsx",o))),...n.filter(i=>i.type==="css").map(({range:i,lang:o})=>GR(e,t,i,o)),await Cre(e,t)])):[]}function cL(e,t){if(bl(e,t))return oL(t);let n=Ha(e,t);return n?fH(n.filter(i=>i.type==="css").map(({range:i})=>oL(t,i))):[]}function oL(e,t){let n=xs(e,"css",t),i=Sa(
|
1757
|
+
`:" ")}var iL;function N4e(e){iL||(iL=Sre.default.states({main:{commentLine:/\/\/.*?$/,commentBlock:{match:/\/\*[^]*?\*\//,lineBreaks:!0},stringDouble:/"(?:[^"\\]|\\.)*"/,stringSingle:/'(?:[^'\\]|\\.)*'/,stringBacktick:/`(?:[^`\\]|\\.)*`/,other:{match:/[^]/,lineBreaks:!0}}}));let t="";iL.reset(e);for(let n of iL)n.type==="commentLine"?t+=" ".repeat(n.value.length):n.type==="commentBlock"?t+=n.value.replace(/./g," "):t+=n.value;return t=R4e(t),t}function R4e(e){let g=32,y=9,_=!1,E=!1,A=!1,S=-1,T=-1,I=null;for(let L=0;L<e.length;++L){let x=e.charCodeAt(L);if(_){if(x===10)break;if(E)E=!1;else if(x===47&&!A){_=!1,T=L;break}else x===91?A=!0:x===92?E=!0:x===93&&(A=!1);continue}if(x===39)for(let C=L;C<e.length;++C){let D=e.charCodeAt(C);if(D===92)C+=1;else if(D===39){L=C;break}else if(D===10){L=C;break}}else if(x===34)for(let C=L;C<e.length;++C){let D=e.charCodeAt(C);if(D===92)C+=1;else if(D===34){L=C;break}else if(D===10){L=C;break}}else if(x===96)for(let C=L;C<e.length;++C){let D=e.charCodeAt(C);if(D===92)C+=1;else if(D===96){L=C;break}else if(D===10){L=C;break}}else x===g||x===y||(x===47?(I===44||I===58||I===61||I===59||I===91||I===63||I===40||I===123||I===10)&&(_=!0,S=L):I=x)}return _||S===-1||T===-1?e:e.slice(0,S)+" ".repeat(T-S+1)+e.slice(T+1)}function*sL({text:e,filters:t,cursor:n=null}){for(let i of t){let[o,r]=Array.isArray(i)?i:[i],c=new RegExp(o,"gd"),s=r?new RegExp(r,"gd"):void 0;for(let u of $4e(e,c,s,n))yield u}}function*$4e(e,t,n,i){for(let o of e.matchAll(t)){if(o[1]===void 0){console.warn(`Regex /${t.source}/ must have exactly one capture group`);continue}let r=o.indices[1][0],c=r+o[1].length;if(!(i!==null&&(i<r||i>c))){if(!n){yield{classList:i!==null?o[1].slice(0,i-r):o[1],range:[r,c]};continue}for(let s of o[1].matchAll(n)){if(s[1]===void 0){console.warn(`Regex /${n.source}/ must have exactly one capture group`);continue}let u=r+s.indices[1][0],H=u+s[1].length;i!==null&&(i<u||i>H)||(yield{classList:i!==null?s[1].slice(0,i-u):s[1],range:[u,H]})}}}}function Sa(e,t){let n,i=[];for(;(n=e.exec(t))!==null;)i.push({...n});return i}function vre(e,t){let n=Sa(e,t);return n.length===0?null:n[n.length-1]}function Ku({classList:e,range:t,important:n},i){let o=e.split(/(\s+)/),r=[],c=0;for(let s=0;s<o.length;s++){if(s%2===0&&!i.includes(o[s])){let u=Gn(e,c),H=Gn(e,c+o[s].length);r.push({className:o[s],classList:{classList:e,range:t,important:n},relativeRange:{start:u,end:H},range:{start:{line:t.start.line+u.line,character:(H.line===0?t.start.character:0)+u.character},end:{line:t.start.line+H.line,character:(H.line===0?t.start.character:0)+H.character}}})}c+=o[s].length}return r}async function tm(e,t,n,i,o=!0){let r=await aL(e,t,n,i,o);return fH(r.map(c=>Ku(c,e.blocklist)))}function GR(e,t,n,i){let o=xs(t,"css",n),r=QS(i??t.languageId,e.editor?.userLanguages)?/(@apply\s+)(?<classList>[^}\r\n]+?)(?<important>\s*!important)?(?:\r|\n|}|$)/g:/(@apply\s+)(?<classList>[^;}]+?)(?<important>\s*!important)?\s*[;}]/g,c=Sa(r,o),s=n?n.start:{line:0,character:0};return c.map(u=>{let H=Gn(o,u.index+u[1].length),a=Gn(o,u.index+u[1].length+u.groups.classList.length);return{classList:u.groups.classList,important:!!u.groups.important,range:{start:{line:s.line+H.line,character:(a.line===0?s.character:0)+H.character},end:{line:s.line+a.line,character:(a.line===0?s.character:0)+a.character}}}})}async function Cre(e,t,n){let o=(await e.editor.getConfiguration(t.uri)).tailwindCSS.experimental.classRegex;if(!Array.isArray(o)||o.length===0)return[];let r=t.getText(n?{...n,start:t.positionAt(0)}:void 0),c=[];try{for(let s of sL({text:r,filters:o}))c.push({classList:s.classList,range:{start:t.positionAt(s.range[0]),end:t.positionAt(s.range[1])}})}catch(s){throw console.error(s),console.log({text:r,filters:o}),new Error("Failed to parse custom class regex")}return c}function XR(e,t){let n=t.filter(o=>typeof o=="string").flatMap(o=>[o,`\\[${o}\\]`]),i=/(?:\s|:|\()(ATTRS)\s*=\s*['"`{]/;return Sa(new RegExp(i.source.replace("ATTRS",n.join("|")),"gi"),e)}function ZR(e,t){let n=t.filter(u=>typeof u=="string");if(n.length===0)return[];let o=Sa(/(?<=^|[:=,;\s{()\[])([\p{ID_Start}$_][\p{ID_Continue}$_.]*)[(`]/dgiu,e),r=/^(NAMES)$/,c=new RegExp(r.source.replace("NAMES",n.join("|")),"i");return o.filter(u=>c.test(u[1]))}async function xre(e,t,n,i){if(!e.editor)return[];let o=xs(t,n,i),r=(await e.editor.getConfiguration(t.uri)).tailwindCSS,c=XR(o,r.classAttributes),s=Ha(e,t);for(let a of s??[]){if(!(a.type==="js"||a.type==="jsx")||!r.classFunctions?.length)continue;let p=t.getText(a.range),d=t.offsetAt(a.range.start),h=ZR(p,r.classFunctions);h.forEach(m=>{m.index&&(m.index+=d)}),c.push(...h)}let u=new Set,H=[];return c.forEach(a=>{let l=o.substr(a.index+a[0].length-1),p=a[0][0]===":"||a[1].startsWith("[")&&a[1].endsWith("]")?nL():rL();p.reset(l);let d=[],h,m;try{for(let g of p)g.type==="classlist"||g.type.startsWith("arb")?m?m.value+=g.value:m={value:g.value,offset:g.offset}:(m&&d.push({value:m.value,offset:m.offset}),m=void 0)}catch{}m&&d.push({value:m.value,offset:m.offset}),d.forEach(({value:g,offset:y})=>{if(g.trim()==="")return null;let _=g.match(/^\s*/),E=_===null?0:_[0].length,A=g.match(/\s*$/),S=A===null?0:-A[0].length,T=Gn(o,a.index+a[0].length-1+y+E),I=Gn(o,a.index+a[0].length-1+y+g.length+S),L={classList:g.substr(E,g.length+S),range:{start:{line:(i?.start.line||0)+T.line,character:(I.line===0&&i?.start.character||0)+T.character},end:{line:(i?.start.line||0)+I.line,character:(I.line===0&&i?.start.character||0)+I.character}}},x=[L.classList,L.range.start.line,L.range.start.character,L.range.end.line,L.range.end.character].join(":");u.has(x)||(u.add(x),H.push(L))})}),H}async function aL(e,t,n,i,o=!0,r){let c=[];return i==="css"?c=GR(e,t,n,r):(i==="html"||i==="jsx")&&(c=await xre(e,t,i,n)),Lh([...c,...o?await Cre(e,t,n):[]])}async function id(e,t){if(bl(e,t))return GR(e,t);let n=Ha(e,t);return n?Lh(fH([...await Promise.all(n.filter(i=>i.type==="html"||i.type==="jsx").map(({type:i,range:o})=>xre(e,t,i==="html"?"html":"jsx",o))),...n.filter(i=>i.type==="css").map(({range:i,lang:o})=>GR(e,t,i,o)),await Cre(e,t)])):[]}function cL(e,t){if(bl(e,t))return oL(t);let n=Ha(e,t);return n?fH(n.filter(i=>i.type==="css").map(({range:i})=>oL(t,i))):[]}function oL(e,t){let n=xs(e,"css",t),i=Sa(/(?:\b|(?<=[\s\W]))(?<![-$%#.])(?<helper>config|theme|--theme|var)\(/g,n);i=i.filter(d=>{for(let h=d.index-1;h>=0;h--){let m=n[h];if(m===`
|
1758
1758
|
`||m===";"||m==="("||m===")")break;if(n.startsWith("@import",h))return!1}return!0});let o=[],r=44,c=47,s=92,u=40,H=41,a=34,l=39,p=n.length;for(let d of i){let h=d.index+d[0].length,m=null,g=h,y=null,_=1;for(let I=h;I<p;++I){let L=n.charCodeAt(I);if(L===s)I+=1;else if(L===l||L===a)for(;++I<p;){let x=n.charCodeAt(I);if(x===s){I+=1;continue}if(x===L)break}else if(L===u)_+=1;else if(L===H){if(_-=1,_===0){y??=I,m=I;break}}else L===r&&_===1&&(y??=I)}if(m===null)continue;let E;if(d.groups.helper==="theme"||d.groups.helper==="--theme")E="theme";else if(d.groups.helper==="var")E="var";else if(d.groups.helper==="config")E="config";else continue;let A=n.slice(g,y);g+=A.match(/^\s+/)?.length??0,y-=A.match(/\s+$/)?.length??0;let S=A.match(/^['"]+/)?.length??0,T=A.match(/['"]+$/)?.length??0;S&&T&&(g+=S,y-=T),_=1;for(let I=g;I<y;++I){let L=n.charCodeAt(I);L===s?I+=1:L===u?_+=1:L===H?_-=1:L===c&&_===1&&(y=I)}A=n.slice(g,y),g+=A.match(/^\s+/)?.length??0,y-=A.match(/\s+$/)?.length??0,A=n.slice(g,y),S=A.match(/^['"]+/)?.length??0,T=A.match(/['"]+$/)?.length??0,g+=S,y-=T,A=n.slice(g,y),o.push({helper:E,path:A,ranges:{full:Ys({start:Gn(n,h),end:Gn(n,m)},t),path:Ys({start:Gn(n,g),end:Gn(n,y)},t)}})}return o}function Gn(e,t){let{line:n,col:i}=(0,Tre.default)(e+`
|
1759
1759
|
`).fromIndex(t)??{line:1,col:1};return{line:n-1,character:i-1}}async function Dre(e,t,n){let i=[],o=t.offsetAt(n),r={start:t.positionAt(0),end:t.positionAt(o+15e3)};if(Df(t)){let s=Ha(e,t),u=await Promise.all(s.map(async({type:H,range:a,lang:l})=>H==="css"?await aL(e,t,a,"css",!0,l):H==="html"?await aL(e,t,a,"html"):H==="js"||H==="jsx"?await aL(e,t,a,"jsx"):[]));i=Lh(fH(u)).flatMap(H=>Ku(H,e.blocklist))}else Ho(e,t,n)?i=await tm(e,t,r,"css"):m0(e,t,n)?i=await tm(e,t,r,"html"):YS(e,t,n)?i=await tm(e,t,r,"jsx"):i=await tm(e,t,r);if(i.length===0)return null;let c=i.find(({range:s})=>su(n,s));return c||null}var HL=mr(tL()),Nre=mr(wre());var M4e=["text/html","text/x-template","text/x-handlebars-template"],B4e=["text/babel"],Wl={text:{match:/[^]/,lineBreaks:!0}},rm={main:{cssBlockStart:{match:/<style(?=[>\s])/,push:"cssBlock"},jsBlockStart:{match:"<script",push:"jsBlock"},...Wl},cssBlock:{styleStart:{match:">",next:"style"},cssBlockEnd:{match:"/>",pop:1},attrStartDouble:{match:'"',push:"attrDouble"},attrStartSingle:{match:"'",push:"attrSingle"},interp:{match:"{",push:"interp"},...Wl},jsBlock:{scriptStart:{match:">",next:"script"},jsBlockEnd:{match:"/>",pop:1},langAttrStartDouble:{match:'lang="',push:"langAttrDouble"},langAttrStartSingle:{match:"lang='",push:"langAttrSingle"},typeAttrStartDouble:{match:'type="',push:"typeAttrDouble"},typeAttrStartSingle:{match:"type='",push:"typeAttrSingle"},attrStartDouble:{match:'"',push:"attrDouble"},attrStartSingle:{match:"'",push:"attrSingle"},interp:{match:"{",push:"interp"},...Wl},interp:{interp:{match:"{",push:"interp"},end:{match:"}",pop:1},...Wl},langAttrDouble:{langAttrEnd:{match:'"',pop:1},lang:{match:/[^"]+/,lineBreaks:!0}},langAttrSingle:{langAttrEnd:{match:"'",pop:1},lang:{match:/[^']+/,lineBreaks:!0}},typeAttrDouble:{langAttrEnd:{match:'"',pop:1},type:{match:/[^"]+/,lineBreaks:!0}},typeAttrSingle:{langAttrEnd:{match:"'",pop:1},type:{match:/[^']+/,lineBreaks:!0}},attrDouble:{attrEnd:{match:'"',pop:1},...Wl},attrSingle:{attrEnd:{match:"'",pop:1},...Wl},style:{cssBlockEnd:{match:/<\/style\s*>/,pop:1},...Wl},script:{jsBlockEnd:{match:/<\/script\s*>/,pop:1},...Wl}},O4e={...rm,main:{htmlBlockStart:{match:"<template",push:"htmlBlock"},...rm.main},cssBlock:{langAttrStartDouble:{match:'lang="',push:"langAttrDouble"},langAttrStartSingle:{match:"lang='",push:"langAttrSingle"},...rm.cssBlock},htmlBlock:{htmlStart:{match:">",next:"html"},htmlBlockEnd:{match:"/>",pop:1},attrStartDouble:{match:'"',push:"attrDouble"},attrStartSingle:{match:"'",push:"attrSingle"},interp:{match:"{",push:"interp"},...Wl},html:{htmlBlockEnd:{match:"</template>",pop:1},nestedBlockStart:{match:"<template",push:"nestedBlock"},...Wl},nestedBlock:{nestedStart:{match:">",next:"nested"},nestedBlockEnd:{match:"/>",pop:1},...Wl},nested:{nestedBlockEnd:{match:"</template>",pop:1},nestedBlockStart:{match:"<template",push:"nestedBlock"},...Wl}},F4e={...rm,main:{frontmatterBlockStart:{match:/^[\s\n]*---/,push:"frontmatterScript"},...rm.main},frontmatterScript:{frontmatterBlockEnd:{match:/\s*---(?=\s)/,pop:1},...Wl}},j4e=HL.default.states(rm),U4e=HL.default.states(O4e),kre=HL.default.states(F4e),uL=new Nre.default({max:25,maxAge:1e3});function Ha(e,t,n=t.getText()){let i=`${t.languageId}:${n}`,o=uL.get(i);if(o!==void 0)return o;let r=nd(e,t),c=null;if(Df(t)?c="none":nm(e,t)||pL(t)||JR(t)?c="html":r&&(c="jsx"),c===null)return uL.set(i,null),null;n=xs(n,r?"js":"html");let s=j4e;c==="none"?Df(t)&&(s=U4e):c==="html"&&JR(t)&&(s=kre),s.reset(n);let u=c,H=[{type:c,range:{start:{line:0,character:0},end:void 0}}],a=0;try{for(let l of s){if(!l.type.startsWith("nested"))if(l.type.endsWith("BlockStart")){let p=Gn(n,a);H[H.length-1].range.end||(H[H.length-1].range.end=p),u=l.type.replace(/BlockStart$/,""),s===kre&&u==="frontmatter"&&(u="js"),H.push({type:u,range:{start:p,end:void 0}})}else if(l.type.endsWith("BlockEnd")){let p=Gn(n,a);H[H.length-1].range.end=p,H.push({type:c,range:{start:p,end:void 0}})}else l.type==="lang"?(H[H.length-1].type=l.text,l.text==="tsx"?(H[H.length-1].type="jsx",H[H.length-1].lang="tsx"):l.text==="ts"&&(H[H.length-1].type="js",H[H.length-1].lang="ts")):l.type==="type"&&M4e.includes(l.text)?H[H.length-1].type="html":l.type==="type"&&B4e.includes(l.text)&&(H[H.length-1].type="jsx");a+=l.text.length}}catch{return uL.set(i,null),null}H[H.length-1].range.end||(H[H.length-1].range.end=Gn(n,a)),uL.set(i,H);for(let l of H)l.type!=="css"&&QR(e,l.type)&&(l.lang=l.type,l.type="css");return H}function nm(e,t){let n=Object.keys(e.editor.userLanguages).filter(i=>ZS.includes(e.editor.userLanguages[i]));return[...ZS,...n].indexOf(t.languageId)!==-1}function Df(e){return e.languageId==="vue"}function pL(e){return e.languageId==="svelte"}function JR(e){return e.languageId==="astro"}function m0(e,t,n){let i=t.getText({start:{line:0,character:0},end:n}),o=Ha(e,t,i);return o?o[o.length-1].type==="html":!1}function q4e(e){let t=Object.keys(e.editor.userLanguages).filter(n=>zS.includes(e.editor.userLanguages[n]));return[...zS,...t]}function QR(e,t){return q4e(e).indexOf(t)!==-1}function bl(e,t){return QR(e,t.languageId)}function Ho(e,t,n){if(bl(e,t))return!0;if(nm(e,t)||Df(t)||pL(t)||nd(e,t)){let i=t.getText({start:{line:0,character:0},end:n}),o=Ha(e,t,i);return o?o[o.length-1].type==="css":!1}return!1}var Rre=mr(Fo());function Pf(e,t){let n=Array.isArray(t)?t:Uu(e,t);if(!n)return null;let i=(0,Rre.default)(e.classNames.classNames,[...n,"__info"]);return Array.isArray(i)?i.map(o=>({source:o.__source,pseudo:o.__pseudo,scope:o.__scope,context:o.__context})):{source:i.__source,pseudo:i.__pseudo,scope:i.__scope,context:i.__context}}var YR=mr(Fo());function dL(e,t){return e.featureFlags.future.includes(t)?e.config.future==="all"||(0,YR.default)(e.config,["future",t],!1):e.featureFlags.experimental.includes(t)?e.config.experimental==="all"||(0,YR.default)(e.config,["experimental",t],!1):!1}function sd(e,t){if(e.jit)return{isApplyable:!0};let n=Pf(e,t);if(!n)return null;if(Tn(e.version,"2.0.0-alpha.1")||dL(e,"applyComplexClasses"))return{isApplyable:!0};let i=Array.isArray(t)?t.join(e.separator):t,o;return Array.isArray(n)?o=`'@apply' cannot be used with '${i}' because it is included in multiple rulesets.`:n.source!=="utilities"?o=`'@apply' cannot be used with '${i}' because it is not a utility.`:n.context&&n.context.length>0?n.context.length===1?o=`'@apply' cannot be used with '${i}' because it is nested inside of an at-rule ('${n.context[0]}').`:o=`'@apply' cannot be used with '${i}' because it is nested inside of at-rules (${n.context.map(r=>`'${r}'`).join(", ")}).`:n.pseudo&&n.pseudo.length>0&&(n.pseudo.length===1?o=`'@apply' cannot be used with '${i}' because its definition includes a pseudo-selector ('${n.pseudo[0]}')`:o=`'@apply' cannot be used with '${i}' because its definition includes pseudo-selectors (${n.pseudo.map(r=>`'${r}'`).join(", ")}).`),o?{isApplyable:!1,reason:o}:{isApplyable:!0}}function $re(e){return e.code==="cssConflict"}function Mre(e){return e.code==="invalidApply"}function Bre(e){return e.code==="invalidScreen"}function Ore(e){return e.code==="invalidVariant"}function Fre(e){return e.code==="invalidConfigPath"}function jre(e){return e.code==="invalidTailwindDirective"}function Ure(e){return e.code==="recommendedVariantOrder"}var W4e=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,V4e=/\\(\\)?/g;function fL(e){let t=[];return e.charCodeAt(0)===46&&t.push(""),e.replace(W4e,(n,i,o,r)=>{t.push(o?r.replace(V4e,"$1"):i||n)}),t}var hL=mr(Wre());function Gu(e,t){return t.concat([]).sort((n,i)=>(0,hL.default)(e,n)-(0,hL.default)(e,i))[0]}function Vre(e,t){return(0,hL.default)(e,t)}function _L(e){let t=Array.from(e.theme.entries(),([i])=>i),n=e.theme.prefix?.length??0;return n>0?t.map(i=>`--${i.slice(n+3)}`):t}function Kre(e){return["--breakpoint","--color","--animate","--blur","--radius","--shadow","--inset-shadow","--drop-shadow","--container","--font","--font-size","--tracking","--leading","--ease"]}var mL=mr(Fo());function Xu(e){return typeof e=="string"?e:e.reduce((t,n,i)=>i===0?n:n.includes(".")?`${t}[${n}]`:`${t}.${n}`,"")}function im(e,t,n=[]){let i=Array.isArray(t)?t:fL(t);if(e.v4)return G4e(e,Xu(i));let o=[...n,...i],r=(0,mL.default)(e.config,o),c=[],s=e.modules?.transformThemeValue?.module??(a=>l=>l);o[0]==="theme"&&o[1]&&(r=s(o[1])(r));function u(){return gS("123456789".substr(0,i.length-1)).map(p=>p.split("").map(d=>parseInt(d,10))).map(p=>{let d=[],h=0;return p.forEach(m=>{d.push(i.slice(h,m).join(".")),h=m}),d.push(i.slice(h).join(".")),d}).slice(1).find(p=>im(e,p,n).isValid)}if(typeof r>"u"){let a=`'${Xu(t)}' does not exist in your theme config.`,l=[...n,...i.slice(0,i.length-1)],p=(0,mL.default)(e.config,l);if(Ga(p)){let d=Gu(i[i.length-1],Object.keys(p).filter(h=>im(e,[...l,h]).isValid));d&&(c.push(Xu([...i.slice(0,i.length-1),d])),a+=` Did you mean '${c[0]}'?`)}else{let d=u();if(d)return{isValid:!1,reason:`${a} Did you mean '${Xu(d)}'?`,suggestions:[Xu(d)]}}return{isValid:!1,reason:a,suggestions:c}}if(!(typeof r=="string"||typeof r=="number"||r instanceof String||r instanceof Number||Array.isArray(r)||typeof r=="function")){let a=`'${Xu(t)}' was found but does not resolve to a valid theme value.`;if(Ga(r)){let l=Object.keys(r).filter(p=>im(e,[...i,p],n).isValid);l.length&&(c.push(...l.map(p=>Xu([...i,p]))),a+=` Did you mean something like '${c[0]}'?`)}return{isValid:!1,reason:a,suggestions:c}}let H=!0;for(let a=i.length-1;a>=0;a--){let l=i[a],p=(0,mL.default)(e.config,[...n,...i.slice(0,a)]);if(/^[0-9]+$/.test(l)){if(!Ga(p)&&!Array.isArray(p)){H=!1;break}}else if(!Ga(p)){H=!1;break}}if(!H){let a=`'${Xu(t)}' does not exist in your theme config.`,l=u();return l?{isValid:!1,reason:`${a} Did you mean '${Xu(l)}'?`,suggestions:[Xu(l)]}:{isValid:!1,reason:a,suggestions:[]}}return{isValid:!0,value:r}}function Gre(e,t,n){let i=n.tailwindCSS.lint.invalidConfigPath;if(i==="ignore")return[];let o=[];return cL(e,t).forEach(r=>{let c=r.helper==="theme"?["theme"]:[];if(r.helper==="var")return;let s=im(e,r.path,c);s.isValid!==!0&&o.push({code:"invalidConfigPath",range:r.ranges.path,severity:i==="error"?1:2,message:s.reason,suggestions:s.suggestions})}),o}function K4e(e,t){let n=e.theme.prefix??null,i=n?`${n}:[--custom:theme(${t})]`:`[--custom:theme(${t})]`,[o]=e.compile([i]),r=null;return o.walkDecls(c=>{r=c.value}),r}function G4e(e,t){let n=e.designSystem.theme.prefix??null,i=K4e(e.designSystem,t);if(i!=null)return{isValid:!0,value:i};let o=t.startsWith("--")?`'${t}' does not exist in your theme.`:`'${t}' does not exist in your theme config.`,r=X4e(e,t);return r.length>0&&(o+=` Did you mean '${r[0]}'?`),{isValid:!1,reason:o,suggestions:r}}function X4e(e,t){if(!e.v4)return[];if(!t.startsWith("--"))return[];let n=t.slice(2).split("-");n[0]=`--${n[0]}`;let i=_L(e.designSystem),o=null;for(;n.length>1;){n.pop();let c=n.join("-"),s=i.filter(u=>u.startsWith(c));if(s.length!==0){o=Gu(t,s);break}}return o??=Gu(t,i),Vre(t,o)<=5?[o]:[]}var Dne=mr(y0());var AL=new Uint8Array(256);function ad(e,t){let n=0,i=[],o=0,r=e.length,c=t.charCodeAt(0);for(let s=0;s<r;s++){let u=e.charCodeAt(s);if(n===0&&u===c){i.push(e.slice(o,s)),o=s+1;continue}switch(u){case 92:s+=1;break;case 39:case 34:for(;++s<r;){let H=e.charCodeAt(s);if(H===92){s+=1;continue}if(H===u)break}break;case 40:AL[n]=41,n++;break;case 91:AL[n]=93,n++;break;case 123:AL[n]=125,n++;break;case 93:case 125:case 41:n>0&&u===AL[n-1]&&n--;break}}return i.push(e.slice(o)),i}async function Pne(e,t,n){return await P7e(e,t,n)||await R7e(e,t,n)||await D7e(e,t,n)||await w7e(e,t,n)}async function D7e(e,t,n){if(!Ho(e,t,n))return null;let i=await e.editor.getConfiguration(t.uri),o=oL(t,{start:{line:n.line,character:0},end:{line:n.line+1,character:0}});for(let r of o){if(!su(n,r.ranges.path)||r.helper==="var"&&!e.v4)continue;let c=im(e,r.path,r.helper==="theme"?["theme"]:[]),s=c.isValid?XS(c.value):null;if(s===null)return null;i.tailwindCSS.showPixelEquivalents&&(s=BH(s,i.tailwindCSS.rootFontSize));let u=["```plaintext",s,"```"];return e.v4&&r.path.startsWith("--")&&(u=["```css","@theme {",` ${r.path}: ${s};`,"}","```"]),{contents:{kind:"markdown",value:u.join(`
|
1760
1760
|
`)},range:r.ranges.path}}return null}async function P7e(e,t,n){let i=await Dre(e,t,n);if(i===null)return null;if(e.v4){let s=e.designSystem.compile([i.className])[0];return s.nodes.length===0?null:{contents:{language:"css",value:await q_(e,s,t.uri)},range:i.range}}if(e.jit){let{root:s,rules:u}=yl(e,[i.className]);return u.length===0?null:{contents:{language:"css",value:await q_(e,s,t.uri)},range:i.range}}let o=Uu(e,i.className);if(!o)return null;if(Ho(e,t,n)){let s=sd(e,o);if(s===null||s.isApplyable===!1)return null}let r=await e.editor.getConfiguration(t.uri),c=h0(i.className,(0,xne.default)(e.classNames.classNames,[...o,"__info"]),r);return c?{contents:{language:"css",value:c},range:i.range}:null}function g0(e){return{kind:"markdown",value:e.join(`
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@tailwindcss/language-server",
|
3
|
-
"version": "0.14.
|
3
|
+
"version": "0.14.26",
|
4
4
|
"description": "Tailwind CSS Language Server",
|
5
5
|
"license": "MIT",
|
6
6
|
"repository": {
|
@@ -94,7 +94,7 @@
|
|
94
94
|
"vscode-languageserver-protocol": "^3.17.5",
|
95
95
|
"vscode-languageserver-textdocument": "1.0.12",
|
96
96
|
"vscode-uri": "3.0.2",
|
97
|
-
"@tailwindcss/language-service": "0.14.
|
97
|
+
"@tailwindcss/language-service": "0.14.26"
|
98
98
|
},
|
99
99
|
"engines": {
|
100
100
|
"node": ">=18.0.0"
|