diff --git a/.editorconfig b/.editorconfig deleted file mode 100644 index 1ed453a371..0000000000 --- a/.editorconfig +++ /dev/null @@ -1,10 +0,0 @@ -root = true - -[*] -end_of_line = lf -insert_final_newline = true - -[*.{js,json,yml}] -charset = utf-8 -indent_style = space -indent_size = 2 diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml deleted file mode 100644 index 78ee3a7548..0000000000 --- a/.github/workflows/deploy.yml +++ /dev/null @@ -1,61 +0,0 @@ -name: Deploy to GitHub Pages - -on: - push: - branches: - - main - workflow_dispatch: - schedule: - # Run this every hour - - cron: "0 * * * *" - -jobs: - build: - name: Generate docs - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - - uses: folke/github/neovim@main - - name: Generate docs - run: ./scripts/build_docs.sh - - name: Push changes - uses: stefanzweifel/git-auto-commit-action@v4 - with: - commit_message: "chore(build): auto-generate docs" - commit_user_name: "github-actions[bot]" - commit_user_email: "github-actions[bot]@users.noreply.github.com" - commit_author: "github-actions[bot] " - - deploy: - name: Deploy to GitHub Pages - needs: build - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - - name: update git - run: git pull - - uses: actions/setup-node@v3 - with: - node-version: 18 - cache: yarn - - - name: Install dependencies - run: yarn install --frozen-lockfile - - name: Build website - run: yarn build - - # Popular action to deploy to GitHub Pages: - # Docs: https://github.com/peaceiris/actions-gh-pages#%EF%B8%8F-docusaurus - - name: Deploy to GitHub Pages - uses: peaceiris/actions-gh-pages@v3 - with: - github_token: ${{ secrets.GITHUB_TOKEN }} - # Build output to publish to the `gh-pages` branch: - publish_dir: ./build - # The following lines assign commit authorship to the official - # GH-Actions bot for deploys to `gh-pages` branch: - # https://github.com/actions/checkout/issues/13#issuecomment-724415212 - # The GH actions bot is used by default if you didn't specify the two fields. - # You can swap them out with your own user credentials. - user_name: github-actions[bot] - user_email: 41898282+github-actions[bot]@users.noreply.github.com diff --git a/.github/workflows/test-deploy.yml b/.github/workflows/test-deploy.yml deleted file mode 100644 index b311453c27..0000000000 --- a/.github/workflows/test-deploy.yml +++ /dev/null @@ -1,24 +0,0 @@ -name: Test deployment - -on: - pull_request: - branches: - - main - # Review gh actions docs if you want to further define triggers, paths, etc - # https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#on - -jobs: - test-deploy: - name: Test deployment - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - - uses: actions/setup-node@v3 - with: - node-version: 18 - cache: yarn - - - name: Install dependencies - run: yarn install --frozen-lockfile - - name: Test build website - run: yarn build diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 8f4a31fe73..0000000000 --- a/.gitignore +++ /dev/null @@ -1,29 +0,0 @@ -# Dependencies -/node_modules - -# Production -/build -.nvim - -# Generated files -.docusaurus -.cache-loader - -# Misc -.DS_Store -.env.local -.env.development.local -.env.test.local -.env.production.local - -npm-debug.log* -yarn-debug.log* -yarn-error.log* - -.pnp.* -.yarn/* -!.yarn/patches -!.yarn/plugins -!.yarn/releases -!.yarn/sdks -!.yarn/versions diff --git a/.neoconf.json b/.neoconf.json deleted file mode 100644 index 47df2931ed..0000000000 --- a/.neoconf.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "neodev": { - "library": { - "plugins": [ - "plenary.nvim", - "lazy.nvim", - "LazyVim" - ] - } - } -} diff --git a/static/.nojekyll b/.nojekyll similarity index 100% rename from static/.nojekyll rename to .nojekyll diff --git a/.yarn/releases/yarn-3.3.1.cjs b/.yarn/releases/yarn-3.3.1.cjs deleted file mode 100755 index 53a282e439..0000000000 --- a/.yarn/releases/yarn-3.3.1.cjs +++ /dev/null @@ -1,823 +0,0 @@ -#!/usr/bin/env node -/* eslint-disable */ -//prettier-ignore -(()=>{var dfe=Object.create;var jS=Object.defineProperty;var Cfe=Object.getOwnPropertyDescriptor;var mfe=Object.getOwnPropertyNames;var Efe=Object.getPrototypeOf,Ife=Object.prototype.hasOwnProperty;var J=(r=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(r,{get:(e,t)=>(typeof require<"u"?require:e)[t]}):r)(function(r){if(typeof require<"u")return require.apply(this,arguments);throw new Error('Dynamic require of "'+r+'" is not supported')});var y=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports),ht=(r,e)=>{for(var t in e)jS(r,t,{get:e[t],enumerable:!0})},yfe=(r,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of mfe(e))!Ife.call(r,n)&&n!==t&&jS(r,n,{get:()=>e[n],enumerable:!(i=Cfe(e,n))||i.enumerable});return r};var ne=(r,e,t)=>(t=r!=null?dfe(Efe(r)):{},yfe(e||!r||!r.__esModule?jS(t,"default",{value:r,enumerable:!0}):t,r));var aK=y((uZe,oK)=>{oK.exports=sK;sK.sync=Gfe;var iK=J("fs");function Hfe(r,e){var t=e.pathExt!==void 0?e.pathExt:process.env.PATHEXT;if(!t||(t=t.split(";"),t.indexOf("")!==-1))return!0;for(var i=0;i{uK.exports=lK;lK.sync=Yfe;var AK=J("fs");function lK(r,e,t){AK.stat(r,function(i,n){t(i,i?!1:cK(n,e))})}function Yfe(r,e){return cK(AK.statSync(r),e)}function cK(r,e){return r.isFile()&&jfe(r,e)}function jfe(r,e){var t=r.mode,i=r.uid,n=r.gid,s=e.uid!==void 0?e.uid:process.getuid&&process.getuid(),o=e.gid!==void 0?e.gid:process.getgid&&process.getgid(),a=parseInt("100",8),l=parseInt("010",8),c=parseInt("001",8),u=a|l,g=t&c||t&l&&n===o||t&a&&i===s||t&u&&s===0;return g}});var hK=y((hZe,fK)=>{var fZe=J("fs"),OI;process.platform==="win32"||global.TESTING_WINDOWS?OI=aK():OI=gK();fK.exports=av;av.sync=qfe;function av(r,e,t){if(typeof e=="function"&&(t=e,e={}),!t){if(typeof Promise!="function")throw new TypeError("callback not provided");return new Promise(function(i,n){av(r,e||{},function(s,o){s?n(s):i(o)})})}OI(r,e||{},function(i,n){i&&(i.code==="EACCES"||e&&e.ignoreErrors)&&(i=null,n=!1),t(i,n)})}function qfe(r,e){try{return OI.sync(r,e||{})}catch(t){if(e&&e.ignoreErrors||t.code==="EACCES")return!1;throw t}}});var yK=y((pZe,IK)=>{var _g=process.platform==="win32"||process.env.OSTYPE==="cygwin"||process.env.OSTYPE==="msys",pK=J("path"),Jfe=_g?";":":",dK=hK(),CK=r=>Object.assign(new Error(`not found: ${r}`),{code:"ENOENT"}),mK=(r,e)=>{let t=e.colon||Jfe,i=r.match(/\//)||_g&&r.match(/\\/)?[""]:[..._g?[process.cwd()]:[],...(e.path||process.env.PATH||"").split(t)],n=_g?e.pathExt||process.env.PATHEXT||".EXE;.CMD;.BAT;.COM":"",s=_g?n.split(t):[""];return _g&&r.indexOf(".")!==-1&&s[0]!==""&&s.unshift(""),{pathEnv:i,pathExt:s,pathExtExe:n}},EK=(r,e,t)=>{typeof e=="function"&&(t=e,e={}),e||(e={});let{pathEnv:i,pathExt:n,pathExtExe:s}=mK(r,e),o=[],a=c=>new Promise((u,g)=>{if(c===i.length)return e.all&&o.length?u(o):g(CK(r));let f=i[c],h=/^".*"$/.test(f)?f.slice(1,-1):f,p=pK.join(h,r),C=!h&&/^\.[\\\/]/.test(r)?r.slice(0,2)+p:p;u(l(C,c,0))}),l=(c,u,g)=>new Promise((f,h)=>{if(g===n.length)return f(a(u+1));let p=n[g];dK(c+p,{pathExt:s},(C,w)=>{if(!C&&w)if(e.all)o.push(c+p);else return f(c+p);return f(l(c,u,g+1))})});return t?a(0).then(c=>t(null,c),t):a(0)},Wfe=(r,e)=>{e=e||{};let{pathEnv:t,pathExt:i,pathExtExe:n}=mK(r,e),s=[];for(let o=0;o{"use strict";var wK=(r={})=>{let e=r.env||process.env;return(r.platform||process.platform)!=="win32"?"PATH":Object.keys(e).reverse().find(i=>i.toUpperCase()==="PATH")||"Path"};Av.exports=wK;Av.exports.default=wK});var vK=y((CZe,SK)=>{"use strict";var bK=J("path"),zfe=yK(),Vfe=BK();function QK(r,e){let t=r.options.env||process.env,i=process.cwd(),n=r.options.cwd!=null,s=n&&process.chdir!==void 0&&!process.chdir.disabled;if(s)try{process.chdir(r.options.cwd)}catch{}let o;try{o=zfe.sync(r.command,{path:t[Vfe({env:t})],pathExt:e?bK.delimiter:void 0})}catch{}finally{s&&process.chdir(i)}return o&&(o=bK.resolve(n?r.options.cwd:"",o)),o}function Xfe(r){return QK(r)||QK(r,!0)}SK.exports=Xfe});var xK=y((mZe,cv)=>{"use strict";var lv=/([()\][%!^"`<>&|;, *?])/g;function _fe(r){return r=r.replace(lv,"^$1"),r}function Zfe(r,e){return r=`${r}`,r=r.replace(/(\\*)"/g,'$1$1\\"'),r=r.replace(/(\\*)$/,"$1$1"),r=`"${r}"`,r=r.replace(lv,"^$1"),e&&(r=r.replace(lv,"^$1")),r}cv.exports.command=_fe;cv.exports.argument=Zfe});var DK=y((EZe,PK)=>{"use strict";PK.exports=/^#!(.*)/});var RK=y((IZe,kK)=>{"use strict";var $fe=DK();kK.exports=(r="")=>{let e=r.match($fe);if(!e)return null;let[t,i]=e[0].replace(/#! ?/,"").split(" "),n=t.split("/").pop();return n==="env"?i:i?`${n} ${i}`:n}});var NK=y((yZe,FK)=>{"use strict";var uv=J("fs"),ehe=RK();function the(r){let t=Buffer.alloc(150),i;try{i=uv.openSync(r,"r"),uv.readSync(i,t,0,150,0),uv.closeSync(i)}catch{}return ehe(t.toString())}FK.exports=the});var MK=y((wZe,OK)=>{"use strict";var rhe=J("path"),TK=vK(),LK=xK(),ihe=NK(),nhe=process.platform==="win32",she=/\.(?:com|exe)$/i,ohe=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;function ahe(r){r.file=TK(r);let e=r.file&&ihe(r.file);return e?(r.args.unshift(r.file),r.command=e,TK(r)):r.file}function Ahe(r){if(!nhe)return r;let e=ahe(r),t=!she.test(e);if(r.options.forceShell||t){let i=ohe.test(e);r.command=rhe.normalize(r.command),r.command=LK.command(r.command),r.args=r.args.map(s=>LK.argument(s,i));let n=[r.command].concat(r.args).join(" ");r.args=["/d","/s","/c",`"${n}"`],r.command=process.env.comspec||"cmd.exe",r.options.windowsVerbatimArguments=!0}return r}function lhe(r,e,t){e&&!Array.isArray(e)&&(t=e,e=null),e=e?e.slice(0):[],t=Object.assign({},t);let i={command:r,args:e,options:t,file:void 0,original:{command:r,args:e}};return t.shell?i:Ahe(i)}OK.exports=lhe});var HK=y((BZe,KK)=>{"use strict";var gv=process.platform==="win32";function fv(r,e){return Object.assign(new Error(`${e} ${r.command} ENOENT`),{code:"ENOENT",errno:"ENOENT",syscall:`${e} ${r.command}`,path:r.command,spawnargs:r.args})}function che(r,e){if(!gv)return;let t=r.emit;r.emit=function(i,n){if(i==="exit"){let s=UK(n,e,"spawn");if(s)return t.call(r,"error",s)}return t.apply(r,arguments)}}function UK(r,e){return gv&&r===1&&!e.file?fv(e.original,"spawn"):null}function uhe(r,e){return gv&&r===1&&!e.file?fv(e.original,"spawnSync"):null}KK.exports={hookChildProcess:che,verifyENOENT:UK,verifyENOENTSync:uhe,notFoundError:fv}});var dv=y((bZe,Zg)=>{"use strict";var GK=J("child_process"),hv=MK(),pv=HK();function YK(r,e,t){let i=hv(r,e,t),n=GK.spawn(i.command,i.args,i.options);return pv.hookChildProcess(n,i),n}function ghe(r,e,t){let i=hv(r,e,t),n=GK.spawnSync(i.command,i.args,i.options);return n.error=n.error||pv.verifyENOENTSync(n.status,i),n}Zg.exports=YK;Zg.exports.spawn=YK;Zg.exports.sync=ghe;Zg.exports._parse=hv;Zg.exports._enoent=pv});var qK=y((QZe,jK)=>{"use strict";function fhe(r,e){function t(){this.constructor=r}t.prototype=e.prototype,r.prototype=new t}function uc(r,e,t,i){this.message=r,this.expected=e,this.found=t,this.location=i,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,uc)}fhe(uc,Error);uc.buildMessage=function(r,e){var t={literal:function(c){return'"'+n(c.text)+'"'},class:function(c){var u="",g;for(g=0;g0){for(g=1,f=1;g>",re=de(">>",!1),me=">&",tt=de(">&",!1),Rt=">",It=de(">",!1),Ur="<<<",oi=de("<<<",!1),pi="<&",pr=de("<&",!1),di="<",ai=de("<",!1),Os=function(m){return{type:"argument",segments:[].concat(...m)}},dr=function(m){return m},Bi="$'",_n=de("$'",!1),pa="'",EA=de("'",!1),kg=function(m){return[{type:"text",text:m}]},Zn='""',IA=de('""',!1),da=function(){return{type:"text",text:""}},Jp='"',yA=de('"',!1),wA=function(m){return m},Br=function(m){return{type:"arithmetic",arithmetic:m,quoted:!0}},Vl=function(m){return{type:"shell",shell:m,quoted:!0}},Rg=function(m){return{type:"variable",...m,quoted:!0}},Eo=function(m){return{type:"text",text:m}},Fg=function(m){return{type:"arithmetic",arithmetic:m,quoted:!1}},Wp=function(m){return{type:"shell",shell:m,quoted:!1}},zp=function(m){return{type:"variable",...m,quoted:!1}},Pr=function(m){return{type:"glob",pattern:m}},oe=/^[^']/,Io=Ye(["'"],!0,!1),kn=function(m){return m.join("")},Ng=/^[^$"]/,bt=Ye(["$",'"'],!0,!1),Xl=`\\ -`,Rn=de(`\\ -`,!1),$n=function(){return""},es="\\",ut=de("\\",!1),yo=/^[\\$"`]/,at=Ye(["\\","$",'"',"`"],!1,!1),ln=function(m){return m},S="\\a",Lt=de("\\a",!1),Tg=function(){return"a"},_l="\\b",Vp=de("\\b",!1),Xp=function(){return"\b"},_p=/^[Ee]/,Zp=Ye(["E","e"],!1,!1),$p=function(){return"\x1B"},G="\\f",yt=de("\\f",!1),BA=function(){return"\f"},Wi="\\n",Zl=de("\\n",!1),We=function(){return` -`},Ca="\\r",Lg=de("\\r",!1),uI=function(){return"\r"},ed="\\t",gI=de("\\t",!1),ar=function(){return" "},Fn="\\v",$l=de("\\v",!1),td=function(){return"\v"},Ms=/^[\\'"?]/,ma=Ye(["\\","'",'"',"?"],!1,!1),cn=function(m){return String.fromCharCode(parseInt(m,16))},ke="\\x",Og=de("\\x",!1),ec="\\u",Us=de("\\u",!1),tc="\\U",bA=de("\\U",!1),Mg=function(m){return String.fromCodePoint(parseInt(m,16))},Ug=/^[0-7]/,Ea=Ye([["0","7"]],!1,!1),Ia=/^[0-9a-fA-f]/,$e=Ye([["0","9"],["a","f"],["A","f"]],!1,!1),wo=rt(),QA="-",rc=de("-",!1),Ks="+",ic=de("+",!1),fI=".",rd=de(".",!1),Kg=function(m,Q,F){return{type:"number",value:(m==="-"?-1:1)*parseFloat(Q.join("")+"."+F.join(""))}},id=function(m,Q){return{type:"number",value:(m==="-"?-1:1)*parseInt(Q.join(""))}},hI=function(m){return{type:"variable",...m}},nc=function(m){return{type:"variable",name:m}},pI=function(m){return m},Hg="*",SA=de("*",!1),Nr="/",dI=de("/",!1),Hs=function(m,Q,F){return{type:Q==="*"?"multiplication":"division",right:F}},Gs=function(m,Q){return Q.reduce((F,K)=>({left:F,...K}),m)},Gg=function(m,Q,F){return{type:Q==="+"?"addition":"subtraction",right:F}},vA="$((",R=de("$((",!1),q="))",pe=de("))",!1),Ne=function(m){return m},xe="$(",qe=de("$(",!1),dt=function(m){return m},Ft="${",Nn=de("${",!1),vS=":-",AU=de(":-",!1),lU=function(m,Q){return{name:m,defaultValue:Q}},xS=":-}",cU=de(":-}",!1),uU=function(m){return{name:m,defaultValue:[]}},PS=":+",gU=de(":+",!1),fU=function(m,Q){return{name:m,alternativeValue:Q}},DS=":+}",hU=de(":+}",!1),pU=function(m){return{name:m,alternativeValue:[]}},kS=function(m){return{name:m}},dU="$",CU=de("$",!1),mU=function(m){return e.isGlobPattern(m)},EU=function(m){return m},RS=/^[a-zA-Z0-9_]/,FS=Ye([["a","z"],["A","Z"],["0","9"],"_"],!1,!1),NS=function(){return O()},TS=/^[$@*?#a-zA-Z0-9_\-]/,LS=Ye(["$","@","*","?","#",["a","z"],["A","Z"],["0","9"],"_","-"],!1,!1),IU=/^[(){}<>$|&; \t"']/,Yg=Ye(["(",")","{","}","<",">","$","|","&",";"," "," ",'"',"'"],!1,!1),OS=/^[<>&; \t"']/,MS=Ye(["<",">","&",";"," "," ",'"',"'"],!1,!1),CI=/^[ \t]/,mI=Ye([" "," "],!1,!1),b=0,Fe=0,xA=[{line:1,column:1}],d=0,E=[],I=0,k;if("startRule"in e){if(!(e.startRule in i))throw new Error(`Can't start parsing from rule "`+e.startRule+'".');n=i[e.startRule]}function O(){return r.substring(Fe,b)}function X(){return Et(Fe,b)}function te(m,Q){throw Q=Q!==void 0?Q:Et(Fe,b),Fi([At(m)],r.substring(Fe,b),Q)}function ye(m,Q){throw Q=Q!==void 0?Q:Et(Fe,b),Tn(m,Q)}function de(m,Q){return{type:"literal",text:m,ignoreCase:Q}}function Ye(m,Q,F){return{type:"class",parts:m,inverted:Q,ignoreCase:F}}function rt(){return{type:"any"}}function wt(){return{type:"end"}}function At(m){return{type:"other",description:m}}function et(m){var Q=xA[m],F;if(Q)return Q;for(F=m-1;!xA[F];)F--;for(Q=xA[F],Q={line:Q.line,column:Q.column};Fd&&(d=b,E=[]),E.push(m))}function Tn(m,Q){return new uc(m,null,null,Q)}function Fi(m,Q,F){return new uc(uc.buildMessage(m,Q),m,Q,F)}function PA(){var m,Q;return m=b,Q=Kr(),Q===t&&(Q=null),Q!==t&&(Fe=m,Q=s(Q)),m=Q,m}function Kr(){var m,Q,F,K,ce;if(m=b,Q=Hr(),Q!==t){for(F=[],K=Me();K!==t;)F.push(K),K=Me();F!==t?(K=ya(),K!==t?(ce=ts(),ce===t&&(ce=null),ce!==t?(Fe=m,Q=o(Q,K,ce),m=Q):(b=m,m=t)):(b=m,m=t)):(b=m,m=t)}else b=m,m=t;if(m===t)if(m=b,Q=Hr(),Q!==t){for(F=[],K=Me();K!==t;)F.push(K),K=Me();F!==t?(K=ya(),K===t&&(K=null),K!==t?(Fe=m,Q=a(Q,K),m=Q):(b=m,m=t)):(b=m,m=t)}else b=m,m=t;return m}function ts(){var m,Q,F,K,ce;for(m=b,Q=[],F=Me();F!==t;)Q.push(F),F=Me();if(Q!==t)if(F=Kr(),F!==t){for(K=[],ce=Me();ce!==t;)K.push(ce),ce=Me();K!==t?(Fe=m,Q=l(F),m=Q):(b=m,m=t)}else b=m,m=t;else b=m,m=t;return m}function ya(){var m;return r.charCodeAt(b)===59?(m=c,b++):(m=t,I===0&&Be(u)),m===t&&(r.charCodeAt(b)===38?(m=g,b++):(m=t,I===0&&Be(f))),m}function Hr(){var m,Q,F;return m=b,Q=yU(),Q!==t?(F=$ge(),F===t&&(F=null),F!==t?(Fe=m,Q=h(Q,F),m=Q):(b=m,m=t)):(b=m,m=t),m}function $ge(){var m,Q,F,K,ce,Qe,ft;for(m=b,Q=[],F=Me();F!==t;)Q.push(F),F=Me();if(Q!==t)if(F=efe(),F!==t){for(K=[],ce=Me();ce!==t;)K.push(ce),ce=Me();if(K!==t)if(ce=Hr(),ce!==t){for(Qe=[],ft=Me();ft!==t;)Qe.push(ft),ft=Me();Qe!==t?(Fe=m,Q=p(F,ce),m=Q):(b=m,m=t)}else b=m,m=t;else b=m,m=t}else b=m,m=t;else b=m,m=t;return m}function efe(){var m;return r.substr(b,2)===C?(m=C,b+=2):(m=t,I===0&&Be(w)),m===t&&(r.substr(b,2)===B?(m=B,b+=2):(m=t,I===0&&Be(v))),m}function yU(){var m,Q,F;return m=b,Q=ife(),Q!==t?(F=tfe(),F===t&&(F=null),F!==t?(Fe=m,Q=D(Q,F),m=Q):(b=m,m=t)):(b=m,m=t),m}function tfe(){var m,Q,F,K,ce,Qe,ft;for(m=b,Q=[],F=Me();F!==t;)Q.push(F),F=Me();if(Q!==t)if(F=rfe(),F!==t){for(K=[],ce=Me();ce!==t;)K.push(ce),ce=Me();if(K!==t)if(ce=yU(),ce!==t){for(Qe=[],ft=Me();ft!==t;)Qe.push(ft),ft=Me();Qe!==t?(Fe=m,Q=T(F,ce),m=Q):(b=m,m=t)}else b=m,m=t;else b=m,m=t}else b=m,m=t;else b=m,m=t;return m}function rfe(){var m;return r.substr(b,2)===H?(m=H,b+=2):(m=t,I===0&&Be(j)),m===t&&(r.charCodeAt(b)===124?(m=$,b++):(m=t,I===0&&Be(V))),m}function EI(){var m,Q,F,K,ce,Qe;if(m=b,Q=FU(),Q!==t)if(r.charCodeAt(b)===61?(F=W,b++):(F=t,I===0&&Be(Z)),F!==t)if(K=bU(),K!==t){for(ce=[],Qe=Me();Qe!==t;)ce.push(Qe),Qe=Me();ce!==t?(Fe=m,Q=A(Q,K),m=Q):(b=m,m=t)}else b=m,m=t;else b=m,m=t;else b=m,m=t;if(m===t)if(m=b,Q=FU(),Q!==t)if(r.charCodeAt(b)===61?(F=W,b++):(F=t,I===0&&Be(Z)),F!==t){for(K=[],ce=Me();ce!==t;)K.push(ce),ce=Me();K!==t?(Fe=m,Q=ae(Q),m=Q):(b=m,m=t)}else b=m,m=t;else b=m,m=t;return m}function ife(){var m,Q,F,K,ce,Qe,ft,Bt,Vr,Ci,rs;for(m=b,Q=[],F=Me();F!==t;)Q.push(F),F=Me();if(Q!==t)if(r.charCodeAt(b)===40?(F=ge,b++):(F=t,I===0&&Be(_)),F!==t){for(K=[],ce=Me();ce!==t;)K.push(ce),ce=Me();if(K!==t)if(ce=Kr(),ce!==t){for(Qe=[],ft=Me();ft!==t;)Qe.push(ft),ft=Me();if(Qe!==t)if(r.charCodeAt(b)===41?(ft=L,b++):(ft=t,I===0&&Be(N)),ft!==t){for(Bt=[],Vr=Me();Vr!==t;)Bt.push(Vr),Vr=Me();if(Bt!==t){for(Vr=[],Ci=nd();Ci!==t;)Vr.push(Ci),Ci=nd();if(Vr!==t){for(Ci=[],rs=Me();rs!==t;)Ci.push(rs),rs=Me();Ci!==t?(Fe=m,Q=ue(ce,Vr),m=Q):(b=m,m=t)}else b=m,m=t}else b=m,m=t}else b=m,m=t;else b=m,m=t}else b=m,m=t;else b=m,m=t}else b=m,m=t;else b=m,m=t;if(m===t){for(m=b,Q=[],F=Me();F!==t;)Q.push(F),F=Me();if(Q!==t)if(r.charCodeAt(b)===123?(F=we,b++):(F=t,I===0&&Be(Te)),F!==t){for(K=[],ce=Me();ce!==t;)K.push(ce),ce=Me();if(K!==t)if(ce=Kr(),ce!==t){for(Qe=[],ft=Me();ft!==t;)Qe.push(ft),ft=Me();if(Qe!==t)if(r.charCodeAt(b)===125?(ft=Pe,b++):(ft=t,I===0&&Be(Le)),ft!==t){for(Bt=[],Vr=Me();Vr!==t;)Bt.push(Vr),Vr=Me();if(Bt!==t){for(Vr=[],Ci=nd();Ci!==t;)Vr.push(Ci),Ci=nd();if(Vr!==t){for(Ci=[],rs=Me();rs!==t;)Ci.push(rs),rs=Me();Ci!==t?(Fe=m,Q=se(ce,Vr),m=Q):(b=m,m=t)}else b=m,m=t}else b=m,m=t}else b=m,m=t;else b=m,m=t}else b=m,m=t;else b=m,m=t}else b=m,m=t;else b=m,m=t;if(m===t){for(m=b,Q=[],F=Me();F!==t;)Q.push(F),F=Me();if(Q!==t){for(F=[],K=EI();K!==t;)F.push(K),K=EI();if(F!==t){for(K=[],ce=Me();ce!==t;)K.push(ce),ce=Me();if(K!==t){if(ce=[],Qe=BU(),Qe!==t)for(;Qe!==t;)ce.push(Qe),Qe=BU();else ce=t;if(ce!==t){for(Qe=[],ft=Me();ft!==t;)Qe.push(ft),ft=Me();Qe!==t?(Fe=m,Q=Ae(F,ce),m=Q):(b=m,m=t)}else b=m,m=t}else b=m,m=t}else b=m,m=t}else b=m,m=t;if(m===t){for(m=b,Q=[],F=Me();F!==t;)Q.push(F),F=Me();if(Q!==t){if(F=[],K=EI(),K!==t)for(;K!==t;)F.push(K),K=EI();else F=t;if(F!==t){for(K=[],ce=Me();ce!==t;)K.push(ce),ce=Me();K!==t?(Fe=m,Q=be(F),m=Q):(b=m,m=t)}else b=m,m=t}else b=m,m=t}}}return m}function wU(){var m,Q,F,K,ce;for(m=b,Q=[],F=Me();F!==t;)Q.push(F),F=Me();if(Q!==t){if(F=[],K=II(),K!==t)for(;K!==t;)F.push(K),K=II();else F=t;if(F!==t){for(K=[],ce=Me();ce!==t;)K.push(ce),ce=Me();K!==t?(Fe=m,Q=fe(F),m=Q):(b=m,m=t)}else b=m,m=t}else b=m,m=t;return m}function BU(){var m,Q,F;for(m=b,Q=[],F=Me();F!==t;)Q.push(F),F=Me();if(Q!==t?(F=nd(),F!==t?(Fe=m,Q=le(F),m=Q):(b=m,m=t)):(b=m,m=t),m===t){for(m=b,Q=[],F=Me();F!==t;)Q.push(F),F=Me();Q!==t?(F=II(),F!==t?(Fe=m,Q=le(F),m=Q):(b=m,m=t)):(b=m,m=t)}return m}function nd(){var m,Q,F,K,ce;for(m=b,Q=[],F=Me();F!==t;)Q.push(F),F=Me();return Q!==t?(Ge.test(r.charAt(b))?(F=r.charAt(b),b++):(F=t,I===0&&Be(ie)),F===t&&(F=null),F!==t?(K=nfe(),K!==t?(ce=II(),ce!==t?(Fe=m,Q=Y(F,K,ce),m=Q):(b=m,m=t)):(b=m,m=t)):(b=m,m=t)):(b=m,m=t),m}function nfe(){var m;return r.substr(b,2)===he?(m=he,b+=2):(m=t,I===0&&Be(re)),m===t&&(r.substr(b,2)===me?(m=me,b+=2):(m=t,I===0&&Be(tt)),m===t&&(r.charCodeAt(b)===62?(m=Rt,b++):(m=t,I===0&&Be(It)),m===t&&(r.substr(b,3)===Ur?(m=Ur,b+=3):(m=t,I===0&&Be(oi)),m===t&&(r.substr(b,2)===pi?(m=pi,b+=2):(m=t,I===0&&Be(pr)),m===t&&(r.charCodeAt(b)===60?(m=di,b++):(m=t,I===0&&Be(ai))))))),m}function II(){var m,Q,F;for(m=b,Q=[],F=Me();F!==t;)Q.push(F),F=Me();return Q!==t?(F=bU(),F!==t?(Fe=m,Q=le(F),m=Q):(b=m,m=t)):(b=m,m=t),m}function bU(){var m,Q,F;if(m=b,Q=[],F=QU(),F!==t)for(;F!==t;)Q.push(F),F=QU();else Q=t;return Q!==t&&(Fe=m,Q=Os(Q)),m=Q,m}function QU(){var m,Q;return m=b,Q=sfe(),Q!==t&&(Fe=m,Q=dr(Q)),m=Q,m===t&&(m=b,Q=ofe(),Q!==t&&(Fe=m,Q=dr(Q)),m=Q,m===t&&(m=b,Q=afe(),Q!==t&&(Fe=m,Q=dr(Q)),m=Q,m===t&&(m=b,Q=Afe(),Q!==t&&(Fe=m,Q=dr(Q)),m=Q))),m}function sfe(){var m,Q,F,K;return m=b,r.substr(b,2)===Bi?(Q=Bi,b+=2):(Q=t,I===0&&Be(_n)),Q!==t?(F=ufe(),F!==t?(r.charCodeAt(b)===39?(K=pa,b++):(K=t,I===0&&Be(EA)),K!==t?(Fe=m,Q=kg(F),m=Q):(b=m,m=t)):(b=m,m=t)):(b=m,m=t),m}function ofe(){var m,Q,F,K;return m=b,r.charCodeAt(b)===39?(Q=pa,b++):(Q=t,I===0&&Be(EA)),Q!==t?(F=lfe(),F!==t?(r.charCodeAt(b)===39?(K=pa,b++):(K=t,I===0&&Be(EA)),K!==t?(Fe=m,Q=kg(F),m=Q):(b=m,m=t)):(b=m,m=t)):(b=m,m=t),m}function afe(){var m,Q,F,K;if(m=b,r.substr(b,2)===Zn?(Q=Zn,b+=2):(Q=t,I===0&&Be(IA)),Q!==t&&(Fe=m,Q=da()),m=Q,m===t)if(m=b,r.charCodeAt(b)===34?(Q=Jp,b++):(Q=t,I===0&&Be(yA)),Q!==t){for(F=[],K=SU();K!==t;)F.push(K),K=SU();F!==t?(r.charCodeAt(b)===34?(K=Jp,b++):(K=t,I===0&&Be(yA)),K!==t?(Fe=m,Q=wA(F),m=Q):(b=m,m=t)):(b=m,m=t)}else b=m,m=t;return m}function Afe(){var m,Q,F;if(m=b,Q=[],F=vU(),F!==t)for(;F!==t;)Q.push(F),F=vU();else Q=t;return Q!==t&&(Fe=m,Q=wA(Q)),m=Q,m}function SU(){var m,Q;return m=b,Q=kU(),Q!==t&&(Fe=m,Q=Br(Q)),m=Q,m===t&&(m=b,Q=RU(),Q!==t&&(Fe=m,Q=Vl(Q)),m=Q,m===t&&(m=b,Q=GS(),Q!==t&&(Fe=m,Q=Rg(Q)),m=Q,m===t&&(m=b,Q=cfe(),Q!==t&&(Fe=m,Q=Eo(Q)),m=Q))),m}function vU(){var m,Q;return m=b,Q=kU(),Q!==t&&(Fe=m,Q=Fg(Q)),m=Q,m===t&&(m=b,Q=RU(),Q!==t&&(Fe=m,Q=Wp(Q)),m=Q,m===t&&(m=b,Q=GS(),Q!==t&&(Fe=m,Q=zp(Q)),m=Q,m===t&&(m=b,Q=hfe(),Q!==t&&(Fe=m,Q=Pr(Q)),m=Q,m===t&&(m=b,Q=ffe(),Q!==t&&(Fe=m,Q=Eo(Q)),m=Q)))),m}function lfe(){var m,Q,F;for(m=b,Q=[],oe.test(r.charAt(b))?(F=r.charAt(b),b++):(F=t,I===0&&Be(Io));F!==t;)Q.push(F),oe.test(r.charAt(b))?(F=r.charAt(b),b++):(F=t,I===0&&Be(Io));return Q!==t&&(Fe=m,Q=kn(Q)),m=Q,m}function cfe(){var m,Q,F;if(m=b,Q=[],F=xU(),F===t&&(Ng.test(r.charAt(b))?(F=r.charAt(b),b++):(F=t,I===0&&Be(bt))),F!==t)for(;F!==t;)Q.push(F),F=xU(),F===t&&(Ng.test(r.charAt(b))?(F=r.charAt(b),b++):(F=t,I===0&&Be(bt)));else Q=t;return Q!==t&&(Fe=m,Q=kn(Q)),m=Q,m}function xU(){var m,Q,F;return m=b,r.substr(b,2)===Xl?(Q=Xl,b+=2):(Q=t,I===0&&Be(Rn)),Q!==t&&(Fe=m,Q=$n()),m=Q,m===t&&(m=b,r.charCodeAt(b)===92?(Q=es,b++):(Q=t,I===0&&Be(ut)),Q!==t?(yo.test(r.charAt(b))?(F=r.charAt(b),b++):(F=t,I===0&&Be(at)),F!==t?(Fe=m,Q=ln(F),m=Q):(b=m,m=t)):(b=m,m=t)),m}function ufe(){var m,Q,F;for(m=b,Q=[],F=PU(),F===t&&(oe.test(r.charAt(b))?(F=r.charAt(b),b++):(F=t,I===0&&Be(Io)));F!==t;)Q.push(F),F=PU(),F===t&&(oe.test(r.charAt(b))?(F=r.charAt(b),b++):(F=t,I===0&&Be(Io)));return Q!==t&&(Fe=m,Q=kn(Q)),m=Q,m}function PU(){var m,Q,F;return m=b,r.substr(b,2)===S?(Q=S,b+=2):(Q=t,I===0&&Be(Lt)),Q!==t&&(Fe=m,Q=Tg()),m=Q,m===t&&(m=b,r.substr(b,2)===_l?(Q=_l,b+=2):(Q=t,I===0&&Be(Vp)),Q!==t&&(Fe=m,Q=Xp()),m=Q,m===t&&(m=b,r.charCodeAt(b)===92?(Q=es,b++):(Q=t,I===0&&Be(ut)),Q!==t?(_p.test(r.charAt(b))?(F=r.charAt(b),b++):(F=t,I===0&&Be(Zp)),F!==t?(Fe=m,Q=$p(),m=Q):(b=m,m=t)):(b=m,m=t),m===t&&(m=b,r.substr(b,2)===G?(Q=G,b+=2):(Q=t,I===0&&Be(yt)),Q!==t&&(Fe=m,Q=BA()),m=Q,m===t&&(m=b,r.substr(b,2)===Wi?(Q=Wi,b+=2):(Q=t,I===0&&Be(Zl)),Q!==t&&(Fe=m,Q=We()),m=Q,m===t&&(m=b,r.substr(b,2)===Ca?(Q=Ca,b+=2):(Q=t,I===0&&Be(Lg)),Q!==t&&(Fe=m,Q=uI()),m=Q,m===t&&(m=b,r.substr(b,2)===ed?(Q=ed,b+=2):(Q=t,I===0&&Be(gI)),Q!==t&&(Fe=m,Q=ar()),m=Q,m===t&&(m=b,r.substr(b,2)===Fn?(Q=Fn,b+=2):(Q=t,I===0&&Be($l)),Q!==t&&(Fe=m,Q=td()),m=Q,m===t&&(m=b,r.charCodeAt(b)===92?(Q=es,b++):(Q=t,I===0&&Be(ut)),Q!==t?(Ms.test(r.charAt(b))?(F=r.charAt(b),b++):(F=t,I===0&&Be(ma)),F!==t?(Fe=m,Q=ln(F),m=Q):(b=m,m=t)):(b=m,m=t),m===t&&(m=gfe()))))))))),m}function gfe(){var m,Q,F,K,ce,Qe,ft,Bt,Vr,Ci,rs,YS;return m=b,r.charCodeAt(b)===92?(Q=es,b++):(Q=t,I===0&&Be(ut)),Q!==t?(F=US(),F!==t?(Fe=m,Q=cn(F),m=Q):(b=m,m=t)):(b=m,m=t),m===t&&(m=b,r.substr(b,2)===ke?(Q=ke,b+=2):(Q=t,I===0&&Be(Og)),Q!==t?(F=b,K=b,ce=US(),ce!==t?(Qe=Ln(),Qe!==t?(ce=[ce,Qe],K=ce):(b=K,K=t)):(b=K,K=t),K===t&&(K=US()),K!==t?F=r.substring(F,b):F=K,F!==t?(Fe=m,Q=cn(F),m=Q):(b=m,m=t)):(b=m,m=t),m===t&&(m=b,r.substr(b,2)===ec?(Q=ec,b+=2):(Q=t,I===0&&Be(Us)),Q!==t?(F=b,K=b,ce=Ln(),ce!==t?(Qe=Ln(),Qe!==t?(ft=Ln(),ft!==t?(Bt=Ln(),Bt!==t?(ce=[ce,Qe,ft,Bt],K=ce):(b=K,K=t)):(b=K,K=t)):(b=K,K=t)):(b=K,K=t),K!==t?F=r.substring(F,b):F=K,F!==t?(Fe=m,Q=cn(F),m=Q):(b=m,m=t)):(b=m,m=t),m===t&&(m=b,r.substr(b,2)===tc?(Q=tc,b+=2):(Q=t,I===0&&Be(bA)),Q!==t?(F=b,K=b,ce=Ln(),ce!==t?(Qe=Ln(),Qe!==t?(ft=Ln(),ft!==t?(Bt=Ln(),Bt!==t?(Vr=Ln(),Vr!==t?(Ci=Ln(),Ci!==t?(rs=Ln(),rs!==t?(YS=Ln(),YS!==t?(ce=[ce,Qe,ft,Bt,Vr,Ci,rs,YS],K=ce):(b=K,K=t)):(b=K,K=t)):(b=K,K=t)):(b=K,K=t)):(b=K,K=t)):(b=K,K=t)):(b=K,K=t)):(b=K,K=t),K!==t?F=r.substring(F,b):F=K,F!==t?(Fe=m,Q=Mg(F),m=Q):(b=m,m=t)):(b=m,m=t)))),m}function US(){var m;return Ug.test(r.charAt(b))?(m=r.charAt(b),b++):(m=t,I===0&&Be(Ea)),m}function Ln(){var m;return Ia.test(r.charAt(b))?(m=r.charAt(b),b++):(m=t,I===0&&Be($e)),m}function ffe(){var m,Q,F,K,ce;if(m=b,Q=[],F=b,r.charCodeAt(b)===92?(K=es,b++):(K=t,I===0&&Be(ut)),K!==t?(r.length>b?(ce=r.charAt(b),b++):(ce=t,I===0&&Be(wo)),ce!==t?(Fe=F,K=ln(ce),F=K):(b=F,F=t)):(b=F,F=t),F===t&&(F=b,K=b,I++,ce=NU(),I--,ce===t?K=void 0:(b=K,K=t),K!==t?(r.length>b?(ce=r.charAt(b),b++):(ce=t,I===0&&Be(wo)),ce!==t?(Fe=F,K=ln(ce),F=K):(b=F,F=t)):(b=F,F=t)),F!==t)for(;F!==t;)Q.push(F),F=b,r.charCodeAt(b)===92?(K=es,b++):(K=t,I===0&&Be(ut)),K!==t?(r.length>b?(ce=r.charAt(b),b++):(ce=t,I===0&&Be(wo)),ce!==t?(Fe=F,K=ln(ce),F=K):(b=F,F=t)):(b=F,F=t),F===t&&(F=b,K=b,I++,ce=NU(),I--,ce===t?K=void 0:(b=K,K=t),K!==t?(r.length>b?(ce=r.charAt(b),b++):(ce=t,I===0&&Be(wo)),ce!==t?(Fe=F,K=ln(ce),F=K):(b=F,F=t)):(b=F,F=t));else Q=t;return Q!==t&&(Fe=m,Q=kn(Q)),m=Q,m}function KS(){var m,Q,F,K,ce,Qe;if(m=b,r.charCodeAt(b)===45?(Q=QA,b++):(Q=t,I===0&&Be(rc)),Q===t&&(r.charCodeAt(b)===43?(Q=Ks,b++):(Q=t,I===0&&Be(ic))),Q===t&&(Q=null),Q!==t){if(F=[],Ge.test(r.charAt(b))?(K=r.charAt(b),b++):(K=t,I===0&&Be(ie)),K!==t)for(;K!==t;)F.push(K),Ge.test(r.charAt(b))?(K=r.charAt(b),b++):(K=t,I===0&&Be(ie));else F=t;if(F!==t)if(r.charCodeAt(b)===46?(K=fI,b++):(K=t,I===0&&Be(rd)),K!==t){if(ce=[],Ge.test(r.charAt(b))?(Qe=r.charAt(b),b++):(Qe=t,I===0&&Be(ie)),Qe!==t)for(;Qe!==t;)ce.push(Qe),Ge.test(r.charAt(b))?(Qe=r.charAt(b),b++):(Qe=t,I===0&&Be(ie));else ce=t;ce!==t?(Fe=m,Q=Kg(Q,F,ce),m=Q):(b=m,m=t)}else b=m,m=t;else b=m,m=t}else b=m,m=t;if(m===t){if(m=b,r.charCodeAt(b)===45?(Q=QA,b++):(Q=t,I===0&&Be(rc)),Q===t&&(r.charCodeAt(b)===43?(Q=Ks,b++):(Q=t,I===0&&Be(ic))),Q===t&&(Q=null),Q!==t){if(F=[],Ge.test(r.charAt(b))?(K=r.charAt(b),b++):(K=t,I===0&&Be(ie)),K!==t)for(;K!==t;)F.push(K),Ge.test(r.charAt(b))?(K=r.charAt(b),b++):(K=t,I===0&&Be(ie));else F=t;F!==t?(Fe=m,Q=id(Q,F),m=Q):(b=m,m=t)}else b=m,m=t;if(m===t&&(m=b,Q=GS(),Q!==t&&(Fe=m,Q=hI(Q)),m=Q,m===t&&(m=b,Q=sc(),Q!==t&&(Fe=m,Q=nc(Q)),m=Q,m===t)))if(m=b,r.charCodeAt(b)===40?(Q=ge,b++):(Q=t,I===0&&Be(_)),Q!==t){for(F=[],K=Me();K!==t;)F.push(K),K=Me();if(F!==t)if(K=DU(),K!==t){for(ce=[],Qe=Me();Qe!==t;)ce.push(Qe),Qe=Me();ce!==t?(r.charCodeAt(b)===41?(Qe=L,b++):(Qe=t,I===0&&Be(N)),Qe!==t?(Fe=m,Q=pI(K),m=Q):(b=m,m=t)):(b=m,m=t)}else b=m,m=t;else b=m,m=t}else b=m,m=t}return m}function HS(){var m,Q,F,K,ce,Qe,ft,Bt;if(m=b,Q=KS(),Q!==t){for(F=[],K=b,ce=[],Qe=Me();Qe!==t;)ce.push(Qe),Qe=Me();if(ce!==t)if(r.charCodeAt(b)===42?(Qe=Hg,b++):(Qe=t,I===0&&Be(SA)),Qe===t&&(r.charCodeAt(b)===47?(Qe=Nr,b++):(Qe=t,I===0&&Be(dI))),Qe!==t){for(ft=[],Bt=Me();Bt!==t;)ft.push(Bt),Bt=Me();ft!==t?(Bt=KS(),Bt!==t?(Fe=K,ce=Hs(Q,Qe,Bt),K=ce):(b=K,K=t)):(b=K,K=t)}else b=K,K=t;else b=K,K=t;for(;K!==t;){for(F.push(K),K=b,ce=[],Qe=Me();Qe!==t;)ce.push(Qe),Qe=Me();if(ce!==t)if(r.charCodeAt(b)===42?(Qe=Hg,b++):(Qe=t,I===0&&Be(SA)),Qe===t&&(r.charCodeAt(b)===47?(Qe=Nr,b++):(Qe=t,I===0&&Be(dI))),Qe!==t){for(ft=[],Bt=Me();Bt!==t;)ft.push(Bt),Bt=Me();ft!==t?(Bt=KS(),Bt!==t?(Fe=K,ce=Hs(Q,Qe,Bt),K=ce):(b=K,K=t)):(b=K,K=t)}else b=K,K=t;else b=K,K=t}F!==t?(Fe=m,Q=Gs(Q,F),m=Q):(b=m,m=t)}else b=m,m=t;return m}function DU(){var m,Q,F,K,ce,Qe,ft,Bt;if(m=b,Q=HS(),Q!==t){for(F=[],K=b,ce=[],Qe=Me();Qe!==t;)ce.push(Qe),Qe=Me();if(ce!==t)if(r.charCodeAt(b)===43?(Qe=Ks,b++):(Qe=t,I===0&&Be(ic)),Qe===t&&(r.charCodeAt(b)===45?(Qe=QA,b++):(Qe=t,I===0&&Be(rc))),Qe!==t){for(ft=[],Bt=Me();Bt!==t;)ft.push(Bt),Bt=Me();ft!==t?(Bt=HS(),Bt!==t?(Fe=K,ce=Gg(Q,Qe,Bt),K=ce):(b=K,K=t)):(b=K,K=t)}else b=K,K=t;else b=K,K=t;for(;K!==t;){for(F.push(K),K=b,ce=[],Qe=Me();Qe!==t;)ce.push(Qe),Qe=Me();if(ce!==t)if(r.charCodeAt(b)===43?(Qe=Ks,b++):(Qe=t,I===0&&Be(ic)),Qe===t&&(r.charCodeAt(b)===45?(Qe=QA,b++):(Qe=t,I===0&&Be(rc))),Qe!==t){for(ft=[],Bt=Me();Bt!==t;)ft.push(Bt),Bt=Me();ft!==t?(Bt=HS(),Bt!==t?(Fe=K,ce=Gg(Q,Qe,Bt),K=ce):(b=K,K=t)):(b=K,K=t)}else b=K,K=t;else b=K,K=t}F!==t?(Fe=m,Q=Gs(Q,F),m=Q):(b=m,m=t)}else b=m,m=t;return m}function kU(){var m,Q,F,K,ce,Qe;if(m=b,r.substr(b,3)===vA?(Q=vA,b+=3):(Q=t,I===0&&Be(R)),Q!==t){for(F=[],K=Me();K!==t;)F.push(K),K=Me();if(F!==t)if(K=DU(),K!==t){for(ce=[],Qe=Me();Qe!==t;)ce.push(Qe),Qe=Me();ce!==t?(r.substr(b,2)===q?(Qe=q,b+=2):(Qe=t,I===0&&Be(pe)),Qe!==t?(Fe=m,Q=Ne(K),m=Q):(b=m,m=t)):(b=m,m=t)}else b=m,m=t;else b=m,m=t}else b=m,m=t;return m}function RU(){var m,Q,F,K;return m=b,r.substr(b,2)===xe?(Q=xe,b+=2):(Q=t,I===0&&Be(qe)),Q!==t?(F=Kr(),F!==t?(r.charCodeAt(b)===41?(K=L,b++):(K=t,I===0&&Be(N)),K!==t?(Fe=m,Q=dt(F),m=Q):(b=m,m=t)):(b=m,m=t)):(b=m,m=t),m}function GS(){var m,Q,F,K,ce,Qe;return m=b,r.substr(b,2)===Ft?(Q=Ft,b+=2):(Q=t,I===0&&Be(Nn)),Q!==t?(F=sc(),F!==t?(r.substr(b,2)===vS?(K=vS,b+=2):(K=t,I===0&&Be(AU)),K!==t?(ce=wU(),ce!==t?(r.charCodeAt(b)===125?(Qe=Pe,b++):(Qe=t,I===0&&Be(Le)),Qe!==t?(Fe=m,Q=lU(F,ce),m=Q):(b=m,m=t)):(b=m,m=t)):(b=m,m=t)):(b=m,m=t)):(b=m,m=t),m===t&&(m=b,r.substr(b,2)===Ft?(Q=Ft,b+=2):(Q=t,I===0&&Be(Nn)),Q!==t?(F=sc(),F!==t?(r.substr(b,3)===xS?(K=xS,b+=3):(K=t,I===0&&Be(cU)),K!==t?(Fe=m,Q=uU(F),m=Q):(b=m,m=t)):(b=m,m=t)):(b=m,m=t),m===t&&(m=b,r.substr(b,2)===Ft?(Q=Ft,b+=2):(Q=t,I===0&&Be(Nn)),Q!==t?(F=sc(),F!==t?(r.substr(b,2)===PS?(K=PS,b+=2):(K=t,I===0&&Be(gU)),K!==t?(ce=wU(),ce!==t?(r.charCodeAt(b)===125?(Qe=Pe,b++):(Qe=t,I===0&&Be(Le)),Qe!==t?(Fe=m,Q=fU(F,ce),m=Q):(b=m,m=t)):(b=m,m=t)):(b=m,m=t)):(b=m,m=t)):(b=m,m=t),m===t&&(m=b,r.substr(b,2)===Ft?(Q=Ft,b+=2):(Q=t,I===0&&Be(Nn)),Q!==t?(F=sc(),F!==t?(r.substr(b,3)===DS?(K=DS,b+=3):(K=t,I===0&&Be(hU)),K!==t?(Fe=m,Q=pU(F),m=Q):(b=m,m=t)):(b=m,m=t)):(b=m,m=t),m===t&&(m=b,r.substr(b,2)===Ft?(Q=Ft,b+=2):(Q=t,I===0&&Be(Nn)),Q!==t?(F=sc(),F!==t?(r.charCodeAt(b)===125?(K=Pe,b++):(K=t,I===0&&Be(Le)),K!==t?(Fe=m,Q=kS(F),m=Q):(b=m,m=t)):(b=m,m=t)):(b=m,m=t),m===t&&(m=b,r.charCodeAt(b)===36?(Q=dU,b++):(Q=t,I===0&&Be(CU)),Q!==t?(F=sc(),F!==t?(Fe=m,Q=kS(F),m=Q):(b=m,m=t)):(b=m,m=t)))))),m}function hfe(){var m,Q,F;return m=b,Q=pfe(),Q!==t?(Fe=b,F=mU(Q),F?F=void 0:F=t,F!==t?(Fe=m,Q=EU(Q),m=Q):(b=m,m=t)):(b=m,m=t),m}function pfe(){var m,Q,F,K,ce;if(m=b,Q=[],F=b,K=b,I++,ce=TU(),I--,ce===t?K=void 0:(b=K,K=t),K!==t?(r.length>b?(ce=r.charAt(b),b++):(ce=t,I===0&&Be(wo)),ce!==t?(Fe=F,K=ln(ce),F=K):(b=F,F=t)):(b=F,F=t),F!==t)for(;F!==t;)Q.push(F),F=b,K=b,I++,ce=TU(),I--,ce===t?K=void 0:(b=K,K=t),K!==t?(r.length>b?(ce=r.charAt(b),b++):(ce=t,I===0&&Be(wo)),ce!==t?(Fe=F,K=ln(ce),F=K):(b=F,F=t)):(b=F,F=t);else Q=t;return Q!==t&&(Fe=m,Q=kn(Q)),m=Q,m}function FU(){var m,Q,F;if(m=b,Q=[],RS.test(r.charAt(b))?(F=r.charAt(b),b++):(F=t,I===0&&Be(FS)),F!==t)for(;F!==t;)Q.push(F),RS.test(r.charAt(b))?(F=r.charAt(b),b++):(F=t,I===0&&Be(FS));else Q=t;return Q!==t&&(Fe=m,Q=NS()),m=Q,m}function sc(){var m,Q,F;if(m=b,Q=[],TS.test(r.charAt(b))?(F=r.charAt(b),b++):(F=t,I===0&&Be(LS)),F!==t)for(;F!==t;)Q.push(F),TS.test(r.charAt(b))?(F=r.charAt(b),b++):(F=t,I===0&&Be(LS));else Q=t;return Q!==t&&(Fe=m,Q=NS()),m=Q,m}function NU(){var m;return IU.test(r.charAt(b))?(m=r.charAt(b),b++):(m=t,I===0&&Be(Yg)),m}function TU(){var m;return OS.test(r.charAt(b))?(m=r.charAt(b),b++):(m=t,I===0&&Be(MS)),m}function Me(){var m,Q;if(m=[],CI.test(r.charAt(b))?(Q=r.charAt(b),b++):(Q=t,I===0&&Be(mI)),Q!==t)for(;Q!==t;)m.push(Q),CI.test(r.charAt(b))?(Q=r.charAt(b),b++):(Q=t,I===0&&Be(mI));else m=t;return m}if(k=n(),k!==t&&b===r.length)return k;throw k!==t&&b{"use strict";function phe(r,e){function t(){this.constructor=r}t.prototype=e.prototype,r.prototype=new t}function fc(r,e,t,i){this.message=r,this.expected=e,this.found=t,this.location=i,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,fc)}phe(fc,Error);fc.buildMessage=function(r,e){var t={literal:function(c){return'"'+n(c.text)+'"'},class:function(c){var u="",g;for(g=0;g0){for(g=1,f=1;gH&&(H=v,j=[]),j.push(ie))}function Le(ie,Y){return new fc(ie,null,null,Y)}function se(ie,Y,he){return new fc(fc.buildMessage(ie,Y),ie,Y,he)}function Ae(){var ie,Y,he,re;return ie=v,Y=be(),Y!==t?(r.charCodeAt(v)===47?(he=s,v++):(he=t,$===0&&Pe(o)),he!==t?(re=be(),re!==t?(D=ie,Y=a(Y,re),ie=Y):(v=ie,ie=t)):(v=ie,ie=t)):(v=ie,ie=t),ie===t&&(ie=v,Y=be(),Y!==t&&(D=ie,Y=l(Y)),ie=Y),ie}function be(){var ie,Y,he,re;return ie=v,Y=fe(),Y!==t?(r.charCodeAt(v)===64?(he=c,v++):(he=t,$===0&&Pe(u)),he!==t?(re=Ge(),re!==t?(D=ie,Y=g(Y,re),ie=Y):(v=ie,ie=t)):(v=ie,ie=t)):(v=ie,ie=t),ie===t&&(ie=v,Y=fe(),Y!==t&&(D=ie,Y=f(Y)),ie=Y),ie}function fe(){var ie,Y,he,re,me;return ie=v,r.charCodeAt(v)===64?(Y=c,v++):(Y=t,$===0&&Pe(u)),Y!==t?(he=le(),he!==t?(r.charCodeAt(v)===47?(re=s,v++):(re=t,$===0&&Pe(o)),re!==t?(me=le(),me!==t?(D=ie,Y=h(),ie=Y):(v=ie,ie=t)):(v=ie,ie=t)):(v=ie,ie=t)):(v=ie,ie=t),ie===t&&(ie=v,Y=le(),Y!==t&&(D=ie,Y=h()),ie=Y),ie}function le(){var ie,Y,he;if(ie=v,Y=[],p.test(r.charAt(v))?(he=r.charAt(v),v++):(he=t,$===0&&Pe(C)),he!==t)for(;he!==t;)Y.push(he),p.test(r.charAt(v))?(he=r.charAt(v),v++):(he=t,$===0&&Pe(C));else Y=t;return Y!==t&&(D=ie,Y=h()),ie=Y,ie}function Ge(){var ie,Y,he;if(ie=v,Y=[],w.test(r.charAt(v))?(he=r.charAt(v),v++):(he=t,$===0&&Pe(B)),he!==t)for(;he!==t;)Y.push(he),w.test(r.charAt(v))?(he=r.charAt(v),v++):(he=t,$===0&&Pe(B));else Y=t;return Y!==t&&(D=ie,Y=h()),ie=Y,ie}if(V=n(),V!==t&&v===r.length)return V;throw V!==t&&v{"use strict";function XK(r){return typeof r>"u"||r===null}function Che(r){return typeof r=="object"&&r!==null}function mhe(r){return Array.isArray(r)?r:XK(r)?[]:[r]}function Ehe(r,e){var t,i,n,s;if(e)for(s=Object.keys(e),t=0,i=s.length;t{"use strict";function md(r,e){Error.call(this),this.name="YAMLException",this.reason=r,this.mark=e,this.message=(this.reason||"(unknown reason)")+(this.mark?" "+this.mark.toString():""),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack||""}md.prototype=Object.create(Error.prototype);md.prototype.constructor=md;md.prototype.toString=function(e){var t=this.name+": ";return t+=this.reason||"(unknown reason)",!e&&this.mark&&(t+=" "+this.mark.toString()),t};_K.exports=md});var e2=y((YZe,$K)=>{"use strict";var ZK=pc();function wv(r,e,t,i,n){this.name=r,this.buffer=e,this.position=t,this.line=i,this.column=n}wv.prototype.getSnippet=function(e,t){var i,n,s,o,a;if(!this.buffer)return null;for(e=e||4,t=t||75,i="",n=this.position;n>0&&`\0\r -\x85\u2028\u2029`.indexOf(this.buffer.charAt(n-1))===-1;)if(n-=1,this.position-n>t/2-1){i=" ... ",n+=5;break}for(s="",o=this.position;ot/2-1){s=" ... ",o-=5;break}return a=this.buffer.slice(n,o),ZK.repeat(" ",e)+i+a+s+` -`+ZK.repeat(" ",e+this.position-n+i.length)+"^"};wv.prototype.toString=function(e){var t,i="";return this.name&&(i+='in "'+this.name+'" '),i+="at line "+(this.line+1)+", column "+(this.column+1),e||(t=this.getSnippet(),t&&(i+=`: -`+t)),i};$K.exports=wv});var Ai=y((jZe,r2)=>{"use strict";var t2=tf(),whe=["kind","resolve","construct","instanceOf","predicate","represent","defaultStyle","styleAliases"],Bhe=["scalar","sequence","mapping"];function bhe(r){var e={};return r!==null&&Object.keys(r).forEach(function(t){r[t].forEach(function(i){e[String(i)]=t})}),e}function Qhe(r,e){if(e=e||{},Object.keys(e).forEach(function(t){if(whe.indexOf(t)===-1)throw new t2('Unknown option "'+t+'" is met in definition of "'+r+'" YAML type.')}),this.tag=r,this.kind=e.kind||null,this.resolve=e.resolve||function(){return!0},this.construct=e.construct||function(t){return t},this.instanceOf=e.instanceOf||null,this.predicate=e.predicate||null,this.represent=e.represent||null,this.defaultStyle=e.defaultStyle||null,this.styleAliases=bhe(e.styleAliases||null),Bhe.indexOf(this.kind)===-1)throw new t2('Unknown kind "'+this.kind+'" is specified for "'+r+'" YAML type.')}r2.exports=Qhe});var dc=y((qZe,n2)=>{"use strict";var i2=pc(),jI=tf(),She=Ai();function Bv(r,e,t){var i=[];return r.include.forEach(function(n){t=Bv(n,e,t)}),r[e].forEach(function(n){t.forEach(function(s,o){s.tag===n.tag&&s.kind===n.kind&&i.push(o)}),t.push(n)}),t.filter(function(n,s){return i.indexOf(s)===-1})}function vhe(){var r={scalar:{},sequence:{},mapping:{},fallback:{}},e,t;function i(n){r[n.kind][n.tag]=r.fallback[n.tag]=n}for(e=0,t=arguments.length;e{"use strict";var xhe=Ai();s2.exports=new xhe("tag:yaml.org,2002:str",{kind:"scalar",construct:function(r){return r!==null?r:""}})});var A2=y((WZe,a2)=>{"use strict";var Phe=Ai();a2.exports=new Phe("tag:yaml.org,2002:seq",{kind:"sequence",construct:function(r){return r!==null?r:[]}})});var c2=y((zZe,l2)=>{"use strict";var Dhe=Ai();l2.exports=new Dhe("tag:yaml.org,2002:map",{kind:"mapping",construct:function(r){return r!==null?r:{}}})});var qI=y((VZe,u2)=>{"use strict";var khe=dc();u2.exports=new khe({explicit:[o2(),A2(),c2()]})});var f2=y((XZe,g2)=>{"use strict";var Rhe=Ai();function Fhe(r){if(r===null)return!0;var e=r.length;return e===1&&r==="~"||e===4&&(r==="null"||r==="Null"||r==="NULL")}function Nhe(){return null}function The(r){return r===null}g2.exports=new Rhe("tag:yaml.org,2002:null",{kind:"scalar",resolve:Fhe,construct:Nhe,predicate:The,represent:{canonical:function(){return"~"},lowercase:function(){return"null"},uppercase:function(){return"NULL"},camelcase:function(){return"Null"}},defaultStyle:"lowercase"})});var p2=y((_Ze,h2)=>{"use strict";var Lhe=Ai();function Ohe(r){if(r===null)return!1;var e=r.length;return e===4&&(r==="true"||r==="True"||r==="TRUE")||e===5&&(r==="false"||r==="False"||r==="FALSE")}function Mhe(r){return r==="true"||r==="True"||r==="TRUE"}function Uhe(r){return Object.prototype.toString.call(r)==="[object Boolean]"}h2.exports=new Lhe("tag:yaml.org,2002:bool",{kind:"scalar",resolve:Ohe,construct:Mhe,predicate:Uhe,represent:{lowercase:function(r){return r?"true":"false"},uppercase:function(r){return r?"TRUE":"FALSE"},camelcase:function(r){return r?"True":"False"}},defaultStyle:"lowercase"})});var C2=y((ZZe,d2)=>{"use strict";var Khe=pc(),Hhe=Ai();function Ghe(r){return 48<=r&&r<=57||65<=r&&r<=70||97<=r&&r<=102}function Yhe(r){return 48<=r&&r<=55}function jhe(r){return 48<=r&&r<=57}function qhe(r){if(r===null)return!1;var e=r.length,t=0,i=!1,n;if(!e)return!1;if(n=r[t],(n==="-"||n==="+")&&(n=r[++t]),n==="0"){if(t+1===e)return!0;if(n=r[++t],n==="b"){for(t++;t=0?"0b"+r.toString(2):"-0b"+r.toString(2).slice(1)},octal:function(r){return r>=0?"0"+r.toString(8):"-0"+r.toString(8).slice(1)},decimal:function(r){return r.toString(10)},hexadecimal:function(r){return r>=0?"0x"+r.toString(16).toUpperCase():"-0x"+r.toString(16).toUpperCase().slice(1)}},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}})});var I2=y(($Ze,E2)=>{"use strict";var m2=pc(),zhe=Ai(),Vhe=new RegExp("^(?:[-+]?(?:0|[1-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\.[0-9_]*|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");function Xhe(r){return!(r===null||!Vhe.test(r)||r[r.length-1]==="_")}function _he(r){var e,t,i,n;return e=r.replace(/_/g,"").toLowerCase(),t=e[0]==="-"?-1:1,n=[],"+-".indexOf(e[0])>=0&&(e=e.slice(1)),e===".inf"?t===1?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:e===".nan"?NaN:e.indexOf(":")>=0?(e.split(":").forEach(function(s){n.unshift(parseFloat(s,10))}),e=0,i=1,n.forEach(function(s){e+=s*i,i*=60}),t*e):t*parseFloat(e,10)}var Zhe=/^[-+]?[0-9]+e/;function $he(r,e){var t;if(isNaN(r))switch(e){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===r)switch(e){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===r)switch(e){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(m2.isNegativeZero(r))return"-0.0";return t=r.toString(10),Zhe.test(t)?t.replace("e",".e"):t}function epe(r){return Object.prototype.toString.call(r)==="[object Number]"&&(r%1!==0||m2.isNegativeZero(r))}E2.exports=new zhe("tag:yaml.org,2002:float",{kind:"scalar",resolve:Xhe,construct:_he,predicate:epe,represent:$he,defaultStyle:"lowercase"})});var bv=y((e$e,y2)=>{"use strict";var tpe=dc();y2.exports=new tpe({include:[qI()],implicit:[f2(),p2(),C2(),I2()]})});var Qv=y((t$e,w2)=>{"use strict";var rpe=dc();w2.exports=new rpe({include:[bv()]})});var S2=y((r$e,Q2)=>{"use strict";var ipe=Ai(),B2=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),b2=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$");function npe(r){return r===null?!1:B2.exec(r)!==null||b2.exec(r)!==null}function spe(r){var e,t,i,n,s,o,a,l=0,c=null,u,g,f;if(e=B2.exec(r),e===null&&(e=b2.exec(r)),e===null)throw new Error("Date resolve error");if(t=+e[1],i=+e[2]-1,n=+e[3],!e[4])return new Date(Date.UTC(t,i,n));if(s=+e[4],o=+e[5],a=+e[6],e[7]){for(l=e[7].slice(0,3);l.length<3;)l+="0";l=+l}return e[9]&&(u=+e[10],g=+(e[11]||0),c=(u*60+g)*6e4,e[9]==="-"&&(c=-c)),f=new Date(Date.UTC(t,i,n,s,o,a,l)),c&&f.setTime(f.getTime()-c),f}function ope(r){return r.toISOString()}Q2.exports=new ipe("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:npe,construct:spe,instanceOf:Date,represent:ope})});var x2=y((i$e,v2)=>{"use strict";var ape=Ai();function Ape(r){return r==="<<"||r===null}v2.exports=new ape("tag:yaml.org,2002:merge",{kind:"scalar",resolve:Ape})});var k2=y((n$e,D2)=>{"use strict";var Cc;try{P2=J,Cc=P2("buffer").Buffer}catch{}var P2,lpe=Ai(),Sv=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/= -\r`;function cpe(r){if(r===null)return!1;var e,t,i=0,n=r.length,s=Sv;for(t=0;t64)){if(e<0)return!1;i+=6}return i%8===0}function upe(r){var e,t,i=r.replace(/[\r\n=]/g,""),n=i.length,s=Sv,o=0,a=[];for(e=0;e>16&255),a.push(o>>8&255),a.push(o&255)),o=o<<6|s.indexOf(i.charAt(e));return t=n%4*6,t===0?(a.push(o>>16&255),a.push(o>>8&255),a.push(o&255)):t===18?(a.push(o>>10&255),a.push(o>>2&255)):t===12&&a.push(o>>4&255),Cc?Cc.from?Cc.from(a):new Cc(a):a}function gpe(r){var e="",t=0,i,n,s=r.length,o=Sv;for(i=0;i>18&63],e+=o[t>>12&63],e+=o[t>>6&63],e+=o[t&63]),t=(t<<8)+r[i];return n=s%3,n===0?(e+=o[t>>18&63],e+=o[t>>12&63],e+=o[t>>6&63],e+=o[t&63]):n===2?(e+=o[t>>10&63],e+=o[t>>4&63],e+=o[t<<2&63],e+=o[64]):n===1&&(e+=o[t>>2&63],e+=o[t<<4&63],e+=o[64],e+=o[64]),e}function fpe(r){return Cc&&Cc.isBuffer(r)}D2.exports=new lpe("tag:yaml.org,2002:binary",{kind:"scalar",resolve:cpe,construct:upe,predicate:fpe,represent:gpe})});var F2=y((s$e,R2)=>{"use strict";var hpe=Ai(),ppe=Object.prototype.hasOwnProperty,dpe=Object.prototype.toString;function Cpe(r){if(r===null)return!0;var e=[],t,i,n,s,o,a=r;for(t=0,i=a.length;t{"use strict";var Epe=Ai(),Ipe=Object.prototype.toString;function ype(r){if(r===null)return!0;var e,t,i,n,s,o=r;for(s=new Array(o.length),e=0,t=o.length;e{"use strict";var Bpe=Ai(),bpe=Object.prototype.hasOwnProperty;function Qpe(r){if(r===null)return!0;var e,t=r;for(e in t)if(bpe.call(t,e)&&t[e]!==null)return!1;return!0}function Spe(r){return r!==null?r:{}}L2.exports=new Bpe("tag:yaml.org,2002:set",{kind:"mapping",resolve:Qpe,construct:Spe})});var nf=y((A$e,M2)=>{"use strict";var vpe=dc();M2.exports=new vpe({include:[Qv()],implicit:[S2(),x2()],explicit:[k2(),F2(),T2(),O2()]})});var K2=y((l$e,U2)=>{"use strict";var xpe=Ai();function Ppe(){return!0}function Dpe(){}function kpe(){return""}function Rpe(r){return typeof r>"u"}U2.exports=new xpe("tag:yaml.org,2002:js/undefined",{kind:"scalar",resolve:Ppe,construct:Dpe,predicate:Rpe,represent:kpe})});var G2=y((c$e,H2)=>{"use strict";var Fpe=Ai();function Npe(r){if(r===null||r.length===0)return!1;var e=r,t=/\/([gim]*)$/.exec(r),i="";return!(e[0]==="/"&&(t&&(i=t[1]),i.length>3||e[e.length-i.length-1]!=="/"))}function Tpe(r){var e=r,t=/\/([gim]*)$/.exec(r),i="";return e[0]==="/"&&(t&&(i=t[1]),e=e.slice(1,e.length-i.length-1)),new RegExp(e,i)}function Lpe(r){var e="/"+r.source+"/";return r.global&&(e+="g"),r.multiline&&(e+="m"),r.ignoreCase&&(e+="i"),e}function Ope(r){return Object.prototype.toString.call(r)==="[object RegExp]"}H2.exports=new Fpe("tag:yaml.org,2002:js/regexp",{kind:"scalar",resolve:Npe,construct:Tpe,predicate:Ope,represent:Lpe})});var q2=y((u$e,j2)=>{"use strict";var JI;try{Y2=J,JI=Y2("esprima")}catch{typeof window<"u"&&(JI=window.esprima)}var Y2,Mpe=Ai();function Upe(r){if(r===null)return!1;try{var e="("+r+")",t=JI.parse(e,{range:!0});return!(t.type!=="Program"||t.body.length!==1||t.body[0].type!=="ExpressionStatement"||t.body[0].expression.type!=="ArrowFunctionExpression"&&t.body[0].expression.type!=="FunctionExpression")}catch{return!1}}function Kpe(r){var e="("+r+")",t=JI.parse(e,{range:!0}),i=[],n;if(t.type!=="Program"||t.body.length!==1||t.body[0].type!=="ExpressionStatement"||t.body[0].expression.type!=="ArrowFunctionExpression"&&t.body[0].expression.type!=="FunctionExpression")throw new Error("Failed to resolve function");return t.body[0].expression.params.forEach(function(s){i.push(s.name)}),n=t.body[0].expression.body.range,t.body[0].expression.body.type==="BlockStatement"?new Function(i,e.slice(n[0]+1,n[1]-1)):new Function(i,"return "+e.slice(n[0],n[1]))}function Hpe(r){return r.toString()}function Gpe(r){return Object.prototype.toString.call(r)==="[object Function]"}j2.exports=new Mpe("tag:yaml.org,2002:js/function",{kind:"scalar",resolve:Upe,construct:Kpe,predicate:Gpe,represent:Hpe})});var Ed=y((g$e,W2)=>{"use strict";var J2=dc();W2.exports=J2.DEFAULT=new J2({include:[nf()],explicit:[K2(),G2(),q2()]})});var gH=y((f$e,Id)=>{"use strict";var Qa=pc(),eH=tf(),Ype=e2(),tH=nf(),jpe=Ed(),NA=Object.prototype.hasOwnProperty,WI=1,rH=2,iH=3,zI=4,vv=1,qpe=2,z2=3,Jpe=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,Wpe=/[\x85\u2028\u2029]/,zpe=/[,\[\]\{\}]/,nH=/^(?:!|!!|![a-z\-]+!)$/i,sH=/^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;function V2(r){return Object.prototype.toString.call(r)}function So(r){return r===10||r===13}function Ec(r){return r===9||r===32}function fn(r){return r===9||r===32||r===10||r===13}function sf(r){return r===44||r===91||r===93||r===123||r===125}function Vpe(r){var e;return 48<=r&&r<=57?r-48:(e=r|32,97<=e&&e<=102?e-97+10:-1)}function Xpe(r){return r===120?2:r===117?4:r===85?8:0}function _pe(r){return 48<=r&&r<=57?r-48:-1}function X2(r){return r===48?"\0":r===97?"\x07":r===98?"\b":r===116||r===9?" ":r===110?` -`:r===118?"\v":r===102?"\f":r===114?"\r":r===101?"\x1B":r===32?" ":r===34?'"':r===47?"/":r===92?"\\":r===78?"\x85":r===95?"\xA0":r===76?"\u2028":r===80?"\u2029":""}function Zpe(r){return r<=65535?String.fromCharCode(r):String.fromCharCode((r-65536>>10)+55296,(r-65536&1023)+56320)}var oH=new Array(256),aH=new Array(256);for(mc=0;mc<256;mc++)oH[mc]=X2(mc)?1:0,aH[mc]=X2(mc);var mc;function $pe(r,e){this.input=r,this.filename=e.filename||null,this.schema=e.schema||jpe,this.onWarning=e.onWarning||null,this.legacy=e.legacy||!1,this.json=e.json||!1,this.listener=e.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=r.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.documents=[]}function AH(r,e){return new eH(e,new Ype(r.filename,r.input,r.position,r.line,r.position-r.lineStart))}function gt(r,e){throw AH(r,e)}function VI(r,e){r.onWarning&&r.onWarning.call(null,AH(r,e))}var _2={YAML:function(e,t,i){var n,s,o;e.version!==null&>(e,"duplication of %YAML directive"),i.length!==1&>(e,"YAML directive accepts exactly one argument"),n=/^([0-9]+)\.([0-9]+)$/.exec(i[0]),n===null&>(e,"ill-formed argument of the YAML directive"),s=parseInt(n[1],10),o=parseInt(n[2],10),s!==1&>(e,"unacceptable YAML version of the document"),e.version=i[0],e.checkLineBreaks=o<2,o!==1&&o!==2&&VI(e,"unsupported YAML version of the document")},TAG:function(e,t,i){var n,s;i.length!==2&>(e,"TAG directive accepts exactly two arguments"),n=i[0],s=i[1],nH.test(n)||gt(e,"ill-formed tag handle (first argument) of the TAG directive"),NA.call(e.tagMap,n)&>(e,'there is a previously declared suffix for "'+n+'" tag handle'),sH.test(s)||gt(e,"ill-formed tag prefix (second argument) of the TAG directive"),e.tagMap[n]=s}};function FA(r,e,t,i){var n,s,o,a;if(e1&&(r.result+=Qa.repeat(` -`,e-1))}function ede(r,e,t){var i,n,s,o,a,l,c,u,g=r.kind,f=r.result,h;if(h=r.input.charCodeAt(r.position),fn(h)||sf(h)||h===35||h===38||h===42||h===33||h===124||h===62||h===39||h===34||h===37||h===64||h===96||(h===63||h===45)&&(n=r.input.charCodeAt(r.position+1),fn(n)||t&&sf(n)))return!1;for(r.kind="scalar",r.result="",s=o=r.position,a=!1;h!==0;){if(h===58){if(n=r.input.charCodeAt(r.position+1),fn(n)||t&&sf(n))break}else if(h===35){if(i=r.input.charCodeAt(r.position-1),fn(i))break}else{if(r.position===r.lineStart&&XI(r)||t&&sf(h))break;if(So(h))if(l=r.line,c=r.lineStart,u=r.lineIndent,_r(r,!1,-1),r.lineIndent>=e){a=!0,h=r.input.charCodeAt(r.position);continue}else{r.position=o,r.line=l,r.lineStart=c,r.lineIndent=u;break}}a&&(FA(r,s,o,!1),Pv(r,r.line-l),s=o=r.position,a=!1),Ec(h)||(o=r.position+1),h=r.input.charCodeAt(++r.position)}return FA(r,s,o,!1),r.result?!0:(r.kind=g,r.result=f,!1)}function tde(r,e){var t,i,n;if(t=r.input.charCodeAt(r.position),t!==39)return!1;for(r.kind="scalar",r.result="",r.position++,i=n=r.position;(t=r.input.charCodeAt(r.position))!==0;)if(t===39)if(FA(r,i,r.position,!0),t=r.input.charCodeAt(++r.position),t===39)i=r.position,r.position++,n=r.position;else return!0;else So(t)?(FA(r,i,n,!0),Pv(r,_r(r,!1,e)),i=n=r.position):r.position===r.lineStart&&XI(r)?gt(r,"unexpected end of the document within a single quoted scalar"):(r.position++,n=r.position);gt(r,"unexpected end of the stream within a single quoted scalar")}function rde(r,e){var t,i,n,s,o,a;if(a=r.input.charCodeAt(r.position),a!==34)return!1;for(r.kind="scalar",r.result="",r.position++,t=i=r.position;(a=r.input.charCodeAt(r.position))!==0;){if(a===34)return FA(r,t,r.position,!0),r.position++,!0;if(a===92){if(FA(r,t,r.position,!0),a=r.input.charCodeAt(++r.position),So(a))_r(r,!1,e);else if(a<256&&oH[a])r.result+=aH[a],r.position++;else if((o=Xpe(a))>0){for(n=o,s=0;n>0;n--)a=r.input.charCodeAt(++r.position),(o=Vpe(a))>=0?s=(s<<4)+o:gt(r,"expected hexadecimal character");r.result+=Zpe(s),r.position++}else gt(r,"unknown escape sequence");t=i=r.position}else So(a)?(FA(r,t,i,!0),Pv(r,_r(r,!1,e)),t=i=r.position):r.position===r.lineStart&&XI(r)?gt(r,"unexpected end of the document within a double quoted scalar"):(r.position++,i=r.position)}gt(r,"unexpected end of the stream within a double quoted scalar")}function ide(r,e){var t=!0,i,n=r.tag,s,o=r.anchor,a,l,c,u,g,f={},h,p,C,w;if(w=r.input.charCodeAt(r.position),w===91)l=93,g=!1,s=[];else if(w===123)l=125,g=!0,s={};else return!1;for(r.anchor!==null&&(r.anchorMap[r.anchor]=s),w=r.input.charCodeAt(++r.position);w!==0;){if(_r(r,!0,e),w=r.input.charCodeAt(r.position),w===l)return r.position++,r.tag=n,r.anchor=o,r.kind=g?"mapping":"sequence",r.result=s,!0;t||gt(r,"missed comma between flow collection entries"),p=h=C=null,c=u=!1,w===63&&(a=r.input.charCodeAt(r.position+1),fn(a)&&(c=u=!0,r.position++,_r(r,!0,e))),i=r.line,af(r,e,WI,!1,!0),p=r.tag,h=r.result,_r(r,!0,e),w=r.input.charCodeAt(r.position),(u||r.line===i)&&w===58&&(c=!0,w=r.input.charCodeAt(++r.position),_r(r,!0,e),af(r,e,WI,!1,!0),C=r.result),g?of(r,s,f,p,h,C):c?s.push(of(r,null,f,p,h,C)):s.push(h),_r(r,!0,e),w=r.input.charCodeAt(r.position),w===44?(t=!0,w=r.input.charCodeAt(++r.position)):t=!1}gt(r,"unexpected end of the stream within a flow collection")}function nde(r,e){var t,i,n=vv,s=!1,o=!1,a=e,l=0,c=!1,u,g;if(g=r.input.charCodeAt(r.position),g===124)i=!1;else if(g===62)i=!0;else return!1;for(r.kind="scalar",r.result="";g!==0;)if(g=r.input.charCodeAt(++r.position),g===43||g===45)vv===n?n=g===43?z2:qpe:gt(r,"repeat of a chomping mode identifier");else if((u=_pe(g))>=0)u===0?gt(r,"bad explicit indentation width of a block scalar; it cannot be less than one"):o?gt(r,"repeat of an indentation width identifier"):(a=e+u-1,o=!0);else break;if(Ec(g)){do g=r.input.charCodeAt(++r.position);while(Ec(g));if(g===35)do g=r.input.charCodeAt(++r.position);while(!So(g)&&g!==0)}for(;g!==0;){for(xv(r),r.lineIndent=0,g=r.input.charCodeAt(r.position);(!o||r.lineIndenta&&(a=r.lineIndent),So(g)){l++;continue}if(r.lineIndente)&&l!==0)gt(r,"bad indentation of a sequence entry");else if(r.lineIndente)&&(af(r,e,zI,!0,n)&&(p?f=r.result:h=r.result),p||(of(r,c,u,g,f,h,s,o),g=f=h=null),_r(r,!0,-1),w=r.input.charCodeAt(r.position)),r.lineIndent>e&&w!==0)gt(r,"bad indentation of a mapping entry");else if(r.lineIndente?l=1:r.lineIndent===e?l=0:r.lineIndente?l=1:r.lineIndent===e?l=0:r.lineIndent tag; it should be "scalar", not "'+r.kind+'"'),g=0,f=r.implicitTypes.length;g tag; it should be "'+h.kind+'", not "'+r.kind+'"'),h.resolve(r.result)?(r.result=h.construct(r.result),r.anchor!==null&&(r.anchorMap[r.anchor]=r.result)):gt(r,"cannot resolve a node with !<"+r.tag+"> explicit tag")):gt(r,"unknown tag !<"+r.tag+">");return r.listener!==null&&r.listener("close",r),r.tag!==null||r.anchor!==null||u}function lde(r){var e=r.position,t,i,n,s=!1,o;for(r.version=null,r.checkLineBreaks=r.legacy,r.tagMap={},r.anchorMap={};(o=r.input.charCodeAt(r.position))!==0&&(_r(r,!0,-1),o=r.input.charCodeAt(r.position),!(r.lineIndent>0||o!==37));){for(s=!0,o=r.input.charCodeAt(++r.position),t=r.position;o!==0&&!fn(o);)o=r.input.charCodeAt(++r.position);for(i=r.input.slice(t,r.position),n=[],i.length<1&>(r,"directive name must not be less than one character in length");o!==0;){for(;Ec(o);)o=r.input.charCodeAt(++r.position);if(o===35){do o=r.input.charCodeAt(++r.position);while(o!==0&&!So(o));break}if(So(o))break;for(t=r.position;o!==0&&!fn(o);)o=r.input.charCodeAt(++r.position);n.push(r.input.slice(t,r.position))}o!==0&&xv(r),NA.call(_2,i)?_2[i](r,i,n):VI(r,'unknown document directive "'+i+'"')}if(_r(r,!0,-1),r.lineIndent===0&&r.input.charCodeAt(r.position)===45&&r.input.charCodeAt(r.position+1)===45&&r.input.charCodeAt(r.position+2)===45?(r.position+=3,_r(r,!0,-1)):s&>(r,"directives end mark is expected"),af(r,r.lineIndent-1,zI,!1,!0),_r(r,!0,-1),r.checkLineBreaks&&Wpe.test(r.input.slice(e,r.position))&&VI(r,"non-ASCII line breaks are interpreted as content"),r.documents.push(r.result),r.position===r.lineStart&&XI(r)){r.input.charCodeAt(r.position)===46&&(r.position+=3,_r(r,!0,-1));return}if(r.position"u"&&(t=e,e=null);var i=lH(r,t);if(typeof e!="function")return i;for(var n=0,s=i.length;n"u"&&(t=e,e=null),cH(r,e,Qa.extend({schema:tH},t))}function ude(r,e){return uH(r,Qa.extend({schema:tH},e))}Id.exports.loadAll=cH;Id.exports.load=uH;Id.exports.safeLoadAll=cde;Id.exports.safeLoad=ude});var TH=y((h$e,Fv)=>{"use strict";var wd=pc(),Bd=tf(),gde=Ed(),fde=nf(),IH=Object.prototype.toString,yH=Object.prototype.hasOwnProperty,hde=9,yd=10,pde=13,dde=32,Cde=33,mde=34,wH=35,Ede=37,Ide=38,yde=39,wde=42,BH=44,Bde=45,bH=58,bde=61,Qde=62,Sde=63,vde=64,QH=91,SH=93,xde=96,vH=123,Pde=124,xH=125,Ti={};Ti[0]="\\0";Ti[7]="\\a";Ti[8]="\\b";Ti[9]="\\t";Ti[10]="\\n";Ti[11]="\\v";Ti[12]="\\f";Ti[13]="\\r";Ti[27]="\\e";Ti[34]='\\"';Ti[92]="\\\\";Ti[133]="\\N";Ti[160]="\\_";Ti[8232]="\\L";Ti[8233]="\\P";var Dde=["y","Y","yes","Yes","YES","on","On","ON","n","N","no","No","NO","off","Off","OFF"];function kde(r,e){var t,i,n,s,o,a,l;if(e===null)return{};for(t={},i=Object.keys(e),n=0,s=i.length;n0?r.charCodeAt(s-1):null,f=f&&pH(o,a)}else{for(s=0;si&&r[g+1]!==" ",g=s);else if(!Af(o))return _I;a=s>0?r.charCodeAt(s-1):null,f=f&&pH(o,a)}c=c||u&&s-g-1>i&&r[g+1]!==" "}return!l&&!c?f&&!n(r)?DH:kH:t>9&&PH(r)?_I:c?FH:RH}function Ode(r,e,t,i){r.dump=function(){if(e.length===0)return"''";if(!r.noCompatMode&&Dde.indexOf(e)!==-1)return"'"+e+"'";var n=r.indent*Math.max(1,t),s=r.lineWidth===-1?-1:Math.max(Math.min(r.lineWidth,40),r.lineWidth-n),o=i||r.flowLevel>-1&&t>=r.flowLevel;function a(l){return Fde(r,l)}switch(Lde(e,o,r.indent,s,a)){case DH:return e;case kH:return"'"+e.replace(/'/g,"''")+"'";case RH:return"|"+dH(e,r.indent)+CH(hH(e,n));case FH:return">"+dH(e,r.indent)+CH(hH(Mde(e,s),n));case _I:return'"'+Ude(e,s)+'"';default:throw new Bd("impossible error: invalid scalar style")}}()}function dH(r,e){var t=PH(r)?String(e):"",i=r[r.length-1]===` -`,n=i&&(r[r.length-2]===` -`||r===` -`),s=n?"+":i?"":"-";return t+s+` -`}function CH(r){return r[r.length-1]===` -`?r.slice(0,-1):r}function Mde(r,e){for(var t=/(\n+)([^\n]*)/g,i=function(){var c=r.indexOf(` -`);return c=c!==-1?c:r.length,t.lastIndex=c,mH(r.slice(0,c),e)}(),n=r[0]===` -`||r[0]===" ",s,o;o=t.exec(r);){var a=o[1],l=o[2];s=l[0]===" ",i+=a+(!n&&!s&&l!==""?` -`:"")+mH(l,e),n=s}return i}function mH(r,e){if(r===""||r[0]===" ")return r;for(var t=/ [^ ]/g,i,n=0,s,o=0,a=0,l="";i=t.exec(r);)a=i.index,a-n>e&&(s=o>n?o:a,l+=` -`+r.slice(n,s),n=s+1),o=a;return l+=` -`,r.length-n>e&&o>n?l+=r.slice(n,o)+` -`+r.slice(o+1):l+=r.slice(n),l.slice(1)}function Ude(r){for(var e="",t,i,n,s=0;s=55296&&t<=56319&&(i=r.charCodeAt(s+1),i>=56320&&i<=57343)){e+=fH((t-55296)*1024+i-56320+65536),s++;continue}n=Ti[t],e+=!n&&Af(t)?r[s]:n||fH(t)}return e}function Kde(r,e,t){var i="",n=r.tag,s,o;for(s=0,o=t.length;s1024&&(u+="? "),u+=r.dump+(r.condenseFlow?'"':"")+":"+(r.condenseFlow?"":" "),Ic(r,e,c,!1,!1)&&(u+=r.dump,i+=u));r.tag=n,r.dump="{"+i+"}"}function Yde(r,e,t,i){var n="",s=r.tag,o=Object.keys(t),a,l,c,u,g,f;if(r.sortKeys===!0)o.sort();else if(typeof r.sortKeys=="function")o.sort(r.sortKeys);else if(r.sortKeys)throw new Bd("sortKeys must be a boolean or a function");for(a=0,l=o.length;a1024,g&&(r.dump&&yd===r.dump.charCodeAt(0)?f+="?":f+="? "),f+=r.dump,g&&(f+=Dv(r,e)),Ic(r,e+1,u,!0,g)&&(r.dump&&yd===r.dump.charCodeAt(0)?f+=":":f+=": ",f+=r.dump,n+=f));r.tag=s,r.dump=n||"{}"}function EH(r,e,t){var i,n,s,o,a,l;for(n=t?r.explicitTypes:r.implicitTypes,s=0,o=n.length;s tag resolver accepts not "'+l+'" style');r.dump=i}return!0}return!1}function Ic(r,e,t,i,n,s){r.tag=null,r.dump=t,EH(r,t,!1)||EH(r,t,!0);var o=IH.call(r.dump);i&&(i=r.flowLevel<0||r.flowLevel>e);var a=o==="[object Object]"||o==="[object Array]",l,c;if(a&&(l=r.duplicates.indexOf(t),c=l!==-1),(r.tag!==null&&r.tag!=="?"||c||r.indent!==2&&e>0)&&(n=!1),c&&r.usedDuplicates[l])r.dump="*ref_"+l;else{if(a&&c&&!r.usedDuplicates[l]&&(r.usedDuplicates[l]=!0),o==="[object Object]")i&&Object.keys(r.dump).length!==0?(Yde(r,e,r.dump,n),c&&(r.dump="&ref_"+l+r.dump)):(Gde(r,e,r.dump),c&&(r.dump="&ref_"+l+" "+r.dump));else if(o==="[object Array]"){var u=r.noArrayIndent&&e>0?e-1:e;i&&r.dump.length!==0?(Hde(r,u,r.dump,n),c&&(r.dump="&ref_"+l+r.dump)):(Kde(r,u,r.dump),c&&(r.dump="&ref_"+l+" "+r.dump))}else if(o==="[object String]")r.tag!=="?"&&Ode(r,r.dump,e,s);else{if(r.skipInvalid)return!1;throw new Bd("unacceptable kind of an object to dump "+o)}r.tag!==null&&r.tag!=="?"&&(r.dump="!<"+r.tag+"> "+r.dump)}return!0}function jde(r,e){var t=[],i=[],n,s;for(kv(r,t,i),n=0,s=i.length;n{"use strict";var ZI=gH(),LH=TH();function $I(r){return function(){throw new Error("Function "+r+" is deprecated and cannot be used.")}}Tr.exports.Type=Ai();Tr.exports.Schema=dc();Tr.exports.FAILSAFE_SCHEMA=qI();Tr.exports.JSON_SCHEMA=bv();Tr.exports.CORE_SCHEMA=Qv();Tr.exports.DEFAULT_SAFE_SCHEMA=nf();Tr.exports.DEFAULT_FULL_SCHEMA=Ed();Tr.exports.load=ZI.load;Tr.exports.loadAll=ZI.loadAll;Tr.exports.safeLoad=ZI.safeLoad;Tr.exports.safeLoadAll=ZI.safeLoadAll;Tr.exports.dump=LH.dump;Tr.exports.safeDump=LH.safeDump;Tr.exports.YAMLException=tf();Tr.exports.MINIMAL_SCHEMA=qI();Tr.exports.SAFE_SCHEMA=nf();Tr.exports.DEFAULT_SCHEMA=Ed();Tr.exports.scan=$I("scan");Tr.exports.parse=$I("parse");Tr.exports.compose=$I("compose");Tr.exports.addConstructor=$I("addConstructor")});var UH=y((d$e,MH)=>{"use strict";var Jde=OH();MH.exports=Jde});var HH=y((C$e,KH)=>{"use strict";function Wde(r,e){function t(){this.constructor=r}t.prototype=e.prototype,r.prototype=new t}function yc(r,e,t,i){this.message=r,this.expected=e,this.found=t,this.location=i,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,yc)}Wde(yc,Error);yc.buildMessage=function(r,e){var t={literal:function(c){return'"'+n(c.text)+'"'},class:function(c){var u="",g;for(g=0;g0){for(g=1,f=1;g({[Ne]:pe})))},H=function(R){return R},j=function(R){return R},$=Ms("correct indentation"),V=" ",W=ar(" ",!1),Z=function(R){return R.length===vA*Gg},A=function(R){return R.length===(vA+1)*Gg},ae=function(){return vA++,!0},ge=function(){return vA--,!0},_=function(){return Lg()},L=Ms("pseudostring"),N=/^[^\r\n\t ?:,\][{}#&*!|>'"%@`\-]/,ue=Fn(["\r",` -`," "," ","?",":",",","]","[","{","}","#","&","*","!","|",">","'",'"',"%","@","`","-"],!0,!1),we=/^[^\r\n\t ,\][{}:#"']/,Te=Fn(["\r",` -`," "," ",",","]","[","{","}",":","#",'"',"'"],!0,!1),Pe=function(){return Lg().replace(/^ *| *$/g,"")},Le="--",se=ar("--",!1),Ae=/^[a-zA-Z\/0-9]/,be=Fn([["a","z"],["A","Z"],"/",["0","9"]],!1,!1),fe=/^[^\r\n\t :,]/,le=Fn(["\r",` -`," "," ",":",","],!0,!1),Ge="null",ie=ar("null",!1),Y=function(){return null},he="true",re=ar("true",!1),me=function(){return!0},tt="false",Rt=ar("false",!1),It=function(){return!1},Ur=Ms("string"),oi='"',pi=ar('"',!1),pr=function(){return""},di=function(R){return R},ai=function(R){return R.join("")},Os=/^[^"\\\0-\x1F\x7F]/,dr=Fn(['"',"\\",["\0",""],"\x7F"],!0,!1),Bi='\\"',_n=ar('\\"',!1),pa=function(){return'"'},EA="\\\\",kg=ar("\\\\",!1),Zn=function(){return"\\"},IA="\\/",da=ar("\\/",!1),Jp=function(){return"/"},yA="\\b",wA=ar("\\b",!1),Br=function(){return"\b"},Vl="\\f",Rg=ar("\\f",!1),Eo=function(){return"\f"},Fg="\\n",Wp=ar("\\n",!1),zp=function(){return` -`},Pr="\\r",oe=ar("\\r",!1),Io=function(){return"\r"},kn="\\t",Ng=ar("\\t",!1),bt=function(){return" "},Xl="\\u",Rn=ar("\\u",!1),$n=function(R,q,pe,Ne){return String.fromCharCode(parseInt(`0x${R}${q}${pe}${Ne}`))},es=/^[0-9a-fA-F]/,ut=Fn([["0","9"],["a","f"],["A","F"]],!1,!1),yo=Ms("blank space"),at=/^[ \t]/,ln=Fn([" "," "],!1,!1),S=Ms("white space"),Lt=/^[ \t\n\r]/,Tg=Fn([" "," ",` -`,"\r"],!1,!1),_l=`\r -`,Vp=ar(`\r -`,!1),Xp=` -`,_p=ar(` -`,!1),Zp="\r",$p=ar("\r",!1),G=0,yt=0,BA=[{line:1,column:1}],Wi=0,Zl=[],We=0,Ca;if("startRule"in e){if(!(e.startRule in i))throw new Error(`Can't start parsing from rule "`+e.startRule+'".');n=i[e.startRule]}function Lg(){return r.substring(yt,G)}function uI(){return cn(yt,G)}function ed(R,q){throw q=q!==void 0?q:cn(yt,G),ec([Ms(R)],r.substring(yt,G),q)}function gI(R,q){throw q=q!==void 0?q:cn(yt,G),Og(R,q)}function ar(R,q){return{type:"literal",text:R,ignoreCase:q}}function Fn(R,q,pe){return{type:"class",parts:R,inverted:q,ignoreCase:pe}}function $l(){return{type:"any"}}function td(){return{type:"end"}}function Ms(R){return{type:"other",description:R}}function ma(R){var q=BA[R],pe;if(q)return q;for(pe=R-1;!BA[pe];)pe--;for(q=BA[pe],q={line:q.line,column:q.column};peWi&&(Wi=G,Zl=[]),Zl.push(R))}function Og(R,q){return new yc(R,null,null,q)}function ec(R,q,pe){return new yc(yc.buildMessage(R,q),R,q,pe)}function Us(){var R;return R=Mg(),R}function tc(){var R,q,pe;for(R=G,q=[],pe=bA();pe!==t;)q.push(pe),pe=bA();return q!==t&&(yt=R,q=s(q)),R=q,R}function bA(){var R,q,pe,Ne,xe;return R=G,q=Ia(),q!==t?(r.charCodeAt(G)===45?(pe=o,G++):(pe=t,We===0&&ke(a)),pe!==t?(Ne=Nr(),Ne!==t?(xe=Ea(),xe!==t?(yt=R,q=l(xe),R=q):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t),R}function Mg(){var R,q,pe;for(R=G,q=[],pe=Ug();pe!==t;)q.push(pe),pe=Ug();return q!==t&&(yt=R,q=c(q)),R=q,R}function Ug(){var R,q,pe,Ne,xe,qe,dt,Ft,Nn;if(R=G,q=Nr(),q===t&&(q=null),q!==t){if(pe=G,r.charCodeAt(G)===35?(Ne=u,G++):(Ne=t,We===0&&ke(g)),Ne!==t){if(xe=[],qe=G,dt=G,We++,Ft=Gs(),We--,Ft===t?dt=void 0:(G=dt,dt=t),dt!==t?(r.length>G?(Ft=r.charAt(G),G++):(Ft=t,We===0&&ke(f)),Ft!==t?(dt=[dt,Ft],qe=dt):(G=qe,qe=t)):(G=qe,qe=t),qe!==t)for(;qe!==t;)xe.push(qe),qe=G,dt=G,We++,Ft=Gs(),We--,Ft===t?dt=void 0:(G=dt,dt=t),dt!==t?(r.length>G?(Ft=r.charAt(G),G++):(Ft=t,We===0&&ke(f)),Ft!==t?(dt=[dt,Ft],qe=dt):(G=qe,qe=t)):(G=qe,qe=t);else xe=t;xe!==t?(Ne=[Ne,xe],pe=Ne):(G=pe,pe=t)}else G=pe,pe=t;if(pe===t&&(pe=null),pe!==t){if(Ne=[],xe=Hs(),xe!==t)for(;xe!==t;)Ne.push(xe),xe=Hs();else Ne=t;Ne!==t?(yt=R,q=h(),R=q):(G=R,R=t)}else G=R,R=t}else G=R,R=t;if(R===t&&(R=G,q=Ia(),q!==t?(pe=rc(),pe!==t?(Ne=Nr(),Ne===t&&(Ne=null),Ne!==t?(r.charCodeAt(G)===58?(xe=p,G++):(xe=t,We===0&&ke(C)),xe!==t?(qe=Nr(),qe===t&&(qe=null),qe!==t?(dt=Ea(),dt!==t?(yt=R,q=w(pe,dt),R=q):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t),R===t&&(R=G,q=Ia(),q!==t?(pe=Ks(),pe!==t?(Ne=Nr(),Ne===t&&(Ne=null),Ne!==t?(r.charCodeAt(G)===58?(xe=p,G++):(xe=t,We===0&&ke(C)),xe!==t?(qe=Nr(),qe===t&&(qe=null),qe!==t?(dt=Ea(),dt!==t?(yt=R,q=w(pe,dt),R=q):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t),R===t))){if(R=G,q=Ia(),q!==t)if(pe=Ks(),pe!==t)if(Ne=Nr(),Ne!==t)if(xe=fI(),xe!==t){if(qe=[],dt=Hs(),dt!==t)for(;dt!==t;)qe.push(dt),dt=Hs();else qe=t;qe!==t?(yt=R,q=w(pe,xe),R=q):(G=R,R=t)}else G=R,R=t;else G=R,R=t;else G=R,R=t;else G=R,R=t;if(R===t)if(R=G,q=Ia(),q!==t)if(pe=Ks(),pe!==t){if(Ne=[],xe=G,qe=Nr(),qe===t&&(qe=null),qe!==t?(r.charCodeAt(G)===44?(dt=B,G++):(dt=t,We===0&&ke(v)),dt!==t?(Ft=Nr(),Ft===t&&(Ft=null),Ft!==t?(Nn=Ks(),Nn!==t?(yt=xe,qe=D(pe,Nn),xe=qe):(G=xe,xe=t)):(G=xe,xe=t)):(G=xe,xe=t)):(G=xe,xe=t),xe!==t)for(;xe!==t;)Ne.push(xe),xe=G,qe=Nr(),qe===t&&(qe=null),qe!==t?(r.charCodeAt(G)===44?(dt=B,G++):(dt=t,We===0&&ke(v)),dt!==t?(Ft=Nr(),Ft===t&&(Ft=null),Ft!==t?(Nn=Ks(),Nn!==t?(yt=xe,qe=D(pe,Nn),xe=qe):(G=xe,xe=t)):(G=xe,xe=t)):(G=xe,xe=t)):(G=xe,xe=t);else Ne=t;Ne!==t?(xe=Nr(),xe===t&&(xe=null),xe!==t?(r.charCodeAt(G)===58?(qe=p,G++):(qe=t,We===0&&ke(C)),qe!==t?(dt=Nr(),dt===t&&(dt=null),dt!==t?(Ft=Ea(),Ft!==t?(yt=R,q=T(pe,Ne,Ft),R=q):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)}else G=R,R=t;else G=R,R=t}return R}function Ea(){var R,q,pe,Ne,xe,qe,dt;if(R=G,q=G,We++,pe=G,Ne=Gs(),Ne!==t?(xe=$e(),xe!==t?(r.charCodeAt(G)===45?(qe=o,G++):(qe=t,We===0&&ke(a)),qe!==t?(dt=Nr(),dt!==t?(Ne=[Ne,xe,qe,dt],pe=Ne):(G=pe,pe=t)):(G=pe,pe=t)):(G=pe,pe=t)):(G=pe,pe=t),We--,pe!==t?(G=q,q=void 0):q=t,q!==t?(pe=Hs(),pe!==t?(Ne=wo(),Ne!==t?(xe=tc(),xe!==t?(qe=QA(),qe!==t?(yt=R,q=H(xe),R=q):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t),R===t&&(R=G,q=Gs(),q!==t?(pe=wo(),pe!==t?(Ne=Mg(),Ne!==t?(xe=QA(),xe!==t?(yt=R,q=H(Ne),R=q):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t),R===t))if(R=G,q=ic(),q!==t){if(pe=[],Ne=Hs(),Ne!==t)for(;Ne!==t;)pe.push(Ne),Ne=Hs();else pe=t;pe!==t?(yt=R,q=j(q),R=q):(G=R,R=t)}else G=R,R=t;return R}function Ia(){var R,q,pe;for(We++,R=G,q=[],r.charCodeAt(G)===32?(pe=V,G++):(pe=t,We===0&&ke(W));pe!==t;)q.push(pe),r.charCodeAt(G)===32?(pe=V,G++):(pe=t,We===0&&ke(W));return q!==t?(yt=G,pe=Z(q),pe?pe=void 0:pe=t,pe!==t?(q=[q,pe],R=q):(G=R,R=t)):(G=R,R=t),We--,R===t&&(q=t,We===0&&ke($)),R}function $e(){var R,q,pe;for(R=G,q=[],r.charCodeAt(G)===32?(pe=V,G++):(pe=t,We===0&&ke(W));pe!==t;)q.push(pe),r.charCodeAt(G)===32?(pe=V,G++):(pe=t,We===0&&ke(W));return q!==t?(yt=G,pe=A(q),pe?pe=void 0:pe=t,pe!==t?(q=[q,pe],R=q):(G=R,R=t)):(G=R,R=t),R}function wo(){var R;return yt=G,R=ae(),R?R=void 0:R=t,R}function QA(){var R;return yt=G,R=ge(),R?R=void 0:R=t,R}function rc(){var R;return R=nc(),R===t&&(R=rd()),R}function Ks(){var R,q,pe;if(R=nc(),R===t){if(R=G,q=[],pe=Kg(),pe!==t)for(;pe!==t;)q.push(pe),pe=Kg();else q=t;q!==t&&(yt=R,q=_()),R=q}return R}function ic(){var R;return R=id(),R===t&&(R=hI(),R===t&&(R=nc(),R===t&&(R=rd()))),R}function fI(){var R;return R=id(),R===t&&(R=nc(),R===t&&(R=Kg())),R}function rd(){var R,q,pe,Ne,xe,qe;if(We++,R=G,N.test(r.charAt(G))?(q=r.charAt(G),G++):(q=t,We===0&&ke(ue)),q!==t){for(pe=[],Ne=G,xe=Nr(),xe===t&&(xe=null),xe!==t?(we.test(r.charAt(G))?(qe=r.charAt(G),G++):(qe=t,We===0&&ke(Te)),qe!==t?(xe=[xe,qe],Ne=xe):(G=Ne,Ne=t)):(G=Ne,Ne=t);Ne!==t;)pe.push(Ne),Ne=G,xe=Nr(),xe===t&&(xe=null),xe!==t?(we.test(r.charAt(G))?(qe=r.charAt(G),G++):(qe=t,We===0&&ke(Te)),qe!==t?(xe=[xe,qe],Ne=xe):(G=Ne,Ne=t)):(G=Ne,Ne=t);pe!==t?(yt=R,q=Pe(),R=q):(G=R,R=t)}else G=R,R=t;return We--,R===t&&(q=t,We===0&&ke(L)),R}function Kg(){var R,q,pe,Ne,xe;if(R=G,r.substr(G,2)===Le?(q=Le,G+=2):(q=t,We===0&&ke(se)),q===t&&(q=null),q!==t)if(Ae.test(r.charAt(G))?(pe=r.charAt(G),G++):(pe=t,We===0&&ke(be)),pe!==t){for(Ne=[],fe.test(r.charAt(G))?(xe=r.charAt(G),G++):(xe=t,We===0&&ke(le));xe!==t;)Ne.push(xe),fe.test(r.charAt(G))?(xe=r.charAt(G),G++):(xe=t,We===0&&ke(le));Ne!==t?(yt=R,q=Pe(),R=q):(G=R,R=t)}else G=R,R=t;else G=R,R=t;return R}function id(){var R,q;return R=G,r.substr(G,4)===Ge?(q=Ge,G+=4):(q=t,We===0&&ke(ie)),q!==t&&(yt=R,q=Y()),R=q,R}function hI(){var R,q;return R=G,r.substr(G,4)===he?(q=he,G+=4):(q=t,We===0&&ke(re)),q!==t&&(yt=R,q=me()),R=q,R===t&&(R=G,r.substr(G,5)===tt?(q=tt,G+=5):(q=t,We===0&&ke(Rt)),q!==t&&(yt=R,q=It()),R=q),R}function nc(){var R,q,pe,Ne;return We++,R=G,r.charCodeAt(G)===34?(q=oi,G++):(q=t,We===0&&ke(pi)),q!==t?(r.charCodeAt(G)===34?(pe=oi,G++):(pe=t,We===0&&ke(pi)),pe!==t?(yt=R,q=pr(),R=q):(G=R,R=t)):(G=R,R=t),R===t&&(R=G,r.charCodeAt(G)===34?(q=oi,G++):(q=t,We===0&&ke(pi)),q!==t?(pe=pI(),pe!==t?(r.charCodeAt(G)===34?(Ne=oi,G++):(Ne=t,We===0&&ke(pi)),Ne!==t?(yt=R,q=di(pe),R=q):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)),We--,R===t&&(q=t,We===0&&ke(Ur)),R}function pI(){var R,q,pe;if(R=G,q=[],pe=Hg(),pe!==t)for(;pe!==t;)q.push(pe),pe=Hg();else q=t;return q!==t&&(yt=R,q=ai(q)),R=q,R}function Hg(){var R,q,pe,Ne,xe,qe;return Os.test(r.charAt(G))?(R=r.charAt(G),G++):(R=t,We===0&&ke(dr)),R===t&&(R=G,r.substr(G,2)===Bi?(q=Bi,G+=2):(q=t,We===0&&ke(_n)),q!==t&&(yt=R,q=pa()),R=q,R===t&&(R=G,r.substr(G,2)===EA?(q=EA,G+=2):(q=t,We===0&&ke(kg)),q!==t&&(yt=R,q=Zn()),R=q,R===t&&(R=G,r.substr(G,2)===IA?(q=IA,G+=2):(q=t,We===0&&ke(da)),q!==t&&(yt=R,q=Jp()),R=q,R===t&&(R=G,r.substr(G,2)===yA?(q=yA,G+=2):(q=t,We===0&&ke(wA)),q!==t&&(yt=R,q=Br()),R=q,R===t&&(R=G,r.substr(G,2)===Vl?(q=Vl,G+=2):(q=t,We===0&&ke(Rg)),q!==t&&(yt=R,q=Eo()),R=q,R===t&&(R=G,r.substr(G,2)===Fg?(q=Fg,G+=2):(q=t,We===0&&ke(Wp)),q!==t&&(yt=R,q=zp()),R=q,R===t&&(R=G,r.substr(G,2)===Pr?(q=Pr,G+=2):(q=t,We===0&&ke(oe)),q!==t&&(yt=R,q=Io()),R=q,R===t&&(R=G,r.substr(G,2)===kn?(q=kn,G+=2):(q=t,We===0&&ke(Ng)),q!==t&&(yt=R,q=bt()),R=q,R===t&&(R=G,r.substr(G,2)===Xl?(q=Xl,G+=2):(q=t,We===0&&ke(Rn)),q!==t?(pe=SA(),pe!==t?(Ne=SA(),Ne!==t?(xe=SA(),xe!==t?(qe=SA(),qe!==t?(yt=R,q=$n(pe,Ne,xe,qe),R=q):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)))))))))),R}function SA(){var R;return es.test(r.charAt(G))?(R=r.charAt(G),G++):(R=t,We===0&&ke(ut)),R}function Nr(){var R,q;if(We++,R=[],at.test(r.charAt(G))?(q=r.charAt(G),G++):(q=t,We===0&&ke(ln)),q!==t)for(;q!==t;)R.push(q),at.test(r.charAt(G))?(q=r.charAt(G),G++):(q=t,We===0&&ke(ln));else R=t;return We--,R===t&&(q=t,We===0&&ke(yo)),R}function dI(){var R,q;if(We++,R=[],Lt.test(r.charAt(G))?(q=r.charAt(G),G++):(q=t,We===0&&ke(Tg)),q!==t)for(;q!==t;)R.push(q),Lt.test(r.charAt(G))?(q=r.charAt(G),G++):(q=t,We===0&&ke(Tg));else R=t;return We--,R===t&&(q=t,We===0&&ke(S)),R}function Hs(){var R,q,pe,Ne,xe,qe;if(R=G,q=Gs(),q!==t){for(pe=[],Ne=G,xe=Nr(),xe===t&&(xe=null),xe!==t?(qe=Gs(),qe!==t?(xe=[xe,qe],Ne=xe):(G=Ne,Ne=t)):(G=Ne,Ne=t);Ne!==t;)pe.push(Ne),Ne=G,xe=Nr(),xe===t&&(xe=null),xe!==t?(qe=Gs(),qe!==t?(xe=[xe,qe],Ne=xe):(G=Ne,Ne=t)):(G=Ne,Ne=t);pe!==t?(q=[q,pe],R=q):(G=R,R=t)}else G=R,R=t;return R}function Gs(){var R;return r.substr(G,2)===_l?(R=_l,G+=2):(R=t,We===0&&ke(Vp)),R===t&&(r.charCodeAt(G)===10?(R=Xp,G++):(R=t,We===0&&ke(_p)),R===t&&(r.charCodeAt(G)===13?(R=Zp,G++):(R=t,We===0&&ke($p)))),R}let Gg=2,vA=0;if(Ca=n(),Ca!==t&&G===r.length)return Ca;throw Ca!==t&&G{"use strict";var $de=r=>{let e=!1,t=!1,i=!1;for(let n=0;n{if(!(typeof r=="string"||Array.isArray(r)))throw new TypeError("Expected the input to be `string | string[]`");e=Object.assign({pascalCase:!1},e);let t=n=>e.pascalCase?n.charAt(0).toUpperCase()+n.slice(1):n;return Array.isArray(r)?r=r.map(n=>n.trim()).filter(n=>n.length).join("-"):r=r.trim(),r.length===0?"":r.length===1?e.pascalCase?r.toUpperCase():r.toLowerCase():(r!==r.toLowerCase()&&(r=$de(r)),r=r.replace(/^[_.\- ]+/,"").toLowerCase().replace(/[_.\- ]+(\w|$)/g,(n,s)=>s.toUpperCase()).replace(/\d+(\w|$)/g,n=>n.toUpperCase()),t(r))};Tv.exports=JH;Tv.exports.default=JH});var zH=y((B$e,eCe)=>{eCe.exports=[{name:"AppVeyor",constant:"APPVEYOR",env:"APPVEYOR",pr:"APPVEYOR_PULL_REQUEST_NUMBER"},{name:"Azure Pipelines",constant:"AZURE_PIPELINES",env:"SYSTEM_TEAMFOUNDATIONCOLLECTIONURI",pr:"SYSTEM_PULLREQUEST_PULLREQUESTID"},{name:"Appcircle",constant:"APPCIRCLE",env:"AC_APPCIRCLE"},{name:"Bamboo",constant:"BAMBOO",env:"bamboo_planKey"},{name:"Bitbucket Pipelines",constant:"BITBUCKET",env:"BITBUCKET_COMMIT",pr:"BITBUCKET_PR_ID"},{name:"Bitrise",constant:"BITRISE",env:"BITRISE_IO",pr:"BITRISE_PULL_REQUEST"},{name:"Buddy",constant:"BUDDY",env:"BUDDY_WORKSPACE_ID",pr:"BUDDY_EXECUTION_PULL_REQUEST_ID"},{name:"Buildkite",constant:"BUILDKITE",env:"BUILDKITE",pr:{env:"BUILDKITE_PULL_REQUEST",ne:"false"}},{name:"CircleCI",constant:"CIRCLE",env:"CIRCLECI",pr:"CIRCLE_PULL_REQUEST"},{name:"Cirrus CI",constant:"CIRRUS",env:"CIRRUS_CI",pr:"CIRRUS_PR"},{name:"AWS CodeBuild",constant:"CODEBUILD",env:"CODEBUILD_BUILD_ARN"},{name:"Codefresh",constant:"CODEFRESH",env:"CF_BUILD_ID",pr:{any:["CF_PULL_REQUEST_NUMBER","CF_PULL_REQUEST_ID"]}},{name:"Codeship",constant:"CODESHIP",env:{CI_NAME:"codeship"}},{name:"Drone",constant:"DRONE",env:"DRONE",pr:{DRONE_BUILD_EVENT:"pull_request"}},{name:"dsari",constant:"DSARI",env:"DSARI"},{name:"GitHub Actions",constant:"GITHUB_ACTIONS",env:"GITHUB_ACTIONS",pr:{GITHUB_EVENT_NAME:"pull_request"}},{name:"GitLab CI",constant:"GITLAB",env:"GITLAB_CI",pr:"CI_MERGE_REQUEST_ID"},{name:"GoCD",constant:"GOCD",env:"GO_PIPELINE_LABEL"},{name:"LayerCI",constant:"LAYERCI",env:"LAYERCI",pr:"LAYERCI_PULL_REQUEST"},{name:"Hudson",constant:"HUDSON",env:"HUDSON_URL"},{name:"Jenkins",constant:"JENKINS",env:["JENKINS_URL","BUILD_ID"],pr:{any:["ghprbPullId","CHANGE_ID"]}},{name:"Magnum CI",constant:"MAGNUM",env:"MAGNUM"},{name:"Netlify CI",constant:"NETLIFY",env:"NETLIFY",pr:{env:"PULL_REQUEST",ne:"false"}},{name:"Nevercode",constant:"NEVERCODE",env:"NEVERCODE",pr:{env:"NEVERCODE_PULL_REQUEST",ne:"false"}},{name:"Render",constant:"RENDER",env:"RENDER",pr:{IS_PULL_REQUEST:"true"}},{name:"Sail CI",constant:"SAIL",env:"SAILCI",pr:"SAIL_PULL_REQUEST_NUMBER"},{name:"Semaphore",constant:"SEMAPHORE",env:"SEMAPHORE",pr:"PULL_REQUEST_NUMBER"},{name:"Screwdriver",constant:"SCREWDRIVER",env:"SCREWDRIVER",pr:{env:"SD_PULL_REQUEST",ne:"false"}},{name:"Shippable",constant:"SHIPPABLE",env:"SHIPPABLE",pr:{IS_PULL_REQUEST:"true"}},{name:"Solano CI",constant:"SOLANO",env:"TDDIUM",pr:"TDDIUM_PR_ID"},{name:"Strider CD",constant:"STRIDER",env:"STRIDER"},{name:"TaskCluster",constant:"TASKCLUSTER",env:["TASK_ID","RUN_ID"]},{name:"TeamCity",constant:"TEAMCITY",env:"TEAMCITY_VERSION"},{name:"Travis CI",constant:"TRAVIS",env:"TRAVIS",pr:{env:"TRAVIS_PULL_REQUEST",ne:"false"}},{name:"Vercel",constant:"VERCEL",env:"NOW_BUILDER"},{name:"Visual Studio App Center",constant:"APPCENTER",env:"APPCENTER_BUILD_ID"}]});var wc=y(Mn=>{"use strict";var XH=zH(),vo=process.env;Object.defineProperty(Mn,"_vendors",{value:XH.map(function(r){return r.constant})});Mn.name=null;Mn.isPR=null;XH.forEach(function(r){let t=(Array.isArray(r.env)?r.env:[r.env]).every(function(i){return VH(i)});if(Mn[r.constant]=t,t)switch(Mn.name=r.name,typeof r.pr){case"string":Mn.isPR=!!vo[r.pr];break;case"object":"env"in r.pr?Mn.isPR=r.pr.env in vo&&vo[r.pr.env]!==r.pr.ne:"any"in r.pr?Mn.isPR=r.pr.any.some(function(i){return!!vo[i]}):Mn.isPR=VH(r.pr);break;default:Mn.isPR=null}});Mn.isCI=!!(vo.CI||vo.CONTINUOUS_INTEGRATION||vo.BUILD_NUMBER||vo.RUN_ID||Mn.name);function VH(r){return typeof r=="string"?!!vo[r]:Object.keys(r).every(function(e){return vo[e]===r[e]})}});var ry=y(Un=>{"use strict";Object.defineProperty(Un,"__esModule",{value:!0});var tCe=0,rCe=1,iCe=2,nCe="",sCe="\0",oCe=-1,aCe=/^(-h|--help)(?:=([0-9]+))?$/,ACe=/^(--[a-z]+(?:-[a-z]+)*|-[a-zA-Z]+)$/,lCe=/^-[a-zA-Z]{2,}$/,cCe=/^([^=]+)=([\s\S]*)$/,uCe=process.env.DEBUG_CLI==="1";Un.BATCH_REGEX=lCe;Un.BINDING_REGEX=cCe;Un.DEBUG=uCe;Un.END_OF_INPUT=sCe;Un.HELP_COMMAND_INDEX=oCe;Un.HELP_REGEX=aCe;Un.NODE_ERRORED=iCe;Un.NODE_INITIAL=tCe;Un.NODE_SUCCESS=rCe;Un.OPTION_REGEX=ACe;Un.START_OF_INPUT=nCe});var iy=y(Qd=>{"use strict";Object.defineProperty(Qd,"__esModule",{value:!0});var gCe=ry(),Lv=class extends Error{constructor(e){super(e),this.clipanion={type:"usage"},this.name="UsageError"}},Ov=class extends Error{constructor(e,t){if(super(),this.input=e,this.candidates=t,this.clipanion={type:"none"},this.name="UnknownSyntaxError",this.candidates.length===0)this.message="Command not found, but we're not sure what's the alternative.";else if(this.candidates.every(i=>i.reason!==null&&i.reason===t[0].reason)){let[{reason:i}]=this.candidates;this.message=`${i} - -${this.candidates.map(({usage:n})=>`$ ${n}`).join(` -`)}`}else if(this.candidates.length===1){let[{usage:i}]=this.candidates;this.message=`Command not found; did you mean: - -$ ${i} -${Uv(e)}`}else this.message=`Command not found; did you mean one of: - -${this.candidates.map(({usage:i},n)=>`${`${n}.`.padStart(4)} ${i}`).join(` -`)} - -${Uv(e)}`}},Mv=class extends Error{constructor(e,t){super(),this.input=e,this.usages=t,this.clipanion={type:"none"},this.name="AmbiguousSyntaxError",this.message=`Cannot find which to pick amongst the following alternatives: - -${this.usages.map((i,n)=>`${`${n}.`.padStart(4)} ${i}`).join(` -`)} - -${Uv(e)}`}},Uv=r=>`While running ${r.filter(e=>e!==gCe.END_OF_INPUT).map(e=>{let t=JSON.stringify(e);return e.match(/\s/)||e.length===0||t!==`"${e}"`?t:e}).join(" ")}`;Qd.AmbiguousSyntaxError=Mv;Qd.UnknownSyntaxError=Ov;Qd.UsageError=Lv});var va=y(TA=>{"use strict";Object.defineProperty(TA,"__esModule",{value:!0});var _H=iy(),ZH=Symbol("clipanion/isOption");function fCe(r){return{...r,[ZH]:!0}}function hCe(r,e){return typeof r>"u"?[r,e]:typeof r=="object"&&r!==null&&!Array.isArray(r)?[void 0,r]:[r,e]}function Kv(r,e=!1){let t=r.replace(/^\.: /,"");return e&&(t=t[0].toLowerCase()+t.slice(1)),t}function $H(r,e){return e.length===1?new _H.UsageError(`${r}: ${Kv(e[0],!0)}`):new _H.UsageError(`${r}: -${e.map(t=>` -- ${Kv(t)}`).join("")}`)}function pCe(r,e,t){if(typeof t>"u")return e;let i=[],n=[],s=a=>{let l=e;return e=a,s.bind(null,l)};if(!t(e,{errors:i,coercions:n,coercion:s}))throw $H(`Invalid value for ${r}`,i);for(let[,a]of n)a();return e}TA.applyValidator=pCe;TA.cleanValidationError=Kv;TA.formatError=$H;TA.isOptionSymbol=ZH;TA.makeCommandOption=fCe;TA.rerouteArguments=hCe});var ns=y(st=>{"use strict";Object.defineProperty(st,"__esModule",{value:!0});var eG=/^[a-zA-Z_][a-zA-Z0-9_]*$/,tG=/^#[0-9a-f]{6}$/i,rG=/^#[0-9a-f]{6}([0-9a-f]{2})?$/i,iG=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/,nG=/^[a-f0-9]{8}-[a-f0-9]{4}-4[a-f0-9]{3}-[89aAbB][a-f0-9]{3}-[a-f0-9]{12}$/i,Hv=/^(?:[1-9]\d{3}(-?)(?:(?:0[1-9]|1[0-2])\1(?:0[1-9]|1\d|2[0-8])|(?:0[13-9]|1[0-2])\1(?:29|30)|(?:0[13578]|1[02])(?:\1)31|00[1-9]|0[1-9]\d|[12]\d{2}|3(?:[0-5]\d|6[0-5]))|(?:[1-9]\d(?:0[48]|[2468][048]|[13579][26])|(?:[2468][048]|[13579][26])00)(?:(-?)02(?:\2)29|-?366))T(?:[01]\d|2[0-3])(:?)[0-5]\d(?:\3[0-5]\d)?(?:Z|[+-][01]\d(?:\3[0-5]\d)?)$/,sG=r=>()=>r;function Qt({test:r}){return sG(r)()}function Zr(r){return r===null?"null":r===void 0?"undefined":r===""?"an empty string":JSON.stringify(r)}function LA(r,e){var t,i,n;return typeof e=="number"?`${(t=r==null?void 0:r.p)!==null&&t!==void 0?t:"."}[${e}]`:eG.test(e)?`${(i=r==null?void 0:r.p)!==null&&i!==void 0?i:""}.${e}`:`${(n=r==null?void 0:r.p)!==null&&n!==void 0?n:"."}[${JSON.stringify(e)}]`}function Bc(r,e){return t=>{let i=r[e];return r[e]=t,Bc(r,e).bind(null,i)}}function oG(r,e){return t=>{r[e]=t}}function ny(r,e,t){return r===1?e:t}function pt({errors:r,p:e}={},t){return r==null||r.push(`${e!=null?e:"."}: ${t}`),!1}var aG=()=>Qt({test:(r,e)=>!0});function dCe(r){return Qt({test:(e,t)=>e!==r?pt(t,`Expected a literal (got ${Zr(r)})`):!0})}var CCe=()=>Qt({test:(r,e)=>typeof r!="string"?pt(e,`Expected a string (got ${Zr(r)})`):!0});function mCe(r){let e=Array.isArray(r)?r:Object.values(r),t=new Set(e);return Qt({test:(i,n)=>t.has(i)?!0:pt(n,`Expected a valid enumeration value (got ${Zr(i)})`)})}var ECe=new Map([["true",!0],["True",!0],["1",!0],[1,!0],["false",!1],["False",!1],["0",!1],[0,!1]]),ICe=()=>Qt({test:(r,e)=>{var t;if(typeof r!="boolean"){if(typeof(e==null?void 0:e.coercions)<"u"){if(typeof(e==null?void 0:e.coercion)>"u")return pt(e,"Unbound coercion result");let i=ECe.get(r);if(typeof i<"u")return e.coercions.push([(t=e.p)!==null&&t!==void 0?t:".",e.coercion.bind(null,i)]),!0}return pt(e,`Expected a boolean (got ${Zr(r)})`)}return!0}}),yCe=()=>Qt({test:(r,e)=>{var t;if(typeof r!="number"){if(typeof(e==null?void 0:e.coercions)<"u"){if(typeof(e==null?void 0:e.coercion)>"u")return pt(e,"Unbound coercion result");let i;if(typeof r=="string"){let n;try{n=JSON.parse(r)}catch{}if(typeof n=="number")if(JSON.stringify(n)===r)i=n;else return pt(e,`Received a number that can't be safely represented by the runtime (${r})`)}if(typeof i<"u")return e.coercions.push([(t=e.p)!==null&&t!==void 0?t:".",e.coercion.bind(null,i)]),!0}return pt(e,`Expected a number (got ${Zr(r)})`)}return!0}}),wCe=()=>Qt({test:(r,e)=>{var t;if(!(r instanceof Date)){if(typeof(e==null?void 0:e.coercions)<"u"){if(typeof(e==null?void 0:e.coercion)>"u")return pt(e,"Unbound coercion result");let i;if(typeof r=="string"&&Hv.test(r))i=new Date(r);else{let n;if(typeof r=="string"){let s;try{s=JSON.parse(r)}catch{}typeof s=="number"&&(n=s)}else typeof r=="number"&&(n=r);if(typeof n<"u")if(Number.isSafeInteger(n)||!Number.isSafeInteger(n*1e3))i=new Date(n*1e3);else return pt(e,`Received a timestamp that can't be safely represented by the runtime (${r})`)}if(typeof i<"u")return e.coercions.push([(t=e.p)!==null&&t!==void 0?t:".",e.coercion.bind(null,i)]),!0}return pt(e,`Expected a date (got ${Zr(r)})`)}return!0}}),BCe=(r,{delimiter:e}={})=>Qt({test:(t,i)=>{var n;if(typeof t=="string"&&typeof e<"u"&&typeof(i==null?void 0:i.coercions)<"u"){if(typeof(i==null?void 0:i.coercion)>"u")return pt(i,"Unbound coercion result");t=t.split(e),i.coercions.push([(n=i.p)!==null&&n!==void 0?n:".",i.coercion.bind(null,t)])}if(!Array.isArray(t))return pt(i,`Expected an array (got ${Zr(t)})`);let s=!0;for(let o=0,a=t.length;o{let t=AG(r.length);return Qt({test:(i,n)=>{var s;if(typeof i=="string"&&typeof e<"u"&&typeof(n==null?void 0:n.coercions)<"u"){if(typeof(n==null?void 0:n.coercion)>"u")return pt(n,"Unbound coercion result");i=i.split(e),n.coercions.push([(s=n.p)!==null&&s!==void 0?s:".",n.coercion.bind(null,i)])}if(!Array.isArray(i))return pt(n,`Expected a tuple (got ${Zr(i)})`);let o=t(i,Object.assign({},n));for(let a=0,l=i.length;aQt({test:(t,i)=>{if(typeof t!="object"||t===null)return pt(i,`Expected an object (got ${Zr(t)})`);let n=Object.keys(t),s=!0;for(let o=0,a=n.length;o{let t=Object.keys(r);return Qt({test:(i,n)=>{if(typeof i!="object"||i===null)return pt(n,`Expected an object (got ${Zr(i)})`);let s=new Set([...t,...Object.keys(i)]),o={},a=!0;for(let l of s){if(l==="constructor"||l==="__proto__")a=pt(Object.assign(Object.assign({},n),{p:LA(n,l)}),"Unsafe property name");else{let c=Object.prototype.hasOwnProperty.call(r,l)?r[l]:void 0,u=Object.prototype.hasOwnProperty.call(i,l)?i[l]:void 0;typeof c<"u"?a=c(u,Object.assign(Object.assign({},n),{p:LA(n,l),coercion:Bc(i,l)}))&&a:e===null?a=pt(Object.assign(Object.assign({},n),{p:LA(n,l)}),`Extraneous property (got ${Zr(u)})`):Object.defineProperty(o,l,{enumerable:!0,get:()=>u,set:oG(i,l)})}if(!a&&(n==null?void 0:n.errors)==null)break}return e!==null&&(a||(n==null?void 0:n.errors)!=null)&&(a=e(o,n)&&a),a}})},vCe=r=>Qt({test:(e,t)=>e instanceof r?!0:pt(t,`Expected an instance of ${r.name} (got ${Zr(e)})`)}),xCe=(r,{exclusive:e=!1}={})=>Qt({test:(t,i)=>{var n,s,o;let a=[],l=typeof(i==null?void 0:i.errors)<"u"?[]:void 0;for(let c=0,u=r.length;c1?pt(i,`Expected to match exactly a single predicate (matched ${a.join(", ")})`):(o=i==null?void 0:i.errors)===null||o===void 0||o.push(...l),!1}}),PCe=(r,e)=>Qt({test:(t,i)=>{var n,s;let o={value:t},a=typeof(i==null?void 0:i.coercions)<"u"?Bc(o,"value"):void 0,l=typeof(i==null?void 0:i.coercions)<"u"?[]:void 0;if(!r(t,Object.assign(Object.assign({},i),{coercion:a,coercions:l})))return!1;let c=[];if(typeof l<"u")for(let[,u]of l)c.push(u());try{if(typeof(i==null?void 0:i.coercions)<"u"){if(o.value!==t){if(typeof(i==null?void 0:i.coercion)>"u")return pt(i,"Unbound coercion result");i.coercions.push([(n=i.p)!==null&&n!==void 0?n:".",i.coercion.bind(null,o.value)])}(s=i==null?void 0:i.coercions)===null||s===void 0||s.push(...l)}return e.every(u=>u(o.value,i))}finally{for(let u of c)u()}}}),DCe=r=>Qt({test:(e,t)=>typeof e>"u"?!0:r(e,t)}),kCe=r=>Qt({test:(e,t)=>e===null?!0:r(e,t)}),RCe=r=>Qt({test:(e,t)=>e.length>=r?!0:pt(t,`Expected to have a length of at least ${r} elements (got ${e.length})`)}),FCe=r=>Qt({test:(e,t)=>e.length<=r?!0:pt(t,`Expected to have a length of at most ${r} elements (got ${e.length})`)}),AG=r=>Qt({test:(e,t)=>e.length!==r?pt(t,`Expected to have a length of exactly ${r} elements (got ${e.length})`):!0}),NCe=({map:r}={})=>Qt({test:(e,t)=>{let i=new Set,n=new Set;for(let s=0,o=e.length;sQt({test:(r,e)=>r<=0?!0:pt(e,`Expected to be negative (got ${r})`)}),LCe=()=>Qt({test:(r,e)=>r>=0?!0:pt(e,`Expected to be positive (got ${r})`)}),OCe=r=>Qt({test:(e,t)=>e>=r?!0:pt(t,`Expected to be at least ${r} (got ${e})`)}),MCe=r=>Qt({test:(e,t)=>e<=r?!0:pt(t,`Expected to be at most ${r} (got ${e})`)}),UCe=(r,e)=>Qt({test:(t,i)=>t>=r&&t<=e?!0:pt(i,`Expected to be in the [${r}; ${e}] range (got ${t})`)}),KCe=(r,e)=>Qt({test:(t,i)=>t>=r&&tQt({test:(e,t)=>e!==Math.round(e)?pt(t,`Expected to be an integer (got ${e})`):Number.isSafeInteger(e)?!0:pt(t,`Expected to be a safe integer (got ${e})`)}),GCe=r=>Qt({test:(e,t)=>r.test(e)?!0:pt(t,`Expected to match the pattern ${r.toString()} (got ${Zr(e)})`)}),YCe=()=>Qt({test:(r,e)=>r!==r.toLowerCase()?pt(e,`Expected to be all-lowercase (got ${r})`):!0}),jCe=()=>Qt({test:(r,e)=>r!==r.toUpperCase()?pt(e,`Expected to be all-uppercase (got ${r})`):!0}),qCe=()=>Qt({test:(r,e)=>nG.test(r)?!0:pt(e,`Expected to be a valid UUID v4 (got ${Zr(r)})`)}),JCe=()=>Qt({test:(r,e)=>Hv.test(r)?!1:pt(e,`Expected to be a valid ISO 8601 date string (got ${Zr(r)})`)}),WCe=({alpha:r=!1})=>Qt({test:(e,t)=>(r?tG.test(e):rG.test(e))?!0:pt(t,`Expected to be a valid hexadecimal color string (got ${Zr(e)})`)}),zCe=()=>Qt({test:(r,e)=>iG.test(r)?!0:pt(e,`Expected to be a valid base 64 string (got ${Zr(r)})`)}),VCe=(r=aG())=>Qt({test:(e,t)=>{let i;try{i=JSON.parse(e)}catch{return pt(t,`Expected to be a valid JSON string (got ${Zr(e)})`)}return r(i,t)}}),XCe=r=>{let e=new Set(r);return Qt({test:(t,i)=>{let n=new Set(Object.keys(t)),s=[];for(let o of e)n.has(o)||s.push(o);return s.length>0?pt(i,`Missing required ${ny(s.length,"property","properties")} ${s.map(o=>`"${o}"`).join(", ")}`):!0}})},_Ce=r=>{let e=new Set(r);return Qt({test:(t,i)=>{let n=new Set(Object.keys(t)),s=[];for(let o of e)n.has(o)&&s.push(o);return s.length>0?pt(i,`Forbidden ${ny(s.length,"property","properties")} ${s.map(o=>`"${o}"`).join(", ")}`):!0}})},ZCe=r=>{let e=new Set(r);return Qt({test:(t,i)=>{let n=new Set(Object.keys(t)),s=[];for(let o of e)n.has(o)&&s.push(o);return s.length>1?pt(i,`Mutually exclusive properties ${s.map(o=>`"${o}"`).join(", ")}`):!0}})};(function(r){r.Forbids="Forbids",r.Requires="Requires"})(st.KeyRelationship||(st.KeyRelationship={}));var $Ce={[st.KeyRelationship.Forbids]:{expect:!1,message:"forbids using"},[st.KeyRelationship.Requires]:{expect:!0,message:"requires using"}},eme=(r,e,t,{ignore:i=[]}={})=>{let n=new Set(i),s=new Set(t),o=$Ce[e];return Qt({test:(a,l)=>{let c=new Set(Object.keys(a));if(!c.has(r)||n.has(a[r]))return!0;let u=[];for(let g of s)(c.has(g)&&!n.has(a[g]))!==o.expect&&u.push(g);return u.length>=1?pt(l,`Property "${r}" ${o.message} ${ny(u.length,"property","properties")} ${u.map(g=>`"${g}"`).join(", ")}`):!0}})};st.applyCascade=PCe;st.base64RegExp=iG;st.colorStringAlphaRegExp=rG;st.colorStringRegExp=tG;st.computeKey=LA;st.getPrintable=Zr;st.hasExactLength=AG;st.hasForbiddenKeys=_Ce;st.hasKeyRelationship=eme;st.hasMaxLength=FCe;st.hasMinLength=RCe;st.hasMutuallyExclusiveKeys=ZCe;st.hasRequiredKeys=XCe;st.hasUniqueItems=NCe;st.isArray=BCe;st.isAtLeast=OCe;st.isAtMost=MCe;st.isBase64=zCe;st.isBoolean=ICe;st.isDate=wCe;st.isDict=QCe;st.isEnum=mCe;st.isHexColor=WCe;st.isISO8601=JCe;st.isInExclusiveRange=KCe;st.isInInclusiveRange=UCe;st.isInstanceOf=vCe;st.isInteger=HCe;st.isJSON=VCe;st.isLiteral=dCe;st.isLowerCase=YCe;st.isNegative=TCe;st.isNullable=kCe;st.isNumber=yCe;st.isObject=SCe;st.isOneOf=xCe;st.isOptional=DCe;st.isPositive=LCe;st.isString=CCe;st.isTuple=bCe;st.isUUID4=qCe;st.isUnknown=aG;st.isUpperCase=jCe;st.iso8601RegExp=Hv;st.makeCoercionFn=Bc;st.makeSetter=oG;st.makeTrait=sG;st.makeValidator=Qt;st.matchesRegExp=GCe;st.plural=ny;st.pushError=pt;st.simpleKeyRegExp=eG;st.uuid4RegExp=nG});var bc=y(Gv=>{"use strict";Object.defineProperty(Gv,"__esModule",{value:!0});var lG=va();function tme(r){if(r&&r.__esModule)return r;var e=Object.create(null);return r&&Object.keys(r).forEach(function(t){if(t!=="default"){var i=Object.getOwnPropertyDescriptor(r,t);Object.defineProperty(e,t,i.get?i:{enumerable:!0,get:function(){return r[t]}})}}),e.default=r,Object.freeze(e)}var Sd=class{constructor(){this.help=!1}static Usage(e){return e}async catch(e){throw e}async validateAndExecute(){let t=this.constructor.schema;if(Array.isArray(t)){let{isDict:n,isUnknown:s,applyCascade:o}=await Promise.resolve().then(function(){return tme(ns())}),a=o(n(s()),t),l=[],c=[];if(!a(this,{errors:l,coercions:c}))throw lG.formatError("Invalid option schema",l);for(let[,g]of c)g()}else if(t!=null)throw new Error("Invalid command schema");let i=await this.execute();return typeof i<"u"?i:0}};Sd.isOption=lG.isOptionSymbol;Sd.Default=[];Gv.Command=Sd});var jv=y(vd=>{"use strict";Object.defineProperty(vd,"__esModule",{value:!0});var cG=80,Yv=Array(cG).fill("\u2501");for(let r=0;r<=24;++r)Yv[Yv.length-r]=`\x1B[38;5;${232+r}m\u2501`;var rme={header:r=>`\x1B[1m\u2501\u2501\u2501 ${r}${r.length`\x1B[1m${r}\x1B[22m`,error:r=>`\x1B[31m\x1B[1m${r}\x1B[22m\x1B[39m`,code:r=>`\x1B[36m${r}\x1B[39m`},ime={header:r=>r,bold:r=>r,error:r=>r,code:r=>r};function nme(r){let e=r.split(` -`),t=e.filter(n=>n.match(/\S/)),i=t.length>0?t.reduce((n,s)=>Math.min(n,s.length-s.trimStart().length),Number.MAX_VALUE):0;return e.map(n=>n.slice(i).trimRight()).join(` -`)}function sme(r,{format:e,paragraphs:t}){return r=r.replace(/\r\n?/g,` -`),r=nme(r),r=r.replace(/^\n+|\n+$/g,""),r=r.replace(/^(\s*)-([^\n]*?)\n+/gm,`$1-$2 - -`),r=r.replace(/\n(\n)?\n*/g,"$1"),t&&(r=r.split(/\n/).map(i=>{let n=i.match(/^\s*[*-][\t ]+(.*)/);if(!n)return i.match(/(.{1,80})(?: |$)/g).join(` -`);let s=i.length-i.trimStart().length;return n[1].match(new RegExp(`(.{1,${78-s}})(?: |$)`,"g")).map((o,a)=>" ".repeat(s)+(a===0?"- ":" ")+o).join(` -`)}).join(` - -`)),r=r.replace(/(`+)((?:.|[\n])*?)\1/g,(i,n,s)=>e.code(n+s+n)),r=r.replace(/(\*\*)((?:.|[\n])*?)\1/g,(i,n,s)=>e.bold(n+s+n)),r?`${r} -`:""}vd.formatMarkdownish=sme;vd.richFormat=rme;vd.textFormat=ime});var ly=y(Ar=>{"use strict";Object.defineProperty(Ar,"__esModule",{value:!0});var lt=ry(),ay=iy();function Vi(r){lt.DEBUG&&console.log(r)}var uG={candidateUsage:null,requiredOptions:[],errorMessage:null,ignoreOptions:!1,path:[],positionals:[],options:[],remainder:null,selectedIndex:lt.HELP_COMMAND_INDEX};function qv(){return{nodes:[Li(),Li(),Li()]}}function gG(r){let e=qv(),t=[],i=e.nodes.length;for(let n of r){t.push(i);for(let s=0;s{if(e.has(i))return;e.add(i);let n=r.nodes[i];for(let o of Object.values(n.statics))for(let{to:a}of o)t(a);for(let[,{to:o}]of n.dynamics)t(o);for(let{to:o}of n.shortcuts)t(o);let s=new Set(n.shortcuts.map(({to:o})=>o));for(;n.shortcuts.length>0;){let{to:o}=n.shortcuts.shift(),a=r.nodes[o];for(let[l,c]of Object.entries(a.statics)){let u=Object.prototype.hasOwnProperty.call(n.statics,l)?n.statics[l]:n.statics[l]=[];for(let g of c)u.some(({to:f})=>g.to===f)||u.push(g)}for(let[l,c]of a.dynamics)n.dynamics.some(([u,{to:g}])=>l===u&&c.to===g)||n.dynamics.push([l,c]);for(let l of a.shortcuts)s.has(l.to)||(n.shortcuts.push(l),s.add(l.to))}};t(lt.NODE_INITIAL)}function hG(r,{prefix:e=""}={}){if(lt.DEBUG){Vi(`${e}Nodes are:`);for(let t=0;tl!==lt.NODE_ERRORED).map(({state:l})=>({usage:l.candidateUsage,reason:null})));if(a.every(({node:l})=>l===lt.NODE_ERRORED))throw new ay.UnknownSyntaxError(e,a.map(({state:l})=>({usage:l.candidateUsage,reason:l.errorMessage})));i=pG(a)}if(i.length>0){Vi(" Results:");for(let s of i)Vi(` - ${s.node} -> ${JSON.stringify(s.state)}`)}else Vi(" No results");return i}function ome(r,e){if(e.selectedIndex!==null)return!0;if(Object.prototype.hasOwnProperty.call(r.statics,lt.END_OF_INPUT)){for(let{to:t}of r.statics[lt.END_OF_INPUT])if(t===lt.NODE_SUCCESS)return!0}return!1}function ame(r,e,t){let i=t&&e.length>0?[""]:[],n=Jv(r,e,t),s=[],o=new Set,a=(l,c,u=!0)=>{let g=[c];for(;g.length>0;){let h=g;g=[];for(let p of h){let C=r.nodes[p],w=Object.keys(C.statics);for(let B of Object.keys(C.statics)){let v=w[0];for(let{to:D,reducer:T}of C.statics[v])T==="pushPath"&&(u||l.push(v),g.push(D))}}u=!1}let f=JSON.stringify(l);o.has(f)||(s.push(l),o.add(f))};for(let{node:l,state:c}of n){if(c.remainder!==null){a([c.remainder],l);continue}let u=r.nodes[l],g=ome(u,c);for(let[f,h]of Object.entries(u.statics))(g&&f!==lt.END_OF_INPUT||!f.startsWith("-")&&h.some(({reducer:p})=>p==="pushPath"))&&a([...i,f],l);if(!!g)for(let[f,{to:h}]of u.dynamics){if(h===lt.NODE_ERRORED)continue;let p=IG(f,c);if(p!==null)for(let C of p)a([...i,C],l)}}return[...s].sort()}function Ame(r,e){let t=Jv(r,[...e,lt.END_OF_INPUT]);return dG(e,t.map(({state:i})=>i))}function pG(r){let e=0;for(let{state:t}of r)t.path.length>e&&(e=t.path.length);return r.filter(({state:t})=>t.path.length===e)}function dG(r,e){let t=e.filter(g=>g.selectedIndex!==null);if(t.length===0)throw new Error;let i=t.filter(g=>g.requiredOptions.every(f=>f.some(h=>g.options.find(p=>p.name===h))));if(i.length===0)throw new ay.UnknownSyntaxError(r,t.map(g=>({usage:g.candidateUsage,reason:null})));let n=0;for(let g of i)g.path.length>n&&(n=g.path.length);let s=i.filter(g=>g.path.length===n),o=g=>g.positionals.filter(({extra:f})=>!f).length+g.options.length,a=s.map(g=>({state:g,positionalCount:o(g)})),l=0;for(let{positionalCount:g}of a)g>l&&(l=g);let c=a.filter(({positionalCount:g})=>g===l).map(({state:g})=>g),u=CG(c);if(u.length>1)throw new ay.AmbiguousSyntaxError(r,u.map(g=>g.candidateUsage));return u[0]}function CG(r){let e=[],t=[];for(let i of r)i.selectedIndex===lt.HELP_COMMAND_INDEX?t.push(i):e.push(i);return t.length>0&&e.push({...uG,path:mG(...t.map(i=>i.path)),options:t.reduce((i,n)=>i.concat(n.options),[])}),e}function mG(r,e,...t){return e===void 0?Array.from(r):mG(r.filter((i,n)=>i===e[n]),...t)}function Li(){return{dynamics:[],shortcuts:[],statics:{}}}function Wv(r){return r===lt.NODE_SUCCESS||r===lt.NODE_ERRORED}function sy(r,e=0){return{to:Wv(r.to)?r.to:r.to>2?r.to+e-2:r.to+e,reducer:r.reducer}}function EG(r,e=0){let t=Li();for(let[i,n]of r.dynamics)t.dynamics.push([i,sy(n,e)]);for(let i of r.shortcuts)t.shortcuts.push(sy(i,e));for(let[i,n]of Object.entries(r.statics))t.statics[i]=n.map(s=>sy(s,e));return t}function Ei(r,e,t,i,n){r.nodes[e].dynamics.push([t,{to:i,reducer:n}])}function Qc(r,e,t,i){r.nodes[e].shortcuts.push({to:t,reducer:i})}function xo(r,e,t,i,n){(Object.prototype.hasOwnProperty.call(r.nodes[e].statics,t)?r.nodes[e].statics[t]:r.nodes[e].statics[t]=[]).push({to:i,reducer:n})}function xd(r,e,t,i){if(Array.isArray(e)){let[n,...s]=e;return r[n](t,i,...s)}else return r[e](t,i)}function IG(r,e){let t=Array.isArray(r)?Pd[r[0]]:Pd[r];if(typeof t.suggest>"u")return null;let i=Array.isArray(r)?r.slice(1):[];return t.suggest(e,...i)}var Pd={always:()=>!0,isOptionLike:(r,e)=>!r.ignoreOptions&&e!=="-"&&e.startsWith("-"),isNotOptionLike:(r,e)=>r.ignoreOptions||e==="-"||!e.startsWith("-"),isOption:(r,e,t,i)=>!r.ignoreOptions&&e===t,isBatchOption:(r,e,t)=>!r.ignoreOptions&<.BATCH_REGEX.test(e)&&[...e.slice(1)].every(i=>t.includes(`-${i}`)),isBoundOption:(r,e,t,i)=>{let n=e.match(lt.BINDING_REGEX);return!r.ignoreOptions&&!!n&<.OPTION_REGEX.test(n[1])&&t.includes(n[1])&&i.filter(s=>s.names.includes(n[1])).every(s=>s.allowBinding)},isNegatedOption:(r,e,t)=>!r.ignoreOptions&&e===`--no-${t.slice(2)}`,isHelp:(r,e)=>!r.ignoreOptions&<.HELP_REGEX.test(e),isUnsupportedOption:(r,e,t)=>!r.ignoreOptions&&e.startsWith("-")&<.OPTION_REGEX.test(e)&&!t.includes(e),isInvalidOption:(r,e)=>!r.ignoreOptions&&e.startsWith("-")&&!lt.OPTION_REGEX.test(e)};Pd.isOption.suggest=(r,e,t=!0)=>t?null:[e];var oy={setCandidateState:(r,e,t)=>({...r,...t}),setSelectedIndex:(r,e,t)=>({...r,selectedIndex:t}),pushBatch:(r,e)=>({...r,options:r.options.concat([...e.slice(1)].map(t=>({name:`-${t}`,value:!0})))}),pushBound:(r,e)=>{let[,t,i]=e.match(lt.BINDING_REGEX);return{...r,options:r.options.concat({name:t,value:i})}},pushPath:(r,e)=>({...r,path:r.path.concat(e)}),pushPositional:(r,e)=>({...r,positionals:r.positionals.concat({value:e,extra:!1})}),pushExtra:(r,e)=>({...r,positionals:r.positionals.concat({value:e,extra:!0})}),pushExtraNoLimits:(r,e)=>({...r,positionals:r.positionals.concat({value:e,extra:Po})}),pushTrue:(r,e,t=e)=>({...r,options:r.options.concat({name:e,value:!0})}),pushFalse:(r,e,t=e)=>({...r,options:r.options.concat({name:t,value:!1})}),pushUndefined:(r,e)=>({...r,options:r.options.concat({name:e,value:void 0})}),pushStringValue:(r,e)=>{var t;let i={...r,options:[...r.options]},n=r.options[r.options.length-1];return n.value=((t=n.value)!==null&&t!==void 0?t:[]).concat([e]),i},setStringValue:(r,e)=>{let t={...r,options:[...r.options]},i=r.options[r.options.length-1];return i.value=e,t},inhibateOptions:r=>({...r,ignoreOptions:!0}),useHelp:(r,e,t)=>{let[,,i]=e.match(lt.HELP_REGEX);return typeof i<"u"?{...r,options:[{name:"-c",value:String(t)},{name:"-i",value:i}]}:{...r,options:[{name:"-c",value:String(t)}]}},setError:(r,e,t)=>e===lt.END_OF_INPUT?{...r,errorMessage:`${t}.`}:{...r,errorMessage:`${t} ("${e}").`},setOptionArityError:(r,e)=>{let t=r.options[r.options.length-1];return{...r,errorMessage:`Not enough arguments to option ${t.name}.`}}},Po=Symbol(),Ay=class{constructor(e,t){this.allOptionNames=[],this.arity={leading:[],trailing:[],extra:[],proxy:!1},this.options=[],this.paths=[],this.cliIndex=e,this.cliOpts=t}addPath(e){this.paths.push(e)}setArity({leading:e=this.arity.leading,trailing:t=this.arity.trailing,extra:i=this.arity.extra,proxy:n=this.arity.proxy}){Object.assign(this.arity,{leading:e,trailing:t,extra:i,proxy:n})}addPositional({name:e="arg",required:t=!0}={}){if(!t&&this.arity.extra===Po)throw new Error("Optional parameters cannot be declared when using .rest() or .proxy()");if(!t&&this.arity.trailing.length>0)throw new Error("Optional parameters cannot be declared after the required trailing positional arguments");!t&&this.arity.extra!==Po?this.arity.extra.push(e):this.arity.extra!==Po&&this.arity.extra.length===0?this.arity.leading.push(e):this.arity.trailing.push(e)}addRest({name:e="arg",required:t=0}={}){if(this.arity.extra===Po)throw new Error("Infinite lists cannot be declared multiple times in the same command");if(this.arity.trailing.length>0)throw new Error("Infinite lists cannot be declared after the required trailing positional arguments");for(let i=0;i1)throw new Error("The arity cannot be higher than 1 when the option only supports the --arg=value syntax");if(!Number.isInteger(i))throw new Error(`The arity must be an integer, got ${i}`);if(i<0)throw new Error(`The arity must be positive, got ${i}`);this.allOptionNames.push(...e),this.options.push({names:e,description:t,arity:i,hidden:n,required:s,allowBinding:o})}setContext(e){this.context=e}usage({detailed:e=!0,inlineOptions:t=!0}={}){let i=[this.cliOpts.binaryName],n=[];if(this.paths.length>0&&i.push(...this.paths[0]),e){for(let{names:o,arity:a,hidden:l,description:c,required:u}of this.options){if(l)continue;let g=[];for(let h=0;h`:`[${f}]`)}i.push(...this.arity.leading.map(o=>`<${o}>`)),this.arity.extra===Po?i.push("..."):i.push(...this.arity.extra.map(o=>`[${o}]`)),i.push(...this.arity.trailing.map(o=>`<${o}>`))}return{usage:i.join(" "),options:n}}compile(){if(typeof this.context>"u")throw new Error("Assertion failed: No context attached");let e=qv(),t=lt.NODE_INITIAL,i=this.usage().usage,n=this.options.filter(a=>a.required).map(a=>a.names);t=ss(e,Li()),xo(e,lt.NODE_INITIAL,lt.START_OF_INPUT,t,["setCandidateState",{candidateUsage:i,requiredOptions:n}]);let s=this.arity.proxy?"always":"isNotOptionLike",o=this.paths.length>0?this.paths:[[]];for(let a of o){let l=t;if(a.length>0){let f=ss(e,Li());Qc(e,l,f),this.registerOptions(e,f),l=f}for(let f=0;f0||!this.arity.proxy){let f=ss(e,Li());Ei(e,l,"isHelp",f,["useHelp",this.cliIndex]),xo(e,f,lt.END_OF_INPUT,lt.NODE_SUCCESS,["setSelectedIndex",lt.HELP_COMMAND_INDEX]),this.registerOptions(e,l)}this.arity.leading.length>0&&xo(e,l,lt.END_OF_INPUT,lt.NODE_ERRORED,["setError","Not enough positional arguments"]);let c=l;for(let f=0;f0||f+1!==this.arity.leading.length)&&xo(e,h,lt.END_OF_INPUT,lt.NODE_ERRORED,["setError","Not enough positional arguments"]),Ei(e,c,"isNotOptionLike",h,"pushPositional"),c=h}let u=c;if(this.arity.extra===Po||this.arity.extra.length>0){let f=ss(e,Li());if(Qc(e,c,f),this.arity.extra===Po){let h=ss(e,Li());this.arity.proxy||this.registerOptions(e,h),Ei(e,c,s,h,"pushExtraNoLimits"),Ei(e,h,s,h,"pushExtraNoLimits"),Qc(e,h,f)}else for(let h=0;h0&&xo(e,u,lt.END_OF_INPUT,lt.NODE_ERRORED,["setError","Not enough positional arguments"]);let g=u;for(let f=0;fo.length>s.length?o:s,"");if(i.arity===0)for(let s of i.names)Ei(e,t,["isOption",s,i.hidden||s!==n],t,"pushTrue"),s.startsWith("--")&&!s.startsWith("--no-")&&Ei(e,t,["isNegatedOption",s],t,["pushFalse",s]);else{let s=ss(e,Li());for(let o of i.names)Ei(e,t,["isOption",o,i.hidden||o!==n],s,"pushUndefined");for(let o=0;o=0&&eAme(i,n),suggest:(n,s)=>ame(i,n,s)}}};Ar.CliBuilder=Dd;Ar.CommandBuilder=Ay;Ar.NoLimits=Po;Ar.aggregateHelpStates=CG;Ar.cloneNode=EG;Ar.cloneTransition=sy;Ar.debug=Vi;Ar.debugMachine=hG;Ar.execute=xd;Ar.injectNode=ss;Ar.isTerminalNode=Wv;Ar.makeAnyOfMachine=gG;Ar.makeNode=Li;Ar.makeStateMachine=qv;Ar.reducers=oy;Ar.registerDynamic=Ei;Ar.registerShortcut=Qc;Ar.registerStatic=xo;Ar.runMachineInternal=Jv;Ar.selectBestState=dG;Ar.simplifyMachine=fG;Ar.suggest=IG;Ar.tests=Pd;Ar.trimSmallerBranches=pG});var yG=y(zv=>{"use strict";Object.defineProperty(zv,"__esModule",{value:!0});var lme=bc(),kd=class extends lme.Command{constructor(e){super(),this.contexts=e,this.commands=[]}static from(e,t){let i=new kd(t);i.path=e.path;for(let n of e.options)switch(n.name){case"-c":i.commands.push(Number(n.value));break;case"-i":i.index=Number(n.value);break}return i}async execute(){let e=this.commands;if(typeof this.index<"u"&&this.index>=0&&this.index1){this.context.stdout.write(`Multiple commands match your selection: -`),this.context.stdout.write(` -`);let t=0;for(let i of this.commands)this.context.stdout.write(this.cli.usage(this.contexts[i].commandClass,{prefix:`${t++}. `.padStart(5)}));this.context.stdout.write(` -`),this.context.stdout.write(`Run again with -h= to see the longer details of any of those commands. -`)}}};zv.HelpCommand=kd});var vG=y(Vv=>{"use strict";Object.defineProperty(Vv,"__esModule",{value:!0});var cme=ry(),wG=bc(),ume=J("tty"),gme=ly(),hn=jv(),fme=yG();function hme(r){return r&&typeof r=="object"&&"default"in r?r:{default:r}}var BG=hme(ume),bG=Symbol("clipanion/errorCommand");function pme(){return process.env.FORCE_COLOR==="0"?1:process.env.FORCE_COLOR==="1"||typeof process.stdout<"u"&&process.stdout.isTTY?8:1}var OA=class{constructor({binaryLabel:e,binaryName:t="...",binaryVersion:i,enableCapture:n=!1,enableColors:s}={}){this.registrations=new Map,this.builder=new gme.CliBuilder({binaryName:t}),this.binaryLabel=e,this.binaryName=t,this.binaryVersion=i,this.enableCapture=n,this.enableColors=s}static from(e,t={}){let i=new OA(t);for(let n of e)i.register(n);return i}register(e){var t;let i=new Map,n=new e;for(let l in n){let c=n[l];typeof c=="object"&&c!==null&&c[wG.Command.isOption]&&i.set(l,c)}let s=this.builder.command(),o=s.cliIndex,a=(t=e.paths)!==null&&t!==void 0?t:n.paths;if(typeof a<"u")for(let l of a)s.addPath(l);this.registrations.set(e,{specs:i,builder:s,index:o});for(let[l,{definition:c}]of i.entries())c(s,l);s.setContext({commandClass:e})}process(e){let{contexts:t,process:i}=this.builder.compile(),n=i(e);switch(n.selectedIndex){case cme.HELP_COMMAND_INDEX:return fme.HelpCommand.from(n,t);default:{let{commandClass:s}=t[n.selectedIndex],o=this.registrations.get(s);if(typeof o>"u")throw new Error("Assertion failed: Expected the command class to have been registered.");let a=new s;a.path=n.path;try{for(let[l,{transformer:c}]of o.specs.entries())a[l]=c(o.builder,l,n);return a}catch(l){throw l[bG]=a,l}}break}}async run(e,t){var i;let n,s={...OA.defaultContext,...t},o=(i=this.enableColors)!==null&&i!==void 0?i:s.colorDepth>1;if(!Array.isArray(e))n=e;else try{n=this.process(e)}catch(c){return s.stdout.write(this.error(c,{colored:o})),1}if(n.help)return s.stdout.write(this.usage(n,{colored:o,detailed:!0})),0;n.context=s,n.cli={binaryLabel:this.binaryLabel,binaryName:this.binaryName,binaryVersion:this.binaryVersion,enableCapture:this.enableCapture,enableColors:this.enableColors,definitions:()=>this.definitions(),error:(c,u)=>this.error(c,u),format:c=>this.format(c),process:c=>this.process(c),run:(c,u)=>this.run(c,{...s,...u}),usage:(c,u)=>this.usage(c,u)};let a=this.enableCapture?dme(s):SG,l;try{l=await a(()=>n.validateAndExecute().catch(c=>n.catch(c).then(()=>0)))}catch(c){return s.stdout.write(this.error(c,{colored:o,command:n})),1}return l}async runExit(e,t){process.exitCode=await this.run(e,t)}suggest(e,t){let{suggest:i}=this.builder.compile();return i(e,t)}definitions({colored:e=!1}={}){let t=[];for(let[i,{index:n}]of this.registrations){if(typeof i.usage>"u")continue;let{usage:s}=this.getUsageByIndex(n,{detailed:!1}),{usage:o,options:a}=this.getUsageByIndex(n,{detailed:!0,inlineOptions:!1}),l=typeof i.usage.category<"u"?hn.formatMarkdownish(i.usage.category,{format:this.format(e),paragraphs:!1}):void 0,c=typeof i.usage.description<"u"?hn.formatMarkdownish(i.usage.description,{format:this.format(e),paragraphs:!1}):void 0,u=typeof i.usage.details<"u"?hn.formatMarkdownish(i.usage.details,{format:this.format(e),paragraphs:!0}):void 0,g=typeof i.usage.examples<"u"?i.usage.examples.map(([f,h])=>[hn.formatMarkdownish(f,{format:this.format(e),paragraphs:!1}),h.replace(/\$0/g,this.binaryName)]):void 0;t.push({path:s,usage:o,category:l,description:c,details:u,examples:g,options:a})}return t}usage(e=null,{colored:t,detailed:i=!1,prefix:n="$ "}={}){var s;if(e===null){for(let l of this.registrations.keys()){let c=l.paths,u=typeof l.usage<"u";if(!c||c.length===0||c.length===1&&c[0].length===0||((s=c==null?void 0:c.some(h=>h.length===0))!==null&&s!==void 0?s:!1))if(e){e=null;break}else e=l;else if(u){e=null;continue}}e&&(i=!0)}let o=e!==null&&e instanceof wG.Command?e.constructor:e,a="";if(o)if(i){let{description:l="",details:c="",examples:u=[]}=o.usage||{};l!==""&&(a+=hn.formatMarkdownish(l,{format:this.format(t),paragraphs:!1}).replace(/^./,h=>h.toUpperCase()),a+=` -`),(c!==""||u.length>0)&&(a+=`${this.format(t).header("Usage")} -`,a+=` -`);let{usage:g,options:f}=this.getUsageByRegistration(o,{inlineOptions:!1});if(a+=`${this.format(t).bold(n)}${g} -`,f.length>0){a+=` -`,a+=`${hn.richFormat.header("Options")} -`;let h=f.reduce((p,C)=>Math.max(p,C.definition.length),0);a+=` -`;for(let{definition:p,description:C}of f)a+=` ${this.format(t).bold(p.padEnd(h))} ${hn.formatMarkdownish(C,{format:this.format(t),paragraphs:!1})}`}if(c!==""&&(a+=` -`,a+=`${this.format(t).header("Details")} -`,a+=` -`,a+=hn.formatMarkdownish(c,{format:this.format(t),paragraphs:!0})),u.length>0){a+=` -`,a+=`${this.format(t).header("Examples")} -`;for(let[h,p]of u)a+=` -`,a+=hn.formatMarkdownish(h,{format:this.format(t),paragraphs:!1}),a+=`${p.replace(/^/m,` ${this.format(t).bold(n)}`).replace(/\$0/g,this.binaryName)} -`}}else{let{usage:l}=this.getUsageByRegistration(o);a+=`${this.format(t).bold(n)}${l} -`}else{let l=new Map;for(let[f,{index:h}]of this.registrations.entries()){if(typeof f.usage>"u")continue;let p=typeof f.usage.category<"u"?hn.formatMarkdownish(f.usage.category,{format:this.format(t),paragraphs:!1}):null,C=l.get(p);typeof C>"u"&&l.set(p,C=[]);let{usage:w}=this.getUsageByIndex(h);C.push({commandClass:f,usage:w})}let c=Array.from(l.keys()).sort((f,h)=>f===null?-1:h===null?1:f.localeCompare(h,"en",{usage:"sort",caseFirst:"upper"})),u=typeof this.binaryLabel<"u",g=typeof this.binaryVersion<"u";u||g?(u&&g?a+=`${this.format(t).header(`${this.binaryLabel} - ${this.binaryVersion}`)} - -`:u?a+=`${this.format(t).header(`${this.binaryLabel}`)} -`:a+=`${this.format(t).header(`${this.binaryVersion}`)} -`,a+=` ${this.format(t).bold(n)}${this.binaryName} -`):a+=`${this.format(t).bold(n)}${this.binaryName} -`;for(let f of c){let h=l.get(f).slice().sort((C,w)=>C.usage.localeCompare(w.usage,"en",{usage:"sort",caseFirst:"upper"})),p=f!==null?f.trim():"General commands";a+=` -`,a+=`${this.format(t).header(`${p}`)} -`;for(let{commandClass:C,usage:w}of h){let B=C.usage.description||"undocumented";a+=` -`,a+=` ${this.format(t).bold(w)} -`,a+=` ${hn.formatMarkdownish(B,{format:this.format(t),paragraphs:!1})}`}}a+=` -`,a+=hn.formatMarkdownish("You can also print more details about any of these commands by calling them with the `-h,--help` flag right after the command name.",{format:this.format(t),paragraphs:!0})}return a}error(e,t){var i,{colored:n,command:s=(i=e[bG])!==null&&i!==void 0?i:null}=t===void 0?{}:t;e instanceof Error||(e=new Error(`Execution failed with a non-error rejection (rejected value: ${JSON.stringify(e)})`));let o="",a=e.name.replace(/([a-z])([A-Z])/g,"$1 $2");a==="Error"&&(a="Internal Error"),o+=`${this.format(n).error(a)}: ${e.message} -`;let l=e.clipanion;return typeof l<"u"?l.type==="usage"&&(o+=` -`,o+=this.usage(s)):e.stack&&(o+=`${e.stack.replace(/^.*\n/,"")} -`),o}format(e){var t;return((t=e!=null?e:this.enableColors)!==null&&t!==void 0?t:OA.defaultContext.colorDepth>1)?hn.richFormat:hn.textFormat}getUsageByRegistration(e,t){let i=this.registrations.get(e);if(typeof i>"u")throw new Error("Assertion failed: Unregistered command");return this.getUsageByIndex(i.index,t)}getUsageByIndex(e,t){return this.builder.getBuilderByIndex(e).usage(t)}};OA.defaultContext={stdin:process.stdin,stdout:process.stdout,stderr:process.stderr,colorDepth:"getColorDepth"in BG.default.WriteStream.prototype?BG.default.WriteStream.prototype.getColorDepth():pme()};var QG;function dme(r){let e=QG;if(typeof e>"u"){if(r.stdout===process.stdout&&r.stderr===process.stderr)return SG;let{AsyncLocalStorage:t}=J("async_hooks");e=QG=new t;let i=process.stdout._write;process.stdout._write=function(s,o,a){let l=e.getStore();return typeof l>"u"?i.call(this,s,o,a):l.stdout.write(s,o,a)};let n=process.stderr._write;process.stderr._write=function(s,o,a){let l=e.getStore();return typeof l>"u"?n.call(this,s,o,a):l.stderr.write(s,o,a)}}return t=>e.run(r,t)}function SG(r){return r()}Vv.Cli=OA});var xG=y(Xv=>{"use strict";Object.defineProperty(Xv,"__esModule",{value:!0});var Cme=bc(),cy=class extends Cme.Command{async execute(){this.context.stdout.write(`${JSON.stringify(this.cli.definitions(),null,2)} -`)}};cy.paths=[["--clipanion=definitions"]];Xv.DefinitionsCommand=cy});var PG=y(_v=>{"use strict";Object.defineProperty(_v,"__esModule",{value:!0});var mme=bc(),uy=class extends mme.Command{async execute(){this.context.stdout.write(this.cli.usage())}};uy.paths=[["-h"],["--help"]];_v.HelpCommand=uy});var DG=y(Zv=>{"use strict";Object.defineProperty(Zv,"__esModule",{value:!0});var Eme=bc(),gy=class extends Eme.Command{async execute(){var e;this.context.stdout.write(`${(e=this.cli.binaryVersion)!==null&&e!==void 0?e:""} -`)}};gy.paths=[["-v"],["--version"]];Zv.VersionCommand=gy});var kG=y(Rd=>{"use strict";Object.defineProperty(Rd,"__esModule",{value:!0});var Ime=xG(),yme=PG(),wme=DG();Rd.DefinitionsCommand=Ime.DefinitionsCommand;Rd.HelpCommand=yme.HelpCommand;Rd.VersionCommand=wme.VersionCommand});var FG=y($v=>{"use strict";Object.defineProperty($v,"__esModule",{value:!0});var RG=va();function Bme(r,e,t){let[i,n]=RG.rerouteArguments(e,t!=null?t:{}),{arity:s=1}=n,o=r.split(","),a=new Set(o);return RG.makeCommandOption({definition(l){l.addOption({names:o,arity:s,hidden:n==null?void 0:n.hidden,description:n==null?void 0:n.description,required:n.required})},transformer(l,c,u){let g=typeof i<"u"?[...i]:void 0;for(let{name:f,value:h}of u.options)!a.has(f)||(g=g!=null?g:[],g.push(h));return g}})}$v.Array=Bme});var TG=y(ex=>{"use strict";Object.defineProperty(ex,"__esModule",{value:!0});var NG=va();function bme(r,e,t){let[i,n]=NG.rerouteArguments(e,t!=null?t:{}),s=r.split(","),o=new Set(s);return NG.makeCommandOption({definition(a){a.addOption({names:s,allowBinding:!1,arity:0,hidden:n.hidden,description:n.description,required:n.required})},transformer(a,l,c){let u=i;for(let{name:g,value:f}of c.options)!o.has(g)||(u=f);return u}})}ex.Boolean=bme});var OG=y(tx=>{"use strict";Object.defineProperty(tx,"__esModule",{value:!0});var LG=va();function Qme(r,e,t){let[i,n]=LG.rerouteArguments(e,t!=null?t:{}),s=r.split(","),o=new Set(s);return LG.makeCommandOption({definition(a){a.addOption({names:s,allowBinding:!1,arity:0,hidden:n.hidden,description:n.description,required:n.required})},transformer(a,l,c){let u=i;for(let{name:g,value:f}of c.options)!o.has(g)||(u!=null||(u=0),f?u+=1:u=0);return u}})}tx.Counter=Qme});var MG=y(rx=>{"use strict";Object.defineProperty(rx,"__esModule",{value:!0});var Sme=va();function vme(r={}){return Sme.makeCommandOption({definition(e,t){var i;e.addProxy({name:(i=r.name)!==null&&i!==void 0?i:t,required:r.required})},transformer(e,t,i){return i.positionals.map(({value:n})=>n)}})}rx.Proxy=vme});var UG=y(ix=>{"use strict";Object.defineProperty(ix,"__esModule",{value:!0});var xme=va(),Pme=ly();function Dme(r={}){return xme.makeCommandOption({definition(e,t){var i;e.addRest({name:(i=r.name)!==null&&i!==void 0?i:t,required:r.required})},transformer(e,t,i){let n=o=>{let a=i.positionals[o];return a.extra===Pme.NoLimits||a.extra===!1&&oo)}})}ix.Rest=Dme});var KG=y(nx=>{"use strict";Object.defineProperty(nx,"__esModule",{value:!0});var Fd=va(),kme=ly();function Rme(r,e,t){let[i,n]=Fd.rerouteArguments(e,t!=null?t:{}),{arity:s=1}=n,o=r.split(","),a=new Set(o);return Fd.makeCommandOption({definition(l){l.addOption({names:o,arity:n.tolerateBoolean?0:s,hidden:n.hidden,description:n.description,required:n.required})},transformer(l,c,u){let g,f=i;for(let{name:h,value:p}of u.options)!a.has(h)||(g=h,f=p);return typeof f=="string"?Fd.applyValidator(g!=null?g:c,f,n.validator):f}})}function Fme(r={}){let{required:e=!0}=r;return Fd.makeCommandOption({definition(t,i){var n;t.addPositional({name:(n=r.name)!==null&&n!==void 0?n:i,required:r.required})},transformer(t,i,n){var s;for(let o=0;o{"use strict";Object.defineProperty(pn,"__esModule",{value:!0});var lf=va(),Tme=FG(),Lme=TG(),Ome=OG(),Mme=MG(),Ume=UG(),Kme=KG();pn.applyValidator=lf.applyValidator;pn.cleanValidationError=lf.cleanValidationError;pn.formatError=lf.formatError;pn.isOptionSymbol=lf.isOptionSymbol;pn.makeCommandOption=lf.makeCommandOption;pn.rerouteArguments=lf.rerouteArguments;pn.Array=Tme.Array;pn.Boolean=Lme.Boolean;pn.Counter=Ome.Counter;pn.Proxy=Mme.Proxy;pn.Rest=Ume.Rest;pn.String=Kme.String});var Xe=y(MA=>{"use strict";Object.defineProperty(MA,"__esModule",{value:!0});var Hme=iy(),Gme=bc(),Yme=jv(),jme=vG(),qme=kG(),Jme=HG();MA.UsageError=Hme.UsageError;MA.Command=Gme.Command;MA.formatMarkdownish=Yme.formatMarkdownish;MA.Cli=jme.Cli;MA.Builtins=qme;MA.Option=Jme});var YG=y((J$e,GG)=>{"use strict";GG.exports=(r,...e)=>new Promise(t=>{t(r(...e))})});var cf=y((W$e,sx)=>{"use strict";var Wme=YG(),jG=r=>{if(r<1)throw new TypeError("Expected `concurrency` to be a number from 1 and up");let e=[],t=0,i=()=>{t--,e.length>0&&e.shift()()},n=(a,l,...c)=>{t++;let u=Wme(a,...c);l(u),u.then(i,i)},s=(a,l,...c)=>{tnew Promise(c=>s(a,c,...l));return Object.defineProperties(o,{activeCount:{get:()=>t},pendingCount:{get:()=>e.length}}),o};sx.exports=jG;sx.exports.default=jG});var Nd=y((V$e,qG)=>{var zme="2.0.0",Vme=Number.MAX_SAFE_INTEGER||9007199254740991,Xme=16;qG.exports={SEMVER_SPEC_VERSION:zme,MAX_LENGTH:256,MAX_SAFE_INTEGER:Vme,MAX_SAFE_COMPONENT_LENGTH:Xme}});var Td=y((X$e,JG)=>{var _me=typeof process=="object"&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...r)=>console.error("SEMVER",...r):()=>{};JG.exports=_me});var Sc=y((KA,WG)=>{var{MAX_SAFE_COMPONENT_LENGTH:ox}=Nd(),Zme=Td();KA=WG.exports={};var $me=KA.re=[],_e=KA.src=[],Ze=KA.t={},eEe=0,St=(r,e,t)=>{let i=eEe++;Zme(i,e),Ze[r]=i,_e[i]=e,$me[i]=new RegExp(e,t?"g":void 0)};St("NUMERICIDENTIFIER","0|[1-9]\\d*");St("NUMERICIDENTIFIERLOOSE","[0-9]+");St("NONNUMERICIDENTIFIER","\\d*[a-zA-Z-][a-zA-Z0-9-]*");St("MAINVERSION",`(${_e[Ze.NUMERICIDENTIFIER]})\\.(${_e[Ze.NUMERICIDENTIFIER]})\\.(${_e[Ze.NUMERICIDENTIFIER]})`);St("MAINVERSIONLOOSE",`(${_e[Ze.NUMERICIDENTIFIERLOOSE]})\\.(${_e[Ze.NUMERICIDENTIFIERLOOSE]})\\.(${_e[Ze.NUMERICIDENTIFIERLOOSE]})`);St("PRERELEASEIDENTIFIER",`(?:${_e[Ze.NUMERICIDENTIFIER]}|${_e[Ze.NONNUMERICIDENTIFIER]})`);St("PRERELEASEIDENTIFIERLOOSE",`(?:${_e[Ze.NUMERICIDENTIFIERLOOSE]}|${_e[Ze.NONNUMERICIDENTIFIER]})`);St("PRERELEASE",`(?:-(${_e[Ze.PRERELEASEIDENTIFIER]}(?:\\.${_e[Ze.PRERELEASEIDENTIFIER]})*))`);St("PRERELEASELOOSE",`(?:-?(${_e[Ze.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${_e[Ze.PRERELEASEIDENTIFIERLOOSE]})*))`);St("BUILDIDENTIFIER","[0-9A-Za-z-]+");St("BUILD",`(?:\\+(${_e[Ze.BUILDIDENTIFIER]}(?:\\.${_e[Ze.BUILDIDENTIFIER]})*))`);St("FULLPLAIN",`v?${_e[Ze.MAINVERSION]}${_e[Ze.PRERELEASE]}?${_e[Ze.BUILD]}?`);St("FULL",`^${_e[Ze.FULLPLAIN]}$`);St("LOOSEPLAIN",`[v=\\s]*${_e[Ze.MAINVERSIONLOOSE]}${_e[Ze.PRERELEASELOOSE]}?${_e[Ze.BUILD]}?`);St("LOOSE",`^${_e[Ze.LOOSEPLAIN]}$`);St("GTLT","((?:<|>)?=?)");St("XRANGEIDENTIFIERLOOSE",`${_e[Ze.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`);St("XRANGEIDENTIFIER",`${_e[Ze.NUMERICIDENTIFIER]}|x|X|\\*`);St("XRANGEPLAIN",`[v=\\s]*(${_e[Ze.XRANGEIDENTIFIER]})(?:\\.(${_e[Ze.XRANGEIDENTIFIER]})(?:\\.(${_e[Ze.XRANGEIDENTIFIER]})(?:${_e[Ze.PRERELEASE]})?${_e[Ze.BUILD]}?)?)?`);St("XRANGEPLAINLOOSE",`[v=\\s]*(${_e[Ze.XRANGEIDENTIFIERLOOSE]})(?:\\.(${_e[Ze.XRANGEIDENTIFIERLOOSE]})(?:\\.(${_e[Ze.XRANGEIDENTIFIERLOOSE]})(?:${_e[Ze.PRERELEASELOOSE]})?${_e[Ze.BUILD]}?)?)?`);St("XRANGE",`^${_e[Ze.GTLT]}\\s*${_e[Ze.XRANGEPLAIN]}$`);St("XRANGELOOSE",`^${_e[Ze.GTLT]}\\s*${_e[Ze.XRANGEPLAINLOOSE]}$`);St("COERCE",`(^|[^\\d])(\\d{1,${ox}})(?:\\.(\\d{1,${ox}}))?(?:\\.(\\d{1,${ox}}))?(?:$|[^\\d])`);St("COERCERTL",_e[Ze.COERCE],!0);St("LONETILDE","(?:~>?)");St("TILDETRIM",`(\\s*)${_e[Ze.LONETILDE]}\\s+`,!0);KA.tildeTrimReplace="$1~";St("TILDE",`^${_e[Ze.LONETILDE]}${_e[Ze.XRANGEPLAIN]}$`);St("TILDELOOSE",`^${_e[Ze.LONETILDE]}${_e[Ze.XRANGEPLAINLOOSE]}$`);St("LONECARET","(?:\\^)");St("CARETTRIM",`(\\s*)${_e[Ze.LONECARET]}\\s+`,!0);KA.caretTrimReplace="$1^";St("CARET",`^${_e[Ze.LONECARET]}${_e[Ze.XRANGEPLAIN]}$`);St("CARETLOOSE",`^${_e[Ze.LONECARET]}${_e[Ze.XRANGEPLAINLOOSE]}$`);St("COMPARATORLOOSE",`^${_e[Ze.GTLT]}\\s*(${_e[Ze.LOOSEPLAIN]})$|^$`);St("COMPARATOR",`^${_e[Ze.GTLT]}\\s*(${_e[Ze.FULLPLAIN]})$|^$`);St("COMPARATORTRIM",`(\\s*)${_e[Ze.GTLT]}\\s*(${_e[Ze.LOOSEPLAIN]}|${_e[Ze.XRANGEPLAIN]})`,!0);KA.comparatorTrimReplace="$1$2$3";St("HYPHENRANGE",`^\\s*(${_e[Ze.XRANGEPLAIN]})\\s+-\\s+(${_e[Ze.XRANGEPLAIN]})\\s*$`);St("HYPHENRANGELOOSE",`^\\s*(${_e[Ze.XRANGEPLAINLOOSE]})\\s+-\\s+(${_e[Ze.XRANGEPLAINLOOSE]})\\s*$`);St("STAR","(<|>)?=?\\s*\\*");St("GTE0","^\\s*>=\\s*0.0.0\\s*$");St("GTE0PRE","^\\s*>=\\s*0.0.0-0\\s*$")});var Ld=y((_$e,zG)=>{var tEe=["includePrerelease","loose","rtl"],rEe=r=>r?typeof r!="object"?{loose:!0}:tEe.filter(e=>r[e]).reduce((e,t)=>(e[t]=!0,e),{}):{};zG.exports=rEe});var hy=y((Z$e,_G)=>{var VG=/^[0-9]+$/,XG=(r,e)=>{let t=VG.test(r),i=VG.test(e);return t&&i&&(r=+r,e=+e),r===e?0:t&&!i?-1:i&&!t?1:rXG(e,r);_G.exports={compareIdentifiers:XG,rcompareIdentifiers:iEe}});var Oi=y(($$e,tY)=>{var py=Td(),{MAX_LENGTH:ZG,MAX_SAFE_INTEGER:dy}=Nd(),{re:$G,t:eY}=Sc(),nEe=Ld(),{compareIdentifiers:Od}=hy(),Kn=class{constructor(e,t){if(t=nEe(t),e instanceof Kn){if(e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease)return e;e=e.version}else if(typeof e!="string")throw new TypeError(`Invalid Version: ${e}`);if(e.length>ZG)throw new TypeError(`version is longer than ${ZG} characters`);py("SemVer",e,t),this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease;let i=e.trim().match(t.loose?$G[eY.LOOSE]:$G[eY.FULL]);if(!i)throw new TypeError(`Invalid Version: ${e}`);if(this.raw=e,this.major=+i[1],this.minor=+i[2],this.patch=+i[3],this.major>dy||this.major<0)throw new TypeError("Invalid major version");if(this.minor>dy||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>dy||this.patch<0)throw new TypeError("Invalid patch version");i[4]?this.prerelease=i[4].split(".").map(n=>{if(/^[0-9]+$/.test(n)){let s=+n;if(s>=0&&s=0;)typeof this.prerelease[i]=="number"&&(this.prerelease[i]++,i=-2);i===-1&&this.prerelease.push(0)}t&&(this.prerelease[0]===t?isNaN(this.prerelease[1])&&(this.prerelease=[t,0]):this.prerelease=[t,0]);break;default:throw new Error(`invalid increment argument: ${e}`)}return this.format(),this.raw=this.version,this}};tY.exports=Kn});var vc=y((eet,sY)=>{var{MAX_LENGTH:sEe}=Nd(),{re:rY,t:iY}=Sc(),nY=Oi(),oEe=Ld(),aEe=(r,e)=>{if(e=oEe(e),r instanceof nY)return r;if(typeof r!="string"||r.length>sEe||!(e.loose?rY[iY.LOOSE]:rY[iY.FULL]).test(r))return null;try{return new nY(r,e)}catch{return null}};sY.exports=aEe});var aY=y((tet,oY)=>{var AEe=vc(),lEe=(r,e)=>{let t=AEe(r,e);return t?t.version:null};oY.exports=lEe});var lY=y((ret,AY)=>{var cEe=vc(),uEe=(r,e)=>{let t=cEe(r.trim().replace(/^[=v]+/,""),e);return t?t.version:null};AY.exports=uEe});var uY=y((iet,cY)=>{var gEe=Oi(),fEe=(r,e,t,i)=>{typeof t=="string"&&(i=t,t=void 0);try{return new gEe(r,t).inc(e,i).version}catch{return null}};cY.exports=fEe});var os=y((net,fY)=>{var gY=Oi(),hEe=(r,e,t)=>new gY(r,t).compare(new gY(e,t));fY.exports=hEe});var Cy=y((set,hY)=>{var pEe=os(),dEe=(r,e,t)=>pEe(r,e,t)===0;hY.exports=dEe});var CY=y((oet,dY)=>{var pY=vc(),CEe=Cy(),mEe=(r,e)=>{if(CEe(r,e))return null;{let t=pY(r),i=pY(e),n=t.prerelease.length||i.prerelease.length,s=n?"pre":"",o=n?"prerelease":"";for(let a in t)if((a==="major"||a==="minor"||a==="patch")&&t[a]!==i[a])return s+a;return o}};dY.exports=mEe});var EY=y((aet,mY)=>{var EEe=Oi(),IEe=(r,e)=>new EEe(r,e).major;mY.exports=IEe});var yY=y((Aet,IY)=>{var yEe=Oi(),wEe=(r,e)=>new yEe(r,e).minor;IY.exports=wEe});var BY=y((cet,wY)=>{var BEe=Oi(),bEe=(r,e)=>new BEe(r,e).patch;wY.exports=bEe});var QY=y((uet,bY)=>{var QEe=vc(),SEe=(r,e)=>{let t=QEe(r,e);return t&&t.prerelease.length?t.prerelease:null};bY.exports=SEe});var vY=y((get,SY)=>{var vEe=os(),xEe=(r,e,t)=>vEe(e,r,t);SY.exports=xEe});var PY=y((fet,xY)=>{var PEe=os(),DEe=(r,e)=>PEe(r,e,!0);xY.exports=DEe});var my=y((het,kY)=>{var DY=Oi(),kEe=(r,e,t)=>{let i=new DY(r,t),n=new DY(e,t);return i.compare(n)||i.compareBuild(n)};kY.exports=kEe});var FY=y((pet,RY)=>{var REe=my(),FEe=(r,e)=>r.sort((t,i)=>REe(t,i,e));RY.exports=FEe});var TY=y((det,NY)=>{var NEe=my(),TEe=(r,e)=>r.sort((t,i)=>NEe(i,t,e));NY.exports=TEe});var Md=y((Cet,LY)=>{var LEe=os(),OEe=(r,e,t)=>LEe(r,e,t)>0;LY.exports=OEe});var Ey=y((met,OY)=>{var MEe=os(),UEe=(r,e,t)=>MEe(r,e,t)<0;OY.exports=UEe});var ax=y((Eet,MY)=>{var KEe=os(),HEe=(r,e,t)=>KEe(r,e,t)!==0;MY.exports=HEe});var Iy=y((Iet,UY)=>{var GEe=os(),YEe=(r,e,t)=>GEe(r,e,t)>=0;UY.exports=YEe});var yy=y((yet,KY)=>{var jEe=os(),qEe=(r,e,t)=>jEe(r,e,t)<=0;KY.exports=qEe});var Ax=y((wet,HY)=>{var JEe=Cy(),WEe=ax(),zEe=Md(),VEe=Iy(),XEe=Ey(),_Ee=yy(),ZEe=(r,e,t,i)=>{switch(e){case"===":return typeof r=="object"&&(r=r.version),typeof t=="object"&&(t=t.version),r===t;case"!==":return typeof r=="object"&&(r=r.version),typeof t=="object"&&(t=t.version),r!==t;case"":case"=":case"==":return JEe(r,t,i);case"!=":return WEe(r,t,i);case">":return zEe(r,t,i);case">=":return VEe(r,t,i);case"<":return XEe(r,t,i);case"<=":return _Ee(r,t,i);default:throw new TypeError(`Invalid operator: ${e}`)}};HY.exports=ZEe});var YY=y((Bet,GY)=>{var $Ee=Oi(),eIe=vc(),{re:wy,t:By}=Sc(),tIe=(r,e)=>{if(r instanceof $Ee)return r;if(typeof r=="number"&&(r=String(r)),typeof r!="string")return null;e=e||{};let t=null;if(!e.rtl)t=r.match(wy[By.COERCE]);else{let i;for(;(i=wy[By.COERCERTL].exec(r))&&(!t||t.index+t[0].length!==r.length);)(!t||i.index+i[0].length!==t.index+t[0].length)&&(t=i),wy[By.COERCERTL].lastIndex=i.index+i[1].length+i[2].length;wy[By.COERCERTL].lastIndex=-1}return t===null?null:eIe(`${t[2]}.${t[3]||"0"}.${t[4]||"0"}`,e)};GY.exports=tIe});var qY=y((bet,jY)=>{"use strict";jY.exports=function(r){r.prototype[Symbol.iterator]=function*(){for(let e=this.head;e;e=e.next)yield e.value}}});var Ud=y((Qet,JY)=>{"use strict";JY.exports=Ht;Ht.Node=xc;Ht.create=Ht;function Ht(r){var e=this;if(e instanceof Ht||(e=new Ht),e.tail=null,e.head=null,e.length=0,r&&typeof r.forEach=="function")r.forEach(function(n){e.push(n)});else if(arguments.length>0)for(var t=0,i=arguments.length;t1)t=e;else if(this.head)i=this.head.next,t=this.head.value;else throw new TypeError("Reduce of empty list with no initial value");for(var n=0;i!==null;n++)t=r(t,i.value,n),i=i.next;return t};Ht.prototype.reduceReverse=function(r,e){var t,i=this.tail;if(arguments.length>1)t=e;else if(this.tail)i=this.tail.prev,t=this.tail.value;else throw new TypeError("Reduce of empty list with no initial value");for(var n=this.length-1;i!==null;n--)t=r(t,i.value,n),i=i.prev;return t};Ht.prototype.toArray=function(){for(var r=new Array(this.length),e=0,t=this.head;t!==null;e++)r[e]=t.value,t=t.next;return r};Ht.prototype.toArrayReverse=function(){for(var r=new Array(this.length),e=0,t=this.tail;t!==null;e++)r[e]=t.value,t=t.prev;return r};Ht.prototype.slice=function(r,e){e=e||this.length,e<0&&(e+=this.length),r=r||0,r<0&&(r+=this.length);var t=new Ht;if(ethis.length&&(e=this.length);for(var i=0,n=this.head;n!==null&&ithis.length&&(e=this.length);for(var i=this.length,n=this.tail;n!==null&&i>e;i--)n=n.prev;for(;n!==null&&i>r;i--,n=n.prev)t.push(n.value);return t};Ht.prototype.splice=function(r,e,...t){r>this.length&&(r=this.length-1),r<0&&(r=this.length+r);for(var i=0,n=this.head;n!==null&&i{"use strict";var sIe=Ud(),Pc=Symbol("max"),Pa=Symbol("length"),uf=Symbol("lengthCalculator"),Hd=Symbol("allowStale"),Dc=Symbol("maxAge"),xa=Symbol("dispose"),WY=Symbol("noDisposeOnSet"),Ii=Symbol("lruList"),zs=Symbol("cache"),VY=Symbol("updateAgeOnGet"),lx=()=>1,ux=class{constructor(e){if(typeof e=="number"&&(e={max:e}),e||(e={}),e.max&&(typeof e.max!="number"||e.max<0))throw new TypeError("max must be a non-negative number");let t=this[Pc]=e.max||1/0,i=e.length||lx;if(this[uf]=typeof i!="function"?lx:i,this[Hd]=e.stale||!1,e.maxAge&&typeof e.maxAge!="number")throw new TypeError("maxAge must be a number");this[Dc]=e.maxAge||0,this[xa]=e.dispose,this[WY]=e.noDisposeOnSet||!1,this[VY]=e.updateAgeOnGet||!1,this.reset()}set max(e){if(typeof e!="number"||e<0)throw new TypeError("max must be a non-negative number");this[Pc]=e||1/0,Kd(this)}get max(){return this[Pc]}set allowStale(e){this[Hd]=!!e}get allowStale(){return this[Hd]}set maxAge(e){if(typeof e!="number")throw new TypeError("maxAge must be a non-negative number");this[Dc]=e,Kd(this)}get maxAge(){return this[Dc]}set lengthCalculator(e){typeof e!="function"&&(e=lx),e!==this[uf]&&(this[uf]=e,this[Pa]=0,this[Ii].forEach(t=>{t.length=this[uf](t.value,t.key),this[Pa]+=t.length})),Kd(this)}get lengthCalculator(){return this[uf]}get length(){return this[Pa]}get itemCount(){return this[Ii].length}rforEach(e,t){t=t||this;for(let i=this[Ii].tail;i!==null;){let n=i.prev;zY(this,e,i,t),i=n}}forEach(e,t){t=t||this;for(let i=this[Ii].head;i!==null;){let n=i.next;zY(this,e,i,t),i=n}}keys(){return this[Ii].toArray().map(e=>e.key)}values(){return this[Ii].toArray().map(e=>e.value)}reset(){this[xa]&&this[Ii]&&this[Ii].length&&this[Ii].forEach(e=>this[xa](e.key,e.value)),this[zs]=new Map,this[Ii]=new sIe,this[Pa]=0}dump(){return this[Ii].map(e=>by(this,e)?!1:{k:e.key,v:e.value,e:e.now+(e.maxAge||0)}).toArray().filter(e=>e)}dumpLru(){return this[Ii]}set(e,t,i){if(i=i||this[Dc],i&&typeof i!="number")throw new TypeError("maxAge must be a number");let n=i?Date.now():0,s=this[uf](t,e);if(this[zs].has(e)){if(s>this[Pc])return gf(this,this[zs].get(e)),!1;let l=this[zs].get(e).value;return this[xa]&&(this[WY]||this[xa](e,l.value)),l.now=n,l.maxAge=i,l.value=t,this[Pa]+=s-l.length,l.length=s,this.get(e),Kd(this),!0}let o=new gx(e,t,s,n,i);return o.length>this[Pc]?(this[xa]&&this[xa](e,t),!1):(this[Pa]+=o.length,this[Ii].unshift(o),this[zs].set(e,this[Ii].head),Kd(this),!0)}has(e){if(!this[zs].has(e))return!1;let t=this[zs].get(e).value;return!by(this,t)}get(e){return cx(this,e,!0)}peek(e){return cx(this,e,!1)}pop(){let e=this[Ii].tail;return e?(gf(this,e),e.value):null}del(e){gf(this,this[zs].get(e))}load(e){this.reset();let t=Date.now();for(let i=e.length-1;i>=0;i--){let n=e[i],s=n.e||0;if(s===0)this.set(n.k,n.v);else{let o=s-t;o>0&&this.set(n.k,n.v,o)}}}prune(){this[zs].forEach((e,t)=>cx(this,t,!1))}},cx=(r,e,t)=>{let i=r[zs].get(e);if(i){let n=i.value;if(by(r,n)){if(gf(r,i),!r[Hd])return}else t&&(r[VY]&&(i.value.now=Date.now()),r[Ii].unshiftNode(i));return n.value}},by=(r,e)=>{if(!e||!e.maxAge&&!r[Dc])return!1;let t=Date.now()-e.now;return e.maxAge?t>e.maxAge:r[Dc]&&t>r[Dc]},Kd=r=>{if(r[Pa]>r[Pc])for(let e=r[Ii].tail;r[Pa]>r[Pc]&&e!==null;){let t=e.prev;gf(r,e),e=t}},gf=(r,e)=>{if(e){let t=e.value;r[xa]&&r[xa](t.key,t.value),r[Pa]-=t.length,r[zs].delete(t.key),r[Ii].removeNode(e)}},gx=class{constructor(e,t,i,n,s){this.key=e,this.value=t,this.length=i,this.now=n,this.maxAge=s||0}},zY=(r,e,t,i)=>{let n=t.value;by(r,n)&&(gf(r,t),r[Hd]||(n=void 0)),n&&e.call(i,n.value,n.key,r)};XY.exports=ux});var as=y((xet,tj)=>{var kc=class{constructor(e,t){if(t=aIe(t),e instanceof kc)return e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease?e:new kc(e.raw,t);if(e instanceof fx)return this.raw=e.value,this.set=[[e]],this.format(),this;if(this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease,this.raw=e,this.set=e.split(/\s*\|\|\s*/).map(i=>this.parseRange(i.trim())).filter(i=>i.length),!this.set.length)throw new TypeError(`Invalid SemVer Range: ${e}`);if(this.set.length>1){let i=this.set[0];if(this.set=this.set.filter(n=>!$Y(n[0])),this.set.length===0)this.set=[i];else if(this.set.length>1){for(let n of this.set)if(n.length===1&&gIe(n[0])){this.set=[n];break}}}this.format()}format(){return this.range=this.set.map(e=>e.join(" ").trim()).join("||").trim(),this.range}toString(){return this.range}parseRange(e){e=e.trim();let i=`parseRange:${Object.keys(this.options).join(",")}:${e}`,n=ZY.get(i);if(n)return n;let s=this.options.loose,o=s?Mi[Qi.HYPHENRANGELOOSE]:Mi[Qi.HYPHENRANGE];e=e.replace(o,wIe(this.options.includePrerelease)),jr("hyphen replace",e),e=e.replace(Mi[Qi.COMPARATORTRIM],lIe),jr("comparator trim",e,Mi[Qi.COMPARATORTRIM]),e=e.replace(Mi[Qi.TILDETRIM],cIe),e=e.replace(Mi[Qi.CARETTRIM],uIe),e=e.split(/\s+/).join(" ");let a=s?Mi[Qi.COMPARATORLOOSE]:Mi[Qi.COMPARATOR],l=e.split(" ").map(f=>fIe(f,this.options)).join(" ").split(/\s+/).map(f=>yIe(f,this.options)).filter(this.options.loose?f=>!!f.match(a):()=>!0).map(f=>new fx(f,this.options)),c=l.length,u=new Map;for(let f of l){if($Y(f))return[f];u.set(f.value,f)}u.size>1&&u.has("")&&u.delete("");let g=[...u.values()];return ZY.set(i,g),g}intersects(e,t){if(!(e instanceof kc))throw new TypeError("a Range is required");return this.set.some(i=>ej(i,t)&&e.set.some(n=>ej(n,t)&&i.every(s=>n.every(o=>s.intersects(o,t)))))}test(e){if(!e)return!1;if(typeof e=="string")try{e=new AIe(e,this.options)}catch{return!1}for(let t=0;tr.value==="<0.0.0-0",gIe=r=>r.value==="",ej=(r,e)=>{let t=!0,i=r.slice(),n=i.pop();for(;t&&i.length;)t=i.every(s=>n.intersects(s,e)),n=i.pop();return t},fIe=(r,e)=>(jr("comp",r,e),r=dIe(r,e),jr("caret",r),r=hIe(r,e),jr("tildes",r),r=mIe(r,e),jr("xrange",r),r=IIe(r,e),jr("stars",r),r),Xi=r=>!r||r.toLowerCase()==="x"||r==="*",hIe=(r,e)=>r.trim().split(/\s+/).map(t=>pIe(t,e)).join(" "),pIe=(r,e)=>{let t=e.loose?Mi[Qi.TILDELOOSE]:Mi[Qi.TILDE];return r.replace(t,(i,n,s,o,a)=>{jr("tilde",r,i,n,s,o,a);let l;return Xi(n)?l="":Xi(s)?l=`>=${n}.0.0 <${+n+1}.0.0-0`:Xi(o)?l=`>=${n}.${s}.0 <${n}.${+s+1}.0-0`:a?(jr("replaceTilde pr",a),l=`>=${n}.${s}.${o}-${a} <${n}.${+s+1}.0-0`):l=`>=${n}.${s}.${o} <${n}.${+s+1}.0-0`,jr("tilde return",l),l})},dIe=(r,e)=>r.trim().split(/\s+/).map(t=>CIe(t,e)).join(" "),CIe=(r,e)=>{jr("caret",r,e);let t=e.loose?Mi[Qi.CARETLOOSE]:Mi[Qi.CARET],i=e.includePrerelease?"-0":"";return r.replace(t,(n,s,o,a,l)=>{jr("caret",r,n,s,o,a,l);let c;return Xi(s)?c="":Xi(o)?c=`>=${s}.0.0${i} <${+s+1}.0.0-0`:Xi(a)?s==="0"?c=`>=${s}.${o}.0${i} <${s}.${+o+1}.0-0`:c=`>=${s}.${o}.0${i} <${+s+1}.0.0-0`:l?(jr("replaceCaret pr",l),s==="0"?o==="0"?c=`>=${s}.${o}.${a}-${l} <${s}.${o}.${+a+1}-0`:c=`>=${s}.${o}.${a}-${l} <${s}.${+o+1}.0-0`:c=`>=${s}.${o}.${a}-${l} <${+s+1}.0.0-0`):(jr("no pr"),s==="0"?o==="0"?c=`>=${s}.${o}.${a}${i} <${s}.${o}.${+a+1}-0`:c=`>=${s}.${o}.${a}${i} <${s}.${+o+1}.0-0`:c=`>=${s}.${o}.${a} <${+s+1}.0.0-0`),jr("caret return",c),c})},mIe=(r,e)=>(jr("replaceXRanges",r,e),r.split(/\s+/).map(t=>EIe(t,e)).join(" ")),EIe=(r,e)=>{r=r.trim();let t=e.loose?Mi[Qi.XRANGELOOSE]:Mi[Qi.XRANGE];return r.replace(t,(i,n,s,o,a,l)=>{jr("xRange",r,i,n,s,o,a,l);let c=Xi(s),u=c||Xi(o),g=u||Xi(a),f=g;return n==="="&&f&&(n=""),l=e.includePrerelease?"-0":"",c?n===">"||n==="<"?i="<0.0.0-0":i="*":n&&f?(u&&(o=0),a=0,n===">"?(n=">=",u?(s=+s+1,o=0,a=0):(o=+o+1,a=0)):n==="<="&&(n="<",u?s=+s+1:o=+o+1),n==="<"&&(l="-0"),i=`${n+s}.${o}.${a}${l}`):u?i=`>=${s}.0.0${l} <${+s+1}.0.0-0`:g&&(i=`>=${s}.${o}.0${l} <${s}.${+o+1}.0-0`),jr("xRange return",i),i})},IIe=(r,e)=>(jr("replaceStars",r,e),r.trim().replace(Mi[Qi.STAR],"")),yIe=(r,e)=>(jr("replaceGTE0",r,e),r.trim().replace(Mi[e.includePrerelease?Qi.GTE0PRE:Qi.GTE0],"")),wIe=r=>(e,t,i,n,s,o,a,l,c,u,g,f,h)=>(Xi(i)?t="":Xi(n)?t=`>=${i}.0.0${r?"-0":""}`:Xi(s)?t=`>=${i}.${n}.0${r?"-0":""}`:o?t=`>=${t}`:t=`>=${t}${r?"-0":""}`,Xi(c)?l="":Xi(u)?l=`<${+c+1}.0.0-0`:Xi(g)?l=`<${c}.${+u+1}.0-0`:f?l=`<=${c}.${u}.${g}-${f}`:r?l=`<${c}.${u}.${+g+1}-0`:l=`<=${l}`,`${t} ${l}`.trim()),BIe=(r,e,t)=>{for(let i=0;i0){let n=r[i].semver;if(n.major===e.major&&n.minor===e.minor&&n.patch===e.patch)return!0}return!1}return!0}});var Gd=y((Pet,oj)=>{var Yd=Symbol("SemVer ANY"),ff=class{static get ANY(){return Yd}constructor(e,t){if(t=bIe(t),e instanceof ff){if(e.loose===!!t.loose)return e;e=e.value}px("comparator",e,t),this.options=t,this.loose=!!t.loose,this.parse(e),this.semver===Yd?this.value="":this.value=this.operator+this.semver.version,px("comp",this)}parse(e){let t=this.options.loose?rj[ij.COMPARATORLOOSE]:rj[ij.COMPARATOR],i=e.match(t);if(!i)throw new TypeError(`Invalid comparator: ${e}`);this.operator=i[1]!==void 0?i[1]:"",this.operator==="="&&(this.operator=""),i[2]?this.semver=new nj(i[2],this.options.loose):this.semver=Yd}toString(){return this.value}test(e){if(px("Comparator.test",e,this.options.loose),this.semver===Yd||e===Yd)return!0;if(typeof e=="string")try{e=new nj(e,this.options)}catch{return!1}return hx(e,this.operator,this.semver,this.options)}intersects(e,t){if(!(e instanceof ff))throw new TypeError("a Comparator is required");if((!t||typeof t!="object")&&(t={loose:!!t,includePrerelease:!1}),this.operator==="")return this.value===""?!0:new sj(e.value,t).test(this.value);if(e.operator==="")return e.value===""?!0:new sj(this.value,t).test(e.semver);let i=(this.operator===">="||this.operator===">")&&(e.operator===">="||e.operator===">"),n=(this.operator==="<="||this.operator==="<")&&(e.operator==="<="||e.operator==="<"),s=this.semver.version===e.semver.version,o=(this.operator===">="||this.operator==="<=")&&(e.operator===">="||e.operator==="<="),a=hx(this.semver,"<",e.semver,t)&&(this.operator===">="||this.operator===">")&&(e.operator==="<="||e.operator==="<"),l=hx(this.semver,">",e.semver,t)&&(this.operator==="<="||this.operator==="<")&&(e.operator===">="||e.operator===">");return i||n||s&&o||a||l}};oj.exports=ff;var bIe=Ld(),{re:rj,t:ij}=Sc(),hx=Ax(),px=Td(),nj=Oi(),sj=as()});var jd=y((Det,aj)=>{var QIe=as(),SIe=(r,e,t)=>{try{e=new QIe(e,t)}catch{return!1}return e.test(r)};aj.exports=SIe});var lj=y((ket,Aj)=>{var vIe=as(),xIe=(r,e)=>new vIe(r,e).set.map(t=>t.map(i=>i.value).join(" ").trim().split(" "));Aj.exports=xIe});var uj=y((Ret,cj)=>{var PIe=Oi(),DIe=as(),kIe=(r,e,t)=>{let i=null,n=null,s=null;try{s=new DIe(e,t)}catch{return null}return r.forEach(o=>{s.test(o)&&(!i||n.compare(o)===-1)&&(i=o,n=new PIe(i,t))}),i};cj.exports=kIe});var fj=y((Fet,gj)=>{var RIe=Oi(),FIe=as(),NIe=(r,e,t)=>{let i=null,n=null,s=null;try{s=new FIe(e,t)}catch{return null}return r.forEach(o=>{s.test(o)&&(!i||n.compare(o)===1)&&(i=o,n=new RIe(i,t))}),i};gj.exports=NIe});var dj=y((Net,pj)=>{var dx=Oi(),TIe=as(),hj=Md(),LIe=(r,e)=>{r=new TIe(r,e);let t=new dx("0.0.0");if(r.test(t)||(t=new dx("0.0.0-0"),r.test(t)))return t;t=null;for(let i=0;i{let a=new dx(o.semver.version);switch(o.operator){case">":a.prerelease.length===0?a.patch++:a.prerelease.push(0),a.raw=a.format();case"":case">=":(!s||hj(a,s))&&(s=a);break;case"<":case"<=":break;default:throw new Error(`Unexpected operation: ${o.operator}`)}}),s&&(!t||hj(t,s))&&(t=s)}return t&&r.test(t)?t:null};pj.exports=LIe});var mj=y((Tet,Cj)=>{var OIe=as(),MIe=(r,e)=>{try{return new OIe(r,e).range||"*"}catch{return null}};Cj.exports=MIe});var Qy=y((Let,wj)=>{var UIe=Oi(),yj=Gd(),{ANY:KIe}=yj,HIe=as(),GIe=jd(),Ej=Md(),Ij=Ey(),YIe=yy(),jIe=Iy(),qIe=(r,e,t,i)=>{r=new UIe(r,i),e=new HIe(e,i);let n,s,o,a,l;switch(t){case">":n=Ej,s=YIe,o=Ij,a=">",l=">=";break;case"<":n=Ij,s=jIe,o=Ej,a="<",l="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(GIe(r,e,i))return!1;for(let c=0;c{h.semver===KIe&&(h=new yj(">=0.0.0")),g=g||h,f=f||h,n(h.semver,g.semver,i)?g=h:o(h.semver,f.semver,i)&&(f=h)}),g.operator===a||g.operator===l||(!f.operator||f.operator===a)&&s(r,f.semver))return!1;if(f.operator===l&&o(r,f.semver))return!1}return!0};wj.exports=qIe});var bj=y((Oet,Bj)=>{var JIe=Qy(),WIe=(r,e,t)=>JIe(r,e,">",t);Bj.exports=WIe});var Sj=y((Met,Qj)=>{var zIe=Qy(),VIe=(r,e,t)=>zIe(r,e,"<",t);Qj.exports=VIe});var Pj=y((Uet,xj)=>{var vj=as(),XIe=(r,e,t)=>(r=new vj(r,t),e=new vj(e,t),r.intersects(e));xj.exports=XIe});var kj=y((Ket,Dj)=>{var _Ie=jd(),ZIe=os();Dj.exports=(r,e,t)=>{let i=[],n=null,s=null,o=r.sort((u,g)=>ZIe(u,g,t));for(let u of o)_Ie(u,e,t)?(s=u,n||(n=u)):(s&&i.push([n,s]),s=null,n=null);n&&i.push([n,null]);let a=[];for(let[u,g]of i)u===g?a.push(u):!g&&u===o[0]?a.push("*"):g?u===o[0]?a.push(`<=${g}`):a.push(`${u} - ${g}`):a.push(`>=${u}`);let l=a.join(" || "),c=typeof e.raw=="string"?e.raw:String(e);return l.length{var Rj=as(),Sy=Gd(),{ANY:Cx}=Sy,qd=jd(),mx=os(),$Ie=(r,e,t={})=>{if(r===e)return!0;r=new Rj(r,t),e=new Rj(e,t);let i=!1;e:for(let n of r.set){for(let s of e.set){let o=eye(n,s,t);if(i=i||o!==null,o)continue e}if(i)return!1}return!0},eye=(r,e,t)=>{if(r===e)return!0;if(r.length===1&&r[0].semver===Cx){if(e.length===1&&e[0].semver===Cx)return!0;t.includePrerelease?r=[new Sy(">=0.0.0-0")]:r=[new Sy(">=0.0.0")]}if(e.length===1&&e[0].semver===Cx){if(t.includePrerelease)return!0;e=[new Sy(">=0.0.0")]}let i=new Set,n,s;for(let h of r)h.operator===">"||h.operator===">="?n=Fj(n,h,t):h.operator==="<"||h.operator==="<="?s=Nj(s,h,t):i.add(h.semver);if(i.size>1)return null;let o;if(n&&s){if(o=mx(n.semver,s.semver,t),o>0)return null;if(o===0&&(n.operator!==">="||s.operator!=="<="))return null}for(let h of i){if(n&&!qd(h,String(n),t)||s&&!qd(h,String(s),t))return null;for(let p of e)if(!qd(h,String(p),t))return!1;return!0}let a,l,c,u,g=s&&!t.includePrerelease&&s.semver.prerelease.length?s.semver:!1,f=n&&!t.includePrerelease&&n.semver.prerelease.length?n.semver:!1;g&&g.prerelease.length===1&&s.operator==="<"&&g.prerelease[0]===0&&(g=!1);for(let h of e){if(u=u||h.operator===">"||h.operator===">=",c=c||h.operator==="<"||h.operator==="<=",n){if(f&&h.semver.prerelease&&h.semver.prerelease.length&&h.semver.major===f.major&&h.semver.minor===f.minor&&h.semver.patch===f.patch&&(f=!1),h.operator===">"||h.operator===">="){if(a=Fj(n,h,t),a===h&&a!==n)return!1}else if(n.operator===">="&&!qd(n.semver,String(h),t))return!1}if(s){if(g&&h.semver.prerelease&&h.semver.prerelease.length&&h.semver.major===g.major&&h.semver.minor===g.minor&&h.semver.patch===g.patch&&(g=!1),h.operator==="<"||h.operator==="<="){if(l=Nj(s,h,t),l===h&&l!==s)return!1}else if(s.operator==="<="&&!qd(s.semver,String(h),t))return!1}if(!h.operator&&(s||n)&&o!==0)return!1}return!(n&&c&&!s&&o!==0||s&&u&&!n&&o!==0||f||g)},Fj=(r,e,t)=>{if(!r)return e;let i=mx(r.semver,e.semver,t);return i>0?r:i<0||e.operator===">"&&r.operator===">="?e:r},Nj=(r,e,t)=>{if(!r)return e;let i=mx(r.semver,e.semver,t);return i<0?r:i>0||e.operator==="<"&&r.operator==="<="?e:r};Tj.exports=$Ie});var $r=y((Get,Oj)=>{var Ex=Sc();Oj.exports={re:Ex.re,src:Ex.src,tokens:Ex.t,SEMVER_SPEC_VERSION:Nd().SEMVER_SPEC_VERSION,SemVer:Oi(),compareIdentifiers:hy().compareIdentifiers,rcompareIdentifiers:hy().rcompareIdentifiers,parse:vc(),valid:aY(),clean:lY(),inc:uY(),diff:CY(),major:EY(),minor:yY(),patch:BY(),prerelease:QY(),compare:os(),rcompare:vY(),compareLoose:PY(),compareBuild:my(),sort:FY(),rsort:TY(),gt:Md(),lt:Ey(),eq:Cy(),neq:ax(),gte:Iy(),lte:yy(),cmp:Ax(),coerce:YY(),Comparator:Gd(),Range:as(),satisfies:jd(),toComparators:lj(),maxSatisfying:uj(),minSatisfying:fj(),minVersion:dj(),validRange:mj(),outside:Qy(),gtr:bj(),ltr:Sj(),intersects:Pj(),simplifyRange:kj(),subset:Lj()}});var Ix=y(vy=>{"use strict";Object.defineProperty(vy,"__esModule",{value:!0});vy.VERSION=void 0;vy.VERSION="9.1.0"});var Gt=y((exports,module)=>{"use strict";var __spreadArray=exports&&exports.__spreadArray||function(r,e,t){if(t||arguments.length===2)for(var i=0,n=e.length,s;i{(function(r,e){typeof define=="function"&&define.amd?define([],e):typeof xy=="object"&&xy.exports?xy.exports=e():r.regexpToAst=e()})(typeof self<"u"?self:Mj,function(){function r(){}r.prototype.saveState=function(){return{idx:this.idx,input:this.input,groupIdx:this.groupIdx}},r.prototype.restoreState=function(p){this.idx=p.idx,this.input=p.input,this.groupIdx=p.groupIdx},r.prototype.pattern=function(p){this.idx=0,this.input=p,this.groupIdx=0,this.consumeChar("/");var C=this.disjunction();this.consumeChar("/");for(var w={type:"Flags",loc:{begin:this.idx,end:p.length},global:!1,ignoreCase:!1,multiLine:!1,unicode:!1,sticky:!1};this.isRegExpFlag();)switch(this.popChar()){case"g":o(w,"global");break;case"i":o(w,"ignoreCase");break;case"m":o(w,"multiLine");break;case"u":o(w,"unicode");break;case"y":o(w,"sticky");break}if(this.idx!==this.input.length)throw Error("Redundant input: "+this.input.substring(this.idx));return{type:"Pattern",flags:w,value:C,loc:this.loc(0)}},r.prototype.disjunction=function(){var p=[],C=this.idx;for(p.push(this.alternative());this.peekChar()==="|";)this.consumeChar("|"),p.push(this.alternative());return{type:"Disjunction",value:p,loc:this.loc(C)}},r.prototype.alternative=function(){for(var p=[],C=this.idx;this.isTerm();)p.push(this.term());return{type:"Alternative",value:p,loc:this.loc(C)}},r.prototype.term=function(){return this.isAssertion()?this.assertion():this.atom()},r.prototype.assertion=function(){var p=this.idx;switch(this.popChar()){case"^":return{type:"StartAnchor",loc:this.loc(p)};case"$":return{type:"EndAnchor",loc:this.loc(p)};case"\\":switch(this.popChar()){case"b":return{type:"WordBoundary",loc:this.loc(p)};case"B":return{type:"NonWordBoundary",loc:this.loc(p)}}throw Error("Invalid Assertion Escape");case"(":this.consumeChar("?");var C;switch(this.popChar()){case"=":C="Lookahead";break;case"!":C="NegativeLookahead";break}a(C);var w=this.disjunction();return this.consumeChar(")"),{type:C,value:w,loc:this.loc(p)}}l()},r.prototype.quantifier=function(p){var C,w=this.idx;switch(this.popChar()){case"*":C={atLeast:0,atMost:1/0};break;case"+":C={atLeast:1,atMost:1/0};break;case"?":C={atLeast:0,atMost:1};break;case"{":var B=this.integerIncludingZero();switch(this.popChar()){case"}":C={atLeast:B,atMost:B};break;case",":var v;this.isDigit()?(v=this.integerIncludingZero(),C={atLeast:B,atMost:v}):C={atLeast:B,atMost:1/0},this.consumeChar("}");break}if(p===!0&&C===void 0)return;a(C);break}if(!(p===!0&&C===void 0))return a(C),this.peekChar(0)==="?"?(this.consumeChar("?"),C.greedy=!1):C.greedy=!0,C.type="Quantifier",C.loc=this.loc(w),C},r.prototype.atom=function(){var p,C=this.idx;switch(this.peekChar()){case".":p=this.dotAll();break;case"\\":p=this.atomEscape();break;case"[":p=this.characterClass();break;case"(":p=this.group();break}return p===void 0&&this.isPatternCharacter()&&(p=this.patternCharacter()),a(p),p.loc=this.loc(C),this.isQuantifier()&&(p.quantifier=this.quantifier()),p},r.prototype.dotAll=function(){return this.consumeChar("."),{type:"Set",complement:!0,value:[n(` -`),n("\r"),n("\u2028"),n("\u2029")]}},r.prototype.atomEscape=function(){switch(this.consumeChar("\\"),this.peekChar()){case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":return this.decimalEscapeAtom();case"d":case"D":case"s":case"S":case"w":case"W":return this.characterClassEscape();case"f":case"n":case"r":case"t":case"v":return this.controlEscapeAtom();case"c":return this.controlLetterEscapeAtom();case"0":return this.nulCharacterAtom();case"x":return this.hexEscapeSequenceAtom();case"u":return this.regExpUnicodeEscapeSequenceAtom();default:return this.identityEscapeAtom()}},r.prototype.decimalEscapeAtom=function(){var p=this.positiveInteger();return{type:"GroupBackReference",value:p}},r.prototype.characterClassEscape=function(){var p,C=!1;switch(this.popChar()){case"d":p=u;break;case"D":p=u,C=!0;break;case"s":p=f;break;case"S":p=f,C=!0;break;case"w":p=g;break;case"W":p=g,C=!0;break}return a(p),{type:"Set",value:p,complement:C}},r.prototype.controlEscapeAtom=function(){var p;switch(this.popChar()){case"f":p=n("\f");break;case"n":p=n(` -`);break;case"r":p=n("\r");break;case"t":p=n(" ");break;case"v":p=n("\v");break}return a(p),{type:"Character",value:p}},r.prototype.controlLetterEscapeAtom=function(){this.consumeChar("c");var p=this.popChar();if(/[a-zA-Z]/.test(p)===!1)throw Error("Invalid ");var C=p.toUpperCase().charCodeAt(0)-64;return{type:"Character",value:C}},r.prototype.nulCharacterAtom=function(){return this.consumeChar("0"),{type:"Character",value:n("\0")}},r.prototype.hexEscapeSequenceAtom=function(){return this.consumeChar("x"),this.parseHexDigits(2)},r.prototype.regExpUnicodeEscapeSequenceAtom=function(){return this.consumeChar("u"),this.parseHexDigits(4)},r.prototype.identityEscapeAtom=function(){var p=this.popChar();return{type:"Character",value:n(p)}},r.prototype.classPatternCharacterAtom=function(){switch(this.peekChar()){case` -`:case"\r":case"\u2028":case"\u2029":case"\\":case"]":throw Error("TBD");default:var p=this.popChar();return{type:"Character",value:n(p)}}},r.prototype.characterClass=function(){var p=[],C=!1;for(this.consumeChar("["),this.peekChar(0)==="^"&&(this.consumeChar("^"),C=!0);this.isClassAtom();){var w=this.classAtom(),B=w.type==="Character";if(B&&this.isRangeDash()){this.consumeChar("-");var v=this.classAtom(),D=v.type==="Character";if(D){if(v.value=this.input.length)throw Error("Unexpected end of input");this.idx++},r.prototype.loc=function(p){return{begin:p,end:this.idx}};var e=/[0-9a-fA-F]/,t=/[0-9]/,i=/[1-9]/;function n(p){return p.charCodeAt(0)}function s(p,C){p.length!==void 0?p.forEach(function(w){C.push(w)}):C.push(p)}function o(p,C){if(p[C]===!0)throw"duplicate flag "+C;p[C]=!0}function a(p){if(p===void 0)throw Error("Internal Error - Should never get here!")}function l(){throw Error("Internal Error - Should never get here!")}var c,u=[];for(c=n("0");c<=n("9");c++)u.push(c);var g=[n("_")].concat(u);for(c=n("a");c<=n("z");c++)g.push(c);for(c=n("A");c<=n("Z");c++)g.push(c);var f=[n(" "),n("\f"),n(` -`),n("\r"),n(" "),n("\v"),n(" "),n("\xA0"),n("\u1680"),n("\u2000"),n("\u2001"),n("\u2002"),n("\u2003"),n("\u2004"),n("\u2005"),n("\u2006"),n("\u2007"),n("\u2008"),n("\u2009"),n("\u200A"),n("\u2028"),n("\u2029"),n("\u202F"),n("\u205F"),n("\u3000"),n("\uFEFF")];function h(){}return h.prototype.visitChildren=function(p){for(var C in p){var w=p[C];p.hasOwnProperty(C)&&(w.type!==void 0?this.visit(w):Array.isArray(w)&&w.forEach(function(B){this.visit(B)},this))}},h.prototype.visit=function(p){switch(p.type){case"Pattern":this.visitPattern(p);break;case"Flags":this.visitFlags(p);break;case"Disjunction":this.visitDisjunction(p);break;case"Alternative":this.visitAlternative(p);break;case"StartAnchor":this.visitStartAnchor(p);break;case"EndAnchor":this.visitEndAnchor(p);break;case"WordBoundary":this.visitWordBoundary(p);break;case"NonWordBoundary":this.visitNonWordBoundary(p);break;case"Lookahead":this.visitLookahead(p);break;case"NegativeLookahead":this.visitNegativeLookahead(p);break;case"Character":this.visitCharacter(p);break;case"Set":this.visitSet(p);break;case"Group":this.visitGroup(p);break;case"GroupBackReference":this.visitGroupBackReference(p);break;case"Quantifier":this.visitQuantifier(p);break}this.visitChildren(p)},h.prototype.visitPattern=function(p){},h.prototype.visitFlags=function(p){},h.prototype.visitDisjunction=function(p){},h.prototype.visitAlternative=function(p){},h.prototype.visitStartAnchor=function(p){},h.prototype.visitEndAnchor=function(p){},h.prototype.visitWordBoundary=function(p){},h.prototype.visitNonWordBoundary=function(p){},h.prototype.visitLookahead=function(p){},h.prototype.visitNegativeLookahead=function(p){},h.prototype.visitCharacter=function(p){},h.prototype.visitSet=function(p){},h.prototype.visitGroup=function(p){},h.prototype.visitGroupBackReference=function(p){},h.prototype.visitQuantifier=function(p){},{RegExpParser:r,BaseRegExpVisitor:h,VERSION:"0.5.0"}})});var ky=y(hf=>{"use strict";Object.defineProperty(hf,"__esModule",{value:!0});hf.clearRegExpParserCache=hf.getRegExpAst=void 0;var tye=Py(),Dy={},rye=new tye.RegExpParser;function iye(r){var e=r.toString();if(Dy.hasOwnProperty(e))return Dy[e];var t=rye.pattern(e);return Dy[e]=t,t}hf.getRegExpAst=iye;function nye(){Dy={}}hf.clearRegExpParserCache=nye});var Yj=y(dn=>{"use strict";var sye=dn&&dn.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(dn,"__esModule",{value:!0});dn.canMatchCharCode=dn.firstCharOptimizedIndices=dn.getOptimizedStartCodesIndices=dn.failedOptimizationPrefixMsg=void 0;var Kj=Py(),As=Gt(),Hj=ky(),Da=wx(),Gj="Complement Sets are not supported for first char optimization";dn.failedOptimizationPrefixMsg=`Unable to use "first char" lexer optimizations: -`;function oye(r,e){e===void 0&&(e=!1);try{var t=(0,Hj.getRegExpAst)(r),i=Fy(t.value,{},t.flags.ignoreCase);return i}catch(s){if(s.message===Gj)e&&(0,As.PRINT_WARNING)(""+dn.failedOptimizationPrefixMsg+(" Unable to optimize: < "+r.toString()+` > -`)+` Complement Sets cannot be automatically optimized. - This will disable the lexer's first char optimizations. - See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#COMPLEMENT for details.`);else{var n="";e&&(n=` - This will disable the lexer's first char optimizations. - See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#REGEXP_PARSING for details.`),(0,As.PRINT_ERROR)(dn.failedOptimizationPrefixMsg+` -`+(" Failed parsing: < "+r.toString()+` > -`)+(" Using the regexp-to-ast library version: "+Kj.VERSION+` -`)+" Please open an issue at: https://github.com/bd82/regexp-to-ast/issues"+n)}}return[]}dn.getOptimizedStartCodesIndices=oye;function Fy(r,e,t){switch(r.type){case"Disjunction":for(var i=0;i=Da.minOptimizationVal)for(var f=u.from>=Da.minOptimizationVal?u.from:Da.minOptimizationVal,h=u.to,p=(0,Da.charCodeToOptimizedIndex)(f),C=(0,Da.charCodeToOptimizedIndex)(h),w=p;w<=C;w++)e[w]=w}}});break;case"Group":Fy(o.value,e,t);break;default:throw Error("Non Exhaustive Match")}var a=o.quantifier!==void 0&&o.quantifier.atLeast===0;if(o.type==="Group"&&yx(o)===!1||o.type!=="Group"&&a===!1)break}break;default:throw Error("non exhaustive match!")}return(0,As.values)(e)}dn.firstCharOptimizedIndices=Fy;function Ry(r,e,t){var i=(0,Da.charCodeToOptimizedIndex)(r);e[i]=i,t===!0&&aye(r,e)}function aye(r,e){var t=String.fromCharCode(r),i=t.toUpperCase();if(i!==t){var n=(0,Da.charCodeToOptimizedIndex)(i.charCodeAt(0));e[n]=n}else{var s=t.toLowerCase();if(s!==t){var n=(0,Da.charCodeToOptimizedIndex)(s.charCodeAt(0));e[n]=n}}}function Uj(r,e){return(0,As.find)(r.value,function(t){if(typeof t=="number")return(0,As.contains)(e,t);var i=t;return(0,As.find)(e,function(n){return i.from<=n&&n<=i.to})!==void 0})}function yx(r){return r.quantifier&&r.quantifier.atLeast===0?!0:r.value?(0,As.isArray)(r.value)?(0,As.every)(r.value,yx):yx(r.value):!1}var Aye=function(r){sye(e,r);function e(t){var i=r.call(this)||this;return i.targetCharCodes=t,i.found=!1,i}return e.prototype.visitChildren=function(t){if(this.found!==!0){switch(t.type){case"Lookahead":this.visitLookahead(t);return;case"NegativeLookahead":this.visitNegativeLookahead(t);return}r.prototype.visitChildren.call(this,t)}},e.prototype.visitCharacter=function(t){(0,As.contains)(this.targetCharCodes,t.value)&&(this.found=!0)},e.prototype.visitSet=function(t){t.complement?Uj(t,this.targetCharCodes)===void 0&&(this.found=!0):Uj(t,this.targetCharCodes)!==void 0&&(this.found=!0)},e}(Kj.BaseRegExpVisitor);function lye(r,e){if(e instanceof RegExp){var t=(0,Hj.getRegExpAst)(e),i=new Aye(r);return i.visit(t),i.found}else return(0,As.find)(e,function(n){return(0,As.contains)(r,n.charCodeAt(0))})!==void 0}dn.canMatchCharCode=lye});var wx=y(Je=>{"use strict";var jj=Je&&Je.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(Je,"__esModule",{value:!0});Je.charCodeToOptimizedIndex=Je.minOptimizationVal=Je.buildLineBreakIssueMessage=Je.LineTerminatorOptimizedTester=Je.isShortPattern=Je.isCustomPattern=Je.cloneEmptyGroups=Je.performWarningRuntimeChecks=Je.performRuntimeChecks=Je.addStickyFlag=Je.addStartOfInput=Je.findUnreachablePatterns=Je.findModesThatDoNotExist=Je.findInvalidGroupType=Je.findDuplicatePatterns=Je.findUnsupportedFlags=Je.findStartOfInputAnchor=Je.findEmptyMatchRegExps=Je.findEndOfInputAnchor=Je.findInvalidPatterns=Je.findMissingPatterns=Je.validatePatterns=Je.analyzeTokenTypes=Je.enableSticky=Je.disableSticky=Je.SUPPORT_STICKY=Je.MODES=Je.DEFAULT_MODE=void 0;var qj=Py(),ir=Jd(),Se=Gt(),pf=Yj(),Jj=ky(),Do="PATTERN";Je.DEFAULT_MODE="defaultMode";Je.MODES="modes";Je.SUPPORT_STICKY=typeof new RegExp("(?:)").sticky=="boolean";function cye(){Je.SUPPORT_STICKY=!1}Je.disableSticky=cye;function uye(){Je.SUPPORT_STICKY=!0}Je.enableSticky=uye;function gye(r,e){e=(0,Se.defaults)(e,{useSticky:Je.SUPPORT_STICKY,debug:!1,safeMode:!1,positionTracking:"full",lineTerminatorCharacters:["\r",` -`],tracer:function(v,D){return D()}});var t=e.tracer;t("initCharCodeToOptimizedIndexMap",function(){wye()});var i;t("Reject Lexer.NA",function(){i=(0,Se.reject)(r,function(v){return v[Do]===ir.Lexer.NA})});var n=!1,s;t("Transform Patterns",function(){n=!1,s=(0,Se.map)(i,function(v){var D=v[Do];if((0,Se.isRegExp)(D)){var T=D.source;return T.length===1&&T!=="^"&&T!=="$"&&T!=="."&&!D.ignoreCase?T:T.length===2&&T[0]==="\\"&&!(0,Se.contains)(["d","D","s","S","t","r","n","t","0","c","b","B","f","v","w","W"],T[1])?T[1]:e.useSticky?Qx(D):bx(D)}else{if((0,Se.isFunction)(D))return n=!0,{exec:D};if((0,Se.has)(D,"exec"))return n=!0,D;if(typeof D=="string"){if(D.length===1)return D;var H=D.replace(/[\\^$.*+?()[\]{}|]/g,"\\$&"),j=new RegExp(H);return e.useSticky?Qx(j):bx(j)}else throw Error("non exhaustive match")}})});var o,a,l,c,u;t("misc mapping",function(){o=(0,Se.map)(i,function(v){return v.tokenTypeIdx}),a=(0,Se.map)(i,function(v){var D=v.GROUP;if(D!==ir.Lexer.SKIPPED){if((0,Se.isString)(D))return D;if((0,Se.isUndefined)(D))return!1;throw Error("non exhaustive match")}}),l=(0,Se.map)(i,function(v){var D=v.LONGER_ALT;if(D){var T=(0,Se.isArray)(D)?(0,Se.map)(D,function(H){return(0,Se.indexOf)(i,H)}):[(0,Se.indexOf)(i,D)];return T}}),c=(0,Se.map)(i,function(v){return v.PUSH_MODE}),u=(0,Se.map)(i,function(v){return(0,Se.has)(v,"POP_MODE")})});var g;t("Line Terminator Handling",function(){var v=oq(e.lineTerminatorCharacters);g=(0,Se.map)(i,function(D){return!1}),e.positionTracking!=="onlyOffset"&&(g=(0,Se.map)(i,function(D){if((0,Se.has)(D,"LINE_BREAKS"))return D.LINE_BREAKS;if(nq(D,v)===!1)return(0,pf.canMatchCharCode)(v,D.PATTERN)}))});var f,h,p,C;t("Misc Mapping #2",function(){f=(0,Se.map)(i,vx),h=(0,Se.map)(s,iq),p=(0,Se.reduce)(i,function(v,D){var T=D.GROUP;return(0,Se.isString)(T)&&T!==ir.Lexer.SKIPPED&&(v[T]=[]),v},{}),C=(0,Se.map)(s,function(v,D){return{pattern:s[D],longerAlt:l[D],canLineTerminator:g[D],isCustom:f[D],short:h[D],group:a[D],push:c[D],pop:u[D],tokenTypeIdx:o[D],tokenType:i[D]}})});var w=!0,B=[];return e.safeMode||t("First Char Optimization",function(){B=(0,Se.reduce)(i,function(v,D,T){if(typeof D.PATTERN=="string"){var H=D.PATTERN.charCodeAt(0),j=Sx(H);Bx(v,j,C[T])}else if((0,Se.isArray)(D.START_CHARS_HINT)){var $;(0,Se.forEach)(D.START_CHARS_HINT,function(W){var Z=typeof W=="string"?W.charCodeAt(0):W,A=Sx(Z);$!==A&&($=A,Bx(v,A,C[T]))})}else if((0,Se.isRegExp)(D.PATTERN))if(D.PATTERN.unicode)w=!1,e.ensureOptimizations&&(0,Se.PRINT_ERROR)(""+pf.failedOptimizationPrefixMsg+(" Unable to analyze < "+D.PATTERN.toString()+` > pattern. -`)+` The regexp unicode flag is not currently supported by the regexp-to-ast library. - This will disable the lexer's first char optimizations. - For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#UNICODE_OPTIMIZE`);else{var V=(0,pf.getOptimizedStartCodesIndices)(D.PATTERN,e.ensureOptimizations);(0,Se.isEmpty)(V)&&(w=!1),(0,Se.forEach)(V,function(W){Bx(v,W,C[T])})}else e.ensureOptimizations&&(0,Se.PRINT_ERROR)(""+pf.failedOptimizationPrefixMsg+(" TokenType: <"+D.name+`> is using a custom token pattern without providing parameter. -`)+` This will disable the lexer's first char optimizations. - For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_OPTIMIZE`),w=!1;return v},[])}),t("ArrayPacking",function(){B=(0,Se.packArray)(B)}),{emptyGroups:p,patternIdxToConfig:C,charCodeToPatternIdxToConfig:B,hasCustom:n,canBeOptimized:w}}Je.analyzeTokenTypes=gye;function fye(r,e){var t=[],i=Wj(r);t=t.concat(i.errors);var n=zj(i.valid),s=n.valid;return t=t.concat(n.errors),t=t.concat(hye(s)),t=t.concat(eq(s)),t=t.concat(tq(s,e)),t=t.concat(rq(s)),t}Je.validatePatterns=fye;function hye(r){var e=[],t=(0,Se.filter)(r,function(i){return(0,Se.isRegExp)(i[Do])});return e=e.concat(Vj(t)),e=e.concat(_j(t)),e=e.concat(Zj(t)),e=e.concat($j(t)),e=e.concat(Xj(t)),e}function Wj(r){var e=(0,Se.filter)(r,function(n){return!(0,Se.has)(n,Do)}),t=(0,Se.map)(e,function(n){return{message:"Token Type: ->"+n.name+"<- missing static 'PATTERN' property",type:ir.LexerDefinitionErrorType.MISSING_PATTERN,tokenTypes:[n]}}),i=(0,Se.difference)(r,e);return{errors:t,valid:i}}Je.findMissingPatterns=Wj;function zj(r){var e=(0,Se.filter)(r,function(n){var s=n[Do];return!(0,Se.isRegExp)(s)&&!(0,Se.isFunction)(s)&&!(0,Se.has)(s,"exec")&&!(0,Se.isString)(s)}),t=(0,Se.map)(e,function(n){return{message:"Token Type: ->"+n.name+"<- static 'PATTERN' can only be a RegExp, a Function matching the {CustomPatternMatcherFunc} type or an Object matching the {ICustomPattern} interface.",type:ir.LexerDefinitionErrorType.INVALID_PATTERN,tokenTypes:[n]}}),i=(0,Se.difference)(r,e);return{errors:t,valid:i}}Je.findInvalidPatterns=zj;var pye=/[^\\][\$]/;function Vj(r){var e=function(n){jj(s,n);function s(){var o=n!==null&&n.apply(this,arguments)||this;return o.found=!1,o}return s.prototype.visitEndAnchor=function(o){this.found=!0},s}(qj.BaseRegExpVisitor),t=(0,Se.filter)(r,function(n){var s=n[Do];try{var o=(0,Jj.getRegExpAst)(s),a=new e;return a.visit(o),a.found}catch{return pye.test(s.source)}}),i=(0,Se.map)(t,function(n){return{message:`Unexpected RegExp Anchor Error: - Token Type: ->`+n.name+`<- static 'PATTERN' cannot contain end of input anchor '$' - See chevrotain.io/docs/guide/resolving_lexer_errors.html#ANCHORS for details.`,type:ir.LexerDefinitionErrorType.EOI_ANCHOR_FOUND,tokenTypes:[n]}});return i}Je.findEndOfInputAnchor=Vj;function Xj(r){var e=(0,Se.filter)(r,function(i){var n=i[Do];return n.test("")}),t=(0,Se.map)(e,function(i){return{message:"Token Type: ->"+i.name+"<- static 'PATTERN' must not match an empty string",type:ir.LexerDefinitionErrorType.EMPTY_MATCH_PATTERN,tokenTypes:[i]}});return t}Je.findEmptyMatchRegExps=Xj;var dye=/[^\\[][\^]|^\^/;function _j(r){var e=function(n){jj(s,n);function s(){var o=n!==null&&n.apply(this,arguments)||this;return o.found=!1,o}return s.prototype.visitStartAnchor=function(o){this.found=!0},s}(qj.BaseRegExpVisitor),t=(0,Se.filter)(r,function(n){var s=n[Do];try{var o=(0,Jj.getRegExpAst)(s),a=new e;return a.visit(o),a.found}catch{return dye.test(s.source)}}),i=(0,Se.map)(t,function(n){return{message:`Unexpected RegExp Anchor Error: - Token Type: ->`+n.name+`<- static 'PATTERN' cannot contain start of input anchor '^' - See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#ANCHORS for details.`,type:ir.LexerDefinitionErrorType.SOI_ANCHOR_FOUND,tokenTypes:[n]}});return i}Je.findStartOfInputAnchor=_j;function Zj(r){var e=(0,Se.filter)(r,function(i){var n=i[Do];return n instanceof RegExp&&(n.multiline||n.global)}),t=(0,Se.map)(e,function(i){return{message:"Token Type: ->"+i.name+"<- static 'PATTERN' may NOT contain global('g') or multiline('m')",type:ir.LexerDefinitionErrorType.UNSUPPORTED_FLAGS_FOUND,tokenTypes:[i]}});return t}Je.findUnsupportedFlags=Zj;function $j(r){var e=[],t=(0,Se.map)(r,function(s){return(0,Se.reduce)(r,function(o,a){return s.PATTERN.source===a.PATTERN.source&&!(0,Se.contains)(e,a)&&a.PATTERN!==ir.Lexer.NA&&(e.push(a),o.push(a)),o},[])});t=(0,Se.compact)(t);var i=(0,Se.filter)(t,function(s){return s.length>1}),n=(0,Se.map)(i,function(s){var o=(0,Se.map)(s,function(l){return l.name}),a=(0,Se.first)(s).PATTERN;return{message:"The same RegExp pattern ->"+a+"<-"+("has been used in all of the following Token Types: "+o.join(", ")+" <-"),type:ir.LexerDefinitionErrorType.DUPLICATE_PATTERNS_FOUND,tokenTypes:s}});return n}Je.findDuplicatePatterns=$j;function eq(r){var e=(0,Se.filter)(r,function(i){if(!(0,Se.has)(i,"GROUP"))return!1;var n=i.GROUP;return n!==ir.Lexer.SKIPPED&&n!==ir.Lexer.NA&&!(0,Se.isString)(n)}),t=(0,Se.map)(e,function(i){return{message:"Token Type: ->"+i.name+"<- static 'GROUP' can only be Lexer.SKIPPED/Lexer.NA/A String",type:ir.LexerDefinitionErrorType.INVALID_GROUP_TYPE_FOUND,tokenTypes:[i]}});return t}Je.findInvalidGroupType=eq;function tq(r,e){var t=(0,Se.filter)(r,function(n){return n.PUSH_MODE!==void 0&&!(0,Se.contains)(e,n.PUSH_MODE)}),i=(0,Se.map)(t,function(n){var s="Token Type: ->"+n.name+"<- static 'PUSH_MODE' value cannot refer to a Lexer Mode ->"+n.PUSH_MODE+"<-which does not exist";return{message:s,type:ir.LexerDefinitionErrorType.PUSH_MODE_DOES_NOT_EXIST,tokenTypes:[n]}});return i}Je.findModesThatDoNotExist=tq;function rq(r){var e=[],t=(0,Se.reduce)(r,function(i,n,s){var o=n.PATTERN;return o===ir.Lexer.NA||((0,Se.isString)(o)?i.push({str:o,idx:s,tokenType:n}):(0,Se.isRegExp)(o)&&mye(o)&&i.push({str:o.source,idx:s,tokenType:n})),i},[]);return(0,Se.forEach)(r,function(i,n){(0,Se.forEach)(t,function(s){var o=s.str,a=s.idx,l=s.tokenType;if(n"+i.name+"<-")+`in the lexer's definition. -See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#UNREACHABLE`;e.push({message:c,type:ir.LexerDefinitionErrorType.UNREACHABLE_PATTERN,tokenTypes:[i,l]})}})}),e}Je.findUnreachablePatterns=rq;function Cye(r,e){if((0,Se.isRegExp)(e)){var t=e.exec(r);return t!==null&&t.index===0}else{if((0,Se.isFunction)(e))return e(r,0,[],{});if((0,Se.has)(e,"exec"))return e.exec(r,0,[],{});if(typeof e=="string")return e===r;throw Error("non exhaustive match")}}function mye(r){var e=[".","\\","[","]","|","^","$","(",")","?","*","+","{"];return(0,Se.find)(e,function(t){return r.source.indexOf(t)!==-1})===void 0}function bx(r){var e=r.ignoreCase?"i":"";return new RegExp("^(?:"+r.source+")",e)}Je.addStartOfInput=bx;function Qx(r){var e=r.ignoreCase?"iy":"y";return new RegExp(""+r.source,e)}Je.addStickyFlag=Qx;function Eye(r,e,t){var i=[];return(0,Se.has)(r,Je.DEFAULT_MODE)||i.push({message:"A MultiMode Lexer cannot be initialized without a <"+Je.DEFAULT_MODE+`> property in its definition -`,type:ir.LexerDefinitionErrorType.MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE}),(0,Se.has)(r,Je.MODES)||i.push({message:"A MultiMode Lexer cannot be initialized without a <"+Je.MODES+`> property in its definition -`,type:ir.LexerDefinitionErrorType.MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY}),(0,Se.has)(r,Je.MODES)&&(0,Se.has)(r,Je.DEFAULT_MODE)&&!(0,Se.has)(r.modes,r.defaultMode)&&i.push({message:"A MultiMode Lexer cannot be initialized with a "+Je.DEFAULT_MODE+": <"+r.defaultMode+`>which does not exist -`,type:ir.LexerDefinitionErrorType.MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST}),(0,Se.has)(r,Je.MODES)&&(0,Se.forEach)(r.modes,function(n,s){(0,Se.forEach)(n,function(o,a){(0,Se.isUndefined)(o)&&i.push({message:"A Lexer cannot be initialized using an undefined Token Type. Mode:"+("<"+s+"> at index: <"+a+`> -`),type:ir.LexerDefinitionErrorType.LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED})})}),i}Je.performRuntimeChecks=Eye;function Iye(r,e,t){var i=[],n=!1,s=(0,Se.compact)((0,Se.flatten)((0,Se.mapValues)(r.modes,function(l){return l}))),o=(0,Se.reject)(s,function(l){return l[Do]===ir.Lexer.NA}),a=oq(t);return e&&(0,Se.forEach)(o,function(l){var c=nq(l,a);if(c!==!1){var u=sq(l,c),g={message:u,type:c.issue,tokenType:l};i.push(g)}else(0,Se.has)(l,"LINE_BREAKS")?l.LINE_BREAKS===!0&&(n=!0):(0,pf.canMatchCharCode)(a,l.PATTERN)&&(n=!0)}),e&&!n&&i.push({message:`Warning: No LINE_BREAKS Found. - This Lexer has been defined to track line and column information, - But none of the Token Types can be identified as matching a line terminator. - See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#LINE_BREAKS - for details.`,type:ir.LexerDefinitionErrorType.NO_LINE_BREAKS_FLAGS}),i}Je.performWarningRuntimeChecks=Iye;function yye(r){var e={},t=(0,Se.keys)(r);return(0,Se.forEach)(t,function(i){var n=r[i];if((0,Se.isArray)(n))e[i]=[];else throw Error("non exhaustive match")}),e}Je.cloneEmptyGroups=yye;function vx(r){var e=r.PATTERN;if((0,Se.isRegExp)(e))return!1;if((0,Se.isFunction)(e))return!0;if((0,Se.has)(e,"exec"))return!0;if((0,Se.isString)(e))return!1;throw Error("non exhaustive match")}Je.isCustomPattern=vx;function iq(r){return(0,Se.isString)(r)&&r.length===1?r.charCodeAt(0):!1}Je.isShortPattern=iq;Je.LineTerminatorOptimizedTester={test:function(r){for(var e=r.length,t=this.lastIndex;t Token Type -`)+(" Root cause: "+e.errMsg+`. -`)+" For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#IDENTIFY_TERMINATOR";if(e.issue===ir.LexerDefinitionErrorType.CUSTOM_LINE_BREAK)return`Warning: A Custom Token Pattern should specify the option. -`+(" The problem is in the <"+r.name+`> Token Type -`)+" For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_LINE_BREAK";throw Error("non exhaustive match")}Je.buildLineBreakIssueMessage=sq;function oq(r){var e=(0,Se.map)(r,function(t){return(0,Se.isString)(t)&&t.length>0?t.charCodeAt(0):t});return e}function Bx(r,e,t){r[e]===void 0?r[e]=[t]:r[e].push(t)}Je.minOptimizationVal=256;var Ny=[];function Sx(r){return r255?255+~~(r/255):r}}});var df=y(Nt=>{"use strict";Object.defineProperty(Nt,"__esModule",{value:!0});Nt.isTokenType=Nt.hasExtendingTokensTypesMapProperty=Nt.hasExtendingTokensTypesProperty=Nt.hasCategoriesProperty=Nt.hasShortKeyProperty=Nt.singleAssignCategoriesToksMap=Nt.assignCategoriesMapProp=Nt.assignCategoriesTokensProp=Nt.assignTokenDefaultProps=Nt.expandCategories=Nt.augmentTokenTypes=Nt.tokenIdxToClass=Nt.tokenShortNameIdx=Nt.tokenStructuredMatcherNoCategories=Nt.tokenStructuredMatcher=void 0;var ei=Gt();function Bye(r,e){var t=r.tokenTypeIdx;return t===e.tokenTypeIdx?!0:e.isParent===!0&&e.categoryMatchesMap[t]===!0}Nt.tokenStructuredMatcher=Bye;function bye(r,e){return r.tokenTypeIdx===e.tokenTypeIdx}Nt.tokenStructuredMatcherNoCategories=bye;Nt.tokenShortNameIdx=1;Nt.tokenIdxToClass={};function Qye(r){var e=aq(r);Aq(e),cq(e),lq(e),(0,ei.forEach)(e,function(t){t.isParent=t.categoryMatches.length>0})}Nt.augmentTokenTypes=Qye;function aq(r){for(var e=(0,ei.cloneArr)(r),t=r,i=!0;i;){t=(0,ei.compact)((0,ei.flatten)((0,ei.map)(t,function(s){return s.CATEGORIES})));var n=(0,ei.difference)(t,e);e=e.concat(n),(0,ei.isEmpty)(n)?i=!1:t=n}return e}Nt.expandCategories=aq;function Aq(r){(0,ei.forEach)(r,function(e){uq(e)||(Nt.tokenIdxToClass[Nt.tokenShortNameIdx]=e,e.tokenTypeIdx=Nt.tokenShortNameIdx++),xx(e)&&!(0,ei.isArray)(e.CATEGORIES)&&(e.CATEGORIES=[e.CATEGORIES]),xx(e)||(e.CATEGORIES=[]),gq(e)||(e.categoryMatches=[]),fq(e)||(e.categoryMatchesMap={})})}Nt.assignTokenDefaultProps=Aq;function lq(r){(0,ei.forEach)(r,function(e){e.categoryMatches=[],(0,ei.forEach)(e.categoryMatchesMap,function(t,i){e.categoryMatches.push(Nt.tokenIdxToClass[i].tokenTypeIdx)})})}Nt.assignCategoriesTokensProp=lq;function cq(r){(0,ei.forEach)(r,function(e){Px([],e)})}Nt.assignCategoriesMapProp=cq;function Px(r,e){(0,ei.forEach)(r,function(t){e.categoryMatchesMap[t.tokenTypeIdx]=!0}),(0,ei.forEach)(e.CATEGORIES,function(t){var i=r.concat(e);(0,ei.contains)(i,t)||Px(i,t)})}Nt.singleAssignCategoriesToksMap=Px;function uq(r){return(0,ei.has)(r,"tokenTypeIdx")}Nt.hasShortKeyProperty=uq;function xx(r){return(0,ei.has)(r,"CATEGORIES")}Nt.hasCategoriesProperty=xx;function gq(r){return(0,ei.has)(r,"categoryMatches")}Nt.hasExtendingTokensTypesProperty=gq;function fq(r){return(0,ei.has)(r,"categoryMatchesMap")}Nt.hasExtendingTokensTypesMapProperty=fq;function Sye(r){return(0,ei.has)(r,"tokenTypeIdx")}Nt.isTokenType=Sye});var Dx=y(Ty=>{"use strict";Object.defineProperty(Ty,"__esModule",{value:!0});Ty.defaultLexerErrorProvider=void 0;Ty.defaultLexerErrorProvider={buildUnableToPopLexerModeMessage:function(r){return"Unable to pop Lexer Mode after encountering Token ->"+r.image+"<- The Mode Stack is empty"},buildUnexpectedCharactersMessage:function(r,e,t,i,n){return"unexpected character: ->"+r.charAt(e)+"<- at offset: "+e+","+(" skipped "+t+" characters.")}}});var Jd=y(Rc=>{"use strict";Object.defineProperty(Rc,"__esModule",{value:!0});Rc.Lexer=Rc.LexerDefinitionErrorType=void 0;var Vs=wx(),nr=Gt(),vye=df(),xye=Dx(),Pye=ky(),Dye;(function(r){r[r.MISSING_PATTERN=0]="MISSING_PATTERN",r[r.INVALID_PATTERN=1]="INVALID_PATTERN",r[r.EOI_ANCHOR_FOUND=2]="EOI_ANCHOR_FOUND",r[r.UNSUPPORTED_FLAGS_FOUND=3]="UNSUPPORTED_FLAGS_FOUND",r[r.DUPLICATE_PATTERNS_FOUND=4]="DUPLICATE_PATTERNS_FOUND",r[r.INVALID_GROUP_TYPE_FOUND=5]="INVALID_GROUP_TYPE_FOUND",r[r.PUSH_MODE_DOES_NOT_EXIST=6]="PUSH_MODE_DOES_NOT_EXIST",r[r.MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE=7]="MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE",r[r.MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY=8]="MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY",r[r.MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST=9]="MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST",r[r.LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED=10]="LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED",r[r.SOI_ANCHOR_FOUND=11]="SOI_ANCHOR_FOUND",r[r.EMPTY_MATCH_PATTERN=12]="EMPTY_MATCH_PATTERN",r[r.NO_LINE_BREAKS_FLAGS=13]="NO_LINE_BREAKS_FLAGS",r[r.UNREACHABLE_PATTERN=14]="UNREACHABLE_PATTERN",r[r.IDENTIFY_TERMINATOR=15]="IDENTIFY_TERMINATOR",r[r.CUSTOM_LINE_BREAK=16]="CUSTOM_LINE_BREAK"})(Dye=Rc.LexerDefinitionErrorType||(Rc.LexerDefinitionErrorType={}));var Wd={deferDefinitionErrorsHandling:!1,positionTracking:"full",lineTerminatorsPattern:/\n|\r\n?/g,lineTerminatorCharacters:[` -`,"\r"],ensureOptimizations:!1,safeMode:!1,errorMessageProvider:xye.defaultLexerErrorProvider,traceInitPerf:!1,skipValidations:!1};Object.freeze(Wd);var kye=function(){function r(e,t){var i=this;if(t===void 0&&(t=Wd),this.lexerDefinition=e,this.lexerDefinitionErrors=[],this.lexerDefinitionWarning=[],this.patternIdxToConfig={},this.charCodeToPatternIdxToConfig={},this.modes=[],this.emptyGroups={},this.config=void 0,this.trackStartLines=!0,this.trackEndLines=!0,this.hasCustom=!1,this.canModeBeOptimized={},typeof t=="boolean")throw Error(`The second argument to the Lexer constructor is now an ILexerConfig Object. -a boolean 2nd argument is no longer supported`);this.config=(0,nr.merge)(Wd,t);var n=this.config.traceInitPerf;n===!0?(this.traceInitMaxIdent=1/0,this.traceInitPerf=!0):typeof n=="number"&&(this.traceInitMaxIdent=n,this.traceInitPerf=!0),this.traceInitIndent=-1,this.TRACE_INIT("Lexer Constructor",function(){var s,o=!0;i.TRACE_INIT("Lexer Config handling",function(){if(i.config.lineTerminatorsPattern===Wd.lineTerminatorsPattern)i.config.lineTerminatorsPattern=Vs.LineTerminatorOptimizedTester;else if(i.config.lineTerminatorCharacters===Wd.lineTerminatorCharacters)throw Error(`Error: Missing property on the Lexer config. - For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#MISSING_LINE_TERM_CHARS`);if(t.safeMode&&t.ensureOptimizations)throw Error('"safeMode" and "ensureOptimizations" flags are mutually exclusive.');i.trackStartLines=/full|onlyStart/i.test(i.config.positionTracking),i.trackEndLines=/full/i.test(i.config.positionTracking),(0,nr.isArray)(e)?(s={modes:{}},s.modes[Vs.DEFAULT_MODE]=(0,nr.cloneArr)(e),s[Vs.DEFAULT_MODE]=Vs.DEFAULT_MODE):(o=!1,s=(0,nr.cloneObj)(e))}),i.config.skipValidations===!1&&(i.TRACE_INIT("performRuntimeChecks",function(){i.lexerDefinitionErrors=i.lexerDefinitionErrors.concat((0,Vs.performRuntimeChecks)(s,i.trackStartLines,i.config.lineTerminatorCharacters))}),i.TRACE_INIT("performWarningRuntimeChecks",function(){i.lexerDefinitionWarning=i.lexerDefinitionWarning.concat((0,Vs.performWarningRuntimeChecks)(s,i.trackStartLines,i.config.lineTerminatorCharacters))})),s.modes=s.modes?s.modes:{},(0,nr.forEach)(s.modes,function(u,g){s.modes[g]=(0,nr.reject)(u,function(f){return(0,nr.isUndefined)(f)})});var a=(0,nr.keys)(s.modes);if((0,nr.forEach)(s.modes,function(u,g){i.TRACE_INIT("Mode: <"+g+"> processing",function(){if(i.modes.push(g),i.config.skipValidations===!1&&i.TRACE_INIT("validatePatterns",function(){i.lexerDefinitionErrors=i.lexerDefinitionErrors.concat((0,Vs.validatePatterns)(u,a))}),(0,nr.isEmpty)(i.lexerDefinitionErrors)){(0,vye.augmentTokenTypes)(u);var f;i.TRACE_INIT("analyzeTokenTypes",function(){f=(0,Vs.analyzeTokenTypes)(u,{lineTerminatorCharacters:i.config.lineTerminatorCharacters,positionTracking:t.positionTracking,ensureOptimizations:t.ensureOptimizations,safeMode:t.safeMode,tracer:i.TRACE_INIT.bind(i)})}),i.patternIdxToConfig[g]=f.patternIdxToConfig,i.charCodeToPatternIdxToConfig[g]=f.charCodeToPatternIdxToConfig,i.emptyGroups=(0,nr.merge)(i.emptyGroups,f.emptyGroups),i.hasCustom=f.hasCustom||i.hasCustom,i.canModeBeOptimized[g]=f.canBeOptimized}})}),i.defaultMode=s.defaultMode,!(0,nr.isEmpty)(i.lexerDefinitionErrors)&&!i.config.deferDefinitionErrorsHandling){var l=(0,nr.map)(i.lexerDefinitionErrors,function(u){return u.message}),c=l.join(`----------------------- -`);throw new Error(`Errors detected in definition of Lexer: -`+c)}(0,nr.forEach)(i.lexerDefinitionWarning,function(u){(0,nr.PRINT_WARNING)(u.message)}),i.TRACE_INIT("Choosing sub-methods implementations",function(){if(Vs.SUPPORT_STICKY?(i.chopInput=nr.IDENTITY,i.match=i.matchWithTest):(i.updateLastIndex=nr.NOOP,i.match=i.matchWithExec),o&&(i.handleModes=nr.NOOP),i.trackStartLines===!1&&(i.computeNewColumn=nr.IDENTITY),i.trackEndLines===!1&&(i.updateTokenEndLineColumnLocation=nr.NOOP),/full/i.test(i.config.positionTracking))i.createTokenInstance=i.createFullToken;else if(/onlyStart/i.test(i.config.positionTracking))i.createTokenInstance=i.createStartOnlyToken;else if(/onlyOffset/i.test(i.config.positionTracking))i.createTokenInstance=i.createOffsetOnlyToken;else throw Error('Invalid config option: "'+i.config.positionTracking+'"');i.hasCustom?(i.addToken=i.addTokenUsingPush,i.handlePayload=i.handlePayloadWithCustom):(i.addToken=i.addTokenUsingMemberAccess,i.handlePayload=i.handlePayloadNoCustom)}),i.TRACE_INIT("Failed Optimization Warnings",function(){var u=(0,nr.reduce)(i.canModeBeOptimized,function(g,f,h){return f===!1&&g.push(h),g},[]);if(t.ensureOptimizations&&!(0,nr.isEmpty)(u))throw Error("Lexer Modes: < "+u.join(", ")+` > cannot be optimized. - Disable the "ensureOptimizations" lexer config flag to silently ignore this and run the lexer in an un-optimized mode. - Or inspect the console log for details on how to resolve these issues.`)}),i.TRACE_INIT("clearRegExpParserCache",function(){(0,Pye.clearRegExpParserCache)()}),i.TRACE_INIT("toFastProperties",function(){(0,nr.toFastProperties)(i)})})}return r.prototype.tokenize=function(e,t){if(t===void 0&&(t=this.defaultMode),!(0,nr.isEmpty)(this.lexerDefinitionErrors)){var i=(0,nr.map)(this.lexerDefinitionErrors,function(o){return o.message}),n=i.join(`----------------------- -`);throw new Error(`Unable to Tokenize because Errors detected in definition of Lexer: -`+n)}var s=this.tokenizeInternal(e,t);return s},r.prototype.tokenizeInternal=function(e,t){var i=this,n,s,o,a,l,c,u,g,f,h,p,C,w,B,v,D,T=e,H=T.length,j=0,$=0,V=this.hasCustom?0:Math.floor(e.length/10),W=new Array(V),Z=[],A=this.trackStartLines?1:void 0,ae=this.trackStartLines?1:void 0,ge=(0,Vs.cloneEmptyGroups)(this.emptyGroups),_=this.trackStartLines,L=this.config.lineTerminatorsPattern,N=0,ue=[],we=[],Te=[],Pe=[];Object.freeze(Pe);var Le=void 0;function se(){return ue}function Ae(dr){var Bi=(0,Vs.charCodeToOptimizedIndex)(dr),_n=we[Bi];return _n===void 0?Pe:_n}var be=function(dr){if(Te.length===1&&dr.tokenType.PUSH_MODE===void 0){var Bi=i.config.errorMessageProvider.buildUnableToPopLexerModeMessage(dr);Z.push({offset:dr.startOffset,line:dr.startLine!==void 0?dr.startLine:void 0,column:dr.startColumn!==void 0?dr.startColumn:void 0,length:dr.image.length,message:Bi})}else{Te.pop();var _n=(0,nr.last)(Te);ue=i.patternIdxToConfig[_n],we=i.charCodeToPatternIdxToConfig[_n],N=ue.length;var pa=i.canModeBeOptimized[_n]&&i.config.safeMode===!1;we&&pa?Le=Ae:Le=se}};function fe(dr){Te.push(dr),we=this.charCodeToPatternIdxToConfig[dr],ue=this.patternIdxToConfig[dr],N=ue.length,N=ue.length;var Bi=this.canModeBeOptimized[dr]&&this.config.safeMode===!1;we&&Bi?Le=Ae:Le=se}fe.call(this,t);for(var le;jc.length){c=a,u=g,le=tt;break}}}break}}if(c!==null){if(f=c.length,h=le.group,h!==void 0&&(p=le.tokenTypeIdx,C=this.createTokenInstance(c,j,p,le.tokenType,A,ae,f),this.handlePayload(C,u),h===!1?$=this.addToken(W,$,C):ge[h].push(C)),e=this.chopInput(e,f),j=j+f,ae=this.computeNewColumn(ae,f),_===!0&&le.canLineTerminator===!0){var It=0,Ur=void 0,oi=void 0;L.lastIndex=0;do Ur=L.test(c),Ur===!0&&(oi=L.lastIndex-1,It++);while(Ur===!0);It!==0&&(A=A+It,ae=f-oi,this.updateTokenEndLineColumnLocation(C,h,oi,It,A,ae,f))}this.handleModes(le,be,fe,C)}else{for(var pi=j,pr=A,di=ae,ai=!1;!ai&&j <"+e+">");var n=(0,nr.timer)(t),s=n.time,o=n.value,a=s>10?console.warn:console.log;return this.traceInitIndent time: "+s+"ms"),this.traceInitIndent--,o}else return t()},r.SKIPPED="This marks a skipped Token pattern, this means each token identified by it willbe consumed and then thrown into oblivion, this can be used to for example to completely ignore whitespace.",r.NA=/NOT_APPLICABLE/,r}();Rc.Lexer=kye});var HA=y(Si=>{"use strict";Object.defineProperty(Si,"__esModule",{value:!0});Si.tokenMatcher=Si.createTokenInstance=Si.EOF=Si.createToken=Si.hasTokenLabel=Si.tokenName=Si.tokenLabel=void 0;var Xs=Gt(),Rye=Jd(),kx=df();function Fye(r){return wq(r)?r.LABEL:r.name}Si.tokenLabel=Fye;function Nye(r){return r.name}Si.tokenName=Nye;function wq(r){return(0,Xs.isString)(r.LABEL)&&r.LABEL!==""}Si.hasTokenLabel=wq;var Tye="parent",hq="categories",pq="label",dq="group",Cq="push_mode",mq="pop_mode",Eq="longer_alt",Iq="line_breaks",yq="start_chars_hint";function Bq(r){return Lye(r)}Si.createToken=Bq;function Lye(r){var e=r.pattern,t={};if(t.name=r.name,(0,Xs.isUndefined)(e)||(t.PATTERN=e),(0,Xs.has)(r,Tye))throw`The parent property is no longer supported. -See: https://github.com/chevrotain/chevrotain/issues/564#issuecomment-349062346 for details.`;return(0,Xs.has)(r,hq)&&(t.CATEGORIES=r[hq]),(0,kx.augmentTokenTypes)([t]),(0,Xs.has)(r,pq)&&(t.LABEL=r[pq]),(0,Xs.has)(r,dq)&&(t.GROUP=r[dq]),(0,Xs.has)(r,mq)&&(t.POP_MODE=r[mq]),(0,Xs.has)(r,Cq)&&(t.PUSH_MODE=r[Cq]),(0,Xs.has)(r,Eq)&&(t.LONGER_ALT=r[Eq]),(0,Xs.has)(r,Iq)&&(t.LINE_BREAKS=r[Iq]),(0,Xs.has)(r,yq)&&(t.START_CHARS_HINT=r[yq]),t}Si.EOF=Bq({name:"EOF",pattern:Rye.Lexer.NA});(0,kx.augmentTokenTypes)([Si.EOF]);function Oye(r,e,t,i,n,s,o,a){return{image:e,startOffset:t,endOffset:i,startLine:n,endLine:s,startColumn:o,endColumn:a,tokenTypeIdx:r.tokenTypeIdx,tokenType:r}}Si.createTokenInstance=Oye;function Mye(r,e){return(0,kx.tokenStructuredMatcher)(r,e)}Si.tokenMatcher=Mye});var Cn=y(Wt=>{"use strict";var ka=Wt&&Wt.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(Wt,"__esModule",{value:!0});Wt.serializeProduction=Wt.serializeGrammar=Wt.Terminal=Wt.Alternation=Wt.RepetitionWithSeparator=Wt.Repetition=Wt.RepetitionMandatoryWithSeparator=Wt.RepetitionMandatory=Wt.Option=Wt.Alternative=Wt.Rule=Wt.NonTerminal=Wt.AbstractProduction=void 0;var lr=Gt(),Uye=HA(),ko=function(){function r(e){this._definition=e}return Object.defineProperty(r.prototype,"definition",{get:function(){return this._definition},set:function(e){this._definition=e},enumerable:!1,configurable:!0}),r.prototype.accept=function(e){e.visit(this),(0,lr.forEach)(this.definition,function(t){t.accept(e)})},r}();Wt.AbstractProduction=ko;var bq=function(r){ka(e,r);function e(t){var i=r.call(this,[])||this;return i.idx=1,(0,lr.assign)(i,(0,lr.pick)(t,function(n){return n!==void 0})),i}return Object.defineProperty(e.prototype,"definition",{get:function(){return this.referencedRule!==void 0?this.referencedRule.definition:[]},set:function(t){},enumerable:!1,configurable:!0}),e.prototype.accept=function(t){t.visit(this)},e}(ko);Wt.NonTerminal=bq;var Qq=function(r){ka(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.orgText="",(0,lr.assign)(i,(0,lr.pick)(t,function(n){return n!==void 0})),i}return e}(ko);Wt.Rule=Qq;var Sq=function(r){ka(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.ignoreAmbiguities=!1,(0,lr.assign)(i,(0,lr.pick)(t,function(n){return n!==void 0})),i}return e}(ko);Wt.Alternative=Sq;var vq=function(r){ka(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,(0,lr.assign)(i,(0,lr.pick)(t,function(n){return n!==void 0})),i}return e}(ko);Wt.Option=vq;var xq=function(r){ka(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,(0,lr.assign)(i,(0,lr.pick)(t,function(n){return n!==void 0})),i}return e}(ko);Wt.RepetitionMandatory=xq;var Pq=function(r){ka(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,(0,lr.assign)(i,(0,lr.pick)(t,function(n){return n!==void 0})),i}return e}(ko);Wt.RepetitionMandatoryWithSeparator=Pq;var Dq=function(r){ka(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,(0,lr.assign)(i,(0,lr.pick)(t,function(n){return n!==void 0})),i}return e}(ko);Wt.Repetition=Dq;var kq=function(r){ka(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,(0,lr.assign)(i,(0,lr.pick)(t,function(n){return n!==void 0})),i}return e}(ko);Wt.RepetitionWithSeparator=kq;var Rq=function(r){ka(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,i.ignoreAmbiguities=!1,i.hasPredicates=!1,(0,lr.assign)(i,(0,lr.pick)(t,function(n){return n!==void 0})),i}return Object.defineProperty(e.prototype,"definition",{get:function(){return this._definition},set:function(t){this._definition=t},enumerable:!1,configurable:!0}),e}(ko);Wt.Alternation=Rq;var Ly=function(){function r(e){this.idx=1,(0,lr.assign)(this,(0,lr.pick)(e,function(t){return t!==void 0}))}return r.prototype.accept=function(e){e.visit(this)},r}();Wt.Terminal=Ly;function Kye(r){return(0,lr.map)(r,zd)}Wt.serializeGrammar=Kye;function zd(r){function e(s){return(0,lr.map)(s,zd)}if(r instanceof bq){var t={type:"NonTerminal",name:r.nonTerminalName,idx:r.idx};return(0,lr.isString)(r.label)&&(t.label=r.label),t}else{if(r instanceof Sq)return{type:"Alternative",definition:e(r.definition)};if(r instanceof vq)return{type:"Option",idx:r.idx,definition:e(r.definition)};if(r instanceof xq)return{type:"RepetitionMandatory",idx:r.idx,definition:e(r.definition)};if(r instanceof Pq)return{type:"RepetitionMandatoryWithSeparator",idx:r.idx,separator:zd(new Ly({terminalType:r.separator})),definition:e(r.definition)};if(r instanceof kq)return{type:"RepetitionWithSeparator",idx:r.idx,separator:zd(new Ly({terminalType:r.separator})),definition:e(r.definition)};if(r instanceof Dq)return{type:"Repetition",idx:r.idx,definition:e(r.definition)};if(r instanceof Rq)return{type:"Alternation",idx:r.idx,definition:e(r.definition)};if(r instanceof Ly){var i={type:"Terminal",name:r.terminalType.name,label:(0,Uye.tokenLabel)(r.terminalType),idx:r.idx};(0,lr.isString)(r.label)&&(i.terminalLabel=r.label);var n=r.terminalType.PATTERN;return r.terminalType.PATTERN&&(i.pattern=(0,lr.isRegExp)(n)?n.source:n),i}else{if(r instanceof Qq)return{type:"Rule",name:r.name,orgText:r.orgText,definition:e(r.definition)};throw Error("non exhaustive match")}}}Wt.serializeProduction=zd});var My=y(Oy=>{"use strict";Object.defineProperty(Oy,"__esModule",{value:!0});Oy.RestWalker=void 0;var Rx=Gt(),mn=Cn(),Hye=function(){function r(){}return r.prototype.walk=function(e,t){var i=this;t===void 0&&(t=[]),(0,Rx.forEach)(e.definition,function(n,s){var o=(0,Rx.drop)(e.definition,s+1);if(n instanceof mn.NonTerminal)i.walkProdRef(n,o,t);else if(n instanceof mn.Terminal)i.walkTerminal(n,o,t);else if(n instanceof mn.Alternative)i.walkFlat(n,o,t);else if(n instanceof mn.Option)i.walkOption(n,o,t);else if(n instanceof mn.RepetitionMandatory)i.walkAtLeastOne(n,o,t);else if(n instanceof mn.RepetitionMandatoryWithSeparator)i.walkAtLeastOneSep(n,o,t);else if(n instanceof mn.RepetitionWithSeparator)i.walkManySep(n,o,t);else if(n instanceof mn.Repetition)i.walkMany(n,o,t);else if(n instanceof mn.Alternation)i.walkOr(n,o,t);else throw Error("non exhaustive match")})},r.prototype.walkTerminal=function(e,t,i){},r.prototype.walkProdRef=function(e,t,i){},r.prototype.walkFlat=function(e,t,i){var n=t.concat(i);this.walk(e,n)},r.prototype.walkOption=function(e,t,i){var n=t.concat(i);this.walk(e,n)},r.prototype.walkAtLeastOne=function(e,t,i){var n=[new mn.Option({definition:e.definition})].concat(t,i);this.walk(e,n)},r.prototype.walkAtLeastOneSep=function(e,t,i){var n=Fq(e,t,i);this.walk(e,n)},r.prototype.walkMany=function(e,t,i){var n=[new mn.Option({definition:e.definition})].concat(t,i);this.walk(e,n)},r.prototype.walkManySep=function(e,t,i){var n=Fq(e,t,i);this.walk(e,n)},r.prototype.walkOr=function(e,t,i){var n=this,s=t.concat(i);(0,Rx.forEach)(e.definition,function(o){var a=new mn.Alternative({definition:[o]});n.walk(a,s)})},r}();Oy.RestWalker=Hye;function Fq(r,e,t){var i=[new mn.Option({definition:[new mn.Terminal({terminalType:r.separator})].concat(r.definition)})],n=i.concat(e,t);return n}});var Cf=y(Uy=>{"use strict";Object.defineProperty(Uy,"__esModule",{value:!0});Uy.GAstVisitor=void 0;var Ro=Cn(),Gye=function(){function r(){}return r.prototype.visit=function(e){var t=e;switch(t.constructor){case Ro.NonTerminal:return this.visitNonTerminal(t);case Ro.Alternative:return this.visitAlternative(t);case Ro.Option:return this.visitOption(t);case Ro.RepetitionMandatory:return this.visitRepetitionMandatory(t);case Ro.RepetitionMandatoryWithSeparator:return this.visitRepetitionMandatoryWithSeparator(t);case Ro.RepetitionWithSeparator:return this.visitRepetitionWithSeparator(t);case Ro.Repetition:return this.visitRepetition(t);case Ro.Alternation:return this.visitAlternation(t);case Ro.Terminal:return this.visitTerminal(t);case Ro.Rule:return this.visitRule(t);default:throw Error("non exhaustive match")}},r.prototype.visitNonTerminal=function(e){},r.prototype.visitAlternative=function(e){},r.prototype.visitOption=function(e){},r.prototype.visitRepetition=function(e){},r.prototype.visitRepetitionMandatory=function(e){},r.prototype.visitRepetitionMandatoryWithSeparator=function(e){},r.prototype.visitRepetitionWithSeparator=function(e){},r.prototype.visitAlternation=function(e){},r.prototype.visitTerminal=function(e){},r.prototype.visitRule=function(e){},r}();Uy.GAstVisitor=Gye});var Xd=y(Ui=>{"use strict";var Yye=Ui&&Ui.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(Ui,"__esModule",{value:!0});Ui.collectMethods=Ui.DslMethodsCollectorVisitor=Ui.getProductionDslName=Ui.isBranchingProd=Ui.isOptionalProd=Ui.isSequenceProd=void 0;var Vd=Gt(),Qr=Cn(),jye=Cf();function qye(r){return r instanceof Qr.Alternative||r instanceof Qr.Option||r instanceof Qr.Repetition||r instanceof Qr.RepetitionMandatory||r instanceof Qr.RepetitionMandatoryWithSeparator||r instanceof Qr.RepetitionWithSeparator||r instanceof Qr.Terminal||r instanceof Qr.Rule}Ui.isSequenceProd=qye;function Fx(r,e){e===void 0&&(e=[]);var t=r instanceof Qr.Option||r instanceof Qr.Repetition||r instanceof Qr.RepetitionWithSeparator;return t?!0:r instanceof Qr.Alternation?(0,Vd.some)(r.definition,function(i){return Fx(i,e)}):r instanceof Qr.NonTerminal&&(0,Vd.contains)(e,r)?!1:r instanceof Qr.AbstractProduction?(r instanceof Qr.NonTerminal&&e.push(r),(0,Vd.every)(r.definition,function(i){return Fx(i,e)})):!1}Ui.isOptionalProd=Fx;function Jye(r){return r instanceof Qr.Alternation}Ui.isBranchingProd=Jye;function Wye(r){if(r instanceof Qr.NonTerminal)return"SUBRULE";if(r instanceof Qr.Option)return"OPTION";if(r instanceof Qr.Alternation)return"OR";if(r instanceof Qr.RepetitionMandatory)return"AT_LEAST_ONE";if(r instanceof Qr.RepetitionMandatoryWithSeparator)return"AT_LEAST_ONE_SEP";if(r instanceof Qr.RepetitionWithSeparator)return"MANY_SEP";if(r instanceof Qr.Repetition)return"MANY";if(r instanceof Qr.Terminal)return"CONSUME";throw Error("non exhaustive match")}Ui.getProductionDslName=Wye;var Nq=function(r){Yye(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.separator="-",t.dslMethods={option:[],alternation:[],repetition:[],repetitionWithSeparator:[],repetitionMandatory:[],repetitionMandatoryWithSeparator:[]},t}return e.prototype.reset=function(){this.dslMethods={option:[],alternation:[],repetition:[],repetitionWithSeparator:[],repetitionMandatory:[],repetitionMandatoryWithSeparator:[]}},e.prototype.visitTerminal=function(t){var i=t.terminalType.name+this.separator+"Terminal";(0,Vd.has)(this.dslMethods,i)||(this.dslMethods[i]=[]),this.dslMethods[i].push(t)},e.prototype.visitNonTerminal=function(t){var i=t.nonTerminalName+this.separator+"Terminal";(0,Vd.has)(this.dslMethods,i)||(this.dslMethods[i]=[]),this.dslMethods[i].push(t)},e.prototype.visitOption=function(t){this.dslMethods.option.push(t)},e.prototype.visitRepetitionWithSeparator=function(t){this.dslMethods.repetitionWithSeparator.push(t)},e.prototype.visitRepetitionMandatory=function(t){this.dslMethods.repetitionMandatory.push(t)},e.prototype.visitRepetitionMandatoryWithSeparator=function(t){this.dslMethods.repetitionMandatoryWithSeparator.push(t)},e.prototype.visitRepetition=function(t){this.dslMethods.repetition.push(t)},e.prototype.visitAlternation=function(t){this.dslMethods.alternation.push(t)},e}(jye.GAstVisitor);Ui.DslMethodsCollectorVisitor=Nq;var Ky=new Nq;function zye(r){Ky.reset(),r.accept(Ky);var e=Ky.dslMethods;return Ky.reset(),e}Ui.collectMethods=zye});var Tx=y(Fo=>{"use strict";Object.defineProperty(Fo,"__esModule",{value:!0});Fo.firstForTerminal=Fo.firstForBranching=Fo.firstForSequence=Fo.first=void 0;var Hy=Gt(),Tq=Cn(),Nx=Xd();function Gy(r){if(r instanceof Tq.NonTerminal)return Gy(r.referencedRule);if(r instanceof Tq.Terminal)return Mq(r);if((0,Nx.isSequenceProd)(r))return Lq(r);if((0,Nx.isBranchingProd)(r))return Oq(r);throw Error("non exhaustive match")}Fo.first=Gy;function Lq(r){for(var e=[],t=r.definition,i=0,n=t.length>i,s,o=!0;n&&o;)s=t[i],o=(0,Nx.isOptionalProd)(s),e=e.concat(Gy(s)),i=i+1,n=t.length>i;return(0,Hy.uniq)(e)}Fo.firstForSequence=Lq;function Oq(r){var e=(0,Hy.map)(r.definition,function(t){return Gy(t)});return(0,Hy.uniq)((0,Hy.flatten)(e))}Fo.firstForBranching=Oq;function Mq(r){return[r.terminalType]}Fo.firstForTerminal=Mq});var Lx=y(Yy=>{"use strict";Object.defineProperty(Yy,"__esModule",{value:!0});Yy.IN=void 0;Yy.IN="_~IN~_"});var Yq=y(ls=>{"use strict";var Vye=ls&&ls.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(ls,"__esModule",{value:!0});ls.buildInProdFollowPrefix=ls.buildBetweenProdsFollowPrefix=ls.computeAllProdsFollows=ls.ResyncFollowsWalker=void 0;var Xye=My(),_ye=Tx(),Uq=Gt(),Kq=Lx(),Zye=Cn(),Hq=function(r){Vye(e,r);function e(t){var i=r.call(this)||this;return i.topProd=t,i.follows={},i}return e.prototype.startWalking=function(){return this.walk(this.topProd),this.follows},e.prototype.walkTerminal=function(t,i,n){},e.prototype.walkProdRef=function(t,i,n){var s=Gq(t.referencedRule,t.idx)+this.topProd.name,o=i.concat(n),a=new Zye.Alternative({definition:o}),l=(0,_ye.first)(a);this.follows[s]=l},e}(Xye.RestWalker);ls.ResyncFollowsWalker=Hq;function $ye(r){var e={};return(0,Uq.forEach)(r,function(t){var i=new Hq(t).startWalking();(0,Uq.assign)(e,i)}),e}ls.computeAllProdsFollows=$ye;function Gq(r,e){return r.name+e+Kq.IN}ls.buildBetweenProdsFollowPrefix=Gq;function ewe(r){var e=r.terminalType.name;return e+r.idx+Kq.IN}ls.buildInProdFollowPrefix=ewe});var _d=y(Ra=>{"use strict";Object.defineProperty(Ra,"__esModule",{value:!0});Ra.defaultGrammarValidatorErrorProvider=Ra.defaultGrammarResolverErrorProvider=Ra.defaultParserErrorProvider=void 0;var mf=HA(),twe=Gt(),_s=Gt(),Ox=Cn(),jq=Xd();Ra.defaultParserErrorProvider={buildMismatchTokenMessage:function(r){var e=r.expected,t=r.actual,i=r.previous,n=r.ruleName,s=(0,mf.hasTokenLabel)(e),o=s?"--> "+(0,mf.tokenLabel)(e)+" <--":"token of type --> "+e.name+" <--",a="Expecting "+o+" but found --> '"+t.image+"' <--";return a},buildNotAllInputParsedMessage:function(r){var e=r.firstRedundant,t=r.ruleName;return"Redundant input, expecting EOF but found: "+e.image},buildNoViableAltMessage:function(r){var e=r.expectedPathsPerAlt,t=r.actual,i=r.previous,n=r.customUserDescription,s=r.ruleName,o="Expecting: ",a=(0,_s.first)(t).image,l=` -but found: '`+a+"'";if(n)return o+n+l;var c=(0,_s.reduce)(e,function(h,p){return h.concat(p)},[]),u=(0,_s.map)(c,function(h){return"["+(0,_s.map)(h,function(p){return(0,mf.tokenLabel)(p)}).join(", ")+"]"}),g=(0,_s.map)(u,function(h,p){return" "+(p+1)+". "+h}),f=`one of these possible Token sequences: -`+g.join(` -`);return o+f+l},buildEarlyExitMessage:function(r){var e=r.expectedIterationPaths,t=r.actual,i=r.customUserDescription,n=r.ruleName,s="Expecting: ",o=(0,_s.first)(t).image,a=` -but found: '`+o+"'";if(i)return s+i+a;var l=(0,_s.map)(e,function(u){return"["+(0,_s.map)(u,function(g){return(0,mf.tokenLabel)(g)}).join(",")+"]"}),c=`expecting at least one iteration which starts with one of these possible Token sequences:: - `+("<"+l.join(" ,")+">");return s+c+a}};Object.freeze(Ra.defaultParserErrorProvider);Ra.defaultGrammarResolverErrorProvider={buildRuleNotFoundError:function(r,e){var t="Invalid grammar, reference to a rule which is not defined: ->"+e.nonTerminalName+`<- -inside top level rule: ->`+r.name+"<-";return t}};Ra.defaultGrammarValidatorErrorProvider={buildDuplicateFoundError:function(r,e){function t(u){return u instanceof Ox.Terminal?u.terminalType.name:u instanceof Ox.NonTerminal?u.nonTerminalName:""}var i=r.name,n=(0,_s.first)(e),s=n.idx,o=(0,jq.getProductionDslName)(n),a=t(n),l=s>0,c="->"+o+(l?s:"")+"<- "+(a?"with argument: ->"+a+"<-":"")+` - appears more than once (`+e.length+" times) in the top level rule: ->"+i+`<-. - For further details see: https://chevrotain.io/docs/FAQ.html#NUMERICAL_SUFFIXES - `;return c=c.replace(/[ \t]+/g," "),c=c.replace(/\s\s+/g,` -`),c},buildNamespaceConflictError:function(r){var e=`Namespace conflict found in grammar. -`+("The grammar has both a Terminal(Token) and a Non-Terminal(Rule) named: <"+r.name+`>. -`)+`To resolve this make sure each Terminal and Non-Terminal names are unique -This is easy to accomplish by using the convention that Terminal names start with an uppercase letter -and Non-Terminal names start with a lower case letter.`;return e},buildAlternationPrefixAmbiguityError:function(r){var e=(0,_s.map)(r.prefixPath,function(n){return(0,mf.tokenLabel)(n)}).join(", "),t=r.alternation.idx===0?"":r.alternation.idx,i="Ambiguous alternatives: <"+r.ambiguityIndices.join(" ,")+`> due to common lookahead prefix -`+("in inside <"+r.topLevelRule.name+`> Rule, -`)+("<"+e+`> may appears as a prefix path in all these alternatives. -`)+`See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#COMMON_PREFIX -For Further details.`;return i},buildAlternationAmbiguityError:function(r){var e=(0,_s.map)(r.prefixPath,function(n){return(0,mf.tokenLabel)(n)}).join(", "),t=r.alternation.idx===0?"":r.alternation.idx,i="Ambiguous Alternatives Detected: <"+r.ambiguityIndices.join(" ,")+"> in "+(" inside <"+r.topLevelRule.name+`> Rule, -`)+("<"+e+`> may appears as a prefix path in all these alternatives. -`);return i=i+`See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#AMBIGUOUS_ALTERNATIVES -For Further details.`,i},buildEmptyRepetitionError:function(r){var e=(0,jq.getProductionDslName)(r.repetition);r.repetition.idx!==0&&(e+=r.repetition.idx);var t="The repetition <"+e+"> within Rule <"+r.topLevelRule.name+`> can never consume any tokens. -This could lead to an infinite loop.`;return t},buildTokenNameError:function(r){return"deprecated"},buildEmptyAlternationError:function(r){var e="Ambiguous empty alternative: <"+(r.emptyChoiceIdx+1)+">"+(" in inside <"+r.topLevelRule.name+`> Rule. -`)+"Only the last alternative may be an empty alternative.";return e},buildTooManyAlternativesError:function(r){var e=`An Alternation cannot have more than 256 alternatives: -`+(" inside <"+r.topLevelRule.name+`> Rule. - has `+(r.alternation.definition.length+1)+" alternatives.");return e},buildLeftRecursionError:function(r){var e=r.topLevelRule.name,t=twe.map(r.leftRecursionPath,function(s){return s.name}),i=e+" --> "+t.concat([e]).join(" --> "),n=`Left Recursion found in grammar. -`+("rule: <"+e+`> can be invoked from itself (directly or indirectly) -`)+(`without consuming any Tokens. The grammar path that causes this is: - `+i+` -`)+` To fix this refactor your grammar to remove the left recursion. -see: https://en.wikipedia.org/wiki/LL_parser#Left_Factoring.`;return n},buildInvalidRuleNameError:function(r){return"deprecated"},buildDuplicateRuleNameError:function(r){var e;r.topLevelRule instanceof Ox.Rule?e=r.topLevelRule.name:e=r.topLevelRule;var t="Duplicate definition, rule: ->"+e+"<- is already defined in the grammar: ->"+r.grammarName+"<-";return t}}});var Wq=y(GA=>{"use strict";var rwe=GA&&GA.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(GA,"__esModule",{value:!0});GA.GastRefResolverVisitor=GA.resolveGrammar=void 0;var iwe=Hn(),qq=Gt(),nwe=Cf();function swe(r,e){var t=new Jq(r,e);return t.resolveRefs(),t.errors}GA.resolveGrammar=swe;var Jq=function(r){rwe(e,r);function e(t,i){var n=r.call(this)||this;return n.nameToTopRule=t,n.errMsgProvider=i,n.errors=[],n}return e.prototype.resolveRefs=function(){var t=this;(0,qq.forEach)((0,qq.values)(this.nameToTopRule),function(i){t.currTopLevel=i,i.accept(t)})},e.prototype.visitNonTerminal=function(t){var i=this.nameToTopRule[t.nonTerminalName];if(i)t.referencedRule=i;else{var n=this.errMsgProvider.buildRuleNotFoundError(this.currTopLevel,t);this.errors.push({message:n,type:iwe.ParserDefinitionErrorType.UNRESOLVED_SUBRULE_REF,ruleName:this.currTopLevel.name,unresolvedRefName:t.nonTerminalName})}},e}(nwe.GAstVisitor);GA.GastRefResolverVisitor=Jq});var $d=y(Lr=>{"use strict";var Fc=Lr&&Lr.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(Lr,"__esModule",{value:!0});Lr.nextPossibleTokensAfter=Lr.possiblePathsFrom=Lr.NextTerminalAfterAtLeastOneSepWalker=Lr.NextTerminalAfterAtLeastOneWalker=Lr.NextTerminalAfterManySepWalker=Lr.NextTerminalAfterManyWalker=Lr.AbstractNextTerminalAfterProductionWalker=Lr.NextAfterTokenWalker=Lr.AbstractNextPossibleTokensWalker=void 0;var zq=My(),Ut=Gt(),owe=Tx(),Dt=Cn(),Vq=function(r){Fc(e,r);function e(t,i){var n=r.call(this)||this;return n.topProd=t,n.path=i,n.possibleTokTypes=[],n.nextProductionName="",n.nextProductionOccurrence=0,n.found=!1,n.isAtEndOfPath=!1,n}return e.prototype.startWalking=function(){if(this.found=!1,this.path.ruleStack[0]!==this.topProd.name)throw Error("The path does not start with the walker's top Rule!");return this.ruleStack=(0,Ut.cloneArr)(this.path.ruleStack).reverse(),this.occurrenceStack=(0,Ut.cloneArr)(this.path.occurrenceStack).reverse(),this.ruleStack.pop(),this.occurrenceStack.pop(),this.updateExpectedNext(),this.walk(this.topProd),this.possibleTokTypes},e.prototype.walk=function(t,i){i===void 0&&(i=[]),this.found||r.prototype.walk.call(this,t,i)},e.prototype.walkProdRef=function(t,i,n){if(t.referencedRule.name===this.nextProductionName&&t.idx===this.nextProductionOccurrence){var s=i.concat(n);this.updateExpectedNext(),this.walk(t.referencedRule,s)}},e.prototype.updateExpectedNext=function(){(0,Ut.isEmpty)(this.ruleStack)?(this.nextProductionName="",this.nextProductionOccurrence=0,this.isAtEndOfPath=!0):(this.nextProductionName=this.ruleStack.pop(),this.nextProductionOccurrence=this.occurrenceStack.pop())},e}(zq.RestWalker);Lr.AbstractNextPossibleTokensWalker=Vq;var awe=function(r){Fc(e,r);function e(t,i){var n=r.call(this,t,i)||this;return n.path=i,n.nextTerminalName="",n.nextTerminalOccurrence=0,n.nextTerminalName=n.path.lastTok.name,n.nextTerminalOccurrence=n.path.lastTokOccurrence,n}return e.prototype.walkTerminal=function(t,i,n){if(this.isAtEndOfPath&&t.terminalType.name===this.nextTerminalName&&t.idx===this.nextTerminalOccurrence&&!this.found){var s=i.concat(n),o=new Dt.Alternative({definition:s});this.possibleTokTypes=(0,owe.first)(o),this.found=!0}},e}(Vq);Lr.NextAfterTokenWalker=awe;var Zd=function(r){Fc(e,r);function e(t,i){var n=r.call(this)||this;return n.topRule=t,n.occurrence=i,n.result={token:void 0,occurrence:void 0,isEndOfRule:void 0},n}return e.prototype.startWalking=function(){return this.walk(this.topRule),this.result},e}(zq.RestWalker);Lr.AbstractNextTerminalAfterProductionWalker=Zd;var Awe=function(r){Fc(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e.prototype.walkMany=function(t,i,n){if(t.idx===this.occurrence){var s=(0,Ut.first)(i.concat(n));this.result.isEndOfRule=s===void 0,s instanceof Dt.Terminal&&(this.result.token=s.terminalType,this.result.occurrence=s.idx)}else r.prototype.walkMany.call(this,t,i,n)},e}(Zd);Lr.NextTerminalAfterManyWalker=Awe;var lwe=function(r){Fc(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e.prototype.walkManySep=function(t,i,n){if(t.idx===this.occurrence){var s=(0,Ut.first)(i.concat(n));this.result.isEndOfRule=s===void 0,s instanceof Dt.Terminal&&(this.result.token=s.terminalType,this.result.occurrence=s.idx)}else r.prototype.walkManySep.call(this,t,i,n)},e}(Zd);Lr.NextTerminalAfterManySepWalker=lwe;var cwe=function(r){Fc(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e.prototype.walkAtLeastOne=function(t,i,n){if(t.idx===this.occurrence){var s=(0,Ut.first)(i.concat(n));this.result.isEndOfRule=s===void 0,s instanceof Dt.Terminal&&(this.result.token=s.terminalType,this.result.occurrence=s.idx)}else r.prototype.walkAtLeastOne.call(this,t,i,n)},e}(Zd);Lr.NextTerminalAfterAtLeastOneWalker=cwe;var uwe=function(r){Fc(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e.prototype.walkAtLeastOneSep=function(t,i,n){if(t.idx===this.occurrence){var s=(0,Ut.first)(i.concat(n));this.result.isEndOfRule=s===void 0,s instanceof Dt.Terminal&&(this.result.token=s.terminalType,this.result.occurrence=s.idx)}else r.prototype.walkAtLeastOneSep.call(this,t,i,n)},e}(Zd);Lr.NextTerminalAfterAtLeastOneSepWalker=uwe;function Xq(r,e,t){t===void 0&&(t=[]),t=(0,Ut.cloneArr)(t);var i=[],n=0;function s(c){return c.concat((0,Ut.drop)(r,n+1))}function o(c){var u=Xq(s(c),e,t);return i.concat(u)}for(;t.length=0;ge--){var _=B.definition[ge],L={idx:p,def:_.definition.concat((0,Ut.drop)(h)),ruleStack:C,occurrenceStack:w};g.push(L),g.push(o)}else if(B instanceof Dt.Alternative)g.push({idx:p,def:B.definition.concat((0,Ut.drop)(h)),ruleStack:C,occurrenceStack:w});else if(B instanceof Dt.Rule)g.push(fwe(B,p,C,w));else throw Error("non exhaustive match")}}return u}Lr.nextPossibleTokensAfter=gwe;function fwe(r,e,t,i){var n=(0,Ut.cloneArr)(t);n.push(r.name);var s=(0,Ut.cloneArr)(i);return s.push(1),{idx:e,def:r.definition,ruleStack:n,occurrenceStack:s}}});var eC=y(_t=>{"use strict";var $q=_t&&_t.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(_t,"__esModule",{value:!0});_t.areTokenCategoriesNotUsed=_t.isStrictPrefixOfPath=_t.containsPath=_t.getLookaheadPathsForOptionalProd=_t.getLookaheadPathsForOr=_t.lookAheadSequenceFromAlternatives=_t.buildSingleAlternativeLookaheadFunction=_t.buildAlternativesLookAheadFunc=_t.buildLookaheadFuncForOptionalProd=_t.buildLookaheadFuncForOr=_t.getProdType=_t.PROD_TYPE=void 0;var sr=Gt(),_q=$d(),hwe=My(),jy=df(),YA=Cn(),pwe=Cf(),li;(function(r){r[r.OPTION=0]="OPTION",r[r.REPETITION=1]="REPETITION",r[r.REPETITION_MANDATORY=2]="REPETITION_MANDATORY",r[r.REPETITION_MANDATORY_WITH_SEPARATOR=3]="REPETITION_MANDATORY_WITH_SEPARATOR",r[r.REPETITION_WITH_SEPARATOR=4]="REPETITION_WITH_SEPARATOR",r[r.ALTERNATION=5]="ALTERNATION"})(li=_t.PROD_TYPE||(_t.PROD_TYPE={}));function dwe(r){if(r instanceof YA.Option)return li.OPTION;if(r instanceof YA.Repetition)return li.REPETITION;if(r instanceof YA.RepetitionMandatory)return li.REPETITION_MANDATORY;if(r instanceof YA.RepetitionMandatoryWithSeparator)return li.REPETITION_MANDATORY_WITH_SEPARATOR;if(r instanceof YA.RepetitionWithSeparator)return li.REPETITION_WITH_SEPARATOR;if(r instanceof YA.Alternation)return li.ALTERNATION;throw Error("non exhaustive match")}_t.getProdType=dwe;function Cwe(r,e,t,i,n,s){var o=tJ(r,e,t),a=Kx(o)?jy.tokenStructuredMatcherNoCategories:jy.tokenStructuredMatcher;return s(o,i,a,n)}_t.buildLookaheadFuncForOr=Cwe;function mwe(r,e,t,i,n,s){var o=rJ(r,e,n,t),a=Kx(o)?jy.tokenStructuredMatcherNoCategories:jy.tokenStructuredMatcher;return s(o[0],a,i)}_t.buildLookaheadFuncForOptionalProd=mwe;function Ewe(r,e,t,i){var n=r.length,s=(0,sr.every)(r,function(l){return(0,sr.every)(l,function(c){return c.length===1})});if(e)return function(l){for(var c=(0,sr.map)(l,function(D){return D.GATE}),u=0;u{"use strict";var Hx=zt&&zt.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(zt,"__esModule",{value:!0});zt.checkPrefixAlternativesAmbiguities=zt.validateSomeNonEmptyLookaheadPath=zt.validateTooManyAlts=zt.RepetionCollector=zt.validateAmbiguousAlternationAlternatives=zt.validateEmptyOrAlternative=zt.getFirstNoneTerminal=zt.validateNoLeftRecursion=zt.validateRuleIsOverridden=zt.validateRuleDoesNotAlreadyExist=zt.OccurrenceValidationCollector=zt.identifyProductionForDuplicates=zt.validateGrammar=void 0;var er=Gt(),Sr=Gt(),No=Hn(),Gx=Xd(),Ef=eC(),bwe=$d(),Zs=Cn(),Yx=Cf();function Qwe(r,e,t,i,n){var s=er.map(r,function(h){return Swe(h,i)}),o=er.map(r,function(h){return jx(h,h,i)}),a=[],l=[],c=[];(0,Sr.every)(o,Sr.isEmpty)&&(a=(0,Sr.map)(r,function(h){return AJ(h,i)}),l=(0,Sr.map)(r,function(h){return lJ(h,e,i)}),c=gJ(r,e,i));var u=Pwe(r,t,i),g=(0,Sr.map)(r,function(h){return uJ(h,i)}),f=(0,Sr.map)(r,function(h){return aJ(h,r,n,i)});return er.flatten(s.concat(c,o,a,l,u,g,f))}zt.validateGrammar=Qwe;function Swe(r,e){var t=new oJ;r.accept(t);var i=t.allProductions,n=er.groupBy(i,nJ),s=er.pick(n,function(a){return a.length>1}),o=er.map(er.values(s),function(a){var l=er.first(a),c=e.buildDuplicateFoundError(r,a),u=(0,Gx.getProductionDslName)(l),g={message:c,type:No.ParserDefinitionErrorType.DUPLICATE_PRODUCTIONS,ruleName:r.name,dslName:u,occurrence:l.idx},f=sJ(l);return f&&(g.parameter=f),g});return o}function nJ(r){return(0,Gx.getProductionDslName)(r)+"_#_"+r.idx+"_#_"+sJ(r)}zt.identifyProductionForDuplicates=nJ;function sJ(r){return r instanceof Zs.Terminal?r.terminalType.name:r instanceof Zs.NonTerminal?r.nonTerminalName:""}var oJ=function(r){Hx(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.allProductions=[],t}return e.prototype.visitNonTerminal=function(t){this.allProductions.push(t)},e.prototype.visitOption=function(t){this.allProductions.push(t)},e.prototype.visitRepetitionWithSeparator=function(t){this.allProductions.push(t)},e.prototype.visitRepetitionMandatory=function(t){this.allProductions.push(t)},e.prototype.visitRepetitionMandatoryWithSeparator=function(t){this.allProductions.push(t)},e.prototype.visitRepetition=function(t){this.allProductions.push(t)},e.prototype.visitAlternation=function(t){this.allProductions.push(t)},e.prototype.visitTerminal=function(t){this.allProductions.push(t)},e}(Yx.GAstVisitor);zt.OccurrenceValidationCollector=oJ;function aJ(r,e,t,i){var n=[],s=(0,Sr.reduce)(e,function(a,l){return l.name===r.name?a+1:a},0);if(s>1){var o=i.buildDuplicateRuleNameError({topLevelRule:r,grammarName:t});n.push({message:o,type:No.ParserDefinitionErrorType.DUPLICATE_RULE_NAME,ruleName:r.name})}return n}zt.validateRuleDoesNotAlreadyExist=aJ;function vwe(r,e,t){var i=[],n;return er.contains(e,r)||(n="Invalid rule override, rule: ->"+r+"<- cannot be overridden in the grammar: ->"+t+"<-as it is not defined in any of the super grammars ",i.push({message:n,type:No.ParserDefinitionErrorType.INVALID_RULE_OVERRIDE,ruleName:r})),i}zt.validateRuleIsOverridden=vwe;function jx(r,e,t,i){i===void 0&&(i=[]);var n=[],s=tC(e.definition);if(er.isEmpty(s))return[];var o=r.name,a=er.contains(s,r);a&&n.push({message:t.buildLeftRecursionError({topLevelRule:r,leftRecursionPath:i}),type:No.ParserDefinitionErrorType.LEFT_RECURSION,ruleName:o});var l=er.difference(s,i.concat([r])),c=er.map(l,function(u){var g=er.cloneArr(i);return g.push(u),jx(r,u,t,g)});return n.concat(er.flatten(c))}zt.validateNoLeftRecursion=jx;function tC(r){var e=[];if(er.isEmpty(r))return e;var t=er.first(r);if(t instanceof Zs.NonTerminal)e.push(t.referencedRule);else if(t instanceof Zs.Alternative||t instanceof Zs.Option||t instanceof Zs.RepetitionMandatory||t instanceof Zs.RepetitionMandatoryWithSeparator||t instanceof Zs.RepetitionWithSeparator||t instanceof Zs.Repetition)e=e.concat(tC(t.definition));else if(t instanceof Zs.Alternation)e=er.flatten(er.map(t.definition,function(o){return tC(o.definition)}));else if(!(t instanceof Zs.Terminal))throw Error("non exhaustive match");var i=(0,Gx.isOptionalProd)(t),n=r.length>1;if(i&&n){var s=er.drop(r);return e.concat(tC(s))}else return e}zt.getFirstNoneTerminal=tC;var qx=function(r){Hx(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.alternations=[],t}return e.prototype.visitAlternation=function(t){this.alternations.push(t)},e}(Yx.GAstVisitor);function AJ(r,e){var t=new qx;r.accept(t);var i=t.alternations,n=er.reduce(i,function(s,o){var a=er.dropRight(o.definition),l=er.map(a,function(c,u){var g=(0,bwe.nextPossibleTokensAfter)([c],[],null,1);return er.isEmpty(g)?{message:e.buildEmptyAlternationError({topLevelRule:r,alternation:o,emptyChoiceIdx:u}),type:No.ParserDefinitionErrorType.NONE_LAST_EMPTY_ALT,ruleName:r.name,occurrence:o.idx,alternative:u+1}:null});return s.concat(er.compact(l))},[]);return n}zt.validateEmptyOrAlternative=AJ;function lJ(r,e,t){var i=new qx;r.accept(i);var n=i.alternations;n=(0,Sr.reject)(n,function(o){return o.ignoreAmbiguities===!0});var s=er.reduce(n,function(o,a){var l=a.idx,c=a.maxLookahead||e,u=(0,Ef.getLookaheadPathsForOr)(l,r,c,a),g=xwe(u,a,r,t),f=fJ(u,a,r,t);return o.concat(g,f)},[]);return s}zt.validateAmbiguousAlternationAlternatives=lJ;var cJ=function(r){Hx(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.allProductions=[],t}return e.prototype.visitRepetitionWithSeparator=function(t){this.allProductions.push(t)},e.prototype.visitRepetitionMandatory=function(t){this.allProductions.push(t)},e.prototype.visitRepetitionMandatoryWithSeparator=function(t){this.allProductions.push(t)},e.prototype.visitRepetition=function(t){this.allProductions.push(t)},e}(Yx.GAstVisitor);zt.RepetionCollector=cJ;function uJ(r,e){var t=new qx;r.accept(t);var i=t.alternations,n=er.reduce(i,function(s,o){return o.definition.length>255&&s.push({message:e.buildTooManyAlternativesError({topLevelRule:r,alternation:o}),type:No.ParserDefinitionErrorType.TOO_MANY_ALTS,ruleName:r.name,occurrence:o.idx}),s},[]);return n}zt.validateTooManyAlts=uJ;function gJ(r,e,t){var i=[];return(0,Sr.forEach)(r,function(n){var s=new cJ;n.accept(s);var o=s.allProductions;(0,Sr.forEach)(o,function(a){var l=(0,Ef.getProdType)(a),c=a.maxLookahead||e,u=a.idx,g=(0,Ef.getLookaheadPathsForOptionalProd)(u,n,l,c),f=g[0];if((0,Sr.isEmpty)((0,Sr.flatten)(f))){var h=t.buildEmptyRepetitionError({topLevelRule:n,repetition:a});i.push({message:h,type:No.ParserDefinitionErrorType.NO_NON_EMPTY_LOOKAHEAD,ruleName:n.name})}})}),i}zt.validateSomeNonEmptyLookaheadPath=gJ;function xwe(r,e,t,i){var n=[],s=(0,Sr.reduce)(r,function(a,l,c){return e.definition[c].ignoreAmbiguities===!0||(0,Sr.forEach)(l,function(u){var g=[c];(0,Sr.forEach)(r,function(f,h){c!==h&&(0,Ef.containsPath)(f,u)&&e.definition[h].ignoreAmbiguities!==!0&&g.push(h)}),g.length>1&&!(0,Ef.containsPath)(n,u)&&(n.push(u),a.push({alts:g,path:u}))}),a},[]),o=er.map(s,function(a){var l=(0,Sr.map)(a.alts,function(u){return u+1}),c=i.buildAlternationAmbiguityError({topLevelRule:t,alternation:e,ambiguityIndices:l,prefixPath:a.path});return{message:c,type:No.ParserDefinitionErrorType.AMBIGUOUS_ALTS,ruleName:t.name,occurrence:e.idx,alternatives:[a.alts]}});return o}function fJ(r,e,t,i){var n=[],s=(0,Sr.reduce)(r,function(o,a,l){var c=(0,Sr.map)(a,function(u){return{idx:l,path:u}});return o.concat(c)},[]);return(0,Sr.forEach)(s,function(o){var a=e.definition[o.idx];if(a.ignoreAmbiguities!==!0){var l=o.idx,c=o.path,u=(0,Sr.findAll)(s,function(f){return e.definition[f.idx].ignoreAmbiguities!==!0&&f.idx{"use strict";Object.defineProperty(If,"__esModule",{value:!0});If.validateGrammar=If.resolveGrammar=void 0;var Wx=Gt(),Dwe=Wq(),kwe=Jx(),hJ=_d();function Rwe(r){r=(0,Wx.defaults)(r,{errMsgProvider:hJ.defaultGrammarResolverErrorProvider});var e={};return(0,Wx.forEach)(r.rules,function(t){e[t.name]=t}),(0,Dwe.resolveGrammar)(e,r.errMsgProvider)}If.resolveGrammar=Rwe;function Fwe(r){return r=(0,Wx.defaults)(r,{errMsgProvider:hJ.defaultGrammarValidatorErrorProvider}),(0,kwe.validateGrammar)(r.rules,r.maxLookahead,r.tokenTypes,r.errMsgProvider,r.grammarName)}If.validateGrammar=Fwe});var yf=y(En=>{"use strict";var rC=En&&En.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(En,"__esModule",{value:!0});En.EarlyExitException=En.NotAllInputParsedException=En.NoViableAltException=En.MismatchedTokenException=En.isRecognitionException=void 0;var Nwe=Gt(),dJ="MismatchedTokenException",CJ="NoViableAltException",mJ="EarlyExitException",EJ="NotAllInputParsedException",IJ=[dJ,CJ,mJ,EJ];Object.freeze(IJ);function Twe(r){return(0,Nwe.contains)(IJ,r.name)}En.isRecognitionException=Twe;var qy=function(r){rC(e,r);function e(t,i){var n=this.constructor,s=r.call(this,t)||this;return s.token=i,s.resyncedTokens=[],Object.setPrototypeOf(s,n.prototype),Error.captureStackTrace&&Error.captureStackTrace(s,s.constructor),s}return e}(Error),Lwe=function(r){rC(e,r);function e(t,i,n){var s=r.call(this,t,i)||this;return s.previousToken=n,s.name=dJ,s}return e}(qy);En.MismatchedTokenException=Lwe;var Owe=function(r){rC(e,r);function e(t,i,n){var s=r.call(this,t,i)||this;return s.previousToken=n,s.name=CJ,s}return e}(qy);En.NoViableAltException=Owe;var Mwe=function(r){rC(e,r);function e(t,i){var n=r.call(this,t,i)||this;return n.name=EJ,n}return e}(qy);En.NotAllInputParsedException=Mwe;var Uwe=function(r){rC(e,r);function e(t,i,n){var s=r.call(this,t,i)||this;return s.previousToken=n,s.name=mJ,s}return e}(qy);En.EarlyExitException=Uwe});var Vx=y(Ki=>{"use strict";Object.defineProperty(Ki,"__esModule",{value:!0});Ki.attemptInRepetitionRecovery=Ki.Recoverable=Ki.InRuleRecoveryException=Ki.IN_RULE_RECOVERY_EXCEPTION=Ki.EOF_FOLLOW_KEY=void 0;var Jy=HA(),cs=Gt(),Kwe=yf(),Hwe=Lx(),Gwe=Hn();Ki.EOF_FOLLOW_KEY={};Ki.IN_RULE_RECOVERY_EXCEPTION="InRuleRecoveryException";function zx(r){this.name=Ki.IN_RULE_RECOVERY_EXCEPTION,this.message=r}Ki.InRuleRecoveryException=zx;zx.prototype=Error.prototype;var Ywe=function(){function r(){}return r.prototype.initRecoverable=function(e){this.firstAfterRepMap={},this.resyncFollows={},this.recoveryEnabled=(0,cs.has)(e,"recoveryEnabled")?e.recoveryEnabled:Gwe.DEFAULT_PARSER_CONFIG.recoveryEnabled,this.recoveryEnabled&&(this.attemptInRepetitionRecovery=yJ)},r.prototype.getTokenToInsert=function(e){var t=(0,Jy.createTokenInstance)(e,"",NaN,NaN,NaN,NaN,NaN,NaN);return t.isInsertedInRecovery=!0,t},r.prototype.canTokenTypeBeInsertedInRecovery=function(e){return!0},r.prototype.tryInRepetitionRecovery=function(e,t,i,n){for(var s=this,o=this.findReSyncTokenType(),a=this.exportLexerState(),l=[],c=!1,u=this.LA(1),g=this.LA(1),f=function(){var h=s.LA(0),p=s.errorMessageProvider.buildMismatchTokenMessage({expected:n,actual:u,previous:h,ruleName:s.getCurrRuleFullName()}),C=new Kwe.MismatchedTokenException(p,u,s.LA(0));C.resyncedTokens=(0,cs.dropRight)(l),s.SAVE_ERROR(C)};!c;)if(this.tokenMatcher(g,n)){f();return}else if(i.call(this)){f(),e.apply(this,t);return}else this.tokenMatcher(g,o)?c=!0:(g=this.SKIP_TOKEN(),this.addToResyncTokens(g,l));this.importLexerState(a)},r.prototype.shouldInRepetitionRecoveryBeTried=function(e,t,i){return!(i===!1||e===void 0||t===void 0||this.tokenMatcher(this.LA(1),e)||this.isBackTracking()||this.canPerformInRuleRecovery(e,this.getFollowsForInRuleRecovery(e,t)))},r.prototype.getFollowsForInRuleRecovery=function(e,t){var i=this.getCurrentGrammarPath(e,t),n=this.getNextPossibleTokenTypes(i);return n},r.prototype.tryInRuleRecovery=function(e,t){if(this.canRecoverWithSingleTokenInsertion(e,t)){var i=this.getTokenToInsert(e);return i}if(this.canRecoverWithSingleTokenDeletion(e)){var n=this.SKIP_TOKEN();return this.consumeToken(),n}throw new zx("sad sad panda")},r.prototype.canPerformInRuleRecovery=function(e,t){return this.canRecoverWithSingleTokenInsertion(e,t)||this.canRecoverWithSingleTokenDeletion(e)},r.prototype.canRecoverWithSingleTokenInsertion=function(e,t){var i=this;if(!this.canTokenTypeBeInsertedInRecovery(e)||(0,cs.isEmpty)(t))return!1;var n=this.LA(1),s=(0,cs.find)(t,function(o){return i.tokenMatcher(n,o)})!==void 0;return s},r.prototype.canRecoverWithSingleTokenDeletion=function(e){var t=this.tokenMatcher(this.LA(2),e);return t},r.prototype.isInCurrentRuleReSyncSet=function(e){var t=this.getCurrFollowKey(),i=this.getFollowSetFromFollowKey(t);return(0,cs.contains)(i,e)},r.prototype.findReSyncTokenType=function(){for(var e=this.flattenFollowSet(),t=this.LA(1),i=2;;){var n=t.tokenType;if((0,cs.contains)(e,n))return n;t=this.LA(i),i++}},r.prototype.getCurrFollowKey=function(){if(this.RULE_STACK.length===1)return Ki.EOF_FOLLOW_KEY;var e=this.getLastExplicitRuleShortName(),t=this.getLastExplicitRuleOccurrenceIndex(),i=this.getPreviousExplicitRuleShortName();return{ruleName:this.shortRuleNameToFullName(e),idxInCallingRule:t,inRule:this.shortRuleNameToFullName(i)}},r.prototype.buildFullFollowKeyStack=function(){var e=this,t=this.RULE_STACK,i=this.RULE_OCCURRENCE_STACK;return(0,cs.map)(t,function(n,s){return s===0?Ki.EOF_FOLLOW_KEY:{ruleName:e.shortRuleNameToFullName(n),idxInCallingRule:i[s],inRule:e.shortRuleNameToFullName(t[s-1])}})},r.prototype.flattenFollowSet=function(){var e=this,t=(0,cs.map)(this.buildFullFollowKeyStack(),function(i){return e.getFollowSetFromFollowKey(i)});return(0,cs.flatten)(t)},r.prototype.getFollowSetFromFollowKey=function(e){if(e===Ki.EOF_FOLLOW_KEY)return[Jy.EOF];var t=e.ruleName+e.idxInCallingRule+Hwe.IN+e.inRule;return this.resyncFollows[t]},r.prototype.addToResyncTokens=function(e,t){return this.tokenMatcher(e,Jy.EOF)||t.push(e),t},r.prototype.reSyncTo=function(e){for(var t=[],i=this.LA(1);this.tokenMatcher(i,e)===!1;)i=this.SKIP_TOKEN(),this.addToResyncTokens(i,t);return(0,cs.dropRight)(t)},r.prototype.attemptInRepetitionRecovery=function(e,t,i,n,s,o,a){},r.prototype.getCurrentGrammarPath=function(e,t){var i=this.getHumanReadableRuleStack(),n=(0,cs.cloneArr)(this.RULE_OCCURRENCE_STACK),s={ruleStack:i,occurrenceStack:n,lastTok:e,lastTokOccurrence:t};return s},r.prototype.getHumanReadableRuleStack=function(){var e=this;return(0,cs.map)(this.RULE_STACK,function(t){return e.shortRuleNameToFullName(t)})},r}();Ki.Recoverable=Ywe;function yJ(r,e,t,i,n,s,o){var a=this.getKeyForAutomaticLookahead(i,n),l=this.firstAfterRepMap[a];if(l===void 0){var c=this.getCurrRuleFullName(),u=this.getGAstProductions()[c],g=new s(u,n);l=g.startWalking(),this.firstAfterRepMap[a]=l}var f=l.token,h=l.occurrence,p=l.isEndOfRule;this.RULE_STACK.length===1&&p&&f===void 0&&(f=Jy.EOF,h=1),this.shouldInRepetitionRecoveryBeTried(f,h,o)&&this.tryInRepetitionRecovery(r,e,t,f)}Ki.attemptInRepetitionRecovery=yJ});var Wy=y(qt=>{"use strict";Object.defineProperty(qt,"__esModule",{value:!0});qt.getKeyForAutomaticLookahead=qt.AT_LEAST_ONE_SEP_IDX=qt.MANY_SEP_IDX=qt.AT_LEAST_ONE_IDX=qt.MANY_IDX=qt.OPTION_IDX=qt.OR_IDX=qt.BITS_FOR_ALT_IDX=qt.BITS_FOR_RULE_IDX=qt.BITS_FOR_OCCURRENCE_IDX=qt.BITS_FOR_METHOD_TYPE=void 0;qt.BITS_FOR_METHOD_TYPE=4;qt.BITS_FOR_OCCURRENCE_IDX=8;qt.BITS_FOR_RULE_IDX=12;qt.BITS_FOR_ALT_IDX=8;qt.OR_IDX=1<{"use strict";Object.defineProperty(zy,"__esModule",{value:!0});zy.LooksAhead=void 0;var Fa=eC(),$s=Gt(),wJ=Hn(),Na=Wy(),Nc=Xd(),qwe=function(){function r(){}return r.prototype.initLooksAhead=function(e){this.dynamicTokensEnabled=(0,$s.has)(e,"dynamicTokensEnabled")?e.dynamicTokensEnabled:wJ.DEFAULT_PARSER_CONFIG.dynamicTokensEnabled,this.maxLookahead=(0,$s.has)(e,"maxLookahead")?e.maxLookahead:wJ.DEFAULT_PARSER_CONFIG.maxLookahead,this.lookAheadFuncsCache=(0,$s.isES2015MapSupported)()?new Map:[],(0,$s.isES2015MapSupported)()?(this.getLaFuncFromCache=this.getLaFuncFromMap,this.setLaFuncCache=this.setLaFuncCacheUsingMap):(this.getLaFuncFromCache=this.getLaFuncFromObj,this.setLaFuncCache=this.setLaFuncUsingObj)},r.prototype.preComputeLookaheadFunctions=function(e){var t=this;(0,$s.forEach)(e,function(i){t.TRACE_INIT(i.name+" Rule Lookahead",function(){var n=(0,Nc.collectMethods)(i),s=n.alternation,o=n.repetition,a=n.option,l=n.repetitionMandatory,c=n.repetitionMandatoryWithSeparator,u=n.repetitionWithSeparator;(0,$s.forEach)(s,function(g){var f=g.idx===0?"":g.idx;t.TRACE_INIT(""+(0,Nc.getProductionDslName)(g)+f,function(){var h=(0,Fa.buildLookaheadFuncForOr)(g.idx,i,g.maxLookahead||t.maxLookahead,g.hasPredicates,t.dynamicTokensEnabled,t.lookAheadBuilderForAlternatives),p=(0,Na.getKeyForAutomaticLookahead)(t.fullRuleNameToShort[i.name],Na.OR_IDX,g.idx);t.setLaFuncCache(p,h)})}),(0,$s.forEach)(o,function(g){t.computeLookaheadFunc(i,g.idx,Na.MANY_IDX,Fa.PROD_TYPE.REPETITION,g.maxLookahead,(0,Nc.getProductionDslName)(g))}),(0,$s.forEach)(a,function(g){t.computeLookaheadFunc(i,g.idx,Na.OPTION_IDX,Fa.PROD_TYPE.OPTION,g.maxLookahead,(0,Nc.getProductionDslName)(g))}),(0,$s.forEach)(l,function(g){t.computeLookaheadFunc(i,g.idx,Na.AT_LEAST_ONE_IDX,Fa.PROD_TYPE.REPETITION_MANDATORY,g.maxLookahead,(0,Nc.getProductionDslName)(g))}),(0,$s.forEach)(c,function(g){t.computeLookaheadFunc(i,g.idx,Na.AT_LEAST_ONE_SEP_IDX,Fa.PROD_TYPE.REPETITION_MANDATORY_WITH_SEPARATOR,g.maxLookahead,(0,Nc.getProductionDslName)(g))}),(0,$s.forEach)(u,function(g){t.computeLookaheadFunc(i,g.idx,Na.MANY_SEP_IDX,Fa.PROD_TYPE.REPETITION_WITH_SEPARATOR,g.maxLookahead,(0,Nc.getProductionDslName)(g))})})})},r.prototype.computeLookaheadFunc=function(e,t,i,n,s,o){var a=this;this.TRACE_INIT(""+o+(t===0?"":t),function(){var l=(0,Fa.buildLookaheadFuncForOptionalProd)(t,e,s||a.maxLookahead,a.dynamicTokensEnabled,n,a.lookAheadBuilderForOptional),c=(0,Na.getKeyForAutomaticLookahead)(a.fullRuleNameToShort[e.name],i,t);a.setLaFuncCache(c,l)})},r.prototype.lookAheadBuilderForOptional=function(e,t,i){return(0,Fa.buildSingleAlternativeLookaheadFunction)(e,t,i)},r.prototype.lookAheadBuilderForAlternatives=function(e,t,i,n){return(0,Fa.buildAlternativesLookAheadFunc)(e,t,i,n)},r.prototype.getKeyForAutomaticLookahead=function(e,t){var i=this.getLastExplicitRuleShortName();return(0,Na.getKeyForAutomaticLookahead)(i,e,t)},r.prototype.getLaFuncFromCache=function(e){},r.prototype.getLaFuncFromMap=function(e){return this.lookAheadFuncsCache.get(e)},r.prototype.getLaFuncFromObj=function(e){return this.lookAheadFuncsCache[e]},r.prototype.setLaFuncCache=function(e,t){},r.prototype.setLaFuncCacheUsingMap=function(e,t){this.lookAheadFuncsCache.set(e,t)},r.prototype.setLaFuncUsingObj=function(e,t){this.lookAheadFuncsCache[e]=t},r}();zy.LooksAhead=qwe});var bJ=y(To=>{"use strict";Object.defineProperty(To,"__esModule",{value:!0});To.addNoneTerminalToCst=To.addTerminalToCst=To.setNodeLocationFull=To.setNodeLocationOnlyOffset=void 0;function Jwe(r,e){isNaN(r.startOffset)===!0?(r.startOffset=e.startOffset,r.endOffset=e.endOffset):r.endOffset{"use strict";Object.defineProperty(jA,"__esModule",{value:!0});jA.defineNameProp=jA.functionName=jA.classNameFromInstance=void 0;var Xwe=Gt();function _we(r){return SJ(r.constructor)}jA.classNameFromInstance=_we;var QJ="name";function SJ(r){var e=r.name;return e||"anonymous"}jA.functionName=SJ;function Zwe(r,e){var t=Object.getOwnPropertyDescriptor(r,QJ);return(0,Xwe.isUndefined)(t)||t.configurable?(Object.defineProperty(r,QJ,{enumerable:!1,configurable:!0,writable:!1,value:e}),!0):!1}jA.defineNameProp=Zwe});var kJ=y(vi=>{"use strict";Object.defineProperty(vi,"__esModule",{value:!0});vi.validateRedundantMethods=vi.validateMissingCstMethods=vi.validateVisitor=vi.CstVisitorDefinitionError=vi.createBaseVisitorConstructorWithDefaults=vi.createBaseSemanticVisitorConstructor=vi.defaultVisit=void 0;var us=Gt(),iC=Xx();function vJ(r,e){for(var t=(0,us.keys)(r),i=t.length,n=0;n: - `+(""+s.join(` - -`).replace(/\n/g,` - `)))}}};return t.prototype=i,t.prototype.constructor=t,t._RULE_NAMES=e,t}vi.createBaseSemanticVisitorConstructor=$we;function eBe(r,e,t){var i=function(){};(0,iC.defineNameProp)(i,r+"BaseSemanticsWithDefaults");var n=Object.create(t.prototype);return(0,us.forEach)(e,function(s){n[s]=vJ}),i.prototype=n,i.prototype.constructor=i,i}vi.createBaseVisitorConstructorWithDefaults=eBe;var _x;(function(r){r[r.REDUNDANT_METHOD=0]="REDUNDANT_METHOD",r[r.MISSING_METHOD=1]="MISSING_METHOD"})(_x=vi.CstVisitorDefinitionError||(vi.CstVisitorDefinitionError={}));function xJ(r,e){var t=PJ(r,e),i=DJ(r,e);return t.concat(i)}vi.validateVisitor=xJ;function PJ(r,e){var t=(0,us.map)(e,function(i){if(!(0,us.isFunction)(r[i]))return{msg:"Missing visitor method: <"+i+"> on "+(0,iC.functionName)(r.constructor)+" CST Visitor.",type:_x.MISSING_METHOD,methodName:i}});return(0,us.compact)(t)}vi.validateMissingCstMethods=PJ;var tBe=["constructor","visit","validateVisitor"];function DJ(r,e){var t=[];for(var i in r)(0,us.isFunction)(r[i])&&!(0,us.contains)(tBe,i)&&!(0,us.contains)(e,i)&&t.push({msg:"Redundant visitor method: <"+i+"> on "+(0,iC.functionName)(r.constructor)+` CST Visitor -There is no Grammar Rule corresponding to this method's name. -`,type:_x.REDUNDANT_METHOD,methodName:i});return t}vi.validateRedundantMethods=DJ});var FJ=y(Vy=>{"use strict";Object.defineProperty(Vy,"__esModule",{value:!0});Vy.TreeBuilder=void 0;var wf=bJ(),ti=Gt(),RJ=kJ(),rBe=Hn(),iBe=function(){function r(){}return r.prototype.initTreeBuilder=function(e){if(this.CST_STACK=[],this.outputCst=e.outputCst,this.nodeLocationTracking=(0,ti.has)(e,"nodeLocationTracking")?e.nodeLocationTracking:rBe.DEFAULT_PARSER_CONFIG.nodeLocationTracking,!this.outputCst)this.cstInvocationStateUpdate=ti.NOOP,this.cstFinallyStateUpdate=ti.NOOP,this.cstPostTerminal=ti.NOOP,this.cstPostNonTerminal=ti.NOOP,this.cstPostRule=ti.NOOP;else if(/full/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=wf.setNodeLocationFull,this.setNodeLocationFromNode=wf.setNodeLocationFull,this.cstPostRule=ti.NOOP,this.setInitialNodeLocation=this.setInitialNodeLocationFullRecovery):(this.setNodeLocationFromToken=ti.NOOP,this.setNodeLocationFromNode=ti.NOOP,this.cstPostRule=this.cstPostRuleFull,this.setInitialNodeLocation=this.setInitialNodeLocationFullRegular);else if(/onlyOffset/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=wf.setNodeLocationOnlyOffset,this.setNodeLocationFromNode=wf.setNodeLocationOnlyOffset,this.cstPostRule=ti.NOOP,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRecovery):(this.setNodeLocationFromToken=ti.NOOP,this.setNodeLocationFromNode=ti.NOOP,this.cstPostRule=this.cstPostRuleOnlyOffset,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRegular);else if(/none/i.test(this.nodeLocationTracking))this.setNodeLocationFromToken=ti.NOOP,this.setNodeLocationFromNode=ti.NOOP,this.cstPostRule=ti.NOOP,this.setInitialNodeLocation=ti.NOOP;else throw Error('Invalid config option: "'+e.nodeLocationTracking+'"')},r.prototype.setInitialNodeLocationOnlyOffsetRecovery=function(e){e.location={startOffset:NaN,endOffset:NaN}},r.prototype.setInitialNodeLocationOnlyOffsetRegular=function(e){e.location={startOffset:this.LA(1).startOffset,endOffset:NaN}},r.prototype.setInitialNodeLocationFullRecovery=function(e){e.location={startOffset:NaN,startLine:NaN,startColumn:NaN,endOffset:NaN,endLine:NaN,endColumn:NaN}},r.prototype.setInitialNodeLocationFullRegular=function(e){var t=this.LA(1);e.location={startOffset:t.startOffset,startLine:t.startLine,startColumn:t.startColumn,endOffset:NaN,endLine:NaN,endColumn:NaN}},r.prototype.cstInvocationStateUpdate=function(e,t){var i={name:e,children:{}};this.setInitialNodeLocation(i),this.CST_STACK.push(i)},r.prototype.cstFinallyStateUpdate=function(){this.CST_STACK.pop()},r.prototype.cstPostRuleFull=function(e){var t=this.LA(0),i=e.location;i.startOffset<=t.startOffset?(i.endOffset=t.endOffset,i.endLine=t.endLine,i.endColumn=t.endColumn):(i.startOffset=NaN,i.startLine=NaN,i.startColumn=NaN)},r.prototype.cstPostRuleOnlyOffset=function(e){var t=this.LA(0),i=e.location;i.startOffset<=t.startOffset?i.endOffset=t.endOffset:i.startOffset=NaN},r.prototype.cstPostTerminal=function(e,t){var i=this.CST_STACK[this.CST_STACK.length-1];(0,wf.addTerminalToCst)(i,t,e),this.setNodeLocationFromToken(i.location,t)},r.prototype.cstPostNonTerminal=function(e,t){var i=this.CST_STACK[this.CST_STACK.length-1];(0,wf.addNoneTerminalToCst)(i,t,e),this.setNodeLocationFromNode(i.location,e.location)},r.prototype.getBaseCstVisitorConstructor=function(){if((0,ti.isUndefined)(this.baseCstVisitorConstructor)){var e=(0,RJ.createBaseSemanticVisitorConstructor)(this.className,(0,ti.keys)(this.gastProductionsCache));return this.baseCstVisitorConstructor=e,e}return this.baseCstVisitorConstructor},r.prototype.getBaseCstVisitorConstructorWithDefaults=function(){if((0,ti.isUndefined)(this.baseCstVisitorWithDefaultsConstructor)){var e=(0,RJ.createBaseVisitorConstructorWithDefaults)(this.className,(0,ti.keys)(this.gastProductionsCache),this.getBaseCstVisitorConstructor());return this.baseCstVisitorWithDefaultsConstructor=e,e}return this.baseCstVisitorWithDefaultsConstructor},r.prototype.getLastExplicitRuleShortName=function(){var e=this.RULE_STACK;return e[e.length-1]},r.prototype.getPreviousExplicitRuleShortName=function(){var e=this.RULE_STACK;return e[e.length-2]},r.prototype.getLastExplicitRuleOccurrenceIndex=function(){var e=this.RULE_OCCURRENCE_STACK;return e[e.length-1]},r}();Vy.TreeBuilder=iBe});var TJ=y(Xy=>{"use strict";Object.defineProperty(Xy,"__esModule",{value:!0});Xy.LexerAdapter=void 0;var NJ=Hn(),nBe=function(){function r(){}return r.prototype.initLexerAdapter=function(){this.tokVector=[],this.tokVectorLength=0,this.currIdx=-1},Object.defineProperty(r.prototype,"input",{get:function(){return this.tokVector},set:function(e){if(this.selfAnalysisDone!==!0)throw Error("Missing invocation at the end of the Parser's constructor.");this.reset(),this.tokVector=e,this.tokVectorLength=e.length},enumerable:!1,configurable:!0}),r.prototype.SKIP_TOKEN=function(){return this.currIdx<=this.tokVector.length-2?(this.consumeToken(),this.LA(1)):NJ.END_OF_FILE},r.prototype.LA=function(e){var t=this.currIdx+e;return t<0||this.tokVectorLength<=t?NJ.END_OF_FILE:this.tokVector[t]},r.prototype.consumeToken=function(){this.currIdx++},r.prototype.exportLexerState=function(){return this.currIdx},r.prototype.importLexerState=function(e){this.currIdx=e},r.prototype.resetLexerState=function(){this.currIdx=-1},r.prototype.moveToTerminatedState=function(){this.currIdx=this.tokVector.length-1},r.prototype.getLexerPosition=function(){return this.exportLexerState()},r}();Xy.LexerAdapter=nBe});var OJ=y(_y=>{"use strict";Object.defineProperty(_y,"__esModule",{value:!0});_y.RecognizerApi=void 0;var LJ=Gt(),sBe=yf(),Zx=Hn(),oBe=_d(),aBe=Jx(),ABe=Cn(),lBe=function(){function r(){}return r.prototype.ACTION=function(e){return e.call(this)},r.prototype.consume=function(e,t,i){return this.consumeInternal(t,e,i)},r.prototype.subrule=function(e,t,i){return this.subruleInternal(t,e,i)},r.prototype.option=function(e,t){return this.optionInternal(t,e)},r.prototype.or=function(e,t){return this.orInternal(t,e)},r.prototype.many=function(e,t){return this.manyInternal(e,t)},r.prototype.atLeastOne=function(e,t){return this.atLeastOneInternal(e,t)},r.prototype.CONSUME=function(e,t){return this.consumeInternal(e,0,t)},r.prototype.CONSUME1=function(e,t){return this.consumeInternal(e,1,t)},r.prototype.CONSUME2=function(e,t){return this.consumeInternal(e,2,t)},r.prototype.CONSUME3=function(e,t){return this.consumeInternal(e,3,t)},r.prototype.CONSUME4=function(e,t){return this.consumeInternal(e,4,t)},r.prototype.CONSUME5=function(e,t){return this.consumeInternal(e,5,t)},r.prototype.CONSUME6=function(e,t){return this.consumeInternal(e,6,t)},r.prototype.CONSUME7=function(e,t){return this.consumeInternal(e,7,t)},r.prototype.CONSUME8=function(e,t){return this.consumeInternal(e,8,t)},r.prototype.CONSUME9=function(e,t){return this.consumeInternal(e,9,t)},r.prototype.SUBRULE=function(e,t){return this.subruleInternal(e,0,t)},r.prototype.SUBRULE1=function(e,t){return this.subruleInternal(e,1,t)},r.prototype.SUBRULE2=function(e,t){return this.subruleInternal(e,2,t)},r.prototype.SUBRULE3=function(e,t){return this.subruleInternal(e,3,t)},r.prototype.SUBRULE4=function(e,t){return this.subruleInternal(e,4,t)},r.prototype.SUBRULE5=function(e,t){return this.subruleInternal(e,5,t)},r.prototype.SUBRULE6=function(e,t){return this.subruleInternal(e,6,t)},r.prototype.SUBRULE7=function(e,t){return this.subruleInternal(e,7,t)},r.prototype.SUBRULE8=function(e,t){return this.subruleInternal(e,8,t)},r.prototype.SUBRULE9=function(e,t){return this.subruleInternal(e,9,t)},r.prototype.OPTION=function(e){return this.optionInternal(e,0)},r.prototype.OPTION1=function(e){return this.optionInternal(e,1)},r.prototype.OPTION2=function(e){return this.optionInternal(e,2)},r.prototype.OPTION3=function(e){return this.optionInternal(e,3)},r.prototype.OPTION4=function(e){return this.optionInternal(e,4)},r.prototype.OPTION5=function(e){return this.optionInternal(e,5)},r.prototype.OPTION6=function(e){return this.optionInternal(e,6)},r.prototype.OPTION7=function(e){return this.optionInternal(e,7)},r.prototype.OPTION8=function(e){return this.optionInternal(e,8)},r.prototype.OPTION9=function(e){return this.optionInternal(e,9)},r.prototype.OR=function(e){return this.orInternal(e,0)},r.prototype.OR1=function(e){return this.orInternal(e,1)},r.prototype.OR2=function(e){return this.orInternal(e,2)},r.prototype.OR3=function(e){return this.orInternal(e,3)},r.prototype.OR4=function(e){return this.orInternal(e,4)},r.prototype.OR5=function(e){return this.orInternal(e,5)},r.prototype.OR6=function(e){return this.orInternal(e,6)},r.prototype.OR7=function(e){return this.orInternal(e,7)},r.prototype.OR8=function(e){return this.orInternal(e,8)},r.prototype.OR9=function(e){return this.orInternal(e,9)},r.prototype.MANY=function(e){this.manyInternal(0,e)},r.prototype.MANY1=function(e){this.manyInternal(1,e)},r.prototype.MANY2=function(e){this.manyInternal(2,e)},r.prototype.MANY3=function(e){this.manyInternal(3,e)},r.prototype.MANY4=function(e){this.manyInternal(4,e)},r.prototype.MANY5=function(e){this.manyInternal(5,e)},r.prototype.MANY6=function(e){this.manyInternal(6,e)},r.prototype.MANY7=function(e){this.manyInternal(7,e)},r.prototype.MANY8=function(e){this.manyInternal(8,e)},r.prototype.MANY9=function(e){this.manyInternal(9,e)},r.prototype.MANY_SEP=function(e){this.manySepFirstInternal(0,e)},r.prototype.MANY_SEP1=function(e){this.manySepFirstInternal(1,e)},r.prototype.MANY_SEP2=function(e){this.manySepFirstInternal(2,e)},r.prototype.MANY_SEP3=function(e){this.manySepFirstInternal(3,e)},r.prototype.MANY_SEP4=function(e){this.manySepFirstInternal(4,e)},r.prototype.MANY_SEP5=function(e){this.manySepFirstInternal(5,e)},r.prototype.MANY_SEP6=function(e){this.manySepFirstInternal(6,e)},r.prototype.MANY_SEP7=function(e){this.manySepFirstInternal(7,e)},r.prototype.MANY_SEP8=function(e){this.manySepFirstInternal(8,e)},r.prototype.MANY_SEP9=function(e){this.manySepFirstInternal(9,e)},r.prototype.AT_LEAST_ONE=function(e){this.atLeastOneInternal(0,e)},r.prototype.AT_LEAST_ONE1=function(e){return this.atLeastOneInternal(1,e)},r.prototype.AT_LEAST_ONE2=function(e){this.atLeastOneInternal(2,e)},r.prototype.AT_LEAST_ONE3=function(e){this.atLeastOneInternal(3,e)},r.prototype.AT_LEAST_ONE4=function(e){this.atLeastOneInternal(4,e)},r.prototype.AT_LEAST_ONE5=function(e){this.atLeastOneInternal(5,e)},r.prototype.AT_LEAST_ONE6=function(e){this.atLeastOneInternal(6,e)},r.prototype.AT_LEAST_ONE7=function(e){this.atLeastOneInternal(7,e)},r.prototype.AT_LEAST_ONE8=function(e){this.atLeastOneInternal(8,e)},r.prototype.AT_LEAST_ONE9=function(e){this.atLeastOneInternal(9,e)},r.prototype.AT_LEAST_ONE_SEP=function(e){this.atLeastOneSepFirstInternal(0,e)},r.prototype.AT_LEAST_ONE_SEP1=function(e){this.atLeastOneSepFirstInternal(1,e)},r.prototype.AT_LEAST_ONE_SEP2=function(e){this.atLeastOneSepFirstInternal(2,e)},r.prototype.AT_LEAST_ONE_SEP3=function(e){this.atLeastOneSepFirstInternal(3,e)},r.prototype.AT_LEAST_ONE_SEP4=function(e){this.atLeastOneSepFirstInternal(4,e)},r.prototype.AT_LEAST_ONE_SEP5=function(e){this.atLeastOneSepFirstInternal(5,e)},r.prototype.AT_LEAST_ONE_SEP6=function(e){this.atLeastOneSepFirstInternal(6,e)},r.prototype.AT_LEAST_ONE_SEP7=function(e){this.atLeastOneSepFirstInternal(7,e)},r.prototype.AT_LEAST_ONE_SEP8=function(e){this.atLeastOneSepFirstInternal(8,e)},r.prototype.AT_LEAST_ONE_SEP9=function(e){this.atLeastOneSepFirstInternal(9,e)},r.prototype.RULE=function(e,t,i){if(i===void 0&&(i=Zx.DEFAULT_RULE_CONFIG),(0,LJ.contains)(this.definedRulesNames,e)){var n=oBe.defaultGrammarValidatorErrorProvider.buildDuplicateRuleNameError({topLevelRule:e,grammarName:this.className}),s={message:n,type:Zx.ParserDefinitionErrorType.DUPLICATE_RULE_NAME,ruleName:e};this.definitionErrors.push(s)}this.definedRulesNames.push(e);var o=this.defineRule(e,t,i);return this[e]=o,o},r.prototype.OVERRIDE_RULE=function(e,t,i){i===void 0&&(i=Zx.DEFAULT_RULE_CONFIG);var n=[];n=n.concat((0,aBe.validateRuleIsOverridden)(e,this.definedRulesNames,this.className)),this.definitionErrors=this.definitionErrors.concat(n);var s=this.defineRule(e,t,i);return this[e]=s,s},r.prototype.BACKTRACK=function(e,t){return function(){this.isBackTrackingStack.push(1);var i=this.saveRecogState();try{return e.apply(this,t),!0}catch(n){if((0,sBe.isRecognitionException)(n))return!1;throw n}finally{this.reloadRecogState(i),this.isBackTrackingStack.pop()}}},r.prototype.getGAstProductions=function(){return this.gastProductionsCache},r.prototype.getSerializedGastProductions=function(){return(0,ABe.serializeGrammar)((0,LJ.values)(this.gastProductionsCache))},r}();_y.RecognizerApi=lBe});var HJ=y($y=>{"use strict";Object.defineProperty($y,"__esModule",{value:!0});$y.RecognizerEngine=void 0;var kr=Gt(),Gn=Wy(),Zy=yf(),MJ=eC(),Bf=$d(),UJ=Hn(),cBe=Vx(),KJ=HA(),nC=df(),uBe=Xx(),gBe=function(){function r(){}return r.prototype.initRecognizerEngine=function(e,t){if(this.className=(0,uBe.classNameFromInstance)(this),this.shortRuleNameToFull={},this.fullRuleNameToShort={},this.ruleShortNameIdx=256,this.tokenMatcher=nC.tokenStructuredMatcherNoCategories,this.definedRulesNames=[],this.tokensMap={},this.isBackTrackingStack=[],this.RULE_STACK=[],this.RULE_OCCURRENCE_STACK=[],this.gastProductionsCache={},(0,kr.has)(t,"serializedGrammar"))throw Error(`The Parser's configuration can no longer contain a property. - See: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_6-0-0 - For Further details.`);if((0,kr.isArray)(e)){if((0,kr.isEmpty)(e))throw Error(`A Token Vocabulary cannot be empty. - Note that the first argument for the parser constructor - is no longer a Token vector (since v4.0).`);if(typeof e[0].startOffset=="number")throw Error(`The Parser constructor no longer accepts a token vector as the first argument. - See: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_4-0-0 - For Further details.`)}if((0,kr.isArray)(e))this.tokensMap=(0,kr.reduce)(e,function(o,a){return o[a.name]=a,o},{});else if((0,kr.has)(e,"modes")&&(0,kr.every)((0,kr.flatten)((0,kr.values)(e.modes)),nC.isTokenType)){var i=(0,kr.flatten)((0,kr.values)(e.modes)),n=(0,kr.uniq)(i);this.tokensMap=(0,kr.reduce)(n,function(o,a){return o[a.name]=a,o},{})}else if((0,kr.isObject)(e))this.tokensMap=(0,kr.cloneObj)(e);else throw new Error(" argument must be An Array of Token constructors, A dictionary of Token constructors or an IMultiModeLexerDefinition");this.tokensMap.EOF=KJ.EOF;var s=(0,kr.every)((0,kr.values)(e),function(o){return(0,kr.isEmpty)(o.categoryMatches)});this.tokenMatcher=s?nC.tokenStructuredMatcherNoCategories:nC.tokenStructuredMatcher,(0,nC.augmentTokenTypes)((0,kr.values)(this.tokensMap))},r.prototype.defineRule=function(e,t,i){if(this.selfAnalysisDone)throw Error("Grammar rule <"+e+`> may not be defined after the 'performSelfAnalysis' method has been called' -Make sure that all grammar rule definitions are done before 'performSelfAnalysis' is called.`);var n=(0,kr.has)(i,"resyncEnabled")?i.resyncEnabled:UJ.DEFAULT_RULE_CONFIG.resyncEnabled,s=(0,kr.has)(i,"recoveryValueFunc")?i.recoveryValueFunc:UJ.DEFAULT_RULE_CONFIG.recoveryValueFunc,o=this.ruleShortNameIdx<t},r.prototype.orInternal=function(e,t){var i=this.getKeyForAutomaticLookahead(Gn.OR_IDX,t),n=(0,kr.isArray)(e)?e:e.DEF,s=this.getLaFuncFromCache(i),o=s.call(this,n);if(o!==void 0){var a=n[o];return a.ALT.call(this)}this.raiseNoAltException(t,e.ERR_MSG)},r.prototype.ruleFinallyStateUpdate=function(){if(this.RULE_STACK.pop(),this.RULE_OCCURRENCE_STACK.pop(),this.cstFinallyStateUpdate(),this.RULE_STACK.length===0&&this.isAtEndOfInput()===!1){var e=this.LA(1),t=this.errorMessageProvider.buildNotAllInputParsedMessage({firstRedundant:e,ruleName:this.getCurrRuleFullName()});this.SAVE_ERROR(new Zy.NotAllInputParsedException(t,e))}},r.prototype.subruleInternal=function(e,t,i){var n;try{var s=i!==void 0?i.ARGS:void 0;return n=e.call(this,t,s),this.cstPostNonTerminal(n,i!==void 0&&i.LABEL!==void 0?i.LABEL:e.ruleName),n}catch(o){this.subruleInternalError(o,i,e.ruleName)}},r.prototype.subruleInternalError=function(e,t,i){throw(0,Zy.isRecognitionException)(e)&&e.partialCstResult!==void 0&&(this.cstPostNonTerminal(e.partialCstResult,t!==void 0&&t.LABEL!==void 0?t.LABEL:i),delete e.partialCstResult),e},r.prototype.consumeInternal=function(e,t,i){var n;try{var s=this.LA(1);this.tokenMatcher(s,e)===!0?(this.consumeToken(),n=s):this.consumeInternalError(e,s,i)}catch(o){n=this.consumeInternalRecovery(e,t,o)}return this.cstPostTerminal(i!==void 0&&i.LABEL!==void 0?i.LABEL:e.name,n),n},r.prototype.consumeInternalError=function(e,t,i){var n,s=this.LA(0);throw i!==void 0&&i.ERR_MSG?n=i.ERR_MSG:n=this.errorMessageProvider.buildMismatchTokenMessage({expected:e,actual:t,previous:s,ruleName:this.getCurrRuleFullName()}),this.SAVE_ERROR(new Zy.MismatchedTokenException(n,t,s))},r.prototype.consumeInternalRecovery=function(e,t,i){if(this.recoveryEnabled&&i.name==="MismatchedTokenException"&&!this.isBackTracking()){var n=this.getFollowsForInRuleRecovery(e,t);try{return this.tryInRuleRecovery(e,n)}catch(s){throw s.name===cBe.IN_RULE_RECOVERY_EXCEPTION?i:s}}else throw i},r.prototype.saveRecogState=function(){var e=this.errors,t=(0,kr.cloneArr)(this.RULE_STACK);return{errors:e,lexerState:this.exportLexerState(),RULE_STACK:t,CST_STACK:this.CST_STACK}},r.prototype.reloadRecogState=function(e){this.errors=e.errors,this.importLexerState(e.lexerState),this.RULE_STACK=e.RULE_STACK},r.prototype.ruleInvocationStateUpdate=function(e,t,i){this.RULE_OCCURRENCE_STACK.push(i),this.RULE_STACK.push(e),this.cstInvocationStateUpdate(t,e)},r.prototype.isBackTracking=function(){return this.isBackTrackingStack.length!==0},r.prototype.getCurrRuleFullName=function(){var e=this.getLastExplicitRuleShortName();return this.shortRuleNameToFull[e]},r.prototype.shortRuleNameToFullName=function(e){return this.shortRuleNameToFull[e]},r.prototype.isAtEndOfInput=function(){return this.tokenMatcher(this.LA(1),KJ.EOF)},r.prototype.reset=function(){this.resetLexerState(),this.isBackTrackingStack=[],this.errors=[],this.RULE_STACK=[],this.CST_STACK=[],this.RULE_OCCURRENCE_STACK=[]},r}();$y.RecognizerEngine=gBe});var YJ=y(ew=>{"use strict";Object.defineProperty(ew,"__esModule",{value:!0});ew.ErrorHandler=void 0;var $x=yf(),eP=Gt(),GJ=eC(),fBe=Hn(),hBe=function(){function r(){}return r.prototype.initErrorHandler=function(e){this._errors=[],this.errorMessageProvider=(0,eP.has)(e,"errorMessageProvider")?e.errorMessageProvider:fBe.DEFAULT_PARSER_CONFIG.errorMessageProvider},r.prototype.SAVE_ERROR=function(e){if((0,$x.isRecognitionException)(e))return e.context={ruleStack:this.getHumanReadableRuleStack(),ruleOccurrenceStack:(0,eP.cloneArr)(this.RULE_OCCURRENCE_STACK)},this._errors.push(e),e;throw Error("Trying to save an Error which is not a RecognitionException")},Object.defineProperty(r.prototype,"errors",{get:function(){return(0,eP.cloneArr)(this._errors)},set:function(e){this._errors=e},enumerable:!1,configurable:!0}),r.prototype.raiseEarlyExitException=function(e,t,i){for(var n=this.getCurrRuleFullName(),s=this.getGAstProductions()[n],o=(0,GJ.getLookaheadPathsForOptionalProd)(e,s,t,this.maxLookahead),a=o[0],l=[],c=1;c<=this.maxLookahead;c++)l.push(this.LA(c));var u=this.errorMessageProvider.buildEarlyExitMessage({expectedIterationPaths:a,actual:l,previous:this.LA(0),customUserDescription:i,ruleName:n});throw this.SAVE_ERROR(new $x.EarlyExitException(u,this.LA(1),this.LA(0)))},r.prototype.raiseNoAltException=function(e,t){for(var i=this.getCurrRuleFullName(),n=this.getGAstProductions()[i],s=(0,GJ.getLookaheadPathsForOr)(e,n,this.maxLookahead),o=[],a=1;a<=this.maxLookahead;a++)o.push(this.LA(a));var l=this.LA(0),c=this.errorMessageProvider.buildNoViableAltMessage({expectedPathsPerAlt:s,actual:o,previous:l,customUserDescription:t,ruleName:this.getCurrRuleFullName()});throw this.SAVE_ERROR(new $x.NoViableAltException(c,this.LA(1),l))},r}();ew.ErrorHandler=hBe});var JJ=y(tw=>{"use strict";Object.defineProperty(tw,"__esModule",{value:!0});tw.ContentAssist=void 0;var jJ=$d(),qJ=Gt(),pBe=function(){function r(){}return r.prototype.initContentAssist=function(){},r.prototype.computeContentAssist=function(e,t){var i=this.gastProductionsCache[e];if((0,qJ.isUndefined)(i))throw Error("Rule ->"+e+"<- does not exist in this grammar.");return(0,jJ.nextPossibleTokensAfter)([i],t,this.tokenMatcher,this.maxLookahead)},r.prototype.getNextPossibleTokenTypes=function(e){var t=(0,qJ.first)(e.ruleStack),i=this.getGAstProductions(),n=i[t],s=new jJ.NextAfterTokenWalker(n,e).startWalking();return s},r}();tw.ContentAssist=pBe});var e3=y(nw=>{"use strict";Object.defineProperty(nw,"__esModule",{value:!0});nw.GastRecorder=void 0;var In=Gt(),Lo=Cn(),dBe=Jd(),XJ=df(),_J=HA(),CBe=Hn(),mBe=Wy(),iw={description:"This Object indicates the Parser is during Recording Phase"};Object.freeze(iw);var WJ=!0,zJ=Math.pow(2,mBe.BITS_FOR_OCCURRENCE_IDX)-1,ZJ=(0,_J.createToken)({name:"RECORDING_PHASE_TOKEN",pattern:dBe.Lexer.NA});(0,XJ.augmentTokenTypes)([ZJ]);var $J=(0,_J.createTokenInstance)(ZJ,`This IToken indicates the Parser is in Recording Phase - See: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details`,-1,-1,-1,-1,-1,-1);Object.freeze($J);var EBe={name:`This CSTNode indicates the Parser is in Recording Phase - See: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details`,children:{}},IBe=function(){function r(){}return r.prototype.initGastRecorder=function(e){this.recordingProdStack=[],this.RECORDING_PHASE=!1},r.prototype.enableRecording=function(){var e=this;this.RECORDING_PHASE=!0,this.TRACE_INIT("Enable Recording",function(){for(var t=function(n){var s=n>0?n:"";e["CONSUME"+s]=function(o,a){return this.consumeInternalRecord(o,n,a)},e["SUBRULE"+s]=function(o,a){return this.subruleInternalRecord(o,n,a)},e["OPTION"+s]=function(o){return this.optionInternalRecord(o,n)},e["OR"+s]=function(o){return this.orInternalRecord(o,n)},e["MANY"+s]=function(o){this.manyInternalRecord(n,o)},e["MANY_SEP"+s]=function(o){this.manySepFirstInternalRecord(n,o)},e["AT_LEAST_ONE"+s]=function(o){this.atLeastOneInternalRecord(n,o)},e["AT_LEAST_ONE_SEP"+s]=function(o){this.atLeastOneSepFirstInternalRecord(n,o)}},i=0;i<10;i++)t(i);e.consume=function(n,s,o){return this.consumeInternalRecord(s,n,o)},e.subrule=function(n,s,o){return this.subruleInternalRecord(s,n,o)},e.option=function(n,s){return this.optionInternalRecord(s,n)},e.or=function(n,s){return this.orInternalRecord(s,n)},e.many=function(n,s){this.manyInternalRecord(n,s)},e.atLeastOne=function(n,s){this.atLeastOneInternalRecord(n,s)},e.ACTION=e.ACTION_RECORD,e.BACKTRACK=e.BACKTRACK_RECORD,e.LA=e.LA_RECORD})},r.prototype.disableRecording=function(){var e=this;this.RECORDING_PHASE=!1,this.TRACE_INIT("Deleting Recording methods",function(){for(var t=0;t<10;t++){var i=t>0?t:"";delete e["CONSUME"+i],delete e["SUBRULE"+i],delete e["OPTION"+i],delete e["OR"+i],delete e["MANY"+i],delete e["MANY_SEP"+i],delete e["AT_LEAST_ONE"+i],delete e["AT_LEAST_ONE_SEP"+i]}delete e.consume,delete e.subrule,delete e.option,delete e.or,delete e.many,delete e.atLeastOne,delete e.ACTION,delete e.BACKTRACK,delete e.LA})},r.prototype.ACTION_RECORD=function(e){},r.prototype.BACKTRACK_RECORD=function(e,t){return function(){return!0}},r.prototype.LA_RECORD=function(e){return CBe.END_OF_FILE},r.prototype.topLevelRuleRecord=function(e,t){try{var i=new Lo.Rule({definition:[],name:e});return i.name=e,this.recordingProdStack.push(i),t.call(this),this.recordingProdStack.pop(),i}catch(n){if(n.KNOWN_RECORDER_ERROR!==!0)try{n.message=n.message+` - This error was thrown during the "grammar recording phase" For more info see: - https://chevrotain.io/docs/guide/internals.html#grammar-recording`}catch{throw n}throw n}},r.prototype.optionInternalRecord=function(e,t){return sC.call(this,Lo.Option,e,t)},r.prototype.atLeastOneInternalRecord=function(e,t){sC.call(this,Lo.RepetitionMandatory,t,e)},r.prototype.atLeastOneSepFirstInternalRecord=function(e,t){sC.call(this,Lo.RepetitionMandatoryWithSeparator,t,e,WJ)},r.prototype.manyInternalRecord=function(e,t){sC.call(this,Lo.Repetition,t,e)},r.prototype.manySepFirstInternalRecord=function(e,t){sC.call(this,Lo.RepetitionWithSeparator,t,e,WJ)},r.prototype.orInternalRecord=function(e,t){return yBe.call(this,e,t)},r.prototype.subruleInternalRecord=function(e,t,i){if(rw(t),!e||(0,In.has)(e,"ruleName")===!1){var n=new Error(" argument is invalid"+(" expecting a Parser method reference but got: <"+JSON.stringify(e)+">")+(` - inside top level rule: <`+this.recordingProdStack[0].name+">"));throw n.KNOWN_RECORDER_ERROR=!0,n}var s=(0,In.peek)(this.recordingProdStack),o=e.ruleName,a=new Lo.NonTerminal({idx:t,nonTerminalName:o,label:i==null?void 0:i.LABEL,referencedRule:void 0});return s.definition.push(a),this.outputCst?EBe:iw},r.prototype.consumeInternalRecord=function(e,t,i){if(rw(t),!(0,XJ.hasShortKeyProperty)(e)){var n=new Error(" argument is invalid"+(" expecting a TokenType reference but got: <"+JSON.stringify(e)+">")+(` - inside top level rule: <`+this.recordingProdStack[0].name+">"));throw n.KNOWN_RECORDER_ERROR=!0,n}var s=(0,In.peek)(this.recordingProdStack),o=new Lo.Terminal({idx:t,terminalType:e,label:i==null?void 0:i.LABEL});return s.definition.push(o),$J},r}();nw.GastRecorder=IBe;function sC(r,e,t,i){i===void 0&&(i=!1),rw(t);var n=(0,In.peek)(this.recordingProdStack),s=(0,In.isFunction)(e)?e:e.DEF,o=new r({definition:[],idx:t});return i&&(o.separator=e.SEP),(0,In.has)(e,"MAX_LOOKAHEAD")&&(o.maxLookahead=e.MAX_LOOKAHEAD),this.recordingProdStack.push(o),s.call(this),n.definition.push(o),this.recordingProdStack.pop(),iw}function yBe(r,e){var t=this;rw(e);var i=(0,In.peek)(this.recordingProdStack),n=(0,In.isArray)(r)===!1,s=n===!1?r:r.DEF,o=new Lo.Alternation({definition:[],idx:e,ignoreAmbiguities:n&&r.IGNORE_AMBIGUITIES===!0});(0,In.has)(r,"MAX_LOOKAHEAD")&&(o.maxLookahead=r.MAX_LOOKAHEAD);var a=(0,In.some)(s,function(l){return(0,In.isFunction)(l.GATE)});return o.hasPredicates=a,i.definition.push(o),(0,In.forEach)(s,function(l){var c=new Lo.Alternative({definition:[]});o.definition.push(c),(0,In.has)(l,"IGNORE_AMBIGUITIES")?c.ignoreAmbiguities=l.IGNORE_AMBIGUITIES:(0,In.has)(l,"GATE")&&(c.ignoreAmbiguities=!0),t.recordingProdStack.push(c),l.ALT.call(t),t.recordingProdStack.pop()}),iw}function VJ(r){return r===0?"":""+r}function rw(r){if(r<0||r>zJ){var e=new Error("Invalid DSL Method idx value: <"+r+`> - `+("Idx value must be a none negative value smaller than "+(zJ+1)));throw e.KNOWN_RECORDER_ERROR=!0,e}}});var r3=y(sw=>{"use strict";Object.defineProperty(sw,"__esModule",{value:!0});sw.PerformanceTracer=void 0;var t3=Gt(),wBe=Hn(),BBe=function(){function r(){}return r.prototype.initPerformanceTracer=function(e){if((0,t3.has)(e,"traceInitPerf")){var t=e.traceInitPerf,i=typeof t=="number";this.traceInitMaxIdent=i?t:1/0,this.traceInitPerf=i?t>0:t}else this.traceInitMaxIdent=0,this.traceInitPerf=wBe.DEFAULT_PARSER_CONFIG.traceInitPerf;this.traceInitIndent=-1},r.prototype.TRACE_INIT=function(e,t){if(this.traceInitPerf===!0){this.traceInitIndent++;var i=new Array(this.traceInitIndent+1).join(" ");this.traceInitIndent <"+e+">");var n=(0,t3.timer)(t),s=n.time,o=n.value,a=s>10?console.warn:console.log;return this.traceInitIndent time: "+s+"ms"),this.traceInitIndent--,o}else return t()},r}();sw.PerformanceTracer=BBe});var i3=y(ow=>{"use strict";Object.defineProperty(ow,"__esModule",{value:!0});ow.applyMixins=void 0;function bBe(r,e){e.forEach(function(t){var i=t.prototype;Object.getOwnPropertyNames(i).forEach(function(n){if(n!=="constructor"){var s=Object.getOwnPropertyDescriptor(i,n);s&&(s.get||s.set)?Object.defineProperty(r.prototype,n,s):r.prototype[n]=t.prototype[n]}})})}ow.applyMixins=bBe});var Hn=y(Cr=>{"use strict";var o3=Cr&&Cr.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(Cr,"__esModule",{value:!0});Cr.EmbeddedActionsParser=Cr.CstParser=Cr.Parser=Cr.EMPTY_ALT=Cr.ParserDefinitionErrorType=Cr.DEFAULT_RULE_CONFIG=Cr.DEFAULT_PARSER_CONFIG=Cr.END_OF_FILE=void 0;var _i=Gt(),QBe=Yq(),n3=HA(),a3=_d(),s3=pJ(),SBe=Vx(),vBe=BJ(),xBe=FJ(),PBe=TJ(),DBe=OJ(),kBe=HJ(),RBe=YJ(),FBe=JJ(),NBe=e3(),TBe=r3(),LBe=i3();Cr.END_OF_FILE=(0,n3.createTokenInstance)(n3.EOF,"",NaN,NaN,NaN,NaN,NaN,NaN);Object.freeze(Cr.END_OF_FILE);Cr.DEFAULT_PARSER_CONFIG=Object.freeze({recoveryEnabled:!1,maxLookahead:3,dynamicTokensEnabled:!1,outputCst:!0,errorMessageProvider:a3.defaultParserErrorProvider,nodeLocationTracking:"none",traceInitPerf:!1,skipValidations:!1});Cr.DEFAULT_RULE_CONFIG=Object.freeze({recoveryValueFunc:function(){},resyncEnabled:!0});var OBe;(function(r){r[r.INVALID_RULE_NAME=0]="INVALID_RULE_NAME",r[r.DUPLICATE_RULE_NAME=1]="DUPLICATE_RULE_NAME",r[r.INVALID_RULE_OVERRIDE=2]="INVALID_RULE_OVERRIDE",r[r.DUPLICATE_PRODUCTIONS=3]="DUPLICATE_PRODUCTIONS",r[r.UNRESOLVED_SUBRULE_REF=4]="UNRESOLVED_SUBRULE_REF",r[r.LEFT_RECURSION=5]="LEFT_RECURSION",r[r.NONE_LAST_EMPTY_ALT=6]="NONE_LAST_EMPTY_ALT",r[r.AMBIGUOUS_ALTS=7]="AMBIGUOUS_ALTS",r[r.CONFLICT_TOKENS_RULES_NAMESPACE=8]="CONFLICT_TOKENS_RULES_NAMESPACE",r[r.INVALID_TOKEN_NAME=9]="INVALID_TOKEN_NAME",r[r.NO_NON_EMPTY_LOOKAHEAD=10]="NO_NON_EMPTY_LOOKAHEAD",r[r.AMBIGUOUS_PREFIX_ALTS=11]="AMBIGUOUS_PREFIX_ALTS",r[r.TOO_MANY_ALTS=12]="TOO_MANY_ALTS"})(OBe=Cr.ParserDefinitionErrorType||(Cr.ParserDefinitionErrorType={}));function MBe(r){return r===void 0&&(r=void 0),function(){return r}}Cr.EMPTY_ALT=MBe;var aw=function(){function r(e,t){this.definitionErrors=[],this.selfAnalysisDone=!1;var i=this;if(i.initErrorHandler(t),i.initLexerAdapter(),i.initLooksAhead(t),i.initRecognizerEngine(e,t),i.initRecoverable(t),i.initTreeBuilder(t),i.initContentAssist(),i.initGastRecorder(t),i.initPerformanceTracer(t),(0,_i.has)(t,"ignoredIssues"))throw new Error(`The IParserConfig property has been deprecated. - Please use the flag on the relevant DSL method instead. - See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#IGNORING_AMBIGUITIES - For further details.`);this.skipValidations=(0,_i.has)(t,"skipValidations")?t.skipValidations:Cr.DEFAULT_PARSER_CONFIG.skipValidations}return r.performSelfAnalysis=function(e){throw Error("The **static** `performSelfAnalysis` method has been deprecated. \nUse the **instance** method with the same name instead.")},r.prototype.performSelfAnalysis=function(){var e=this;this.TRACE_INIT("performSelfAnalysis",function(){var t;e.selfAnalysisDone=!0;var i=e.className;e.TRACE_INIT("toFastProps",function(){(0,_i.toFastProperties)(e)}),e.TRACE_INIT("Grammar Recording",function(){try{e.enableRecording(),(0,_i.forEach)(e.definedRulesNames,function(s){var o=e[s],a=o.originalGrammarAction,l=void 0;e.TRACE_INIT(s+" Rule",function(){l=e.topLevelRuleRecord(s,a)}),e.gastProductionsCache[s]=l})}finally{e.disableRecording()}});var n=[];if(e.TRACE_INIT("Grammar Resolving",function(){n=(0,s3.resolveGrammar)({rules:(0,_i.values)(e.gastProductionsCache)}),e.definitionErrors=e.definitionErrors.concat(n)}),e.TRACE_INIT("Grammar Validations",function(){if((0,_i.isEmpty)(n)&&e.skipValidations===!1){var s=(0,s3.validateGrammar)({rules:(0,_i.values)(e.gastProductionsCache),maxLookahead:e.maxLookahead,tokenTypes:(0,_i.values)(e.tokensMap),errMsgProvider:a3.defaultGrammarValidatorErrorProvider,grammarName:i});e.definitionErrors=e.definitionErrors.concat(s)}}),(0,_i.isEmpty)(e.definitionErrors)&&(e.recoveryEnabled&&e.TRACE_INIT("computeAllProdsFollows",function(){var s=(0,QBe.computeAllProdsFollows)((0,_i.values)(e.gastProductionsCache));e.resyncFollows=s}),e.TRACE_INIT("ComputeLookaheadFunctions",function(){e.preComputeLookaheadFunctions((0,_i.values)(e.gastProductionsCache))})),!r.DEFER_DEFINITION_ERRORS_HANDLING&&!(0,_i.isEmpty)(e.definitionErrors))throw t=(0,_i.map)(e.definitionErrors,function(s){return s.message}),new Error(`Parser Definition Errors detected: - `+t.join(` -------------------------------- -`))})},r.DEFER_DEFINITION_ERRORS_HANDLING=!1,r}();Cr.Parser=aw;(0,LBe.applyMixins)(aw,[SBe.Recoverable,vBe.LooksAhead,xBe.TreeBuilder,PBe.LexerAdapter,kBe.RecognizerEngine,DBe.RecognizerApi,RBe.ErrorHandler,FBe.ContentAssist,NBe.GastRecorder,TBe.PerformanceTracer]);var UBe=function(r){o3(e,r);function e(t,i){i===void 0&&(i=Cr.DEFAULT_PARSER_CONFIG);var n=this,s=(0,_i.cloneObj)(i);return s.outputCst=!0,n=r.call(this,t,s)||this,n}return e}(aw);Cr.CstParser=UBe;var KBe=function(r){o3(e,r);function e(t,i){i===void 0&&(i=Cr.DEFAULT_PARSER_CONFIG);var n=this,s=(0,_i.cloneObj)(i);return s.outputCst=!1,n=r.call(this,t,s)||this,n}return e}(aw);Cr.EmbeddedActionsParser=KBe});var l3=y(Aw=>{"use strict";Object.defineProperty(Aw,"__esModule",{value:!0});Aw.createSyntaxDiagramsCode=void 0;var A3=Ix();function HBe(r,e){var t=e===void 0?{}:e,i=t.resourceBase,n=i===void 0?"https://unpkg.com/chevrotain@"+A3.VERSION+"/diagrams/":i,s=t.css,o=s===void 0?"https://unpkg.com/chevrotain@"+A3.VERSION+"/diagrams/diagrams.css":s,a=` - - - - - -`,l=` - -`,c=` -
+

Page Not Found

We could not find what you were looking for.

Please contact the owner of the site that linked you to the original URL and let them know their link is broken.

+ + + + \ No newline at end of file diff --git a/static/CNAME b/CNAME similarity index 100% rename from static/CNAME rename to CNAME diff --git a/README.md b/README.md deleted file mode 100644 index aaba2fa1e1..0000000000 --- a/README.md +++ /dev/null @@ -1,41 +0,0 @@ -# Website - -This website is built using [Docusaurus 2](https://docusaurus.io/), a modern static website generator. - -### Installation - -``` -$ yarn -``` - -### Local Development - -``` -$ yarn start -``` - -This command starts a local development server and opens up a browser window. Most changes are reflected live without having to restart the server. - -### Build - -``` -$ yarn build -``` - -This command generates static content into the `build` directory and can be served using any static contents hosting service. - -### Deployment - -Using SSH: - -``` -$ USE_SSH=true yarn deploy -``` - -Not using SSH: - -``` -$ GIT_USER= yarn deploy -``` - -If you are using GitHub pages for hosting, this command is a convenient way to build the website and push to the `gh-pages` branch. diff --git a/assets/css/styles.1dacd5fc.css b/assets/css/styles.1dacd5fc.css new file mode 100644 index 0000000000..4424c9055d --- /dev/null +++ b/assets/css/styles.1dacd5fc.css @@ -0,0 +1 @@ +.col,.container{padding:0 var(--ifm-spacing-horizontal);width:100%}.markdown>h2,.markdown>h3,.markdown>h4,.markdown>h5,.markdown>h6{margin-bottom:calc(var(--ifm-heading-vertical-rhythm-bottom)*var(--ifm-leading))}.markdown li,body{word-wrap:break-word}body,ol ol,ol ul,ul ol,ul ul{margin:0}pre,table{overflow:auto}blockquote,pre{margin:0 0 var(--ifm-spacing-vertical)}.breadcrumbs__link,.button{transition-timing-function:var(--ifm-transition-timing-default)}.button,code{vertical-align:middle}.button--outline.button--active,.button--outline:active,.button--outline:hover,:root{--ifm-button-color:var(--ifm-font-color-base-inverse)}.menu__link:hover,a{transition:color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.navbar--dark,:root{--ifm-navbar-link-hover-color:var(--ifm-color-primary)}.menu,.navbar-sidebar{overflow-x:hidden}:root,html[data-theme=dark]{--ifm-color-emphasis-500:var(--ifm-color-gray-500)}.toggleButton_gllP,html{-webkit-tap-highlight-color:transparent}*,.loadingRing_RJI3 div{box-sizing:border-box}.clean-list,.containsTaskList_mC6p,.details_lb9f>summary,.dropdown__menu,.menu__list{list-style:none}:root{--ifm-color-scheme:light;--ifm-dark-value:10%;--ifm-darker-value:15%;--ifm-darkest-value:30%;--ifm-light-value:15%;--ifm-lighter-value:30%;--ifm-lightest-value:50%;--ifm-contrast-background-value:90%;--ifm-contrast-foreground-value:70%;--ifm-contrast-background-dark-value:70%;--ifm-contrast-foreground-dark-value:90%;--ifm-color-primary:#3578e5;--ifm-color-secondary:#ebedf0;--ifm-color-success:#00a400;--ifm-color-info:#54c7ec;--ifm-color-warning:#ffba00;--ifm-color-danger:#fa383e;--ifm-color-primary-dark:#306cce;--ifm-color-primary-darker:#2d66c3;--ifm-color-primary-darkest:#2554a0;--ifm-color-primary-light:#538ce9;--ifm-color-primary-lighter:#72a1ed;--ifm-color-primary-lightest:#9abcf2;--ifm-color-primary-contrast-background:#ebf2fc;--ifm-color-primary-contrast-foreground:#102445;--ifm-color-secondary-dark:#d4d5d8;--ifm-color-secondary-darker:#c8c9cc;--ifm-color-secondary-darkest:#a4a6a8;--ifm-color-secondary-light:#eef0f2;--ifm-color-secondary-lighter:#f1f2f5;--ifm-color-secondary-lightest:#f5f6f8;--ifm-color-secondary-contrast-background:#fdfdfe;--ifm-color-secondary-contrast-foreground:#474748;--ifm-color-success-dark:#009400;--ifm-color-success-darker:#008b00;--ifm-color-success-darkest:#007300;--ifm-color-success-light:#26b226;--ifm-color-success-lighter:#4dbf4d;--ifm-color-success-lightest:#80d280;--ifm-color-success-contrast-background:#e6f6e6;--ifm-color-success-contrast-foreground:#003100;--ifm-color-info-dark:#4cb3d4;--ifm-color-info-darker:#47a9c9;--ifm-color-info-darkest:#3b8ba5;--ifm-color-info-light:#6ecfef;--ifm-color-info-lighter:#87d8f2;--ifm-color-info-lightest:#aae3f6;--ifm-color-info-contrast-background:#eef9fd;--ifm-color-info-contrast-foreground:#193c47;--ifm-color-warning-dark:#e6a700;--ifm-color-warning-darker:#d99e00;--ifm-color-warning-darkest:#b38200;--ifm-color-warning-light:#ffc426;--ifm-color-warning-lighter:#ffcf4d;--ifm-color-warning-lightest:#ffdd80;--ifm-color-warning-contrast-background:#fff8e6;--ifm-color-warning-contrast-foreground:#4d3800;--ifm-color-danger-dark:#e13238;--ifm-color-danger-darker:#d53035;--ifm-color-danger-darkest:#af272b;--ifm-color-danger-light:#fb565b;--ifm-color-danger-lighter:#fb7478;--ifm-color-danger-lightest:#fd9c9f;--ifm-color-danger-contrast-background:#ffebec;--ifm-color-danger-contrast-foreground:#4b1113;--ifm-color-white:#fff;--ifm-color-black:#000;--ifm-color-gray-0:var(--ifm-color-white);--ifm-color-gray-100:#f5f6f7;--ifm-color-gray-200:#ebedf0;--ifm-color-gray-300:#dadde1;--ifm-color-gray-400:#ccd0d5;--ifm-color-gray-500:#bec3c9;--ifm-color-gray-600:#8d949e;--ifm-color-gray-700:#606770;--ifm-color-gray-800:#444950;--ifm-color-gray-900:#1c1e21;--ifm-color-gray-1000:var(--ifm-color-black);--ifm-color-emphasis-0:var(--ifm-color-gray-0);--ifm-color-emphasis-100:var(--ifm-color-gray-100);--ifm-color-emphasis-200:var(--ifm-color-gray-200);--ifm-color-emphasis-300:var(--ifm-color-gray-300);--ifm-color-emphasis-400:var(--ifm-color-gray-400);--ifm-color-emphasis-600:var(--ifm-color-gray-600);--ifm-color-emphasis-700:var(--ifm-color-gray-700);--ifm-color-emphasis-800:var(--ifm-color-gray-800);--ifm-color-emphasis-900:var(--ifm-color-gray-900);--ifm-color-emphasis-1000:var(--ifm-color-gray-1000);--ifm-color-content:var(--ifm-color-emphasis-900);--ifm-color-content-inverse:var(--ifm-color-emphasis-0);--ifm-color-content-secondary:#525860;--ifm-background-color:#0000;--ifm-background-surface-color:var(--ifm-color-content-inverse);--ifm-global-border-width:1px;--ifm-global-radius:0.4rem;--ifm-hover-overlay:#0000000d;--ifm-font-color-base:var(--ifm-color-content);--ifm-font-color-base-inverse:var(--ifm-color-content-inverse);--ifm-font-color-secondary:var(--ifm-color-content-secondary);--ifm-font-family-base:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";--ifm-font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--ifm-font-size-base:100%;--ifm-font-weight-light:300;--ifm-font-weight-normal:400;--ifm-font-weight-semibold:500;--ifm-font-weight-bold:700;--ifm-font-weight-base:var(--ifm-font-weight-normal);--ifm-line-height-base:1.65;--ifm-global-spacing:1rem;--ifm-spacing-vertical:var(--ifm-global-spacing);--ifm-spacing-horizontal:var(--ifm-global-spacing);--ifm-transition-fast:200ms;--ifm-transition-slow:400ms;--ifm-transition-timing-default:cubic-bezier(0.08,0.52,0.52,1);--ifm-global-shadow-lw:0 1px 2px 0 #0000001a;--ifm-global-shadow-md:0 5px 40px #0003;--ifm-global-shadow-tl:0 12px 28px 0 #0003,0 2px 4px 0 #0000001a;--ifm-z-index-dropdown:100;--ifm-z-index-fixed:200;--ifm-z-index-overlay:400;--ifm-container-width:1140px;--ifm-container-width-xl:1320px;--ifm-code-background:#f6f7f8;--ifm-code-border-radius:var(--ifm-global-radius);--ifm-code-font-size:90%;--ifm-code-padding-horizontal:0.1rem;--ifm-code-padding-vertical:0.1rem;--ifm-pre-background:var(--ifm-code-background);--ifm-pre-border-radius:var(--ifm-code-border-radius);--ifm-pre-color:inherit;--ifm-pre-line-height:1.45;--ifm-pre-padding:1rem;--ifm-heading-color:inherit;--ifm-heading-margin-top:0;--ifm-heading-margin-bottom:var(--ifm-spacing-vertical);--ifm-heading-font-family:var(--ifm-font-family-base);--ifm-heading-font-weight:var(--ifm-font-weight-bold);--ifm-heading-line-height:1.25;--ifm-h1-font-size:2rem;--ifm-h2-font-size:1.5rem;--ifm-h3-font-size:1.25rem;--ifm-h4-font-size:1rem;--ifm-h5-font-size:0.875rem;--ifm-h6-font-size:0.85rem;--ifm-image-alignment-padding:1.25rem;--ifm-leading-desktop:1.25;--ifm-leading:calc(var(--ifm-leading-desktop)*1rem);--ifm-list-left-padding:2rem;--ifm-list-margin:1rem;--ifm-list-item-margin:0.25rem;--ifm-list-paragraph-margin:1rem;--ifm-table-cell-padding:0.75rem;--ifm-table-background:#0000;--ifm-table-stripe-background:#00000008;--ifm-table-border-width:1px;--ifm-table-border-color:var(--ifm-color-emphasis-300);--ifm-table-head-background:inherit;--ifm-table-head-color:inherit;--ifm-table-head-font-weight:var(--ifm-font-weight-bold);--ifm-table-cell-color:inherit;--ifm-link-color:var(--ifm-color-primary);--ifm-link-decoration:none;--ifm-link-hover-color:var(--ifm-link-color);--ifm-link-hover-decoration:underline;--ifm-paragraph-margin-bottom:var(--ifm-leading);--ifm-blockquote-font-size:var(--ifm-font-size-base);--ifm-blockquote-border-left-width:2px;--ifm-blockquote-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-blockquote-padding-vertical:0;--ifm-blockquote-shadow:none;--ifm-blockquote-color:var(--ifm-color-emphasis-800);--ifm-blockquote-border-color:var(--ifm-color-emphasis-300);--ifm-hr-background-color:var(--ifm-color-emphasis-500);--ifm-hr-height:1px;--ifm-hr-margin-vertical:1.5rem;--ifm-scrollbar-size:7px;--ifm-scrollbar-track-background-color:#f1f1f1;--ifm-scrollbar-thumb-background-color:silver;--ifm-scrollbar-thumb-hover-background-color:#a7a7a7;--ifm-alert-background-color:inherit;--ifm-alert-border-color:inherit;--ifm-alert-border-radius:var(--ifm-global-radius);--ifm-alert-border-width:0px;--ifm-alert-border-left-width:5px;--ifm-alert-color:var(--ifm-font-color-base);--ifm-alert-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-alert-padding-vertical:var(--ifm-spacing-vertical);--ifm-alert-shadow:var(--ifm-global-shadow-lw);--ifm-avatar-intro-margin:1rem;--ifm-avatar-intro-alignment:inherit;--ifm-avatar-photo-size:3rem;--ifm-badge-background-color:inherit;--ifm-badge-border-color:inherit;--ifm-badge-border-radius:var(--ifm-global-radius);--ifm-badge-border-width:var(--ifm-global-border-width);--ifm-badge-color:var(--ifm-color-white);--ifm-badge-padding-horizontal:calc(var(--ifm-spacing-horizontal)*0.5);--ifm-badge-padding-vertical:calc(var(--ifm-spacing-vertical)*0.25);--ifm-breadcrumb-border-radius:1.5rem;--ifm-breadcrumb-spacing:0.5rem;--ifm-breadcrumb-color-active:var(--ifm-color-primary);--ifm-breadcrumb-item-background-active:var(--ifm-hover-overlay);--ifm-breadcrumb-padding-horizontal:0.8rem;--ifm-breadcrumb-padding-vertical:0.4rem;--ifm-breadcrumb-size-multiplier:1;--ifm-breadcrumb-separator:url('data:image/svg+xml;utf8,');--ifm-breadcrumb-separator-filter:none;--ifm-breadcrumb-separator-size:0.5rem;--ifm-breadcrumb-separator-size-multiplier:1.25;--ifm-button-background-color:inherit;--ifm-button-border-color:var(--ifm-button-background-color);--ifm-button-border-width:var(--ifm-global-border-width);--ifm-button-font-weight:var(--ifm-font-weight-bold);--ifm-button-padding-horizontal:1.5rem;--ifm-button-padding-vertical:0.375rem;--ifm-button-size-multiplier:1;--ifm-button-transition-duration:var(--ifm-transition-fast);--ifm-button-border-radius:calc(var(--ifm-global-radius)*var(--ifm-button-size-multiplier));--ifm-button-group-spacing:2px;--ifm-card-background-color:var(--ifm-background-surface-color);--ifm-card-border-radius:calc(var(--ifm-global-radius)*2);--ifm-card-horizontal-spacing:var(--ifm-global-spacing);--ifm-card-vertical-spacing:var(--ifm-global-spacing);--ifm-toc-border-color:var(--ifm-color-emphasis-300);--ifm-toc-link-color:var(--ifm-color-content-secondary);--ifm-toc-padding-vertical:0.5rem;--ifm-toc-padding-horizontal:0.5rem;--ifm-dropdown-background-color:var(--ifm-background-surface-color);--ifm-dropdown-font-weight:var(--ifm-font-weight-semibold);--ifm-dropdown-link-color:var(--ifm-font-color-base);--ifm-dropdown-hover-background-color:var(--ifm-hover-overlay);--ifm-footer-background-color:var(--ifm-color-emphasis-100);--ifm-footer-color:inherit;--ifm-footer-link-color:var(--ifm-color-emphasis-700);--ifm-footer-link-hover-color:var(--ifm-color-primary);--ifm-footer-link-horizontal-spacing:0.5rem;--ifm-footer-padding-horizontal:calc(var(--ifm-spacing-horizontal)*2);--ifm-footer-padding-vertical:calc(var(--ifm-spacing-vertical)*2);--ifm-footer-title-color:inherit;--ifm-footer-logo-max-width:min(30rem,90vw);--ifm-hero-background-color:var(--ifm-background-surface-color);--ifm-hero-text-color:var(--ifm-color-emphasis-800);--ifm-menu-color:var(--ifm-color-emphasis-700);--ifm-menu-color-active:var(--ifm-color-primary);--ifm-menu-color-background-active:var(--ifm-hover-overlay);--ifm-menu-color-background-hover:var(--ifm-hover-overlay);--ifm-menu-link-padding-horizontal:0.75rem;--ifm-menu-link-padding-vertical:0.375rem;--ifm-menu-link-sublist-icon:url('data:image/svg+xml;utf8,');--ifm-menu-link-sublist-icon-filter:none;--ifm-navbar-background-color:var(--ifm-background-surface-color);--ifm-navbar-height:3.75rem;--ifm-navbar-item-padding-horizontal:0.75rem;--ifm-navbar-item-padding-vertical:0.25rem;--ifm-navbar-link-color:var(--ifm-font-color-base);--ifm-navbar-link-active-color:var(--ifm-link-color);--ifm-navbar-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-navbar-padding-vertical:calc(var(--ifm-spacing-vertical)*0.5);--ifm-navbar-shadow:var(--ifm-global-shadow-lw);--ifm-navbar-search-input-background-color:var(--ifm-color-emphasis-200);--ifm-navbar-search-input-color:var(--ifm-color-emphasis-800);--ifm-navbar-search-input-placeholder-color:var(--ifm-color-emphasis-500);--ifm-navbar-search-input-icon:url('data:image/svg+xml;utf8,');--ifm-navbar-sidebar-width:83vw;--ifm-pagination-border-radius:var(--ifm-global-radius);--ifm-pagination-color-active:var(--ifm-color-primary);--ifm-pagination-font-size:1rem;--ifm-pagination-item-active-background:var(--ifm-hover-overlay);--ifm-pagination-page-spacing:0.2em;--ifm-pagination-padding-horizontal:calc(var(--ifm-spacing-horizontal)*1);--ifm-pagination-padding-vertical:calc(var(--ifm-spacing-vertical)*0.25);--ifm-pagination-nav-border-radius:var(--ifm-global-radius);--ifm-pagination-nav-color-hover:var(--ifm-color-primary);--ifm-pills-color-active:var(--ifm-color-primary);--ifm-pills-color-background-active:var(--ifm-hover-overlay);--ifm-pills-spacing:0.125rem;--ifm-tabs-color:var(--ifm-font-color-secondary);--ifm-tabs-color-active:var(--ifm-color-primary);--ifm-tabs-color-active-border:var(--ifm-tabs-color-active);--ifm-tabs-padding-horizontal:1rem;--ifm-tabs-padding-vertical:1rem;--docusaurus-progress-bar-color:var(--ifm-color-primary);--ifm-color-primary:#2e7de9;--ifm-color-primary-dark:#186ee3;--ifm-color-primary-darker:#1768d7;--ifm-color-primary-darkest:#1355b1;--ifm-color-primary-light:#478dec;--ifm-color-primary-lighter:#5495ed;--ifm-color-primary-lightest:#7aacf1;--ifm-code-font-size:95%;--docusaurus-highlighted-code-line-bg:#2f334d;--docusaurus-announcement-bar-height:auto;--docusaurus-tag-list-border:var(--ifm-color-emphasis-300);--docusaurus-collapse-button-bg:#0000;--docusaurus-collapse-button-bg-hover:#0000001a;--doc-sidebar-width:300px;--doc-sidebar-hidden-width:30px}.badge--danger,.badge--info,.badge--primary,.badge--secondary,.badge--success,.badge--warning{--ifm-badge-border-color:var(--ifm-badge-background-color)}.button--link,.button--outline{--ifm-button-background-color:#0000}html{-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%;text-size-adjust:100%;background-color:var(--ifm-background-color);color:var(--ifm-font-color-base);color-scheme:var(--ifm-color-scheme);font:var(--ifm-font-size-base)/var(--ifm-line-height-base) var(--ifm-font-family-base);text-rendering:optimizelegibility}iframe{border:0;color-scheme:auto}.container{margin:0 auto;max-width:var(--ifm-container-width)}.container--fluid{max-width:inherit}.row{display:flex;flex-wrap:wrap;margin:0 calc(var(--ifm-spacing-horizontal)*-1)}.margin-bottom--none,.margin-vert--none,.markdown>:last-child{margin-bottom:0!important}.margin-top--none,.margin-vert--none,.tabItem_LNqP{margin-top:0!important}.row--no-gutters{margin-left:0;margin-right:0}.margin-horiz--none,.margin-right--none{margin-right:0!important}.row--no-gutters>.col{padding-left:0;padding-right:0}.row--align-top{align-items:flex-start}.row--align-bottom{align-items:flex-end}.menuExternalLink_NmtK,.row--align-center{align-items:center}.row--align-stretch{align-items:stretch}.row--align-baseline{align-items:baseline}.col{--ifm-col-width:100%;flex:1 0;margin-left:0;max-width:var(--ifm-col-width)}.padding-bottom--none,.padding-vert--none{padding-bottom:0!important}.padding-top--none,.padding-vert--none{padding-top:0!important}.padding-horiz--none,.padding-left--none{padding-left:0!important}.padding-horiz--none,.padding-right--none{padding-right:0!important}.col[class*=col--]{flex:0 0 var(--ifm-col-width)}.col--1{--ifm-col-width:8.33333%}.col--offset-1{margin-left:8.33333%}.col--2{--ifm-col-width:16.66667%}.col--offset-2{margin-left:16.66667%}.col--3{--ifm-col-width:25%}.col--offset-3{margin-left:25%}.col--4{--ifm-col-width:33.33333%}.col--offset-4{margin-left:33.33333%}.col--5{--ifm-col-width:41.66667%}.col--offset-5{margin-left:41.66667%}.col--6{--ifm-col-width:50%}.col--offset-6{margin-left:50%}.col--7{--ifm-col-width:58.33333%}.col--offset-7{margin-left:58.33333%}.col--8{--ifm-col-width:66.66667%}.col--offset-8{margin-left:66.66667%}.col--9{--ifm-col-width:75%}.col--offset-9{margin-left:75%}.col--10{--ifm-col-width:83.33333%}.col--offset-10{margin-left:83.33333%}.col--11{--ifm-col-width:91.66667%}.col--offset-11{margin-left:91.66667%}.col--12{--ifm-col-width:100%}.col--offset-12{margin-left:100%}.margin-horiz--none,.margin-left--none{margin-left:0!important}.margin--none{margin:0!important}.margin-bottom--xs,.margin-vert--xs{margin-bottom:.25rem!important}.margin-top--xs,.margin-vert--xs{margin-top:.25rem!important}.margin-horiz--xs,.margin-left--xs{margin-left:.25rem!important}.margin-horiz--xs,.margin-right--xs{margin-right:.25rem!important}.margin--xs{margin:.25rem!important}.margin-bottom--sm,.margin-vert--sm{margin-bottom:.5rem!important}.margin-top--sm,.margin-vert--sm{margin-top:.5rem!important}.margin-horiz--sm,.margin-left--sm{margin-left:.5rem!important}.margin-horiz--sm,.margin-right--sm{margin-right:.5rem!important}.margin--sm{margin:.5rem!important}.margin-bottom--md,.margin-vert--md{margin-bottom:1rem!important}.margin-top--md,.margin-vert--md{margin-top:1rem!important}.margin-horiz--md,.margin-left--md{margin-left:1rem!important}.margin-horiz--md,.margin-right--md{margin-right:1rem!important}.margin--md{margin:1rem!important}.margin-bottom--lg,.margin-vert--lg{margin-bottom:2rem!important}.margin-top--lg,.margin-vert--lg{margin-top:2rem!important}.margin-horiz--lg,.margin-left--lg{margin-left:2rem!important}.margin-horiz--lg,.margin-right--lg{margin-right:2rem!important}.margin--lg{margin:2rem!important}.margin-bottom--xl,.margin-vert--xl{margin-bottom:5rem!important}.margin-top--xl,.margin-vert--xl{margin-top:5rem!important}.margin-horiz--xl,.margin-left--xl{margin-left:5rem!important}.margin-horiz--xl,.margin-right--xl{margin-right:5rem!important}.margin--xl{margin:5rem!important}.padding--none{padding:0!important}.padding-bottom--xs,.padding-vert--xs{padding-bottom:.25rem!important}.padding-top--xs,.padding-vert--xs{padding-top:.25rem!important}.padding-horiz--xs,.padding-left--xs{padding-left:.25rem!important}.padding-horiz--xs,.padding-right--xs{padding-right:.25rem!important}.padding--xs{padding:.25rem!important}.padding-bottom--sm,.padding-vert--sm{padding-bottom:.5rem!important}.padding-top--sm,.padding-vert--sm{padding-top:.5rem!important}.padding-horiz--sm,.padding-left--sm{padding-left:.5rem!important}.padding-horiz--sm,.padding-right--sm{padding-right:.5rem!important}.padding--sm{padding:.5rem!important}.padding-bottom--md,.padding-vert--md{padding-bottom:1rem!important}.padding-top--md,.padding-vert--md{padding-top:1rem!important}.padding-horiz--md,.padding-left--md{padding-left:1rem!important}.padding-horiz--md,.padding-right--md{padding-right:1rem!important}.padding--md{padding:1rem!important}.padding-bottom--lg,.padding-vert--lg{padding-bottom:2rem!important}.padding-top--lg,.padding-vert--lg{padding-top:2rem!important}.padding-horiz--lg,.padding-left--lg{padding-left:2rem!important}.padding-horiz--lg,.padding-right--lg{padding-right:2rem!important}.padding--lg{padding:2rem!important}.padding-bottom--xl,.padding-vert--xl{padding-bottom:5rem!important}.padding-top--xl,.padding-vert--xl{padding-top:5rem!important}.padding-horiz--xl,.padding-left--xl{padding-left:5rem!important}.padding-horiz--xl,.padding-right--xl{padding-right:5rem!important}.padding--xl{padding:5rem!important}code{background-color:var(--ifm-code-background);border:.1rem solid #0000001a;border-radius:var(--ifm-code-border-radius);font-family:var(--ifm-font-family-monospace);font-size:var(--ifm-code-font-size);padding:var(--ifm-code-padding-vertical) var(--ifm-code-padding-horizontal)}a code{color:inherit}pre{background-color:var(--ifm-pre-background);border-radius:var(--ifm-pre-border-radius);color:var(--ifm-pre-color);font:var(--ifm-code-font-size)/var(--ifm-pre-line-height) var(--ifm-font-family-monospace);padding:var(--ifm-pre-padding)}pre code{background-color:initial;border:none;font-size:100%;line-height:inherit;padding:0}kbd{background-color:var(--ifm-color-emphasis-0);border:1px solid var(--ifm-color-emphasis-400);border-radius:.2rem;box-shadow:inset 0 -1px 0 var(--ifm-color-emphasis-400);color:var(--ifm-color-emphasis-800);font:80% var(--ifm-font-family-monospace);padding:.15rem .3rem}h1,h2,h3,h4,h5,h6{color:var(--ifm-heading-color);font-family:var(--ifm-heading-font-family);font-weight:var(--ifm-heading-font-weight);line-height:var(--ifm-heading-line-height);margin:var(--ifm-heading-margin-top) 0 var(--ifm-heading-margin-bottom) 0}h1{font-size:var(--ifm-h1-font-size)}h2{font-size:var(--ifm-h2-font-size)}h3{font-size:var(--ifm-h3-font-size)}h4{font-size:var(--ifm-h4-font-size)}h5{font-size:var(--ifm-h5-font-size)}h6{font-size:var(--ifm-h6-font-size)}img{max-width:100%}img[align=right]{padding-left:var(--image-alignment-padding)}img[align=left]{padding-right:var(--image-alignment-padding)}.markdown{--ifm-h1-vertical-rhythm-top:3;--ifm-h2-vertical-rhythm-top:2;--ifm-h3-vertical-rhythm-top:1.5;--ifm-heading-vertical-rhythm-top:1.25;--ifm-h1-vertical-rhythm-bottom:1.25;--ifm-heading-vertical-rhythm-bottom:1}.markdown:after,.markdown:before{content:"";display:table}.markdown:after{clear:both}.markdown h1:first-child{--ifm-h1-font-size:3rem;margin-bottom:calc(var(--ifm-h1-vertical-rhythm-bottom)*var(--ifm-leading))}.markdown>h2{--ifm-h2-font-size:2rem;margin-top:calc(var(--ifm-h2-vertical-rhythm-top)*var(--ifm-leading))}.markdown>h3{--ifm-h3-font-size:1.5rem;margin-top:calc(var(--ifm-h3-vertical-rhythm-top)*var(--ifm-leading))}.markdown>h4,.markdown>h5,.markdown>h6{margin-top:calc(var(--ifm-heading-vertical-rhythm-top)*var(--ifm-leading))}.markdown>p,.markdown>pre,.markdown>ul,.tabList__CuJ{margin-bottom:var(--ifm-leading)}.markdown li>p{margin-top:var(--ifm-list-paragraph-margin)}.markdown li+li{margin-top:var(--ifm-list-item-margin)}ol,ul{margin:0 0 var(--ifm-list-margin);padding-left:var(--ifm-list-left-padding)}ol ol,ul ol{list-style-type:lower-roman}ol ol ol,ol ul ol,ul ol ol,ul ul ol{list-style-type:lower-alpha}table{border-collapse:collapse;display:block;margin-bottom:var(--ifm-spacing-vertical)}table thead tr{border-bottom:2px solid var(--ifm-table-border-color)}table thead,table tr:nth-child(2n){background-color:var(--ifm-table-stripe-background)}table tr{background-color:var(--ifm-table-background);border-top:var(--ifm-table-border-width) solid var(--ifm-table-border-color)}table td,table th{border:var(--ifm-table-border-width) solid var(--ifm-table-border-color);padding:var(--ifm-table-cell-padding)}table th{background-color:var(--ifm-table-head-background);color:var(--ifm-table-head-color);font-weight:var(--ifm-table-head-font-weight)}table td{color:var(--ifm-table-cell-color)}strong{font-weight:var(--ifm-font-weight-bold)}a{color:var(--ifm-link-color);text-decoration:var(--ifm-link-decoration)}a:hover{color:var(--ifm-link-hover-color);text-decoration:var(--ifm-link-hover-decoration)}.button:hover,.text--no-decoration,.text--no-decoration:hover,a:not([href]){text-decoration:none}p{margin:0 0 var(--ifm-paragraph-margin-bottom)}blockquote{border-left:var(--ifm-blockquote-border-left-width) solid var(--ifm-blockquote-border-color);box-shadow:var(--ifm-blockquote-shadow);color:var(--ifm-blockquote-color);font-size:var(--ifm-blockquote-font-size);padding:var(--ifm-blockquote-padding-vertical) var(--ifm-blockquote-padding-horizontal)}blockquote>:first-child{margin-top:0}blockquote>:last-child{margin-bottom:0}hr{background-color:var(--ifm-hr-background-color);border:0;height:var(--ifm-hr-height);margin:var(--ifm-hr-margin-vertical) 0}.shadow--lw{box-shadow:var(--ifm-global-shadow-lw)!important}.shadow--md{box-shadow:var(--ifm-global-shadow-md)!important}.shadow--tl{box-shadow:var(--ifm-global-shadow-tl)!important}.text--primary,.wordWrapButtonEnabled_EoeP .wordWrapButtonIcon_Bwma{color:var(--ifm-color-primary)}.text--secondary{color:var(--ifm-color-secondary)}.text--success{color:var(--ifm-color-success)}.text--info{color:var(--ifm-color-info)}.text--warning{color:var(--ifm-color-warning)}.text--danger{color:var(--ifm-color-danger)}.text--center{text-align:center}.text--left{text-align:left}.text--justify{text-align:justify}.text--right{text-align:right}.text--capitalize{text-transform:capitalize}.text--lowercase{text-transform:lowercase}.admonitionHeading_tbUL,.alert__heading,.text--uppercase{text-transform:uppercase}.text--light{font-weight:var(--ifm-font-weight-light)}.text--normal{font-weight:var(--ifm-font-weight-normal)}.text--semibold{font-weight:var(--ifm-font-weight-semibold)}.text--bold{font-weight:var(--ifm-font-weight-bold)}.text--italic{font-style:italic}.text--truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text--break{word-wrap:break-word!important;word-break:break-word!important}.clean-btn{background:none;border:none;color:inherit;cursor:pointer;font-family:inherit;padding:0}.alert,.alert .close{color:var(--ifm-alert-foreground-color)}.clean-list{padding-left:0}.alert--primary{--ifm-alert-background-color:var(--ifm-color-primary-contrast-background);--ifm-alert-background-color-highlight:#3578e526;--ifm-alert-foreground-color:var(--ifm-color-primary-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-primary-dark)}.alert--secondary{--ifm-alert-background-color:var(--ifm-color-secondary-contrast-background);--ifm-alert-background-color-highlight:#ebedf026;--ifm-alert-foreground-color:var(--ifm-color-secondary-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-secondary-dark)}.alert--success{--ifm-alert-background-color:var(--ifm-color-success-contrast-background);--ifm-alert-background-color-highlight:#00a40026;--ifm-alert-foreground-color:var(--ifm-color-success-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-success-dark)}.alert--info{--ifm-alert-background-color:var(--ifm-color-info-contrast-background);--ifm-alert-background-color-highlight:#54c7ec26;--ifm-alert-foreground-color:var(--ifm-color-info-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-info-dark)}.alert--warning{--ifm-alert-background-color:var(--ifm-color-warning-contrast-background);--ifm-alert-background-color-highlight:#ffba0026;--ifm-alert-foreground-color:var(--ifm-color-warning-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-warning-dark)}.alert--danger{--ifm-alert-background-color:var(--ifm-color-danger-contrast-background);--ifm-alert-background-color-highlight:#fa383e26;--ifm-alert-foreground-color:var(--ifm-color-danger-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-danger-dark)}.alert{--ifm-code-background:var(--ifm-alert-background-color-highlight);--ifm-link-color:var(--ifm-alert-foreground-color);--ifm-link-hover-color:var(--ifm-alert-foreground-color);--ifm-link-decoration:underline;--ifm-tabs-color:var(--ifm-alert-foreground-color);--ifm-tabs-color-active:var(--ifm-alert-foreground-color);--ifm-tabs-color-active-border:var(--ifm-alert-border-color);background-color:var(--ifm-alert-background-color);border:var(--ifm-alert-border-width) solid var(--ifm-alert-border-color);border-left-width:var(--ifm-alert-border-left-width);border-radius:var(--ifm-alert-border-radius);box-shadow:var(--ifm-alert-shadow);padding:var(--ifm-alert-padding-vertical) var(--ifm-alert-padding-horizontal)}.alert__heading{align-items:center;display:flex;font:700 var(--ifm-h5-font-size)/var(--ifm-heading-line-height) var(--ifm-heading-font-family);margin-bottom:.5rem}.alert__icon{display:inline-flex;margin-right:.4em}.alert__icon svg{fill:var(--ifm-alert-foreground-color);stroke:var(--ifm-alert-foreground-color);stroke-width:0}.alert .close{margin:calc(var(--ifm-alert-padding-vertical)*-1) calc(var(--ifm-alert-padding-horizontal)*-1) 0 0;opacity:.75}.alert .close:focus,.alert .close:hover{opacity:1}.alert a{text-decoration-color:var(--ifm-alert-border-color)}.alert a:hover{text-decoration-thickness:2px}.avatar{column-gap:var(--ifm-avatar-intro-margin);display:flex}.avatar__photo{border-radius:50%;display:block;height:var(--ifm-avatar-photo-size);overflow:hidden;width:var(--ifm-avatar-photo-size)}.card--full-height,.navbar__logo img,body,html{height:100%}.avatar__photo--sm{--ifm-avatar-photo-size:2rem}.avatar__photo--lg{--ifm-avatar-photo-size:4rem}.avatar__photo--xl{--ifm-avatar-photo-size:6rem}.avatar__intro{display:flex;flex:1 1;flex-direction:column;justify-content:center;text-align:var(--ifm-avatar-intro-alignment)}.badge,.breadcrumbs__item,.breadcrumbs__link,.button,.dropdown>.navbar__link:after,.searchBarContainer_NW3z.searchIndexLoading_EJ1f .searchBarLoadingRing_YnHq{display:inline-block}.avatar__name{font:700 var(--ifm-h4-font-size)/var(--ifm-heading-line-height) var(--ifm-font-family-base)}.avatar__subtitle{margin-top:.25rem}.avatar--vertical{--ifm-avatar-intro-alignment:center;--ifm-avatar-intro-margin:0.5rem;align-items:center;flex-direction:column}.badge{background-color:var(--ifm-badge-background-color);border:var(--ifm-badge-border-width) solid var(--ifm-badge-border-color);border-radius:var(--ifm-badge-border-radius);color:var(--ifm-badge-color);font-size:75%;font-weight:var(--ifm-font-weight-bold);line-height:1;padding:var(--ifm-badge-padding-vertical) var(--ifm-badge-padding-horizontal)}.badge--primary{--ifm-badge-background-color:var(--ifm-color-primary)}.badge--secondary{--ifm-badge-background-color:var(--ifm-color-secondary);color:var(--ifm-color-black)}.breadcrumbs__link,.button.button--secondary.button--outline:not(.button--active):not(:hover){color:var(--ifm-font-color-base)}.badge--success{--ifm-badge-background-color:var(--ifm-color-success)}.badge--info{--ifm-badge-background-color:var(--ifm-color-info)}.badge--warning{--ifm-badge-background-color:var(--ifm-color-warning)}.badge--danger{--ifm-badge-background-color:var(--ifm-color-danger)}.breadcrumbs{margin-bottom:0;padding-left:0}.breadcrumbs__item:not(:last-child):after{background:var(--ifm-breadcrumb-separator) center;content:" ";display:inline-block;filter:var(--ifm-breadcrumb-separator-filter);height:calc(var(--ifm-breadcrumb-separator-size)*var(--ifm-breadcrumb-size-multiplier)*var(--ifm-breadcrumb-separator-size-multiplier));margin:0 var(--ifm-breadcrumb-spacing);opacity:.5;width:calc(var(--ifm-breadcrumb-separator-size)*var(--ifm-breadcrumb-size-multiplier)*var(--ifm-breadcrumb-separator-size-multiplier))}.breadcrumbs__item--active .breadcrumbs__link{background:var(--ifm-breadcrumb-item-background-active);color:var(--ifm-breadcrumb-color-active)}.breadcrumbs__link{border-radius:var(--ifm-breadcrumb-border-radius);font-size:calc(1rem*var(--ifm-breadcrumb-size-multiplier));padding:calc(var(--ifm-breadcrumb-padding-vertical)*var(--ifm-breadcrumb-size-multiplier)) calc(var(--ifm-breadcrumb-padding-horizontal)*var(--ifm-breadcrumb-size-multiplier));transition-duration:var(--ifm-transition-fast);transition-property:background,color}.breadcrumbs__link:any-link:hover,.breadcrumbs__link:link:hover,.breadcrumbs__link:visited:hover,area[href].breadcrumbs__link:hover{background:var(--ifm-breadcrumb-item-background-active);text-decoration:none}.breadcrumbs--sm{--ifm-breadcrumb-size-multiplier:0.8}.breadcrumbs--lg{--ifm-breadcrumb-size-multiplier:1.2}.button{background-color:var(--ifm-button-background-color);border:var(--ifm-button-border-width) solid var(--ifm-button-border-color);border-radius:var(--ifm-button-border-radius);cursor:pointer;font-size:calc(.875rem*var(--ifm-button-size-multiplier));font-weight:var(--ifm-button-font-weight);line-height:1.5;padding:calc(var(--ifm-button-padding-vertical)*var(--ifm-button-size-multiplier)) calc(var(--ifm-button-padding-horizontal)*var(--ifm-button-size-multiplier));text-align:center;transition-duration:var(--ifm-button-transition-duration);transition-property:color,background,border-color;-webkit-user-select:none;user-select:none;white-space:nowrap}.button,.button:hover{color:var(--ifm-button-color)}.button--outline{--ifm-button-color:var(--ifm-button-border-color)}.button--outline:hover{--ifm-button-background-color:var(--ifm-button-border-color)}.button--link{--ifm-button-border-color:#0000;color:var(--ifm-link-color);text-decoration:var(--ifm-link-decoration)}.button--link.button--active,.button--link:active,.button--link:hover{color:var(--ifm-link-hover-color);text-decoration:var(--ifm-link-hover-decoration)}.button.disabled,.button:disabled,.button[disabled]{opacity:.65;pointer-events:none}.button--sm{--ifm-button-size-multiplier:0.8}.button--lg{--ifm-button-size-multiplier:1.35}.button--block{display:block;width:100%}.button.button--secondary{color:var(--ifm-color-gray-900)}:where(.button--primary){--ifm-button-background-color:var(--ifm-color-primary);--ifm-button-border-color:var(--ifm-color-primary)}:where(.button--primary):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-primary-dark);--ifm-button-border-color:var(--ifm-color-primary-dark)}.button--primary.button--active,.button--primary:active{--ifm-button-background-color:var(--ifm-color-primary-darker);--ifm-button-border-color:var(--ifm-color-primary-darker)}:where(.button--secondary){--ifm-button-background-color:var(--ifm-color-secondary);--ifm-button-border-color:var(--ifm-color-secondary)}:where(.button--secondary):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-secondary-dark);--ifm-button-border-color:var(--ifm-color-secondary-dark)}.button--secondary.button--active,.button--secondary:active{--ifm-button-background-color:var(--ifm-color-secondary-darker);--ifm-button-border-color:var(--ifm-color-secondary-darker)}:where(.button--success){--ifm-button-background-color:var(--ifm-color-success);--ifm-button-border-color:var(--ifm-color-success)}:where(.button--success):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-success-dark);--ifm-button-border-color:var(--ifm-color-success-dark)}.button--success.button--active,.button--success:active{--ifm-button-background-color:var(--ifm-color-success-darker);--ifm-button-border-color:var(--ifm-color-success-darker)}:where(.button--info){--ifm-button-background-color:var(--ifm-color-info);--ifm-button-border-color:var(--ifm-color-info)}:where(.button--info):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-info-dark);--ifm-button-border-color:var(--ifm-color-info-dark)}.button--info.button--active,.button--info:active{--ifm-button-background-color:var(--ifm-color-info-darker);--ifm-button-border-color:var(--ifm-color-info-darker)}:where(.button--warning){--ifm-button-background-color:var(--ifm-color-warning);--ifm-button-border-color:var(--ifm-color-warning)}:where(.button--warning):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-warning-dark);--ifm-button-border-color:var(--ifm-color-warning-dark)}.button--warning.button--active,.button--warning:active{--ifm-button-background-color:var(--ifm-color-warning-darker);--ifm-button-border-color:var(--ifm-color-warning-darker)}:where(.button--danger){--ifm-button-background-color:var(--ifm-color-danger);--ifm-button-border-color:var(--ifm-color-danger)}:where(.button--danger):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-danger-dark);--ifm-button-border-color:var(--ifm-color-danger-dark)}.button--danger.button--active,.button--danger:active{--ifm-button-background-color:var(--ifm-color-danger-darker);--ifm-button-border-color:var(--ifm-color-danger-darker)}.button-group{display:inline-flex;gap:var(--ifm-button-group-spacing)}.button-group>.button:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.button-group>.button:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.button-group--block{display:flex;justify-content:stretch}.button-group--block>.button{flex-grow:1}.card{background-color:var(--ifm-card-background-color);border-radius:var(--ifm-card-border-radius);box-shadow:var(--ifm-global-shadow-lw);display:flex;flex-direction:column;overflow:hidden}.card__image{padding-top:var(--ifm-card-vertical-spacing)}.card__image:first-child{padding-top:0}.card__body,.card__footer,.card__header{padding:var(--ifm-card-vertical-spacing) var(--ifm-card-horizontal-spacing)}.card__body:not(:last-child),.card__footer:not(:last-child),.card__header:not(:last-child){padding-bottom:0}.card__body>:last-child,.card__footer>:last-child,.card__header>:last-child{margin-bottom:0}.card__footer{margin-top:auto}.table-of-contents{font-size:.8rem;margin-bottom:0;padding:var(--ifm-toc-padding-vertical) 0}.table-of-contents,.table-of-contents ul{list-style:none;padding-left:var(--ifm-toc-padding-horizontal)}.table-of-contents li{margin:var(--ifm-toc-padding-vertical) var(--ifm-toc-padding-horizontal)}.table-of-contents__left-border{border-left:1px solid var(--ifm-toc-border-color)}.table-of-contents__link{color:var(--ifm-toc-link-color);display:block}.table-of-contents__link--active,.table-of-contents__link--active code,.table-of-contents__link:hover,.table-of-contents__link:hover code{color:var(--ifm-color-primary);text-decoration:none}.content_knG7 a,.hitFooter_E9YW a,.suggestion_fB_2.cursor_eG29 mark{text-decoration:underline}.close{color:var(--ifm-color-black);float:right;font-size:1.5rem;font-weight:var(--ifm-font-weight-bold);line-height:1;opacity:.5;padding:1rem;transition:opacity var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.close:hover{opacity:.7}.close:focus,.theme-code-block-highlighted-line .codeLineNumber_Tfdd:before{opacity:.8}.dropdown{display:inline-flex;font-weight:var(--ifm-dropdown-font-weight);position:relative;vertical-align:top}.dropdown--hoverable:hover .dropdown__menu,.dropdown--show .dropdown__menu{opacity:1;pointer-events:all;transform:translateY(-1px);visibility:visible}.dropdown--right .dropdown__menu{left:inherit;right:0}.dropdown--nocaret .navbar__link:after{content:none!important}.dropdown__menu{background-color:var(--ifm-dropdown-background-color);border-radius:var(--ifm-global-radius);box-shadow:var(--ifm-global-shadow-md);left:0;max-height:80vh;min-width:10rem;opacity:0;overflow-y:auto;padding:.5rem;pointer-events:none;position:absolute;top:calc(100% - var(--ifm-navbar-item-padding-vertical) + .3rem);transform:translateY(-.625rem);transition-duration:var(--ifm-transition-fast);transition-property:opacity,transform,visibility;transition-timing-function:var(--ifm-transition-timing-default);visibility:hidden;z-index:var(--ifm-z-index-dropdown)}.menu__caret,.menu__link,.menu__list-item-collapsible{border-radius:.25rem;transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.dropdown__link{border-radius:.25rem;color:var(--ifm-dropdown-link-color);display:block;font-size:.875rem;margin-top:.2rem;padding:.25rem .5rem;white-space:nowrap}.dropdown__link--active,.dropdown__link:hover{background-color:var(--ifm-dropdown-hover-background-color);color:var(--ifm-dropdown-link-color);text-decoration:none}.dropdown__link--active,.dropdown__link--active:hover{--ifm-dropdown-link-color:var(--ifm-link-color)}.dropdown>.navbar__link:after{border-color:currentcolor #0000;border-style:solid;border-width:.4em .4em 0;content:"";margin-left:.3em;position:relative;top:2px;transform:translateY(-50%)}.footer{background-color:var(--ifm-footer-background-color);color:var(--ifm-footer-color);padding:var(--ifm-footer-padding-vertical) var(--ifm-footer-padding-horizontal)}.footer--dark{--ifm-footer-background-color:#303846;--ifm-footer-color:var(--ifm-footer-link-color);--ifm-footer-link-color:var(--ifm-color-secondary);--ifm-footer-title-color:var(--ifm-color-white);--ifm-footer-background-color:#2f334d}.footer__links{margin-bottom:1rem}.footer__link-item{color:var(--ifm-footer-link-color);line-height:2}.footer__link-item:hover{color:var(--ifm-footer-link-hover-color)}.footer__link-separator{margin:0 var(--ifm-footer-link-horizontal-spacing)}.footer__logo{margin-top:1rem;max-width:var(--ifm-footer-logo-max-width)}.footer__title{color:var(--ifm-footer-title-color);font:700 var(--ifm-h4-font-size)/var(--ifm-heading-line-height) var(--ifm-font-family-base);margin-bottom:var(--ifm-heading-margin-bottom)}.menu,.navbar__link{font-weight:var(--ifm-font-weight-semibold)}.docItemContainer_Djhp article>:first-child,.docItemContainer_Djhp header+*,.footer__item{margin-top:0}.admonitionContent_S0QG>:last-child,.collapsibleContent_i85q>:last-child,.footer__items,.searchResultItem_U687>h2,.tabItem_Ymn6>:last-child{margin-bottom:0}.codeBlockStandalone_MEMb,[type=checkbox]{padding:0}.hero{align-items:center;background-color:var(--ifm-hero-background-color);color:var(--ifm-hero-text-color);display:flex;padding:4rem 2rem}.hero--primary{--ifm-hero-background-color:var(--ifm-color-primary);--ifm-hero-text-color:var(--ifm-font-color-base-inverse)}.hero--dark{--ifm-hero-background-color:#303846;--ifm-hero-text-color:var(--ifm-color-white)}.hero__title{font-size:3rem}.hero__subtitle{font-size:1.5rem}.menu__list{margin:0;padding-left:0}.menu__caret,.menu__link{padding:var(--ifm-menu-link-padding-vertical) var(--ifm-menu-link-padding-horizontal)}.menu__list .menu__list{flex:0 0 100%;margin-top:.25rem;padding-left:var(--ifm-menu-link-padding-horizontal)}.menu__list-item:not(:first-child){margin-top:.25rem}.menu__list-item--collapsed .menu__list{height:0;overflow:hidden}.details_lb9f[data-collapsed=false].isBrowser_bmU9>summary:before,.details_lb9f[open]:not(.isBrowser_bmU9)>summary:before,.menu__list-item--collapsed .menu__caret:before,.menu__list-item--collapsed .menu__link--sublist:after{transform:rotate(90deg)}.menu__list-item-collapsible{display:flex;flex-wrap:wrap;position:relative}.menu__caret:hover,.menu__link:hover,.menu__list-item-collapsible--active,.menu__list-item-collapsible:hover{background:var(--ifm-menu-color-background-hover)}.menu__list-item-collapsible .menu__link--active,.menu__list-item-collapsible .menu__link:hover{background:none!important}.menu__caret,.menu__link{align-items:center;display:flex}.menu__link{color:var(--ifm-menu-color);flex:1;line-height:1.25}.menu__link:hover{color:var(--ifm-menu-color);text-decoration:none}.menu__caret:before,.menu__link--sublist-caret:after{height:1.25rem;transform:rotate(180deg);transition:transform var(--ifm-transition-fast) linear;width:1.25rem;filter:var(--ifm-menu-link-sublist-icon-filter);content:""}.menu__link--sublist-caret:after{background:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem;margin-left:auto;min-width:1.25rem}.menu__link--active,.menu__link--active:hover{color:var(--ifm-menu-color-active)}.navbar__brand,.navbar__link{color:var(--ifm-navbar-link-color)}.menu__link--active:not(.menu__link--sublist){background-color:var(--ifm-menu-color-background-active)}.menu__caret:before{background:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem}.navbar--dark,html[data-theme=dark]{--ifm-menu-link-sublist-icon-filter:invert(100%) sepia(94%) saturate(17%) hue-rotate(223deg) brightness(104%) contrast(98%)}.navbar{background-color:var(--ifm-navbar-background-color);box-shadow:var(--ifm-navbar-shadow);height:var(--ifm-navbar-height);padding:var(--ifm-navbar-padding-vertical) var(--ifm-navbar-padding-horizontal)}.navbar,.navbar>.container,.navbar>.container-fluid{display:flex}.navbar--fixed-top{position:sticky;top:0;z-index:var(--ifm-z-index-fixed)}.navbar-sidebar,.navbar-sidebar__backdrop{bottom:0;opacity:0;position:fixed;transition-duration:var(--ifm-transition-fast);transition-timing-function:ease-in-out;left:0;top:0;visibility:hidden}.navbar__inner{display:flex;flex-wrap:wrap;justify-content:space-between;width:100%}.navbar__brand{align-items:center;display:flex;margin-right:1rem;min-width:0}.navbar__brand:hover{color:var(--ifm-navbar-link-hover-color);text-decoration:none}.announcementBarContent_xLdY,.navbar__title{flex:1 1 auto}.navbar__toggle{display:none;margin-right:.5rem}.navbar__logo{flex:0 0 auto;height:2rem;margin-right:.5rem}.navbar__items{align-items:center;display:flex;flex:1;min-width:0}.navbar__items--center{flex:0 0 auto}.navbar__items--center .navbar__brand{margin:0}.navbar__items--center+.navbar__items--right{flex:1}.navbar__items--right{flex:0 0 auto;justify-content:flex-end}.navbar__items--right>:last-child{padding-right:0}.navbar__item{display:inline-block;padding:var(--ifm-navbar-item-padding-vertical) var(--ifm-navbar-item-padding-horizontal)}#nprogress,.navbar__item.dropdown .navbar__link:not([href]){pointer-events:none}.navbar__link--active,.navbar__link:hover{color:var(--ifm-navbar-link-hover-color);text-decoration:none}.navbar--dark,.navbar--primary{--ifm-menu-color:var(--ifm-color-gray-300);--ifm-navbar-link-color:var(--ifm-color-gray-100);--ifm-navbar-search-input-background-color:#ffffff1a;--ifm-navbar-search-input-placeholder-color:#ffffff80;color:var(--ifm-color-white)}.navbar--dark{--ifm-navbar-background-color:#242526;--ifm-menu-color-background-active:#ffffff0d;--ifm-navbar-search-input-color:var(--ifm-color-white)}.navbar--primary{--ifm-navbar-background-color:var(--ifm-color-primary);--ifm-navbar-link-hover-color:var(--ifm-color-white);--ifm-menu-color-active:var(--ifm-color-white);--ifm-navbar-search-input-color:var(--ifm-color-emphasis-500)}.navbar__search-input{-webkit-appearance:none;appearance:none;background:var(--ifm-navbar-search-input-background-color) var(--ifm-navbar-search-input-icon) no-repeat .75rem center/1rem 1rem;border:none;border-radius:2rem;color:var(--ifm-navbar-search-input-color);cursor:text;display:inline-block;font-size:.9rem;height:2rem;padding:0 .5rem 0 2.25rem;width:12.5rem}.navbar__search-input::placeholder{color:var(--ifm-navbar-search-input-placeholder-color)}.navbar-sidebar{background-color:var(--ifm-navbar-background-color);box-shadow:var(--ifm-global-shadow-md);transform:translate3d(-100%,0,0);transition-property:opacity,visibility,transform;width:var(--ifm-navbar-sidebar-width)}.navbar-sidebar--show .navbar-sidebar,.navbar-sidebar__items{transform:translateZ(0)}.navbar-sidebar--show .navbar-sidebar,.navbar-sidebar--show .navbar-sidebar__backdrop{opacity:1;visibility:visible}.navbar-sidebar__backdrop{background-color:#0009;right:0;transition-property:opacity,visibility}.navbar-sidebar__brand{align-items:center;box-shadow:var(--ifm-navbar-shadow);display:flex;flex:1;height:var(--ifm-navbar-height);padding:var(--ifm-navbar-padding-vertical) var(--ifm-navbar-padding-horizontal)}.navbar-sidebar__items{display:flex;height:calc(100% - var(--ifm-navbar-height));transition:transform var(--ifm-transition-fast) ease-in-out}.navbar-sidebar__items--show-secondary{transform:translate3d(calc((var(--ifm-navbar-sidebar-width))*-1),0,0)}.navbar-sidebar__item{flex-shrink:0;padding:.5rem;width:calc(var(--ifm-navbar-sidebar-width))}.navbar-sidebar__back{background:var(--ifm-menu-color-background-active);font-size:15px;font-weight:var(--ifm-button-font-weight);margin:0 0 .2rem -.5rem;padding:.6rem 1.5rem;position:relative;text-align:left;top:-.5rem;width:calc(100% + 1rem)}.navbar-sidebar__close{display:flex;margin-left:auto}.pagination{column-gap:var(--ifm-pagination-page-spacing);display:flex;font-size:var(--ifm-pagination-font-size);padding-left:0}.pagination--sm{--ifm-pagination-font-size:0.8rem;--ifm-pagination-padding-horizontal:0.8rem;--ifm-pagination-padding-vertical:0.2rem}.pagination--lg{--ifm-pagination-font-size:1.2rem;--ifm-pagination-padding-horizontal:1.2rem;--ifm-pagination-padding-vertical:0.3rem}.pagination__item{display:inline-flex}.pagination__item>span{padding:var(--ifm-pagination-padding-vertical)}.pagination__item--active .pagination__link{color:var(--ifm-pagination-color-active)}.pagination__item--active .pagination__link,.pagination__item:not(.pagination__item--active):hover .pagination__link{background:var(--ifm-pagination-item-active-background)}.pagination__item--disabled,.pagination__item[disabled]{opacity:.25;pointer-events:none}.pagination__link{border-radius:var(--ifm-pagination-border-radius);color:var(--ifm-font-color-base);display:inline-block;padding:var(--ifm-pagination-padding-vertical) var(--ifm-pagination-padding-horizontal);transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.pagination__link:hover{text-decoration:none}.pagination-nav{grid-gap:var(--ifm-spacing-horizontal);display:grid;gap:var(--ifm-spacing-horizontal);grid-template-columns:repeat(2,1fr)}.pagination-nav__link{border:1px solid var(--ifm-color-emphasis-300);border-radius:var(--ifm-pagination-nav-border-radius);display:block;height:100%;line-height:var(--ifm-heading-line-height);padding:var(--ifm-global-spacing);transition:border-color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.pagination-nav__link:hover{border-color:var(--ifm-pagination-nav-color-hover);text-decoration:none}.pagination-nav__link--next{grid-column:2/3;text-align:right}.pagination-nav__label{font-size:var(--ifm-h4-font-size);font-weight:var(--ifm-heading-font-weight);word-break:break-word}.pagination-nav__link--prev .pagination-nav__label:before{content:"« "}.pagination-nav__link--next .pagination-nav__label:after{content:" »"}.pagination-nav__sublabel{color:var(--ifm-color-content-secondary);font-size:var(--ifm-h5-font-size);font-weight:var(--ifm-font-weight-semibold);margin-bottom:.25rem}.pills__item,.tabs{font-weight:var(--ifm-font-weight-bold)}.pills{display:flex;gap:var(--ifm-pills-spacing);padding-left:0}.pills__item{border-radius:.5rem;cursor:pointer;display:inline-block;padding:.25rem 1rem;transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.tabs,:not(.containsTaskList_mC6p>li)>.containsTaskList_mC6p{padding-left:0}.pills__item--active{color:var(--ifm-pills-color-active)}.pills__item--active,.pills__item:not(.pills__item--active):hover{background:var(--ifm-pills-color-background-active)}.pills--block{justify-content:stretch}.pills--block .pills__item{flex-grow:1;text-align:center}.tabs{color:var(--ifm-tabs-color);display:flex;margin-bottom:0;overflow-x:auto}.tabs__item{border-bottom:3px solid #0000;border-radius:var(--ifm-global-radius);cursor:pointer;display:inline-flex;padding:var(--ifm-tabs-padding-vertical) var(--ifm-tabs-padding-horizontal);transition:background-color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.tabs__item--active{border-bottom-color:var(--ifm-tabs-color-active-border);border-bottom-left-radius:0;border-bottom-right-radius:0;color:var(--ifm-tabs-color-active)}.tabs__item:hover{background-color:var(--ifm-hover-overlay)}.tabs--block{justify-content:stretch}.tabs--block .tabs__item{flex-grow:1;justify-content:center}html[data-theme=dark]{--ifm-color-scheme:dark;--ifm-color-emphasis-0:var(--ifm-color-gray-1000);--ifm-color-emphasis-100:var(--ifm-color-gray-900);--ifm-color-emphasis-200:var(--ifm-color-gray-800);--ifm-color-emphasis-300:var(--ifm-color-gray-700);--ifm-color-emphasis-400:var(--ifm-color-gray-600);--ifm-color-emphasis-600:var(--ifm-color-gray-400);--ifm-color-emphasis-700:var(--ifm-color-gray-300);--ifm-color-emphasis-800:var(--ifm-color-gray-200);--ifm-color-emphasis-900:var(--ifm-color-gray-100);--ifm-color-emphasis-1000:var(--ifm-color-gray-0);--ifm-background-color:#1b1b1d;--ifm-background-surface-color:#242526;--ifm-hover-overlay:#ffffff0d;--ifm-color-content:#e3e3e3;--ifm-color-content-secondary:#fff;--ifm-breadcrumb-separator-filter:invert(64%) sepia(11%) saturate(0%) hue-rotate(149deg) brightness(99%) contrast(95%);--ifm-code-background:#ffffff1a;--ifm-scrollbar-track-background-color:#444;--ifm-scrollbar-thumb-background-color:#686868;--ifm-scrollbar-thumb-hover-background-color:#7a7a7a;--ifm-table-stripe-background:#ffffff12;--ifm-toc-border-color:var(--ifm-color-emphasis-200);--ifm-color-primary-contrast-background:#102445;--ifm-color-primary-contrast-foreground:#ebf2fc;--ifm-color-secondary-contrast-background:#474748;--ifm-color-secondary-contrast-foreground:#fdfdfe;--ifm-color-success-contrast-background:#003100;--ifm-color-success-contrast-foreground:#e6f6e6;--ifm-color-info-contrast-background:#193c47;--ifm-color-info-contrast-foreground:#eef9fd;--ifm-color-warning-contrast-background:#4d3800;--ifm-color-warning-contrast-foreground:#fff8e6;--ifm-color-danger-contrast-background:#4b1113;--ifm-color-danger-contrast-foreground:#ffebec;--primary-bg:#222436;--ifm-background-color:#1e2030;--ifm-background-surface-color:#222436}#nprogress .bar{background:var(--docusaurus-progress-bar-color);height:2px;left:0;position:fixed;top:0;width:100%;z-index:1031}#nprogress .peg{box-shadow:0 0 10px var(--docusaurus-progress-bar-color),0 0 5px var(--docusaurus-progress-bar-color);height:100%;opacity:1;position:absolute;right:0;transform:rotate(3deg) translateY(-4px);width:100px}[data-theme=dark]{--ifm-color-primary:#82aaff;--ifm-color-primary-dark:#5b90ff;--ifm-color-primary-darker:#4883ff;--ifm-color-primary-darkest:#0f5bff;--ifm-color-primary-light:#a8c4ff;--ifm-color-primary-lighter:#bcd1ff;--ifm-color-primary-lightest:#f5f9ff;--ifm-background-color:#222436;--ifm-background-color:#1e2030;--ifm-heading-color:#bcd1ff;--ifm-navbar-search-input-background-color:#2f334d}.logosvg{max-width:570px}.logosvg path,.navbar__logo img,.social:hover path{fill:var(--ifm-color-primary)}.social{align-items:center;display:flex;gap:1rem;padding:0}.social path{fill:var(--ifm-navbar-link-color)}body:not(.navigation-with-keyboard) :not(input):focus{outline:0}#__docusaurus-base-url-issue-banner-container,.hideAction_vcyE>svg,.themedImage_ToTc,[data-theme=dark] .lightToggleIcon_pyhR,[data-theme=light] .darkToggleIcon_wfgR,html[data-announcement-bar-initially-dismissed=true] .announcementBar_mb4j{display:none}.skipToContent_fXgn{background-color:var(--ifm-background-surface-color);color:var(--ifm-color-emphasis-900);left:100%;padding:calc(var(--ifm-global-spacing)/2) var(--ifm-global-spacing);position:fixed;top:1rem;z-index:calc(var(--ifm-z-index-fixed) + 1)}.skipToContent_fXgn:focus{box-shadow:var(--ifm-global-shadow-md);left:1rem}.closeButton_CVFx{line-height:0;padding:0}.content_knG7{font-size:85%;padding:5px 0;text-align:center}.content_knG7 a{color:inherit}.announcementBar_mb4j{align-items:center;background-color:var(--ifm-color-white);border-bottom:1px solid var(--ifm-color-emphasis-100);color:var(--ifm-color-black);display:flex;height:var(--docusaurus-announcement-bar-height)}.announcementBarPlaceholder_vyr4{flex:0 0 10px}.announcementBarClose_gvF7{align-self:stretch;flex:0 0 30px}.toggle_vylO{height:2rem;width:2rem}.toggleButton_gllP{align-items:center;border-radius:50%;display:flex;height:100%;justify-content:center;transition:background var(--ifm-transition-fast);width:100%}.toggleButton_gllP:hover{background:var(--ifm-color-emphasis-200)}.toggleButtonDisabled_aARS{cursor:not-allowed}.darkNavbarColorModeToggle_X3D1:hover{background:var(--ifm-color-gray-800)}[data-theme=dark] .themedImage--dark_i4oU,[data-theme=light] .themedImage--light_HNdA,html:not([data-theme]) .themedComponent--light_NU7w{display:initial}.iconExternalLink_nPIU{margin-left:.3rem}.iconLanguage_nlXk{margin-right:5px;vertical-align:text-bottom}.searchBar_RVTs .dropdownMenu_qbY6{background:var(--search-local-modal-background,#f5f6f7);border-radius:6px;box-shadow:var(--search-local-modal-shadow,inset 1px 1px 0 0 #ffffff80,0 3px 8px 0 #555a64);left:auto!important;margin-top:8px;padding:var(--search-local-spacing,12px);position:relative;right:0!important;width:var(--search-local-modal-width,560px)}html[data-theme=dark] .searchBar_RVTs .dropdownMenu_qbY6{background:var(--search-local-modal-background,var(--ifm-background-color));box-shadow:var(--search-local-modal-shadow,inset 1px 1px 0 0 #2c2e40,0 3px 8px 0 #000309)}.searchBar_RVTs .dropdownMenu_qbY6 .suggestion_fB_2{align-items:center;background:var(--search-local-hit-background,#fff);border-radius:4px;box-shadow:var(--search-local-hit-shadow,0 1px 3px 0 #d4d9e1);color:var(--search-local-hit-color,#444950);cursor:pointer;display:flex;flex-direction:row;height:var(--search-local-hit-height,56px);padding:0 var(--search-local-spacing,12px);width:100%}.hitTree_kk6K,.noResults_l6Q3{align-items:center;display:flex}html[data-theme=dark] .dropdownMenu_qbY6 .suggestion_fB_2{background:var(--search-local-hit-background,var(--ifm-color-emphasis-100));box-shadow:var(--search-local-hit-shadow,none);color:var(--search-local-hit-color,var(--ifm-font-color-base))}.searchBar_RVTs .dropdownMenu_qbY6 .suggestion_fB_2:not(:last-child){margin-bottom:4px}.searchBar_RVTs .dropdownMenu_qbY6 .suggestion_fB_2.cursor_eG29{background-color:var(--search-local-highlight-color,var(--ifm-color-primary))}.hitFooter_E9YW a,.hitIcon_a7Zy,.hitPath_ieM4,.hitTree_kk6K,.noResultsIcon_EBY5{color:var(--search-local-muted-color,#969faf)}html[data-theme=dark] .hitIcon_a7Zy,html[data-theme=dark] .hitPath_ieM4,html[data-theme=dark] .hitTree_kk6K,html[data-theme=dark] .noResultsIcon_EBY5{color:var(--search-local-muted-color,var(--ifm-color-secondary-darkest))}.hitTree_kk6K>svg{height:var(--search-local-hit-height,56px);opacity:.5;width:24px}.hitIcon_a7Zy,.hitTree_kk6K>svg{stroke-width:var(--search-local-icon-stroke-width,1.4)}.hitAction_NqkB,.hitIcon_a7Zy{height:20px;width:20px}.hitWrapper_sAK8{display:flex;flex:1 1 auto;flex-direction:column;font-weight:500;justify-content:center;margin:0 8px;overflow-x:hidden;width:80%}.hitWrapper_sAK8 mark{background:none;color:var(--search-local-highlight-color,var(--ifm-color-primary))}.hitTitle_vyVt{font-size:.9em}.hitPath_ieM4{font-size:.75em}.hitPath_ieM4,.hitTitle_vyVt{overflow-x:hidden;text-overflow:ellipsis;white-space:nowrap}.noResults_l6Q3{flex-direction:column;justify-content:center;padding:var(--search-local-spacing,12px) 0}.noResultsIcon_EBY5{margin-bottom:var(--search-local-spacing,12px)}.hitFooter_E9YW{font-size:.85em;margin-top:var(--search-local-spacing,12px);text-align:center}.cursor_eG29 .hideAction_vcyE>svg,.tocCollapsibleContent_vkbj a{display:block}.suggestion_fB_2.cursor_eG29,.suggestion_fB_2.cursor_eG29 .hitIcon_a7Zy,.suggestion_fB_2.cursor_eG29 .hitPath_ieM4,.suggestion_fB_2.cursor_eG29 .hitTree_kk6K,.suggestion_fB_2.cursor_eG29 mark{color:var(--search-local-hit-active-color,var(--ifm-color-white))!important}.searchBarContainer_NW3z{margin-left:16px}.searchBarContainer_NW3z .searchBarLoadingRing_YnHq{display:none;left:10px;position:absolute;top:6px}.searchBarContainer_NW3z .searchClearButton_qk4g{background:none;border:none;line-height:1rem;padding:0;position:absolute;right:.8rem;top:50%;transform:translateY(-50%)}.navbar__search{position:relative}.searchIndexLoading_EJ1f .navbar__search-input{background-image:none}.searchHintContainer_Pkmr{align-items:center;display:flex;gap:4px;height:100%;justify-content:center;pointer-events:none;position:absolute;right:10px;top:0}.searchHint_iIMx{background-color:var(--ifm-navbar-search-input-background-color);border:1px solid var(--ifm-color-emphasis-500);box-shadow:inset 0 -1px 0 var(--ifm-color-emphasis-500);color:var(--ifm-navbar-search-input-placeholder-color)}.loadingRing_RJI3{display:inline-block;height:20px;opacity:var(--search-local-loading-icon-opacity,.5);position:relative;width:20px}.loadingRing_RJI3 div{animation:1.2s cubic-bezier(.5,0,.5,1) infinite a;border:2px solid var(--search-load-loading-icon-color,var(--ifm-navbar-search-input-color));border-color:var(--search-load-loading-icon-color,var(--ifm-navbar-search-input-color)) #0000 #0000 #0000;border-radius:50%;display:block;height:16px;margin:2px;position:absolute;width:16px}.loadingRing_RJI3 div:first-child{animation-delay:-.45s}.loadingRing_RJI3 div:nth-child(2){animation-delay:-.3s}.loadingRing_RJI3 div:nth-child(3){animation-delay:-.15s}@keyframes a{0%{transform:rotate(0)}to{transform:rotate(1turn)}}.navbarHideable_m1mJ{transition:transform var(--ifm-transition-fast) ease}.navbarHidden_jGov{transform:translate3d(0,calc(-100% - 2px),0)}.errorBoundaryError_a6uf{color:red;white-space:pre-wrap}.footerLogoLink_BH7S{opacity:.5;transition:opacity var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.footerLogoLink_BH7S:hover,.hash-link:focus,:hover>.hash-link{opacity:1}.mainWrapper_z2l0{display:flex;flex:1 0 auto;flex-direction:column}.docusaurus-mt-lg{margin-top:3rem}#__docusaurus{display:flex;flex-direction:column;min-height:100%}.iconEdit_Z9Sw{margin-right:.3em;vertical-align:sub}.tag_zVej{border:1px solid var(--docusaurus-tag-list-border);transition:border var(--ifm-transition-fast)}.tag_zVej:hover{--docusaurus-tag-list-border:var(--ifm-link-color);text-decoration:none}.tagRegular_sFm0{border-radius:var(--ifm-global-radius);font-size:90%;padding:.2rem .5rem .3rem}.tagWithCount_h2kH{align-items:center;border-left:0;display:flex;padding:0 .5rem 0 1rem;position:relative}.tagWithCount_h2kH:after,.tagWithCount_h2kH:before{border:1px solid var(--docusaurus-tag-list-border);content:"";position:absolute;top:50%;transition:inherit}.tagWithCount_h2kH:before{border-bottom:0;border-right:0;height:1.18rem;right:100%;transform:translate(50%,-50%) rotate(-45deg);width:1.18rem}.tagWithCount_h2kH:after{border-radius:50%;height:.5rem;left:0;transform:translateY(-50%);width:.5rem}.tagWithCount_h2kH span{background:var(--ifm-color-secondary);border-radius:var(--ifm-global-radius);color:var(--ifm-color-black);font-size:.7rem;line-height:1.2;margin-left:.3rem;padding:.1rem .4rem}.tags_jXut{display:inline}.tag_QGVx{display:inline-block;margin:0 .4rem .5rem 0}.lastUpdated_vwxv{font-size:smaller;font-style:italic;margin-top:.2rem}.tocCollapsibleButton_TO0P{align-items:center;display:flex;font-size:inherit;justify-content:space-between;padding:.4rem .8rem;width:100%}.tocCollapsibleButton_TO0P:after{background:var(--ifm-menu-link-sublist-icon) 50% 50%/2rem 2rem no-repeat;content:"";filter:var(--ifm-menu-link-sublist-icon-filter);height:1.25rem;transform:rotate(180deg);transition:transform var(--ifm-transition-fast);width:1.25rem}.tocCollapsibleButtonExpanded_MG3E:after,.tocCollapsibleExpanded_sAul{transform:none}.tocCollapsible_ETCw{background-color:var(--ifm-menu-color-background-active);border-radius:var(--ifm-global-radius);margin:1rem 0}.buttonGroup__atx button,.codeBlockContainer_Ckt0{background:var(--prism-background-color);color:var(--prism-color)}.tocCollapsibleContent_vkbj>ul{border-left:none;border-top:1px solid var(--ifm-color-emphasis-300);font-size:15px;padding:.2rem 0}.tocCollapsibleContent_vkbj ul li{margin:.4rem .8rem}.tableOfContents_bqdL{max-height:calc(100vh - var(--ifm-navbar-height) - 2rem);overflow-y:auto;position:sticky;top:calc(var(--ifm-navbar-height) + 1rem)}.anchorWithStickyNavbar_LWe7{scroll-margin-top:calc(var(--ifm-navbar-height) + .5rem)}.anchorWithHideOnScrollNavbar_WYt5{scroll-margin-top:.5rem}.hash-link{opacity:0;padding-left:.5rem;transition:opacity var(--ifm-transition-fast);-webkit-user-select:none;user-select:none}.hash-link:before{content:"#"}.codeBlockContainer_Ckt0{border-radius:var(--ifm-code-border-radius);box-shadow:var(--ifm-global-shadow-lw);margin-bottom:var(--ifm-leading)}.codeBlockContent_biex{border-radius:inherit;direction:ltr;position:relative}.codeBlockTitle_Ktv7{border-bottom:1px solid var(--ifm-color-emphasis-300);border-top-left-radius:inherit;border-top-right-radius:inherit;font-size:var(--ifm-code-font-size);font-weight:500;padding:.75rem var(--ifm-pre-padding)}.codeBlock_bY9V{--ifm-pre-background:var(--prism-background-color);margin:0;padding:0}.codeBlockTitle_Ktv7+.codeBlockContent_biex .codeBlock_bY9V{border-top-left-radius:0;border-top-right-radius:0}.codeBlockLines_e6Vv{float:left;font:inherit;min-width:100%;padding:var(--ifm-pre-padding)}.codeBlockLinesWithNumbering_o6Pm{display:table;padding:var(--ifm-pre-padding) 0}.buttonGroup__atx{column-gap:.2rem;display:flex;position:absolute;right:calc(var(--ifm-pre-padding)/2);top:calc(var(--ifm-pre-padding)/2)}.buttonGroup__atx button{align-items:center;border:1px solid var(--ifm-color-emphasis-300);border-radius:var(--ifm-global-radius);display:flex;line-height:0;opacity:0;padding:.4rem;transition:opacity var(--ifm-transition-fast) ease-in-out}.buttonGroup__atx button:focus-visible,.buttonGroup__atx button:hover{opacity:1!important}.theme-code-block:hover .buttonGroup__atx button{opacity:.4}:where(:root){--docusaurus-highlighted-code-line-bg:#484d5b}:where([data-theme=dark]){--docusaurus-highlighted-code-line-bg:#646464}.theme-code-block-highlighted-line{background-color:var(--docusaurus-highlighted-code-line-bg);display:block;margin:0 calc(var(--ifm-pre-padding)*-1);padding:0 var(--ifm-pre-padding)}.codeLine_lJS_{counter-increment:a;display:table-row}.codeLineNumber_Tfdd{background:var(--ifm-pre-background);display:table-cell;left:0;overflow-wrap:normal;padding:0 var(--ifm-pre-padding);position:sticky;text-align:right;width:1%}.codeLineNumber_Tfdd:before{content:counter(a);opacity:.4}.codeLineContent_feaV{padding-right:var(--ifm-pre-padding)}.theme-code-block:hover .copyButtonCopied_obH4{opacity:1!important}.copyButtonIcons_eSgA{height:1.125rem;position:relative;width:1.125rem}.copyButtonIcon_y97N,.copyButtonSuccessIcon_LjdS{fill:currentColor;height:inherit;left:0;opacity:inherit;position:absolute;top:0;transition:all var(--ifm-transition-fast) ease;width:inherit}.copyButtonSuccessIcon_LjdS{color:#00d600;left:50%;opacity:0;top:50%;transform:translate(-50%,-50%) scale(.33)}.copyButtonCopied_obH4 .copyButtonIcon_y97N{opacity:0;transform:scale(.33)}.copyButtonCopied_obH4 .copyButtonSuccessIcon_LjdS{opacity:1;transform:translate(-50%,-50%) scale(1);transition-delay:75ms}.wordWrapButtonIcon_Bwma{height:1.2rem;width:1.2rem}.details_lb9f{--docusaurus-details-summary-arrow-size:0.38rem;--docusaurus-details-transition:transform 200ms ease;--docusaurus-details-decoration-color:grey}.details_lb9f>summary{cursor:pointer;padding-left:1rem;position:relative}.details_lb9f>summary::-webkit-details-marker{display:none}.details_lb9f>summary:before{border-color:#0000 #0000 #0000 var(--docusaurus-details-decoration-color);border-style:solid;border-width:var(--docusaurus-details-summary-arrow-size);content:"";left:0;position:absolute;top:.45rem;transform:rotate(0);transform-origin:calc(var(--docusaurus-details-summary-arrow-size)/2) 50%;transition:var(--docusaurus-details-transition)}.collapsibleContent_i85q{border-top:1px solid var(--docusaurus-details-decoration-color);margin-top:1rem;padding-top:1rem}.details_b_Ee{--docusaurus-details-decoration-color:var(--ifm-alert-border-color);--docusaurus-details-transition:transform var(--ifm-transition-fast) ease;border:1px solid var(--ifm-alert-border-color);margin:0 0 var(--ifm-spacing-vertical)}.img_ev3q{height:auto}.admonition_LlT9{margin-bottom:1em}.admonitionHeading_tbUL{font:var(--ifm-heading-font-weight) var(--ifm-h5-font-size)/var(--ifm-heading-line-height) var(--ifm-heading-font-family);margin-bottom:.3rem}.admonitionHeading_tbUL code{text-transform:none}.admonitionIcon_kALy{display:inline-block;margin-right:.4em;vertical-align:middle}.admonitionIcon_kALy svg{fill:var(--ifm-alert-foreground-color);display:inline-block;height:1.6em;width:1.6em}.breadcrumbHomeIcon_YNFT{height:1.1rem;position:relative;top:1px;vertical-align:top;width:1.1rem}.breadcrumbsContainer_Z_bl{--ifm-breadcrumb-size-multiplier:0.8;margin-bottom:.8rem}.searchQueryInput_CFBF{background:var(--ifm-background-color);border:var(--ifm-global-border-width) solid var(--ifm-color-content-secondary);border-radius:var(--ifm-global-radius);color:var(--ifm-font-color-base);font-size:var(--ifm-font-size-base);margin-bottom:1rem;padding:.5rem;width:100%}.searchResultItem_U687{border-bottom:1px solid #dfe3e8;padding:1rem 0}.searchResultItemPath_uIbk{color:var(--ifm-color-content-secondary);font-size:.8rem;margin:.5rem 0 0}.searchResultItemSummary_oZHr{font-style:italic;margin:.5rem 0 0}.backToTopButton_sjWU{background-color:var(--ifm-color-emphasis-200);border-radius:50%;bottom:1.3rem;box-shadow:var(--ifm-global-shadow-lw);height:3rem;opacity:0;position:fixed;right:1.3rem;transform:scale(0);transition:all var(--ifm-transition-fast) var(--ifm-transition-timing-default);visibility:hidden;width:3rem;z-index:calc(var(--ifm-z-index-fixed) - 1)}.backToTopButton_sjWU:after{background-color:var(--ifm-color-emphasis-1000);content:" ";display:inline-block;height:100%;-webkit-mask:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem no-repeat;mask:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem no-repeat;width:100%}.backToTopButtonShow_xfvO{opacity:1;transform:scale(1);visibility:visible}[data-theme=dark]:root{--docusaurus-collapse-button-bg:#ffffff0d;--docusaurus-collapse-button-bg-hover:#ffffff1a}.collapseSidebarButton_PEFL{display:none;margin:0}.docSidebarContainer_b6E3,.sidebarLogo_isFc{display:none}.docMainContainer_gTbr,.docPage__5DB{display:flex;width:100%}.docPage__5DB{flex:1 0}.docsWrapper_BCFX{display:flex;flex:1 0 auto}@media (min-width:997px){.collapseSidebarButton_PEFL,.expandButton_m80_{background-color:var(--docusaurus-collapse-button-bg)}:root{--docusaurus-announcement-bar-height:30px}.announcementBarClose_gvF7,.announcementBarPlaceholder_vyr4{flex-basis:50px}.searchBox_ZlJk{padding:var(--ifm-navbar-item-padding-vertical) var(--ifm-navbar-item-padding-horizontal)}.lastUpdated_vwxv{text-align:right}.tocMobile_ITEo{display:none}.docItemCol_VOVn{max-width:75%!important}.collapseSidebarButton_PEFL{border:1px solid var(--ifm-toc-border-color);border-radius:0;bottom:0;display:block!important;height:40px;position:sticky}.collapseSidebarButtonIcon_kv0_{margin-top:4px;transform:rotate(180deg)}.expandButtonIcon_BlDH,[dir=rtl] .collapseSidebarButtonIcon_kv0_{transform:rotate(0)}.collapseSidebarButton_PEFL:focus,.collapseSidebarButton_PEFL:hover,.expandButton_m80_:focus,.expandButton_m80_:hover{background-color:var(--docusaurus-collapse-button-bg-hover)}.menuHtmlItem_M9Kj{padding:var(--ifm-menu-link-padding-vertical) var(--ifm-menu-link-padding-horizontal)}.menu_SIkG{flex-grow:1;padding:.5rem}@supports (scrollbar-gutter:stable){.menu_SIkG{padding:.5rem 0 .5rem .5rem;scrollbar-gutter:stable}}.menuWithAnnouncementBar_GW3s{margin-bottom:var(--docusaurus-announcement-bar-height)}.sidebar_njMd{display:flex;flex-direction:column;height:100%;padding-top:var(--ifm-navbar-height);width:var(--doc-sidebar-width)}.sidebarWithHideableNavbar_wUlq{padding-top:0}.sidebarHidden_VK0M{opacity:0;visibility:hidden}.sidebarLogo_isFc{align-items:center;color:inherit!important;display:flex!important;margin:0 var(--ifm-navbar-padding-horizontal);max-height:var(--ifm-navbar-height);min-height:var(--ifm-navbar-height);text-decoration:none!important}.sidebarLogo_isFc img{height:2rem;margin-right:.5rem}.expandButton_m80_{align-items:center;display:flex;height:100%;justify-content:center;position:absolute;right:0;top:0;transition:background-color var(--ifm-transition-fast) ease;width:100%}[dir=rtl] .expandButtonIcon_BlDH{transform:rotate(180deg)}.docSidebarContainer_b6E3{border-right:1px solid var(--ifm-toc-border-color);-webkit-clip-path:inset(0);clip-path:inset(0);display:block;margin-top:calc(var(--ifm-navbar-height)*-1);transition:width var(--ifm-transition-fast) ease;width:var(--doc-sidebar-width);will-change:width}.docSidebarContainerHidden_b3ry{cursor:pointer;width:var(--doc-sidebar-hidden-width)}.sidebarViewport_Xe31{height:100%;max-height:100vh;position:sticky;top:0}.docMainContainer_gTbr{flex-grow:1;max-width:calc(100% - var(--doc-sidebar-width))}.docMainContainerEnhanced_Uz_u{max-width:calc(100% - var(--doc-sidebar-hidden-width))}.docItemWrapperEnhanced_czyv{max-width:calc(var(--ifm-container-width) + var(--doc-sidebar-width))!important}}@media (min-width:1440px){.container{max-width:var(--ifm-container-width-xl)}}@media (max-width:996px){.col{--ifm-col-width:100%;flex-basis:var(--ifm-col-width);margin-left:0}.footer{--ifm-footer-padding-horizontal:0}.colorModeToggle_DEke,.footer__link-separator,.navbar__item,.tableOfContents_bqdL{display:none}.footer__col{margin-bottom:calc(var(--ifm-spacing-vertical)*3)}.footer__link-item{display:block}.hero{padding-left:0;padding-right:0}.navbar>.container,.navbar>.container-fluid{padding:0}.navbar__toggle{display:inherit}.navbar__search-input{width:9rem}.pills--block,.tabs--block{flex-direction:column}.searchBox_ZlJk{position:absolute;right:var(--ifm-navbar-padding-horizontal)}.docItemContainer_F8PC{padding:0 .3rem}}@media not (max-width:996px){.searchBar_RVTs.searchBarLeft_MXDe .dropdownMenu_qbY6{left:0!important;right:auto!important}}@media screen and (max-width:996px){.social{display:none}}@media (max-width:576px){.markdown h1:first-child{--ifm-h1-font-size:2rem}.markdown>h2{--ifm-h2-font-size:1.5rem}.markdown>h3{--ifm-h3-font-size:1.25rem}.navbar__search-input:not(:focus){width:2rem}.searchBar_RVTs .dropdownMenu_qbY6{max-width:calc(100vw - var(--ifm-navbar-padding-horizontal)*2);width:var(--search-local-modal-width-sm,340px)}.searchBarContainer_NW3z:not(.focused_OWtg) .searchClearButton_qk4g,.searchHintContainer_Pkmr{display:none}}@media (hover:hover){.backToTopButton_sjWU:hover{background-color:var(--ifm-color-emphasis-300)}}@media (pointer:fine){.thin-scrollbar{scrollbar-width:thin}.thin-scrollbar::-webkit-scrollbar{height:var(--ifm-scrollbar-size);width:var(--ifm-scrollbar-size)}.thin-scrollbar::-webkit-scrollbar-track{background:var(--ifm-scrollbar-track-background-color);border-radius:10px}.thin-scrollbar::-webkit-scrollbar-thumb{background:var(--ifm-scrollbar-thumb-background-color);border-radius:10px}.thin-scrollbar::-webkit-scrollbar-thumb:hover{background:var(--ifm-scrollbar-thumb-hover-background-color)}}@media (prefers-reduced-motion:reduce){:root{--ifm-transition-fast:0ms;--ifm-transition-slow:0ms}}@media print{.announcementBar_mb4j,.footer,.menu,.navbar,.pagination-nav,.table-of-contents,.tocMobile_ITEo{display:none}.tabs{page-break-inside:avoid}.codeBlockLines_e6Vv{white-space:pre-wrap}} \ No newline at end of file diff --git a/assets/js/0002c181.c126a812.js b/assets/js/0002c181.c126a812.js new file mode 100644 index 0000000000..280bda91e7 --- /dev/null +++ b/assets/js/0002c181.c126a812.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklazyvim=self.webpackChunklazyvim||[]).push([[5227],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>f});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var i=r.createContext({}),u=function(e){var t=r.useContext(i),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},c=function(e){var t=u(e.components);return r.createElement(i.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,l=e.originalType,i=e.parentName,c=s(e,["components","mdxType","originalType","parentName"]),p=u(n),d=a,f=p["".concat(i,".").concat(d)]||p[d]||m[d]||l;return n?r.createElement(f,o(o({ref:t},c),{},{components:n})):r.createElement(f,o({ref:t},c))}));function f(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var l=n.length,o=new Array(l);o[0]=d;var s={};for(var i in t)hasOwnProperty.call(t,i)&&(s[i]=t[i]);s.originalType=e,s[p]="string"==typeof e?e:a,o[1]=s;for(var u=2;u{n.d(t,{Z:()=>o});var r=n(7294),a=n(6010);const l="tabItem_Ymn6";function o(e){let{children:t,hidden:n,className:o}=e;return r.createElement("div",{role:"tabpanel",className:(0,a.Z)(l,o),hidden:n},t)}},4866:(e,t,n)=>{n.d(t,{Z:()=>T});var r=n(7462),a=n(7294),l=n(6010),o=n(2466),s=n(6550),i=n(1980),u=n(7392),c=n(12);function p(e){return function(e){return a.Children.map(e,(e=>{if(!e||(0,a.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw new Error(`Docusaurus error: Bad child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:t,label:n,attributes:r,default:a}}=e;return{value:t,label:n,attributes:r,default:a}}))}function m(e){const{values:t,children:n}=e;return(0,a.useMemo)((()=>{const e=t??p(n);return function(e){const t=(0,u.l)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in . Every value needs to be unique.`)}(e),e}),[t,n])}function d(e){let{value:t,tabValues:n}=e;return n.some((e=>e.value===t))}function f(e){let{queryString:t=!1,groupId:n}=e;const r=(0,s.k6)(),l=function(e){let{queryString:t=!1,groupId:n}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!n)throw new Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return n??null}({queryString:t,groupId:n});return[(0,i._X)(l),(0,a.useCallback)((e=>{if(!l)return;const t=new URLSearchParams(r.location.search);t.set(l,e),r.replace({...r.location,search:t.toString()})}),[l,r])]}function v(e){const{defaultValue:t,queryString:n=!1,groupId:r}=e,l=m(e),[o,s]=(0,a.useState)((()=>function(e){let{defaultValue:t,tabValues:n}=e;if(0===n.length)throw new Error("Docusaurus error: the component requires at least one children component");if(t){if(!d({value:t,tabValues:n}))throw new Error(`Docusaurus error: The has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${n.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const r=n.find((e=>e.default))??n[0];if(!r)throw new Error("Unexpected error: 0 tabValues");return r.value}({defaultValue:t,tabValues:l}))),[i,u]=f({queryString:n,groupId:r}),[p,v]=function(e){let{groupId:t}=e;const n=function(e){return e?`docusaurus.tab.${e}`:null}(t),[r,l]=(0,c.Nk)(n);return[r,(0,a.useCallback)((e=>{n&&l.set(e)}),[n,l])]}({groupId:r}),g=(()=>{const e=i??p;return d({value:e,tabValues:l})?e:null})();(0,a.useLayoutEffect)((()=>{g&&s(g)}),[g]);return{selectedValue:o,selectValue:(0,a.useCallback)((e=>{if(!d({value:e,tabValues:l}))throw new Error(`Can't select invalid tab value=${e}`);s(e),u(e),v(e)}),[u,v,l]),tabValues:l}}var g=n(2389);const b="tabList__CuJ",y="tabItem_LNqP";function h(e){let{className:t,block:n,selectedValue:s,selectValue:i,tabValues:u}=e;const c=[],{blockElementScrollPositionUntilNextRender:p}=(0,o.o5)(),m=e=>{const t=e.currentTarget,n=c.indexOf(t),r=u[n].value;r!==s&&(p(t),i(r))},d=e=>{let t=null;switch(e.key){case"Enter":m(e);break;case"ArrowRight":{const n=c.indexOf(e.currentTarget)+1;t=c[n]??c[0];break}case"ArrowLeft":{const n=c.indexOf(e.currentTarget)-1;t=c[n]??c[c.length-1];break}}t?.focus()};return a.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,l.Z)("tabs",{"tabs--block":n},t)},u.map((e=>{let{value:t,label:n,attributes:o}=e;return a.createElement("li",(0,r.Z)({role:"tab",tabIndex:s===t?0:-1,"aria-selected":s===t,key:t,ref:e=>c.push(e),onKeyDown:d,onClick:m},o,{className:(0,l.Z)("tabs__item",y,o?.className,{"tabs__item--active":s===t})}),n??t)})))}function k(e){let{lazy:t,children:n,selectedValue:r}=e;const l=(Array.isArray(n)?n:[n]).filter(Boolean);if(t){const e=l.find((e=>e.props.value===r));return e?(0,a.cloneElement)(e,{className:"margin-top--md"}):null}return a.createElement("div",{className:"margin-top--md"},l.map(((e,t)=>(0,a.cloneElement)(e,{key:t,hidden:e.props.value!==r}))))}function x(e){const t=v(e);return a.createElement("div",{className:(0,l.Z)("tabs-container",b)},a.createElement(h,(0,r.Z)({},e,t)),a.createElement(k,(0,r.Z)({},e,t)))}function T(e){const t=(0,g.Z)();return a.createElement(x,(0,r.Z)({key:String(t)},e))}},1060:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>d,frontMatter:()=>s,metadata:()=>u,toc:()=>p});var r=n(7462),a=(n(7294),n(3905)),l=n(4866),o=n(5162);const s={},i="Svelte",u={unversionedId:"extras/lang/svelte",id:"extras/lang/svelte",title:"Svelte",description:"You can enable the extra with the :LazyExtras command.",source:"@site/docs/extras/lang/svelte.md",sourceDirName:"extras/lang",slug:"/extras/lang/svelte",permalink:"/extras/lang/svelte",draft:!1,editUrl:"https://github.com/LazyVim/lazyvim.github.io/tree/main/docs/extras/lang/svelte.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Sql",permalink:"/extras/lang/sql"},next:{title:"Tailwind CSS",permalink:"/extras/lang/tailwind"}},c={},p=[{value:"Includes the following extras",id:"includes-the-following-extras",level:3},{value:"nvim-treesitter",id:"nvim-treesitter",level:2},{value:"nvim-lspconfig",id:"nvim-lspconfig",level:2},{value:"nvim-lspconfig",id:"nvim-lspconfig-1",level:2},{value:"conform.nvim",id:"conformnvim",level:2}],m={toc:p};function d(e){let{components:t,...n}=e;return(0,a.kt)("wrapper",(0,r.Z)({},m,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"svelte"},(0,a.kt)("inlineCode",{parentName:"h1"},"Svelte")),(0,a.kt)("admonition",{type:"info"},(0,a.kt)("p",{parentName:"admonition"},"You can enable the extra with the ",(0,a.kt)("inlineCode",{parentName:"p"},":LazyExtras")," command.\nPlugins marked as optional will only be configured if they are installed.")),(0,a.kt)("p",null,"Below you can find a list of included plugins and their default settings."),(0,a.kt)("admonition",{type:"caution"},(0,a.kt)("p",{parentName:"admonition"},"You don't need to copy the default settings to your config.\nThey are only shown here for reference.")),(0,a.kt)("h3",{id:"includes-the-following-extras"},"Includes the following extras"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"/extras/lang/typescript"},"lang.typescript"))),(0,a.kt)("h2",{id:"nvim-treesitter"},(0,a.kt)("a",{parentName:"h2",href:"https://github.com/nvim-treesitter/nvim-treesitter"},"nvim-treesitter")),(0,a.kt)(l.Z,{mdxType:"Tabs"},(0,a.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'opts = { ensure_installed = { "svelte" } }\n'))),(0,a.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "nvim-treesitter/nvim-treesitter",\n opts = { ensure_installed = { "svelte" } },\n}\n')))),(0,a.kt)("h2",{id:"nvim-lspconfig"},(0,a.kt)("a",{parentName:"h2",href:"https://github.com/neovim/nvim-lspconfig"},"nvim-lspconfig")),(0,a.kt)("p",null," LSP Servers"),(0,a.kt)(l.Z,{mdxType:"Tabs"},(0,a.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'opts = {\n servers = {\n svelte = {\n keys = {\n {\n "co",\n LazyVim.lsp.action["source.organizeImports"],\n desc = "Organize Imports",\n },\n },\n },\n },\n}\n'))),(0,a.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "neovim/nvim-lspconfig",\n opts = {\n servers = {\n svelte = {\n keys = {\n {\n "co",\n LazyVim.lsp.action["source.organizeImports"],\n desc = "Organize Imports",\n },\n },\n },\n },\n },\n}\n')))),(0,a.kt)("h2",{id:"nvim-lspconfig-1"},(0,a.kt)("a",{parentName:"h2",href:"https://github.com/neovim/nvim-lspconfig"},"nvim-lspconfig")),(0,a.kt)("p",null," Configure tsserver plugin"),(0,a.kt)(l.Z,{mdxType:"Tabs"},(0,a.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'opts = function(_, opts)\n LazyVim.extend(opts.servers.vtsls, "settings.vtsls.tsserver.globalPlugins", {\n {\n name = "typescript-svelte-plugin",\n location = LazyVim.get_pkg_path("svelte-language-server", "/node_modules/typescript-svelte-plugin"),\n enableForWorkspaceTypeScriptVersions = true,\n },\n })\nend\n'))),(0,a.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "neovim/nvim-lspconfig",\n opts = function(_, opts)\n LazyVim.extend(opts.servers.vtsls, "settings.vtsls.tsserver.globalPlugins", {\n {\n name = "typescript-svelte-plugin",\n location = LazyVim.get_pkg_path("svelte-language-server", "/node_modules/typescript-svelte-plugin"),\n enableForWorkspaceTypeScriptVersions = true,\n },\n })\n end,\n}\n')))),(0,a.kt)("h2",{id:"conformnvim"},(0,a.kt)("a",{parentName:"h2",href:"https://github.com/stevearc/conform.nvim"},"conform.nvim")),(0,a.kt)(l.Z,{mdxType:"Tabs"},(0,a.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'opts = function(_, opts)\n if LazyVim.has_extra("formatting.prettier") then\n opts.formatters_by_ft = opts.formatters_by_ft or {}\n opts.formatters_by_ft.svelte = { "prettier" }\n end\nend\n'))),(0,a.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "conform.nvim",\n opts = function(_, opts)\n if LazyVim.has_extra("formatting.prettier") then\n opts.formatters_by_ft = opts.formatters_by_ft or {}\n opts.formatters_by_ft.svelte = { "prettier" }\n end\n end,\n}\n')))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/00f37bb3.314d4434.js b/assets/js/00f37bb3.314d4434.js new file mode 100644 index 0000000000..a21e48a369 --- /dev/null +++ b/assets/js/00f37bb3.314d4434.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklazyvim=self.webpackChunklazyvim||[]).push([[1576],{3905:(e,n,t)=>{t.d(n,{Zo:()=>u,kt:()=>f});var a=t(7294);function o(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function i(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,a)}return t}function r(e){for(var n=1;n=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var s=a.createContext({}),c=function(e){var n=a.useContext(s),t=n;return e&&(t="function"==typeof e?e(n):r(r({},n),e)),t},u=function(e){var n=c(e.components);return a.createElement(s.Provider,{value:n},e.children)},m="mdxType",d={inlineCode:"code",wrapper:function(e){var n=e.children;return a.createElement(a.Fragment,{},n)}},p=a.forwardRef((function(e,n){var t=e.components,o=e.mdxType,i=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),m=c(t),p=o,f=m["".concat(s,".").concat(p)]||m[p]||d[p]||i;return t?a.createElement(f,r(r({ref:n},u),{},{components:t})):a.createElement(f,r({ref:n},u))}));function f(e,n){var t=arguments,o=n&&n.mdxType;if("string"==typeof e||o){var i=t.length,r=new Array(i);r[0]=p;var l={};for(var s in n)hasOwnProperty.call(n,s)&&(l[s]=n[s]);l.originalType=e,l[m]="string"==typeof e?e:o,r[1]=l;for(var c=2;c{t.d(n,{Z:()=>r});var a=t(7294),o=t(6010);const i="tabItem_Ymn6";function r(e){let{children:n,hidden:t,className:r}=e;return a.createElement("div",{role:"tabpanel",className:(0,o.Z)(i,r),hidden:t},n)}},4866:(e,n,t)=>{t.d(n,{Z:()=>_});var a=t(7462),o=t(7294),i=t(6010),r=t(2466),l=t(6550),s=t(1980),c=t(7392),u=t(12);function m(e){return function(e){return o.Children.map(e,(e=>{if(!e||(0,o.isValidElement)(e)&&function(e){const{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw new Error(`Docusaurus error: Bad child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:n,label:t,attributes:a,default:o}}=e;return{value:n,label:t,attributes:a,default:o}}))}function d(e){const{values:n,children:t}=e;return(0,o.useMemo)((()=>{const e=n??m(t);return function(e){const n=(0,c.l)(e,((e,n)=>e.value===n.value));if(n.length>0)throw new Error(`Docusaurus error: Duplicate values "${n.map((e=>e.value)).join(", ")}" found in . Every value needs to be unique.`)}(e),e}),[n,t])}function p(e){let{value:n,tabValues:t}=e;return t.some((e=>e.value===n))}function f(e){let{queryString:n=!1,groupId:t}=e;const a=(0,l.k6)(),i=function(e){let{queryString:n=!1,groupId:t}=e;if("string"==typeof n)return n;if(!1===n)return null;if(!0===n&&!t)throw new Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return t??null}({queryString:n,groupId:t});return[(0,s._X)(i),(0,o.useCallback)((e=>{if(!i)return;const n=new URLSearchParams(a.location.search);n.set(i,e),a.replace({...a.location,search:n.toString()})}),[i,a])]}function g(e){const{defaultValue:n,queryString:t=!1,groupId:a}=e,i=d(e),[r,l]=(0,o.useState)((()=>function(e){let{defaultValue:n,tabValues:t}=e;if(0===t.length)throw new Error("Docusaurus error: the component requires at least one children component");if(n){if(!p({value:n,tabValues:t}))throw new Error(`Docusaurus error: The has a defaultValue "${n}" but none of its children has the corresponding value. Available values are: ${t.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return n}const a=t.find((e=>e.default))??t[0];if(!a)throw new Error("Unexpected error: 0 tabValues");return a.value}({defaultValue:n,tabValues:i}))),[s,c]=f({queryString:t,groupId:a}),[m,g]=function(e){let{groupId:n}=e;const t=function(e){return e?`docusaurus.tab.${e}`:null}(n),[a,i]=(0,u.Nk)(t);return[a,(0,o.useCallback)((e=>{t&&i.set(e)}),[t,i])]}({groupId:a}),v=(()=>{const e=s??m;return p({value:e,tabValues:i})?e:null})();(0,o.useLayoutEffect)((()=>{v&&l(v)}),[v]);return{selectedValue:r,selectValue:(0,o.useCallback)((e=>{if(!p({value:e,tabValues:i}))throw new Error(`Can't select invalid tab value=${e}`);l(e),c(e),g(e)}),[c,g,i]),tabValues:i}}var v=t(2389);const b="tabList__CuJ",h="tabItem_LNqP";function y(e){let{className:n,block:t,selectedValue:l,selectValue:s,tabValues:c}=e;const u=[],{blockElementScrollPositionUntilNextRender:m}=(0,r.o5)(),d=e=>{const n=e.currentTarget,t=u.indexOf(n),a=c[t].value;a!==l&&(m(n),s(a))},p=e=>{let n=null;switch(e.key){case"Enter":d(e);break;case"ArrowRight":{const t=u.indexOf(e.currentTarget)+1;n=u[t]??u[0];break}case"ArrowLeft":{const t=u.indexOf(e.currentTarget)-1;n=u[t]??u[u.length-1];break}}n?.focus()};return o.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,i.Z)("tabs",{"tabs--block":t},n)},c.map((e=>{let{value:n,label:t,attributes:r}=e;return o.createElement("li",(0,a.Z)({role:"tab",tabIndex:l===n?0:-1,"aria-selected":l===n,key:n,ref:e=>u.push(e),onKeyDown:p,onClick:d},r,{className:(0,i.Z)("tabs__item",h,r?.className,{"tabs__item--active":l===n})}),t??n)})))}function k(e){let{lazy:n,children:t,selectedValue:a}=e;const i=(Array.isArray(t)?t:[t]).filter(Boolean);if(n){const e=i.find((e=>e.props.value===a));return e?(0,o.cloneElement)(e,{className:"margin-top--md"}):null}return o.createElement("div",{className:"margin-top--md"},i.map(((e,n)=>(0,o.cloneElement)(e,{key:n,hidden:e.props.value!==a}))))}function w(e){const n=g(e);return o.createElement("div",{className:(0,i.Z)("tabs-container",b)},o.createElement(y,(0,a.Z)({},e,n)),o.createElement(k,(0,a.Z)({},e,n)))}function _(e){const n=(0,v.Z)();return o.createElement(w,(0,a.Z)({key:String(n)},e))}},4714:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>u,contentTitle:()=>s,default:()=>p,frontMatter:()=>l,metadata:()=>c,toc:()=>m});var a=t(7462),o=(t(7294),t(3905)),i=t(4866),r=t(5162);const l={sidebar_position:2},s="General Settings",c={unversionedId:"configuration/general",id:"configuration/general",title:"General Settings",description:"The files autocmds.lua, keymaps.lua, lazy.lua and options.lua under lua/config will be automatically loaded at the appropriate time,",source:"@site/docs/configuration/general.md",sourceDirName:"configuration",slug:"/configuration/general",permalink:"/configuration/general",draft:!1,editUrl:"https://github.com/LazyVim/lazyvim.github.io/tree/main/docs/configuration/general.md",tags:[],version:"current",sidebarPosition:2,frontMatter:{sidebar_position:2},sidebar:"tutorialSidebar",previous:{title:"lazy.nvim",permalink:"/configuration/lazy.nvim"},next:{title:"Plugins",permalink:"/configuration/plugins"}},u={},m=[{value:"Options",id:"options",level:2},{value:"Keymaps",id:"keymaps",level:2},{value:"Auto Commands",id:"auto-commands",level:2}],d={toc:m};function p(e){let{components:n,...t}=e;return(0,o.kt)("wrapper",(0,a.Z)({},d,t,{components:n,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"general-settings"},"General Settings"),(0,o.kt)("p",null,"The files ",(0,o.kt)("inlineCode",{parentName:"p"},"autocmds.lua"),", ",(0,o.kt)("inlineCode",{parentName:"p"},"keymaps.lua"),", ",(0,o.kt)("inlineCode",{parentName:"p"},"lazy.lua")," and ",(0,o.kt)("inlineCode",{parentName:"p"},"options.lua")," under ",(0,o.kt)("inlineCode",{parentName:"p"},"lua/config")," will be automatically loaded at the appropriate time,\nso you don't need to require those files manually.\n",(0,o.kt)("strong",{parentName:"p"},"LazyVim")," comes with a set of default config files that will be loaded\n",(0,o.kt)("strong",{parentName:"p"},(0,o.kt)("em",{parentName:"strong"},"before"))," your own."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-text",metastring:"{4-7}","{4-7}":!0},"~/.config/nvim\n\u251c\u2500\u2500 lua\n\u2502\xa0\xa0 \u251c\u2500\u2500 config\n\u2502\xa0\xa0 \u2502\xa0\xa0 \u251c\u2500\u2500 autocmds.lua\n\u2502\xa0\xa0 \u2502\xa0\xa0 \u251c\u2500\u2500 keymaps.lua\n\u2502\xa0\xa0 \u2502\xa0\xa0 \u251c\u2500\u2500 lazy.lua\n\u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 options.lua\n\u2502\xa0\xa0 \u2514\u2500\u2500 plugins\n\u2502\xa0\xa0 \u251c\u2500\u2500 spec1.lua\n\u2502\xa0\xa0 \u251c\u2500\u2500 **\n\u2502\xa0\xa0 \u2514\u2500\u2500 spec2.lua\n\u2514\u2500\u2500 init.lua\n")),(0,o.kt)("admonition",{type:"danger"},(0,o.kt)("p",{parentName:"admonition"},"Do not ",(0,o.kt)("inlineCode",{parentName:"p"},"require")," ",(0,o.kt)("inlineCode",{parentName:"p"},"autocmds"),", ",(0,o.kt)("inlineCode",{parentName:"p"},"keymaps"),", ",(0,o.kt)("inlineCode",{parentName:"p"},"lazy")," or ",(0,o.kt)("inlineCode",{parentName:"p"},"options")," under ",(0,o.kt)("inlineCode",{parentName:"p"},"lua/config/")," or ",(0,o.kt)("inlineCode",{parentName:"p"},"lazyvim.config")," manually.\n",(0,o.kt)("strong",{parentName:"p"},"LazyVim")," will load those files automatically.")),(0,o.kt)("h2",{id:"options"},"Options"),(0,o.kt)(i.Z,{mdxType:"Tabs"},(0,o.kt)(r.Z,{value:"custom",label:"Custom Options",mdxType:"TabItem"},(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-lua",metastring:'title="lua/config/options.lua"',title:'"lua/config/options.lua"'},"-- Options are automatically loaded before lazy.nvim startup\n-- Default options that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/options.lua\n-- Add any additional options here\n\n"))),(0,o.kt)(r.Z,{value:"defaults",label:"Default Options",mdxType:"TabItem"},(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-lua",metastring:'title="lazyvim.config.options"',title:'"lazyvim.config.options"'},'-- This file is automatically loaded by plugins.core\nvim.g.mapleader = " "\nvim.g.maplocalleader = "\\\\"\n\n-- LazyVim auto format\nvim.g.autoformat = true\n\n-- Snacks animations\n-- Set to `false` to globally disable all snacks animations\nvim.g.snacks_animate = true\n\n-- LazyVim picker to use.\n-- Can be one of: telescope, fzf\n-- Leave it to "auto" to automatically use the picker\n-- enabled with `:LazyExtras`\nvim.g.lazyvim_picker = "auto"\n\n-- LazyVim completion engine to use.\n-- Can be one of: nvim-cmp, blink.cmp\n-- Leave it to "auto" to automatically use the completion engine\n-- enabled with `:LazyExtras`\nvim.g.lazyvim_cmp = "auto"\n\n-- if the completion engine supports the AI source,\n-- use that instead of inline suggestions\nvim.g.ai_cmp = true\n\n-- LazyVim root dir detection\n-- Each entry can be:\n-- * the name of a detector function like `lsp` or `cwd`\n-- * a pattern or array of patterns like `.git` or `lua`.\n-- * a function with signature `function(buf) -> string|string[]`\nvim.g.root_spec = { "lsp", { ".git", "lua" }, "cwd" }\n\n-- Optionally setup the terminal to use\n-- This sets `vim.o.shell` and does some additional configuration for:\n-- * pwsh\n-- * powershell\n-- LazyVim.terminal.setup("pwsh")\n\n-- Set LSP servers to be ignored when used with `util.root.detectors.lsp`\n-- for detecting the LSP root\nvim.g.root_lsp_ignore = { "copilot" }\n\n-- Hide deprecation warnings\nvim.g.deprecation_warnings = false\n\n-- Show the current document symbols location from Trouble in lualine\n-- You can disable this for a buffer by setting `vim.b.trouble_lualine = false`\nvim.g.trouble_lualine = true\n\nlocal opt = vim.opt\n\nopt.autowrite = true -- Enable auto write\n-- only set clipboard if not in ssh, to make sure the OSC 52\n-- integration works automatically.\nopt.clipboard = vim.env.SSH_CONNECTION and "" or "unnamedplus" -- Sync with system clipboard\nopt.completeopt = "menu,menuone,noselect"\nopt.conceallevel = 2 -- Hide * markup for bold and italic, but not markers with substitutions\nopt.confirm = true -- Confirm to save changes before exiting modified buffer\nopt.cursorline = true -- Enable highlighting of the current line\nopt.expandtab = true -- Use spaces instead of tabs\nopt.fillchars = {\n foldopen = "\uf47c",\n foldclose = "\uf460",\n fold = " ",\n foldsep = " ",\n diff = "\u2571",\n eob = " ",\n}\nopt.foldlevel = 99\nopt.foldmethod = "indent"\nopt.foldtext = ""\nopt.formatexpr = "v:lua.LazyVim.format.formatexpr()"\nopt.formatoptions = "jcroqlnt" -- tcqj\nopt.grepformat = "%f:%l:%c:%m"\nopt.grepprg = "rg --vimgrep"\nopt.ignorecase = true -- Ignore case\nopt.inccommand = "nosplit" -- preview incremental substitute\nopt.jumpoptions = "view"\nopt.laststatus = 3 -- global statusline\nopt.linebreak = true -- Wrap lines at convenient points\nopt.list = true -- Show some invisible characters (tabs...\nopt.mouse = "a" -- Enable mouse mode\nopt.number = true -- Print line number\nopt.pumblend = 10 -- Popup blend\nopt.pumheight = 10 -- Maximum number of entries in a popup\nopt.relativenumber = true -- Relative line numbers\nopt.ruler = false -- Disable the default ruler\nopt.scrolloff = 4 -- Lines of context\nopt.sessionoptions = { "buffers", "curdir", "tabpages", "winsize", "help", "globals", "skiprtp", "folds" }\nopt.shiftround = true -- Round indent\nopt.shiftwidth = 2 -- Size of an indent\nopt.shortmess:append({ W = true, I = true, c = true, C = true })\nopt.showmode = false -- Dont show mode since we have a statusline\nopt.sidescrolloff = 8 -- Columns of context\nopt.signcolumn = "yes" -- Always show the signcolumn, otherwise it would shift the text each time\nopt.smartcase = true -- Don\'t ignore case with capitals\nopt.smartindent = true -- Insert indents automatically\nopt.smoothscroll = true\nopt.spelllang = { "en" }\nopt.splitbelow = true -- Put new windows below current\nopt.splitkeep = "screen"\nopt.splitright = true -- Put new windows right of current\nopt.statuscolumn = [[%!v:lua.LazyVim.statuscolumn()]]\nopt.tabstop = 2 -- Number of spaces tabs count for\nopt.termguicolors = true -- True color support\nopt.timeoutlen = vim.g.vscode and 1000 or 300 -- Lower than default (1000) to quickly trigger which-key\nopt.undofile = true\nopt.undolevels = 10000\nopt.updatetime = 200 -- Save swap file and trigger CursorHold\nopt.virtualedit = "block" -- Allow cursor to move where there is no text in visual block mode\nopt.wildmode = "longest:full,full" -- Command-line completion mode\nopt.winminwidth = 5 -- Minimum window width\nopt.wrap = false -- Disable line wrap\n\n-- Fix markdown indentation settings\nvim.g.markdown_recommended_style = 0\n\n')))),(0,o.kt)("h2",{id:"keymaps"},"Keymaps"),(0,o.kt)(i.Z,{mdxType:"Tabs"},(0,o.kt)(r.Z,{value:"custom",label:"Custom Keymaps",mdxType:"TabItem"},(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-lua",metastring:'title="lua/config/keymaps.lua"',title:'"lua/config/keymaps.lua"'},"-- Keymaps are automatically loaded on the VeryLazy event\n-- Default keymaps that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/keymaps.lua\n-- Add any additional keymaps here\n\n"))),(0,o.kt)(r.Z,{value:"defaults",label:"Default Keymaps",mdxType:"TabItem"},(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-lua",metastring:'title="lazyvim.config.keymaps"',title:'"lazyvim.config.keymaps"'},'-- This file is automatically loaded by lazyvim.config.init\n\n-- DO NOT USE `LazyVim.safe_keymap_set` IN YOUR OWN CONFIG!!\n-- use `vim.keymap.set` instead\nlocal map = LazyVim.safe_keymap_set\n\n-- better up/down\nmap({ "n", "x" }, "j", "v:count == 0 ? \'gj\' : \'j\'", { desc = "Down", expr = true, silent = true })\nmap({ "n", "x" }, "", "v:count == 0 ? \'gj\' : \'j\'", { desc = "Down", expr = true, silent = true })\nmap({ "n", "x" }, "k", "v:count == 0 ? \'gk\' : \'k\'", { desc = "Up", expr = true, silent = true })\nmap({ "n", "x" }, "", "v:count == 0 ? \'gk\' : \'k\'", { desc = "Up", expr = true, silent = true })\n\n-- Move to window using the hjkl keys\nmap("n", "", "h", { desc = "Go to Left Window", remap = true })\nmap("n", "", "j", { desc = "Go to Lower Window", remap = true })\nmap("n", "", "k", { desc = "Go to Upper Window", remap = true })\nmap("n", "", "l", { desc = "Go to Right Window", remap = true })\n\n-- Resize window using arrow keys\nmap("n", "", "resize +2", { desc = "Increase Window Height" })\nmap("n", "", "resize -2", { desc = "Decrease Window Height" })\nmap("n", "", "vertical resize -2", { desc = "Decrease Window Width" })\nmap("n", "", "vertical resize +2", { desc = "Increase Window Width" })\n\n-- Move Lines\nmap("n", "", "execute \'move .+\' . v:count1==", { desc = "Move Down" })\nmap("n", "", "execute \'move .-\' . (v:count1 + 1)==", { desc = "Move Up" })\nmap("i", "", "m .+1==gi", { desc = "Move Down" })\nmap("i", "", "m .-2==gi", { desc = "Move Up" })\nmap("v", "", ":execute \\"\'<,\'>move \'>+\\" . v:count1gv=gv", { desc = "Move Down" })\nmap("v", "", ":execute \\"\'<,\'>move \'<-\\" . (v:count1 + 1)gv=gv", { desc = "Move Up" })\n\n-- buffers\nmap("n", "", "bprevious", { desc = "Prev Buffer" })\nmap("n", "", "bnext", { desc = "Next Buffer" })\nmap("n", "[b", "bprevious", { desc = "Prev Buffer" })\nmap("n", "]b", "bnext", { desc = "Next Buffer" })\nmap("n", "bb", "e #", { desc = "Switch to Other Buffer" })\nmap("n", "`", "e #", { desc = "Switch to Other Buffer" })\nmap("n", "bd", function()\n Snacks.bufdelete()\nend, { desc = "Delete Buffer" })\nmap("n", "bo", function()\n Snacks.bufdelete.other()\nend, { desc = "Delete Other Buffers" })\nmap("n", "bD", ":bd", { desc = "Delete Buffer and Window" })\n\n-- Clear search and stop snippet on escape\nmap({ "i", "n", "s" }, "", function()\n vim.cmd("noh")\n LazyVim.cmp.actions.snippet_stop()\n return ""\nend, { expr = true, desc = "Escape and Clear hlsearch" })\n\n-- Clear search, diff update and redraw\n-- taken from runtime/lua/_editor.lua\nmap(\n "n",\n "ur",\n "nohlsearchdiffupdatenormal! ",\n { desc = "Redraw / Clear hlsearch / Diff Update" }\n)\n\n-- https://github.com/mhinz/vim-galore#saner-behavior-of-n-and-n\nmap("n", "n", "\'Nn\'[v:searchforward].\'zv\'", { expr = true, desc = "Next Search Result" })\nmap("x", "n", "\'Nn\'[v:searchforward]", { expr = true, desc = "Next Search Result" })\nmap("o", "n", "\'Nn\'[v:searchforward]", { expr = true, desc = "Next Search Result" })\nmap("n", "N", "\'nN\'[v:searchforward].\'zv\'", { expr = true, desc = "Prev Search Result" })\nmap("x", "N", "\'nN\'[v:searchforward]", { expr = true, desc = "Prev Search Result" })\nmap("o", "N", "\'nN\'[v:searchforward]", { expr = true, desc = "Prev Search Result" })\n\n-- Add undo break-points\nmap("i", ",", ",u")\nmap("i", ".", ".u")\nmap("i", ";", ";u")\n\n-- save file\nmap({ "i", "x", "n", "s" }, "", "w", { desc = "Save File" })\n\n--keywordprg\nmap("n", "K", "norm! K", { desc = "Keywordprg" })\n\n-- better indenting\nmap("x", "<", "", ">gv")\n\n-- commenting\nmap("n", "gco", "oVcxnormal gccfxa", { desc = "Add Comment Below" })\nmap("n", "gcO", "OVcxnormal gccfxa", { desc = "Add Comment Above" })\n\n-- lazy\nmap("n", "l", "Lazy", { desc = "Lazy" })\n\n-- new file\nmap("n", "fn", "enew", { desc = "New File" })\n\n-- location list\nmap("n", "xl", function()\n local success, err = pcall(vim.fn.getloclist(0, { winid = 0 }).winid ~= 0 and vim.cmd.lclose or vim.cmd.lopen)\n if not success and err then\n vim.notify(err, vim.log.levels.ERROR)\n end\nend, { desc = "Location List" })\n\n-- quickfix list\nmap("n", "xq", function()\n local success, err = pcall(vim.fn.getqflist({ winid = 0 }).winid ~= 0 and vim.cmd.cclose or vim.cmd.copen)\n if not success and err then\n vim.notify(err, vim.log.levels.ERROR)\n end\nend, { desc = "Quickfix List" })\n\nmap("n", "[q", vim.cmd.cprev, { desc = "Previous Quickfix" })\nmap("n", "]q", vim.cmd.cnext, { desc = "Next Quickfix" })\n\n-- formatting\nmap({ "n", "x" }, "cf", function()\n LazyVim.format({ force = true })\nend, { desc = "Format" })\n\n-- diagnostic\nlocal diagnostic_goto = function(next, severity)\n return function()\n vim.diagnostic.jump({\n count = (next and 1 or -1) * vim.v.count1,\n severity = severity and vim.diagnostic.severity[severity] or nil,\n float = true,\n })\n end\nend\nmap("n", "cd", vim.diagnostic.open_float, { desc = "Line Diagnostics" })\nmap("n", "]d", diagnostic_goto(true), { desc = "Next Diagnostic" })\nmap("n", "[d", diagnostic_goto(false), { desc = "Prev Diagnostic" })\nmap("n", "]e", diagnostic_goto(true, "ERROR"), { desc = "Next Error" })\nmap("n", "[e", diagnostic_goto(false, "ERROR"), { desc = "Prev Error" })\nmap("n", "]w", diagnostic_goto(true, "WARN"), { desc = "Next Warning" })\nmap("n", "[w", diagnostic_goto(false, "WARN"), { desc = "Prev Warning" })\n\n-- stylua: ignore start\n\n-- toggle options\nLazyVim.format.snacks_toggle():map("uf")\nLazyVim.format.snacks_toggle(true):map("uF")\nSnacks.toggle.option("spell", { name = "Spelling" }):map("us")\nSnacks.toggle.option("wrap", { name = "Wrap" }):map("uw")\nSnacks.toggle.option("relativenumber", { name = "Relative Number" }):map("uL")\nSnacks.toggle.diagnostics():map("ud")\nSnacks.toggle.line_number():map("ul")\nSnacks.toggle.option("conceallevel", { off = 0, on = vim.o.conceallevel > 0 and vim.o.conceallevel or 2, name = "Conceal Level" }):map("uc")\nSnacks.toggle.option("showtabline", { off = 0, on = vim.o.showtabline > 0 and vim.o.showtabline or 2, name = "Tabline" }):map("uA")\nSnacks.toggle.treesitter():map("uT")\nSnacks.toggle.option("background", { off = "light", on = "dark" , name = "Dark Background" }):map("ub")\nSnacks.toggle.dim():map("uD")\nSnacks.toggle.animate():map("ua")\nSnacks.toggle.indent():map("ug")\nSnacks.toggle.scroll():map("uS")\nSnacks.toggle.profiler():map("dpp")\nSnacks.toggle.profiler_highlights():map("dph")\n\nif vim.lsp.inlay_hint then\n Snacks.toggle.inlay_hints():map("uh")\nend\n\n-- lazygit\nif vim.fn.executable("lazygit") == 1 then\n map("n", "gg", function() Snacks.lazygit( { cwd = LazyVim.root.git() }) end, { desc = "Lazygit (Root Dir)" })\n map("n", "gG", function() Snacks.lazygit() end, { desc = "Lazygit (cwd)" })\nend\n\nmap("n", "gL", function() Snacks.picker.git_log() end, { desc = "Git Log (cwd)" })\nmap("n", "gb", function() Snacks.picker.git_log_line() end, { desc = "Git Blame Line" })\nmap("n", "gf", function() Snacks.picker.git_log_file() end, { desc = "Git Current File History" })\nmap("n", "gl", function() Snacks.picker.git_log({ cwd = LazyVim.root.git() }) end, { desc = "Git Log" })\nmap({ "n", "x" }, "gB", function() Snacks.gitbrowse() end, { desc = "Git Browse (open)" })\nmap({"n", "x" }, "gY", function()\n Snacks.gitbrowse({ open = function(url) vim.fn.setreg("+", url) end, notify = false })\nend, { desc = "Git Browse (copy)" })\n\n-- quit\nmap("n", "qq", "qa", { desc = "Quit All" })\n\n-- highlights under cursor\nmap("n", "ui", vim.show_pos, { desc = "Inspect Pos" })\nmap("n", "uI", function() vim.treesitter.inspect_tree() vim.api.nvim_input("I") end, { desc = "Inspect Tree" })\n\n-- LazyVim Changelog\nmap("n", "L", function() LazyVim.news.changelog() end, { desc = "LazyVim Changelog" })\n\n-- floating terminal\nmap("n", "fT", function() Snacks.terminal() end, { desc = "Terminal (cwd)" })\nmap("n", "ft", function() Snacks.terminal(nil, { cwd = LazyVim.root() }) end, { desc = "Terminal (Root Dir)" })\nmap({"n","t"}, "",function() Snacks.terminal(nil, { cwd = LazyVim.root() }) end, { desc = "Terminal (Root Dir)" })\nmap({"n","t"}, "",function() Snacks.terminal(nil, { cwd = LazyVim.root() }) end, { desc = "which_key_ignore" })\n\n-- windows\nmap("n", "-", "s", { desc = "Split Window Below", remap = true })\nmap("n", "|", "v", { desc = "Split Window Right", remap = true })\nmap("n", "wd", "c", { desc = "Delete Window", remap = true })\nSnacks.toggle.zoom():map("wm"):map("uZ")\nSnacks.toggle.zen():map("uz")\n\n-- tabs\nmap("n", "l", "tablast", { desc = "Last Tab" })\nmap("n", "o", "tabonly", { desc = "Close Other Tabs" })\nmap("n", "f", "tabfirst", { desc = "First Tab" })\nmap("n", "", "tabnew", { desc = "New Tab" })\nmap("n", "]", "tabnext", { desc = "Next Tab" })\nmap("n", "d", "tabclose", { desc = "Close Tab" })\nmap("n", "[", "tabprevious", { desc = "Previous Tab" })\n\n')))),(0,o.kt)("h2",{id:"auto-commands"},"Auto Commands"),(0,o.kt)(i.Z,{mdxType:"Tabs"},(0,o.kt)(r.Z,{value:"custom",label:"Custom Auto Commands",mdxType:"TabItem"},(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-lua",metastring:'title="lua/config/autocmds.lua"',title:'"lua/config/autocmds.lua"'},'-- Autocmds are automatically loaded on the VeryLazy event\n-- Default autocmds that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/autocmds.lua\n--\n-- Add any additional autocmds here\n-- with `vim.api.nvim_create_autocmd`\n--\n-- Or remove existing autocmds by their group name (which is prefixed with `lazyvim_` for the defaults)\n-- e.g. vim.api.nvim_del_augroup_by_name("lazyvim_wrap_spell")\n\n'))),(0,o.kt)(r.Z,{value:"defaults",label:"Default Auto Commands",mdxType:"TabItem"},(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-lua",metastring:'title="lazyvim.config.autocmds"',title:'"lazyvim.config.autocmds"'},'-- This file is automatically loaded by lazyvim.config.init.\n\nlocal function augroup(name)\n return vim.api.nvim_create_augroup("lazyvim_" .. name, { clear = true })\nend\n\n-- Check if we need to reload the file when it changed\nvim.api.nvim_create_autocmd({ "FocusGained", "TermClose", "TermLeave" }, {\n group = augroup("checktime"),\n callback = function()\n if vim.o.buftype ~= "nofile" then\n vim.cmd("checktime")\n end\n end,\n})\n\n-- Highlight on yank\nvim.api.nvim_create_autocmd("TextYankPost", {\n group = augroup("highlight_yank"),\n callback = function()\n (vim.hl or vim.highlight).on_yank()\n end,\n})\n\n-- resize splits if window got resized\nvim.api.nvim_create_autocmd({ "VimResized" }, {\n group = augroup("resize_splits"),\n callback = function()\n local current_tab = vim.fn.tabpagenr()\n vim.cmd("tabdo wincmd =")\n vim.cmd("tabnext " .. current_tab)\n end,\n})\n\n-- go to last loc when opening a buffer\nvim.api.nvim_create_autocmd("BufReadPost", {\n group = augroup("last_loc"),\n callback = function(event)\n local exclude = { "gitcommit" }\n local buf = event.buf\n if vim.tbl_contains(exclude, vim.bo[buf].filetype) or vim.b[buf].lazyvim_last_loc then\n return\n end\n vim.b[buf].lazyvim_last_loc = true\n local mark = vim.api.nvim_buf_get_mark(buf, \'"\')\n local lcount = vim.api.nvim_buf_line_count(buf)\n if mark[1] > 0 and mark[1] <= lcount then\n pcall(vim.api.nvim_win_set_cursor, 0, mark)\n end\n end,\n})\n\n-- close some filetypes with \nvim.api.nvim_create_autocmd("FileType", {\n group = augroup("close_with_q"),\n pattern = {\n "PlenaryTestPopup",\n "checkhealth",\n "dbout",\n "gitsigns-blame",\n "grug-far",\n "help",\n "lspinfo",\n "neotest-output",\n "neotest-output-panel",\n "neotest-summary",\n "notify",\n "qf",\n "spectre_panel",\n "startuptime",\n "tsplayground",\n },\n callback = function(event)\n vim.bo[event.buf].buflisted = false\n vim.schedule(function()\n vim.keymap.set("n", "q", function()\n vim.cmd("close")\n pcall(vim.api.nvim_buf_delete, event.buf, { force = true })\n end, {\n buffer = event.buf,\n silent = true,\n desc = "Quit buffer",\n })\n end)\n end,\n})\n\n-- make it easier to close man-files when opened inline\nvim.api.nvim_create_autocmd("FileType", {\n group = augroup("man_unlisted"),\n pattern = { "man" },\n callback = function(event)\n vim.bo[event.buf].buflisted = false\n end,\n})\n\n-- wrap and check for spell in text filetypes\nvim.api.nvim_create_autocmd("FileType", {\n group = augroup("wrap_spell"),\n pattern = { "text", "plaintex", "typst", "gitcommit", "markdown" },\n callback = function()\n vim.opt_local.wrap = true\n vim.opt_local.spell = true\n end,\n})\n\n-- Fix conceallevel for json files\nvim.api.nvim_create_autocmd({ "FileType" }, {\n group = augroup("json_conceal"),\n pattern = { "json", "jsonc", "json5" },\n callback = function()\n vim.opt_local.conceallevel = 0\n end,\n})\n\n-- Auto create dir when saving a file, in case some intermediate directory does not exist\nvim.api.nvim_create_autocmd({ "BufWritePre" }, {\n group = augroup("auto_create_dir"),\n callback = function(event)\n if event.match:match("^%w%w+:[\\\\/][\\\\/]") then\n return\n end\n local file = vim.uv.fs_realpath(event.match) or event.match\n vim.fn.mkdir(vim.fn.fnamemodify(file, ":p:h"), "p")\n end,\n})\n\n')))))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/01db27bc.83d8ac38.js b/assets/js/01db27bc.83d8ac38.js new file mode 100644 index 0000000000..9db90e7cf5 --- /dev/null +++ b/assets/js/01db27bc.83d8ac38.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklazyvim=self.webpackChunklazyvim||[]).push([[4206],{3905:(e,n,t)=>{t.d(n,{Zo:()=>c,kt:()=>f});var a=t(7294);function r(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function i(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,a)}return t}function o(e){for(var n=1;n=0||(r[t]=e[t]);return r}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(r[t]=e[t])}return r}var s=a.createContext({}),u=function(e){var n=a.useContext(s),t=n;return e&&(t="function"==typeof e?e(n):o(o({},n),e)),t},c=function(e){var n=u(e.components);return a.createElement(s.Provider,{value:n},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var n=e.children;return a.createElement(a.Fragment,{},n)}},m=a.forwardRef((function(e,n){var t=e.components,r=e.mdxType,i=e.originalType,s=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),p=u(t),m=r,f=p["".concat(s,".").concat(m)]||p[m]||d[m]||i;return t?a.createElement(f,o(o({ref:n},c),{},{components:t})):a.createElement(f,o({ref:n},c))}));function f(e,n){var t=arguments,r=n&&n.mdxType;if("string"==typeof e||r){var i=t.length,o=new Array(i);o[0]=m;var l={};for(var s in n)hasOwnProperty.call(n,s)&&(l[s]=n[s]);l.originalType=e,l[p]="string"==typeof e?e:r,o[1]=l;for(var u=2;u{t.d(n,{Z:()=>o});var a=t(7294),r=t(6010);const i="tabItem_Ymn6";function o(e){let{children:n,hidden:t,className:o}=e;return a.createElement("div",{role:"tabpanel",className:(0,r.Z)(i,o),hidden:t},n)}},4866:(e,n,t)=>{t.d(n,{Z:()=>w});var a=t(7462),r=t(7294),i=t(6010),o=t(2466),l=t(6550),s=t(1980),u=t(7392),c=t(12);function p(e){return function(e){return r.Children.map(e,(e=>{if(!e||(0,r.isValidElement)(e)&&function(e){const{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw new Error(`Docusaurus error: Bad child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:n,label:t,attributes:a,default:r}}=e;return{value:n,label:t,attributes:a,default:r}}))}function d(e){const{values:n,children:t}=e;return(0,r.useMemo)((()=>{const e=n??p(t);return function(e){const n=(0,u.l)(e,((e,n)=>e.value===n.value));if(n.length>0)throw new Error(`Docusaurus error: Duplicate values "${n.map((e=>e.value)).join(", ")}" found in . Every value needs to be unique.`)}(e),e}),[n,t])}function m(e){let{value:n,tabValues:t}=e;return t.some((e=>e.value===n))}function f(e){let{queryString:n=!1,groupId:t}=e;const a=(0,l.k6)(),i=function(e){let{queryString:n=!1,groupId:t}=e;if("string"==typeof n)return n;if(!1===n)return null;if(!0===n&&!t)throw new Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return t??null}({queryString:n,groupId:t});return[(0,s._X)(i),(0,r.useCallback)((e=>{if(!i)return;const n=new URLSearchParams(a.location.search);n.set(i,e),a.replace({...a.location,search:n.toString()})}),[i,a])]}function v(e){const{defaultValue:n,queryString:t=!1,groupId:a}=e,i=d(e),[o,l]=(0,r.useState)((()=>function(e){let{defaultValue:n,tabValues:t}=e;if(0===t.length)throw new Error("Docusaurus error: the component requires at least one children component");if(n){if(!m({value:n,tabValues:t}))throw new Error(`Docusaurus error: The has a defaultValue "${n}" but none of its children has the corresponding value. Available values are: ${t.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return n}const a=t.find((e=>e.default))??t[0];if(!a)throw new Error("Unexpected error: 0 tabValues");return a.value}({defaultValue:n,tabValues:i}))),[s,u]=f({queryString:t,groupId:a}),[p,v]=function(e){let{groupId:n}=e;const t=function(e){return e?`docusaurus.tab.${e}`:null}(n),[a,i]=(0,c.Nk)(t);return[a,(0,r.useCallback)((e=>{t&&i.set(e)}),[t,i])]}({groupId:a}),g=(()=>{const e=s??p;return m({value:e,tabValues:i})?e:null})();(0,r.useLayoutEffect)((()=>{g&&l(g)}),[g]);return{selectedValue:o,selectValue:(0,r.useCallback)((e=>{if(!m({value:e,tabValues:i}))throw new Error(`Can't select invalid tab value=${e}`);l(e),u(e),v(e)}),[u,v,i]),tabValues:i}}var g=t(2389);const b="tabList__CuJ",h="tabItem_LNqP";function y(e){let{className:n,block:t,selectedValue:l,selectValue:s,tabValues:u}=e;const c=[],{blockElementScrollPositionUntilNextRender:p}=(0,o.o5)(),d=e=>{const n=e.currentTarget,t=c.indexOf(n),a=u[t].value;a!==l&&(p(n),s(a))},m=e=>{let n=null;switch(e.key){case"Enter":d(e);break;case"ArrowRight":{const t=c.indexOf(e.currentTarget)+1;n=c[t]??c[0];break}case"ArrowLeft":{const t=c.indexOf(e.currentTarget)-1;n=c[t]??c[c.length-1];break}}n?.focus()};return r.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,i.Z)("tabs",{"tabs--block":t},n)},u.map((e=>{let{value:n,label:t,attributes:o}=e;return r.createElement("li",(0,a.Z)({role:"tab",tabIndex:l===n?0:-1,"aria-selected":l===n,key:n,ref:e=>c.push(e),onKeyDown:m,onClick:d},o,{className:(0,i.Z)("tabs__item",h,o?.className,{"tabs__item--active":l===n})}),t??n)})))}function k(e){let{lazy:n,children:t,selectedValue:a}=e;const i=(Array.isArray(t)?t:[t]).filter(Boolean);if(n){const e=i.find((e=>e.props.value===a));return e?(0,r.cloneElement)(e,{className:"margin-top--md"}):null}return r.createElement("div",{className:"margin-top--md"},i.map(((e,n)=>(0,r.cloneElement)(e,{key:n,hidden:e.props.value!==a}))))}function x(e){const n=v(e);return r.createElement("div",{className:(0,i.Z)("tabs-container",b)},r.createElement(y,(0,a.Z)({},e,n)),r.createElement(k,(0,a.Z)({},e,n)))}function w(e){const n=(0,g.Z)();return r.createElement(x,(0,a.Z)({key:String(n)},e))}},1295:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>s,default:()=>m,frontMatter:()=>l,metadata:()=>u,toc:()=>p});var a=t(7462),r=(t(7294),t(3905)),i=t(4866),o=t(5162);const l={},s="Copilot-native",u={unversionedId:"extras/ai/copilot-native",id:"extras/ai/copilot-native",title:"Copilot-native",description:"You can enable the extra with the :LazyExtras command.",source:"@site/docs/extras/ai/copilot-native.md",sourceDirName:"extras/ai",slug:"/extras/ai/copilot-native",permalink:"/extras/ai/copilot-native",draft:!1,editUrl:"https://github.com/LazyVim/lazyvim.github.io/tree/main/docs/extras/ai/copilot-native.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Copilot-chat",permalink:"/extras/ai/copilot-chat"},next:{title:"Copilot",permalink:"/extras/ai/copilot"}},c={},p=[{value:"Options",id:"options",level:3},{value:"nvim-lspconfig",id:"nvim-lspconfig",level:2},{value:"lualine.nvim (optional)",id:"lualinenvim-optional",level:2}],d={toc:p};function m(e){let{components:n,...t}=e;return(0,r.kt)("wrapper",(0,a.Z)({},d,t,{components:n,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"copilot-native"},(0,r.kt)("inlineCode",{parentName:"h1"},"Copilot-native")),(0,r.kt)("admonition",{type:"info"},(0,r.kt)("p",{parentName:"admonition"},"You can enable the extra with the ",(0,r.kt)("inlineCode",{parentName:"p"},":LazyExtras")," command.\nPlugins marked as optional will only be configured if they are installed.")),(0,r.kt)("h3",{id:"options"},"Options"),(0,r.kt)("p",null,"Additional options for this extra can be configured in your ",(0,r.kt)("a",{parentName:"p",href:"/configuration/general#options"},"lua/config/options.lua")," file:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua",metastring:'title="lua/config/options.lua"',title:'"lua/config/options.lua"'},"-- Native inline completions don't support being shown as regular completions\nvim.g.ai_cmp = false\n")),(0,r.kt)("p",null,"Below you can find a list of included plugins and their default settings."),(0,r.kt)("admonition",{type:"caution"},(0,r.kt)("p",{parentName:"admonition"},"You don't need to copy the default settings to your config.\nThey are only shown here for reference.")),(0,r.kt)("h2",{id:"nvim-lspconfig"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/neovim/nvim-lspconfig"},"nvim-lspconfig")),(0,r.kt)("p",null," copilot-language-server"),(0,r.kt)(i.Z,{mdxType:"Tabs"},(0,r.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = {\n servers = {\n copilot = {\n -- stylua: ignore\n keys = {\n {\n "",\n function() vim.lsp.inline_completion.select({ count = 1 }) end,\n desc = "Next Copilot Suggestion",\n mode = { "i", "n" },\n },\n {\n "",\n function() vim.lsp.inline_completion.select({ count = -1 }) end,\n desc = "Prev Copilot Suggestion",\n mode = { "i", "n" },\n },\n },\n },\n },\n setup = {\n copilot = function()\n vim.schedule(function()\n vim.lsp.inline_completion.enable()\n end)\n -- Accept inline suggestions or next edits\n LazyVim.cmp.actions.ai_accept = function()\n return vim.lsp.inline_completion.get()\n end\n\n if not LazyVim.has_extra("ai.sidekick") then\n vim.lsp.config("copilot", {\n handlers = {\n didChangeStatus = function(err, res, ctx)\n if err then\n return\n end\n status[ctx.client_id] = res.kind ~= "Normal" and "error" or res.busy and "pending" or "ok"\n if res.status == "Error" then\n LazyVim.error("Please use `:LspCopilotSignIn` to sign in to Copilot")\n end\n end,\n },\n })\n end\n end,\n },\n}\n'))),(0,r.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "neovim/nvim-lspconfig",\n opts = {\n servers = {\n copilot = {\n -- stylua: ignore\n keys = {\n {\n "",\n function() vim.lsp.inline_completion.select({ count = 1 }) end,\n desc = "Next Copilot Suggestion",\n mode = { "i", "n" },\n },\n {\n "",\n function() vim.lsp.inline_completion.select({ count = -1 }) end,\n desc = "Prev Copilot Suggestion",\n mode = { "i", "n" },\n },\n },\n },\n },\n setup = {\n copilot = function()\n vim.schedule(function()\n vim.lsp.inline_completion.enable()\n end)\n -- Accept inline suggestions or next edits\n LazyVim.cmp.actions.ai_accept = function()\n return vim.lsp.inline_completion.get()\n end\n\n if not LazyVim.has_extra("ai.sidekick") then\n vim.lsp.config("copilot", {\n handlers = {\n didChangeStatus = function(err, res, ctx)\n if err then\n return\n end\n status[ctx.client_id] = res.kind ~= "Normal" and "error" or res.busy and "pending" or "ok"\n if res.status == "Error" then\n LazyVim.error("Please use `:LspCopilotSignIn` to sign in to Copilot")\n end\n end,\n },\n })\n end\n end,\n },\n },\n}\n')))),(0,r.kt)("h2",{id:"lualinenvim-optional"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/nvim-lualine/lualine.nvim"},"lualine.nvim")," ",(0,r.kt)("em",{parentName:"h2"},"(optional)")),(0,r.kt)("p",null," lualine"),(0,r.kt)(i.Z,{mdxType:"Tabs"},(0,r.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = function(_, opts)\n if LazyVim.has_extra("ai.sidekick") then\n return\n end\n table.insert(\n opts.sections.lualine_x,\n 2,\n LazyVim.lualine.status(LazyVim.config.icons.kinds.Copilot, function()\n local clients = vim.lsp.get_clients({ name = "copilot", bufnr = 0 })\n return #clients > 0 and status[clients[1].id] or nil\n end)\n )\nend\n'))),(0,r.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "nvim-lualine/lualine.nvim",\n optional = true,\n event = "VeryLazy",\n opts = function(_, opts)\n if LazyVim.has_extra("ai.sidekick") then\n return\n end\n table.insert(\n opts.sections.lualine_x,\n 2,\n LazyVim.lualine.status(LazyVim.config.icons.kinds.Copilot, function()\n local clients = vim.lsp.get_clients({ name = "copilot", bufnr = 0 })\n return #clients > 0 and status[clients[1].id] or nil\n end)\n )\n end,\n}\n')))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/02335ff3.4027e346.js b/assets/js/02335ff3.4027e346.js new file mode 100644 index 0000000000..a742ae2744 --- /dev/null +++ b/assets/js/02335ff3.4027e346.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklazyvim=self.webpackChunklazyvim||[]).push([[530],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>f});var r=n(7294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var s=r.createContext({}),p=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},u=function(e){var t=p(e.components);return r.createElement(s.Provider,{value:t},e.children)},c="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},g=r.forwardRef((function(e,t){var n=e.components,i=e.mdxType,a=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),c=p(n),g=i,f=c["".concat(s,".").concat(g)]||c[g]||m[g]||a;return n?r.createElement(f,o(o({ref:t},u),{},{components:n})):r.createElement(f,o({ref:t},u))}));function f(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var a=n.length,o=new Array(a);o[0]=g;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[c]="string"==typeof e?e:i,o[1]=l;for(var p=2;p{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>c,frontMatter:()=>a,metadata:()=>l,toc:()=>p});var r=n(7462),i=(n(7294),n(3905));const a={},o="Core Plugins",l={unversionedId:"plugins/index",id:"plugins/index",title:"Core Plugins",description:"LazyVim provides a set of preconfigured plugins enabled by default.",source:"@site/docs/plugins/index.md",sourceDirName:"plugins",slug:"/plugins/",permalink:"/plugins/",draft:!1,editUrl:"https://github.com/LazyVim/lazyvim.github.io/tree/main/docs/plugins/index.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Tips",permalink:"/configuration/tips"},next:{title:"Coding",permalink:"/plugins/coding"}},s={},p=[],u={toc:p};function c(e){let{components:t,...n}=e;return(0,i.kt)("wrapper",(0,r.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h1",{id:"core-plugins"},"Core Plugins"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"LazyVim")," provides a set of preconfigured plugins enabled by default.\nAll you need to do to utilize these plugins is install the ",(0,i.kt)("strong",{parentName:"p"},"LazyVim")," starter template."),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"/plugins/coding"},"Coding"),": Faster coding with features such as snippets, autocompletion, and more."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"/plugins/colorscheme"},"Colorscheme"),": Default color schemes (",(0,i.kt)("strong",{parentName:"li"},"TokyoNight")," and ",(0,i.kt)("strong",{parentName:"li"},"Catppuccin"),")."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"/plugins/editor"},"Editor"),": Provides functionality like a file explorer, search and replace, fuzzy finding, git integration."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"/plugins/formatting"},"Formatting"),": Set up formatters using ",(0,i.kt)("strong",{parentName:"li"},"conform.nvim"),"."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"/plugins/linting"},"Linting"),": Manage linters with the ",(0,i.kt)("strong",{parentName:"li"},"nvim-lint")," plugin."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"/plugins/lsp"},"LSP"),": configure the Language Server Protocol (LSP) client."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"/plugins/treesitter"},"TreeSitter"),": advanced syntax highlighting and plugins that use ",(0,i.kt)("strong",{parentName:"li"},"Treesitter")," parsers"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"/plugins/ui"},"UI"),": Enhance the user interface with features such as status line, buffer line, indentation guides, dashboard, and icons."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"/plugins/util"},"Util"),": Contains utilities for session management, shared functionality, and other handy tools.")),(0,i.kt)("p",null,"For detailed information on the default configurations of each plugin set and\ninstructions on customizing them, refer to the respective documentation linked above."))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/030829cf.ce36faff.js b/assets/js/030829cf.ce36faff.js new file mode 100644 index 0000000000..386e2acf78 --- /dev/null +++ b/assets/js/030829cf.ce36faff.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklazyvim=self.webpackChunklazyvim||[]).push([[7293],{3905:(e,n,t)=>{t.d(n,{Zo:()=>c,kt:()=>f});var a=t(7294);function r(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function l(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,a)}return t}function i(e){for(var n=1;n=0||(r[t]=e[t]);return r}(e,n);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(r[t]=e[t])}return r}var u=a.createContext({}),s=function(e){var n=a.useContext(u),t=n;return e&&(t="function"==typeof e?e(n):i(i({},n),e)),t},c=function(e){var n=s(e.components);return a.createElement(u.Provider,{value:n},e.children)},d="mdxType",p={inlineCode:"code",wrapper:function(e){var n=e.children;return a.createElement(a.Fragment,{},n)}},m=a.forwardRef((function(e,n){var t=e.components,r=e.mdxType,l=e.originalType,u=e.parentName,c=o(e,["components","mdxType","originalType","parentName"]),d=s(t),m=r,f=d["".concat(u,".").concat(m)]||d[m]||p[m]||l;return t?a.createElement(f,i(i({ref:n},c),{},{components:t})):a.createElement(f,i({ref:n},c))}));function f(e,n){var t=arguments,r=n&&n.mdxType;if("string"==typeof e||r){var l=t.length,i=new Array(l);i[0]=m;var o={};for(var u in n)hasOwnProperty.call(n,u)&&(o[u]=n[u]);o.originalType=e,o[d]="string"==typeof e?e:r,i[1]=o;for(var s=2;s{t.d(n,{Z:()=>i});var a=t(7294),r=t(6010);const l="tabItem_Ymn6";function i(e){let{children:n,hidden:t,className:i}=e;return a.createElement("div",{role:"tabpanel",className:(0,r.Z)(l,i),hidden:t},n)}},4866:(e,n,t)=>{t.d(n,{Z:()=>x});var a=t(7462),r=t(7294),l=t(6010),i=t(2466),o=t(6550),u=t(1980),s=t(7392),c=t(12);function d(e){return function(e){return r.Children.map(e,(e=>{if(!e||(0,r.isValidElement)(e)&&function(e){const{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw new Error(`Docusaurus error: Bad child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:n,label:t,attributes:a,default:r}}=e;return{value:n,label:t,attributes:a,default:r}}))}function p(e){const{values:n,children:t}=e;return(0,r.useMemo)((()=>{const e=n??d(t);return function(e){const n=(0,s.l)(e,((e,n)=>e.value===n.value));if(n.length>0)throw new Error(`Docusaurus error: Duplicate values "${n.map((e=>e.value)).join(", ")}" found in . Every value needs to be unique.`)}(e),e}),[n,t])}function m(e){let{value:n,tabValues:t}=e;return t.some((e=>e.value===n))}function f(e){let{queryString:n=!1,groupId:t}=e;const a=(0,o.k6)(),l=function(e){let{queryString:n=!1,groupId:t}=e;if("string"==typeof n)return n;if(!1===n)return null;if(!0===n&&!t)throw new Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return t??null}({queryString:n,groupId:t});return[(0,u._X)(l),(0,r.useCallback)((e=>{if(!l)return;const n=new URLSearchParams(a.location.search);n.set(l,e),a.replace({...a.location,search:n.toString()})}),[l,a])]}function b(e){const{defaultValue:n,queryString:t=!1,groupId:a}=e,l=p(e),[i,o]=(0,r.useState)((()=>function(e){let{defaultValue:n,tabValues:t}=e;if(0===t.length)throw new Error("Docusaurus error: the component requires at least one children component");if(n){if(!m({value:n,tabValues:t}))throw new Error(`Docusaurus error: The has a defaultValue "${n}" but none of its children has the corresponding value. Available values are: ${t.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return n}const a=t.find((e=>e.default))??t[0];if(!a)throw new Error("Unexpected error: 0 tabValues");return a.value}({defaultValue:n,tabValues:l}))),[u,s]=f({queryString:t,groupId:a}),[d,b]=function(e){let{groupId:n}=e;const t=function(e){return e?`docusaurus.tab.${e}`:null}(n),[a,l]=(0,c.Nk)(t);return[a,(0,r.useCallback)((e=>{t&&l.set(e)}),[t,l])]}({groupId:a}),h=(()=>{const e=u??d;return m({value:e,tabValues:l})?e:null})();(0,r.useLayoutEffect)((()=>{h&&o(h)}),[h]);return{selectedValue:i,selectValue:(0,r.useCallback)((e=>{if(!m({value:e,tabValues:l}))throw new Error(`Can't select invalid tab value=${e}`);o(e),s(e),b(e)}),[s,b,l]),tabValues:l}}var h=t(2389);const k="tabList__CuJ",y="tabItem_LNqP";function v(e){let{className:n,block:t,selectedValue:o,selectValue:u,tabValues:s}=e;const c=[],{blockElementScrollPositionUntilNextRender:d}=(0,i.o5)(),p=e=>{const n=e.currentTarget,t=c.indexOf(n),a=s[t].value;a!==o&&(d(n),u(a))},m=e=>{let n=null;switch(e.key){case"Enter":p(e);break;case"ArrowRight":{const t=c.indexOf(e.currentTarget)+1;n=c[t]??c[0];break}case"ArrowLeft":{const t=c.indexOf(e.currentTarget)-1;n=c[t]??c[c.length-1];break}}n?.focus()};return r.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,l.Z)("tabs",{"tabs--block":t},n)},s.map((e=>{let{value:n,label:t,attributes:i}=e;return r.createElement("li",(0,a.Z)({role:"tab",tabIndex:o===n?0:-1,"aria-selected":o===n,key:n,ref:e=>c.push(e),onKeyDown:m,onClick:p},i,{className:(0,l.Z)("tabs__item",y,i?.className,{"tabs__item--active":o===n})}),t??n)})))}function g(e){let{lazy:n,children:t,selectedValue:a}=e;const l=(Array.isArray(t)?t:[t]).filter(Boolean);if(n){const e=l.find((e=>e.props.value===a));return e?(0,r.cloneElement)(e,{className:"margin-top--md"}):null}return r.createElement("div",{className:"margin-top--md"},l.map(((e,n)=>(0,r.cloneElement)(e,{key:n,hidden:e.props.value!==a}))))}function w(e){const n=b(e);return r.createElement("div",{className:(0,l.Z)("tabs-container",k)},r.createElement(v,(0,a.Z)({},e,n)),r.createElement(g,(0,a.Z)({},e,n)))}function x(e){const n=(0,h.Z)();return r.createElement(w,(0,a.Z)({key:String(n)},e))}},8682:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>u,default:()=>m,frontMatter:()=>o,metadata:()=>s,toc:()=>d});var a=t(7462),r=(t(7294),t(3905)),l=t(4866),i=t(5162);const o={},u="Indent-blankline",s={unversionedId:"extras/ui/indent-blankline",id:"extras/ui/indent-blankline",title:"Indent-blankline",description:"You can enable the extra with the :LazyExtras command.",source:"@site/docs/extras/ui/indent-blankline.md",sourceDirName:"extras/ui",slug:"/extras/ui/indent-blankline",permalink:"/extras/ui/indent-blankline",draft:!1,editUrl:"https://github.com/LazyVim/lazyvim.github.io/tree/main/docs/extras/ui/indent-blankline.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"edgy.nvim",permalink:"/extras/ui/edgy"},next:{title:"Mini Animate",permalink:"/extras/ui/mini-animate"}},c={},d=[{value:"snacks.nvim",id:"snacksnvim",level:2},{value:"indent-blankline.nvim",id:"indent-blanklinenvim",level:2}],p={toc:d};function m(e){let{components:n,...t}=e;return(0,r.kt)("wrapper",(0,a.Z)({},p,t,{components:n,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"indent-blankline"},(0,r.kt)("inlineCode",{parentName:"h1"},"Indent-blankline")),(0,r.kt)("admonition",{type:"info"},(0,r.kt)("p",{parentName:"admonition"},"You can enable the extra with the ",(0,r.kt)("inlineCode",{parentName:"p"},":LazyExtras")," command.\nPlugins marked as optional will only be configured if they are installed.")),(0,r.kt)("p",null,"Below you can find a list of included plugins and their default settings."),(0,r.kt)("admonition",{type:"caution"},(0,r.kt)("p",{parentName:"admonition"},"You don't need to copy the default settings to your config.\nThey are only shown here for reference.")),(0,r.kt)("h2",{id:"snacksnvim"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/folke/snacks.nvim"},"snacks.nvim")),(0,r.kt)("p",null," disable snacks indent when indent-blankline is enabled"),(0,r.kt)(l.Z,{mdxType:"Tabs"},(0,r.kt)(i.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},"opts = {\n indent = { enabled = false },\n}\n"))),(0,r.kt)(i.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "snacks.nvim",\n opts = {\n indent = { enabled = false },\n },\n}\n')))),(0,r.kt)("h2",{id:"indent-blanklinenvim"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/lukas-reineke/indent-blankline.nvim"},"indent-blankline.nvim")),(0,r.kt)(l.Z,{mdxType:"Tabs"},(0,r.kt)(i.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = function()\n Snacks.toggle({\n name = "Indention Guides",\n get = function()\n return require("ibl.config").get_config(0).enabled\n end,\n set = function(state)\n require("ibl").setup_buffer(0, { enabled = state })\n end,\n }):map("ug")\n\n return {\n indent = {\n char = "\u2502",\n tab_char = "\u2502",\n },\n scope = { show_start = false, show_end = false },\n exclude = {\n filetypes = {\n "Trouble",\n "alpha",\n "dashboard",\n "help",\n "lazy",\n "mason",\n "neo-tree",\n "notify",\n "snacks_dashboard",\n "snacks_notif",\n "snacks_terminal",\n "snacks_win",\n "toggleterm",\n "trouble",\n },\n },\n }\nend\n'))),(0,r.kt)(i.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "lukas-reineke/indent-blankline.nvim",\n event = "LazyFile",\n opts = function()\n Snacks.toggle({\n name = "Indention Guides",\n get = function()\n return require("ibl.config").get_config(0).enabled\n end,\n set = function(state)\n require("ibl").setup_buffer(0, { enabled = state })\n end,\n }):map("ug")\n\n return {\n indent = {\n char = "\u2502",\n tab_char = "\u2502",\n },\n scope = { show_start = false, show_end = false },\n exclude = {\n filetypes = {\n "Trouble",\n "alpha",\n "dashboard",\n "help",\n "lazy",\n "mason",\n "neo-tree",\n "notify",\n "snacks_dashboard",\n "snacks_notif",\n "snacks_terminal",\n "snacks_win",\n "toggleterm",\n "trouble",\n },\n },\n }\n end,\n main = "ibl",\n}\n')))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/043ad997.9f733eef.js b/assets/js/043ad997.9f733eef.js new file mode 100644 index 0000000000..7e7e07519f --- /dev/null +++ b/assets/js/043ad997.9f733eef.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklazyvim=self.webpackChunklazyvim||[]).push([[4580],{3905:(e,n,t)=>{t.d(n,{Zo:()=>c,kt:()=>f});var a=t(7294);function r(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function l(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,a)}return t}function o(e){for(var n=1;n=0||(r[t]=e[t]);return r}(e,n);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(r[t]=e[t])}return r}var s=a.createContext({}),u=function(e){var n=a.useContext(s),t=n;return e&&(t="function"==typeof e?e(n):o(o({},n),e)),t},c=function(e){var n=u(e.components);return a.createElement(s.Provider,{value:n},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var n=e.children;return a.createElement(a.Fragment,{},n)}},d=a.forwardRef((function(e,n){var t=e.components,r=e.mdxType,l=e.originalType,s=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),p=u(t),d=r,f=p["".concat(s,".").concat(d)]||p[d]||m[d]||l;return t?a.createElement(f,o(o({ref:n},c),{},{components:t})):a.createElement(f,o({ref:n},c))}));function f(e,n){var t=arguments,r=n&&n.mdxType;if("string"==typeof e||r){var l=t.length,o=new Array(l);o[0]=d;var i={};for(var s in n)hasOwnProperty.call(n,s)&&(i[s]=n[s]);i.originalType=e,i[p]="string"==typeof e?e:r,o[1]=i;for(var u=2;u{t.d(n,{Z:()=>o});var a=t(7294),r=t(6010);const l="tabItem_Ymn6";function o(e){let{children:n,hidden:t,className:o}=e;return a.createElement("div",{role:"tabpanel",className:(0,r.Z)(l,o),hidden:t},n)}},4866:(e,n,t)=>{t.d(n,{Z:()=>N});var a=t(7462),r=t(7294),l=t(6010),o=t(2466),i=t(6550),s=t(1980),u=t(7392),c=t(12);function p(e){return function(e){return r.Children.map(e,(e=>{if(!e||(0,r.isValidElement)(e)&&function(e){const{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw new Error(`Docusaurus error: Bad child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:n,label:t,attributes:a,default:r}}=e;return{value:n,label:t,attributes:a,default:r}}))}function m(e){const{values:n,children:t}=e;return(0,r.useMemo)((()=>{const e=n??p(t);return function(e){const n=(0,u.l)(e,((e,n)=>e.value===n.value));if(n.length>0)throw new Error(`Docusaurus error: Duplicate values "${n.map((e=>e.value)).join(", ")}" found in . Every value needs to be unique.`)}(e),e}),[n,t])}function d(e){let{value:n,tabValues:t}=e;return t.some((e=>e.value===n))}function f(e){let{queryString:n=!1,groupId:t}=e;const a=(0,i.k6)(),l=function(e){let{queryString:n=!1,groupId:t}=e;if("string"==typeof n)return n;if(!1===n)return null;if(!0===n&&!t)throw new Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return t??null}({queryString:n,groupId:t});return[(0,s._X)(l),(0,r.useCallback)((e=>{if(!l)return;const n=new URLSearchParams(a.location.search);n.set(l,e),a.replace({...a.location,search:n.toString()})}),[l,a])]}function g(e){const{defaultValue:n,queryString:t=!1,groupId:a}=e,l=m(e),[o,i]=(0,r.useState)((()=>function(e){let{defaultValue:n,tabValues:t}=e;if(0===t.length)throw new Error("Docusaurus error: the component requires at least one children component");if(n){if(!d({value:n,tabValues:t}))throw new Error(`Docusaurus error: The has a defaultValue "${n}" but none of its children has the corresponding value. Available values are: ${t.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return n}const a=t.find((e=>e.default))??t[0];if(!a)throw new Error("Unexpected error: 0 tabValues");return a.value}({defaultValue:n,tabValues:l}))),[s,u]=f({queryString:t,groupId:a}),[p,g]=function(e){let{groupId:n}=e;const t=function(e){return e?`docusaurus.tab.${e}`:null}(n),[a,l]=(0,c.Nk)(t);return[a,(0,r.useCallback)((e=>{t&&l.set(e)}),[t,l])]}({groupId:a}),b=(()=>{const e=s??p;return d({value:e,tabValues:l})?e:null})();(0,r.useLayoutEffect)((()=>{b&&i(b)}),[b]);return{selectedValue:o,selectValue:(0,r.useCallback)((e=>{if(!d({value:e,tabValues:l}))throw new Error(`Can't select invalid tab value=${e}`);i(e),u(e),g(e)}),[u,g,l]),tabValues:l}}var b=t(2389);const v="tabList__CuJ",k="tabItem_LNqP";function h(e){let{className:n,block:t,selectedValue:i,selectValue:s,tabValues:u}=e;const c=[],{blockElementScrollPositionUntilNextRender:p}=(0,o.o5)(),m=e=>{const n=e.currentTarget,t=c.indexOf(n),a=u[t].value;a!==i&&(p(n),s(a))},d=e=>{let n=null;switch(e.key){case"Enter":m(e);break;case"ArrowRight":{const t=c.indexOf(e.currentTarget)+1;n=c[t]??c[0];break}case"ArrowLeft":{const t=c.indexOf(e.currentTarget)-1;n=c[t]??c[c.length-1];break}}n?.focus()};return r.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,l.Z)("tabs",{"tabs--block":t},n)},u.map((e=>{let{value:n,label:t,attributes:o}=e;return r.createElement("li",(0,a.Z)({role:"tab",tabIndex:i===n?0:-1,"aria-selected":i===n,key:n,ref:e=>c.push(e),onKeyDown:d,onClick:m},o,{className:(0,l.Z)("tabs__item",k,o?.className,{"tabs__item--active":i===n})}),t??n)})))}function y(e){let{lazy:n,children:t,selectedValue:a}=e;const l=(Array.isArray(t)?t:[t]).filter(Boolean);if(n){const e=l.find((e=>e.props.value===a));return e?(0,r.cloneElement)(e,{className:"margin-top--md"}):null}return r.createElement("div",{className:"margin-top--md"},l.map(((e,n)=>(0,r.cloneElement)(e,{key:n,hidden:e.props.value!==a}))))}function T(e){const n=g(e);return r.createElement("div",{className:(0,l.Z)("tabs-container",v)},r.createElement(h,(0,a.Z)({},e,n)),r.createElement(y,(0,a.Z)({},e,n)))}function N(e){const n=(0,b.Z)();return r.createElement(T,(0,a.Z)({key:String(n)},e))}},6693:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>s,default:()=>d,frontMatter:()=>i,metadata:()=>u,toc:()=>p});var a=t(7462),r=(t(7294),t(3905)),l=t(4866),o=t(5162);const i={},s="Kotlin",u={unversionedId:"extras/lang/kotlin",id:"extras/lang/kotlin",title:"Kotlin",description:"You can enable the extra with the :LazyExtras command.",source:"@site/docs/extras/lang/kotlin.md",sourceDirName:"extras/lang",slug:"/extras/lang/kotlin",permalink:"/extras/lang/kotlin",draft:!1,editUrl:"https://github.com/LazyVim/lazyvim.github.io/tree/main/docs/extras/lang/kotlin.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Julia",permalink:"/extras/lang/julia"},next:{title:"Lean",permalink:"/extras/lang/lean"}},c={},p=[{value:"mason.nvim",id:"masonnvim",level:2},{value:"nvim-treesitter",id:"nvim-treesitter",level:2},{value:"nvim-lspconfig",id:"nvim-lspconfig",level:2},{value:"nvim-lint (optional)",id:"nvim-lint-optional",level:2},{value:"conform.nvim (optional)",id:"conformnvim-optional",level:2},{value:"none-ls.nvim (optional)",id:"none-lsnvim-optional",level:2},{value:"nvim-dap (optional)",id:"nvim-dap-optional",level:2}],m={toc:p};function d(e){let{components:n,...t}=e;return(0,r.kt)("wrapper",(0,a.Z)({},m,t,{components:n,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"kotlin"},(0,r.kt)("inlineCode",{parentName:"h1"},"Kotlin")),(0,r.kt)("admonition",{type:"info"},(0,r.kt)("p",{parentName:"admonition"},"You can enable the extra with the ",(0,r.kt)("inlineCode",{parentName:"p"},":LazyExtras")," command.\nPlugins marked as optional will only be configured if they are installed.")),(0,r.kt)("p",null,"Below you can find a list of included plugins and their default settings."),(0,r.kt)("admonition",{type:"caution"},(0,r.kt)("p",{parentName:"admonition"},"You don't need to copy the default settings to your config.\nThey are only shown here for reference.")),(0,r.kt)("h2",{id:"masonnvim"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/mason-org/mason.nvim"},"mason.nvim")),(0,r.kt)("p",null," Add packages(linting, debug adapter)"),(0,r.kt)(l.Z,{mdxType:"Tabs"},(0,r.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = { ensure_installed = { "ktlint" } }\n'))),(0,r.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "mason-org/mason.nvim",\n opts = { ensure_installed = { "ktlint" } },\n}\n')))),(0,r.kt)("h2",{id:"nvim-treesitter"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/nvim-treesitter/nvim-treesitter"},"nvim-treesitter")),(0,r.kt)("p",null," Add syntax highlighting"),(0,r.kt)(l.Z,{mdxType:"Tabs"},(0,r.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = { ensure_installed = { "kotlin" } }\n'))),(0,r.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "nvim-treesitter/nvim-treesitter",\n opts = { ensure_installed = { "kotlin" } },\n}\n')))),(0,r.kt)("h2",{id:"nvim-lspconfig"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/neovim/nvim-lspconfig"},"nvim-lspconfig")),(0,r.kt)("p",null," Add language server"),(0,r.kt)(l.Z,{mdxType:"Tabs"},(0,r.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},"opts = {\n servers = {\n kotlin_language_server = {},\n },\n}\n"))),(0,r.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "neovim/nvim-lspconfig",\n opts = {\n servers = {\n kotlin_language_server = {},\n },\n },\n}\n')))),(0,r.kt)("h2",{id:"nvim-lint-optional"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/mfussenegger/nvim-lint"},"nvim-lint")," ",(0,r.kt)("em",{parentName:"h2"},"(optional)")),(0,r.kt)("p",null," Add linting"),(0,r.kt)(l.Z,{mdxType:"Tabs"},(0,r.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = {\n linters_by_ft = { kotlin = { "ktlint" } },\n}\n'))),(0,r.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "mfussenegger/nvim-lint",\n optional = true,\n dependencies = "mason-org/mason.nvim",\n opts = {\n linters_by_ft = { kotlin = { "ktlint" } },\n },\n}\n')))),(0,r.kt)("h2",{id:"conformnvim-optional"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/stevearc/conform.nvim"},"conform.nvim")," ",(0,r.kt)("em",{parentName:"h2"},"(optional)")),(0,r.kt)("p",null," Add formatting"),(0,r.kt)(l.Z,{mdxType:"Tabs"},(0,r.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = {\n formatters_by_ft = { kotlin = { "ktlint" } },\n}\n'))),(0,r.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "stevearc/conform.nvim",\n optional = true,\n opts = {\n formatters_by_ft = { kotlin = { "ktlint" } },\n },\n}\n')))),(0,r.kt)("h2",{id:"none-lsnvim-optional"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/nvimtools/none-ls.nvim"},"none-ls.nvim")," ",(0,r.kt)("em",{parentName:"h2"},"(optional)")),(0,r.kt)("p",null," Add formatting and linting"),(0,r.kt)(l.Z,{mdxType:"Tabs"},(0,r.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = function(_, opts)\n local nls = require("null-ls")\n opts.sources = vim.list_extend(opts.sources or {}, {\n nls.builtins.formatting.ktlint,\n nls.builtins.diagnostics.ktlint,\n })\nend\n'))),(0,r.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "nvimtools/none-ls.nvim",\n optional = true,\n opts = function(_, opts)\n local nls = require("null-ls")\n opts.sources = vim.list_extend(opts.sources or {}, {\n nls.builtins.formatting.ktlint,\n nls.builtins.diagnostics.ktlint,\n })\n end,\n}\n')))),(0,r.kt)("h2",{id:"nvim-dap-optional"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/mfussenegger/nvim-dap"},"nvim-dap")," ",(0,r.kt)("em",{parentName:"h2"},"(optional)")),(0,r.kt)("p",null," Add debugger"),(0,r.kt)(l.Z,{mdxType:"Tabs"},(0,r.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = function()\n local dap = require("dap")\n if not dap.adapters.kotlin then\n dap.adapters.kotlin = {\n type = "executable",\n command = "kotlin-debug-adapter",\n options = { auto_continue_if_many_stopped = false },\n }\n end\n\n dap.configurations.kotlin = {\n {\n type = "kotlin",\n request = "launch",\n name = "This file",\n -- may differ, when in doubt, whatever your project structure may be,\n -- it has to correspond to the class file located at `build/classes/`\n -- and of course you have to build before you debug\n mainClass = function()\n local root = vim.fs.find("src", { path = vim.uv.cwd(), upward = true, stop = vim.env.HOME })[1] or ""\n local fname = vim.api.nvim_buf_get_name(0)\n -- src/main/kotlin/websearch/Main.kt -> websearch.MainKt\n return fname:gsub(root, ""):gsub("main/kotlin/", ""):gsub(".kt", "Kt"):gsub("/", "."):sub(2, -1)\n end,\n projectRoot = "${workspaceFolder}",\n jsonLogFile = "",\n enableJsonLogging = false,\n },\n {\n -- Use this for unit tests\n -- First, run\n -- ./gradlew --info cleanTest test --debug-jvm\n -- then attach the debugger to it\n type = "kotlin",\n request = "attach",\n name = "Attach to debugging session",\n port = 5005,\n args = {},\n projectRoot = vim.fn.getcwd,\n hostName = "localhost",\n timeout = 2000,\n },\n }\nend\n'))),(0,r.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "mfussenegger/nvim-dap",\n optional = true,\n dependencies = "mason-org/mason.nvim",\n opts = function()\n local dap = require("dap")\n if not dap.adapters.kotlin then\n dap.adapters.kotlin = {\n type = "executable",\n command = "kotlin-debug-adapter",\n options = { auto_continue_if_many_stopped = false },\n }\n end\n\n dap.configurations.kotlin = {\n {\n type = "kotlin",\n request = "launch",\n name = "This file",\n -- may differ, when in doubt, whatever your project structure may be,\n -- it has to correspond to the class file located at `build/classes/`\n -- and of course you have to build before you debug\n mainClass = function()\n local root = vim.fs.find("src", { path = vim.uv.cwd(), upward = true, stop = vim.env.HOME })[1] or ""\n local fname = vim.api.nvim_buf_get_name(0)\n -- src/main/kotlin/websearch/Main.kt -> websearch.MainKt\n return fname:gsub(root, ""):gsub("main/kotlin/", ""):gsub(".kt", "Kt"):gsub("/", "."):sub(2, -1)\n end,\n projectRoot = "${workspaceFolder}",\n jsonLogFile = "",\n enableJsonLogging = false,\n },\n {\n -- Use this for unit tests\n -- First, run\n -- ./gradlew --info cleanTest test --debug-jvm\n -- then attach the debugger to it\n type = "kotlin",\n request = "attach",\n name = "Attach to debugging session",\n port = 5005,\n args = {},\n projectRoot = vim.fn.getcwd,\n hostName = "localhost",\n timeout = 2000,\n },\n }\n end,\n}\n')))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/054d3884.774f7049.js b/assets/js/054d3884.774f7049.js new file mode 100644 index 0000000000..52b37723d1 --- /dev/null +++ b/assets/js/054d3884.774f7049.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklazyvim=self.webpackChunklazyvim||[]).push([[1330],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>b});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function o(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var u=a.createContext({}),i=function(e){var t=a.useContext(u),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},p=function(e){var t=i(e.components);return a.createElement(u.Provider,{value:t},e.children)},c="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},d=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,l=e.originalType,u=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),c=i(n),d=r,b=c["".concat(u,".").concat(d)]||c[d]||m[d]||l;return n?a.createElement(b,o(o({ref:t},p),{},{components:n})):a.createElement(b,o({ref:t},p))}));function b(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var l=n.length,o=new Array(l);o[0]=d;var s={};for(var u in t)hasOwnProperty.call(t,u)&&(s[u]=t[u]);s.originalType=e,s[c]="string"==typeof e?e:r,o[1]=s;for(var i=2;i{n.d(t,{Z:()=>o});var a=n(7294),r=n(6010);const l="tabItem_Ymn6";function o(e){let{children:t,hidden:n,className:o}=e;return a.createElement("div",{role:"tabpanel",className:(0,r.Z)(l,o),hidden:n},t)}},4866:(e,t,n)=>{n.d(t,{Z:()=>N});var a=n(7462),r=n(7294),l=n(6010),o=n(2466),s=n(6550),u=n(1980),i=n(7392),p=n(12);function c(e){return function(e){return r.Children.map(e,(e=>{if(!e||(0,r.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw new Error(`Docusaurus error: Bad child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:t,label:n,attributes:a,default:r}}=e;return{value:t,label:n,attributes:a,default:r}}))}function m(e){const{values:t,children:n}=e;return(0,r.useMemo)((()=>{const e=t??c(n);return function(e){const t=(0,i.l)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in . Every value needs to be unique.`)}(e),e}),[t,n])}function d(e){let{value:t,tabValues:n}=e;return n.some((e=>e.value===t))}function b(e){let{queryString:t=!1,groupId:n}=e;const a=(0,s.k6)(),l=function(e){let{queryString:t=!1,groupId:n}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!n)throw new Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return n??null}({queryString:t,groupId:n});return[(0,u._X)(l),(0,r.useCallback)((e=>{if(!l)return;const t=new URLSearchParams(a.location.search);t.set(l,e),a.replace({...a.location,search:t.toString()})}),[l,a])]}function f(e){const{defaultValue:t,queryString:n=!1,groupId:a}=e,l=m(e),[o,s]=(0,r.useState)((()=>function(e){let{defaultValue:t,tabValues:n}=e;if(0===n.length)throw new Error("Docusaurus error: the component requires at least one children component");if(t){if(!d({value:t,tabValues:n}))throw new Error(`Docusaurus error: The has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${n.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const a=n.find((e=>e.default))??n[0];if(!a)throw new Error("Unexpected error: 0 tabValues");return a.value}({defaultValue:t,tabValues:l}))),[u,i]=b({queryString:n,groupId:a}),[c,f]=function(e){let{groupId:t}=e;const n=function(e){return e?`docusaurus.tab.${e}`:null}(t),[a,l]=(0,p.Nk)(n);return[a,(0,r.useCallback)((e=>{n&&l.set(e)}),[n,l])]}({groupId:a}),v=(()=>{const e=u??c;return d({value:e,tabValues:l})?e:null})();(0,r.useLayoutEffect)((()=>{v&&s(v)}),[v]);return{selectedValue:o,selectValue:(0,r.useCallback)((e=>{if(!d({value:e,tabValues:l}))throw new Error(`Can't select invalid tab value=${e}`);s(e),i(e),f(e)}),[i,f,l]),tabValues:l}}var v=n(2389);const g="tabList__CuJ",y="tabItem_LNqP";function h(e){let{className:t,block:n,selectedValue:s,selectValue:u,tabValues:i}=e;const p=[],{blockElementScrollPositionUntilNextRender:c}=(0,o.o5)(),m=e=>{const t=e.currentTarget,n=p.indexOf(t),a=i[n].value;a!==s&&(c(t),u(a))},d=e=>{let t=null;switch(e.key){case"Enter":m(e);break;case"ArrowRight":{const n=p.indexOf(e.currentTarget)+1;t=p[n]??p[0];break}case"ArrowLeft":{const n=p.indexOf(e.currentTarget)-1;t=p[n]??p[p.length-1];break}}t?.focus()};return r.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,l.Z)("tabs",{"tabs--block":n},t)},i.map((e=>{let{value:t,label:n,attributes:o}=e;return r.createElement("li",(0,a.Z)({role:"tab",tabIndex:s===t?0:-1,"aria-selected":s===t,key:t,ref:e=>p.push(e),onKeyDown:d,onClick:m},o,{className:(0,l.Z)("tabs__item",y,o?.className,{"tabs__item--active":s===t})}),n??t)})))}function k(e){let{lazy:t,children:n,selectedValue:a}=e;const l=(Array.isArray(n)?n:[n]).filter(Boolean);if(t){const e=l.find((e=>e.props.value===a));return e?(0,r.cloneElement)(e,{className:"margin-top--md"}):null}return r.createElement("div",{className:"margin-top--md"},l.map(((e,t)=>(0,r.cloneElement)(e,{key:t,hidden:e.props.value!==a}))))}function T(e){const t=f(e);return r.createElement("div",{className:(0,l.Z)("tabs-container",g)},r.createElement(h,(0,a.Z)({},e,t)),r.createElement(k,(0,a.Z)({},e,t)))}function N(e){const t=(0,v.Z)();return r.createElement(T,(0,a.Z)({key:String(t)},e))}},8030:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>u,default:()=>d,frontMatter:()=>s,metadata:()=>i,toc:()=>c});var a=n(7462),r=(n(7294),n(3905)),l=n(4866),o=n(5162);const s={},u="Ruby",i={unversionedId:"extras/lang/ruby",id:"extras/lang/ruby",title:"Ruby",description:"You can enable the extra with the :LazyExtras command.",source:"@site/docs/extras/lang/ruby.md",sourceDirName:"extras/lang",slug:"/extras/lang/ruby",permalink:"/extras/lang/ruby",draft:!1,editUrl:"https://github.com/LazyVim/lazyvim.github.io/tree/main/docs/extras/lang/ruby.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Rego",permalink:"/extras/lang/rego"},next:{title:"Rust",permalink:"/extras/lang/rust"}},p={},c=[{value:"Options",id:"options",level:3},{value:"nvim-treesitter",id:"nvim-treesitter",level:2},{value:"nvim-lspconfig",id:"nvim-lspconfig",level:2},{value:"mason.nvim",id:"masonnvim",level:2},{value:"nvim-dap-ruby",id:"nvim-dap-ruby",level:2},{value:"neotest-rspec",id:"neotest-rspec",level:2},{value:"nvim-dap (optional)",id:"nvim-dap-optional",level:2},{value:"conform.nvim (optional)",id:"conformnvim-optional",level:2},{value:"neotest (optional)",id:"neotest-optional",level:2}],m={toc:c};function d(e){let{components:t,...n}=e;return(0,r.kt)("wrapper",(0,a.Z)({},m,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"ruby"},"Ruby"),(0,r.kt)("admonition",{type:"info"},(0,r.kt)("p",{parentName:"admonition"},"You can enable the extra with the ",(0,r.kt)("inlineCode",{parentName:"p"},":LazyExtras")," command.\nPlugins marked as optional will only be configured if they are installed.")),(0,r.kt)("h3",{id:"options"},"Options"),(0,r.kt)("p",null,"Additional options for this extra can be configured in your ",(0,r.kt)("a",{parentName:"p",href:"/configuration/general#options"},"lua/config/options.lua")," file:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua",metastring:'title="lua/config/options.lua"',title:'"lua/config/options.lua"'},'-- LSP Server to use for Ruby.\n-- Set to "solargraph" to use solargraph instead of ruby_lsp.\nvim.g.lazyvim_ruby_lsp = "ruby_lsp"\nvim.g.lazyvim_ruby_formatter = "rubocop"\n')),(0,r.kt)("p",null,"Below you can find a list of included plugins and their default settings."),(0,r.kt)("admonition",{type:"caution"},(0,r.kt)("p",{parentName:"admonition"},"You don't need to copy the default settings to your config.\nThey are only shown here for reference.")),(0,r.kt)("h2",{id:"nvim-treesitter"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/nvim-treesitter/nvim-treesitter"},"nvim-treesitter")),(0,r.kt)(l.Z,{mdxType:"Tabs"},(0,r.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = { ensure_installed = { "ruby" } }\n'))),(0,r.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "nvim-treesitter/nvim-treesitter",\n opts = { ensure_installed = { "ruby" } },\n}\n')))),(0,r.kt)("h2",{id:"nvim-lspconfig"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/neovim/nvim-lspconfig"},"nvim-lspconfig")),(0,r.kt)(l.Z,{mdxType:"Tabs"},(0,r.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = {\n servers = {\n ruby_lsp = {\n enabled = lsp == "ruby_lsp",\n },\n solargraph = {\n enabled = lsp == "solargraph",\n },\n rubocop = {\n -- If Solargraph and Rubocop are both enabled as an LSP,\n -- diagnostics will be duplicated because Solargraph\n -- already calls Rubocop if it is installed\n enabled = formatter == "rubocop" and lsp ~= "solargraph",\n },\n standardrb = {\n enabled = formatter == "standardrb",\n },\n },\n}\n'))),(0,r.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "neovim/nvim-lspconfig",\n ---@type PluginLspOpts\n opts = {\n servers = {\n ruby_lsp = {\n enabled = lsp == "ruby_lsp",\n },\n solargraph = {\n enabled = lsp == "solargraph",\n },\n rubocop = {\n -- If Solargraph and Rubocop are both enabled as an LSP,\n -- diagnostics will be duplicated because Solargraph\n -- already calls Rubocop if it is installed\n enabled = formatter == "rubocop" and lsp ~= "solargraph",\n },\n standardrb = {\n enabled = formatter == "standardrb",\n },\n },\n },\n}\n')))),(0,r.kt)("h2",{id:"masonnvim"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/mason-org/mason.nvim"},"mason.nvim")),(0,r.kt)(l.Z,{mdxType:"Tabs"},(0,r.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = { ensure_installed = { "erb-formatter", "erb-lint" } }\n'))),(0,r.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "mason-org/mason.nvim",\n opts = { ensure_installed = { "erb-formatter", "erb-lint" } },\n}\n')))),(0,r.kt)("h2",{id:"nvim-dap-ruby"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/suketa/nvim-dap-ruby"},"nvim-dap-ruby")),(0,r.kt)(l.Z,{mdxType:"Tabs"},(0,r.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},"opts = {}\n"))),(0,r.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "suketa/nvim-dap-ruby",\n config = function()\n require("dap-ruby").setup()\n end,\n}\n')))),(0,r.kt)("h2",{id:"neotest-rspec"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/olimorris/neotest-rspec"},"neotest-rspec")),(0,r.kt)(l.Z,{mdxType:"Tabs"},(0,r.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},"opts = nil\n"))),(0,r.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "olimorris/neotest-rspec",\n}\n')))),(0,r.kt)("h2",{id:"nvim-dap-optional"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/mfussenegger/nvim-dap"},"nvim-dap")," ",(0,r.kt)("em",{parentName:"h2"},"(optional)")),(0,r.kt)(l.Z,{mdxType:"Tabs"},(0,r.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},"opts = nil\n"))),(0,r.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "mfussenegger/nvim-dap",\n optional = true,\n dependencies = {\n "suketa/nvim-dap-ruby",\n config = function()\n require("dap-ruby").setup()\n end,\n },\n}\n')))),(0,r.kt)("h2",{id:"conformnvim-optional"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/stevearc/conform.nvim"},"conform.nvim")," ",(0,r.kt)("em",{parentName:"h2"},"(optional)")),(0,r.kt)(l.Z,{mdxType:"Tabs"},(0,r.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = {\n formatters_by_ft = {\n ruby = { formatter },\n eruby = { "erb_format" },\n },\n}\n'))),(0,r.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "stevearc/conform.nvim",\n optional = true,\n opts = {\n formatters_by_ft = {\n ruby = { formatter },\n eruby = { "erb_format" },\n },\n },\n}\n')))),(0,r.kt)("h2",{id:"neotest-optional"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/nvim-neotest/neotest"},"neotest")," ",(0,r.kt)("em",{parentName:"h2"},"(optional)")),(0,r.kt)(l.Z,{mdxType:"Tabs"},(0,r.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = {\n adapters = {\n ["neotest-rspec"] = {\n -- NOTE: By default neotest-rspec uses the system wide rspec gem instead of the one through bundler\n -- rspec_cmd = function()\n -- return vim.tbl_flatten({\n -- "bundle",\n -- "exec",\n -- "rspec",\n -- })\n -- end,\n },\n },\n}\n'))),(0,r.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "nvim-neotest/neotest",\n optional = true,\n dependencies = {\n "olimorris/neotest-rspec",\n },\n opts = {\n adapters = {\n ["neotest-rspec"] = {\n -- NOTE: By default neotest-rspec uses the system wide rspec gem instead of the one through bundler\n -- rspec_cmd = function()\n -- return vim.tbl_flatten({\n -- "bundle",\n -- "exec",\n -- "rspec",\n -- })\n -- end,\n },\n },\n },\n}\n')))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/086c1b3d.8f4e357a.js b/assets/js/086c1b3d.8f4e357a.js new file mode 100644 index 0000000000..8cf139d24e --- /dev/null +++ b/assets/js/086c1b3d.8f4e357a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklazyvim=self.webpackChunklazyvim||[]).push([[2201],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>d});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var u=r.createContext({}),s=function(e){var t=r.useContext(u),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},c=function(e){var t=s(e.components);return r.createElement(u.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},f=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,l=e.originalType,u=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),p=s(n),f=a,d=p["".concat(u,".").concat(f)]||p[f]||m[f]||l;return n?r.createElement(d,o(o({ref:t},c),{},{components:n})):r.createElement(d,o({ref:t},c))}));function d(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var l=n.length,o=new Array(l);o[0]=f;var i={};for(var u in t)hasOwnProperty.call(t,u)&&(i[u]=t[u]);i.originalType=e,i[p]="string"==typeof e?e:a,o[1]=i;for(var s=2;s{n.d(t,{Z:()=>o});var r=n(7294),a=n(6010);const l="tabItem_Ymn6";function o(e){let{children:t,hidden:n,className:o}=e;return r.createElement("div",{role:"tabpanel",className:(0,a.Z)(l,o),hidden:n},t)}},4866:(e,t,n)=>{n.d(t,{Z:()=>T});var r=n(7462),a=n(7294),l=n(6010),o=n(2466),i=n(6550),u=n(1980),s=n(7392),c=n(12);function p(e){return function(e){return a.Children.map(e,(e=>{if(!e||(0,a.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw new Error(`Docusaurus error: Bad child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:t,label:n,attributes:r,default:a}}=e;return{value:t,label:n,attributes:r,default:a}}))}function m(e){const{values:t,children:n}=e;return(0,a.useMemo)((()=>{const e=t??p(n);return function(e){const t=(0,s.l)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in . Every value needs to be unique.`)}(e),e}),[t,n])}function f(e){let{value:t,tabValues:n}=e;return n.some((e=>e.value===t))}function d(e){let{queryString:t=!1,groupId:n}=e;const r=(0,i.k6)(),l=function(e){let{queryString:t=!1,groupId:n}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!n)throw new Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return n??null}({queryString:t,groupId:n});return[(0,u._X)(l),(0,a.useCallback)((e=>{if(!l)return;const t=new URLSearchParams(r.location.search);t.set(l,e),r.replace({...r.location,search:t.toString()})}),[l,r])]}function b(e){const{defaultValue:t,queryString:n=!1,groupId:r}=e,l=m(e),[o,i]=(0,a.useState)((()=>function(e){let{defaultValue:t,tabValues:n}=e;if(0===n.length)throw new Error("Docusaurus error: the component requires at least one children component");if(t){if(!f({value:t,tabValues:n}))throw new Error(`Docusaurus error: The has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${n.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const r=n.find((e=>e.default))??n[0];if(!r)throw new Error("Unexpected error: 0 tabValues");return r.value}({defaultValue:t,tabValues:l}))),[u,s]=d({queryString:n,groupId:r}),[p,b]=function(e){let{groupId:t}=e;const n=function(e){return e?`docusaurus.tab.${e}`:null}(t),[r,l]=(0,c.Nk)(n);return[r,(0,a.useCallback)((e=>{n&&l.set(e)}),[n,l])]}({groupId:r}),h=(()=>{const e=u??p;return f({value:e,tabValues:l})?e:null})();(0,a.useLayoutEffect)((()=>{h&&i(h)}),[h]);return{selectedValue:o,selectValue:(0,a.useCallback)((e=>{if(!f({value:e,tabValues:l}))throw new Error(`Can't select invalid tab value=${e}`);i(e),s(e),b(e)}),[s,b,l]),tabValues:l}}var h=n(2389);const v="tabList__CuJ",g="tabItem_LNqP";function y(e){let{className:t,block:n,selectedValue:i,selectValue:u,tabValues:s}=e;const c=[],{blockElementScrollPositionUntilNextRender:p}=(0,o.o5)(),m=e=>{const t=e.currentTarget,n=c.indexOf(t),r=s[n].value;r!==i&&(p(t),u(r))},f=e=>{let t=null;switch(e.key){case"Enter":m(e);break;case"ArrowRight":{const n=c.indexOf(e.currentTarget)+1;t=c[n]??c[0];break}case"ArrowLeft":{const n=c.indexOf(e.currentTarget)-1;t=c[n]??c[c.length-1];break}}t?.focus()};return a.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,l.Z)("tabs",{"tabs--block":n},t)},s.map((e=>{let{value:t,label:n,attributes:o}=e;return a.createElement("li",(0,r.Z)({role:"tab",tabIndex:i===t?0:-1,"aria-selected":i===t,key:t,ref:e=>c.push(e),onKeyDown:f,onClick:m},o,{className:(0,l.Z)("tabs__item",g,o?.className,{"tabs__item--active":i===t})}),n??t)})))}function k(e){let{lazy:t,children:n,selectedValue:r}=e;const l=(Array.isArray(n)?n:[n]).filter(Boolean);if(t){const e=l.find((e=>e.props.value===r));return e?(0,a.cloneElement)(e,{className:"margin-top--md"}):null}return a.createElement("div",{className:"margin-top--md"},l.map(((e,t)=>(0,a.cloneElement)(e,{key:t,hidden:e.props.value!==r}))))}function w(e){const t=b(e);return a.createElement("div",{className:(0,l.Z)("tabs-container",v)},a.createElement(y,(0,r.Z)({},e,t)),a.createElement(k,(0,r.Z)({},e,t)))}function T(e){const t=(0,h.Z)();return a.createElement(w,(0,r.Z)({key:String(t)},e))}},2042:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>u,default:()=>f,frontMatter:()=>i,metadata:()=>s,toc:()=>p});var r=n(7462),a=(n(7294),n(3905)),l=n(4866),o=n(5162);const i={},u="Thrift",s={unversionedId:"extras/lang/thrift",id:"extras/lang/thrift",title:"Thrift",description:"You can enable the extra with the :LazyExtras command.",source:"@site/docs/extras/lang/thrift.md",sourceDirName:"extras/lang",slug:"/extras/lang/thrift",permalink:"/extras/lang/thrift",draft:!1,editUrl:"https://github.com/LazyVim/lazyvim.github.io/tree/main/docs/extras/lang/thrift.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Tex",permalink:"/extras/lang/tex"},next:{title:"Toml",permalink:"/extras/lang/toml"}},c={},p=[{value:"nvim-treesitter",id:"nvim-treesitter",level:2},{value:"nvim-lspconfig (optional)",id:"nvim-lspconfig-optional",level:2}],m={toc:p};function f(e){let{components:t,...n}=e;return(0,a.kt)("wrapper",(0,r.Z)({},m,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"thrift"},(0,a.kt)("inlineCode",{parentName:"h1"},"Thrift")),(0,a.kt)("admonition",{type:"info"},(0,a.kt)("p",{parentName:"admonition"},"You can enable the extra with the ",(0,a.kt)("inlineCode",{parentName:"p"},":LazyExtras")," command.\nPlugins marked as optional will only be configured if they are installed.")),(0,a.kt)("p",null,"Below you can find a list of included plugins and their default settings."),(0,a.kt)("admonition",{type:"caution"},(0,a.kt)("p",{parentName:"admonition"},"You don't need to copy the default settings to your config.\nThey are only shown here for reference.")),(0,a.kt)("h2",{id:"nvim-treesitter"},(0,a.kt)("a",{parentName:"h2",href:"https://github.com/nvim-treesitter/nvim-treesitter"},"nvim-treesitter")),(0,a.kt)(l.Z,{mdxType:"Tabs"},(0,a.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'opts = { ensure_installed = { "thrift" } }\n'))),(0,a.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "nvim-treesitter",\n opts = { ensure_installed = { "thrift" } },\n}\n')))),(0,a.kt)("h2",{id:"nvim-lspconfig-optional"},(0,a.kt)("a",{parentName:"h2",href:"https://github.com/neovim/nvim-lspconfig"},"nvim-lspconfig")," ",(0,a.kt)("em",{parentName:"h2"},"(optional)")),(0,a.kt)(l.Z,{mdxType:"Tabs"},(0,a.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},"opts = {\n servers = {\n thriftls = {},\n },\n}\n"))),(0,a.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "nvim-lspconfig",\n optional = true,\n opts = {\n servers = {\n thriftls = {},\n },\n },\n}\n')))))}f.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/0b960a6d.51ed1f63.js b/assets/js/0b960a6d.51ed1f63.js new file mode 100644 index 0000000000..c7d4ffd5ad --- /dev/null +++ b/assets/js/0b960a6d.51ed1f63.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklazyvim=self.webpackChunklazyvim||[]).push([[6694],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>f});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var i=r.createContext({}),s=function(e){var t=r.useContext(i),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},c=function(e){var t=s(e.components);return r.createElement(i.Provider,{value:t},e.children)},m="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,l=e.originalType,i=e.parentName,c=u(e,["components","mdxType","originalType","parentName"]),m=s(n),d=a,f=m["".concat(i,".").concat(d)]||m[d]||p[d]||l;return n?r.createElement(f,o(o({ref:t},c),{},{components:n})):r.createElement(f,o({ref:t},c))}));function f(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var l=n.length,o=new Array(l);o[0]=d;var u={};for(var i in t)hasOwnProperty.call(t,i)&&(u[i]=t[i]);u.originalType=e,u[m]="string"==typeof e?e:a,o[1]=u;for(var s=2;s{n.d(t,{Z:()=>o});var r=n(7294),a=n(6010);const l="tabItem_Ymn6";function o(e){let{children:t,hidden:n,className:o}=e;return r.createElement("div",{role:"tabpanel",className:(0,a.Z)(l,o),hidden:n},t)}},4866:(e,t,n)=>{n.d(t,{Z:()=>w});var r=n(7462),a=n(7294),l=n(6010),o=n(2466),u=n(6550),i=n(1980),s=n(7392),c=n(12);function m(e){return function(e){return a.Children.map(e,(e=>{if(!e||(0,a.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw new Error(`Docusaurus error: Bad child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:t,label:n,attributes:r,default:a}}=e;return{value:t,label:n,attributes:r,default:a}}))}function p(e){const{values:t,children:n}=e;return(0,a.useMemo)((()=>{const e=t??m(n);return function(e){const t=(0,s.l)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in . Every value needs to be unique.`)}(e),e}),[t,n])}function d(e){let{value:t,tabValues:n}=e;return n.some((e=>e.value===t))}function f(e){let{queryString:t=!1,groupId:n}=e;const r=(0,u.k6)(),l=function(e){let{queryString:t=!1,groupId:n}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!n)throw new Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return n??null}({queryString:t,groupId:n});return[(0,i._X)(l),(0,a.useCallback)((e=>{if(!l)return;const t=new URLSearchParams(r.location.search);t.set(l,e),r.replace({...r.location,search:t.toString()})}),[l,r])]}function h(e){const{defaultValue:t,queryString:n=!1,groupId:r}=e,l=p(e),[o,u]=(0,a.useState)((()=>function(e){let{defaultValue:t,tabValues:n}=e;if(0===n.length)throw new Error("Docusaurus error: the component requires at least one children component");if(t){if(!d({value:t,tabValues:n}))throw new Error(`Docusaurus error: The has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${n.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const r=n.find((e=>e.default))??n[0];if(!r)throw new Error("Unexpected error: 0 tabValues");return r.value}({defaultValue:t,tabValues:l}))),[i,s]=f({queryString:n,groupId:r}),[m,h]=function(e){let{groupId:t}=e;const n=function(e){return e?`docusaurus.tab.${e}`:null}(t),[r,l]=(0,c.Nk)(n);return[r,(0,a.useCallback)((e=>{n&&l.set(e)}),[n,l])]}({groupId:r}),v=(()=>{const e=i??m;return d({value:e,tabValues:l})?e:null})();(0,a.useLayoutEffect)((()=>{v&&u(v)}),[v]);return{selectedValue:o,selectValue:(0,a.useCallback)((e=>{if(!d({value:e,tabValues:l}))throw new Error(`Can't select invalid tab value=${e}`);u(e),s(e),h(e)}),[s,h,l]),tabValues:l}}var v=n(2389);const b="tabList__CuJ",g="tabItem_LNqP";function y(e){let{className:t,block:n,selectedValue:u,selectValue:i,tabValues:s}=e;const c=[],{blockElementScrollPositionUntilNextRender:m}=(0,o.o5)(),p=e=>{const t=e.currentTarget,n=c.indexOf(t),r=s[n].value;r!==u&&(m(t),i(r))},d=e=>{let t=null;switch(e.key){case"Enter":p(e);break;case"ArrowRight":{const n=c.indexOf(e.currentTarget)+1;t=c[n]??c[0];break}case"ArrowLeft":{const n=c.indexOf(e.currentTarget)-1;t=c[n]??c[c.length-1];break}}t?.focus()};return a.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,l.Z)("tabs",{"tabs--block":n},t)},s.map((e=>{let{value:t,label:n,attributes:o}=e;return a.createElement("li",(0,r.Z)({role:"tab",tabIndex:u===t?0:-1,"aria-selected":u===t,key:t,ref:e=>c.push(e),onKeyDown:d,onClick:p},o,{className:(0,l.Z)("tabs__item",g,o?.className,{"tabs__item--active":u===t})}),n??t)})))}function k(e){let{lazy:t,children:n,selectedValue:r}=e;const l=(Array.isArray(n)?n:[n]).filter(Boolean);if(t){const e=l.find((e=>e.props.value===r));return e?(0,a.cloneElement)(e,{className:"margin-top--md"}):null}return a.createElement("div",{className:"margin-top--md"},l.map(((e,t)=>(0,a.cloneElement)(e,{key:t,hidden:e.props.value!==r}))))}function T(e){const t=h(e);return a.createElement("div",{className:(0,l.Z)("tabs-container",b)},a.createElement(y,(0,r.Z)({},e,t)),a.createElement(k,(0,r.Z)({},e,t)))}function w(e){const t=(0,v.Z)();return a.createElement(T,(0,r.Z)({key:String(t)},e))}},4520:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>d,frontMatter:()=>u,metadata:()=>s,toc:()=>m});var r=n(7462),a=(n(7294),n(3905)),l=n(4866),o=n(5162);const u={},i="Helm",s={unversionedId:"extras/lang/helm",id:"extras/lang/helm",title:"Helm",description:"You can enable the extra with the :LazyExtras command.",source:"@site/docs/extras/lang/helm.md",sourceDirName:"extras/lang",slug:"/extras/lang/helm",permalink:"/extras/lang/helm",draft:!1,editUrl:"https://github.com/LazyVim/lazyvim.github.io/tree/main/docs/extras/lang/helm.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Haskell",permalink:"/extras/lang/haskell"},next:{title:"Java",permalink:"/extras/lang/java"}},c={},m=[{value:"helm-ls.nvim",id:"helm-lsnvim",level:2},{value:"nvim-treesitter",id:"nvim-treesitter",level:2},{value:"nvim-lspconfig",id:"nvim-lspconfig",level:2}],p={toc:m};function d(e){let{components:t,...n}=e;return(0,a.kt)("wrapper",(0,r.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"helm"},(0,a.kt)("inlineCode",{parentName:"h1"},"Helm")),(0,a.kt)("admonition",{type:"info"},(0,a.kt)("p",{parentName:"admonition"},"You can enable the extra with the ",(0,a.kt)("inlineCode",{parentName:"p"},":LazyExtras")," command.\nPlugins marked as optional will only be configured if they are installed.")),(0,a.kt)("p",null,"Below you can find a list of included plugins and their default settings."),(0,a.kt)("admonition",{type:"caution"},(0,a.kt)("p",{parentName:"admonition"},"You don't need to copy the default settings to your config.\nThey are only shown here for reference.")),(0,a.kt)("h2",{id:"helm-lsnvim"},(0,a.kt)("a",{parentName:"h2",href:"https://github.com/qvalentin/helm-ls.nvim"},"helm-ls.nvim")),(0,a.kt)(l.Z,{mdxType:"Tabs"},(0,a.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},"opts = nil\n"))),(0,a.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'{ "qvalentin/helm-ls.nvim", ft = "helm" }\n')))),(0,a.kt)("h2",{id:"nvim-treesitter"},(0,a.kt)("a",{parentName:"h2",href:"https://github.com/nvim-treesitter/nvim-treesitter"},"nvim-treesitter")),(0,a.kt)(l.Z,{mdxType:"Tabs"},(0,a.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'opts = { ensure_installed = { "helm" } }\n'))),(0,a.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "nvim-treesitter/nvim-treesitter",\n opts = { ensure_installed = { "helm" } },\n}\n')))),(0,a.kt)("h2",{id:"nvim-lspconfig"},(0,a.kt)("a",{parentName:"h2",href:"https://github.com/neovim/nvim-lspconfig"},"nvim-lspconfig")),(0,a.kt)(l.Z,{mdxType:"Tabs"},(0,a.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},"opts = {\n servers = {\n helm_ls = {},\n },\n}\n"))),(0,a.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "neovim/nvim-lspconfig",\n opts = {\n servers = {\n helm_ls = {},\n },\n },\n}\n')))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/0ba19029.f422b781.js b/assets/js/0ba19029.f422b781.js new file mode 100644 index 0000000000..e9fa77882d --- /dev/null +++ b/assets/js/0ba19029.f422b781.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklazyvim=self.webpackChunklazyvim||[]).push([[1236],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>k});var a=n(7294);function l(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function o(e){for(var t=1;t=0||(l[n]=e[n]);return l}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(l[n]=e[n])}return l}var i=a.createContext({}),u=function(e){var t=a.useContext(i),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},p=function(e){var t=u(e.components);return a.createElement(i.Provider,{value:t},e.children)},m="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},d=a.forwardRef((function(e,t){var n=e.components,l=e.mdxType,r=e.originalType,i=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),m=u(n),d=l,k=m["".concat(i,".").concat(d)]||m[d]||c[d]||r;return n?a.createElement(k,o(o({ref:t},p),{},{components:n})):a.createElement(k,o({ref:t},p))}));function k(e,t){var n=arguments,l=t&&t.mdxType;if("string"==typeof e||l){var r=n.length,o=new Array(r);o[0]=d;var s={};for(var i in t)hasOwnProperty.call(t,i)&&(s[i]=t[i]);s.originalType=e,s[m]="string"==typeof e?e:l,o[1]=s;for(var u=2;u{n.d(t,{Z:()=>o});var a=n(7294),l=n(6010);const r="tabItem_Ymn6";function o(e){let{children:t,hidden:n,className:o}=e;return a.createElement("div",{role:"tabpanel",className:(0,l.Z)(r,o),hidden:n},t)}},4866:(e,t,n)=>{n.d(t,{Z:()=>N});var a=n(7462),l=n(7294),r=n(6010),o=n(2466),s=n(6550),i=n(1980),u=n(7392),p=n(12);function m(e){return function(e){return l.Children.map(e,(e=>{if(!e||(0,l.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw new Error(`Docusaurus error: Bad child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:t,label:n,attributes:a,default:l}}=e;return{value:t,label:n,attributes:a,default:l}}))}function c(e){const{values:t,children:n}=e;return(0,l.useMemo)((()=>{const e=t??m(n);return function(e){const t=(0,u.l)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in . Every value needs to be unique.`)}(e),e}),[t,n])}function d(e){let{value:t,tabValues:n}=e;return n.some((e=>e.value===t))}function k(e){let{queryString:t=!1,groupId:n}=e;const a=(0,s.k6)(),r=function(e){let{queryString:t=!1,groupId:n}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!n)throw new Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return n??null}({queryString:t,groupId:n});return[(0,i._X)(r),(0,l.useCallback)((e=>{if(!r)return;const t=new URLSearchParams(a.location.search);t.set(r,e),a.replace({...a.location,search:t.toString()})}),[r,a])]}function h(e){const{defaultValue:t,queryString:n=!1,groupId:a}=e,r=c(e),[o,s]=(0,l.useState)((()=>function(e){let{defaultValue:t,tabValues:n}=e;if(0===n.length)throw new Error("Docusaurus error: the component requires at least one children component");if(t){if(!d({value:t,tabValues:n}))throw new Error(`Docusaurus error: The has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${n.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const a=n.find((e=>e.default))??n[0];if(!a)throw new Error("Unexpected error: 0 tabValues");return a.value}({defaultValue:t,tabValues:r}))),[i,u]=k({queryString:n,groupId:a}),[m,h]=function(e){let{groupId:t}=e;const n=function(e){return e?`docusaurus.tab.${e}`:null}(t),[a,r]=(0,p.Nk)(n);return[a,(0,l.useCallback)((e=>{n&&r.set(e)}),[n,r])]}({groupId:a}),v=(()=>{const e=i??m;return d({value:e,tabValues:r})?e:null})();(0,l.useLayoutEffect)((()=>{v&&s(v)}),[v]);return{selectedValue:o,selectValue:(0,l.useCallback)((e=>{if(!d({value:e,tabValues:r}))throw new Error(`Can't select invalid tab value=${e}`);s(e),u(e),h(e)}),[u,h,r]),tabValues:r}}var v=n(2389);const b="tabList__CuJ",g="tabItem_LNqP";function f(e){let{className:t,block:n,selectedValue:s,selectValue:i,tabValues:u}=e;const p=[],{blockElementScrollPositionUntilNextRender:m}=(0,o.o5)(),c=e=>{const t=e.currentTarget,n=p.indexOf(t),a=u[n].value;a!==s&&(m(t),i(a))},d=e=>{let t=null;switch(e.key){case"Enter":c(e);break;case"ArrowRight":{const n=p.indexOf(e.currentTarget)+1;t=p[n]??p[0];break}case"ArrowLeft":{const n=p.indexOf(e.currentTarget)-1;t=p[n]??p[p.length-1];break}}t?.focus()};return l.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,r.Z)("tabs",{"tabs--block":n},t)},u.map((e=>{let{value:t,label:n,attributes:o}=e;return l.createElement("li",(0,a.Z)({role:"tab",tabIndex:s===t?0:-1,"aria-selected":s===t,key:t,ref:e=>p.push(e),onKeyDown:d,onClick:c},o,{className:(0,r.Z)("tabs__item",g,o?.className,{"tabs__item--active":s===t})}),n??t)})))}function y(e){let{lazy:t,children:n,selectedValue:a}=e;const r=(Array.isArray(n)?n:[n]).filter(Boolean);if(t){const e=r.find((e=>e.props.value===a));return e?(0,l.cloneElement)(e,{className:"margin-top--md"}):null}return l.createElement("div",{className:"margin-top--md"},r.map(((e,t)=>(0,l.cloneElement)(e,{key:t,hidden:e.props.value!==a}))))}function T(e){const t=h(e);return l.createElement("div",{className:(0,r.Z)("tabs-container",b)},l.createElement(f,(0,a.Z)({},e,t)),l.createElement(y,(0,a.Z)({},e,t)))}function N(e){const t=(0,v.Z)();return l.createElement(T,(0,a.Z)({key:String(t)},e))}},6081:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>d,frontMatter:()=>s,metadata:()=>u,toc:()=>m});var a=n(7462),l=(n(7294),n(3905)),r=n(4866),o=n(5162);const s={},i="Haskell",u={unversionedId:"extras/lang/haskell",id:"extras/lang/haskell",title:"Haskell",description:"You can enable the extra with the :LazyExtras command.",source:"@site/docs/extras/lang/haskell.md",sourceDirName:"extras/lang",slug:"/extras/lang/haskell",permalink:"/extras/lang/haskell",draft:!1,editUrl:"https://github.com/LazyVim/lazyvim.github.io/tree/main/docs/extras/lang/haskell.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Go",permalink:"/extras/lang/go"},next:{title:"Helm",permalink:"/extras/lang/helm"}},p={},m=[{value:"nvim-treesitter",id:"nvim-treesitter",level:2},{value:"haskell-tools.nvim",id:"haskell-toolsnvim",level:2},{value:"mason.nvim",id:"masonnvim",level:2},{value:"mason.nvim",id:"masonnvim-1",level:2},{value:"neotest-haskell",id:"neotest-haskell",level:2},{value:"haskell-snippets.nvim",id:"haskell-snippetsnvim",level:2},{value:"LuaSnip",id:"luasnip",level:2},{value:"telescope_hoogle",id:"telescope_hoogle",level:2},{value:"nvim-lspconfig",id:"nvim-lspconfig",level:2},{value:"nvim-dap (optional)",id:"nvim-dap-optional",level:2},{value:"neotest (optional)",id:"neotest-optional",level:2},{value:"telescope.nvim (optional)",id:"telescopenvim-optional",level:2},{value:"conform.nvim (optional)",id:"conformnvim-optional",level:2},{value:"nvim-lint (optional)",id:"nvim-lint-optional",level:2}],c={toc:m};function d(e){let{components:t,...n}=e;return(0,l.kt)("wrapper",(0,a.Z)({},c,n,{components:t,mdxType:"MDXLayout"}),(0,l.kt)("h1",{id:"haskell"},(0,l.kt)("inlineCode",{parentName:"h1"},"Haskell")),(0,l.kt)("admonition",{type:"info"},(0,l.kt)("p",{parentName:"admonition"},"You can enable the extra with the ",(0,l.kt)("inlineCode",{parentName:"p"},":LazyExtras")," command.\nPlugins marked as optional will only be configured if they are installed.")),(0,l.kt)("p",null,"Below you can find a list of included plugins and their default settings."),(0,l.kt)("admonition",{type:"caution"},(0,l.kt)("p",{parentName:"admonition"},"You don't need to copy the default settings to your config.\nThey are only shown here for reference.")),(0,l.kt)("h2",{id:"nvim-treesitter"},(0,l.kt)("a",{parentName:"h2",href:"https://github.com/nvim-treesitter/nvim-treesitter"},"nvim-treesitter")),(0,l.kt)("p",null," Add Haskell to treesitter"),(0,l.kt)(r.Z,{mdxType:"Tabs"},(0,l.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-lua"},'opts = { ensure_installed = { "haskell" } }\n'))),(0,l.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "nvim-treesitter/nvim-treesitter",\n opts = { ensure_installed = { "haskell" } },\n}\n')))),(0,l.kt)("h2",{id:"haskell-toolsnvim"},(0,l.kt)("a",{parentName:"h2",href:"https://github.com/mrcjkb/haskell-tools.nvim"},"haskell-tools.nvim")),(0,l.kt)(r.Z,{mdxType:"Tabs"},(0,l.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-lua"},"opts = nil\n"))),(0,l.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "mrcjkb/haskell-tools.nvim",\n version = false,\n ft = { "haskell", "lhaskell", "cabal", "cabalproject" },\n keys = {\n {\n "e",\n "HlsEvalAll",\n ft = "haskell",\n desc = "Evaluate All",\n },\n {\n "h",\n function()\n require("haskell-tools").hoogle.hoogle_signature()\n end,\n ft = "haskell",\n desc = "Hoogle Signature",\n },\n {\n "r",\n function()\n require("haskell-tools").repl.toggle()\n end,\n ft = "haskell",\n desc = "REPL (Package)",\n },\n {\n "R",\n function()\n require("haskell-tools").repl.toggle(vim.api.nvim_buf_get_name(0))\n end,\n ft = "haskell",\n desc = "REPL (Buffer)",\n },\n },\n}\n')))),(0,l.kt)("h2",{id:"masonnvim"},(0,l.kt)("a",{parentName:"h2",href:"https://github.com/mason-org/mason.nvim"},"mason.nvim")),(0,l.kt)(r.Z,{mdxType:"Tabs"},(0,l.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-lua"},'opts = { ensure_installed = { "haskell-language-server" } }\n'))),(0,l.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "mason-org/mason.nvim",\n opts = { ensure_installed = { "haskell-language-server" } },\n}\n')))),(0,l.kt)("h2",{id:"masonnvim-1"},(0,l.kt)("a",{parentName:"h2",href:"https://github.com/mason-org/mason.nvim"},"mason.nvim")),(0,l.kt)(r.Z,{mdxType:"Tabs"},(0,l.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-lua"},'opts = { ensure_installed = { "haskell-debug-adapter" } }\n'))),(0,l.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "mason-org/mason.nvim",\n opts = { ensure_installed = { "haskell-debug-adapter" } },\n}\n')))),(0,l.kt)("h2",{id:"neotest-haskell"},(0,l.kt)("a",{parentName:"h2",href:"https://github.com/mrcjkb/neotest-haskell"},"neotest-haskell")),(0,l.kt)(r.Z,{mdxType:"Tabs"},(0,l.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-lua"},"opts = nil\n"))),(0,l.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-lua"},'{ "mrcjkb/neotest-haskell" }\n')))),(0,l.kt)("h2",{id:"haskell-snippetsnvim"},(0,l.kt)("a",{parentName:"h2",href:"https://github.com/mrcjkb/haskell-snippets.nvim"},"haskell-snippets.nvim")),(0,l.kt)(r.Z,{mdxType:"Tabs"},(0,l.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-lua"},"opts = {}\n"))),(0,l.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "mrcjkb/haskell-snippets.nvim",\n dependencies = { "L3MON4D3/LuaSnip" },\n ft = { "haskell", "lhaskell", "cabal", "cabalproject" },\n config = function()\n local haskell_snippets = require("haskell-snippets").all\n require("luasnip").add_snippets("haskell", haskell_snippets, { key = "haskell" })\n end,\n}\n')))),(0,l.kt)("h2",{id:"luasnip"},(0,l.kt)("a",{parentName:"h2",href:"https://github.com/L3MON4D3/LuaSnip"},"LuaSnip")),(0,l.kt)(r.Z,{mdxType:"Tabs"},(0,l.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-lua"},"opts = nil\n"))),(0,l.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-lua"},'{ "L3MON4D3/LuaSnip" }\n')))),(0,l.kt)("h2",{id:"telescope_hoogle"},(0,l.kt)("a",{parentName:"h2",href:"https://github.com/luc-tielen/telescope_hoogle"},"telescope_hoogle")),(0,l.kt)(r.Z,{mdxType:"Tabs"},(0,l.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-lua"},'opts = function()\n LazyVim.on_load("telescope.nvim", function()\n require("telescope").load_extension("ht")\n end)\nend\n'))),(0,l.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "luc-tielen/telescope_hoogle",\n ft = { "haskell", "lhaskell", "cabal", "cabalproject" },\n opts = function()\n LazyVim.on_load("telescope.nvim", function()\n require("telescope").load_extension("ht")\n end)\n end,\n keys = {\n {\n "H",\n "Telescope hoogle",\n ft = "haskell",\n desc = "Hoogle",\n },\n },\n}\n')))),(0,l.kt)("h2",{id:"nvim-lspconfig"},(0,l.kt)("a",{parentName:"h2",href:"https://github.com/neovim/nvim-lspconfig"},"nvim-lspconfig")),(0,l.kt)("p",null," Make sure lspconfig doesn't start hls,\nas it conflicts with haskell-tools"),(0,l.kt)(r.Z,{mdxType:"Tabs"},(0,l.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-lua"},"opts = {\n setup = {\n hls = function()\n return true\n end,\n },\n}\n"))),(0,l.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "neovim/nvim-lspconfig",\n opts = {\n setup = {\n hls = function()\n return true\n end,\n },\n },\n}\n')))),(0,l.kt)("h2",{id:"nvim-dap-optional"},(0,l.kt)("a",{parentName:"h2",href:"https://github.com/mfussenegger/nvim-dap"},"nvim-dap")," ",(0,l.kt)("em",{parentName:"h2"},"(optional)")),(0,l.kt)(r.Z,{mdxType:"Tabs"},(0,l.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-lua"},"opts = nil\n"))),(0,l.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "mfussenegger/nvim-dap",\n optional = true,\n dependencies = {\n {\n "mason-org/mason.nvim",\n opts = { ensure_installed = { "haskell-debug-adapter" } },\n },\n },\n}\n')))),(0,l.kt)("h2",{id:"neotest-optional"},(0,l.kt)("a",{parentName:"h2",href:"https://github.com/nvim-neotest/neotest"},"neotest")," ",(0,l.kt)("em",{parentName:"h2"},"(optional)")),(0,l.kt)(r.Z,{mdxType:"Tabs"},(0,l.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-lua"},'opts = {\n adapters = {\n ["neotest-haskell"] = {},\n },\n}\n'))),(0,l.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "nvim-neotest/neotest",\n optional = true,\n dependencies = {\n { "mrcjkb/neotest-haskell" },\n },\n opts = {\n adapters = {\n ["neotest-haskell"] = {},\n },\n },\n}\n')))),(0,l.kt)("h2",{id:"telescopenvim-optional"},(0,l.kt)("a",{parentName:"h2",href:"https://github.com/nvim-telescope/telescope.nvim"},"telescope.nvim")," ",(0,l.kt)("em",{parentName:"h2"},"(optional)")),(0,l.kt)(r.Z,{mdxType:"Tabs"},(0,l.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-lua"},"opts = nil\n"))),(0,l.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "nvim-telescope/telescope.nvim",\n optional = true,\n specs = {\n {\n "luc-tielen/telescope_hoogle",\n ft = { "haskell", "lhaskell", "cabal", "cabalproject" },\n opts = function()\n LazyVim.on_load("telescope.nvim", function()\n require("telescope").load_extension("ht")\n end)\n end,\n keys = {\n {\n "H",\n "Telescope hoogle",\n ft = "haskell",\n desc = "Hoogle",\n },\n },\n },\n },\n}\n')))),(0,l.kt)("h2",{id:"conformnvim-optional"},(0,l.kt)("a",{parentName:"h2",href:"https://github.com/stevearc/conform.nvim"},"conform.nvim")," ",(0,l.kt)("em",{parentName:"h2"},"(optional)")),(0,l.kt)(r.Z,{mdxType:"Tabs"},(0,l.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-lua"},'opts = {\n formatters_by_ft = {\n haskell = { "fourmolu" },\n cabal = { "cabal_fmt" },\n },\n}\n'))),(0,l.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "stevearc/conform.nvim",\n optional = true,\n opts = {\n formatters_by_ft = {\n haskell = { "fourmolu" },\n cabal = { "cabal_fmt" },\n },\n },\n}\n')))),(0,l.kt)("h2",{id:"nvim-lint-optional"},(0,l.kt)("a",{parentName:"h2",href:"https://github.com/mfussenegger/nvim-lint"},"nvim-lint")," ",(0,l.kt)("em",{parentName:"h2"},"(optional)")),(0,l.kt)(r.Z,{mdxType:"Tabs"},(0,l.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-lua"},'opts = {\n linters_by_ft = {\n haskell = { "hlint" },\n },\n}\n'))),(0,l.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "mfussenegger/nvim-lint",\n optional = true,\n opts = {\n linters_by_ft = {\n haskell = { "hlint" },\n },\n },\n}\n')))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/0ceb8aa7.3219beb1.js b/assets/js/0ceb8aa7.3219beb1.js new file mode 100644 index 0000000000..31a52e6a79 --- /dev/null +++ b/assets/js/0ceb8aa7.3219beb1.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklazyvim=self.webpackChunklazyvim||[]).push([[1058],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>m});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function l(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var u=r.createContext({}),s=function(e){var t=r.useContext(u),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},c=function(e){var t=s(e.components);return r.createElement(u.Provider,{value:t},e.children)},d="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},y=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,u=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),d=s(n),y=a,m=d["".concat(u,".").concat(y)]||d[y]||p[y]||o;return n?r.createElement(m,l(l({ref:t},c),{},{components:n})):r.createElement(m,l({ref:t},c))}));function m(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,l=new Array(o);l[0]=y;var i={};for(var u in t)hasOwnProperty.call(t,u)&&(i[u]=t[u]);i.originalType=e,i[d]="string"==typeof e?e:a,l[1]=i;for(var s=2;s{n.d(t,{Z:()=>l});var r=n(7294),a=n(6010);const o="tabItem_Ymn6";function l(e){let{children:t,hidden:n,className:l}=e;return r.createElement("div",{role:"tabpanel",className:(0,a.Z)(o,l),hidden:n},t)}},4866:(e,t,n)=>{n.d(t,{Z:()=>w});var r=n(7462),a=n(7294),o=n(6010),l=n(2466),i=n(6550),u=n(1980),s=n(7392),c=n(12);function d(e){return function(e){return a.Children.map(e,(e=>{if(!e||(0,a.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw new Error(`Docusaurus error: Bad child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:t,label:n,attributes:r,default:a}}=e;return{value:t,label:n,attributes:r,default:a}}))}function p(e){const{values:t,children:n}=e;return(0,a.useMemo)((()=>{const e=t??d(n);return function(e){const t=(0,s.l)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in . Every value needs to be unique.`)}(e),e}),[t,n])}function y(e){let{value:t,tabValues:n}=e;return n.some((e=>e.value===t))}function m(e){let{queryString:t=!1,groupId:n}=e;const r=(0,i.k6)(),o=function(e){let{queryString:t=!1,groupId:n}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!n)throw new Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return n??null}({queryString:t,groupId:n});return[(0,u._X)(o),(0,a.useCallback)((e=>{if(!o)return;const t=new URLSearchParams(r.location.search);t.set(o,e),r.replace({...r.location,search:t.toString()})}),[o,r])]}function f(e){const{defaultValue:t,queryString:n=!1,groupId:r}=e,o=p(e),[l,i]=(0,a.useState)((()=>function(e){let{defaultValue:t,tabValues:n}=e;if(0===n.length)throw new Error("Docusaurus error: the component requires at least one children component");if(t){if(!y({value:t,tabValues:n}))throw new Error(`Docusaurus error: The has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${n.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const r=n.find((e=>e.default))??n[0];if(!r)throw new Error("Unexpected error: 0 tabValues");return r.value}({defaultValue:t,tabValues:o}))),[u,s]=m({queryString:n,groupId:r}),[d,f]=function(e){let{groupId:t}=e;const n=function(e){return e?`docusaurus.tab.${e}`:null}(t),[r,o]=(0,c.Nk)(n);return[r,(0,a.useCallback)((e=>{n&&o.set(e)}),[n,o])]}({groupId:r}),g=(()=>{const e=u??d;return y({value:e,tabValues:o})?e:null})();(0,a.useLayoutEffect)((()=>{g&&i(g)}),[g]);return{selectedValue:l,selectValue:(0,a.useCallback)((e=>{if(!y({value:e,tabValues:o}))throw new Error(`Can't select invalid tab value=${e}`);i(e),s(e),f(e)}),[s,f,o]),tabValues:o}}var g=n(2389);const k="tabList__CuJ",h="tabItem_LNqP";function b(e){let{className:t,block:n,selectedValue:i,selectValue:u,tabValues:s}=e;const c=[],{blockElementScrollPositionUntilNextRender:d}=(0,l.o5)(),p=e=>{const t=e.currentTarget,n=c.indexOf(t),r=s[n].value;r!==i&&(d(t),u(r))},y=e=>{let t=null;switch(e.key){case"Enter":p(e);break;case"ArrowRight":{const n=c.indexOf(e.currentTarget)+1;t=c[n]??c[0];break}case"ArrowLeft":{const n=c.indexOf(e.currentTarget)-1;t=c[n]??c[c.length-1];break}}t?.focus()};return a.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,o.Z)("tabs",{"tabs--block":n},t)},s.map((e=>{let{value:t,label:n,attributes:l}=e;return a.createElement("li",(0,r.Z)({role:"tab",tabIndex:i===t?0:-1,"aria-selected":i===t,key:t,ref:e=>c.push(e),onKeyDown:y,onClick:p},l,{className:(0,o.Z)("tabs__item",h,l?.className,{"tabs__item--active":i===t})}),n??t)})))}function v(e){let{lazy:t,children:n,selectedValue:r}=e;const o=(Array.isArray(n)?n:[n]).filter(Boolean);if(t){const e=o.find((e=>e.props.value===r));return e?(0,a.cloneElement)(e,{className:"margin-top--md"}):null}return a.createElement("div",{className:"margin-top--md"},o.map(((e,t)=>(0,a.cloneElement)(e,{key:t,hidden:e.props.value!==r}))))}function P(e){const t=f(e);return a.createElement("div",{className:(0,o.Z)("tabs-container",k)},a.createElement(b,(0,r.Z)({},e,t)),a.createElement(v,(0,r.Z)({},e,t)))}function w(e){const t=(0,g.Z)();return a.createElement(P,(0,r.Z)({key:String(t)},e))}},8957:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>u,default:()=>y,frontMatter:()=>i,metadata:()=>s,toc:()=>d});var r=n(7462),a=(n(7294),n(3905)),o=n(4866),l=n(5162);const i={},u="yanky.nvim",s={unversionedId:"extras/coding/yanky",id:"extras/coding/yanky",title:"yanky.nvim",description:"The default LazyVim mappings to cycle yank history are [y and ]y",source:"@site/docs/extras/coding/yanky.md",sourceDirName:"extras/coding",slug:"/extras/coding/yanky",permalink:"/extras/coding/yanky",draft:!1,editUrl:"https://github.com/LazyVim/lazyvim.github.io/tree/main/docs/extras/coding/yanky.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Nvim-cmp",permalink:"/extras/coding/nvim-cmp"},next:{title:"DAP Core",permalink:"/extras/dap/core"}},c={},d=[{value:"yanky.nvim",id:"yankynvim-1",level:2}],p={toc:d};function y(e){let{components:t,...n}=e;return(0,a.kt)("wrapper",(0,r.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"yankynvim"},"yanky.nvim"),(0,a.kt)("blockquote",null,(0,a.kt)("p",{parentName:"blockquote"},"The default LazyVim mappings to cycle yank history are ",(0,a.kt)("inlineCode",{parentName:"p"},"[y")," and ",(0,a.kt)("inlineCode",{parentName:"p"},"]y"))),(0,a.kt)("admonition",{type:"info"},(0,a.kt)("p",{parentName:"admonition"},"You can enable the extra with the ",(0,a.kt)("inlineCode",{parentName:"p"},":LazyExtras")," command.\nPlugins marked as optional will only be configured if they are installed.")),(0,a.kt)("p",null,"Below you can find a list of included plugins and their default settings."),(0,a.kt)("admonition",{type:"caution"},(0,a.kt)("p",{parentName:"admonition"},"You don't need to copy the default settings to your config.\nThey are only shown here for reference.")),(0,a.kt)("h2",{id:"yankynvim-1"},(0,a.kt)("a",{parentName:"h2",href:"https://github.com/gbprod/yanky.nvim"},"yanky.nvim")),(0,a.kt)(o.Z,{mdxType:"Tabs"},(0,a.kt)(l.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},"opts = {\n system_clipboard = {\n sync_with_ring = not vim.env.SSH_CONNECTION,\n },\n highlight = { timer = 150 },\n}\n"))),(0,a.kt)(l.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "gbprod/yanky.nvim",\n recommended = true,\n desc = "Better Yank/Paste",\n event = "LazyFile",\n opts = {\n system_clipboard = {\n sync_with_ring = not vim.env.SSH_CONNECTION,\n },\n highlight = { timer = 150 },\n },\n keys = {\n {\n "p",\n function()\n if LazyVim.pick.picker.name == "telescope" then\n require("telescope").extensions.yank_history.yank_history({})\n elseif LazyVim.pick.picker.name == "snacks" then\n Snacks.picker.yanky()\n else\n vim.cmd([[YankyRingHistory]])\n end\n end,\n mode = { "n", "x" },\n desc = "Open Yank History",\n },\n -- stylua: ignore\n { "y", "(YankyYank)", mode = { "n", "x" }, desc = "Yank Text" },\n { "p", "(YankyPutAfter)", mode = { "n", "x" }, desc = "Put Text After Cursor" },\n { "P", "(YankyPutBefore)", mode = { "n", "x" }, desc = "Put Text Before Cursor" },\n { "gp", "(YankyGPutAfter)", mode = { "n", "x" }, desc = "Put Text After Selection" },\n { "gP", "(YankyGPutBefore)", mode = { "n", "x" }, desc = "Put Text Before Selection" },\n { "[y", "(YankyCycleForward)", desc = "Cycle Forward Through Yank History" },\n { "]y", "(YankyCycleBackward)", desc = "Cycle Backward Through Yank History" },\n { "]p", "(YankyPutIndentAfterLinewise)", desc = "Put Indented After Cursor (Linewise)" },\n { "[p", "(YankyPutIndentBeforeLinewise)", desc = "Put Indented Before Cursor (Linewise)" },\n { "]P", "(YankyPutIndentAfterLinewise)", desc = "Put Indented After Cursor (Linewise)" },\n { "[P", "(YankyPutIndentBeforeLinewise)", desc = "Put Indented Before Cursor (Linewise)" },\n { ">p", "(YankyPutIndentAfterShiftRight)", desc = "Put and Indent Right" },\n { "(YankyPutIndentAfterShiftLeft)", desc = "Put and Indent Left" },\n { ">P", "(YankyPutIndentBeforeShiftRight)", desc = "Put Before and Indent Right" },\n { "(YankyPutIndentBeforeShiftLeft)", desc = "Put Before and Indent Left" },\n { "=p", "(YankyPutAfterFilter)", desc = "Put After Applying a Filter" },\n { "=P", "(YankyPutBeforeFilter)", desc = "Put Before Applying a Filter" },\n },\n}\n')))))}y.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/0cfaa859.d7577e87.js b/assets/js/0cfaa859.d7577e87.js new file mode 100644 index 0000000000..b2dff60bf1 --- /dev/null +++ b/assets/js/0cfaa859.d7577e87.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklazyvim=self.webpackChunklazyvim||[]).push([[7993],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>f});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function o(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var s=a.createContext({}),u=function(e){var t=a.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},c=function(e){var t=u(e.components);return a.createElement(s.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},d=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,l=e.originalType,s=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),p=u(n),d=r,f=p["".concat(s,".").concat(d)]||p[d]||m[d]||l;return n?a.createElement(f,o(o({ref:t},c),{},{components:n})):a.createElement(f,o({ref:t},c))}));function f(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var l=n.length,o=new Array(l);o[0]=d;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[p]="string"==typeof e?e:r,o[1]=i;for(var u=2;u{n.d(t,{Z:()=>o});var a=n(7294),r=n(6010);const l="tabItem_Ymn6";function o(e){let{children:t,hidden:n,className:o}=e;return a.createElement("div",{role:"tabpanel",className:(0,r.Z)(l,o),hidden:n},t)}},4866:(e,t,n)=>{n.d(t,{Z:()=>w});var a=n(7462),r=n(7294),l=n(6010),o=n(2466),i=n(6550),s=n(1980),u=n(7392),c=n(12);function p(e){return function(e){return r.Children.map(e,(e=>{if(!e||(0,r.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw new Error(`Docusaurus error: Bad child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:t,label:n,attributes:a,default:r}}=e;return{value:t,label:n,attributes:a,default:r}}))}function m(e){const{values:t,children:n}=e;return(0,r.useMemo)((()=>{const e=t??p(n);return function(e){const t=(0,u.l)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in . Every value needs to be unique.`)}(e),e}),[t,n])}function d(e){let{value:t,tabValues:n}=e;return n.some((e=>e.value===t))}function f(e){let{queryString:t=!1,groupId:n}=e;const a=(0,i.k6)(),l=function(e){let{queryString:t=!1,groupId:n}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!n)throw new Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return n??null}({queryString:t,groupId:n});return[(0,s._X)(l),(0,r.useCallback)((e=>{if(!l)return;const t=new URLSearchParams(a.location.search);t.set(l,e),a.replace({...a.location,search:t.toString()})}),[l,a])]}function g(e){const{defaultValue:t,queryString:n=!1,groupId:a}=e,l=m(e),[o,i]=(0,r.useState)((()=>function(e){let{defaultValue:t,tabValues:n}=e;if(0===n.length)throw new Error("Docusaurus error: the component requires at least one children component");if(t){if(!d({value:t,tabValues:n}))throw new Error(`Docusaurus error: The has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${n.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const a=n.find((e=>e.default))??n[0];if(!a)throw new Error("Unexpected error: 0 tabValues");return a.value}({defaultValue:t,tabValues:l}))),[s,u]=f({queryString:n,groupId:a}),[p,g]=function(e){let{groupId:t}=e;const n=function(e){return e?`docusaurus.tab.${e}`:null}(t),[a,l]=(0,c.Nk)(n);return[a,(0,r.useCallback)((e=>{n&&l.set(e)}),[n,l])]}({groupId:a}),b=(()=>{const e=s??p;return d({value:e,tabValues:l})?e:null})();(0,r.useLayoutEffect)((()=>{b&&i(b)}),[b]);return{selectedValue:o,selectValue:(0,r.useCallback)((e=>{if(!d({value:e,tabValues:l}))throw new Error(`Can't select invalid tab value=${e}`);i(e),u(e),g(e)}),[u,g,l]),tabValues:l}}var b=n(2389);const v="tabList__CuJ",h="tabItem_LNqP";function y(e){let{className:t,block:n,selectedValue:i,selectValue:s,tabValues:u}=e;const c=[],{blockElementScrollPositionUntilNextRender:p}=(0,o.o5)(),m=e=>{const t=e.currentTarget,n=c.indexOf(t),a=u[n].value;a!==i&&(p(t),s(a))},d=e=>{let t=null;switch(e.key){case"Enter":m(e);break;case"ArrowRight":{const n=c.indexOf(e.currentTarget)+1;t=c[n]??c[0];break}case"ArrowLeft":{const n=c.indexOf(e.currentTarget)-1;t=c[n]??c[c.length-1];break}}t?.focus()};return r.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,l.Z)("tabs",{"tabs--block":n},t)},u.map((e=>{let{value:t,label:n,attributes:o}=e;return r.createElement("li",(0,a.Z)({role:"tab",tabIndex:i===t?0:-1,"aria-selected":i===t,key:t,ref:e=>c.push(e),onKeyDown:d,onClick:m},o,{className:(0,l.Z)("tabs__item",h,o?.className,{"tabs__item--active":i===t})}),n??t)})))}function k(e){let{lazy:t,children:n,selectedValue:a}=e;const l=(Array.isArray(n)?n:[n]).filter(Boolean);if(t){const e=l.find((e=>e.props.value===a));return e?(0,r.cloneElement)(e,{className:"margin-top--md"}):null}return r.createElement("div",{className:"margin-top--md"},l.map(((e,t)=>(0,r.cloneElement)(e,{key:t,hidden:e.props.value!==a}))))}function T(e){const t=g(e);return r.createElement("div",{className:(0,l.Z)("tabs-container",v)},r.createElement(y,(0,a.Z)({},e,t)),r.createElement(k,(0,a.Z)({},e,t)))}function w(e){const t=(0,b.Z)();return r.createElement(T,(0,a.Z)({key:String(t)},e))}},2070:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>s,default:()=>d,frontMatter:()=>i,metadata:()=>u,toc:()=>p});var a=n(7462),r=(n(7294),n(3905)),l=n(4866),o=n(5162);const i={},s="Zig",u={unversionedId:"extras/lang/zig",id:"extras/lang/zig",title:"Zig",description:"You can enable the extra with the :LazyExtras command.",source:"@site/docs/extras/lang/zig.md",sourceDirName:"extras/lang",slug:"/extras/lang/zig",permalink:"/extras/lang/zig",draft:!1,editUrl:"https://github.com/LazyVim/lazyvim.github.io/tree/main/docs/extras/lang/zig.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"YAML",permalink:"/extras/lang/yaml"},next:{title:"Eslint",permalink:"/extras/linting/eslint"}},c={},p=[{value:"nvim-treesitter",id:"nvim-treesitter",level:2},{value:"nvim-lspconfig",id:"nvim-lspconfig",level:2},{value:"neotest-zig",id:"neotest-zig",level:2},{value:"neotest (optional)",id:"neotest-optional",level:2}],m={toc:p};function d(e){let{components:t,...n}=e;return(0,r.kt)("wrapper",(0,a.Z)({},m,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"zig"},(0,r.kt)("inlineCode",{parentName:"h1"},"Zig")),(0,r.kt)("admonition",{type:"info"},(0,r.kt)("p",{parentName:"admonition"},"You can enable the extra with the ",(0,r.kt)("inlineCode",{parentName:"p"},":LazyExtras")," command.\nPlugins marked as optional will only be configured if they are installed.")),(0,r.kt)("p",null,"Below you can find a list of included plugins and their default settings."),(0,r.kt)("admonition",{type:"caution"},(0,r.kt)("p",{parentName:"admonition"},"You don't need to copy the default settings to your config.\nThey are only shown here for reference.")),(0,r.kt)("h2",{id:"nvim-treesitter"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/nvim-treesitter/nvim-treesitter"},"nvim-treesitter")),(0,r.kt)(l.Z,{mdxType:"Tabs"},(0,r.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = { ensure_installed = { "zig" } }\n'))),(0,r.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "nvim-treesitter/nvim-treesitter",\n opts = { ensure_installed = { "zig" } },\n}\n')))),(0,r.kt)("h2",{id:"nvim-lspconfig"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/neovim/nvim-lspconfig"},"nvim-lspconfig")),(0,r.kt)(l.Z,{mdxType:"Tabs"},(0,r.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},"opts = {\n servers = {\n zls = {},\n },\n}\n"))),(0,r.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "neovim/nvim-lspconfig",\n opts = {\n servers = {\n zls = {},\n },\n },\n}\n')))),(0,r.kt)("h2",{id:"neotest-zig"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/lawrence-laz/neotest-zig"},"neotest-zig")),(0,r.kt)(l.Z,{mdxType:"Tabs"},(0,r.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},"opts = nil\n"))),(0,r.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "lawrence-laz/neotest-zig",\n}\n')))),(0,r.kt)("h2",{id:"neotest-optional"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/nvim-neotest/neotest"},"neotest")," ",(0,r.kt)("em",{parentName:"h2"},"(optional)")),(0,r.kt)(l.Z,{mdxType:"Tabs"},(0,r.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = {\n adapters = {\n ["neotest-zig"] = {},\n },\n}\n'))),(0,r.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "nvim-neotest/neotest",\n optional = true,\n dependencies = {\n "lawrence-laz/neotest-zig",\n },\n opts = {\n adapters = {\n ["neotest-zig"] = {},\n },\n },\n}\n')))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/0dd98372.880d4357.js b/assets/js/0dd98372.880d4357.js new file mode 100644 index 0000000000..4bcd93fdbd --- /dev/null +++ b/assets/js/0dd98372.880d4357.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklazyvim=self.webpackChunklazyvim||[]).push([[4517],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>f});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var i=r.createContext({}),s=function(e){var t=r.useContext(i),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},c=function(e){var t=s(e.components);return r.createElement(i.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,l=e.originalType,i=e.parentName,c=u(e,["components","mdxType","originalType","parentName"]),p=s(n),d=a,f=p["".concat(i,".").concat(d)]||p[d]||m[d]||l;return n?r.createElement(f,o(o({ref:t},c),{},{components:n})):r.createElement(f,o({ref:t},c))}));function f(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var l=n.length,o=new Array(l);o[0]=d;var u={};for(var i in t)hasOwnProperty.call(t,i)&&(u[i]=t[i]);u.originalType=e,u[p]="string"==typeof e?e:a,o[1]=u;for(var s=2;s{n.d(t,{Z:()=>o});var r=n(7294),a=n(6010);const l="tabItem_Ymn6";function o(e){let{children:t,hidden:n,className:o}=e;return r.createElement("div",{role:"tabpanel",className:(0,a.Z)(l,o),hidden:n},t)}},4866:(e,t,n)=>{n.d(t,{Z:()=>x});var r=n(7462),a=n(7294),l=n(6010),o=n(2466),u=n(6550),i=n(1980),s=n(7392),c=n(12);function p(e){return function(e){return a.Children.map(e,(e=>{if(!e||(0,a.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw new Error(`Docusaurus error: Bad child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:t,label:n,attributes:r,default:a}}=e;return{value:t,label:n,attributes:r,default:a}}))}function m(e){const{values:t,children:n}=e;return(0,a.useMemo)((()=>{const e=t??p(n);return function(e){const t=(0,s.l)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in . Every value needs to be unique.`)}(e),e}),[t,n])}function d(e){let{value:t,tabValues:n}=e;return n.some((e=>e.value===t))}function f(e){let{queryString:t=!1,groupId:n}=e;const r=(0,u.k6)(),l=function(e){let{queryString:t=!1,groupId:n}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!n)throw new Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return n??null}({queryString:t,groupId:n});return[(0,i._X)(l),(0,a.useCallback)((e=>{if(!l)return;const t=new URLSearchParams(r.location.search);t.set(l,e),r.replace({...r.location,search:t.toString()})}),[l,r])]}function b(e){const{defaultValue:t,queryString:n=!1,groupId:r}=e,l=m(e),[o,u]=(0,a.useState)((()=>function(e){let{defaultValue:t,tabValues:n}=e;if(0===n.length)throw new Error("Docusaurus error: the component requires at least one children component");if(t){if(!d({value:t,tabValues:n}))throw new Error(`Docusaurus error: The has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${n.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const r=n.find((e=>e.default))??n[0];if(!r)throw new Error("Unexpected error: 0 tabValues");return r.value}({defaultValue:t,tabValues:l}))),[i,s]=f({queryString:n,groupId:r}),[p,b]=function(e){let{groupId:t}=e;const n=function(e){return e?`docusaurus.tab.${e}`:null}(t),[r,l]=(0,c.Nk)(n);return[r,(0,a.useCallback)((e=>{n&&l.set(e)}),[n,l])]}({groupId:r}),g=(()=>{const e=i??p;return d({value:e,tabValues:l})?e:null})();(0,a.useLayoutEffect)((()=>{g&&u(g)}),[g]);return{selectedValue:o,selectValue:(0,a.useCallback)((e=>{if(!d({value:e,tabValues:l}))throw new Error(`Can't select invalid tab value=${e}`);u(e),s(e),b(e)}),[s,b,l]),tabValues:l}}var g=n(2389);const v="tabList__CuJ",y="tabItem_LNqP";function h(e){let{className:t,block:n,selectedValue:u,selectValue:i,tabValues:s}=e;const c=[],{blockElementScrollPositionUntilNextRender:p}=(0,o.o5)(),m=e=>{const t=e.currentTarget,n=c.indexOf(t),r=s[n].value;r!==u&&(p(t),i(r))},d=e=>{let t=null;switch(e.key){case"Enter":m(e);break;case"ArrowRight":{const n=c.indexOf(e.currentTarget)+1;t=c[n]??c[0];break}case"ArrowLeft":{const n=c.indexOf(e.currentTarget)-1;t=c[n]??c[c.length-1];break}}t?.focus()};return a.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,l.Z)("tabs",{"tabs--block":n},t)},s.map((e=>{let{value:t,label:n,attributes:o}=e;return a.createElement("li",(0,r.Z)({role:"tab",tabIndex:u===t?0:-1,"aria-selected":u===t,key:t,ref:e=>c.push(e),onKeyDown:d,onClick:m},o,{className:(0,l.Z)("tabs__item",y,o?.className,{"tabs__item--active":u===t})}),n??t)})))}function k(e){let{lazy:t,children:n,selectedValue:r}=e;const l=(Array.isArray(n)?n:[n]).filter(Boolean);if(t){const e=l.find((e=>e.props.value===r));return e?(0,a.cloneElement)(e,{className:"margin-top--md"}):null}return a.createElement("div",{className:"margin-top--md"},l.map(((e,t)=>(0,a.cloneElement)(e,{key:t,hidden:e.props.value!==r}))))}function w(e){const t=b(e);return a.createElement("div",{className:(0,l.Z)("tabs-container",v)},a.createElement(h,(0,r.Z)({},e,t)),a.createElement(k,(0,r.Z)({},e,t)))}function x(e){const t=(0,g.Z)();return a.createElement(w,(0,r.Z)({key:String(t)},e))}},1616:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>d,frontMatter:()=>u,metadata:()=>s,toc:()=>p});var r=n(7462),a=(n(7294),n(3905)),l=n(4866),o=n(5162);const u={},i="Rego",s={unversionedId:"extras/lang/rego",id:"extras/lang/rego",title:"Rego",description:"You can enable the extra with the :LazyExtras command.",source:"@site/docs/extras/lang/rego.md",sourceDirName:"extras/lang",slug:"/extras/lang/rego",permalink:"/extras/lang/rego",draft:!1,editUrl:"https://github.com/LazyVim/lazyvim.github.io/tree/main/docs/extras/lang/rego.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"R",permalink:"/extras/lang/r"},next:{title:"Ruby",permalink:"/extras/lang/ruby"}},c={},p=[{value:"nvim-lspconfig",id:"nvim-lspconfig",level:2},{value:"nvim-treesitter",id:"nvim-treesitter",level:2}],m={toc:p};function d(e){let{components:t,...n}=e;return(0,a.kt)("wrapper",(0,r.Z)({},m,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"rego"},(0,a.kt)("inlineCode",{parentName:"h1"},"Rego")),(0,a.kt)("admonition",{type:"info"},(0,a.kt)("p",{parentName:"admonition"},"You can enable the extra with the ",(0,a.kt)("inlineCode",{parentName:"p"},":LazyExtras")," command.\nPlugins marked as optional will only be configured if they are installed.")),(0,a.kt)("p",null,"Below you can find a list of included plugins and their default settings."),(0,a.kt)("admonition",{type:"caution"},(0,a.kt)("p",{parentName:"admonition"},"You don't need to copy the default settings to your config.\nThey are only shown here for reference.")),(0,a.kt)("h2",{id:"nvim-lspconfig"},(0,a.kt)("a",{parentName:"h2",href:"https://github.com/neovim/nvim-lspconfig"},"nvim-lspconfig")),(0,a.kt)(l.Z,{mdxType:"Tabs"},(0,a.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},"opts = {\n servers = {\n regols = {},\n regal = {},\n },\n}\n"))),(0,a.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "neovim/nvim-lspconfig",\n opts = {\n servers = {\n regols = {},\n regal = {},\n },\n },\n}\n')))),(0,a.kt)("h2",{id:"nvim-treesitter"},(0,a.kt)("a",{parentName:"h2",href:"https://github.com/nvim-treesitter/nvim-treesitter"},"nvim-treesitter")),(0,a.kt)(l.Z,{mdxType:"Tabs"},(0,a.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'opts = {\n ensure_installed = { "rego" },\n}\n'))),(0,a.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "nvim-treesitter/nvim-treesitter",\n opts = {\n ensure_installed = { "rego" },\n },\n}\n')))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/0e384e19.2344ca15.js b/assets/js/0e384e19.2344ca15.js new file mode 100644 index 0000000000..e41c6ed898 --- /dev/null +++ b/assets/js/0e384e19.2344ca15.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklazyvim=self.webpackChunklazyvim||[]).push([[9671],{3905:(e,h,t)=>{t.d(h,{Zo:()=>Z,kt:()=>d});var a=t(7294);function m(e,h,t){return h in e?Object.defineProperty(e,h,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[h]=t,e}function r(e,h){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);h&&(a=a.filter((function(h){return Object.getOwnPropertyDescriptor(e,h).enumerable}))),t.push.apply(t,a)}return t}function v(e){for(var h=1;h=0||(m[t]=e[t]);return m}(e,h);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(m[t]=e[t])}return m}var V=a.createContext({}),l=function(e){var h=a.useContext(V),t=h;return e&&(t="function"==typeof e?e(h):v(v({},h),e)),t},Z=function(e){var h=l(e.components);return a.createElement(V.Provider,{value:h},e.children)},p="mdxType",c={inlineCode:"code",wrapper:function(e){var h=e.children;return a.createElement(a.Fragment,{},h)}},i=a.forwardRef((function(e,h){var t=e.components,m=e.mdxType,r=e.originalType,V=e.parentName,Z=n(e,["components","mdxType","originalType","parentName"]),p=l(t),i=m,d=p["".concat(V,".").concat(i)]||p[i]||c[i]||r;return t?a.createElement(d,v(v({ref:h},Z),{},{components:t})):a.createElement(d,v({ref:h},Z))}));function d(e,h){var t=arguments,m=h&&h.mdxType;if("string"==typeof e||m){var r=t.length,v=new Array(r);v[0]=i;var n={};for(var V in h)hasOwnProperty.call(h,V)&&(n[V]=h[V]);n.originalType=e,n[p]="string"==typeof e?e:m,v[1]=n;for(var l=2;l{t.r(h),t.d(h,{assets:()=>it,contentTitle:()=>pt,default:()=>st,frontMatter:()=>Zt,metadata:()=>ct,toc:()=>dt});var a,m,r,v,n,V,l,Z,p,c,i,d,o,s,M,E,u,g,f,k,N,y,b,w,O,z,j,x,L,P,T,S,C,D,I,H,q,F,G,W,B,R,X,A,_,J,U,K,Q,Y,$,ee,he,te,ae,me,re,ve,ne,Ve,le,Ze,pe,ce,ie,de,oe,se,Me,Ee,ue,ge,fe,ke,Ne,ye,be,we,Oe,ze,je,xe,Le,Pe,Te,Se,Ce,De,Ie,He,qe,Fe,Ge,We,Be,Re,Xe,Ae,_e,Je,Ue,Ke,Qe,Ye,$e,eh,hh,th,ah,mh,rh,vh,nh,Vh,lh,Zh,ph,ch,ih,dh,oh,sh,Mh,Eh,uh,gh,fh,kh,Nh,yh,bh,wh,Oh,zh,jh,xh,Lh,Ph,Th,Sh,Ch,Dh,Ih,Hh,qh,Fh,Gh,Wh,Bh,Rh,Xh,Ah,_h,Jh,Uh,Kh,Qh,Yh,$h,et,ht,tt,at,mt,rt=t(7462),vt=t(7294),nt=t(3905);function Vt(){return Vt=Object.assign?Object.assign.bind():function(e){for(var h=1;h{let{title:h,titleId:t,...rt}=e;return vt.createElement("svg",Vt({viewBox:"0 0 570 125",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":t},rt),h?vt.createElement("title",{id:t},h):null,a||(a=vt.createElement("path",{d:"M.86 19.2V.72h8.68V19.2H.86Z"})),m||(m=vt.createElement("path",{d:"M8.863 19.2V.72h8.68V19.2h-8.68Z"})),r||(r=vt.createElement("path",{d:"M21.905 19.2V9.12h-5.18v-1.4h6.58V19.2h-1.4Zm-2.8 0v-7.28h-2.38v-1.4h3.78v8.68h-1.4Zm53.778 0V.72h8.68V19.2h-8.68Z"})),v||(v=vt.createElement("path",{d:"M80.885 19.2V.72h8.68V19.2h-8.68Z"})),n||(n=vt.createElement("path",{d:"M88.888 19.2V.72h8.68V19.2h-8.68Z"})),V||(V=vt.createElement("path",{d:"M96.89 19.2V.72h8.68V19.2h-8.68Z"})),l||(l=vt.createElement("path",{d:"M104.893 19.2V.72h8.68V19.2h-8.68Z"})),Z||(Z=vt.createElement("path",{d:"M117.935 19.2V9.12h-5.18v-1.4h6.58V19.2h-1.4Zm-2.8 0v-7.28h-2.38v-1.4h3.78v8.68h-1.4Zm13.765 0V.72h8.68V19.2h-8.68Z"})),p||(p=vt.createElement("path",{d:"M136.903 19.2V.72h8.68V19.2h-8.68Z"})),c||(c=vt.createElement("path",{d:"M144.906 19.2V.72h8.68V19.2h-8.68Z"})),i||(i=vt.createElement("path",{d:"M152.908 19.2V.72h8.68V19.2h-8.68Z"})),d||(d=vt.createElement("path",{d:"M160.911 19.2V.72h8.68V19.2h-8.68Z"})),o||(o=vt.createElement("path",{d:"M168.913 19.2V.72h8.68V19.2h-8.68Z"})),s||(s=vt.createElement("path",{d:"M176.916 19.2V.72h8.68V19.2h-8.68Z"})),M||(M=vt.createElement("path",{d:"M189.958 19.2V9.12h-5.18v-1.4h6.58V19.2h-1.4Zm-2.8 0v-7.28h-2.38v-1.4h3.78v8.68h-1.4Zm5.763 0V.72h8.68V19.2h-8.68Z"})),E||(E=vt.createElement("path",{d:"M200.923 19.2V.72h8.68V19.2h-8.68Z"})),u||(u=vt.createElement("path",{d:"M213.966 19.2V9.12h-5.18v-1.4h6.58V19.2h-1.4Zm-2.8 0v-7.28h-2.38v-1.4h3.78v8.68h-1.4Zm29.77 0V.72h8.68V19.2h-8.68Z"})),g||(g=vt.createElement("path",{d:"M248.938 19.2V.72h8.68V19.2h-8.68Z"})),f||(f=vt.createElement("path",{d:"M261.981 19.2V9.12h-5.18v-1.4h6.58V19.2h-1.4Zm-2.8 0v-7.28h-2.38v-1.4h3.78v8.68h-1.4Zm5.763 0V.72h8.68V19.2h-8.68Z"})),k||(k=vt.createElement("path",{d:"M272.946 19.2V.72h8.68V19.2h-8.68Z"})),N||(N=vt.createElement("path",{d:"M285.989 19.2V9.12h-5.18v-1.4h6.58V19.2h-1.4Zm-2.8 0v-7.28h-2.38v-1.4h3.78v8.68h-1.4Zm29.77 0V.72h8.68V19.2h-8.68Z"})),y||(y=vt.createElement("path",{d:"M320.961 19.2V.72h8.68V19.2h-8.68Z"})),b||(b=vt.createElement("path",{d:"M334.004 19.2V9.12h-5.18v-1.4h6.58V19.2h-1.4Zm-2.8 0v-7.28h-2.38v-1.4h3.78v8.68h-1.4Zm5.762 0V.72h8.68V19.2h-8.68Z"})),w||(w=vt.createElement("path",{d:"M344.969 19.2V.72h8.68V19.2h-8.68Z"})),O||(O=vt.createElement("path",{d:"M358.011 19.2V9.12h-5.18v-1.4h6.58V19.2h-1.4Zm-2.8 0v-7.28h-2.38v-1.4h3.78v8.68h-1.4Zm5.763 0V.72h8.68V19.2h-8.68Z"})),z||(z=vt.createElement("path",{d:"M368.976 19.2V.72h8.68V19.2h-8.68Z"})),j||(j=vt.createElement("path",{d:"M376.979 19.2V.72h8.68V19.2h-8.68Z"})),x||(x=vt.createElement("path",{d:"M390.021 19.2V9.12h-5.179v-1.4h6.579V19.2h-1.4Zm-2.799 0v-7.28h-2.38v-1.4h3.78v8.68h-1.4Zm29.77 0V.72h8.68V19.2h-8.68Z"})),L||(L=vt.createElement("path",{d:"M424.994 19.2V.72h8.68V19.2h-8.68Z"})),P||(P=vt.createElement("path",{d:"M432.997 19.2V.72h8.68V19.2h-8.68Z"})),T||(T=vt.createElement("path",{d:"M446.039 19.2V9.12h-5.18v-1.4h6.58V19.2h-1.4Zm-2.8 0v-7.28h-2.38v-1.4h3.78v8.68h-1.4Zm87.118-4.2v-1.26l4.606-7.812h-4.536V4.78h5.81v1.26l-4.606 7.812h4.746V15h-6.02ZM.86 36.2V17.72h8.68V36.2H.86Z"})),S||(S=vt.createElement("path",{d:"M8.863 36.2V17.72h8.68V36.2h-8.68Zm13.042 0V17.72h1.4V36.2h-1.4Zm-2.8 0V17.72h1.4V36.2h-1.4Zm45.775 0V17.72h8.68V36.2h-8.68Z"})),C||(C=vt.createElement("path",{d:"M72.883 36.2V17.72h8.68V36.2h-8.68Zm10.242 0V24.72h6.58v1.4h-5.18V36.2h-1.4Zm2.8 0v-8.68h3.78v1.4h-2.38v7.28h-1.4Z"})),D||(D=vt.createElement("path",{d:"M88.748 26.12v-1.4h8.96v1.4h-8.96Zm0 2.8v-1.4h8.96v1.4h-8.96Z"})),I||(I=vt.createElement("path",{d:"M96.75 26.12v-1.4h8.96v1.4h-8.96Zm0 2.8v-1.4h8.96v1.4h-8.96Z"})),H||(H=vt.createElement("path",{d:"M104.893 36.2V17.72h8.68V36.2h-8.68Z"})),q||(q=vt.createElement("path",{d:"M112.895 36.2V17.72h8.68V36.2h-8.68Z"})),F||(F=vt.createElement("path",{d:"M125.938 36.2V26.12h-5.18v-1.4h6.58V36.2h-1.4Zm-2.8 0v-7.28h-2.38v-1.4h3.78v8.68h-1.4Zm8.003-7.28v-11.2h1.399v9.8h5.18v1.4h-6.579Zm2.799-2.8v-8.4h1.4v7h2.38v1.4h-3.78Z"})),G||(G=vt.createElement("path",{d:"M136.763 26.12v-1.4h8.96v1.4h-8.96Zm0 2.8v-1.4h8.96v1.4h-8.96Z"})),W||(W=vt.createElement("path",{d:"M144.766 26.12v-1.4h8.96v1.4h-8.96Zm0 2.8v-1.4h8.96v1.4h-8.96Z"})),B||(B=vt.createElement("path",{d:"M152.908 36.2V17.72h8.68V36.2h-8.68Z"})),R||(R=vt.createElement("path",{d:"M160.911 36.2V17.72h8.68V36.2h-8.68Z"})),X||(X=vt.createElement("path",{d:"M168.913 36.2V17.72h8.68V36.2h-8.68Zm10.243 0V24.72h6.58v1.4h-5.18V36.2h-1.4Zm2.8 0v-8.68h3.78v1.4h-2.38v7.28h-1.4Z"})),A||(A=vt.createElement("path",{d:"M184.778 28.92v-1.4h5.18v-9.8h1.4v11.2h-6.58Zm0-2.8v-1.4h2.38v-7h1.4v8.4h-3.78Zm10.383 2.8v-11.2h1.4v9.8h5.18v1.4h-6.58Zm2.8-2.8v-8.4h1.4v7h2.38v1.4h-3.78Z"})),_||(_=vt.createElement("path",{d:"M200.923 36.2V17.72h8.68V36.2h-8.68Z"})),J||(J=vt.createElement("path",{d:"M208.926 36.2V17.72h8.68V36.2h-8.68Z"})),U||(U=vt.createElement("path",{d:"M221.968 36.2V26.12h-5.18v-1.4h6.58V36.2h-1.4Zm-2.8 0v-7.28h-2.38v-1.4h3.78v8.68h-1.4Zm13.765 0V17.72h8.68V36.2h-8.68Z"})),K||(K=vt.createElement("path",{d:"M240.936 36.2V17.72h8.68V36.2h-8.68Zm10.242 0V24.72h6.58v1.4h-5.18V36.2h-1.4Zm2.8 0v-8.68h3.78v1.4h-2.38v7.28h-1.4Z"})),Q||(Q=vt.createElement("path",{d:"M256.801 28.92v-1.4h5.18v-9.8h1.4v11.2h-6.58Zm0-2.8v-1.4h2.38v-7h1.4v8.4h-3.78Zm8.143 10.08V17.72h8.68V36.2h-8.68Z"})),Y||(Y=vt.createElement("path",{d:"M272.946 36.2V17.72h8.68V36.2h-8.68Zm13.043 0V17.72h1.4V36.2h-1.4Zm-2.8 0V17.72h1.4V36.2h-1.4Zm29.77 0V17.72h8.68V36.2h-8.68Z"})),$||($=vt.createElement("path",{d:"M320.961 36.2V17.72h8.68V36.2h-8.68Zm13.043 0V17.72h1.4V36.2h-1.4Zm-2.8 0V17.72h1.4V36.2h-1.4Zm5.762 0V17.72h8.68V36.2h-8.68Z"})),ee||(ee=vt.createElement("path",{d:"M344.969 36.2V17.72h8.68V36.2h-8.68Zm13.042 0V17.72h1.4V36.2h-1.4Zm-2.8 0V17.72h1.4V36.2h-1.4Zm5.763 0V17.72h8.68V36.2h-8.68Z"})),he||(he=vt.createElement("path",{d:"M368.976 36.2V17.72h8.68V36.2h-8.68Z"})),te||(te=vt.createElement("path",{d:"M376.979 36.2V17.72h8.68V36.2h-8.68Z"})),ae||(ae=vt.createElement("path",{d:"M384.981 36.2V17.72h8.681V36.2h-8.681Z"})),me||(me=vt.createElement("path",{d:"M398.024 36.2V26.12h-5.18v-1.4h6.58V36.2h-1.4Zm-2.8 0v-7.28h-2.38v-1.4h3.78v8.68h-1.4Zm13.765 0V17.72h8.68V36.2h-8.68Z"})),re||(re=vt.createElement("path",{d:"M416.992 36.2V17.72h8.68V36.2h-8.68Z"})),ve||(ve=vt.createElement("path",{d:"M424.994 36.2V17.72h8.68V36.2h-8.68Z"})),ne||(ne=vt.createElement("path",{d:"M432.997 36.2V17.72h8.68V36.2h-8.68Zm13.042 0V17.72h1.4V36.2h-1.4Zm-2.8 0V17.72h1.4V36.2h-1.4Zm55.108-4.2v-1.26l4.606-7.812h-4.536V21.78h5.81v1.26l-4.606 7.812h4.746V32h-6.02ZM.86 53.2V34.72h8.68V53.2H.86Z"})),Ve||(Ve=vt.createElement("path",{d:"M8.863 53.2V34.72h8.68V53.2h-8.68Zm13.042 0V34.72h1.4V53.2h-1.4Zm-2.8 0V34.72h1.4V53.2h-1.4Zm45.775 0V34.72h8.68V53.2h-8.68Z"})),le||(le=vt.createElement("path",{d:"M72.883 53.2V34.72h8.68V53.2h-8.68Z"})),Ze||(Ze=vt.createElement("path",{d:"M80.885 53.2V34.72h8.68V53.2h-8.68Z"})),pe||(pe=vt.createElement("path",{d:"M88.888 53.2V34.72h8.68V53.2h-8.68Z"})),ce||(ce=vt.createElement("path",{d:"M96.89 53.2V34.72h8.68V53.2h-8.68Z"})),ie||(ie=vt.createElement("path",{d:"M104.893 53.2V34.72h8.68V53.2h-8.68Z"})),de||(de=vt.createElement("path",{d:"M112.895 53.2V34.72h8.68V53.2h-8.68Zm13.043 0V34.72h1.4V53.2h-1.4Zm-2.8 0V34.72h1.4V53.2h-1.4Zm21.768 0V34.72h8.68V53.2h-8.68Z"})),oe||(oe=vt.createElement("path",{d:"M152.908 53.2V34.72h8.68V53.2h-8.68Z"})),se||(se=vt.createElement("path",{d:"M160.911 53.2V34.72h8.68V53.2h-8.68Zm10.242 0V41.72h6.58v1.4h-5.18V53.2h-1.4Zm2.8 0v-8.68h3.78v1.4h-2.38v7.28h-1.4Z"})),Me||(Me=vt.createElement("path",{d:"M176.776 45.92v-1.4h5.18v-9.8h1.4v11.2h-6.58Zm0-2.8v-1.4h2.38v-7h1.4v8.4h-3.78Zm26.387 2.8v-11.2h1.4v9.8h5.18v1.4h-6.58Zm2.8-2.8v-8.4h1.4v7h2.38v1.4h-3.78Z"})),Ee||(Ee=vt.createElement("path",{d:"M208.926 53.2V34.72h8.68V53.2h-8.68Z"})),ue||(ue=vt.createElement("path",{d:"M216.928 53.2V34.72h8.68V53.2h-8.68Z"})),ge||(ge=vt.createElement("path",{d:"M224.931 53.2V34.72h8.68V53.2h-8.68Z"})),fe||(fe=vt.createElement("path",{d:"M232.933 53.2V34.72h8.68V53.2h-8.68Zm10.243 0V41.72h6.58v1.4h-5.18V53.2h-1.4Zm2.8 0v-8.68h3.78v1.4h-2.38v7.28h-1.4Z"})),ke||(ke=vt.createElement("path",{d:"M248.798 45.92v-1.4h5.18v-9.8h1.4v11.2h-6.58Zm0-2.8v-1.4h2.38v-7h1.4v8.4h-3.78Zm16.146 10.08V34.72h8.68V53.2h-8.68Z"})),Ne||(Ne=vt.createElement("path",{d:"M272.946 53.2V34.72h8.68V53.2h-8.68Zm13.043 0V34.72h1.4V53.2h-1.4Zm-2.8 0V34.72h1.4V53.2h-1.4Zm29.77 0V34.72h8.68V53.2h-8.68Z"})),ye||(ye=vt.createElement("path",{d:"M320.961 53.2V34.72h8.68V53.2h-8.68Zm13.043 0V34.72h1.4V53.2h-1.4Zm-2.8 0V34.72h1.4V53.2h-1.4Zm5.762 0V34.72h8.68V53.2h-8.68Z"})),be||(be=vt.createElement("path",{d:"M344.969 53.2V34.72h8.68V53.2h-8.68Zm13.042 0V34.72h1.4V53.2h-1.4Zm-2.8 0V34.72h1.4V53.2h-1.4Zm5.763 0V34.72h8.68V53.2h-8.68Z"})),we||(we=vt.createElement("path",{d:"M368.976 53.2V34.72h8.68V53.2h-8.68Zm10.243 0V41.72h6.58v1.4h-5.18V53.2h-1.4Zm2.8 0v-8.68h3.78v1.4h-2.38v7.28h-1.4Z"})),Oe||(Oe=vt.createElement("path",{d:"M384.981 53.2V34.72h8.681V53.2h-8.681Z"})),ze||(ze=vt.createElement("path",{d:"M392.984 53.2V34.72h8.68V53.2h-8.68Z"})),je||(je=vt.createElement("path",{d:"M400.987 53.2V34.72h8.68V53.2h-8.68Z"})),xe||(xe=vt.createElement("path",{d:"M408.989 53.2V34.72h8.68V53.2h-8.68Zm10.243 0V41.72h6.58v1.4h-5.18V53.2h-1.4Zm2.8 0v-8.68h3.78v1.4h-2.38v7.28h-1.4Z"})),Le||(Le=vt.createElement("path",{d:"M424.994 53.2V34.72h8.68V53.2h-8.68Z"})),Pe||(Pe=vt.createElement("path",{d:"M432.997 53.2V34.72h8.68V53.2h-8.68Zm13.042 0V34.72h1.4V53.2h-1.4Zm-2.8 0V34.72h1.4V53.2h-1.4Zm31.17-4.2v-1.26l4.312-5.292h-4.2V41.3h5.614v1.26l-4.396 5.292h4.55V49h-5.88ZM.86 70.2V51.72h8.68V70.2H.86Z"})),Te||(Te=vt.createElement("path",{d:"M8.863 70.2V51.72h8.68V70.2h-8.68Zm13.042 0V51.72h1.4V70.2h-1.4Zm-2.8 0V51.72h1.4V70.2h-1.4Zm45.775 0V51.72h8.68V70.2h-8.68Z"})),Se||(Se=vt.createElement("path",{d:"M72.883 70.2V51.72h8.68V70.2h-8.68Zm10.242 0V58.72h6.58v1.4h-5.18V70.2h-1.4Zm2.8 0v-8.68h3.78v1.4h-2.38v7.28h-1.4Z"})),Ce||(Ce=vt.createElement("path",{d:"M88.748 60.12v-1.4h8.96v1.4h-8.96Zm0 2.8v-1.4h8.96v1.4h-8.96Z"})),De||(De=vt.createElement("path",{d:"M96.75 60.12v-1.4h8.96v1.4h-8.96Zm0 2.8v-1.4h8.96v1.4h-8.96Z"})),Ie||(Ie=vt.createElement("path",{d:"M104.893 70.2V51.72h8.68V70.2h-8.68Z"})),He||(He=vt.createElement("path",{d:"M112.895 70.2V51.72h8.68V70.2h-8.68Zm13.043 0V51.72h1.4V70.2h-1.4Zm-2.8 0V51.72h1.4V70.2h-1.4Zm13.765 0V51.72h8.68V70.2h-8.68Z"})),qe||(qe=vt.createElement("path",{d:"M144.906 70.2V51.72h8.68V70.2h-8.68Z"})),Fe||(Fe=vt.createElement("path",{d:"M152.908 70.2V51.72h8.68V70.2h-8.68Zm10.243 0V58.72h6.58v1.4h-5.18V70.2h-1.4Zm2.8 0v-8.68h3.78v1.4h-2.38v7.28h-1.4Z"})),Ge||(Ge=vt.createElement("path",{d:"M168.773 62.92v-1.4h5.18v-9.8h1.4v11.2h-6.58Zm0-2.8v-1.4h2.38v-7h1.4v8.4h-3.78Zm42.393 2.8v-11.2h1.4v9.8h5.18v1.4h-6.58Zm2.8-2.8v-8.4h1.4v7h2.38v1.4h-3.78Z"})),We||(We=vt.createElement("path",{d:"M216.928 70.2V51.72h8.68V70.2h-8.68Z"})),Be||(Be=vt.createElement("path",{d:"M224.931 70.2V51.72h8.68V70.2h-8.68Zm10.242 0V58.72h6.58v1.4h-5.18V70.2h-1.4Zm2.8 0v-8.68h3.78v1.4h-2.38v7.28h-1.4Z"})),Re||(Re=vt.createElement("path",{d:"M240.796 62.92v-1.4h5.18v-9.8h1.4v11.2h-6.58Zm0-2.8v-1.4h2.38v-7h1.4v8.4h-3.78Zm26.388 2.8v-11.2h1.4v9.8h5.18v1.4h-6.58Zm2.8-2.8v-8.4h1.4v7h2.38v1.4h-3.78Z"})),Xe||(Xe=vt.createElement("path",{d:"M272.946 70.2V51.72h8.68V70.2h-8.68Z"})),Ae||(Ae=vt.createElement("path",{d:"M280.949 70.2V51.72h8.68V70.2h-8.68Z"})),_e||(_e=vt.createElement("path",{d:"M293.991 70.2V60.12h-5.18v-1.4h6.58V70.2h-1.4Zm-2.8 0v-7.28h-2.38v-1.4h3.78v8.68h-1.4Zm13.765 0V51.72h8.68V70.2h-8.68Z"})),Je||(Je=vt.createElement("path",{d:"M312.959 70.2V51.72h8.68V70.2h-8.68Zm10.242 0V58.72h6.58v1.4h-5.18V70.2h-1.4Zm2.8 0v-8.68h3.78v1.4h-2.38v7.28h-1.4Z"})),Ue||(Ue=vt.createElement("path",{d:"M328.824 62.92v-1.4h5.18v-9.8h1.4v11.2h-6.58Zm0-2.8v-1.4h2.38v-7h1.4v8.4h-3.78Zm8.142 10.08V51.72h8.68V70.2h-8.68Z"})),Ke||(Ke=vt.createElement("path",{d:"M344.969 70.2V51.72h8.68V70.2h-8.68Zm13.042 0V51.72h1.4V70.2h-1.4Zm-2.8 0V51.72h1.4V70.2h-1.4Zm5.763 0V51.72h8.68V70.2h-8.68Z"})),Qe||(Qe=vt.createElement("path",{d:"M368.976 70.2V51.72h8.68V70.2h-8.68Zm13.043 0V51.72h1.4V70.2h-1.4Zm-2.8 0V51.72h1.4V70.2h-1.4Zm8.003-7.28v-11.2h1.4v9.8h5.179v1.4h-6.579Zm2.799-2.8v-8.4h1.4v7h2.38v1.4h-3.78Z"})),Ye||(Ye=vt.createElement("path",{d:"M392.984 70.2V51.72h8.68V70.2h-8.68Z"})),$e||($e=vt.createElement("path",{d:"M400.987 70.2V51.72h8.68V70.2h-8.68Zm10.242 0V58.72h6.58v1.4h-5.18V70.2h-1.4Zm2.8 0v-8.68h3.78v1.4h-2.38v7.28h-1.4Z"})),eh||(eh=vt.createElement("path",{d:"M416.852 62.92v-1.4h5.18v-9.8h1.4v11.2h-6.58Zm0-2.8v-1.4h2.38v-7h1.4v8.4h-3.78Zm8.142 10.08V51.72h8.68V70.2h-8.68Z"})),hh||(hh=vt.createElement("path",{d:"M432.997 70.2V51.72h8.68V70.2h-8.68Zm13.042 0V51.72h1.4V70.2h-1.4Zm-2.8 0V51.72h1.4V70.2h-1.4Zm15.165-4.2v-1.26l4.312-5.292h-4.2V58.3h5.614v1.26l-4.396 5.292h4.55V66h-5.88ZM.86 87.2V68.72h8.68V87.2H.86Z"})),th||(th=vt.createElement("path",{d:"M8.863 87.2V68.72h8.68V87.2h-8.68Z"})),ah||(ah=vt.createElement("path",{d:"M16.865 87.2V68.72h8.68V87.2h-8.68Z"})),mh||(mh=vt.createElement("path",{d:"M24.868 87.2V68.72h8.68V87.2h-8.68Z"})),rh||(rh=vt.createElement("path",{d:"M32.87 87.2V68.72h8.68V87.2h-8.68Z"})),vh||(vh=vt.createElement("path",{d:"M40.873 87.2V68.72h8.68V87.2h-8.68Z"})),nh||(nh=vt.createElement("path",{d:"M48.875 87.2V68.72h8.68V87.2h-8.68Z"})),Vh||(Vh=vt.createElement("path",{d:"M61.918 87.2V77.12h-5.18v-1.4h6.58V87.2h-1.4Zm-2.8 0v-7.28h-2.38v-1.4h3.78v8.68h-1.4Zm5.762 0V68.72h8.68V87.2h-8.68Z"})),lh||(lh=vt.createElement("path",{d:"M72.883 87.2V68.72h8.68V87.2h-8.68Zm13.042 0V68.72h1.4V87.2h-1.4Zm-2.8 0V68.72h1.4V87.2h-1.4Zm21.768 0V68.72h8.68V87.2h-8.68Z"})),Zh||(Zh=vt.createElement("path",{d:"M112.895 87.2V68.72h8.68V87.2h-8.68Zm13.043 0V68.72h1.4V87.2h-1.4Zm-2.8 0V68.72h1.4V87.2h-1.4Zm5.762 0V68.72h8.68V87.2h-8.68Z"})),ph||(ph=vt.createElement("path",{d:"M136.903 87.2V68.72h8.68V87.2h-8.68Z"})),ch||(ch=vt.createElement("path",{d:"M144.906 87.2V68.72h8.68V87.2h-8.68Z"})),ih||(ih=vt.createElement("path",{d:"M152.908 87.2V68.72h8.68V87.2h-8.68Z"})),dh||(dh=vt.createElement("path",{d:"M160.911 87.2V68.72h8.68V87.2h-8.68Z"})),oh||(oh=vt.createElement("path",{d:"M168.913 87.2V68.72h8.68V87.2h-8.68Z"})),sh||(sh=vt.createElement("path",{d:"M176.916 87.2V68.72h8.68V87.2h-8.68Z"})),Mh||(Mh=vt.createElement("path",{d:"M189.958 87.2V77.12h-5.18v-1.4h6.58V87.2h-1.4Zm-2.8 0v-7.28h-2.38v-1.4h3.78v8.68h-1.4Zm29.77 0V68.72h8.68V87.2h-8.68Z"})),Eh||(Eh=vt.createElement("path",{d:"M224.931 87.2V68.72h8.68V87.2h-8.68Zm13.042 0V68.72h1.4V87.2h-1.4Zm-2.8 0V68.72h1.4V87.2h-1.4Zm40.013-7.28v-11.2h1.4v9.8h5.18v1.4h-6.58Zm2.8-2.8v-8.4h1.4v7h2.38v1.4h-3.78Z"})),uh||(uh=vt.createElement("path",{d:"M280.949 87.2V68.72h8.68V87.2h-8.68Z"})),gh||(gh=vt.createElement("path",{d:"M288.951 87.2V68.72h8.68V87.2h-8.68Z"})),fh||(fh=vt.createElement("path",{d:"M296.954 87.2V68.72h8.68V87.2h-8.68Z"})),kh||(kh=vt.createElement("path",{d:"M304.956 87.2V68.72h8.68V87.2h-8.68Zm10.243 0V75.72h6.58v1.4h-5.18V87.2h-1.4Zm2.8 0v-8.68h3.78v1.4h-2.38v7.28h-1.4Z"})),Nh||(Nh=vt.createElement("path",{d:"M320.821 79.92v-1.4h5.18v-9.8h1.4v11.2h-6.58Zm0-2.8v-1.4h2.38v-7h1.4v8.4h-3.78Zm16.145 10.08V68.72h8.68V87.2h-8.68Z"})),yh||(yh=vt.createElement("path",{d:"M344.969 87.2V68.72h8.68V87.2h-8.68Zm13.042 0V68.72h1.4V87.2h-1.4Zm-2.8 0V68.72h1.4V87.2h-1.4Zm5.763 0V68.72h8.68V87.2h-8.68Z"})),bh||(bh=vt.createElement("path",{d:"M368.976 87.2V68.72h8.68V87.2h-8.68Zm13.043 0V68.72h1.4V87.2h-1.4Zm-2.8 0V68.72h1.4V87.2h-1.4Zm16.005-7.28v-11.2h1.4v9.8h5.18v1.4h-6.58Zm2.8-2.8v-8.4h1.4v7h2.38v1.4h-3.78Z"})),wh||(wh=vt.createElement("path",{d:"M400.847 77.12v-1.4h8.96v1.4h-8.96Zm0 2.8v-1.4h8.96v1.4h-8.96Z"})),Oh||(Oh=vt.createElement("path",{d:"M408.849 79.92v-1.4h5.18v-9.8h1.4v11.2h-6.58Zm0-2.8v-1.4h2.38v-7h1.4v8.4h-3.78Zm16.145 10.08V68.72h8.68V87.2h-8.68Z"})),zh||(zh=vt.createElement("path",{d:"M432.997 87.2V68.72h8.68V87.2h-8.68Zm13.042 0V68.72h1.4V87.2h-1.4Zm-2.8 0V68.72h1.4V87.2h-1.4ZM3.1 96.92v-11.2h1.4v9.8h5.18v1.4H3.1Zm2.8-2.8v-8.4h1.4v7h2.38v1.4H5.9Z"})),jh||(jh=vt.createElement("path",{d:"M8.723 94.12v-1.4h8.96v1.4h-8.96Zm0 2.8v-1.4h8.96v1.4h-8.96Z"})),xh||(xh=vt.createElement("path",{d:"M16.725 94.12v-1.4h8.96v1.4h-8.96Zm0 2.8v-1.4h8.96v1.4h-8.96Z"})),Lh||(Lh=vt.createElement("path",{d:"M24.728 94.12v-1.4h8.96v1.4h-8.96Zm0 2.8v-1.4h8.96v1.4h-8.96Z"})),Ph||(Ph=vt.createElement("path",{d:"M32.73 94.12v-1.4h8.96v1.4h-8.96Zm0 2.8v-1.4h8.96v1.4h-8.96Z"})),Th||(Th=vt.createElement("path",{d:"M40.733 94.12v-1.4h8.96v1.4h-8.96Zm0 2.8v-1.4h8.96v1.4h-8.96Z"})),Sh||(Sh=vt.createElement("path",{d:"M48.735 94.12v-1.4h8.96v1.4h-8.96Zm0 2.8v-1.4h8.96v1.4h-8.96Z"})),Ch||(Ch=vt.createElement("path",{d:"M56.738 96.92v-1.4h5.18v-9.8h1.4v11.2h-6.58Zm0-2.8v-1.4h2.38v-7h1.4v8.4h-3.78Zm10.382 2.8v-11.2h1.4v9.8h5.18v1.4h-6.58Zm2.8-2.8v-8.4h1.4v7h2.38v1.4h-3.78Z"})),Dh||(Dh=vt.createElement("path",{d:"M72.743 94.12v-1.4h8.96v1.4h-8.96Zm0 2.8v-1.4h8.96v1.4h-8.96Z"})),Ih||(Ih=vt.createElement("path",{d:"M80.745 96.92v-1.4h5.18v-9.8h1.4v11.2h-6.58Zm0-2.8v-1.4h2.38v-7h1.4v8.4h-3.78Zm26.388 2.8v-11.2h1.4v9.8h5.18v1.4h-6.58Zm2.8-2.8v-8.4h1.4v7h2.38v1.4h-3.78Z"})),Hh||(Hh=vt.createElement("path",{d:"M112.755 94.12v-1.4h8.96v1.4h-8.96Zm0 2.8v-1.4h8.96v1.4h-8.96Z"})),qh||(qh=vt.createElement("path",{d:"M120.758 96.92v-1.4h5.18v-9.8h1.4v11.2h-6.58Zm0-2.8v-1.4h2.38v-7h1.4v8.4h-3.78Zm10.383 2.8v-11.2h1.399v9.8h5.18v1.4h-6.579Zm2.799-2.8v-8.4h1.4v7h2.38v1.4h-3.78Z"})),Fh||(Fh=vt.createElement("path",{d:"M136.763 94.12v-1.4h8.96v1.4h-8.96Zm0 2.8v-1.4h8.96v1.4h-8.96Z"})),Gh||(Gh=vt.createElement("path",{d:"M144.766 94.12v-1.4h8.96v1.4h-8.96Zm0 2.8v-1.4h8.96v1.4h-8.96Z"})),Wh||(Wh=vt.createElement("path",{d:"M152.768 94.12v-1.4h8.96v1.4h-8.96Zm0 2.8v-1.4h8.96v1.4h-8.96Z"})),Bh||(Bh=vt.createElement("path",{d:"M160.771 94.12v-1.4h8.96v1.4h-8.96Zm0 2.8v-1.4h8.96v1.4h-8.96Z"})),Rh||(Rh=vt.createElement("path",{d:"M168.773 94.12v-1.4h8.96v1.4h-8.96Zm0 2.8v-1.4h8.96v1.4h-8.96Z"})),Xh||(Xh=vt.createElement("path",{d:"M176.776 94.12v-1.4h8.96v1.4h-8.96Zm0 2.8v-1.4h8.96v1.4h-8.96Z"})),Ah||(Ah=vt.createElement("path",{d:"M184.778 96.92v-1.4h5.18v-9.8h1.4v11.2h-6.58Zm0-2.8v-1.4h2.38v-7h1.4v8.4h-3.78Zm34.39 2.8v-11.2h1.4v9.8h5.18v1.4h-6.58Zm2.8-2.8v-8.4h1.4v7h2.38v1.4h-3.78Z"})),_h||(_h=vt.createElement("path",{d:"M224.791 94.12v-1.4h8.96v1.4h-8.96Zm0 2.8v-1.4h8.96v1.4h-8.96Z"})),Jh||(Jh=vt.createElement("path",{d:"M232.793 96.92v-1.4h5.18v-9.8h1.4v11.2h-6.58Zm0-2.8v-1.4h2.38v-7h1.4v8.4h-3.78Zm50.396 2.8v-11.2h1.4v9.8h5.18v1.4h-6.58Zm2.8-2.8v-8.4h1.4v7h2.38v1.4h-3.78Z"})),Uh||(Uh=vt.createElement("path",{d:"M288.811 94.12v-1.4h8.96v1.4h-8.96Zm0 2.8v-1.4h8.96v1.4h-8.96Z"})),Kh||(Kh=vt.createElement("path",{d:"M296.814 94.12v-1.4h8.96v1.4h-8.96Zm0 2.8v-1.4h8.96v1.4h-8.96Z"})),Qh||(Qh=vt.createElement("path",{d:"M304.816 94.12v-1.4h8.96v1.4h-8.96Zm0 2.8v-1.4h8.96v1.4h-8.96Z"})),Yh||(Yh=vt.createElement("path",{d:"M312.819 96.92v-1.4h5.18v-9.8h1.4v11.2h-6.58Zm0-2.8v-1.4h2.38v-7h1.4v8.4h-3.78Zm26.387 2.8v-11.2h1.4v9.8h5.18v1.4h-6.58Zm2.8-2.8v-8.4h1.4v7h2.38v1.4h-3.78Z"})),$h||($h=vt.createElement("path",{d:"M344.829 94.12v-1.4h8.96v1.4h-8.96Zm0 2.8v-1.4h8.96v1.4h-8.96Z"})),et||(et=vt.createElement("path",{d:"M352.831 96.92v-1.4h5.18v-9.8h1.4v11.2h-6.58Zm0-2.8v-1.4h2.38v-7h1.4v8.4h-3.78Zm10.383 2.8v-11.2h1.4v9.8h5.18v1.4h-6.58Zm2.8-2.8v-8.4h1.4v7h2.38v1.4h-3.78Z"})),ht||(ht=vt.createElement("path",{d:"M368.836 94.12v-1.4h8.96v1.4h-8.96Zm0 2.8v-1.4h8.96v1.4h-8.96Z"})),tt||(tt=vt.createElement("path",{d:"M376.839 96.92v-1.4h5.18v-9.8h1.4v11.2h-6.58Zm0-2.8v-1.4h2.38v-7h1.4v8.4h-3.78Zm50.395 2.8v-11.2h1.4v9.8h5.18v1.4h-6.58Zm2.8-2.8v-8.4h1.4v7h2.38v1.4h-3.78Z"})),at||(at=vt.createElement("path",{d:"M432.857 94.12v-1.4h8.96v1.4h-8.96Zm0 2.8v-1.4h8.96v1.4h-8.96Z"})),mt||(mt=vt.createElement("path",{d:"M440.859 96.92v-1.4h5.18v-9.8h1.4v11.2h-6.58Zm0-2.8v-1.4h2.38v-7h1.4v8.4h-3.78Z"})))},Zt={slug:"/",sidebar_position:1},pt="\ud83d\ude80 Getting Started",ct={unversionedId:"intro",id:"intro",title:"\ud83d\ude80 Getting Started",description:"LazyVim is a Neovim setup powered by \ud83d\udca4 lazy.nvim",source:"@site/docs/intro.md",sourceDirName:".",slug:"/",permalink:"/",draft:!1,editUrl:"https://github.com/LazyVim/lazyvim.github.io/tree/main/docs/intro.md",tags:[],version:"current",sidebarPosition:1,frontMatter:{slug:"/",sidebar_position:1},sidebar:"tutorialSidebar",next:{title:"\ud83d\udee0\ufe0f Installation",permalink:"/installation"}},it={},dt=[{value:"\u2728 Features",id:"-features",level:2},{value:"\u26a1\ufe0f Requirements",id:"\ufe0f-requirements",level:2},{value:"\ud83c\udf93 Learn",id:"-learn",level:2}],ot={toc:dt};function st(e){let{components:h,...t}=e;return(0,nt.kt)("wrapper",(0,rt.Z)({},ot,t,{components:h,mdxType:"MDXLayout"}),(0,nt.kt)("h1",{id:"-getting-started"},"\ud83d\ude80 Getting Started"),(0,nt.kt)(lt,{className:"logosvg",mdxType:"LogoSvg"}),(0,nt.kt)("p",null,"LazyVim is a Neovim setup powered by ",(0,nt.kt)("a",{parentName:"p",href:"https://github.com/folke/lazy.nvim"},"\ud83d\udca4 lazy.nvim"),"\nto make it easy to customize and extend your config."),(0,nt.kt)("p",null,(0,nt.kt)("img",{parentName:"p",src:"https://user-images.githubusercontent.com/292349/213447056-92290767-ea16-430c-8727-ce994c93e9cc.png",alt:"image"})),(0,nt.kt)("h2",{id:"-features"},"\u2728 Features"),(0,nt.kt)("ul",null,(0,nt.kt)("li",{parentName:"ul"},"\ud83d\udd25 Transform your Neovim into a full-fledged IDE"),(0,nt.kt)("li",{parentName:"ul"},"\ud83d\udca4 Easily customize and extend your config with ",(0,nt.kt)("a",{parentName:"li",href:"https://github.com/folke/lazy.nvim"},"lazy.nvim")),(0,nt.kt)("li",{parentName:"ul"},"\ud83d\ude80 Blazingly fast"),(0,nt.kt)("li",{parentName:"ul"},"\ud83e\uddf9 Sane default settings for options, autocmds, and keymaps"),(0,nt.kt)("li",{parentName:"ul"},"\ud83d\udce6 Comes with a wealth of plugins pre-configured and ready to use")),(0,nt.kt)("h2",{id:"\ufe0f-requirements"},"\u26a1\ufe0f Requirements"),(0,nt.kt)("ul",null,(0,nt.kt)("li",{parentName:"ul"},"Neovim >= ",(0,nt.kt)("strong",{parentName:"li"},"0.11.2")," (needs to be built with ",(0,nt.kt)("strong",{parentName:"li"},"LuaJIT"),")"),(0,nt.kt)("li",{parentName:"ul"},"Git >= ",(0,nt.kt)("strong",{parentName:"li"},"2.19.0")," (for partial clones support)"),(0,nt.kt)("li",{parentName:"ul"},"a ",(0,nt.kt)("a",{parentName:"li",href:"https://www.nerdfonts.com/"},"Nerd Font"),"(v3.0 or greater) ",(0,nt.kt)("strong",{parentName:"li"},(0,nt.kt)("em",{parentName:"strong"},"(optional, but needed to display some icons)"))),(0,nt.kt)("li",{parentName:"ul"},(0,nt.kt)("a",{parentName:"li",href:"https://github.com/jesseduffield/lazygit"},"lazygit")," ",(0,nt.kt)("strong",{parentName:"li"},(0,nt.kt)("em",{parentName:"strong"},"(optional)"))),(0,nt.kt)("li",{parentName:"ul"},(0,nt.kt)("strong",{parentName:"li"},"tree-sitter-cli")," and a ",(0,nt.kt)("strong",{parentName:"li"},"C")," compiler for ",(0,nt.kt)("inlineCode",{parentName:"li"},"nvim-treesitter"),". See ",(0,nt.kt)("a",{parentName:"li",href:"https://github.com/nvim-treesitter/nvim-treesitter/tree/main?tab=readme-ov-file#requirements"},"here")),(0,nt.kt)("li",{parentName:"ul"},(0,nt.kt)("strong",{parentName:"li"},"curl")," for ",(0,nt.kt)("a",{parentName:"li",href:"https://github.com/Saghen/blink.cmp"},"blink.cmp")," ",(0,nt.kt)("strong",{parentName:"li"},"(completion engine)")),(0,nt.kt)("li",{parentName:"ul"},"for ",(0,nt.kt)("a",{parentName:"li",href:"https://github.com/ibhagwan/fzf-lua"},"fzf-lua")," ",(0,nt.kt)("strong",{parentName:"li"},(0,nt.kt)("em",{parentName:"strong"},"(optional)")),(0,nt.kt)("ul",{parentName:"li"},(0,nt.kt)("li",{parentName:"ul"},(0,nt.kt)("strong",{parentName:"li"},"fzf"),": ",(0,nt.kt)("a",{parentName:"li",href:"https://github.com/junegunn/fzf"},"fzf")," ",(0,nt.kt)("strong",{parentName:"li"},"(v0.25.1 or greater)")),(0,nt.kt)("li",{parentName:"ul"},(0,nt.kt)("strong",{parentName:"li"},"live grep"),": ",(0,nt.kt)("a",{parentName:"li",href:"https://github.com/BurntSushi/ripgrep"},"ripgrep")),(0,nt.kt)("li",{parentName:"ul"},(0,nt.kt)("strong",{parentName:"li"},"find files"),": ",(0,nt.kt)("a",{parentName:"li",href:"https://github.com/sharkdp/fd"},"fd")))),(0,nt.kt)("li",{parentName:"ul"},"a terminal that support true color and ",(0,nt.kt)("em",{parentName:"li"},"undercurl"),":",(0,nt.kt)("ul",{parentName:"li"},(0,nt.kt)("li",{parentName:"ul"},(0,nt.kt)("a",{parentName:"li",href:"https://github.com/kovidgoyal/kitty"},"kitty")," ",(0,nt.kt)("strong",{parentName:"li"},(0,nt.kt)("em",{parentName:"strong"},"(Linux & Macos)"))),(0,nt.kt)("li",{parentName:"ul"},(0,nt.kt)("a",{parentName:"li",href:"https://github.com/wez/wezterm"},"wezterm")," ",(0,nt.kt)("strong",{parentName:"li"},(0,nt.kt)("em",{parentName:"strong"},"(Linux, Macos & Windows)"))),(0,nt.kt)("li",{parentName:"ul"},(0,nt.kt)("a",{parentName:"li",href:"https://github.com/alacritty/alacritty"},"alacritty")," ",(0,nt.kt)("strong",{parentName:"li"},(0,nt.kt)("em",{parentName:"strong"},"(Linux, Macos & Windows)"))),(0,nt.kt)("li",{parentName:"ul"},(0,nt.kt)("a",{parentName:"li",href:"https://iterm2.com/"},"iterm2")," ",(0,nt.kt)("strong",{parentName:"li"},(0,nt.kt)("em",{parentName:"strong"},"(Macos)"))),(0,nt.kt)("li",{parentName:"ul"},(0,nt.kt)("a",{parentName:"li",href:"https://ghostty.org/"},"ghostty")," ",(0,nt.kt)("strong",{parentName:"li"},(0,nt.kt)("em",{parentName:"strong"},"(Linux, Macos & Windows)")))))),(0,nt.kt)("h2",{id:"-learn"},"\ud83c\udf93 Learn"),(0,nt.kt)("p",null,"There's a great video created by ",(0,nt.kt)("a",{parentName:"p",href:"https://github.com/elijahmanor"},"@elijahmanor"),"\nwith a walkthrough to get started."),(0,nt.kt)("p",null,(0,nt.kt)("a",{parentName:"p",href:"https://www.youtube.com/watch?v=N93cTbtLCIM"},(0,nt.kt)("img",{parentName:"a",src:"https://img.youtube.com/vi/N93cTbtLCIM/hqdefault.jpg",alt:"Watch the video"}))),(0,nt.kt)("p",null,(0,nt.kt)("a",{parentName:"p",href:"https://github.com/dusty-phillips"},"@dusty-phillips")," is working on a book called\n",(0,nt.kt)("a",{parentName:"p",href:"https://lazyvim-ambitious-devs.phillips.codes/"},"LazyVim for Ambitious Developers"),"\navailable for free online."))}st.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/0fafd334.c9fa42b3.js b/assets/js/0fafd334.c9fa42b3.js new file mode 100644 index 0000000000..1803fdec05 --- /dev/null +++ b/assets/js/0fafd334.c9fa42b3.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklazyvim=self.webpackChunklazyvim||[]).push([[1087],{3905:(e,t,a)=>{a.d(t,{Zo:()=>s,kt:()=>N});var n=a(7294);function i(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function l(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function r(e){for(var t=1;t=0||(i[a]=e[a]);return i}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(i[a]=e[a])}return i}var m=n.createContext({}),o=function(e){var t=n.useContext(m),a=t;return e&&(a="function"==typeof e?e(t):r(r({},t),e)),a},s=function(e){var t=o(e.components);return n.createElement(m.Provider,{value:t},e.children)},k="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},u=n.forwardRef((function(e,t){var a=e.components,i=e.mdxType,l=e.originalType,m=e.parentName,s=p(e,["components","mdxType","originalType","parentName"]),k=o(a),u=i,N=k["".concat(m,".").concat(u)]||k[u]||d[u]||l;return a?n.createElement(N,r(r({ref:t},s),{},{components:a})):n.createElement(N,r({ref:t},s))}));function N(e,t){var a=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var l=a.length,r=new Array(l);r[0]=u;var p={};for(var m in t)hasOwnProperty.call(t,m)&&(p[m]=t[m]);p.originalType=e,p[k]="string"==typeof e?e:i,r[1]=p;for(var o=2;o{a.r(t),a.d(t,{assets:()=>m,contentTitle:()=>r,default:()=>k,frontMatter:()=>l,metadata:()=>p,toc:()=>o});var n=a(7462),i=(a(7294),a(3905));const l={sidebar_position:2},r="\ud83d\udcf0 What's new?",p={unversionedId:"news",id:"news",title:"\ud83d\udcf0 What's new?",description:"15.x",source:"@site/docs/news.md",sourceDirName:".",slug:"/news",permalink:"/news",draft:!1,editUrl:"https://github.com/LazyVim/lazyvim.github.io/tree/main/docs/news.md",tags:[],version:"current",sidebarPosition:2,frontMatter:{sidebar_position:2},sidebar:"tutorialSidebar",previous:{title:"\ud83d\udee0\ufe0f Installation",permalink:"/installation"},next:{title:"\u2328\ufe0f Keymaps",permalink:"/keymaps"}},m={},o=[{value:"15.x",id:"15x",level:2},{value:"Changes",id:"changes",level:3},{value:"14.x",id:"14x",level:2},{value:"Added Plugins",id:"added-plugins",level:3},{value:"Removed Plugins",id:"removed-plugins",level:3},{value:"Changes",id:"changes-1",level:3},{value:"Keymaps",id:"keymaps",level:3},{value:"13.x",id:"13x",level:2},{value:"12.x",id:"12x",level:2},{value:"11.x",id:"11x",level:2},{value:"10.x",id:"10x",level:2}],s={toc:o};function k(e){let{components:t,...a}=e;return(0,i.kt)("wrapper",(0,n.Z)({},s,a,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h1",{id:"-whats-new"},"\ud83d\udcf0 What's new?"),(0,i.kt)("h2",{id:"15x"},"15.x"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Neovim")," ",(0,i.kt)("inlineCode",{parentName:"p"},">= 0.11.2")," includes a lot of changes to the underlying LSP implementation."),(0,i.kt)("p",null,"Going forward, ",(0,i.kt)("strong",{parentName:"p"},"LazyVim")," requires ",(0,i.kt)("strong",{parentName:"p"},"Neovim")," ",(0,i.kt)("inlineCode",{parentName:"p"},">= 0.11.2"),", and drops support for older versions."),(0,i.kt)("h3",{id:"changes"},"Changes"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"removed compatibility code for Neovim ",(0,i.kt)("inlineCode",{parentName:"li"},"< 0.11.2")),(0,i.kt)("li",{parentName:"ul"},"configure ",(0,i.kt)("strong",{parentName:"li"},"LSP")," with the native ",(0,i.kt)("inlineCode",{parentName:"li"},"vim.lsp.config")),(0,i.kt)("li",{parentName:"ul"},"migrated ",(0,i.kt)("strong",{parentName:"li"},"mason.nvim")," and ",(0,i.kt)("strong",{parentName:"li"},"mason-lspconfig.nvim")," to ",(0,i.kt)("inlineCode",{parentName:"li"},"v2.x")),(0,i.kt)("li",{parentName:"ul"},"migrated to ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/nvim-treesitter/nvim-treesitter/tree/main"},"nvim-treesitter")," ",(0,i.kt)("strong",{parentName:"li"},"main")," branch",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"with the new version, the ",(0,i.kt)("inlineCode",{parentName:"li"},"tree-sitter")," cli is ",(0,i.kt)("strong",{parentName:"li"},"required")," to install parsers"),(0,i.kt)("li",{parentName:"ul"},"best to run ",(0,i.kt)("inlineCode",{parentName:"li"},":checkhealth nvim-treesitter")," after updating"))),(0,i.kt)("li",{parentName:"ul"},"replace ",(0,i.kt)("inlineCode",{parentName:"li"},"nvim-treesitter")," incremental selection with ",(0,i.kt)("inlineCode",{parentName:"li"},"flash.nvim"),", since it is no longer supported"),(0,i.kt)("li",{parentName:"ul"},"enabled ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/saghen/blink.cmp"},"blink.cmp")," ",(0,i.kt)("strong",{parentName:"li"},"cmdline")," completions"),(0,i.kt)("li",{parentName:"ul"},"use ",(0,i.kt)("strong",{parentName:"li"},"LSP")," based folding when available (disable with ",(0,i.kt)("inlineCode",{parentName:"li"},"nvim-lspconfig.folds.enabled = false"),")")),(0,i.kt)("h2",{id:"14x"},"14.x"),(0,i.kt)("p",null,"Big new release with a lot of changes and improvements!\nTwo new plugins have been added, and a lot of plugins have been replaced.\nWith these changes, default ",(0,i.kt)("strong",{parentName:"p"},"LazyVim")," is now just ",(0,i.kt)("inlineCode",{parentName:"p"},"34")," plugins."),(0,i.kt)("h3",{id:"added-plugins"},"Added Plugins"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/ibhagwan/fzf-lua"},"fzf-lua")," as a replacement for ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/nvim-telescope/telescope.nvim"},"telescope.nvim"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"to use ",(0,i.kt)("strong",{parentName:"li"},"telescope.nvim")," instead, enable the ",(0,i.kt)("inlineCode",{parentName:"li"},"editor.telescope")," extra"))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/saghen/blink.cmp"},"blink.cmp")," as a replacement for ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/hrsh7th/nvim-cmp"},"nvim-cmp"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"to use ",(0,i.kt)("strong",{parentName:"li"},"nvim-cmp")," instead, enable the ",(0,i.kt)("inlineCode",{parentName:"li"},"coding.nvim-cmp")," extra")))),(0,i.kt)("h3",{id:"removed-plugins"},"Removed Plugins"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/stevearc/dressing.nvim"},"dressing.nvim")," (replaced with ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/ibhagwan/fzf-lua"},"fzf-lua")," and ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/folke/snacks.nvim"},"snacks.input"),")"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/nvim-telescope/telescope-fzf-native.nvim"},"telescope-fzf-native.nvim")," (replaced with ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/ibhagwan/fzf-lua"},"fzf-lua"),")"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/nvim-telescope/telescope.nvim"},"telescope.nvim")," (replaced with ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/ibhagwan/fzf-lua"},"fzf-lua"),")"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/lukas-reineke/indent-blankline.nvim"},"indent-blankline.nvim")," (replaced with ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/Folke/snacks.nvim"},"snacks.indent"),")",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"to use ",(0,i.kt)("strong",{parentName:"li"},"indent-blankline.nvim")," instead, enable the ",(0,i.kt)("inlineCode",{parentName:"li"},"indent-blankline")," extra"))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/hrsh7th/nvim-cmp"},"nvim-cmp")," (replaced with ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/Saghen/blink.cmp"},"blink"),")"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/hrsh7th/vim-vsnip"},"nvim-snippets")," (replaced with ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/Saghen/blink.cmp"},"blink"),")"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/hrsh7th/cmp-buffer"},"cmp-buffer")," (replaced with ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/Saghen/blink.cmp"},"blink"),")"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/hrsh7th/cmp-nvim-lsp"},"cmp-nvim-lsp")," (replaced with ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/Saghen/blink.cmp"},"blink"),")"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/hrsh7th/cmp-path"},"cmp-path")," (replaced with ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/Saghen/blink.cmp"},"blink"),")")),(0,i.kt)("h3",{id:"changes-1"},"Changes"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"added ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/folke/snacks.nvim/blob/main/docs/input.md"},(0,i.kt)("inlineCode",{parentName:"a"},"snacks.input"))),(0,i.kt)("li",{parentName:"ul"},"added ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/folke/snacks.nvim/blob/main/docs/scroll.md"},(0,i.kt)("inlineCode",{parentName:"a"},"snacks.scroll"))),(0,i.kt)("li",{parentName:"ul"},"added ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/folke/snacks.nvim/blob/main/docs/indent.md"},(0,i.kt)("inlineCode",{parentName:"a"},"snacks.indent"))),(0,i.kt)("li",{parentName:"ul"},"added ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/folke/snacks.nvim/blob/main/docs/scope.md"},(0,i.kt)("inlineCode",{parentName:"a"},"snacks.scope"))),(0,i.kt)("li",{parentName:"ul"},"added ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/folke/snacks.nvim/blob/main/docs/dim.md"},(0,i.kt)("inlineCode",{parentName:"a"},"snacks.dim"))),(0,i.kt)("li",{parentName:"ul"},"added ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/folke/snacks.nvim/blob/main/docs/zen.md"},(0,i.kt)("inlineCode",{parentName:"a"},"snacks.zen"))),(0,i.kt)("li",{parentName:"ul"},"changed default ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/folke/which-key.nvim"},(0,i.kt)("inlineCode",{parentName:"a"},"which-key"))," preset to ",(0,i.kt)("inlineCode",{parentName:"li"},"helix")),(0,i.kt)("li",{parentName:"ul"},"drop ",(0,i.kt)("inlineCode",{parentName:"li"},"LazyVim.ui.fg")," in favor of ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/folke/snacks.nvim/blob/main/docs/util.md"},(0,i.kt)("inlineCode",{parentName:"a"},"Snacks.util.color")))),(0,i.kt)("p",null,"To disable ",(0,i.kt)("strong",{parentName:"p"},"all animations"),", add the following to your ",(0,i.kt)("inlineCode",{parentName:"p"},"options.lua"),":"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-lua"},"vim.g.snacks_animate = false\n")),(0,i.kt)("h3",{id:"keymaps"},"Keymaps"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"uz")," to toggle ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/folke/snacks.nvim/blob/main/docs/zen.md"},"zen mode")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"uZ")," & ",(0,i.kt)("inlineCode",{parentName:"li"},"wm")," to toggle ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/folke/snacks.nvim/blob/main/docs/zen.md"},"zoom mode")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"uD")," to toggle ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/folke/snacks.nvim/blob/main/docs/dim.md"},"dimming")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"ua")," to toggle ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/folke/snacks.nvim/blob/main/docs/animate.md"},"animations")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"uS")," to toggle ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/folke/snacks.nvim/blob/main/docs/scroll.md"},"scroll")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"ug")," to toggle ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/folke/snacks.nvim/blob/main/docs/indent.md"},"indent guides")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/folke/snacks.nvim/blob/main/docs/profiler.md"},(0,i.kt)("inlineCode",{parentName:"a"},"snacks.profiler"))," keymaps under ",(0,i.kt)("inlineCode",{parentName:"li"},"dp"))),(0,i.kt)("hr",null),(0,i.kt)("h2",{id:"13x"},"13.x"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"LazyVim")," now uses ",(0,i.kt)("inlineCode",{parentName:"p"},"Snacks.dashboard")," as the default dashboard.\nCheck the ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/folke/snacks.nvim/blob/main/docs/dashboard.md"},"docs"),",\nfor more information and examples.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"A new ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/nvimdev/dashboard-nvim"},"dashboard-nvim")," extra\nis available for those who prefer the old dashboard.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"Big new release with a lot of changes and improvements!")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"The biggest change is the move of a bunch of core features to\n",(0,i.kt)("a",{parentName:"p",href:"https://github.com/folke/snacks.nvim"},"snacks.nvim")," and fully\nintegrating it into ",(0,i.kt)("strong",{parentName:"p"},"LazyVim"),".")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"I highly suggest having a look at the ",(0,i.kt)("strong",{parentName:"p"},"snacks.nvim")," documentation\nto see all the new features and improvements. Most important changes:"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"Snacks.notifier")," for notifications instead of ",(0,i.kt)("inlineCode",{parentName:"li"},"nvim-notify")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"Snacks.terminal")," is similar to ",(0,i.kt)("inlineCode",{parentName:"li"},"lazyterm"),", but has more features\nand creates bottom splits by default (similar to the ",(0,i.kt)("inlineCode",{parentName:"li"},"edgy")," integrating)")))),(0,i.kt)("hr",null),(0,i.kt)("h2",{id:"12x"},"12.x"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Markdown Extra"),": ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/lukas-reineke/headlines.nvim"},"headlines.nvim")," has been removed in favor of ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/MeanderingProgrammer/markdown.nvim"},"markdown.nvim"),"\nto spice up your markdown files.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("a",{parentName:"p",href:"https://github.com/nvim-pack/nvim-spectre"},"nvim-spectre")," has been removed in favor of ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/MagicDuck/grug-far.nvim"},"grug-far.nvim"),".\n",(0,i.kt)("strong",{parentName:"p"},"grug-far.nvim")," has a great UI and feels more intuitive to use.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"This ",(0,i.kt)("strong",{parentName:"p"},"news")," is now also available on the website at ",(0,i.kt)("a",{parentName:"p",href:"https://www.lazyvim.org/news"},"https://www.lazyvim.org/news"))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"prettier")," extra now works for all prettier supported filetypes\nand will be enabled for astro/svelte extra if you have a proper\nconfig file with the correct prettier plugin")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"New Language Support:")," SQL, Clojure, Thrift, Elm, Gleam, Angular,\nNuShell, Svelte, Kotlin, Astro, Toml and PHP")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"New Extras:")," ",(0,i.kt)("inlineCode",{parentName:"p"},"copilot-chat"),", ",(0,i.kt)("inlineCode",{parentName:"p"},"git"),", ",(0,i.kt)("inlineCode",{parentName:"p"},"octo"),", ",(0,i.kt)("inlineCode",{parentName:"p"},"inc-rename")," and ",(0,i.kt)("inlineCode",{parentName:"p"},"neogen"))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"The ",(0,i.kt)("strong",{parentName:"p"},"typescript")," extra now uses ",(0,i.kt)("inlineCode",{parentName:"p"},"vtsls")," instead of ",(0,i.kt)("inlineCode",{parentName:"p"},"tsserver"))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Neovim >= 0.10")," now uses the much faster ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/folke/lazydev.nvim"},"lazydev.nvim"),"\ninstead of ",(0,i.kt)("inlineCode",{parentName:"p"},"neodev.nvim"))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"moved ",(0,i.kt)("inlineCode",{parentName:"p"},"neoconf.nvim")," to extras. Project specific LSP settings\ncan be done with a ",(0,i.kt)("inlineCode",{parentName:"p"},".lazy.lua")," file instead."))),(0,i.kt)("hr",null),(0,i.kt)("h2",{id:"11x"},"11.x"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Keymaps:")),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"gB")," to open the current repo in the browser"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"gco")," and ",(0,i.kt)("inlineCode",{parentName:"li"},"gcO")," to add a comment below or above the current line"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"wm")," to toggle window maximize"))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"lazydev.nvim:")," faster alternative to ",(0,i.kt)("inlineCode",{parentName:"p"},"neodev.nvim"))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Options:")," Added ",(0,i.kt)("inlineCode",{parentName:"p"},"linebreak=true")," to default options.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("inlineCode",{parentName:"p"},"mini.ai")," is back as a default plugin! Removing it was a mistake.\nIt's a great plugin that enhances the native text objects.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("inlineCode",{parentName:"p"},":LazyExtras")," now has multiple new sections:"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Enabled"),": extras that are currently enabled"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Recommended Languages"),": language extras recommended for the current buffer / directory"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Recommended Plugins"),": extras that are recommended for most users"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Plugins"),": other plugin extras"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Languages"),": other language extras"))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"new option ",(0,i.kt)("inlineCode",{parentName:"p"},"vim.g.deprecation_warnings")," to disable deprecation warnings\nDefaults to ",(0,i.kt)("inlineCode",{parentName:"p"},"false"),". To enable deprecation warnings, set it to ",(0,i.kt)("inlineCode",{parentName:"p"},"true")," in your ",(0,i.kt)("inlineCode",{parentName:"p"},"options.lua"))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("inlineCode",{parentName:"p"},"vim-illuminate")," move to extras\nDocument highlights now use native lsp functionality by default"))),(0,i.kt)("p",null,"Since Neovim 0.10 has been released, I've been working on a new version of ",(0,i.kt)("strong",{parentName:"p"},"LazyVim"),"\nthat is fully compatible with all the latest Neovim features."),(0,i.kt)("p",null,"Additionally, some core plugins have been moved to extras."),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("inlineCode",{parentName:"p"},"native snippets")," are now the default on Neovim 0.10\nOlder versions of Neovim will use the new ",(0,i.kt)("inlineCode",{parentName:"p"},"luasnip")," extra.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("inlineCode",{parentName:"p"},"native comments")," are now the default on Neovim 0.10\nOlder versions of Neovim will use the new ",(0,i.kt)("inlineCode",{parentName:"p"},"mini-comment")," extra.\n",(0,i.kt)("inlineCode",{parentName:"p"},"nvim-ts-context-commentstring")," has been integrated in the native comments.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("inlineCode",{parentName:"p"},"inlay hints")," have been in ",(0,i.kt)("strong",{parentName:"p"},"LazyVim")," for a while, but are now\nenabled by default. To disable them:"),(0,i.kt)("pre",{parentName:"li"},(0,i.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "nvim-lspconfig",\n opts = {\n inlay_hints = { enabled = false },\n }\n}\n'))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"plugins moved to extras:"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"mini.surround")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"mini.indentscope")," scopes are now also highlighted with ",(0,i.kt)("inlineCode",{parentName:"li"},"indent-blankline")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"nvim-treesitter-context"))))),(0,i.kt)("hr",null),(0,i.kt)("h2",{id:"10x"},"10.x"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"added new extra for ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/echasnovski/mini.nvim/blob/main/readmes/mini-diff.md"},"mini.diff"),"\nThis is a plugin similar to gitsigns but with a neat diff overlay\nthat can be toggled with ",(0,i.kt)("inlineCode",{parentName:"p"},"go"),".")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"trouble.nvim")," has been rewritten from scratch and is now in beta.\nI've added a new extra for it (",(0,i.kt)("inlineCode",{parentName:"p"},"trouble-v3"),") for those of you who want to try it out.\nYou can find the updated docs ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/folke/trouble.nvim/tree/dev"},"here"))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"The ",(0,i.kt)("strong",{parentName:"p"},"lazygit")," integration now configures:"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"the theme based on the colorscheme"),(0,i.kt)("li",{parentName:"ul"},"nerd font icons (v3)"),(0,i.kt)("li",{parentName:"ul"},"editor preset is set to ",(0,i.kt)("inlineCode",{parentName:"li"},"nvim-remote")," for better interop with Neovim"))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"The option ",(0,i.kt)("inlineCode",{parentName:"p"},"vim.g.lazygit_theme")," was renamed to ",(0,i.kt)("inlineCode",{parentName:"p"},"vim.g.lazygit_config"))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"lazygit")," now automatically uses the colors of your current colorscheme.\nThis is enabled by default. To disable, add the below to your ",(0,i.kt)("inlineCode",{parentName:"p"},"options.lua"),":"),(0,i.kt)("pre",{parentName:"li"},(0,i.kt)("code",{parentName:"pre",className:"language-lua"},"vim.g.lazygit_config = false\n"))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"Added support for ",(0,i.kt)("inlineCode",{parentName:"p"},"basedpyright")," to the ",(0,i.kt)("strong",{parentName:"p"},"python")," extra.\nEnable in your ",(0,i.kt)("inlineCode",{parentName:"p"},"options.lua")," with:"),(0,i.kt)("pre",{parentName:"li"},(0,i.kt)("code",{parentName:"pre",className:"language-lua"},'vim.g.lazyvim_python_lsp = "basedpyright"\n')),(0,i.kt)("p",{parentName:"li"},"Be aware that ",(0,i.kt)("inlineCode",{parentName:"p"},"basedpyright")," is still in development and\nmay not work exactly the same as ",(0,i.kt)("inlineCode",{parentName:"p"},"pyright"),".")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"User extras under ",(0,i.kt)("inlineCode",{parentName:"p"},"lua/plugins/extras")," can now also be managed\nwith ",(0,i.kt)("strong",{parentName:"p"},"LazyExtras"))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("inlineCode",{parentName:"p"},"nvim-ts-autotag")," is now included by default")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("inlineCode",{parentName:"p"},"nvim-treesitter-context")," is now included by default")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"Added extra for ",(0,i.kt)("inlineCode",{parentName:"p"},"symbols-outline.nvim"))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"Added extra for ",(0,i.kt)("inlineCode",{parentName:"p"},"aerial.nvim"))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("inlineCode",{parentName:"p"},"nvim-navic")," has been removed. If you want to keep using ",(0,i.kt)("inlineCode",{parentName:"p"},"nvim-navic"),",\nyou can enable the ",(0,i.kt)("strong",{parentName:"p"},"editor.navic")," extra")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"New ",(0,i.kt)("inlineCode",{parentName:"p"},":LazyExtras")," command for managing ",(0,i.kt)("strong",{parentName:"p"},"LazyVim")," extras")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"Improved ",(0,i.kt)("strong",{parentName:"p"},"formatting"),":"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"LazyVim")," can now work with multiple formatters. Types:"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"primary"),": only one primary formatter can be active at a time.\n",(0,i.kt)("em",{parentName:"li"},"(conform, none-ls, LSP)")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"secondary"),": multiple secondary formatters can be active ",(0,i.kt)("em",{parentName:"li"},"(eslint, ...)")))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"LazyVim")," automatically selects the primary formatter based on the\ncurrent available sources and priorities.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"New ",(0,i.kt)("inlineCode",{parentName:"p"},":LazyFormat")," command for formatting the current selection or buffer")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"New ",(0,i.kt)("inlineCode",{parentName:"p"},":LazyFormatInfo")," command for displaying the active formatters\nfor the current buffer")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"Auto-formatting can be disabled with:"),(0,i.kt)("pre",{parentName:"li"},(0,i.kt)("code",{parentName:"pre",className:"language-lua"},"vim.g.autoformat = false -- globally\nvim.b.autoformat = false -- buffer-local\n"))))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("inlineCode",{parentName:"p"},"none-ls.nvim")," is no longer installed by default"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"conform.nvim")," is now the default formatter"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"nvim-lint")," is now the default linter"),(0,i.kt)("li",{parentName:"ul"},"If you want to keep using ",(0,i.kt)("inlineCode",{parentName:"li"},"none-ls.nvim"),",\nyou can enable the ",(0,i.kt)("strong",{parentName:"li"},"lsp.none-ls")," extra"))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("inlineCode",{parentName:"p"},"dashboard.nvim")," is the new default dashboard plugin"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"If you want to keep using ",(0,i.kt)("inlineCode",{parentName:"li"},"alpha.nvim"),", you can enable the ",(0,i.kt)("strong",{parentName:"li"},"ui.alpha")," extra"))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"Improved ",(0,i.kt)("strong",{parentName:"p"},"root detection"),":"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"New ",(0,i.kt)("inlineCode",{parentName:"p"},":LazyRoot")," command that shows info about the root dir detection")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"Configurable with ",(0,i.kt)("inlineCode",{parentName:"p"},"vim.g.root_spec")),(0,i.kt)("pre",{parentName:"li"},(0,i.kt)("code",{parentName:"pre",className:"language-lua"},'-- LazyVim root dir detection\n-- Each entry can be:\n-- * the name of a detector function like `lsp` or `cwd`\n-- * a pattern or array of patterns like `.git` or `lua`.\n-- * a function with signature `function(buf) -> string|string[]`\nvim.g.root_spec = { "lsp", { ".git", "lua" }, "cwd" }\n\n-- To disable root detection set to just "cwd"\nvim.g.root_spec = { "cwd" }\n')))))))}k.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/1421d519.910737e9.js b/assets/js/1421d519.910737e9.js new file mode 100644 index 0000000000..6117cb1486 --- /dev/null +++ b/assets/js/1421d519.910737e9.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklazyvim=self.webpackChunklazyvim||[]).push([[5496],{3905:(n,e,t)=>{t.d(e,{Zo:()=>c,kt:()=>f});var r=t(7294);function i(n,e,t){return e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}function o(n,e){var t=Object.keys(n);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(n);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),t.push.apply(t,r)}return t}function s(n){for(var e=1;e=0||(i[t]=n[t]);return i}(n,e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(n);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(n,t)&&(i[t]=n[t])}return i}var l=r.createContext({}),p=function(n){var e=r.useContext(l),t=e;return n&&(t="function"==typeof n?n(e):s(s({},e),n)),t},c=function(n){var e=p(n.components);return r.createElement(l.Provider,{value:e},n.children)},u="mdxType",d={inlineCode:"code",wrapper:function(n){var e=n.children;return r.createElement(r.Fragment,{},e)}},m=r.forwardRef((function(n,e){var t=n.components,i=n.mdxType,o=n.originalType,l=n.parentName,c=a(n,["components","mdxType","originalType","parentName"]),u=p(t),m=i,f=u["".concat(l,".").concat(m)]||u[m]||d[m]||o;return t?r.createElement(f,s(s({ref:e},c),{},{components:t})):r.createElement(f,s({ref:e},c))}));function f(n,e){var t=arguments,i=e&&e.mdxType;if("string"==typeof n||i){var o=t.length,s=new Array(o);s[0]=m;var a={};for(var l in e)hasOwnProperty.call(e,l)&&(a[l]=e[l]);a.originalType=n,a[u]="string"==typeof n?n:i,s[1]=a;for(var p=2;p{t.r(e),t.d(e,{assets:()=>l,contentTitle:()=>s,default:()=>u,frontMatter:()=>o,metadata:()=>a,toc:()=>p});var r=t(7462),i=(t(7294),t(3905));const o={sidebar_position:5},s="Examples",a={unversionedId:"configuration/examples",id:"configuration/examples",title:"Examples",description:"",source:"@site/docs/configuration/examples.md",sourceDirName:"configuration",slug:"/configuration/examples",permalink:"/configuration/examples",draft:!1,editUrl:"https://github.com/LazyVim/lazyvim.github.io/tree/main/docs/configuration/examples.md",tags:[],version:"current",sidebarPosition:5,frontMatter:{sidebar_position:5},sidebar:"tutorialSidebar",previous:{title:"Keymaps",permalink:"/configuration/keymaps"},next:{title:"Recipes",permalink:"/configuration/recipes"}},l={},p=[],c={toc:p};function u(n){let{components:e,...t}=n;return(0,i.kt)("wrapper",(0,r.Z)({},c,t,{components:e,mdxType:"MDXLayout"}),(0,i.kt)("h1",{id:"examples"},"Examples"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-lua"},'-- every spec file under the "plugins" directory will be loaded automatically by lazy.nvim\n--\n-- In your plugin files, you can:\n-- * add extra plugins\n-- * disable/enabled LazyVim plugins\n-- * override the configuration of LazyVim plugins\nreturn {\n -- add gruvbox\n { "ellisonleao/gruvbox.nvim" },\n\n -- Configure LazyVim to load gruvbox\n {\n "LazyVim/LazyVim",\n opts = {\n colorscheme = "gruvbox",\n },\n },\n\n -- change trouble config\n {\n "folke/trouble.nvim",\n -- opts will be merged with the parent spec\n opts = { use_diagnostic_signs = true },\n },\n\n -- disable trouble\n { "folke/trouble.nvim", enabled = false },\n\n -- override nvim-cmp and add cmp-emoji\n {\n "hrsh7th/nvim-cmp",\n dependencies = { "hrsh7th/cmp-emoji" },\n ---@param opts cmp.ConfigSchema\n opts = function(_, opts)\n table.insert(opts.sources, { name = "emoji" })\n end,\n },\n\n -- change some telescope options and a keymap to browse plugin files\n {\n "nvim-telescope/telescope.nvim",\n keys = {\n -- add a keymap to browse plugin files\n -- stylua: ignore\n {\n "fp",\n function() require("telescope.builtin").find_files({ cwd = require("lazy.core.config").options.root }) end,\n desc = "Find Plugin File",\n },\n },\n -- change some options\n opts = {\n defaults = {\n layout_strategy = "horizontal",\n layout_config = { prompt_position = "top" },\n sorting_strategy = "ascending",\n winblend = 0,\n },\n },\n },\n\n -- add pyright to lspconfig\n {\n "neovim/nvim-lspconfig",\n ---@class PluginLspOpts\n opts = {\n ---@type lspconfig.options\n servers = {\n -- pyright will be automatically installed with mason and loaded with lspconfig\n pyright = {},\n },\n },\n },\n\n -- add tsserver and setup with typescript.nvim instead of lspconfig\n {\n "neovim/nvim-lspconfig",\n dependencies = {\n "jose-elias-alvarez/typescript.nvim",\n init = function()\n require("lazyvim.util").lsp.on_attach(function(_, buffer)\n -- stylua: ignore\n vim.keymap.set( "n", "co", "TypescriptOrganizeImports", { buffer = buffer, desc = "Organize Imports" })\n vim.keymap.set("n", "cR", "TypescriptRenameFile", { desc = "Rename File", buffer = buffer })\n end)\n end,\n },\n ---@class PluginLspOpts\n opts = {\n ---@type lspconfig.options\n servers = {\n -- tsserver will be automatically installed with mason and loaded with lspconfig\n tsserver = {},\n },\n -- you can do any additional lsp server setup here\n -- return true if you don\'t want this server to be setup with lspconfig\n ---@type table\n setup = {\n -- example to setup with typescript.nvim\n tsserver = function(_, opts)\n require("typescript").setup({ server = opts })\n return true\n end,\n -- Specify * to use this function as a fallback for any server\n -- ["*"] = function(server, opts) end,\n },\n },\n },\n\n -- for typescript, LazyVim also includes extra specs to properly setup lspconfig,\n -- treesitter, mason and typescript.nvim. So instead of the above, you can use:\n { import = "lazyvim.plugins.extras.lang.typescript" },\n\n -- add more treesitter parsers\n {\n "nvim-treesitter/nvim-treesitter",\n opts = {\n ensure_installed = {\n "bash",\n "html",\n "javascript",\n "json",\n "lua",\n "markdown",\n "markdown_inline",\n "python",\n "query",\n "regex",\n "tsx",\n "typescript",\n "vim",\n "yaml",\n },\n },\n },\n\n -- since `vim.tbl_deep_extend`, can only merge tables and not lists, the code above\n -- would overwrite `ensure_installed` with the new value.\n -- If you\'d rather extend the default config, use the code below instead:\n {\n "nvim-treesitter/nvim-treesitter",\n opts = function(_, opts)\n -- add tsx and treesitter\n vim.list_extend(opts.ensure_installed, {\n "tsx",\n "typescript",\n })\n end,\n },\n\n -- the opts function can also be used to change the default opts:\n {\n "nvim-lualine/lualine.nvim",\n event = "VeryLazy",\n opts = function(_, opts)\n table.insert(opts.sections.lualine_x, {\n function()\n return "\ud83d\ude04"\n end,\n })\n end,\n },\n\n -- or you can return new options to override all the defaults\n {\n "nvim-lualine/lualine.nvim",\n event = "VeryLazy",\n opts = function()\n return {\n --[[add your custom lualine config here]]\n }\n end,\n },\n\n -- use mini.starter instead of alpha\n { import = "lazyvim.plugins.extras.ui.mini-starter" },\n\n -- add jsonls and schemastore packages, and setup treesitter for json, json5 and jsonc\n { import = "lazyvim.plugins.extras.lang.json" },\n\n -- add any tools you want to have installed below\n {\n "williamboman/mason.nvim",\n opts = {\n ensure_installed = {\n "stylua",\n "shellcheck",\n "shfmt",\n "flake8",\n },\n },\n },\n}\n')))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/14e32279.337a7a7e.js b/assets/js/14e32279.337a7a7e.js new file mode 100644 index 0000000000..5e3f376fc9 --- /dev/null +++ b/assets/js/14e32279.337a7a7e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklazyvim=self.webpackChunklazyvim||[]).push([[8335],{3905:(e,n,t)=>{t.d(n,{Zo:()=>c,kt:()=>f});var i=t(7294);function s(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function r(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);n&&(i=i.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,i)}return t}function a(e){for(var n=1;n=0||(s[t]=e[t]);return s}(e,n);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(s[t]=e[t])}return s}var l=i.createContext({}),p=function(e){var n=i.useContext(l),t=n;return e&&(t="function"==typeof e?e(n):a(a({},n),e)),t},c=function(e){var n=p(e.components);return i.createElement(l.Provider,{value:n},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var n=e.children;return i.createElement(i.Fragment,{},n)}},m=i.forwardRef((function(e,n){var t=e.components,s=e.mdxType,r=e.originalType,l=e.parentName,c=o(e,["components","mdxType","originalType","parentName"]),u=p(t),m=s,f=u["".concat(l,".").concat(m)]||u[m]||d[m]||r;return t?i.createElement(f,a(a({ref:n},c),{},{components:t})):i.createElement(f,a({ref:n},c))}));function f(e,n){var t=arguments,s=n&&n.mdxType;if("string"==typeof e||s){var r=t.length,a=new Array(r);a[0]=m;var o={};for(var l in n)hasOwnProperty.call(n,l)&&(o[l]=n[l]);o.originalType=e,o[u]="string"==typeof e?e:s,a[1]=o;for(var p=2;p{t.d(n,{Z:()=>a});var i=t(7294),s=t(6010);const r="tabItem_Ymn6";function a(e){let{children:n,hidden:t,className:a}=e;return i.createElement("div",{role:"tabpanel",className:(0,s.Z)(r,a),hidden:t},n)}},4866:(e,n,t)=>{t.d(n,{Z:()=>x});var i=t(7462),s=t(7294),r=t(6010),a=t(2466),o=t(6550),l=t(1980),p=t(7392),c=t(12);function u(e){return function(e){return s.Children.map(e,(e=>{if(!e||(0,s.isValidElement)(e)&&function(e){const{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw new Error(`Docusaurus error: Bad child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:n,label:t,attributes:i,default:s}}=e;return{value:n,label:t,attributes:i,default:s}}))}function d(e){const{values:n,children:t}=e;return(0,s.useMemo)((()=>{const e=n??u(t);return function(e){const n=(0,p.l)(e,((e,n)=>e.value===n.value));if(n.length>0)throw new Error(`Docusaurus error: Duplicate values "${n.map((e=>e.value)).join(", ")}" found in . Every value needs to be unique.`)}(e),e}),[n,t])}function m(e){let{value:n,tabValues:t}=e;return t.some((e=>e.value===n))}function f(e){let{queryString:n=!1,groupId:t}=e;const i=(0,o.k6)(),r=function(e){let{queryString:n=!1,groupId:t}=e;if("string"==typeof n)return n;if(!1===n)return null;if(!0===n&&!t)throw new Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return t??null}({queryString:n,groupId:t});return[(0,l._X)(r),(0,s.useCallback)((e=>{if(!r)return;const n=new URLSearchParams(i.location.search);n.set(r,e),i.replace({...i.location,search:n.toString()})}),[r,i])]}function b(e){const{defaultValue:n,queryString:t=!1,groupId:i}=e,r=d(e),[a,o]=(0,s.useState)((()=>function(e){let{defaultValue:n,tabValues:t}=e;if(0===t.length)throw new Error("Docusaurus error: the component requires at least one children component");if(n){if(!m({value:n,tabValues:t}))throw new Error(`Docusaurus error: The has a defaultValue "${n}" but none of its children has the corresponding value. Available values are: ${t.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return n}const i=t.find((e=>e.default))??t[0];if(!i)throw new Error("Unexpected error: 0 tabValues");return i.value}({defaultValue:n,tabValues:r}))),[l,p]=f({queryString:t,groupId:i}),[u,b]=function(e){let{groupId:n}=e;const t=function(e){return e?`docusaurus.tab.${e}`:null}(n),[i,r]=(0,c.Nk)(t);return[i,(0,s.useCallback)((e=>{t&&r.set(e)}),[t,r])]}({groupId:i}),g=(()=>{const e=l??u;return m({value:e,tabValues:r})?e:null})();(0,s.useLayoutEffect)((()=>{g&&o(g)}),[g]);return{selectedValue:a,selectValue:(0,s.useCallback)((e=>{if(!m({value:e,tabValues:r}))throw new Error(`Can't select invalid tab value=${e}`);o(e),p(e),b(e)}),[p,b,r]),tabValues:r}}var g=t(2389);const h="tabList__CuJ",v="tabItem_LNqP";function y(e){let{className:n,block:t,selectedValue:o,selectValue:l,tabValues:p}=e;const c=[],{blockElementScrollPositionUntilNextRender:u}=(0,a.o5)(),d=e=>{const n=e.currentTarget,t=c.indexOf(n),i=p[t].value;i!==o&&(u(n),l(i))},m=e=>{let n=null;switch(e.key){case"Enter":d(e);break;case"ArrowRight":{const t=c.indexOf(e.currentTarget)+1;n=c[t]??c[0];break}case"ArrowLeft":{const t=c.indexOf(e.currentTarget)-1;n=c[t]??c[c.length-1];break}}n?.focus()};return s.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,r.Z)("tabs",{"tabs--block":t},n)},p.map((e=>{let{value:n,label:t,attributes:a}=e;return s.createElement("li",(0,i.Z)({role:"tab",tabIndex:o===n?0:-1,"aria-selected":o===n,key:n,ref:e=>c.push(e),onKeyDown:m,onClick:d},a,{className:(0,r.Z)("tabs__item",v,a?.className,{"tabs__item--active":o===n})}),t??n)})))}function k(e){let{lazy:n,children:t,selectedValue:i}=e;const r=(Array.isArray(t)?t:[t]).filter(Boolean);if(n){const e=r.find((e=>e.props.value===i));return e?(0,s.cloneElement)(e,{className:"margin-top--md"}):null}return s.createElement("div",{className:"margin-top--md"},r.map(((e,n)=>(0,s.cloneElement)(e,{key:n,hidden:e.props.value!==i}))))}function _(e){const n=b(e);return s.createElement("div",{className:(0,r.Z)("tabs-container",h)},s.createElement(y,(0,i.Z)({},e,n)),s.createElement(k,(0,i.Z)({},e,n)))}function x(e){const n=(0,g.Z)();return s.createElement(_,(0,i.Z)({key:String(n)},e))}},7207:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>l,default:()=>m,frontMatter:()=>o,metadata:()=>p,toc:()=>u});var i=t(7462),s=(t(7294),t(3905)),r=t(4866),a=t(5162);const o={},l="Mini-snippets",p={unversionedId:"extras/coding/mini-snippets",id:"extras/coding/mini-snippets",title:"Mini-snippets",description:"You can enable the extra with the :LazyExtras command.",source:"@site/docs/extras/coding/mini-snippets.md",sourceDirName:"extras/coding",slug:"/extras/coding/mini-snippets",permalink:"/extras/coding/mini-snippets",draft:!1,editUrl:"https://github.com/LazyVim/lazyvim.github.io/tree/main/docs/extras/coding/mini-snippets.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Mini-comment",permalink:"/extras/coding/mini-comment"},next:{title:"Mini-surround",permalink:"/extras/coding/mini-surround"}},c={},u=[{value:"Options",id:"options",level:3},{value:"mini.snippets",id:"minisnippets",level:2},{value:"cmp-mini-snippets",id:"cmp-mini-snippets",level:2},{value:"nvim-cmp (optional)",id:"nvim-cmp-optional",level:2},{value:"blink.cmp (optional)",id:"blinkcmp-optional",level:2}],d={toc:u};function m(e){let{components:n,...t}=e;return(0,s.kt)("wrapper",(0,i.Z)({},d,t,{components:n,mdxType:"MDXLayout"}),(0,s.kt)("h1",{id:"mini-snippets"},(0,s.kt)("inlineCode",{parentName:"h1"},"Mini-snippets")),(0,s.kt)("admonition",{type:"info"},(0,s.kt)("p",{parentName:"admonition"},"You can enable the extra with the ",(0,s.kt)("inlineCode",{parentName:"p"},":LazyExtras")," command.\nPlugins marked as optional will only be configured if they are installed.")),(0,s.kt)("h3",{id:"options"},"Options"),(0,s.kt)("p",null,"Additional options for this extra can be configured in your ",(0,s.kt)("a",{parentName:"p",href:"/configuration/general#options"},"lua/config/options.lua")," file:"),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-lua",metastring:'title="lua/config/options.lua"',title:'"lua/config/options.lua"'},'-- Set to `false` to prevent "non-lsp snippets"" from appearing inside completion windows\n-- Motivation: Less clutter in completion windows and a more direct usage of snippets\nvim.g.lazyvim_mini_snippets_in_completion = true\n\n-- NOTE: Please also read:\n-- https://github.com/nvim-mini/mini.nvim/blob/main/readmes/mini-snippets.md#expand\n-- :h MiniSnippets-session\n\n-- Example override for your own config:\n--[[\nreturn {\n{\n"nvim-mini/mini.snippets",\nopts = function(_, opts)\n-- By default, for opts.snippets, the extra for mini.snippets only adds gen_loader.from_lang()\n-- This provides a sensible quickstart, integrating with friendly-snippets\n-- and your own language-specific snippets\n--\n-- In order to change opts.snippets, replace the entire table inside your own opts\n\nlocal snippets, config_path = require("mini.snippets"), vim.fn.stdpath("config")\n\nopts.snippets = { -- override opts.snippets provided by extra...\n-- Load custom file with global snippets first (order matters)\nsnippets.gen_loader.from_file(config_path .. "/snippets/global.json"),\n\n-- Load snippets based on current language by reading files from\n-- "snippets/" subdirectories from \'runtimepath\' directories.\nsnippets.gen_loader.from_lang(), -- this is the default in the extra...\n}\nend,\n},\n}\n--]]\n')),(0,s.kt)("p",null,"Below you can find a list of included plugins and their default settings."),(0,s.kt)("admonition",{type:"caution"},(0,s.kt)("p",{parentName:"admonition"},"You don't need to copy the default settings to your config.\nThey are only shown here for reference.")),(0,s.kt)("h2",{id:"minisnippets"},(0,s.kt)("a",{parentName:"h2",href:"https://github.com/nvim-mini/mini.snippets"},"mini.snippets")),(0,s.kt)(r.Z,{mdxType:"Tabs"},(0,s.kt)(a.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-lua"},'opts = function()\n ---@diagnostic disable-next-line: duplicate-set-field\n LazyVim.cmp.actions.snippet_stop = function() end -- by design, should not stop the session!\n ---@diagnostic disable-next-line: duplicate-set-field\n LazyVim.cmp.actions.snippet_forward = function()\n return jump("next")\n end\n\n local mini_snippets = require("mini.snippets")\n return {\n snippets = { mini_snippets.gen_loader.from_lang() },\n\n -- Following the behavior of vim.snippets,\n -- the intended usage of is to be able to temporarily exit into normal mode for quick edits.\n --\n -- If you\'d rather stop the snippet on , activate the line below in your own config:\n -- mappings = { stop = "" }, -- by default, see :h MiniSnippets-session\n\n expand = {\n select = function(snippets, insert)\n -- Close completion window on snippet select - vim.ui.select\n -- Needed to remove virtual text for fzf-lua and telescope, but not for mini.pick...\n local select = expand_select_override or MiniSnippets.default_select\n select(snippets, insert)\n end,\n },\n }\nend\n'))),(0,s.kt)(a.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "nvim-mini/mini.snippets",\n event = "InsertEnter", -- don\'t depend on other plugins to load...\n dependencies = "rafamadriz/friendly-snippets",\n opts = function()\n ---@diagnostic disable-next-line: duplicate-set-field\n LazyVim.cmp.actions.snippet_stop = function() end -- by design, should not stop the session!\n ---@diagnostic disable-next-line: duplicate-set-field\n LazyVim.cmp.actions.snippet_forward = function()\n return jump("next")\n end\n\n local mini_snippets = require("mini.snippets")\n return {\n snippets = { mini_snippets.gen_loader.from_lang() },\n\n -- Following the behavior of vim.snippets,\n -- the intended usage of is to be able to temporarily exit into normal mode for quick edits.\n --\n -- If you\'d rather stop the snippet on , activate the line below in your own config:\n -- mappings = { stop = "" }, -- by default, see :h MiniSnippets-session\n\n expand = {\n select = function(snippets, insert)\n -- Close completion window on snippet select - vim.ui.select\n -- Needed to remove virtual text for fzf-lua and telescope, but not for mini.pick...\n local select = expand_select_override or MiniSnippets.default_select\n select(snippets, insert)\n end,\n },\n }\n end,\n}\n')))),(0,s.kt)("h2",{id:"cmp-mini-snippets"},(0,s.kt)("a",{parentName:"h2",href:"https://github.com/abeldekat/cmp-mini-snippets"},"cmp-mini-snippets")),(0,s.kt)(r.Z,{mdxType:"Tabs"},(0,s.kt)(a.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-lua"},"opts = nil\n"))),(0,s.kt)(a.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-lua"},'{ "abeldekat/cmp-mini-snippets" }\n')))),(0,s.kt)("h2",{id:"nvim-cmp-optional"},(0,s.kt)("a",{parentName:"h2",href:"https://github.com/hrsh7th/nvim-cmp"},"nvim-cmp")," ",(0,s.kt)("em",{parentName:"h2"},"(optional)")),(0,s.kt)("p",null," nvim-cmp integration"),(0,s.kt)(r.Z,{mdxType:"Tabs"},(0,s.kt)(a.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-lua"},'opts = function(_, opts)\n local cmp = require("cmp")\n local cmp_config = require("cmp.config")\n\n opts.snippet = {\n expand = function(args)\n expand_from_lsp(args.body)\n cmp.resubscribe({ "TextChangedI", "TextChangedP" })\n cmp_config.set_onetime({ sources = {} })\n end,\n }\n\n if include_in_completion then\n table.insert(opts.sources, { name = "mini_snippets" })\n else\n expand_select_override = function(snippets, insert)\n -- stylua: ignore\n if cmp.visible() then cmp.close() end\n MiniSnippets.default_select(snippets, insert)\n end\n end\nend\n'))),(0,s.kt)(a.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "hrsh7th/nvim-cmp",\n optional = true,\n dependencies = include_in_completion and { "abeldekat/cmp-mini-snippets" } or nil,\n opts = function(_, opts)\n local cmp = require("cmp")\n local cmp_config = require("cmp.config")\n\n opts.snippet = {\n expand = function(args)\n expand_from_lsp(args.body)\n cmp.resubscribe({ "TextChangedI", "TextChangedP" })\n cmp_config.set_onetime({ sources = {} })\n end,\n }\n\n if include_in_completion then\n table.insert(opts.sources, { name = "mini_snippets" })\n else\n expand_select_override = function(snippets, insert)\n -- stylua: ignore\n if cmp.visible() then cmp.close() end\n MiniSnippets.default_select(snippets, insert)\n end\n end\n end,\n -- stylua: ignore\n -- counterpart to defined in cmp.mappings\n keys = include_in_completion and { { "", function() jump("prev") end, mode = "i" } } or nil,\n}\n')))),(0,s.kt)("h2",{id:"blinkcmp-optional"},(0,s.kt)("a",{parentName:"h2",href:"https://github.com/saghen/blink.cmp"},"blink.cmp")," ",(0,s.kt)("em",{parentName:"h2"},"(optional)")),(0,s.kt)("p",null," blink.cmp integration"),(0,s.kt)(r.Z,{mdxType:"Tabs"},(0,s.kt)(a.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-lua"},'opts = function(_, opts)\n -- Return early\n if include_in_completion then\n opts.snippets = { preset = "mini_snippets" }\n return\n end\n\n -- Standalone --\n local blink = require("blink.cmp")\n expand_select_override = function(snippets, insert)\n -- Schedule, otherwise blink\'s virtual text is not removed on vim.ui.select\n blink.cancel()\n vim.schedule(function()\n MiniSnippets.default_select(snippets, insert)\n end)\n end\n --\n -- Blink performs a require on blink.cmp.sources.snippets.default\n -- By removing the source, that default engine will not be used\n opts.sources.default = vim.tbl_filter(function(source)\n return source ~= "snippets"\n end, opts.sources.default)\n opts.snippets = { -- need to repeat blink\'s preset here\n expand = function(snippet)\n expand_from_lsp(snippet)\n blink.resubscribe()\n end,\n active = function()\n return MiniSnippets.session.get(false) ~= nil\n end,\n jump = function(direction)\n jump(direction == -1 and "prev" or "next")\n end,\n }\nend\n'))),(0,s.kt)(a.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "saghen/blink.cmp",\n optional = true,\n opts = function(_, opts)\n -- Return early\n if include_in_completion then\n opts.snippets = { preset = "mini_snippets" }\n return\n end\n\n -- Standalone --\n local blink = require("blink.cmp")\n expand_select_override = function(snippets, insert)\n -- Schedule, otherwise blink\'s virtual text is not removed on vim.ui.select\n blink.cancel()\n vim.schedule(function()\n MiniSnippets.default_select(snippets, insert)\n end)\n end\n --\n -- Blink performs a require on blink.cmp.sources.snippets.default\n -- By removing the source, that default engine will not be used\n opts.sources.default = vim.tbl_filter(function(source)\n return source ~= "snippets"\n end, opts.sources.default)\n opts.snippets = { -- need to repeat blink\'s preset here\n expand = function(snippet)\n expand_from_lsp(snippet)\n blink.resubscribe()\n end,\n active = function()\n return MiniSnippets.session.get(false) ~= nil\n end,\n jump = function(direction)\n jump(direction == -1 and "prev" or "next")\n end,\n }\n end,\n}\n')))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/17896441.aac9190d.js b/assets/js/17896441.aac9190d.js new file mode 100644 index 0000000000..cb078f6ed1 --- /dev/null +++ b/assets/js/17896441.aac9190d.js @@ -0,0 +1 @@ +(self.webpackChunklazyvim=self.webpackChunklazyvim||[]).push([[7918],{3905:(e,t,n)=>{"use strict";n.d(t,{Zo:()=>m,kt:()=>f});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function l(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var s=a.createContext({}),i=function(e){var t=a.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},m=function(e){var t=i(e.components);return a.createElement(s.Provider,{value:t},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},p=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,o=e.originalType,s=e.parentName,m=c(e,["components","mdxType","originalType","parentName"]),d=i(n),p=r,f=d["".concat(s,".").concat(p)]||d[p]||u[p]||o;return n?a.createElement(f,l(l({ref:t},m),{},{components:n})):a.createElement(f,l({ref:t},m))}));function f(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=n.length,l=new Array(o);l[0]=p;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[d]="string"==typeof e?e:r,l[1]=c;for(var i=2;i{"use strict";n.r(t),n.d(t,{default:()=>Vt});var a=n(7294),r=n(1944),o=n(902);const l=a.createContext(null);function c(e){let{children:t,content:n}=e;const r=function(e){return(0,a.useMemo)((()=>({metadata:e.metadata,frontMatter:e.frontMatter,assets:e.assets,contentTitle:e.contentTitle,toc:e.toc})),[e])}(n);return a.createElement(l.Provider,{value:r},t)}function s(){const e=(0,a.useContext)(l);if(null===e)throw new o.i6("DocProvider");return e}function i(){const{metadata:e,frontMatter:t,assets:n}=s();return a.createElement(r.d,{title:e.title,description:e.description,keywords:t.keywords,image:n.image??t.image})}var m=n(6010),d=n(7524),u=n(7462),p=n(5999),f=n(9960);function h(e){const{permalink:t,title:n,subLabel:r,isNext:o}=e;return a.createElement(f.Z,{className:(0,m.Z)("pagination-nav__link",o?"pagination-nav__link--next":"pagination-nav__link--prev"),to:t},r&&a.createElement("div",{className:"pagination-nav__sublabel"},r),a.createElement("div",{className:"pagination-nav__label"},n))}function g(e){const{previous:t,next:n}=e;return a.createElement("nav",{className:"pagination-nav docusaurus-mt-lg","aria-label":(0,p.I)({id:"theme.docs.paginator.navAriaLabel",message:"Docs pages",description:"The ARIA label for the docs pagination"})},t&&a.createElement(h,(0,u.Z)({},t,{subLabel:a.createElement(p.Z,{id:"theme.docs.paginator.previous",description:"The label used to navigate to the previous doc"},"Previous")})),n&&a.createElement(h,(0,u.Z)({},n,{subLabel:a.createElement(p.Z,{id:"theme.docs.paginator.next",description:"The label used to navigate to the next doc"},"Next"),isNext:!0})))}function b(){const{metadata:e}=s();return a.createElement(g,{previous:e.previous,next:e.next})}var v=n(2263),E=n(4104),y=n(5281),k=n(373),N=n(4477);const L={unreleased:function(e){let{siteTitle:t,versionMetadata:n}=e;return a.createElement(p.Z,{id:"theme.docs.versions.unreleasedVersionLabel",description:"The label used to tell the user that he's browsing an unreleased doc version",values:{siteTitle:t,versionLabel:a.createElement("b",null,n.label)}},"This is unreleased documentation for {siteTitle} {versionLabel} version.")},unmaintained:function(e){let{siteTitle:t,versionMetadata:n}=e;return a.createElement(p.Z,{id:"theme.docs.versions.unmaintainedVersionLabel",description:"The label used to tell the user that he's browsing an unmaintained doc version",values:{siteTitle:t,versionLabel:a.createElement("b",null,n.label)}},"This is documentation for {siteTitle} {versionLabel}, which is no longer actively maintained.")}};function C(e){const t=L[e.versionMetadata.banner];return a.createElement(t,e)}function T(e){let{versionLabel:t,to:n,onClick:r}=e;return a.createElement(p.Z,{id:"theme.docs.versions.latestVersionSuggestionLabel",description:"The label used to tell the user to check the latest version",values:{versionLabel:t,latestVersionLink:a.createElement("b",null,a.createElement(f.Z,{to:n,onClick:r},a.createElement(p.Z,{id:"theme.docs.versions.latestVersionLinkLabel",description:"The label used for the latest version suggestion link label"},"latest version")))}},"For up-to-date documentation, see the {latestVersionLink} ({versionLabel}).")}function _(e){let{className:t,versionMetadata:n}=e;const{siteConfig:{title:r}}=(0,v.Z)(),{pluginId:o}=(0,E.gA)({failfast:!0}),{savePreferredVersionName:l}=(0,k.J)(o),{latestDocSuggestion:c,latestVersionSuggestion:s}=(0,E.Jo)(o),i=c??(d=s).docs.find((e=>e.id===d.mainDocId));var d;return a.createElement("div",{className:(0,m.Z)(t,y.k.docs.docVersionBanner,"alert alert--warning margin-bottom--md"),role:"alert"},a.createElement("div",null,a.createElement(C,{siteTitle:r,versionMetadata:n})),a.createElement("div",{className:"margin-top--md"},a.createElement(T,{versionLabel:s.label,to:i.path,onClick:()=>l(s.name)})))}function Z(e){let{className:t}=e;const n=(0,N.E)();return n.banner?a.createElement(_,{className:t,versionMetadata:n}):null}function w(e){let{className:t}=e;const n=(0,N.E)();return n.badge?a.createElement("span",{className:(0,m.Z)(t,y.k.docs.docVersionBadge,"badge badge--secondary")},a.createElement(p.Z,{id:"theme.docs.versionBadge.label",values:{versionLabel:n.label}},"Version: {versionLabel}")):null}function x(e){let{lastUpdatedAt:t,formattedLastUpdatedAt:n}=e;return a.createElement(p.Z,{id:"theme.lastUpdated.atDate",description:"The words used to describe on which date a page has been last updated",values:{date:a.createElement("b",null,a.createElement("time",{dateTime:new Date(1e3*t).toISOString()},n))}}," on {date}")}function B(e){let{lastUpdatedBy:t}=e;return a.createElement(p.Z,{id:"theme.lastUpdated.byUser",description:"The words used to describe by who the page has been last updated",values:{user:a.createElement("b",null,t)}}," by {user}")}function O(e){let{lastUpdatedAt:t,formattedLastUpdatedAt:n,lastUpdatedBy:r}=e;return a.createElement("span",{className:y.k.common.lastUpdated},a.createElement(p.Z,{id:"theme.lastUpdated.lastUpdatedAtBy",description:"The sentence used to display when a page has been last updated, and by who",values:{atDate:t&&n?a.createElement(x,{lastUpdatedAt:t,formattedLastUpdatedAt:n}):"",byUser:r?a.createElement(B,{lastUpdatedBy:r}):""}},"Last updated{atDate}{byUser}"),!1)}const A="iconEdit_Z9Sw";function j(e){let{className:t,...n}=e;return a.createElement("svg",(0,u.Z)({fill:"currentColor",height:"20",width:"20",viewBox:"0 0 40 40",className:(0,m.Z)(A,t),"aria-hidden":"true"},n),a.createElement("g",null,a.createElement("path",{d:"m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"})))}function H(e){let{editUrl:t}=e;return a.createElement("a",{href:t,target:"_blank",rel:"noreferrer noopener",className:y.k.common.editThisPage},a.createElement(j,null),a.createElement(p.Z,{id:"theme.common.editThisPage",description:"The link label to edit the current page"},"Edit this page"))}const S="tag_zVej",M="tagRegular_sFm0",P="tagWithCount_h2kH";function I(e){let{permalink:t,label:n,count:r}=e;return a.createElement(f.Z,{href:t,className:(0,m.Z)(S,r?P:M)},n,r&&a.createElement("span",null,r))}const z="tags_jXut",U="tag_QGVx";function V(e){let{tags:t}=e;return a.createElement(a.Fragment,null,a.createElement("b",null,a.createElement(p.Z,{id:"theme.tags.tagsListLabel",description:"The label alongside a tag list"},"Tags:")),a.createElement("ul",{className:(0,m.Z)(z,"padding--none","margin-left--sm")},t.map((e=>{let{label:t,permalink:n}=e;return a.createElement("li",{key:n,className:U},a.createElement(I,{label:t,permalink:n}))}))))}const D="lastUpdated_vwxv";function R(e){return a.createElement("div",{className:(0,m.Z)(y.k.docs.docFooterTagsRow,"row margin-bottom--sm")},a.createElement("div",{className:"col"},a.createElement(V,e)))}function $(e){let{editUrl:t,lastUpdatedAt:n,lastUpdatedBy:r,formattedLastUpdatedAt:o}=e;return a.createElement("div",{className:(0,m.Z)(y.k.docs.docFooterEditMetaRow,"row")},a.createElement("div",{className:"col"},t&&a.createElement(H,{editUrl:t})),a.createElement("div",{className:(0,m.Z)("col",D)},(n||r)&&a.createElement(O,{lastUpdatedAt:n,formattedLastUpdatedAt:o,lastUpdatedBy:r})))}function W(){const{metadata:e}=s(),{editUrl:t,lastUpdatedAt:n,formattedLastUpdatedAt:r,lastUpdatedBy:o,tags:l}=e,c=l.length>0,i=!!(t||n||o);return c||i?a.createElement("footer",{className:(0,m.Z)(y.k.docs.docFooter,"docusaurus-mt-lg")},c&&a.createElement(R,{tags:l}),i&&a.createElement($,{editUrl:t,lastUpdatedAt:n,lastUpdatedBy:o,formattedLastUpdatedAt:r})):null}var F=n(6043),q=n(6668);function G(e){const t=e.map((e=>({...e,parentIndex:-1,children:[]}))),n=Array(7).fill(-1);t.forEach(((e,t)=>{const a=n.slice(2,e.level);e.parentIndex=Math.max(...a),n[e.level]=t}));const a=[];return t.forEach((e=>{const{parentIndex:n,...r}=e;n>=0?t[n].children.push(r):a.push(r)})),a}function Y(e){let{toc:t,minHeadingLevel:n,maxHeadingLevel:a}=e;return t.flatMap((e=>{const t=Y({toc:e.children,minHeadingLevel:n,maxHeadingLevel:a});return function(e){return e.level>=n&&e.level<=a}(e)?[{...e,children:t}]:t}))}function J(e){const t=e.getBoundingClientRect();return t.top===t.bottom?J(e.parentNode):t}function Q(e,t){let{anchorTopOffset:n}=t;const a=e.find((e=>J(e).top>=n));if(a){return function(e){return e.top>0&&e.bottom{e.current=t?0:document.querySelector(".navbar").clientHeight}),[t]),e}function K(e){const t=(0,a.useRef)(void 0),n=X();(0,a.useEffect)((()=>{if(!e)return()=>{};const{linkClassName:a,linkActiveClassName:r,minHeadingLevel:o,maxHeadingLevel:l}=e;function c(){const e=function(e){return Array.from(document.getElementsByClassName(e))}(a),c=function(e){let{minHeadingLevel:t,maxHeadingLevel:n}=e;const a=[];for(let r=t;r<=n;r+=1)a.push(`h${r}.anchor`);return Array.from(document.querySelectorAll(a.join()))}({minHeadingLevel:o,maxHeadingLevel:l}),s=Q(c,{anchorTopOffset:n.current}),i=e.find((e=>s&&s.id===function(e){return decodeURIComponent(e.href.substring(e.href.indexOf("#")+1))}(e)));e.forEach((e=>{!function(e,n){n?(t.current&&t.current!==e&&t.current.classList.remove(r),e.classList.add(r),t.current=e):e.classList.remove(r)}(e,e===i)}))}return document.addEventListener("scroll",c),document.addEventListener("resize",c),c(),()=>{document.removeEventListener("scroll",c),document.removeEventListener("resize",c)}}),[e,n])}function ee(e){let{toc:t,className:n,linkClassName:r,isChild:o}=e;return t.length?a.createElement("ul",{className:o?void 0:n},t.map((e=>a.createElement("li",{key:e.id},a.createElement("a",{href:`#${e.id}`,className:r??void 0,dangerouslySetInnerHTML:{__html:e.value}}),a.createElement(ee,{isChild:!0,toc:e.children,className:n,linkClassName:r}))))):null}const te=a.memo(ee);function ne(e){let{toc:t,className:n="table-of-contents table-of-contents__left-border",linkClassName:r="table-of-contents__link",linkActiveClassName:o,minHeadingLevel:l,maxHeadingLevel:c,...s}=e;const i=(0,q.L)(),m=l??i.tableOfContents.minHeadingLevel,d=c??i.tableOfContents.maxHeadingLevel,p=function(e){let{toc:t,minHeadingLevel:n,maxHeadingLevel:r}=e;return(0,a.useMemo)((()=>Y({toc:G(t),minHeadingLevel:n,maxHeadingLevel:r})),[t,n,r])}({toc:t,minHeadingLevel:m,maxHeadingLevel:d});return K((0,a.useMemo)((()=>{if(r&&o)return{linkClassName:r,linkActiveClassName:o,minHeadingLevel:m,maxHeadingLevel:d}}),[r,o,m,d])),a.createElement(te,(0,u.Z)({toc:p,className:n,linkClassName:r},s))}const ae="tocCollapsibleButton_TO0P",re="tocCollapsibleButtonExpanded_MG3E";function oe(e){let{collapsed:t,...n}=e;return a.createElement("button",(0,u.Z)({type:"button"},n,{className:(0,m.Z)("clean-btn",ae,!t&&re,n.className)}),a.createElement(p.Z,{id:"theme.TOCCollapsible.toggleButtonLabel",description:"The label used by the button on the collapsible TOC component"},"On this page"))}const le="tocCollapsible_ETCw",ce="tocCollapsibleContent_vkbj",se="tocCollapsibleExpanded_sAul";function ie(e){let{toc:t,className:n,minHeadingLevel:r,maxHeadingLevel:o}=e;const{collapsed:l,toggleCollapsed:c}=(0,F.u)({initialState:!0});return a.createElement("div",{className:(0,m.Z)(le,!l&&se,n)},a.createElement(oe,{collapsed:l,onClick:c}),a.createElement(F.z,{lazy:!0,className:ce,collapsed:l},a.createElement(ne,{toc:t,minHeadingLevel:r,maxHeadingLevel:o})))}const me="tocMobile_ITEo";function de(){const{toc:e,frontMatter:t}=s();return a.createElement(ie,{toc:e,minHeadingLevel:t.toc_min_heading_level,maxHeadingLevel:t.toc_max_heading_level,className:(0,m.Z)(y.k.docs.docTocMobile,me)})}const ue="tableOfContents_bqdL";function pe(e){let{className:t,...n}=e;return a.createElement("div",{className:(0,m.Z)(ue,"thin-scrollbar",t)},a.createElement(ne,(0,u.Z)({},n,{linkClassName:"table-of-contents__link toc-highlight",linkActiveClassName:"table-of-contents__link--active"})))}function fe(){const{toc:e,frontMatter:t}=s();return a.createElement(pe,{toc:e,minHeadingLevel:t.toc_min_heading_level,maxHeadingLevel:t.toc_max_heading_level,className:y.k.docs.docTocDesktop})}const he="anchorWithStickyNavbar_LWe7",ge="anchorWithHideOnScrollNavbar_WYt5";function be(e){let{as:t,id:n,...r}=e;const{navbar:{hideOnScroll:o}}=(0,q.L)();if("h1"===t||!n)return a.createElement(t,(0,u.Z)({},r,{id:void 0}));const l=(0,p.I)({id:"theme.common.headingLinkTitle",message:"Direct link to {heading}",description:"Title for link to heading"},{heading:"string"==typeof r.children?r.children:n});return a.createElement(t,(0,u.Z)({},r,{className:(0,m.Z)("anchor",o?ge:he,r.className),id:n}),r.children,a.createElement(f.Z,{className:"hash-link",to:`#${n}`,"aria-label":l,title:l},"\u200b"))}var ve=n(3905),Ee=n(5742);var ye=n(2389),ke=n(2949);function Ne(){const{prism:e}=(0,q.L)(),{colorMode:t}=(0,ke.I)(),n=e.theme,a=e.darkTheme||n;return"dark"===t?a:n}var Le=n(7594),Ce=n.n(Le);const Te=/title=(?["'])(?.*?)\1/,_e=/\{(?<range>[\d,-]+)\}/,Ze={js:{start:"\\/\\/",end:""},jsBlock:{start:"\\/\\*",end:"\\*\\/"},jsx:{start:"\\{\\s*\\/\\*",end:"\\*\\/\\s*\\}"},bash:{start:"#",end:""},html:{start:"\x3c!--",end:"--\x3e"}};function we(e,t){const n=e.map((e=>{const{start:n,end:a}=Ze[e];return`(?:${n}\\s*(${t.flatMap((e=>[e.line,e.block?.start,e.block?.end].filter(Boolean))).join("|")})\\s*${a})`})).join("|");return new RegExp(`^\\s*(?:${n})\\s*$`)}function xe(e,t){let n=e.replace(/\n$/,"");const{language:a,magicComments:r,metastring:o}=t;if(o&&_e.test(o)){const e=o.match(_e).groups.range;if(0===r.length)throw new Error(`A highlight range has been given in code block's metastring (\`\`\` ${o}), but no magic comment config is available. Docusaurus applies the first magic comment entry's className for metastring ranges.`);const t=r[0].className,a=Ce()(e).filter((e=>e>0)).map((e=>[e-1,[t]]));return{lineClassNames:Object.fromEntries(a),code:n}}if(void 0===a)return{lineClassNames:{},code:n};const l=function(e,t){switch(e){case"js":case"javascript":case"ts":case"typescript":return we(["js","jsBlock"],t);case"jsx":case"tsx":return we(["js","jsBlock","jsx"],t);case"html":return we(["js","jsBlock","html"],t);case"python":case"py":case"bash":return we(["bash"],t);case"markdown":case"md":return we(["html","jsx","bash"],t);default:return we(Object.keys(Ze),t)}}(a,r),c=n.split("\n"),s=Object.fromEntries(r.map((e=>[e.className,{start:0,range:""}]))),i=Object.fromEntries(r.filter((e=>e.line)).map((e=>{let{className:t,line:n}=e;return[n,t]}))),m=Object.fromEntries(r.filter((e=>e.block)).map((e=>{let{className:t,block:n}=e;return[n.start,t]}))),d=Object.fromEntries(r.filter((e=>e.block)).map((e=>{let{className:t,block:n}=e;return[n.end,t]})));for(let p=0;p<c.length;){const e=c[p].match(l);if(!e){p+=1;continue}const t=e.slice(1).find((e=>void 0!==e));i[t]?s[i[t]].range+=`${p},`:m[t]?s[m[t]].start=p:d[t]&&(s[d[t]].range+=`${s[d[t]].start}-${p-1},`),c.splice(p,1)}n=c.join("\n");const u={};return Object.entries(s).forEach((e=>{let[t,{range:n}]=e;Ce()(n).forEach((e=>{u[e]??=[],u[e].push(t)}))})),{lineClassNames:u,code:n}}const Be="codeBlockContainer_Ckt0";function Oe(e){let{as:t,...n}=e;const r=function(e){const t={color:"--prism-color",backgroundColor:"--prism-background-color"},n={};return Object.entries(e.plain).forEach((e=>{let[a,r]=e;const o=t[a];o&&"string"==typeof r&&(n[o]=r)})),n}(Ne());return a.createElement(t,(0,u.Z)({},n,{style:r,className:(0,m.Z)(n.className,Be,y.k.common.codeBlock)}))}const Ae={codeBlockContent:"codeBlockContent_biex",codeBlockTitle:"codeBlockTitle_Ktv7",codeBlock:"codeBlock_bY9V",codeBlockStandalone:"codeBlockStandalone_MEMb",codeBlockLines:"codeBlockLines_e6Vv",codeBlockLinesWithNumbering:"codeBlockLinesWithNumbering_o6Pm",buttonGroup:"buttonGroup__atx"};function je(e){let{children:t,className:n}=e;return a.createElement(Oe,{as:"pre",tabIndex:0,className:(0,m.Z)(Ae.codeBlockStandalone,"thin-scrollbar",n)},a.createElement("code",{className:Ae.codeBlockLines},t))}const He={attributes:!0,characterData:!0,childList:!0,subtree:!0};function Se(e,t){const[n,r]=(0,a.useState)(),l=(0,a.useCallback)((()=>{r(e.current?.closest("[role=tabpanel][hidden]"))}),[e,r]);(0,a.useEffect)((()=>{l()}),[l]),function(e,t,n){void 0===n&&(n=He);const r=(0,o.zX)(t),l=(0,o.Ql)(n);(0,a.useEffect)((()=>{const t=new MutationObserver(r);return e&&t.observe(e,l),()=>t.disconnect()}),[e,r,l])}(n,(e=>{e.forEach((e=>{"attributes"===e.type&&"hidden"===e.attributeName&&(t(),l())}))}),{attributes:!0,characterData:!1,childList:!1,subtree:!1})}const Me={plain:{backgroundColor:"#2a2734",color:"#9a86fd"},styles:[{types:["comment","prolog","doctype","cdata","punctuation"],style:{color:"#6c6783"}},{types:["namespace"],style:{opacity:.7}},{types:["tag","operator","number"],style:{color:"#e09142"}},{types:["property","function"],style:{color:"#9a86fd"}},{types:["tag-id","selector","atrule-id"],style:{color:"#eeebff"}},{types:["attr-name"],style:{color:"#c4b9fe"}},{types:["boolean","string","entity","url","attr-value","keyword","control","directive","unit","statement","regex","atrule","placeholder","variable"],style:{color:"#ffcc99"}},{types:["deleted"],style:{textDecorationLine:"line-through"}},{types:["inserted"],style:{textDecorationLine:"underline"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["important"],style:{color:"#c4b9fe"}}]};var Pe={Prism:n(7410).Z,theme:Me};function Ie(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function ze(){return ze=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e},ze.apply(this,arguments)}var Ue=/\r\n|\r|\n/,Ve=function(e){0===e.length?e.push({types:["plain"],content:"\n",empty:!0}):1===e.length&&""===e[0].content&&(e[0].content="\n",e[0].empty=!0)},De=function(e,t){var n=e.length;return n>0&&e[n-1]===t?e:e.concat(t)},Re=function(e,t){var n=e.plain,a=Object.create(null),r=e.styles.reduce((function(e,n){var a=n.languages,r=n.style;return a&&!a.includes(t)||n.types.forEach((function(t){var n=ze({},e[t],r);e[t]=n})),e}),a);return r.root=n,r.plain=ze({},n,{backgroundColor:null}),r};function $e(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&-1===t.indexOf(a)&&(n[a]=e[a]);return n}const We=function(e){function t(){for(var t=this,n=[],a=arguments.length;a--;)n[a]=arguments[a];e.apply(this,n),Ie(this,"getThemeDict",(function(e){if(void 0!==t.themeDict&&e.theme===t.prevTheme&&e.language===t.prevLanguage)return t.themeDict;t.prevTheme=e.theme,t.prevLanguage=e.language;var n=e.theme?Re(e.theme,e.language):void 0;return t.themeDict=n})),Ie(this,"getLineProps",(function(e){var n=e.key,a=e.className,r=e.style,o=ze({},$e(e,["key","className","style","line"]),{className:"token-line",style:void 0,key:void 0}),l=t.getThemeDict(t.props);return void 0!==l&&(o.style=l.plain),void 0!==r&&(o.style=void 0!==o.style?ze({},o.style,r):r),void 0!==n&&(o.key=n),a&&(o.className+=" "+a),o})),Ie(this,"getStyleForToken",(function(e){var n=e.types,a=e.empty,r=n.length,o=t.getThemeDict(t.props);if(void 0!==o){if(1===r&&"plain"===n[0])return a?{display:"inline-block"}:void 0;if(1===r&&!a)return o[n[0]];var l=a?{display:"inline-block"}:{},c=n.map((function(e){return o[e]}));return Object.assign.apply(Object,[l].concat(c))}})),Ie(this,"getTokenProps",(function(e){var n=e.key,a=e.className,r=e.style,o=e.token,l=ze({},$e(e,["key","className","style","token"]),{className:"token "+o.types.join(" "),children:o.content,style:t.getStyleForToken(o),key:void 0});return void 0!==r&&(l.style=void 0!==l.style?ze({},l.style,r):r),void 0!==n&&(l.key=n),a&&(l.className+=" "+a),l})),Ie(this,"tokenize",(function(e,t,n,a){var r={code:t,grammar:n,language:a,tokens:[]};e.hooks.run("before-tokenize",r);var o=r.tokens=e.tokenize(r.code,r.grammar,r.language);return e.hooks.run("after-tokenize",r),o}))}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.render=function(){var e=this.props,t=e.Prism,n=e.language,a=e.code,r=e.children,o=this.getThemeDict(this.props),l=t.languages[n];return r({tokens:function(e){for(var t=[[]],n=[e],a=[0],r=[e.length],o=0,l=0,c=[],s=[c];l>-1;){for(;(o=a[l]++)<r[l];){var i=void 0,m=t[l],d=n[l][o];if("string"==typeof d?(m=l>0?m:["plain"],i=d):(m=De(m,d.type),d.alias&&(m=De(m,d.alias)),i=d.content),"string"==typeof i){var u=i.split(Ue),p=u.length;c.push({types:m,content:u[0]});for(var f=1;f<p;f++)Ve(c),s.push(c=[]),c.push({types:m,content:u[f]})}else l++,t.push(m),n.push(i),a.push(0),r.push(i.length)}l--,t.pop(),n.pop(),a.pop(),r.pop()}return Ve(c),s}(void 0!==l?this.tokenize(t,a,l,n):[a]),className:"prism-code language-"+n,style:void 0!==o?o.root:{},getLineProps:this.getLineProps,getTokenProps:this.getTokenProps})},t}(a.Component),Fe="codeLine_lJS_",qe="codeLineNumber_Tfdd",Ge="codeLineContent_feaV";function Ye(e){let{line:t,classNames:n,showLineNumbers:r,getLineProps:o,getTokenProps:l}=e;1===t.length&&"\n"===t[0].content&&(t[0].content="");const c=o({line:t,className:(0,m.Z)(n,r&&Fe)}),s=t.map(((e,t)=>a.createElement("span",(0,u.Z)({key:t},l({token:e,key:t})))));return a.createElement("span",c,r?a.createElement(a.Fragment,null,a.createElement("span",{className:qe}),a.createElement("span",{className:Ge},s)):s,a.createElement("br",null))}function Je(e){return a.createElement("svg",(0,u.Z)({viewBox:"0 0 24 24"},e),a.createElement("path",{fill:"currentColor",d:"M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"}))}function Qe(e){return a.createElement("svg",(0,u.Z)({viewBox:"0 0 24 24"},e),a.createElement("path",{fill:"currentColor",d:"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"}))}const Xe={copyButtonCopied:"copyButtonCopied_obH4",copyButtonIcons:"copyButtonIcons_eSgA",copyButtonIcon:"copyButtonIcon_y97N",copyButtonSuccessIcon:"copyButtonSuccessIcon_LjdS"};function Ke(e){let{code:t,className:n}=e;const[r,o]=(0,a.useState)(!1),l=(0,a.useRef)(void 0),c=(0,a.useCallback)((()=>{!function(e,t){let{target:n=document.body}=void 0===t?{}:t;const a=document.createElement("textarea"),r=document.activeElement;a.value=e,a.setAttribute("readonly",""),a.style.contain="strict",a.style.position="absolute",a.style.left="-9999px",a.style.fontSize="12pt";const o=document.getSelection();let l=!1;o.rangeCount>0&&(l=o.getRangeAt(0)),n.append(a),a.select(),a.selectionStart=0,a.selectionEnd=e.length;let c=!1;try{c=document.execCommand("copy")}catch{}a.remove(),l&&(o.removeAllRanges(),o.addRange(l)),r&&r.focus()}(t),o(!0),l.current=window.setTimeout((()=>{o(!1)}),1e3)}),[t]);return(0,a.useEffect)((()=>()=>window.clearTimeout(l.current)),[]),a.createElement("button",{type:"button","aria-label":r?(0,p.I)({id:"theme.CodeBlock.copied",message:"Copied",description:"The copied button label on code blocks"}):(0,p.I)({id:"theme.CodeBlock.copyButtonAriaLabel",message:"Copy code to clipboard",description:"The ARIA label for copy code blocks button"}),title:(0,p.I)({id:"theme.CodeBlock.copy",message:"Copy",description:"The copy button label on code blocks"}),className:(0,m.Z)("clean-btn",n,Xe.copyButton,r&&Xe.copyButtonCopied),onClick:c},a.createElement("span",{className:Xe.copyButtonIcons,"aria-hidden":"true"},a.createElement(Je,{className:Xe.copyButtonIcon}),a.createElement(Qe,{className:Xe.copyButtonSuccessIcon})))}function et(e){return a.createElement("svg",(0,u.Z)({viewBox:"0 0 24 24"},e),a.createElement("path",{fill:"currentColor",d:"M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"}))}const tt="wordWrapButtonIcon_Bwma",nt="wordWrapButtonEnabled_EoeP";function at(e){let{className:t,onClick:n,isEnabled:r}=e;const o=(0,p.I)({id:"theme.CodeBlock.wordWrapToggle",message:"Toggle word wrap",description:"The title attribute for toggle word wrapping button of code block lines"});return a.createElement("button",{type:"button",onClick:n,className:(0,m.Z)("clean-btn",t,r&&nt),"aria-label":o,title:o},a.createElement(et,{className:tt,"aria-hidden":"true"}))}function rt(e){let{children:t,className:n="",metastring:r,title:o,showLineNumbers:l,language:c}=e;const{prism:{defaultLanguage:s,magicComments:i}}=(0,q.L)(),d=c??n.split(" ").find((e=>e.startsWith("language-")))?.replace(/language-/,"")??s;const p=Ne(),f=function(){const[e,t]=(0,a.useState)(!1),[n,r]=(0,a.useState)(!1),o=(0,a.useRef)(null),l=(0,a.useCallback)((()=>{const n=o.current.querySelector("code");e?n.removeAttribute("style"):(n.style.whiteSpace="pre-wrap",n.style.overflowWrap="anywhere"),t((e=>!e))}),[o,e]),c=(0,a.useCallback)((()=>{const{scrollWidth:e,clientWidth:t}=o.current,n=e>t||o.current.querySelector("code").hasAttribute("style");r(n)}),[o]);return Se(o,c),(0,a.useEffect)((()=>{c()}),[e,c]),(0,a.useEffect)((()=>(window.addEventListener("resize",c,{passive:!0}),()=>{window.removeEventListener("resize",c)})),[c]),{codeBlockRef:o,isEnabled:e,isCodeScrollable:n,toggle:l}}(),h=function(e){return e?.match(Te)?.groups.title??""}(r)||o,{lineClassNames:g,code:b}=xe(t,{metastring:r,language:d,magicComments:i}),v=l??function(e){return Boolean(e?.includes("showLineNumbers"))}(r);return a.createElement(Oe,{as:"div",className:(0,m.Z)(n,d&&!n.includes(`language-${d}`)&&`language-${d}`)},h&&a.createElement("div",{className:Ae.codeBlockTitle},h),a.createElement("div",{className:Ae.codeBlockContent},a.createElement(We,(0,u.Z)({},Pe,{theme:p,code:b,language:d??"text"}),(e=>{let{className:t,tokens:n,getLineProps:r,getTokenProps:o}=e;return a.createElement("pre",{tabIndex:0,ref:f.codeBlockRef,className:(0,m.Z)(t,Ae.codeBlock,"thin-scrollbar")},a.createElement("code",{className:(0,m.Z)(Ae.codeBlockLines,v&&Ae.codeBlockLinesWithNumbering)},n.map(((e,t)=>a.createElement(Ye,{key:t,line:e,getLineProps:r,getTokenProps:o,classNames:g[t],showLineNumbers:v})))))})),a.createElement("div",{className:Ae.buttonGroup},(f.isEnabled||f.isCodeScrollable)&&a.createElement(at,{className:Ae.codeButton,onClick:()=>f.toggle(),isEnabled:f.isEnabled}),a.createElement(Ke,{className:Ae.codeButton,code:b}))))}function ot(e){let{children:t,...n}=e;const r=(0,ye.Z)(),o=function(e){return a.Children.toArray(e).some((e=>(0,a.isValidElement)(e)))?e:Array.isArray(e)?e.join(""):e}(t),l="string"==typeof o?rt:je;return a.createElement(l,(0,u.Z)({key:String(r)},n),o)}const lt="details_lb9f",ct="isBrowser_bmU9",st="collapsibleContent_i85q";function it(e){return!!e&&("SUMMARY"===e.tagName||it(e.parentElement))}function mt(e,t){return!!e&&(e===t||mt(e.parentElement,t))}function dt(e){let{summary:t,children:n,...r}=e;const o=(0,ye.Z)(),l=(0,a.useRef)(null),{collapsed:c,setCollapsed:s}=(0,F.u)({initialState:!r.open}),[i,d]=(0,a.useState)(r.open),p=a.isValidElement(t)?t:a.createElement("summary",null,t??"Details");return a.createElement("details",(0,u.Z)({},r,{ref:l,open:i,"data-collapsed":c,className:(0,m.Z)(lt,o&&ct,r.className),onMouseDown:e=>{it(e.target)&&e.detail>1&&e.preventDefault()},onClick:e=>{e.stopPropagation();const t=e.target;it(t)&&mt(t,l.current)&&(e.preventDefault(),c?(s(!1),d(!0)):s(!0))}}),p,a.createElement(F.z,{lazy:!1,collapsed:c,disableSSRStyle:!0,onCollapseTransitionEnd:e=>{s(e),d(!e)}},a.createElement("div",{className:st},n)))}const ut="details_b_Ee";function pt(e){let{...t}=e;return a.createElement(dt,(0,u.Z)({},t,{className:(0,m.Z)("alert alert--info",ut,t.className)}))}function ft(e){return a.createElement(be,e)}const ht="containsTaskList_mC6p";function gt(e){if(void 0!==e)return(0,m.Z)(e,e?.includes("contains-task-list")&&ht)}const bt="img_ev3q";const vt="admonition_LlT9",Et="admonitionHeading_tbUL",yt="admonitionIcon_kALy",kt="admonitionContent_S0QG";const Nt={note:{infimaClassName:"secondary",iconComponent:function(){return a.createElement("svg",{viewBox:"0 0 14 16"},a.createElement("path",{fillRule:"evenodd",d:"M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"}))},label:a.createElement(p.Z,{id:"theme.admonition.note",description:"The default label used for the Note admonition (:::note)"},"note")},tip:{infimaClassName:"success",iconComponent:function(){return a.createElement("svg",{viewBox:"0 0 12 16"},a.createElement("path",{fillRule:"evenodd",d:"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"}))},label:a.createElement(p.Z,{id:"theme.admonition.tip",description:"The default label used for the Tip admonition (:::tip)"},"tip")},danger:{infimaClassName:"danger",iconComponent:function(){return a.createElement("svg",{viewBox:"0 0 12 16"},a.createElement("path",{fillRule:"evenodd",d:"M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"}))},label:a.createElement(p.Z,{id:"theme.admonition.danger",description:"The default label used for the Danger admonition (:::danger)"},"danger")},info:{infimaClassName:"info",iconComponent:function(){return a.createElement("svg",{viewBox:"0 0 14 16"},a.createElement("path",{fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"}))},label:a.createElement(p.Z,{id:"theme.admonition.info",description:"The default label used for the Info admonition (:::info)"},"info")},caution:{infimaClassName:"warning",iconComponent:function(){return a.createElement("svg",{viewBox:"0 0 16 16"},a.createElement("path",{fillRule:"evenodd",d:"M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"}))},label:a.createElement(p.Z,{id:"theme.admonition.caution",description:"The default label used for the Caution admonition (:::caution)"},"caution")}},Lt={secondary:"note",important:"info",success:"tip",warning:"danger"};function Ct(e){const{mdxAdmonitionTitle:t,rest:n}=function(e){const t=a.Children.toArray(e),n=t.find((e=>a.isValidElement(e)&&"mdxAdmonitionTitle"===e.props?.mdxType)),r=a.createElement(a.Fragment,null,t.filter((e=>e!==n)));return{mdxAdmonitionTitle:n,rest:r}}(e.children);return{...e,title:e.title??t,children:n}}const Tt={head:function(e){const t=a.Children.map(e.children,(e=>a.isValidElement(e)?function(e){if(e.props?.mdxType&&e.props.originalType){const{mdxType:t,originalType:n,...r}=e.props;return a.createElement(e.props.originalType,r)}return e}(e):e));return a.createElement(Ee.Z,e,t)},code:function(e){const t=["a","abbr","b","br","button","cite","code","del","dfn","em","i","img","input","ins","kbd","label","object","output","q","ruby","s","small","span","strong","sub","sup","time","u","var","wbr"];return a.Children.toArray(e.children).every((e=>"string"==typeof e&&!e.includes("\n")||(0,a.isValidElement)(e)&&t.includes(e.props?.mdxType)))?a.createElement("code",e):a.createElement(ot,e)},a:function(e){return a.createElement(f.Z,e)},pre:function(e){return a.createElement(ot,(0,a.isValidElement)(e.children)&&"code"===e.children.props?.originalType?e.children.props:{...e})},details:function(e){const t=a.Children.toArray(e.children),n=t.find((e=>a.isValidElement(e)&&"summary"===e.props?.mdxType)),r=a.createElement(a.Fragment,null,t.filter((e=>e!==n)));return a.createElement(pt,(0,u.Z)({},e,{summary:n}),r)},ul:function(e){return a.createElement("ul",(0,u.Z)({},e,{className:gt(e.className)}))},img:function(e){return a.createElement("img",(0,u.Z)({loading:"lazy"},e,{className:(t=e.className,(0,m.Z)(t,bt))}));var t},h1:e=>a.createElement(ft,(0,u.Z)({as:"h1"},e)),h2:e=>a.createElement(ft,(0,u.Z)({as:"h2"},e)),h3:e=>a.createElement(ft,(0,u.Z)({as:"h3"},e)),h4:e=>a.createElement(ft,(0,u.Z)({as:"h4"},e)),h5:e=>a.createElement(ft,(0,u.Z)({as:"h5"},e)),h6:e=>a.createElement(ft,(0,u.Z)({as:"h6"},e)),admonition:function(e){const{children:t,type:n,title:r,icon:o}=Ct(e),l=function(e){const t=Lt[e]??e,n=Nt[t];return n||(console.warn(`No admonition config found for admonition type "${t}". Using Info as fallback.`),Nt.info)}(n),c=r??l.label,{iconComponent:s}=l,i=o??a.createElement(s,null);return a.createElement("div",{className:(0,m.Z)(y.k.common.admonition,y.k.common.admonitionType(e.type),"alert",`alert--${l.infimaClassName}`,vt)},a.createElement("div",{className:Et},a.createElement("span",{className:yt},i),c),a.createElement("div",{className:kt},t))},mermaid:()=>null};function _t(e){let{children:t}=e;return a.createElement(ve.Zo,{components:Tt},t)}function Zt(e){let{children:t}=e;const n=function(){const{metadata:e,frontMatter:t,contentTitle:n}=s();return t.hide_title||void 0!==n?null:e.title}();return a.createElement("div",{className:(0,m.Z)(y.k.docs.docMarkdown,"markdown")},n&&a.createElement("header",null,a.createElement(be,{as:"h1"},n)),a.createElement(_t,null,t))}var wt=n(3438),xt=n(8596),Bt=n(4996);function Ot(e){return a.createElement("svg",(0,u.Z)({viewBox:"0 0 24 24"},e),a.createElement("path",{d:"M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z",fill:"currentColor"}))}const At="breadcrumbHomeIcon_YNFT";function jt(){const e=(0,Bt.Z)("/");return a.createElement("li",{className:"breadcrumbs__item"},a.createElement(f.Z,{"aria-label":(0,p.I)({id:"theme.docs.breadcrumbs.home",message:"Home page",description:"The ARIA label for the home page in the breadcrumbs"}),className:"breadcrumbs__link",href:e},a.createElement(Ot,{className:At})))}const Ht="breadcrumbsContainer_Z_bl";function St(e){let{children:t,href:n,isLast:r}=e;const o="breadcrumbs__link";return r?a.createElement("span",{className:o,itemProp:"name"},t):n?a.createElement(f.Z,{className:o,href:n,itemProp:"item"},a.createElement("span",{itemProp:"name"},t)):a.createElement("span",{className:o},t)}function Mt(e){let{children:t,active:n,index:r,addMicrodata:o}=e;return a.createElement("li",(0,u.Z)({},o&&{itemScope:!0,itemProp:"itemListElement",itemType:"https://schema.org/ListItem"},{className:(0,m.Z)("breadcrumbs__item",{"breadcrumbs__item--active":n})}),t,a.createElement("meta",{itemProp:"position",content:String(r+1)}))}function Pt(){const e=(0,wt.s1)(),t=(0,xt.Ns)();return e?a.createElement("nav",{className:(0,m.Z)(y.k.docs.docBreadcrumbs,Ht),"aria-label":(0,p.I)({id:"theme.docs.breadcrumbs.navAriaLabel",message:"Breadcrumbs",description:"The ARIA label for the breadcrumbs"})},a.createElement("ul",{className:"breadcrumbs",itemScope:!0,itemType:"https://schema.org/BreadcrumbList"},t&&a.createElement(jt,null),e.map(((t,n)=>{const r=n===e.length-1;return a.createElement(Mt,{key:n,active:r,index:n,addMicrodata:!!t.href},a.createElement(St,{href:t.href,isLast:r},t.label))})))):null}const It="docItemContainer_Djhp",zt="docItemCol_VOVn";function Ut(e){let{children:t}=e;const n=function(){const{frontMatter:e,toc:t}=s(),n=(0,d.i)(),r=e.hide_table_of_contents,o=!r&&t.length>0;return{hidden:r,mobile:o?a.createElement(de,null):void 0,desktop:!o||"desktop"!==n&&"ssr"!==n?void 0:a.createElement(fe,null)}}();return a.createElement("div",{className:"row"},a.createElement("div",{className:(0,m.Z)("col",!n.hidden&&zt)},a.createElement(Z,null),a.createElement("div",{className:It},a.createElement("article",null,a.createElement(Pt,null),a.createElement(w,null),n.mobile,a.createElement(Zt,null,t),a.createElement(W,null)),a.createElement(b,null))),n.desktop&&a.createElement("div",{className:"col col--3"},n.desktop))}function Vt(e){const t=`docs-doc-id-${e.content.metadata.unversionedId}`,n=e.content;return a.createElement(c,{content:e.content},a.createElement(r.FG,{className:t},a.createElement(i,null),a.createElement(Ut,null,a.createElement(n,null))))}},4477:(e,t,n)=>{"use strict";n.d(t,{E:()=>c,q:()=>l});var a=n(7294),r=n(902);const o=a.createContext(null);function l(e){let{children:t,version:n}=e;return a.createElement(o.Provider,{value:n},t)}function c(){const e=(0,a.useContext)(o);if(null===e)throw new r.i6("DocsVersionProvider");return e}},7594:(e,t)=>{function n(e){let t,n=[];for(let a of e.split(",").map((e=>e.trim())))if(/^-?\d+$/.test(a))n.push(parseInt(a,10));else if(t=a.match(/^(-?\d+)(-|\.\.\.?|\u2025|\u2026|\u22EF)(-?\d+)$/)){let[e,a,r,o]=t;if(a&&o){a=parseInt(a),o=parseInt(o);const e=a<o?1:-1;"-"!==r&&".."!==r&&"\u2025"!==r||(o+=e);for(let t=a;t!==o;t+=e)n.push(t)}}return n}t.default=n,e.exports=n}}]); \ No newline at end of file diff --git a/assets/js/1a4e3797.a446d558.js b/assets/js/1a4e3797.a446d558.js new file mode 100644 index 0000000000..78b5364116 --- /dev/null +++ b/assets/js/1a4e3797.a446d558.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklazyvim=self.webpackChunklazyvim||[]).push([[7920],{2027:(e,t,n)=>{n.r(t),n.d(t,{default:()=>_});var r=n(7294),a=n(2263),l=n(5924),s=n(5742),c=n(9960),o=n(5999);const u=["zero","one","two","few","many","other"];function m(e){return u.filter((t=>e.includes(t)))}const h={locale:"en",pluralForms:m(["one","other"]),select:e=>1===e?"one":"other"};function i(){const{i18n:{currentLocale:e}}=(0,a.Z)();return(0,r.useMemo)((()=>{try{return function(e){const t=new Intl.PluralRules(e);return{locale:e,pluralForms:m(t.resolvedOptions().pluralCategories),select:e=>t.select(e)}}(e)}catch(t){return console.error(`Failed to use Intl.PluralRules for locale "${e}".\nDocusaurus will fallback to the default (English) implementation.\nError: ${t.message}\n`),h}}),[e])}function p(){const e=i();return{selectMessage:(t,n)=>function(e,t,n){const r=e.split("|");if(1===r.length)return r[0];r.length>n.pluralForms.length&&console.error(`For locale=${n.locale}, a maximum of ${n.pluralForms.length} plural forms are expected (${n.pluralForms.join(",")}), but the message contains ${r.length}: ${e}`);const a=n.select(t),l=n.pluralForms.indexOf(a);return r[Math.min(l,r.length-1)]}(n,t,e)}}var g=n(6550),d=n(412);const f=function(){const e=(0,g.k6)(),t=(0,g.TH)(),{siteConfig:{baseUrl:n}}=(0,a.Z)(),r=d.Z.canUseDOM?new URLSearchParams(t.search):null,l=r?.get("q")||"",s=r?.get("ctx")||"",c=r?.get("version")||"",o=e=>{const n=new URLSearchParams(t.search);return e?n.set("q",e):n.delete("q"),n};return{searchValue:l,searchContext:s,searchVersion:c,updateSearchPath:t=>{const n=o(t);e.replace({search:n.toString()})},generateSearchPageLink:e=>{const t=o(e);return`${n}search?${t.toString()}`}}};var E=n(22),y=n(8202),S=n(2539),w=n(726),v=n(1073),b=n(311),I=n(3926),P=n(1029);const F="searchQueryInput_CFBF",R="searchResultItem_U687",C="searchResultItemPath_uIbk",$="searchResultItemSummary_oZHr";function k(){const{siteConfig:{baseUrl:e}}=(0,a.Z)(),{selectMessage:t}=p(),{searchValue:n,searchContext:l,searchVersion:c,updateSearchPath:u}=f(),[m,h]=(0,r.useState)(n),[i,g]=(0,r.useState)(),[d,S]=(0,r.useState)(),w=`${e}${c}`,v=(0,r.useMemo)((()=>m?(0,o.I)({id:"theme.SearchPage.existingResultsTitle",message:'Search results for "{query}"',description:"The search page title for non-empty query"},{query:m}):(0,o.I)({id:"theme.SearchPage.emptyResultsTitle",message:"Search the documentation",description:"The search page title for empty query"})),[m]);(0,r.useEffect)((()=>{u(m),i&&(m?i(m,(e=>{S(e)})):S(void 0))}),[m,i]);const I=(0,r.useCallback)((e=>{h(e.target.value)}),[]);return(0,r.useEffect)((()=>{n&&n!==m&&h(n)}),[n]),(0,r.useEffect)((()=>{!async function(){const{wrappedIndexes:e,zhDictionary:t}=await(0,E.w)(w,l);g((()=>(0,y.v)(e,t,100)))}()}),[l,w]),r.createElement(r.Fragment,null,r.createElement(s.Z,null,r.createElement("meta",{property:"robots",content:"noindex, follow"}),r.createElement("title",null,v)),r.createElement("div",{className:"container margin-vert--lg"},r.createElement("h1",null,v),r.createElement("input",{type:"search",name:"q",className:F,"aria-label":"Search",onChange:I,value:m,autoComplete:"off",autoFocus:!0}),!i&&m&&r.createElement("div",null,r.createElement(b.Z,null)),d&&(d.length>0?r.createElement("p",null,t(d.length,(0,o.I)({id:"theme.SearchPage.documentsFound.plurals",message:"1 document found|{count} documents found",description:'Pluralized label for "{count} documents found". Use as much plural forms (separated by "|") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)'},{count:d.length}))):r.createElement("p",null,(0,o.I)({id:"theme.SearchPage.noResultsText",message:"No documents were found",description:"The paragraph for empty search result"}))),r.createElement("section",null,d&&d.map((e=>r.createElement(x,{key:e.document.i,searchResult:e}))))))}function x(e){let{searchResult:{document:t,type:n,page:a,tokens:l,metadata:s}}=e;const o=0===n,u=2===n,m=(o?t.b:a.b).slice(),h=u?t.s:t.t;o||m.push(a.t);let i="";if(P.vc&&l.length>0){const e=new URLSearchParams;for(const t of l)e.append("_highlight",t);i=`?${e.toString()}`}return r.createElement("article",{className:R},r.createElement("h2",null,r.createElement(c.Z,{to:t.u+i+(t.h||""),dangerouslySetInnerHTML:{__html:u?(0,S.C)(h,l):(0,w.o)(h,(0,v.m)(s,"t"),l,100)}})),m.length>0&&r.createElement("p",{className:C},(0,I.e)(m)),u&&r.createElement("p",{className:$,dangerouslySetInnerHTML:{__html:(0,w.o)(t.t,(0,v.m)(s,"t"),l,100)}}))}const _=function(){return r.createElement(l.Z,null,r.createElement(k,null))}}}]); \ No newline at end of file diff --git a/assets/js/1be78505.43c09e3c.js b/assets/js/1be78505.43c09e3c.js new file mode 100644 index 0000000000..3bc3397d5d --- /dev/null +++ b/assets/js/1be78505.43c09e3c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklazyvim=self.webpackChunklazyvim||[]).push([[9514,4972],{9963:(e,t,n)=>{n.r(t),n.d(t,{default:()=>Se});var a=n(7294),l=n(6010),o=n(1944),r=n(5281),i=n(3320),c=n(3438),s=n(4477),d=n(1116),m=n(5924),u=n(5999),b=n(2466),p=n(5936);const h="backToTopButton_sjWU",E="backToTopButtonShow_xfvO";function f(){const{shown:e,scrollToTop:t}=function(e){let{threshold:t}=e;const[n,l]=(0,a.useState)(!1),o=(0,a.useRef)(!1),{startScroll:r,cancelScroll:i}=(0,b.Ct)();return(0,b.RF)(((e,n)=>{let{scrollY:a}=e;const r=n?.scrollY;r&&(o.current?o.current=!1:a>=r?(i(),l(!1)):a<t?l(!1):a+window.innerHeight<document.documentElement.scrollHeight&&l(!0))})),(0,p.S)((e=>{e.location.hash&&(o.current=!0,l(!1))})),{shown:n,scrollToTop:()=>r(0)}}({threshold:300});return a.createElement("button",{"aria-label":(0,u.I)({id:"theme.BackToTopButton.buttonAriaLabel",message:"Scroll back to top",description:"The ARIA label for the back to top button"}),className:(0,l.Z)("clean-btn",r.k.common.backToTopButton,h,e&&E),type:"button",onClick:t})}var v=n(1442),g=n(6550),_=n(7524),k=n(6668),C=n(1327),S=n(7462);function I(e){return a.createElement("svg",(0,S.Z)({width:"20",height:"20","aria-hidden":"true"},e),a.createElement("g",{fill:"#7a7a7a"},a.createElement("path",{d:"M9.992 10.023c0 .2-.062.399-.172.547l-4.996 7.492a.982.982 0 01-.828.454H1c-.55 0-1-.453-1-1 0-.2.059-.403.168-.551l4.629-6.942L.168 3.078A.939.939 0 010 2.528c0-.548.45-.997 1-.997h2.996c.352 0 .649.18.828.45L9.82 9.472c.11.148.172.347.172.55zm0 0"}),a.createElement("path",{d:"M19.98 10.023c0 .2-.058.399-.168.547l-4.996 7.492a.987.987 0 01-.828.454h-3c-.547 0-.996-.453-.996-1 0-.2.059-.403.168-.551l4.625-6.942-4.625-6.945a.939.939 0 01-.168-.55 1 1 0 01.996-.997h3c.348 0 .649.18.828.45l4.996 7.492c.11.148.168.347.168.55zm0 0"})))}const N="collapseSidebarButton_PEFL",Z="collapseSidebarButtonIcon_kv0_";function y(e){let{onClick:t}=e;return a.createElement("button",{type:"button",title:(0,u.I)({id:"theme.docs.sidebar.collapseButtonTitle",message:"Collapse sidebar",description:"The title attribute for collapse button of doc sidebar"}),"aria-label":(0,u.I)({id:"theme.docs.sidebar.collapseButtonAriaLabel",message:"Collapse sidebar",description:"The title attribute for collapse button of doc sidebar"}),className:(0,l.Z)("button button--secondary button--outline",N),onClick:t},a.createElement(I,{className:Z}))}var x=n(9689),T=n(902);const w=Symbol("EmptyContext"),L=a.createContext(w);function A(e){let{children:t}=e;const[n,l]=(0,a.useState)(null),o=(0,a.useMemo)((()=>({expandedItem:n,setExpandedItem:l})),[n]);return a.createElement(L.Provider,{value:o},t)}var M=n(6043),B=n(8596),F=n(9960),H=n(2389);function P(e){let{categoryLabel:t,onClick:n}=e;return a.createElement("button",{"aria-label":(0,u.I)({id:"theme.DocSidebarItem.toggleCollapsedCategoryAriaLabel",message:"Toggle the collapsible sidebar category '{label}'",description:"The ARIA label to toggle the collapsible sidebar category"},{label:t}),type:"button",className:"clean-btn menu__caret",onClick:n})}function D(e){let{item:t,onItemClick:n,activePath:o,level:i,index:s,...d}=e;const{items:m,label:u,collapsible:b,className:p,href:h}=t,{docs:{sidebar:{autoCollapseCategories:E}}}=(0,k.L)(),f=function(e){const t=(0,H.Z)();return(0,a.useMemo)((()=>e.href?e.href:!t&&e.collapsible?(0,c.Wl)(e):void 0),[e,t])}(t),v=(0,c._F)(t,o),g=(0,B.Mg)(h,o),{collapsed:_,setCollapsed:C}=(0,M.u)({initialState:()=>!!b&&(!v&&t.collapsed)}),{expandedItem:I,setExpandedItem:N}=function(){const e=(0,a.useContext)(L);if(e===w)throw new T.i6("DocSidebarItemsExpandedStateProvider");return e}(),Z=function(e){void 0===e&&(e=!_),N(e?null:s),C(e)};return function(e){let{isActive:t,collapsed:n,updateCollapsed:l}=e;const o=(0,T.D9)(t);(0,a.useEffect)((()=>{t&&!o&&n&&l(!1)}),[t,o,n,l])}({isActive:v,collapsed:_,updateCollapsed:Z}),(0,a.useEffect)((()=>{b&&null!=I&&I!==s&&E&&C(!0)}),[b,I,s,C,E]),a.createElement("li",{className:(0,l.Z)(r.k.docs.docSidebarItemCategory,r.k.docs.docSidebarItemCategoryLevel(i),"menu__list-item",{"menu__list-item--collapsed":_},p)},a.createElement("div",{className:(0,l.Z)("menu__list-item-collapsible",{"menu__list-item-collapsible--active":g})},a.createElement(F.Z,(0,S.Z)({className:(0,l.Z)("menu__link",{"menu__link--sublist":b,"menu__link--sublist-caret":!h&&b,"menu__link--active":v}),onClick:b?e=>{n?.(t),h?Z(!1):(e.preventDefault(),Z())}:()=>{n?.(t)},"aria-current":g?"page":void 0,"aria-expanded":b?!_:void 0,href:b?f??"#":f},d),u),h&&b&&a.createElement(P,{categoryLabel:u,onClick:e=>{e.preventDefault(),Z()}})),a.createElement(M.z,{lazy:!0,as:"ul",className:"menu__list",collapsed:_},a.createElement(G,{items:m,tabIndex:_?-1:0,onItemClick:n,activePath:o,level:i+1})))}var W=n(3919),R=n(9471);const V="menuExternalLink_NmtK";function z(e){let{item:t,onItemClick:n,activePath:o,level:i,index:s,...d}=e;const{href:m,label:u,className:b,autoAddBaseUrl:p}=t,h=(0,c._F)(t,o),E=(0,W.Z)(m);return a.createElement("li",{className:(0,l.Z)(r.k.docs.docSidebarItemLink,r.k.docs.docSidebarItemLinkLevel(i),"menu__list-item",b),key:u},a.createElement(F.Z,(0,S.Z)({className:(0,l.Z)("menu__link",!E&&V,{"menu__link--active":h}),autoAddBaseUrl:p,"aria-current":h?"page":void 0,to:m},E&&{onClick:n?()=>n(t):void 0},d),u,!E&&a.createElement(R.Z,null)))}const U="menuHtmlItem_M9Kj";function K(e){let{item:t,level:n,index:o}=e;const{value:i,defaultStyle:c,className:s}=t;return a.createElement("li",{className:(0,l.Z)(r.k.docs.docSidebarItemLink,r.k.docs.docSidebarItemLinkLevel(n),c&&[U,"menu__list-item"],s),key:o,dangerouslySetInnerHTML:{__html:i}})}function j(e){let{item:t,...n}=e;switch(t.type){case"category":return a.createElement(D,(0,S.Z)({item:t},n));case"html":return a.createElement(K,(0,S.Z)({item:t},n));default:return a.createElement(z,(0,S.Z)({item:t},n))}}function q(e){let{items:t,...n}=e;return a.createElement(A,null,t.map(((e,t)=>a.createElement(j,(0,S.Z)({key:t,item:e,index:t},n)))))}const G=(0,a.memo)(q),Y="menu_SIkG",O="menuWithAnnouncementBar_GW3s";function X(e){let{path:t,sidebar:n,className:o}=e;const i=function(){const{isActive:e}=(0,x.nT)(),[t,n]=(0,a.useState)(e);return(0,b.RF)((t=>{let{scrollY:a}=t;e&&n(0===a)}),[e]),e&&t}();return a.createElement("nav",{"aria-label":(0,u.I)({id:"theme.docs.sidebar.navAriaLabel",message:"Docs sidebar",description:"The ARIA label for the sidebar navigation"}),className:(0,l.Z)("menu thin-scrollbar",Y,i&&O,o)},a.createElement("ul",{className:(0,l.Z)(r.k.docs.docSidebarMenu,"menu__list")},a.createElement(G,{items:n,activePath:t,level:1})))}const J="sidebar_njMd",Q="sidebarWithHideableNavbar_wUlq",$="sidebarHidden_VK0M",ee="sidebarLogo_isFc";function te(e){let{path:t,sidebar:n,onCollapse:o,isHidden:r}=e;const{navbar:{hideOnScroll:i},docs:{sidebar:{hideable:c}}}=(0,k.L)();return a.createElement("div",{className:(0,l.Z)(J,i&&Q,r&&$)},i&&a.createElement(C.Z,{tabIndex:-1,className:ee}),a.createElement(X,{path:t,sidebar:n}),c&&a.createElement(y,{onClick:o}))}const ne=a.memo(te);var ae=n(3102),le=n(3163);const oe=e=>{let{sidebar:t,path:n}=e;const o=(0,le.e)();return a.createElement("ul",{className:(0,l.Z)(r.k.docs.docSidebarMenu,"menu__list")},a.createElement(G,{items:t,activePath:n,onItemClick:e=>{"category"===e.type&&e.href&&o.toggle(),"link"===e.type&&o.toggle()},level:1}))};function re(e){return a.createElement(ae.Zo,{component:oe,props:e})}const ie=a.memo(re);function ce(e){const t=(0,_.i)(),n="desktop"===t||"ssr"===t,l="mobile"===t;return a.createElement(a.Fragment,null,n&&a.createElement(ne,e),l&&a.createElement(ie,e))}const se="expandButton_m80_",de="expandButtonIcon_BlDH";function me(e){let{toggleSidebar:t}=e;return a.createElement("div",{className:se,title:(0,u.I)({id:"theme.docs.sidebar.expandButtonTitle",message:"Expand sidebar",description:"The ARIA label and title attribute for expand button of doc sidebar"}),"aria-label":(0,u.I)({id:"theme.docs.sidebar.expandButtonAriaLabel",message:"Expand sidebar",description:"The ARIA label and title attribute for expand button of doc sidebar"}),tabIndex:0,role:"button",onKeyDown:t,onClick:t},a.createElement(I,{className:de}))}const ue={docSidebarContainer:"docSidebarContainer_b6E3",docSidebarContainerHidden:"docSidebarContainerHidden_b3ry",sidebarViewport:"sidebarViewport_Xe31"};function be(e){let{children:t}=e;const n=(0,d.V)();return a.createElement(a.Fragment,{key:n?.name??"noSidebar"},t)}function pe(e){let{sidebar:t,hiddenSidebarContainer:n,setHiddenSidebarContainer:o}=e;const{pathname:i}=(0,g.TH)(),[c,s]=(0,a.useState)(!1),d=(0,a.useCallback)((()=>{c&&s(!1),!c&&(0,v.n)()&&s(!0),o((e=>!e))}),[o,c]);return a.createElement("aside",{className:(0,l.Z)(r.k.docs.docSidebarContainer,ue.docSidebarContainer,n&&ue.docSidebarContainerHidden),onTransitionEnd:e=>{e.currentTarget.classList.contains(ue.docSidebarContainer)&&n&&s(!0)}},a.createElement(be,null,a.createElement("div",{className:(0,l.Z)(ue.sidebarViewport,c&&ue.sidebarViewportHidden)},a.createElement(ce,{sidebar:t,path:i,onCollapse:d,isHidden:c}),c&&a.createElement(me,{toggleSidebar:d}))))}const he={docMainContainer:"docMainContainer_gTbr",docMainContainerEnhanced:"docMainContainerEnhanced_Uz_u",docItemWrapperEnhanced:"docItemWrapperEnhanced_czyv"};function Ee(e){let{hiddenSidebarContainer:t,children:n}=e;const o=(0,d.V)();return a.createElement("main",{className:(0,l.Z)(he.docMainContainer,(t||!o)&&he.docMainContainerEnhanced)},a.createElement("div",{className:(0,l.Z)("container padding-top--md padding-bottom--lg",he.docItemWrapper,t&&he.docItemWrapperEnhanced)},n))}const fe="docPage__5DB",ve="docsWrapper_BCFX";function ge(e){let{children:t}=e;const n=(0,d.V)(),[l,o]=(0,a.useState)(!1);return a.createElement(m.Z,{wrapperClassName:ve},a.createElement(f,null),a.createElement("div",{className:fe},n&&a.createElement(pe,{sidebar:n.items,hiddenSidebarContainer:l,setHiddenSidebarContainer:o}),a.createElement(Ee,{hiddenSidebarContainer:l},t)))}var _e=n(4972),ke=n(197);function Ce(e){const{versionMetadata:t}=e;return a.createElement(a.Fragment,null,a.createElement(ke.Z,{version:t.version,tag:(0,i.os)(t.pluginId,t.version)}),a.createElement(o.d,null,t.noIndex&&a.createElement("meta",{name:"robots",content:"noindex, nofollow"})))}function Se(e){const{versionMetadata:t}=e,n=(0,c.hI)(e);if(!n)return a.createElement(_e.default,null);const{docElement:i,sidebarName:m,sidebarItems:u}=n;return a.createElement(a.Fragment,null,a.createElement(Ce,e),a.createElement(o.FG,{className:(0,l.Z)(r.k.wrapper.docsPages,r.k.page.docsDocPage,e.versionMetadata.className)},a.createElement(s.q,{version:t},a.createElement(d.b,{name:m,items:u},a.createElement(ge,null,i)))))}},4972:(e,t,n)=>{n.r(t),n.d(t,{default:()=>i});var a=n(7294),l=n(5999),o=n(1944),r=n(5924);function i(){return a.createElement(a.Fragment,null,a.createElement(o.d,{title:(0,l.I)({id:"theme.NotFound.title",message:"Page Not Found"})}),a.createElement(r.Z,null,a.createElement("main",{className:"container margin-vert--xl"},a.createElement("div",{className:"row"},a.createElement("div",{className:"col col--6 col--offset-3"},a.createElement("h1",{className:"hero__title"},a.createElement(l.Z,{id:"theme.NotFound.title",description:"The title of the 404 page"},"Page Not Found")),a.createElement("p",null,a.createElement(l.Z,{id:"theme.NotFound.p1",description:"The first paragraph of the 404 page"},"We could not find what you were looking for.")),a.createElement("p",null,a.createElement(l.Z,{id:"theme.NotFound.p2",description:"The 2nd paragraph of the 404 page"},"Please contact the owner of the site that linked you to the original URL and let them know their link is broken.")))))))}},4477:(e,t,n)=>{n.d(t,{E:()=>i,q:()=>r});var a=n(7294),l=n(902);const o=a.createContext(null);function r(e){let{children:t,version:n}=e;return a.createElement(o.Provider,{value:n},t)}function i(){const e=(0,a.useContext)(o);if(null===e)throw new l.i6("DocsVersionProvider");return e}}}]); \ No newline at end of file diff --git a/assets/js/1e89ac9b.7f5a3296.js b/assets/js/1e89ac9b.7f5a3296.js new file mode 100644 index 0000000000..2af65e1ad2 --- /dev/null +++ b/assets/js/1e89ac9b.7f5a3296.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklazyvim=self.webpackChunklazyvim||[]).push([[58],{3905:(e,t,r)=>{r.d(t,{Zo:()=>s,kt:()=>f});var a=r(7294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function l(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?o(Object(r),!0).forEach((function(t){n(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):o(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function u(e,t){if(null==e)return{};var r,a,n=function(e,t){if(null==e)return{};var r,a,n={},o=Object.keys(e);for(a=0;a<o.length;a++)r=o[a],t.indexOf(r)>=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)r=o[a],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var c=a.createContext({}),i=function(e){var t=a.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},s=function(e){var t=i(e.components);return a.createElement(c.Provider,{value:t},e.children)},d="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},p=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,o=e.originalType,c=e.parentName,s=u(e,["components","mdxType","originalType","parentName"]),d=i(r),p=n,f=d["".concat(c,".").concat(p)]||d[p]||m[p]||o;return r?a.createElement(f,l(l({ref:t},s),{},{components:r})):a.createElement(f,l({ref:t},s))}));function f(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=r.length,l=new Array(o);l[0]=p;var u={};for(var c in t)hasOwnProperty.call(t,c)&&(u[c]=t[c]);u.originalType=e,u[d]="string"==typeof e?e:n,l[1]=u;for(var i=2;i<o;i++)l[i]=r[i];return a.createElement.apply(null,l)}return a.createElement.apply(null,r)}p.displayName="MDXCreateElement"},5162:(e,t,r)=>{r.d(t,{Z:()=>l});var a=r(7294),n=r(6010);const o="tabItem_Ymn6";function l(e){let{children:t,hidden:r,className:l}=e;return a.createElement("div",{role:"tabpanel",className:(0,n.Z)(o,l),hidden:r},t)}},4866:(e,t,r)=>{r.d(t,{Z:()=>w});var a=r(7462),n=r(7294),o=r(6010),l=r(2466),u=r(6550),c=r(1980),i=r(7392),s=r(12);function d(e){return function(e){return n.Children.map(e,(e=>{if(!e||(0,n.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:t,label:r,attributes:a,default:n}}=e;return{value:t,label:r,attributes:a,default:n}}))}function m(e){const{values:t,children:r}=e;return(0,n.useMemo)((()=>{const e=t??d(r);return function(e){const t=(0,i.l)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[t,r])}function p(e){let{value:t,tabValues:r}=e;return r.some((e=>e.value===t))}function f(e){let{queryString:t=!1,groupId:r}=e;const a=(0,u.k6)(),o=function(e){let{queryString:t=!1,groupId:r}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!r)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return r??null}({queryString:t,groupId:r});return[(0,c._X)(o),(0,n.useCallback)((e=>{if(!o)return;const t=new URLSearchParams(a.location.search);t.set(o,e),a.replace({...a.location,search:t.toString()})}),[o,a])]}function b(e){const{defaultValue:t,queryString:r=!1,groupId:a}=e,o=m(e),[l,u]=(0,n.useState)((()=>function(e){let{defaultValue:t,tabValues:r}=e;if(0===r.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(t){if(!p({value:t,tabValues:r}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${r.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const a=r.find((e=>e.default))??r[0];if(!a)throw new Error("Unexpected error: 0 tabValues");return a.value}({defaultValue:t,tabValues:o}))),[c,i]=f({queryString:r,groupId:a}),[d,b]=function(e){let{groupId:t}=e;const r=function(e){return e?`docusaurus.tab.${e}`:null}(t),[a,o]=(0,s.Nk)(r);return[a,(0,n.useCallback)((e=>{r&&o.set(e)}),[r,o])]}({groupId:a}),y=(()=>{const e=c??d;return p({value:e,tabValues:o})?e:null})();(0,n.useLayoutEffect)((()=>{y&&u(y)}),[y]);return{selectedValue:l,selectValue:(0,n.useCallback)((e=>{if(!p({value:e,tabValues:o}))throw new Error(`Can't select invalid tab value=${e}`);u(e),i(e),b(e)}),[i,b,o]),tabValues:o}}var y=r(2389);const v="tabList__CuJ",h="tabItem_LNqP";function g(e){let{className:t,block:r,selectedValue:u,selectValue:c,tabValues:i}=e;const s=[],{blockElementScrollPositionUntilNextRender:d}=(0,l.o5)(),m=e=>{const t=e.currentTarget,r=s.indexOf(t),a=i[r].value;a!==u&&(d(t),c(a))},p=e=>{let t=null;switch(e.key){case"Enter":m(e);break;case"ArrowRight":{const r=s.indexOf(e.currentTarget)+1;t=s[r]??s[0];break}case"ArrowLeft":{const r=s.indexOf(e.currentTarget)-1;t=s[r]??s[s.length-1];break}}t?.focus()};return n.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,o.Z)("tabs",{"tabs--block":r},t)},i.map((e=>{let{value:t,label:r,attributes:l}=e;return n.createElement("li",(0,a.Z)({role:"tab",tabIndex:u===t?0:-1,"aria-selected":u===t,key:t,ref:e=>s.push(e),onKeyDown:p,onClick:m},l,{className:(0,o.Z)("tabs__item",h,l?.className,{"tabs__item--active":u===t})}),r??t)})))}function k(e){let{lazy:t,children:r,selectedValue:a}=e;const o=(Array.isArray(r)?r:[r]).filter(Boolean);if(t){const e=o.find((e=>e.props.value===a));return e?(0,n.cloneElement)(e,{className:"margin-top--md"}):null}return n.createElement("div",{className:"margin-top--md"},o.map(((e,t)=>(0,n.cloneElement)(e,{key:t,hidden:e.props.value!==a}))))}function C(e){const t=b(e);return n.createElement("div",{className:(0,o.Z)("tabs-container",v)},n.createElement(g,(0,a.Z)({},e,t)),n.createElement(k,(0,a.Z)({},e,t)))}function w(e){const t=(0,y.Z)();return n.createElement(C,(0,a.Z)({key:String(t)},e))}},3554:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>c,default:()=>p,frontMatter:()=>u,metadata:()=>i,toc:()=>d});var a=r(7462),n=(r(7294),r(3905)),o=r(4866),l=r(5162);const u={},c="Claudecode",i={unversionedId:"extras/ai/claudecode",id:"extras/ai/claudecode",title:"Claudecode",description:"You can enable the extra with the :LazyExtras command.",source:"@site/docs/extras/ai/claudecode.md",sourceDirName:"extras/ai",slug:"/extras/ai/claudecode",permalink:"/extras/ai/claudecode",draft:!1,editUrl:"https://github.com/LazyVim/lazyvim.github.io/tree/main/docs/extras/ai/claudecode.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Avante",permalink:"/extras/ai/avante"},next:{title:"Codeium",permalink:"/extras/ai/codeium"}},s={},d=[{value:"claudecode.nvim",id:"claudecodenvim",level:2}],m={toc:d};function p(e){let{components:t,...r}=e;return(0,n.kt)("wrapper",(0,a.Z)({},m,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h1",{id:"claudecode"},(0,n.kt)("inlineCode",{parentName:"h1"},"Claudecode")),(0,n.kt)("admonition",{type:"info"},(0,n.kt)("p",{parentName:"admonition"},"You can enable the extra with the ",(0,n.kt)("inlineCode",{parentName:"p"},":LazyExtras")," command.\nPlugins marked as optional will only be configured if they are installed.")),(0,n.kt)("p",null,"Below you can find a list of included plugins and their default settings."),(0,n.kt)("admonition",{type:"caution"},(0,n.kt)("p",{parentName:"admonition"},"You don't need to copy the default settings to your config.\nThey are only shown here for reference.")),(0,n.kt)("h2",{id:"claudecodenvim"},(0,n.kt)("a",{parentName:"h2",href:"https://github.com/coder/claudecode.nvim"},"claudecode.nvim")),(0,n.kt)(o.Z,{mdxType:"Tabs"},(0,n.kt)(l.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-lua"},"opts = {}\n"))),(0,n.kt)(l.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "coder/claudecode.nvim",\n opts = {},\n keys = {\n { "<leader>a", "", desc = "+ai", mode = { "n", "v" } },\n { "<leader>ac", "<cmd>ClaudeCode<cr>", desc = "Toggle Claude" },\n { "<leader>af", "<cmd>ClaudeCodeFocus<cr>", desc = "Focus Claude" },\n { "<leader>ar", "<cmd>ClaudeCode --resume<cr>", desc = "Resume Claude" },\n { "<leader>aC", "<cmd>ClaudeCode --continue<cr>", desc = "Continue Claude" },\n { "<leader>ab", "<cmd>ClaudeCodeAdd %<cr>", desc = "Add current buffer" },\n { "<leader>as", "<cmd>ClaudeCodeSend<cr>", mode = "v", desc = "Send to Claude" },\n {\n "<leader>as",\n "<cmd>ClaudeCodeTreeAdd<cr>",\n desc = "Add file",\n ft = { "NvimTree", "neo-tree", "oil" },\n },\n -- Diff management\n { "<leader>aa", "<cmd>ClaudeCodeDiffAccept<cr>", desc = "Accept diff" },\n { "<leader>ad", "<cmd>ClaudeCodeDiffDeny<cr>", desc = "Deny diff" },\n },\n}\n')))))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/1ebe7096.117d6be1.js b/assets/js/1ebe7096.117d6be1.js new file mode 100644 index 0000000000..4829554a4c --- /dev/null +++ b/assets/js/1ebe7096.117d6be1.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklazyvim=self.webpackChunklazyvim||[]).push([[1740],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>b});var a=n(7294);function l(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function o(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?r(Object(n),!0).forEach((function(t){l(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):r(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function s(e,t){if(null==e)return{};var n,a,l=function(e,t){if(null==e)return{};var n,a,l={},r=Object.keys(e);for(a=0;a<r.length;a++)n=r[a],t.indexOf(n)>=0||(l[n]=e[n]);return l}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a<r.length;a++)n=r[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(l[n]=e[n])}return l}var i=a.createContext({}),u=function(e){var t=a.useContext(i),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},p=function(e){var t=u(e.components);return a.createElement(i.Provider,{value:t},e.children)},c="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},d=a.forwardRef((function(e,t){var n=e.components,l=e.mdxType,r=e.originalType,i=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),c=u(n),d=l,b=c["".concat(i,".").concat(d)]||c[d]||m[d]||r;return n?a.createElement(b,o(o({ref:t},p),{},{components:n})):a.createElement(b,o({ref:t},p))}));function b(e,t){var n=arguments,l=t&&t.mdxType;if("string"==typeof e||l){var r=n.length,o=new Array(r);o[0]=d;var s={};for(var i in t)hasOwnProperty.call(t,i)&&(s[i]=t[i]);s.originalType=e,s[c]="string"==typeof e?e:l,o[1]=s;for(var u=2;u<r;u++)o[u]=n[u];return a.createElement.apply(null,o)}return a.createElement.apply(null,n)}d.displayName="MDXCreateElement"},5162:(e,t,n)=>{n.d(t,{Z:()=>o});var a=n(7294),l=n(6010);const r="tabItem_Ymn6";function o(e){let{children:t,hidden:n,className:o}=e;return a.createElement("div",{role:"tabpanel",className:(0,l.Z)(r,o),hidden:n},t)}},4866:(e,t,n)=>{n.d(t,{Z:()=>T});var a=n(7462),l=n(7294),r=n(6010),o=n(2466),s=n(6550),i=n(1980),u=n(7392),p=n(12);function c(e){return function(e){return l.Children.map(e,(e=>{if(!e||(0,l.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:t,label:n,attributes:a,default:l}}=e;return{value:t,label:n,attributes:a,default:l}}))}function m(e){const{values:t,children:n}=e;return(0,l.useMemo)((()=>{const e=t??c(n);return function(e){const t=(0,u.l)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[t,n])}function d(e){let{value:t,tabValues:n}=e;return n.some((e=>e.value===t))}function b(e){let{queryString:t=!1,groupId:n}=e;const a=(0,s.k6)(),r=function(e){let{queryString:t=!1,groupId:n}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!n)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return n??null}({queryString:t,groupId:n});return[(0,i._X)(r),(0,l.useCallback)((e=>{if(!r)return;const t=new URLSearchParams(a.location.search);t.set(r,e),a.replace({...a.location,search:t.toString()})}),[r,a])]}function f(e){const{defaultValue:t,queryString:n=!1,groupId:a}=e,r=m(e),[o,s]=(0,l.useState)((()=>function(e){let{defaultValue:t,tabValues:n}=e;if(0===n.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(t){if(!d({value:t,tabValues:n}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${n.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const a=n.find((e=>e.default))??n[0];if(!a)throw new Error("Unexpected error: 0 tabValues");return a.value}({defaultValue:t,tabValues:r}))),[i,u]=b({queryString:n,groupId:a}),[c,f]=function(e){let{groupId:t}=e;const n=function(e){return e?`docusaurus.tab.${e}`:null}(t),[a,r]=(0,p.Nk)(n);return[a,(0,l.useCallback)((e=>{n&&r.set(e)}),[n,r])]}({groupId:a}),h=(()=>{const e=i??c;return d({value:e,tabValues:r})?e:null})();(0,l.useLayoutEffect)((()=>{h&&s(h)}),[h]);return{selectedValue:o,selectValue:(0,l.useCallback)((e=>{if(!d({value:e,tabValues:r}))throw new Error(`Can't select invalid tab value=${e}`);s(e),u(e),f(e)}),[u,f,r]),tabValues:r}}var h=n(2389);const k="tabList__CuJ",y="tabItem_LNqP";function g(e){let{className:t,block:n,selectedValue:s,selectValue:i,tabValues:u}=e;const p=[],{blockElementScrollPositionUntilNextRender:c}=(0,o.o5)(),m=e=>{const t=e.currentTarget,n=p.indexOf(t),a=u[n].value;a!==s&&(c(t),i(a))},d=e=>{let t=null;switch(e.key){case"Enter":m(e);break;case"ArrowRight":{const n=p.indexOf(e.currentTarget)+1;t=p[n]??p[0];break}case"ArrowLeft":{const n=p.indexOf(e.currentTarget)-1;t=p[n]??p[p.length-1];break}}t?.focus()};return l.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,r.Z)("tabs",{"tabs--block":n},t)},u.map((e=>{let{value:t,label:n,attributes:o}=e;return l.createElement("li",(0,a.Z)({role:"tab",tabIndex:s===t?0:-1,"aria-selected":s===t,key:t,ref:e=>p.push(e),onKeyDown:d,onClick:m},o,{className:(0,r.Z)("tabs__item",y,o?.className,{"tabs__item--active":s===t})}),n??t)})))}function v(e){let{lazy:t,children:n,selectedValue:a}=e;const r=(Array.isArray(n)?n:[n]).filter(Boolean);if(t){const e=r.find((e=>e.props.value===a));return e?(0,l.cloneElement)(e,{className:"margin-top--md"}):null}return l.createElement("div",{className:"margin-top--md"},r.map(((e,t)=>(0,l.cloneElement)(e,{key:t,hidden:e.props.value!==a}))))}function x(e){const t=f(e);return l.createElement("div",{className:(0,r.Z)("tabs-container",k)},l.createElement(g,(0,a.Z)({},e,t)),l.createElement(v,(0,a.Z)({},e,t)))}function T(e){const t=(0,h.Z)();return l.createElement(x,(0,a.Z)({key:String(t)},e))}},6853:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>d,frontMatter:()=>s,metadata:()=>u,toc:()=>c});var a=n(7462),l=(n(7294),n(3905)),r=n(4866),o=n(5162);const s={},i="Julia",u={unversionedId:"extras/lang/julia",id:"extras/lang/julia",title:"Julia",description:"You can enable the extra with the :LazyExtras command.",source:"@site/docs/extras/lang/julia.md",sourceDirName:"extras/lang",slug:"/extras/lang/julia",permalink:"/extras/lang/julia",draft:!1,editUrl:"https://github.com/LazyVim/lazyvim.github.io/tree/main/docs/extras/lang/julia.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"JSON",permalink:"/extras/lang/json"},next:{title:"Kotlin",permalink:"/extras/lang/kotlin"}},p={},c=[{value:"nvim-treesitter",id:"nvim-treesitter",level:2},{value:"nvim-lspconfig",id:"nvim-lspconfig",level:2},{value:"cmp-latex-symbols",id:"cmp-latex-symbols",level:2},{value:"cmp-latex-symbols",id:"cmp-latex-symbols-1",level:2},{value:"blink.compat",id:"blinkcompat",level:2},{value:"nvim-cmp <em>(optional)</em>",id:"nvim-cmp-optional",level:2},{value:"blink.cmp <em>(optional)</em>",id:"blinkcmp-optional",level:2}],m={toc:c};function d(e){let{components:t,...n}=e;return(0,l.kt)("wrapper",(0,a.Z)({},m,n,{components:t,mdxType:"MDXLayout"}),(0,l.kt)("h1",{id:"julia"},(0,l.kt)("inlineCode",{parentName:"h1"},"Julia")),(0,l.kt)("admonition",{type:"info"},(0,l.kt)("p",{parentName:"admonition"},"You can enable the extra with the ",(0,l.kt)("inlineCode",{parentName:"p"},":LazyExtras")," command.\nPlugins marked as optional will only be configured if they are installed.")),(0,l.kt)("p",null,"Below you can find a list of included plugins and their default settings."),(0,l.kt)("admonition",{type:"caution"},(0,l.kt)("p",{parentName:"admonition"},"You don't need to copy the default settings to your config.\nThey are only shown here for reference.")),(0,l.kt)("h2",{id:"nvim-treesitter"},(0,l.kt)("a",{parentName:"h2",href:"https://github.com/nvim-treesitter/nvim-treesitter"},"nvim-treesitter")),(0,l.kt)(r.Z,{mdxType:"Tabs"},(0,l.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-lua"},'opts = { ensure_installed = { "julia" } }\n'))),(0,l.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "nvim-treesitter/nvim-treesitter",\n opts = { ensure_installed = { "julia" } },\n}\n')))),(0,l.kt)("h2",{id:"nvim-lspconfig"},(0,l.kt)("a",{parentName:"h2",href:"https://github.com/neovim/nvim-lspconfig"},"nvim-lspconfig")),(0,l.kt)(r.Z,{mdxType:"Tabs"},(0,l.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-lua"},'opts = {\n servers = {\n julials = {\n settings = {\n -- use the same default settings as the Julia VS Code extension\n julia = {\n completionmode = "qualify",\n lint = { missingrefs = "none" },\n },\n },\n },\n },\n}\n'))),(0,l.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "neovim/nvim-lspconfig",\n opts = {\n servers = {\n julials = {\n settings = {\n -- use the same default settings as the Julia VS Code extension\n julia = {\n completionmode = "qualify",\n lint = { missingrefs = "none" },\n },\n },\n },\n },\n },\n}\n')))),(0,l.kt)("h2",{id:"cmp-latex-symbols"},(0,l.kt)("a",{parentName:"h2",href:"https://github.com/kdheepak/cmp-latex-symbols"},"cmp-latex-symbols")),(0,l.kt)(r.Z,{mdxType:"Tabs"},(0,l.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-lua"},"opts = nil\n"))),(0,l.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-lua"},'{ "kdheepak/cmp-latex-symbols" }\n')))),(0,l.kt)("h2",{id:"cmp-latex-symbols-1"},(0,l.kt)("a",{parentName:"h2",href:"https://github.com/kdheepak/cmp-latex-symbols"},"cmp-latex-symbols")),(0,l.kt)(r.Z,{mdxType:"Tabs"},(0,l.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-lua"},"opts = nil\n"))),(0,l.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-lua"},'{ "kdheepak/cmp-latex-symbols", "saghen/blink.compat" }\n')))),(0,l.kt)("h2",{id:"blinkcompat"},(0,l.kt)("a",{parentName:"h2",href:"https://github.com/saghen/blink.compat"},"blink.compat")),(0,l.kt)(r.Z,{mdxType:"Tabs"},(0,l.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-lua"},"opts = nil\n"))),(0,l.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-lua"},'"saghen/blink.compat"\n')))),(0,l.kt)("h2",{id:"nvim-cmp-optional"},(0,l.kt)("a",{parentName:"h2",href:"https://github.com/hrsh7th/nvim-cmp"},"nvim-cmp")," ",(0,l.kt)("em",{parentName:"h2"},"(optional)")),(0,l.kt)("p",null," cmp integration"),(0,l.kt)(r.Z,{mdxType:"Tabs"},(0,l.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-lua"},'opts = function(_, opts)\n table.insert(opts.sources, {\n name = "latex_symbols",\n option = {\n strategy = 0, -- mixed\n },\n })\nend\n'))),(0,l.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "hrsh7th/nvim-cmp",\n optional = true,\n dependencies = { "kdheepak/cmp-latex-symbols" },\n opts = function(_, opts)\n table.insert(opts.sources, {\n name = "latex_symbols",\n option = {\n strategy = 0, -- mixed\n },\n })\n end,\n}\n')))),(0,l.kt)("h2",{id:"blinkcmp-optional"},(0,l.kt)("a",{parentName:"h2",href:"https://github.com/saghen/blink.cmp"},"blink.cmp")," ",(0,l.kt)("em",{parentName:"h2"},"(optional)")),(0,l.kt)("p",null," blink.cmp integration"),(0,l.kt)(r.Z,{mdxType:"Tabs"},(0,l.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-lua"},'opts = {\n sources = {\n compat = { "latex_symbols" },\n providers = {\n latex_symbols = {\n kind = "LatexSymbols",\n async = true,\n opts = {\n strategy = 0, -- mixed\n },\n },\n },\n },\n}\n'))),(0,l.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "saghen/blink.cmp",\n optional = true,\n dependencies = { "kdheepak/cmp-latex-symbols", "saghen/blink.compat" },\n opts = {\n sources = {\n compat = { "latex_symbols" },\n providers = {\n latex_symbols = {\n kind = "LatexSymbols",\n async = true,\n opts = {\n strategy = 0, -- mixed\n },\n },\n },\n },\n },\n}\n')))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/203eebe1.a0ca28dc.js b/assets/js/203eebe1.a0ca28dc.js new file mode 100644 index 0000000000..0146b6a23c --- /dev/null +++ b/assets/js/203eebe1.a0ca28dc.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklazyvim=self.webpackChunklazyvim||[]).push([[3363],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>f});var n=r(7294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?l(Object(r),!0).forEach((function(t){a(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):l(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function c(e,t){if(null==e)return{};var r,n,a=function(e,t){if(null==e)return{};var r,n,a={},l=Object.keys(e);for(n=0;n<l.length;n++)r=l[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(n=0;n<l.length;n++)r=l[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var i=n.createContext({}),s=function(e){var t=n.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},u=function(e){var t=s(e.components);return n.createElement(i.Provider,{value:t},e.children)},d="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,l=e.originalType,i=e.parentName,u=c(e,["components","mdxType","originalType","parentName"]),d=s(r),m=a,f=d["".concat(i,".").concat(m)]||d[m]||p[m]||l;return r?n.createElement(f,o(o({ref:t},u),{},{components:r})):n.createElement(f,o({ref:t},u))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var l=r.length,o=new Array(l);o[0]=m;var c={};for(var i in t)hasOwnProperty.call(t,i)&&(c[i]=t[i]);c.originalType=e,c[d]="string"==typeof e?e:a,o[1]=c;for(var s=2;s<l;s++)o[s]=r[s];return n.createElement.apply(null,o)}return n.createElement.apply(null,r)}m.displayName="MDXCreateElement"},5162:(e,t,r)=>{r.d(t,{Z:()=>o});var n=r(7294),a=r(6010);const l="tabItem_Ymn6";function o(e){let{children:t,hidden:r,className:o}=e;return n.createElement("div",{role:"tabpanel",className:(0,a.Z)(l,o),hidden:r},t)}},4866:(e,t,r)=>{r.d(t,{Z:()=>w});var n=r(7462),a=r(7294),l=r(6010),o=r(2466),c=r(6550),i=r(1980),s=r(7392),u=r(12);function d(e){return function(e){return a.Children.map(e,(e=>{if(!e||(0,a.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:t,label:r,attributes:n,default:a}}=e;return{value:t,label:r,attributes:n,default:a}}))}function p(e){const{values:t,children:r}=e;return(0,a.useMemo)((()=>{const e=t??d(r);return function(e){const t=(0,s.l)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[t,r])}function m(e){let{value:t,tabValues:r}=e;return r.some((e=>e.value===t))}function f(e){let{queryString:t=!1,groupId:r}=e;const n=(0,c.k6)(),l=function(e){let{queryString:t=!1,groupId:r}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!r)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return r??null}({queryString:t,groupId:r});return[(0,i._X)(l),(0,a.useCallback)((e=>{if(!l)return;const t=new URLSearchParams(n.location.search);t.set(l,e),n.replace({...n.location,search:t.toString()})}),[l,n])]}function h(e){const{defaultValue:t,queryString:r=!1,groupId:n}=e,l=p(e),[o,c]=(0,a.useState)((()=>function(e){let{defaultValue:t,tabValues:r}=e;if(0===r.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(t){if(!m({value:t,tabValues:r}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${r.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const n=r.find((e=>e.default))??r[0];if(!n)throw new Error("Unexpected error: 0 tabValues");return n.value}({defaultValue:t,tabValues:l}))),[i,s]=f({queryString:r,groupId:n}),[d,h]=function(e){let{groupId:t}=e;const r=function(e){return e?`docusaurus.tab.${e}`:null}(t),[n,l]=(0,u.Nk)(r);return[n,(0,a.useCallback)((e=>{r&&l.set(e)}),[r,l])]}({groupId:n}),b=(()=>{const e=i??d;return m({value:e,tabValues:l})?e:null})();(0,a.useLayoutEffect)((()=>{b&&c(b)}),[b]);return{selectedValue:o,selectValue:(0,a.useCallback)((e=>{if(!m({value:e,tabValues:l}))throw new Error(`Can't select invalid tab value=${e}`);c(e),s(e),h(e)}),[s,h,l]),tabValues:l}}var b=r(2389);const g="tabList__CuJ",v="tabItem_LNqP";function y(e){let{className:t,block:r,selectedValue:c,selectValue:i,tabValues:s}=e;const u=[],{blockElementScrollPositionUntilNextRender:d}=(0,o.o5)(),p=e=>{const t=e.currentTarget,r=u.indexOf(t),n=s[r].value;n!==c&&(d(t),i(n))},m=e=>{let t=null;switch(e.key){case"Enter":p(e);break;case"ArrowRight":{const r=u.indexOf(e.currentTarget)+1;t=u[r]??u[0];break}case"ArrowLeft":{const r=u.indexOf(e.currentTarget)-1;t=u[r]??u[u.length-1];break}}t?.focus()};return a.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,l.Z)("tabs",{"tabs--block":r},t)},s.map((e=>{let{value:t,label:r,attributes:o}=e;return a.createElement("li",(0,n.Z)({role:"tab",tabIndex:c===t?0:-1,"aria-selected":c===t,key:t,ref:e=>u.push(e),onKeyDown:m,onClick:p},o,{className:(0,l.Z)("tabs__item",v,o?.className,{"tabs__item--active":c===t})}),r??t)})))}function G(e){let{lazy:t,children:r,selectedValue:n}=e;const l=(Array.isArray(r)?r:[r]).filter(Boolean);if(t){const e=l.find((e=>e.props.value===n));return e?(0,a.cloneElement)(e,{className:"margin-top--md"}):null}return a.createElement("div",{className:"margin-top--md"},l.map(((e,t)=>(0,a.cloneElement)(e,{key:t,hidden:e.props.value!==n}))))}function k(e){const t=h(e);return a.createElement("div",{className:(0,l.Z)("tabs-container",g)},a.createElement(y,(0,n.Z)({},e,t)),a.createElement(G,(0,n.Z)({},e,t)))}function w(e){const t=(0,b.Z)();return a.createElement(k,(0,n.Z)({key:String(t)},e))}},2939:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>i,default:()=>m,frontMatter:()=>c,metadata:()=>s,toc:()=>d});var n=r(7462),a=(r(7294),r(3905)),l=r(4866),o=r(5162);const c={},i="Gh",s={unversionedId:"extras/util/gh",id:"extras/util/gh",title:"Gh",description:"You can enable the extra with the :LazyExtras command.",source:"@site/docs/extras/util/gh.md",sourceDirName:"extras/util",slug:"/extras/util/gh",permalink:"/extras/util/gh",draft:!1,editUrl:"https://github.com/LazyVim/lazyvim.github.io/tree/main/docs/extras/util/gh.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Dot Files",permalink:"/extras/util/dot"},next:{title:"Gitui",permalink:"/extras/util/gitui"}},u={},d=[{value:"Includes the following extras",id:"includes-the-following-extras",level:3},{value:"litee.nvim",id:"liteenvim",level:2},{value:"gh.nvim",id:"ghnvim",level:2}],p={toc:d};function m(e){let{components:t,...r}=e;return(0,a.kt)("wrapper",(0,n.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"gh"},(0,a.kt)("inlineCode",{parentName:"h1"},"Gh")),(0,a.kt)("admonition",{type:"info"},(0,a.kt)("p",{parentName:"admonition"},"You can enable the extra with the ",(0,a.kt)("inlineCode",{parentName:"p"},":LazyExtras")," command.\nPlugins marked as optional will only be configured if they are installed.")),(0,a.kt)("p",null,"Below you can find a list of included plugins and their default settings."),(0,a.kt)("admonition",{type:"caution"},(0,a.kt)("p",{parentName:"admonition"},"You don't need to copy the default settings to your config.\nThey are only shown here for reference.")),(0,a.kt)("h3",{id:"includes-the-following-extras"},"Includes the following extras"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"/extras/lang/git"},"lang.git"))),(0,a.kt)("h2",{id:"liteenvim"},(0,a.kt)("a",{parentName:"h2",href:"https://github.com/ldelossa/litee.nvim"},"litee.nvim")),(0,a.kt)(l.Z,{mdxType:"Tabs"},(0,a.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},"opts = nil\n"))),(0,a.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'{ "ldelossa/litee.nvim", lazy = true }\n')))),(0,a.kt)("h2",{id:"ghnvim"},(0,a.kt)("a",{parentName:"h2",href:"https://github.com/ldelossa/gh.nvim"},"gh.nvim")),(0,a.kt)("p",null," gh.nvim"),(0,a.kt)(l.Z,{mdxType:"Tabs"},(0,a.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},"opts = {}\n"))),(0,a.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "ldelossa/gh.nvim",\n opts = {},\n config = function(_, opts)\n require("litee.lib").setup()\n require("litee.gh").setup(opts)\n end,\n keys = {\n { "<leader>G", "", desc = "+Github" },\n { "<leader>Gc", "", desc = "+Commits" },\n { "<leader>Gcc", "<cmd>GHCloseCommit<cr>", desc = "Close" },\n { "<leader>Gce", "<cmd>GHExpandCommit<cr>", desc = "Expand" },\n { "<leader>Gco", "<cmd>GHOpenToCommit<cr>", desc = "Open To" },\n { "<leader>Gcp", "<cmd>GHPopOutCommit<cr>", desc = "Pop Out" },\n { "<leader>Gcz", "<cmd>GHCollapseCommit<cr>", desc = "Collapse" },\n { "<leader>Gi", "", desc = "+Issues" },\n { "<leader>Gip", "<cmd>GHPreviewIssue<cr>", desc = "Preview" },\n { "<leader>Gio", "<cmd>GHOpenIssue<cr>", desc = "Open" },\n { "<leader>Gl", "", desc = "+Litee" },\n { "<leader>Glt", "<cmd>LTPanel<cr>", desc = "Toggle Panel" },\n { "<leader>Gp", "", desc = "+Pull Request" },\n { "<leader>Gpc", "<cmd>GHClosePR<cr>", desc = "Close" },\n { "<leader>Gpd", "<cmd>GHPRDetails<cr>", desc = "Details" },\n { "<leader>Gpe", "<cmd>GHExpandPR<cr>", desc = "Expand" },\n { "<leader>Gpo", "<cmd>GHOpenPR<cr>", desc = "Open" },\n { "<leader>Gpp", "<cmd>GHPopOutPR<cr>", desc = "PopOut" },\n { "<leader>Gpr", "<cmd>GHRefreshPR<cr>", desc = "Refresh" },\n { "<leader>Gpt", "<cmd>GHOpenToPR<cr>", desc = "Open To" },\n { "<leader>Gpz", "<cmd>GHCollapsePR<cr>", desc = "Collapse" },\n { "<leader>Gr", "", desc = "+Review" },\n { "<leader>Grb", "<cmd>GHStartReview<cr>", desc = "Begin" },\n { "<leader>Grc", "<cmd>GHCloseReview<cr>", desc = "Close" },\n { "<leader>Grd", "<cmd>GHDeleteReview<cr>", desc = "Delete" },\n { "<leader>Gre", "<cmd>GHExpandReview<cr>", desc = "Expand" },\n { "<leader>Grs", "<cmd>GHSubmitReview<cr>", desc = "Submit" },\n { "<leader>Grz", "<cmd>GHCollapseReview<cr>", desc = "Collapse" },\n { "<leader>Gt", "", desc = "+Threads" },\n { "<leader>Gtc", "<cmd>GHCreateThread<cr>", desc = "Create" },\n { "<leader>Gtn", "<cmd>GHNextThread<cr>", desc = "Next" },\n { "<leader>Gtt", "<cmd>GHToggleThread<cr>", desc = "Toggle" },\n },\n}\n')))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/269621ab.6b05e30e.js b/assets/js/269621ab.6b05e30e.js new file mode 100644 index 0000000000..4b0d1588b8 --- /dev/null +++ b/assets/js/269621ab.6b05e30e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklazyvim=self.webpackChunklazyvim||[]).push([[768],{3905:(e,n,t)=>{t.d(n,{Zo:()=>u,kt:()=>h});var a=t(7294);function r(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function o(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,a)}return t}function i(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?o(Object(t),!0).forEach((function(n){r(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):o(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function l(e,n){if(null==e)return{};var t,a,r=function(e,n){if(null==e)return{};var t,a,r={},o=Object.keys(e);for(a=0;a<o.length;a++)t=o[a],n.indexOf(t)>=0||(r[t]=e[t]);return r}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)t=o[a],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(r[t]=e[t])}return r}var c=a.createContext({}),s=function(e){var n=a.useContext(c),t=n;return e&&(t="function"==typeof e?e(n):i(i({},n),e)),t},u=function(e){var n=s(e.components);return a.createElement(c.Provider,{value:n},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var n=e.children;return a.createElement(a.Fragment,{},n)}},d=a.forwardRef((function(e,n){var t=e.components,r=e.mdxType,o=e.originalType,c=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),p=s(t),d=r,h=p["".concat(c,".").concat(d)]||p[d]||m[d]||o;return t?a.createElement(h,i(i({ref:n},u),{},{components:t})):a.createElement(h,i({ref:n},u))}));function h(e,n){var t=arguments,r=n&&n.mdxType;if("string"==typeof e||r){var o=t.length,i=new Array(o);i[0]=d;var l={};for(var c in n)hasOwnProperty.call(n,c)&&(l[c]=n[c]);l.originalType=e,l[p]="string"==typeof e?e:r,i[1]=l;for(var s=2;s<o;s++)i[s]=t[s];return a.createElement.apply(null,i)}return a.createElement.apply(null,t)}d.displayName="MDXCreateElement"},5162:(e,n,t)=>{t.d(n,{Z:()=>i});var a=t(7294),r=t(6010);const o="tabItem_Ymn6";function i(e){let{children:n,hidden:t,className:i}=e;return a.createElement("div",{role:"tabpanel",className:(0,r.Z)(o,i),hidden:t},n)}},4866:(e,n,t)=>{t.d(n,{Z:()=>x});var a=t(7462),r=t(7294),o=t(6010),i=t(2466),l=t(6550),c=t(1980),s=t(7392),u=t(12);function p(e){return function(e){return r.Children.map(e,(e=>{if(!e||(0,r.isValidElement)(e)&&function(e){const{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:n,label:t,attributes:a,default:r}}=e;return{value:n,label:t,attributes:a,default:r}}))}function m(e){const{values:n,children:t}=e;return(0,r.useMemo)((()=>{const e=n??p(t);return function(e){const n=(0,s.l)(e,((e,n)=>e.value===n.value));if(n.length>0)throw new Error(`Docusaurus error: Duplicate values "${n.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[n,t])}function d(e){let{value:n,tabValues:t}=e;return t.some((e=>e.value===n))}function h(e){let{queryString:n=!1,groupId:t}=e;const a=(0,l.k6)(),o=function(e){let{queryString:n=!1,groupId:t}=e;if("string"==typeof n)return n;if(!1===n)return null;if(!0===n&&!t)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return t??null}({queryString:n,groupId:t});return[(0,c._X)(o),(0,r.useCallback)((e=>{if(!o)return;const n=new URLSearchParams(a.location.search);n.set(o,e),a.replace({...a.location,search:n.toString()})}),[o,a])]}function f(e){const{defaultValue:n,queryString:t=!1,groupId:a}=e,o=m(e),[i,l]=(0,r.useState)((()=>function(e){let{defaultValue:n,tabValues:t}=e;if(0===t.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(n){if(!d({value:n,tabValues:t}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${n}" but none of its children has the corresponding value. Available values are: ${t.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return n}const a=t.find((e=>e.default))??t[0];if(!a)throw new Error("Unexpected error: 0 tabValues");return a.value}({defaultValue:n,tabValues:o}))),[c,s]=h({queryString:t,groupId:a}),[p,f]=function(e){let{groupId:n}=e;const t=function(e){return e?`docusaurus.tab.${e}`:null}(n),[a,o]=(0,u.Nk)(t);return[a,(0,r.useCallback)((e=>{t&&o.set(e)}),[t,o])]}({groupId:a}),y=(()=>{const e=c??p;return d({value:e,tabValues:o})?e:null})();(0,r.useLayoutEffect)((()=>{y&&l(y)}),[y]);return{selectedValue:i,selectValue:(0,r.useCallback)((e=>{if(!d({value:e,tabValues:o}))throw new Error(`Can't select invalid tab value=${e}`);l(e),s(e),f(e)}),[s,f,o]),tabValues:o}}var y=t(2389);const b="tabList__CuJ",v="tabItem_LNqP";function g(e){let{className:n,block:t,selectedValue:l,selectValue:c,tabValues:s}=e;const u=[],{blockElementScrollPositionUntilNextRender:p}=(0,i.o5)(),m=e=>{const n=e.currentTarget,t=u.indexOf(n),a=s[t].value;a!==l&&(p(n),c(a))},d=e=>{let n=null;switch(e.key){case"Enter":m(e);break;case"ArrowRight":{const t=u.indexOf(e.currentTarget)+1;n=u[t]??u[0];break}case"ArrowLeft":{const t=u.indexOf(e.currentTarget)-1;n=u[t]??u[u.length-1];break}}n?.focus()};return r.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,o.Z)("tabs",{"tabs--block":t},n)},s.map((e=>{let{value:n,label:t,attributes:i}=e;return r.createElement("li",(0,a.Z)({role:"tab",tabIndex:l===n?0:-1,"aria-selected":l===n,key:n,ref:e=>u.push(e),onKeyDown:d,onClick:m},i,{className:(0,o.Z)("tabs__item",v,i?.className,{"tabs__item--active":l===n})}),t??n)})))}function k(e){let{lazy:n,children:t,selectedValue:a}=e;const o=(Array.isArray(t)?t:[t]).filter(Boolean);if(n){const e=o.find((e=>e.props.value===a));return e?(0,r.cloneElement)(e,{className:"margin-top--md"}):null}return r.createElement("div",{className:"margin-top--md"},o.map(((e,n)=>(0,r.cloneElement)(e,{key:n,hidden:e.props.value!==a}))))}function z(e){const n=f(e);return r.createElement("div",{className:(0,o.Z)("tabs-container",b)},r.createElement(g,(0,a.Z)({},e,n)),r.createElement(k,(0,a.Z)({},e,n)))}function x(e){const n=(0,y.Z)();return r.createElement(z,(0,a.Z)({key:String(n)},e))}},9890:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>u,contentTitle:()=>c,default:()=>d,frontMatter:()=>l,metadata:()=>s,toc:()=>p});var a=t(7462),r=(t(7294),t(3905)),o=t(4866),i=t(5162);const l={},c="Chezmoi",s={unversionedId:"extras/util/chezmoi",id:"extras/util/chezmoi",title:"Chezmoi",description:"You can enable the extra with the :LazyExtras command.",source:"@site/docs/extras/util/chezmoi.md",sourceDirName:"extras/util",slug:"/extras/util/chezmoi",permalink:"/extras/util/chezmoi",draft:!1,editUrl:"https://github.com/LazyVim/lazyvim.github.io/tree/main/docs/extras/util/chezmoi.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Treesitter-context",permalink:"/extras/ui/treesitter-context"},next:{title:"Dot Files",permalink:"/extras/util/dot"}},u={},p=[{value:"chezmoi.vim",id:"chezmoivim",level:2},{value:"chezmoi.nvim",id:"chezmoinvim",level:2},{value:"mini.icons",id:"miniicons",level:2},{value:"dashboard-nvim <em>(optional)</em>",id:"dashboard-nvim-optional",level:2},{value:"snacks.nvim <em>(optional)</em>",id:"snacksnvim-optional",level:2}],m={toc:p};function d(e){let{components:n,...t}=e;return(0,r.kt)("wrapper",(0,a.Z)({},m,t,{components:n,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"chezmoi"},(0,r.kt)("inlineCode",{parentName:"h1"},"Chezmoi")),(0,r.kt)("admonition",{type:"info"},(0,r.kt)("p",{parentName:"admonition"},"You can enable the extra with the ",(0,r.kt)("inlineCode",{parentName:"p"},":LazyExtras")," command.\nPlugins marked as optional will only be configured if they are installed.")),(0,r.kt)("p",null,"Below you can find a list of included plugins and their default settings."),(0,r.kt)("admonition",{type:"caution"},(0,r.kt)("p",{parentName:"admonition"},"You don't need to copy the default settings to your config.\nThey are only shown here for reference.")),(0,r.kt)("h2",{id:"chezmoivim"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/alker0/chezmoi.vim"},"chezmoi.vim")),(0,r.kt)(o.Z,{mdxType:"Tabs"},(0,r.kt)(i.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},"opts = nil\n"))),(0,r.kt)(i.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n -- highlighting for chezmoi files template files\n "alker0/chezmoi.vim",\n init = function()\n vim.g["chezmoi#use_tmp_buffer"] = 1\n vim.g["chezmoi#source_dir_path"] = vim.env.HOME .. "/.local/share/chezmoi"\n end,\n}\n')))),(0,r.kt)("h2",{id:"chezmoinvim"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/xvzc/chezmoi.nvim"},"chezmoi.nvim")),(0,r.kt)(o.Z,{mdxType:"Tabs"},(0,r.kt)(i.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = {\n edit = {\n watch = false,\n force = false,\n },\n notification = {\n on_open = true,\n on_apply = true,\n on_watch = false,\n },\n telescope = {\n select = { "<CR>" },\n },\n}\n'))),(0,r.kt)(i.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "xvzc/chezmoi.nvim",\n cmd = { "ChezmoiEdit" },\n keys = {\n {\n "<leader>sz",\n pick_chezmoi,\n desc = "Chezmoi",\n },\n },\n opts = {\n edit = {\n watch = false,\n force = false,\n },\n notification = {\n on_open = true,\n on_apply = true,\n on_watch = false,\n },\n telescope = {\n select = { "<CR>" },\n },\n },\n init = function()\n -- run chezmoi edit on file enter\n vim.api.nvim_create_autocmd({ "BufRead", "BufNewFile" }, {\n pattern = { vim.env.HOME .. "/.local/share/chezmoi/*" },\n callback = function()\n vim.schedule(require("chezmoi.commands.__edit").watch)\n end,\n })\n end,\n}\n')))),(0,r.kt)("h2",{id:"miniicons"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/nvim-mini/mini.icons"},"mini.icons")),(0,r.kt)("p",null," Filetype icons"),(0,r.kt)(o.Z,{mdxType:"Tabs"},(0,r.kt)(i.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = {\n file = {\n [".chezmoiignore"] = { glyph = "\ue615", hl = "MiniIconsGrey" },\n [".chezmoiremove"] = { glyph = "\ue615", hl = "MiniIconsGrey" },\n [".chezmoiroot"] = { glyph = "\ue615", hl = "MiniIconsGrey" },\n [".chezmoiversion"] = { glyph = "\ue615", hl = "MiniIconsGrey" },\n ["bash.tmpl"] = { glyph = "\uebca", hl = "MiniIconsGrey" },\n ["json.tmpl"] = { glyph = "\ue60b", hl = "MiniIconsGrey" },\n ["ps1.tmpl"] = { glyph = "\udb82\ude0a", hl = "MiniIconsGrey" },\n ["sh.tmpl"] = { glyph = "\ue691", hl = "MiniIconsGrey" },\n ["toml.tmpl"] = { glyph = "\ue6b2", hl = "MiniIconsGrey" },\n ["yaml.tmpl"] = { glyph = "\ue6a8", hl = "MiniIconsGrey" },\n ["zsh.tmpl"] = { glyph = "\uebca", hl = "MiniIconsGrey" },\n },\n}\n'))),(0,r.kt)(i.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "nvim-mini/mini.icons",\n opts = {\n file = {\n [".chezmoiignore"] = { glyph = "\ue615", hl = "MiniIconsGrey" },\n [".chezmoiremove"] = { glyph = "\ue615", hl = "MiniIconsGrey" },\n [".chezmoiroot"] = { glyph = "\ue615", hl = "MiniIconsGrey" },\n [".chezmoiversion"] = { glyph = "\ue615", hl = "MiniIconsGrey" },\n ["bash.tmpl"] = { glyph = "\uebca", hl = "MiniIconsGrey" },\n ["json.tmpl"] = { glyph = "\ue60b", hl = "MiniIconsGrey" },\n ["ps1.tmpl"] = { glyph = "\udb82\ude0a", hl = "MiniIconsGrey" },\n ["sh.tmpl"] = { glyph = "\ue691", hl = "MiniIconsGrey" },\n ["toml.tmpl"] = { glyph = "\ue6b2", hl = "MiniIconsGrey" },\n ["yaml.tmpl"] = { glyph = "\ue6a8", hl = "MiniIconsGrey" },\n ["zsh.tmpl"] = { glyph = "\uebca", hl = "MiniIconsGrey" },\n },\n },\n}\n')))),(0,r.kt)("h2",{id:"dashboard-nvim-optional"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/nvimdev/dashboard-nvim"},"dashboard-nvim")," ",(0,r.kt)("em",{parentName:"h2"},"(optional)")),(0,r.kt)(o.Z,{mdxType:"Tabs"},(0,r.kt)(i.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = function(_, opts)\n local projects = {\n action = pick_chezmoi,\n desc = " Config",\n icon = "\ueaf8",\n key = "c",\n }\n\n projects.desc = projects.desc .. string.rep(" ", 43 - #projects.desc)\n projects.key_format = " %s"\n\n -- remove lazyvim config property\n for i = #opts.config.center, 1, -1 do\n if opts.config.center[i].key == "c" then\n table.remove(opts.config.center, i)\n end\n end\n\n table.insert(opts.config.center, 5, projects)\nend\n'))),(0,r.kt)(i.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "nvimdev/dashboard-nvim",\n optional = true,\n opts = function(_, opts)\n local projects = {\n action = pick_chezmoi,\n desc = " Config",\n icon = "\ueaf8",\n key = "c",\n }\n\n projects.desc = projects.desc .. string.rep(" ", 43 - #projects.desc)\n projects.key_format = " %s"\n\n -- remove lazyvim config property\n for i = #opts.config.center, 1, -1 do\n if opts.config.center[i].key == "c" then\n table.remove(opts.config.center, i)\n end\n end\n\n table.insert(opts.config.center, 5, projects)\n end,\n}\n')))),(0,r.kt)("h2",{id:"snacksnvim-optional"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/folke/snacks.nvim"},"snacks.nvim")," ",(0,r.kt)("em",{parentName:"h2"},"(optional)")),(0,r.kt)(o.Z,{mdxType:"Tabs"},(0,r.kt)(i.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = function(_, opts)\n local chezmoi_entry = {\n icon = "\uf423 ",\n key = "c",\n desc = "Config",\n action = pick_chezmoi,\n }\n local config_index\n for i = #opts.dashboard.preset.keys, 1, -1 do\n if opts.dashboard.preset.keys[i].key == "c" then\n table.remove(opts.dashboard.preset.keys, i)\n config_index = i\n break\n end\n end\n table.insert(opts.dashboard.preset.keys, config_index, chezmoi_entry)\nend\n'))),(0,r.kt)(i.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "folke/snacks.nvim",\n optional = true,\n opts = function(_, opts)\n local chezmoi_entry = {\n icon = "\uf423 ",\n key = "c",\n desc = "Config",\n action = pick_chezmoi,\n }\n local config_index\n for i = #opts.dashboard.preset.keys, 1, -1 do\n if opts.dashboard.preset.keys[i].key == "c" then\n table.remove(opts.dashboard.preset.keys, i)\n config_index = i\n break\n end\n end\n table.insert(opts.dashboard.preset.keys, config_index, chezmoi_entry)\n end,\n}\n')))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/2b0bb072.a3576d91.js b/assets/js/2b0bb072.a3576d91.js new file mode 100644 index 0000000000..7ae7ee6c5f --- /dev/null +++ b/assets/js/2b0bb072.a3576d91.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklazyvim=self.webpackChunklazyvim||[]).push([[7053],{3905:(e,t,n)=>{n.d(t,{Zo:()=>s,kt:()=>f});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function o(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?l(Object(n),!0).forEach((function(t){r(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):l(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function i(e,t){if(null==e)return{};var n,a,r=function(e,t){if(null==e)return{};var n,a,r={},l=Object.keys(e);for(a=0;a<l.length;a++)n=l[a],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a<l.length;a++)n=l[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var u=a.createContext({}),c=function(e){var t=a.useContext(u),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},s=function(e){var t=c(e.components);return a.createElement(u.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},d=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,l=e.originalType,u=e.parentName,s=i(e,["components","mdxType","originalType","parentName"]),p=c(n),d=r,f=p["".concat(u,".").concat(d)]||p[d]||m[d]||l;return n?a.createElement(f,o(o({ref:t},s),{},{components:n})):a.createElement(f,o({ref:t},s))}));function f(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var l=n.length,o=new Array(l);o[0]=d;var i={};for(var u in t)hasOwnProperty.call(t,u)&&(i[u]=t[u]);i.originalType=e,i[p]="string"==typeof e?e:r,o[1]=i;for(var c=2;c<l;c++)o[c]=n[c];return a.createElement.apply(null,o)}return a.createElement.apply(null,n)}d.displayName="MDXCreateElement"},5162:(e,t,n)=>{n.d(t,{Z:()=>o});var a=n(7294),r=n(6010);const l="tabItem_Ymn6";function o(e){let{children:t,hidden:n,className:o}=e;return a.createElement("div",{role:"tabpanel",className:(0,r.Z)(l,o),hidden:n},t)}},4866:(e,t,n)=>{n.d(t,{Z:()=>T});var a=n(7462),r=n(7294),l=n(6010),o=n(2466),i=n(6550),u=n(1980),c=n(7392),s=n(12);function p(e){return function(e){return r.Children.map(e,(e=>{if(!e||(0,r.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:t,label:n,attributes:a,default:r}}=e;return{value:t,label:n,attributes:a,default:r}}))}function m(e){const{values:t,children:n}=e;return(0,r.useMemo)((()=>{const e=t??p(n);return function(e){const t=(0,c.l)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[t,n])}function d(e){let{value:t,tabValues:n}=e;return n.some((e=>e.value===t))}function f(e){let{queryString:t=!1,groupId:n}=e;const a=(0,i.k6)(),l=function(e){let{queryString:t=!1,groupId:n}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!n)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return n??null}({queryString:t,groupId:n});return[(0,u._X)(l),(0,r.useCallback)((e=>{if(!l)return;const t=new URLSearchParams(a.location.search);t.set(l,e),a.replace({...a.location,search:t.toString()})}),[l,a])]}function b(e){const{defaultValue:t,queryString:n=!1,groupId:a}=e,l=m(e),[o,i]=(0,r.useState)((()=>function(e){let{defaultValue:t,tabValues:n}=e;if(0===n.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(t){if(!d({value:t,tabValues:n}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${n.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const a=n.find((e=>e.default))??n[0];if(!a)throw new Error("Unexpected error: 0 tabValues");return a.value}({defaultValue:t,tabValues:l}))),[u,c]=f({queryString:n,groupId:a}),[p,b]=function(e){let{groupId:t}=e;const n=function(e){return e?`docusaurus.tab.${e}`:null}(t),[a,l]=(0,s.Nk)(n);return[a,(0,r.useCallback)((e=>{n&&l.set(e)}),[n,l])]}({groupId:a}),v=(()=>{const e=u??p;return d({value:e,tabValues:l})?e:null})();(0,r.useLayoutEffect)((()=>{v&&i(v)}),[v]);return{selectedValue:o,selectValue:(0,r.useCallback)((e=>{if(!d({value:e,tabValues:l}))throw new Error(`Can't select invalid tab value=${e}`);i(e),c(e),b(e)}),[c,b,l]),tabValues:l}}var v=n(2389);const g="tabList__CuJ",h="tabItem_LNqP";function y(e){let{className:t,block:n,selectedValue:i,selectValue:u,tabValues:c}=e;const s=[],{blockElementScrollPositionUntilNextRender:p}=(0,o.o5)(),m=e=>{const t=e.currentTarget,n=s.indexOf(t),a=c[n].value;a!==i&&(p(t),u(a))},d=e=>{let t=null;switch(e.key){case"Enter":m(e);break;case"ArrowRight":{const n=s.indexOf(e.currentTarget)+1;t=s[n]??s[0];break}case"ArrowLeft":{const n=s.indexOf(e.currentTarget)-1;t=s[n]??s[s.length-1];break}}t?.focus()};return r.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,l.Z)("tabs",{"tabs--block":n},t)},c.map((e=>{let{value:t,label:n,attributes:o}=e;return r.createElement("li",(0,a.Z)({role:"tab",tabIndex:i===t?0:-1,"aria-selected":i===t,key:t,ref:e=>s.push(e),onKeyDown:d,onClick:m},o,{className:(0,l.Z)("tabs__item",h,o?.className,{"tabs__item--active":i===t})}),n??t)})))}function k(e){let{lazy:t,children:n,selectedValue:a}=e;const l=(Array.isArray(n)?n:[n]).filter(Boolean);if(t){const e=l.find((e=>e.props.value===a));return e?(0,r.cloneElement)(e,{className:"margin-top--md"}):null}return r.createElement("div",{className:"margin-top--md"},l.map(((e,t)=>(0,r.cloneElement)(e,{key:t,hidden:e.props.value!==a}))))}function j(e){const t=b(e);return r.createElement("div",{className:(0,l.Z)("tabs-container",g)},r.createElement(y,(0,a.Z)({},e,t)),r.createElement(k,(0,a.Z)({},e,t)))}function T(e){const t=(0,v.Z)();return r.createElement(j,(0,a.Z)({key:String(t)},e))}},4249:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>u,default:()=>d,frontMatter:()=>i,metadata:()=>c,toc:()=>p});var a=n(7462),r=(n(7294),n(3905)),l=n(4866),o=n(5162);const i={},u="Clojure",c={unversionedId:"extras/lang/clojure",id:"extras/lang/clojure",title:"Clojure",description:"You can enable the extra with the :LazyExtras command.",source:"@site/docs/extras/lang/clojure.md",sourceDirName:"extras/lang",slug:"/extras/lang/clojure",permalink:"/extras/lang/clojure",draft:!1,editUrl:"https://github.com/LazyVim/lazyvim.github.io/tree/main/docs/extras/lang/clojure.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Clangd",permalink:"/extras/lang/clangd"},next:{title:"CMake",permalink:"/extras/lang/cmake"}},s={},p=[{value:"nvim-treesitter",id:"nvim-treesitter",level:2},{value:"cmp-conjure",id:"cmp-conjure",level:2},{value:"nvim-paredit",id:"nvim-paredit",level:2},{value:"baleia.nvim",id:"baleianvim",level:2},{value:"conjure",id:"conjure",level:2},{value:"nvim-cmp <em>(optional)</em>",id:"nvim-cmp-optional",level:2}],m={toc:p};function d(e){let{components:t,...n}=e;return(0,r.kt)("wrapper",(0,a.Z)({},m,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"clojure"},(0,r.kt)("inlineCode",{parentName:"h1"},"Clojure")),(0,r.kt)("admonition",{type:"info"},(0,r.kt)("p",{parentName:"admonition"},"You can enable the extra with the ",(0,r.kt)("inlineCode",{parentName:"p"},":LazyExtras")," command.\nPlugins marked as optional will only be configured if they are installed.")),(0,r.kt)("p",null,"Below you can find a list of included plugins and their default settings."),(0,r.kt)("admonition",{type:"caution"},(0,r.kt)("p",{parentName:"admonition"},"You don't need to copy the default settings to your config.\nThey are only shown here for reference.")),(0,r.kt)("h2",{id:"nvim-treesitter"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/nvim-treesitter/nvim-treesitter"},"nvim-treesitter")),(0,r.kt)("p",null," Add Clojure & related to treesitter"),(0,r.kt)(l.Z,{mdxType:"Tabs"},(0,r.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = { ensure_installed = { "clojure" } }\n'))),(0,r.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "nvim-treesitter/nvim-treesitter",\n opts = { ensure_installed = { "clojure" } },\n}\n')))),(0,r.kt)("h2",{id:"cmp-conjure"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/PaterJason/cmp-conjure"},"cmp-conjure")),(0,r.kt)(l.Z,{mdxType:"Tabs"},(0,r.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},"opts = nil\n"))),(0,r.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "PaterJason/cmp-conjure",\n}\n')))),(0,r.kt)("h2",{id:"nvim-paredit"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/julienvincent/nvim-paredit"},"nvim-paredit")),(0,r.kt)("p",null," Add s-exp mappings"),(0,r.kt)(l.Z,{mdxType:"Tabs"},(0,r.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},"opts = {}\n"))),(0,r.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{ "julienvincent/nvim-paredit", opts = {}, event = "LazyFile" }\n')))),(0,r.kt)("h2",{id:"baleianvim"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/m00qek/baleia.nvim"},"baleia.nvim")),(0,r.kt)("p",null," Colorize the output of the log buffer"),(0,r.kt)(l.Z,{mdxType:"Tabs"},(0,r.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},"opts = {\n line_starts_at = 3,\n}\n"))),(0,r.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "m00qek/baleia.nvim",\n opts = {\n line_starts_at = 3,\n },\n config = function(_, opts)\n vim.g.conjure_baleia = require("baleia").setup(opts)\n\n vim.api.nvim_create_user_command("BaleiaColorize", function()\n vim.g.conjure_baleia.once(vim.api.nvim_get_current_buf())\n end, { bang = true })\n\n vim.api.nvim_create_user_command("BaleiaLogs", vim.g.conjure_baleia.logger.show, { bang = true })\n end,\n}\n')))),(0,r.kt)("h2",{id:"conjure"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/Olical/conjure"},"conjure")),(0,r.kt)("p",null," Use Clojure REPL"),(0,r.kt)(l.Z,{mdxType:"Tabs"},(0,r.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},"opts = {}\n"))),(0,r.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "Olical/conjure",\n event = "LazyFile",\n config = function(_, _)\n require("conjure.main").main()\n require("conjure.mapping")["on-filetype"]()\n end,\n init = function()\n -- print color codes if baleia.nvim is available\n local colorize = require("lazyvim.util").has("baleia.nvim")\n\n if colorize then\n vim.g["conjure#log#strip_ansi_escape_sequences_line_limit"] = 0\n else\n vim.g["conjure#log#strip_ansi_escape_sequences_line_limit"] = 1\n end\n\n -- disable diagnostics in log buffer and colorize it\n vim.api.nvim_create_autocmd({ "BufWinEnter" }, {\n pattern = "conjure-log-*",\n callback = function()\n local buffer = vim.api.nvim_get_current_buf()\n vim.diagnostic.enable(false, { bufnr = buffer })\n\n if colorize and vim.g.conjure_baleia then\n vim.g.conjure_baleia.automatically(buffer)\n end\n\n vim.keymap.set(\n { "n", "x" },\n "[c",\n "<CMD>call search(\'^; -\\\\+$\', \'bw\')<CR>",\n { silent = true, buffer = true, desc = "Jumps to the begining of previous evaluation output." }\n )\n vim.keymap.set(\n { "n", "x" },\n "]c",\n "<CMD>call search(\'^; -\\\\+$\', \'w\')<CR>",\n { silent = true, buffer = true, desc = "Jumps to the begining of next evaluation output." }\n )\n end,\n })\n\n -- prefer LSP for jump-to-definition and symbol-doc, and use conjure\n -- alternatives with <localleader>K and <localleader>gd\n vim.g["conjure#mapping#doc_word"] = "K"\n vim.g["conjure#mapping#def_word"] = "gd"\n end,\n}\n')))),(0,r.kt)("h2",{id:"nvim-cmp-optional"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/hrsh7th/nvim-cmp"},"nvim-cmp")," ",(0,r.kt)("em",{parentName:"h2"},"(optional)")),(0,r.kt)("p",null," Extend auto completion"),(0,r.kt)(l.Z,{mdxType:"Tabs"},(0,r.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = function(_, opts)\n if type(opts.sources) == "table" then\n vim.list_extend(opts.sources, { name = "conjure" })\n end\nend\n'))),(0,r.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "hrsh7th/nvim-cmp",\n optional = true,\n dependencies = {\n "PaterJason/cmp-conjure",\n },\n opts = function(_, opts)\n if type(opts.sources) == "table" then\n vim.list_extend(opts.sources, { name = "conjure" })\n end\n end,\n}\n')))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/2d285e41.16aa3983.js b/assets/js/2d285e41.16aa3983.js new file mode 100644 index 0000000000..f544c469e6 --- /dev/null +++ b/assets/js/2d285e41.16aa3983.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklazyvim=self.webpackChunklazyvim||[]).push([[7704],{3905:(e,n,t)=>{t.d(n,{Zo:()=>c,kt:()=>d});var r=t(7294);function l(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function i(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function a(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?i(Object(t),!0).forEach((function(n){l(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):i(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function o(e,n){if(null==e)return{};var t,r,l=function(e,n){if(null==e)return{};var t,r,l={},i=Object.keys(e);for(r=0;r<i.length;r++)t=i[r],n.indexOf(t)>=0||(l[t]=e[t]);return l}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)t=i[r],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(l[t]=e[t])}return l}var s=r.createContext({}),u=function(e){var n=r.useContext(s),t=n;return e&&(t="function"==typeof e?e(n):a(a({},n),e)),t},c=function(e){var n=u(e.components);return r.createElement(s.Provider,{value:n},e.children)},m="mdxType",f={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},p=r.forwardRef((function(e,n){var t=e.components,l=e.mdxType,i=e.originalType,s=e.parentName,c=o(e,["components","mdxType","originalType","parentName"]),m=u(t),p=l,d=m["".concat(s,".").concat(p)]||m[p]||f[p]||i;return t?r.createElement(d,a(a({ref:n},c),{},{components:t})):r.createElement(d,a({ref:n},c))}));function d(e,n){var t=arguments,l=n&&n.mdxType;if("string"==typeof e||l){var i=t.length,a=new Array(i);a[0]=p;var o={};for(var s in n)hasOwnProperty.call(n,s)&&(o[s]=n[s]);o.originalType=e,o[m]="string"==typeof e?e:l,a[1]=o;for(var u=2;u<i;u++)a[u]=t[u];return r.createElement.apply(null,a)}return r.createElement.apply(null,t)}p.displayName="MDXCreateElement"},5162:(e,n,t)=>{t.d(n,{Z:()=>a});var r=t(7294),l=t(6010);const i="tabItem_Ymn6";function a(e){let{children:n,hidden:t,className:a}=e;return r.createElement("div",{role:"tabpanel",className:(0,l.Z)(i,a),hidden:t},n)}},4866:(e,n,t)=>{t.d(n,{Z:()=>k});var r=t(7462),l=t(7294),i=t(6010),a=t(2466),o=t(6550),s=t(1980),u=t(7392),c=t(12);function m(e){return function(e){return l.Children.map(e,(e=>{if(!e||(0,l.isValidElement)(e)&&function(e){const{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:n,label:t,attributes:r,default:l}}=e;return{value:n,label:t,attributes:r,default:l}}))}function f(e){const{values:n,children:t}=e;return(0,l.useMemo)((()=>{const e=n??m(t);return function(e){const n=(0,u.l)(e,((e,n)=>e.value===n.value));if(n.length>0)throw new Error(`Docusaurus error: Duplicate values "${n.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[n,t])}function p(e){let{value:n,tabValues:t}=e;return t.some((e=>e.value===n))}function d(e){let{queryString:n=!1,groupId:t}=e;const r=(0,o.k6)(),i=function(e){let{queryString:n=!1,groupId:t}=e;if("string"==typeof n)return n;if(!1===n)return null;if(!0===n&&!t)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return t??null}({queryString:n,groupId:t});return[(0,s._X)(i),(0,l.useCallback)((e=>{if(!i)return;const n=new URLSearchParams(r.location.search);n.set(i,e),r.replace({...r.location,search:n.toString()})}),[i,r])]}function b(e){const{defaultValue:n,queryString:t=!1,groupId:r}=e,i=f(e),[a,o]=(0,l.useState)((()=>function(e){let{defaultValue:n,tabValues:t}=e;if(0===t.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(n){if(!p({value:n,tabValues:t}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${n}" but none of its children has the corresponding value. Available values are: ${t.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return n}const r=t.find((e=>e.default))??t[0];if(!r)throw new Error("Unexpected error: 0 tabValues");return r.value}({defaultValue:n,tabValues:i}))),[s,u]=d({queryString:t,groupId:r}),[m,b]=function(e){let{groupId:n}=e;const t=function(e){return e?`docusaurus.tab.${e}`:null}(n),[r,i]=(0,c.Nk)(t);return[r,(0,l.useCallback)((e=>{t&&i.set(e)}),[t,i])]}({groupId:r}),y=(()=>{const e=s??m;return p({value:e,tabValues:i})?e:null})();(0,l.useLayoutEffect)((()=>{y&&o(y)}),[y]);return{selectedValue:a,selectValue:(0,l.useCallback)((e=>{if(!p({value:e,tabValues:i}))throw new Error(`Can't select invalid tab value=${e}`);o(e),u(e),b(e)}),[u,b,i]),tabValues:i}}var y=t(2389);const v="tabList__CuJ",h="tabItem_LNqP";function g(e){let{className:n,block:t,selectedValue:o,selectValue:s,tabValues:u}=e;const c=[],{blockElementScrollPositionUntilNextRender:m}=(0,a.o5)(),f=e=>{const n=e.currentTarget,t=c.indexOf(n),r=u[t].value;r!==o&&(m(n),s(r))},p=e=>{let n=null;switch(e.key){case"Enter":f(e);break;case"ArrowRight":{const t=c.indexOf(e.currentTarget)+1;n=c[t]??c[0];break}case"ArrowLeft":{const t=c.indexOf(e.currentTarget)-1;n=c[t]??c[c.length-1];break}}n?.focus()};return l.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,i.Z)("tabs",{"tabs--block":t},n)},u.map((e=>{let{value:n,label:t,attributes:a}=e;return l.createElement("li",(0,r.Z)({role:"tab",tabIndex:o===n?0:-1,"aria-selected":o===n,key:n,ref:e=>c.push(e),onKeyDown:p,onClick:f},a,{className:(0,i.Z)("tabs__item",h,a?.className,{"tabs__item--active":o===n})}),t??n)})))}function _(e){let{lazy:n,children:t,selectedValue:r}=e;const i=(Array.isArray(t)?t:[t]).filter(Boolean);if(n){const e=i.find((e=>e.props.value===r));return e?(0,l.cloneElement)(e,{className:"margin-top--md"}):null}return l.createElement("div",{className:"margin-top--md"},i.map(((e,n)=>(0,l.cloneElement)(e,{key:n,hidden:e.props.value!==r}))))}function w(e){const n=b(e);return l.createElement("div",{className:(0,i.Z)("tabs-container",v)},l.createElement(g,(0,r.Z)({},e,n)),l.createElement(_,(0,r.Z)({},e,n)))}function k(e){const n=(0,y.Z)();return l.createElement(w,(0,r.Z)({key:String(n)},e))}},6660:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>s,default:()=>p,frontMatter:()=>o,metadata:()=>u,toc:()=>m});var r=t(7462),l=(t(7294),t(3905)),i=t(4866),a=t(5162);const o={},s="Linting",u={unversionedId:"plugins/linting",id:"plugins/linting",title:"Linting",description:"nvim-lint",source:"@site/docs/plugins/linting.md",sourceDirName:"plugins",slug:"/plugins/linting",permalink:"/plugins/linting",draft:!1,editUrl:"https://github.com/LazyVim/lazyvim.github.io/tree/main/docs/plugins/linting.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Formatting",permalink:"/plugins/formatting"},next:{title:"LSP",permalink:"/plugins/lsp"}},c={},m=[{value:"nvim-lint",id:"nvim-lint",level:2}],f={toc:m};function p(e){let{components:n,...t}=e;return(0,l.kt)("wrapper",(0,r.Z)({},f,t,{components:n,mdxType:"MDXLayout"}),(0,l.kt)("h1",{id:"linting"},"Linting"),(0,l.kt)("h2",{id:"nvim-lint"},(0,l.kt)("a",{parentName:"h2",href:"https://github.com/mfussenegger/nvim-lint"},"nvim-lint")),(0,l.kt)("p",null," Asynchronously calls language-specific linter tools and reports\ntheir results via the ",(0,l.kt)("inlineCode",{parentName:"p"},"vim.diagnostic")," module."),(0,l.kt)(i.Z,{mdxType:"Tabs"},(0,l.kt)(a.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-lua"},'opts = {\n -- Event to trigger linters\n events = { "BufWritePost", "BufReadPost", "InsertLeave" },\n linters_by_ft = {\n fish = { "fish" },\n -- Use the "*" filetype to run linters on all filetypes.\n -- [\'*\'] = { \'global linter\' },\n -- Use the "_" filetype to run linters on filetypes that don\'t have other linters configured.\n -- [\'_\'] = { \'fallback linter\' },\n -- ["*"] = { "typos" },\n },\n -- LazyVim extension to easily override linter options\n -- or add custom linters.\n ---@type table<string,table>\n linters = {\n -- -- Example of using selene only when a selene.toml file is present\n -- selene = {\n -- -- `condition` is another LazyVim extension that allows you to\n -- -- dynamically enable/disable linters based on the context.\n -- condition = function(ctx)\n -- return vim.fs.find({ "selene.toml" }, { path = ctx.filename, upward = true })[1]\n -- end,\n -- },\n },\n}\n'))),(0,l.kt)(a.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "mfussenegger/nvim-lint",\n event = "LazyFile",\n opts = {\n -- Event to trigger linters\n events = { "BufWritePost", "BufReadPost", "InsertLeave" },\n linters_by_ft = {\n fish = { "fish" },\n -- Use the "*" filetype to run linters on all filetypes.\n -- [\'*\'] = { \'global linter\' },\n -- Use the "_" filetype to run linters on filetypes that don\'t have other linters configured.\n -- [\'_\'] = { \'fallback linter\' },\n -- ["*"] = { "typos" },\n },\n -- LazyVim extension to easily override linter options\n -- or add custom linters.\n ---@type table<string,table>\n linters = {\n -- -- Example of using selene only when a selene.toml file is present\n -- selene = {\n -- -- `condition` is another LazyVim extension that allows you to\n -- -- dynamically enable/disable linters based on the context.\n -- condition = function(ctx)\n -- return vim.fs.find({ "selene.toml" }, { path = ctx.filename, upward = true })[1]\n -- end,\n -- },\n },\n },\n config = function(_, opts)\n local M = {}\n\n local lint = require("lint")\n for name, linter in pairs(opts.linters) do\n if type(linter) == "table" and type(lint.linters[name]) == "table" then\n lint.linters[name] = vim.tbl_deep_extend("force", lint.linters[name], linter)\n if type(linter.prepend_args) == "table" then\n lint.linters[name].args = lint.linters[name].args or {}\n vim.list_extend(lint.linters[name].args, linter.prepend_args)\n end\n else\n lint.linters[name] = linter\n end\n end\n lint.linters_by_ft = opts.linters_by_ft\n\n function M.debounce(ms, fn)\n local timer = vim.uv.new_timer()\n return function(...)\n local argv = { ... }\n timer:start(ms, 0, function()\n timer:stop()\n vim.schedule_wrap(fn)(unpack(argv))\n end)\n end\n end\n\n function M.lint()\n -- Use nvim-lint\'s logic first:\n -- * checks if linters exist for the full filetype first\n -- * otherwise will split filetype by "." and add all those linters\n -- * this differs from conform.nvim which only uses the first filetype that has a formatter\n local names = lint._resolve_linter_by_ft(vim.bo.filetype)\n\n -- Create a copy of the names table to avoid modifying the original.\n names = vim.list_extend({}, names)\n\n -- Add fallback linters.\n if #names == 0 then\n vim.list_extend(names, lint.linters_by_ft["_"] or {})\n end\n\n -- Add global linters.\n vim.list_extend(names, lint.linters_by_ft["*"] or {})\n\n -- Filter out linters that don\'t exist or don\'t match the condition.\n local ctx = { filename = vim.api.nvim_buf_get_name(0) }\n ctx.dirname = vim.fn.fnamemodify(ctx.filename, ":h")\n names = vim.tbl_filter(function(name)\n local linter = lint.linters[name]\n if not linter then\n LazyVim.warn("Linter not found: " .. name, { title = "nvim-lint" })\n end\n return linter and not (type(linter) == "table" and linter.condition and not linter.condition(ctx))\n end, names)\n\n -- Run linters.\n if #names > 0 then\n lint.try_lint(names)\n end\n end\n\n vim.api.nvim_create_autocmd(opts.events, {\n group = vim.api.nvim_create_augroup("nvim-lint", { clear = true }),\n callback = M.debounce(100, M.lint),\n })\n end,\n}\n')))))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/2df97b47.fb9d4fc4.js b/assets/js/2df97b47.fb9d4fc4.js new file mode 100644 index 0000000000..a05bb34c97 --- /dev/null +++ b/assets/js/2df97b47.fb9d4fc4.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklazyvim=self.webpackChunklazyvim||[]).push([[1086],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>f});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?l(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):l(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function i(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},l=Object.keys(e);for(r=0;r<l.length;r++)n=l[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r<l.length;r++)n=l[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var u=r.createContext({}),s=function(e){var t=r.useContext(u),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},c=function(e){var t=s(e.components);return r.createElement(u.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,l=e.originalType,u=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),p=s(n),d=a,f=p["".concat(u,".").concat(d)]||p[d]||m[d]||l;return n?r.createElement(f,o(o({ref:t},c),{},{components:n})):r.createElement(f,o({ref:t},c))}));function f(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var l=n.length,o=new Array(l);o[0]=d;var i={};for(var u in t)hasOwnProperty.call(t,u)&&(i[u]=t[u]);i.originalType=e,i[p]="string"==typeof e?e:a,o[1]=i;for(var s=2;s<l;s++)o[s]=n[s];return r.createElement.apply(null,o)}return r.createElement.apply(null,n)}d.displayName="MDXCreateElement"},5162:(e,t,n)=>{n.d(t,{Z:()=>o});var r=n(7294),a=n(6010);const l="tabItem_Ymn6";function o(e){let{children:t,hidden:n,className:o}=e;return r.createElement("div",{role:"tabpanel",className:(0,a.Z)(l,o),hidden:n},t)}},4866:(e,t,n)=>{n.d(t,{Z:()=>x});var r=n(7462),a=n(7294),l=n(6010),o=n(2466),i=n(6550),u=n(1980),s=n(7392),c=n(12);function p(e){return function(e){return a.Children.map(e,(e=>{if(!e||(0,a.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:t,label:n,attributes:r,default:a}}=e;return{value:t,label:n,attributes:r,default:a}}))}function m(e){const{values:t,children:n}=e;return(0,a.useMemo)((()=>{const e=t??p(n);return function(e){const t=(0,s.l)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[t,n])}function d(e){let{value:t,tabValues:n}=e;return n.some((e=>e.value===t))}function f(e){let{queryString:t=!1,groupId:n}=e;const r=(0,i.k6)(),l=function(e){let{queryString:t=!1,groupId:n}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!n)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return n??null}({queryString:t,groupId:n});return[(0,u._X)(l),(0,a.useCallback)((e=>{if(!l)return;const t=new URLSearchParams(r.location.search);t.set(l,e),r.replace({...r.location,search:t.toString()})}),[l,r])]}function b(e){const{defaultValue:t,queryString:n=!1,groupId:r}=e,l=m(e),[o,i]=(0,a.useState)((()=>function(e){let{defaultValue:t,tabValues:n}=e;if(0===n.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(t){if(!d({value:t,tabValues:n}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${n.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const r=n.find((e=>e.default))??n[0];if(!r)throw new Error("Unexpected error: 0 tabValues");return r.value}({defaultValue:t,tabValues:l}))),[u,s]=f({queryString:n,groupId:r}),[p,b]=function(e){let{groupId:t}=e;const n=function(e){return e?`docusaurus.tab.${e}`:null}(t),[r,l]=(0,c.Nk)(n);return[r,(0,a.useCallback)((e=>{n&&l.set(e)}),[n,l])]}({groupId:r}),v=(()=>{const e=u??p;return d({value:e,tabValues:l})?e:null})();(0,a.useLayoutEffect)((()=>{v&&i(v)}),[v]);return{selectedValue:o,selectValue:(0,a.useCallback)((e=>{if(!d({value:e,tabValues:l}))throw new Error(`Can't select invalid tab value=${e}`);i(e),s(e),b(e)}),[s,b,l]),tabValues:l}}var v=n(2389);const h="tabList__CuJ",y="tabItem_LNqP";function g(e){let{className:t,block:n,selectedValue:i,selectValue:u,tabValues:s}=e;const c=[],{blockElementScrollPositionUntilNextRender:p}=(0,o.o5)(),m=e=>{const t=e.currentTarget,n=c.indexOf(t),r=s[n].value;r!==i&&(p(t),u(r))},d=e=>{let t=null;switch(e.key){case"Enter":m(e);break;case"ArrowRight":{const n=c.indexOf(e.currentTarget)+1;t=c[n]??c[0];break}case"ArrowLeft":{const n=c.indexOf(e.currentTarget)-1;t=c[n]??c[c.length-1];break}}t?.focus()};return a.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,l.Z)("tabs",{"tabs--block":n},t)},s.map((e=>{let{value:t,label:n,attributes:o}=e;return a.createElement("li",(0,r.Z)({role:"tab",tabIndex:i===t?0:-1,"aria-selected":i===t,key:t,ref:e=>c.push(e),onKeyDown:d,onClick:m},o,{className:(0,l.Z)("tabs__item",y,o?.className,{"tabs__item--active":i===t})}),n??t)})))}function k(e){let{lazy:t,children:n,selectedValue:r}=e;const l=(Array.isArray(n)?n:[n]).filter(Boolean);if(t){const e=l.find((e=>e.props.value===r));return e?(0,a.cloneElement)(e,{className:"margin-top--md"}):null}return a.createElement("div",{className:"margin-top--md"},l.map(((e,t)=>(0,a.cloneElement)(e,{key:t,hidden:e.props.value!==r}))))}function w(e){const t=b(e);return a.createElement("div",{className:(0,l.Z)("tabs-container",h)},a.createElement(g,(0,r.Z)({},e,t)),a.createElement(k,(0,r.Z)({},e,t)))}function x(e){const t=(0,v.Z)();return a.createElement(w,(0,r.Z)({key:String(t)},e))}},1531:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>u,default:()=>d,frontMatter:()=>i,metadata:()=>s,toc:()=>p});var r=n(7462),a=(n(7294),n(3905)),l=n(4866),o=n(5162);const i={},u="Prisma",s={unversionedId:"extras/lang/prisma",id:"extras/lang/prisma",title:"Prisma",description:"You can enable the extra with the :LazyExtras command.",source:"@site/docs/extras/lang/prisma.md",sourceDirName:"extras/lang",slug:"/extras/lang/prisma",permalink:"/extras/lang/prisma",draft:!1,editUrl:"https://github.com/LazyVim/lazyvim.github.io/tree/main/docs/extras/lang/prisma.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"PHP",permalink:"/extras/lang/php"},next:{title:"Python",permalink:"/extras/lang/python"}},c={},p=[{value:"nvim-treesitter",id:"nvim-treesitter",level:2},{value:"nvim-lspconfig",id:"nvim-lspconfig",level:2}],m={toc:p};function d(e){let{components:t,...n}=e;return(0,a.kt)("wrapper",(0,r.Z)({},m,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"prisma"},(0,a.kt)("inlineCode",{parentName:"h1"},"Prisma")),(0,a.kt)("admonition",{type:"info"},(0,a.kt)("p",{parentName:"admonition"},"You can enable the extra with the ",(0,a.kt)("inlineCode",{parentName:"p"},":LazyExtras")," command.\nPlugins marked as optional will only be configured if they are installed.")),(0,a.kt)("p",null,"Below you can find a list of included plugins and their default settings."),(0,a.kt)("admonition",{type:"caution"},(0,a.kt)("p",{parentName:"admonition"},"You don't need to copy the default settings to your config.\nThey are only shown here for reference.")),(0,a.kt)("h2",{id:"nvim-treesitter"},(0,a.kt)("a",{parentName:"h2",href:"https://github.com/nvim-treesitter/nvim-treesitter"},"nvim-treesitter")),(0,a.kt)(l.Z,{mdxType:"Tabs"},(0,a.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'opts = {\n ensure_installed = { "prisma" },\n}\n'))),(0,a.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "nvim-treesitter/nvim-treesitter",\n opts = {\n ensure_installed = { "prisma" },\n },\n}\n')))),(0,a.kt)("h2",{id:"nvim-lspconfig"},(0,a.kt)("a",{parentName:"h2",href:"https://github.com/neovim/nvim-lspconfig"},"nvim-lspconfig")),(0,a.kt)(l.Z,{mdxType:"Tabs"},(0,a.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},"opts = {\n servers = {\n prismals = {},\n },\n}\n"))),(0,a.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "neovim/nvim-lspconfig",\n opts = {\n servers = {\n prismals = {},\n },\n },\n}\n')))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/2f0824eb.d69eb927.js b/assets/js/2f0824eb.d69eb927.js new file mode 100644 index 0000000000..d42fefbbfc --- /dev/null +++ b/assets/js/2f0824eb.d69eb927.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklazyvim=self.webpackChunklazyvim||[]).push([[3764],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>f});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function o(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?l(Object(n),!0).forEach((function(t){r(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):l(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function u(e,t){if(null==e)return{};var n,a,r=function(e,t){if(null==e)return{};var n,a,r={},l=Object.keys(e);for(a=0;a<l.length;a++)n=l[a],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a<l.length;a++)n=l[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var i=a.createContext({}),s=function(e){var t=a.useContext(i),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},c=function(e){var t=s(e.components);return a.createElement(i.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},d=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,l=e.originalType,i=e.parentName,c=u(e,["components","mdxType","originalType","parentName"]),p=s(n),d=r,f=p["".concat(i,".").concat(d)]||p[d]||m[d]||l;return n?a.createElement(f,o(o({ref:t},c),{},{components:n})):a.createElement(f,o({ref:t},c))}));function f(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var l=n.length,o=new Array(l);o[0]=d;var u={};for(var i in t)hasOwnProperty.call(t,i)&&(u[i]=t[i]);u.originalType=e,u[p]="string"==typeof e?e:r,o[1]=u;for(var s=2;s<l;s++)o[s]=n[s];return a.createElement.apply(null,o)}return a.createElement.apply(null,n)}d.displayName="MDXCreateElement"},5162:(e,t,n)=>{n.d(t,{Z:()=>o});var a=n(7294),r=n(6010);const l="tabItem_Ymn6";function o(e){let{children:t,hidden:n,className:o}=e;return a.createElement("div",{role:"tabpanel",className:(0,r.Z)(l,o),hidden:n},t)}},4866:(e,t,n)=>{n.d(t,{Z:()=>x});var a=n(7462),r=n(7294),l=n(6010),o=n(2466),u=n(6550),i=n(1980),s=n(7392),c=n(12);function p(e){return function(e){return r.Children.map(e,(e=>{if(!e||(0,r.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:t,label:n,attributes:a,default:r}}=e;return{value:t,label:n,attributes:a,default:r}}))}function m(e){const{values:t,children:n}=e;return(0,r.useMemo)((()=>{const e=t??p(n);return function(e){const t=(0,s.l)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[t,n])}function d(e){let{value:t,tabValues:n}=e;return n.some((e=>e.value===t))}function f(e){let{queryString:t=!1,groupId:n}=e;const a=(0,u.k6)(),l=function(e){let{queryString:t=!1,groupId:n}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!n)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return n??null}({queryString:t,groupId:n});return[(0,i._X)(l),(0,r.useCallback)((e=>{if(!l)return;const t=new URLSearchParams(a.location.search);t.set(l,e),a.replace({...a.location,search:t.toString()})}),[l,a])]}function b(e){const{defaultValue:t,queryString:n=!1,groupId:a}=e,l=m(e),[o,u]=(0,r.useState)((()=>function(e){let{defaultValue:t,tabValues:n}=e;if(0===n.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(t){if(!d({value:t,tabValues:n}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${n.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const a=n.find((e=>e.default))??n[0];if(!a)throw new Error("Unexpected error: 0 tabValues");return a.value}({defaultValue:t,tabValues:l}))),[i,s]=f({queryString:n,groupId:a}),[p,b]=function(e){let{groupId:t}=e;const n=function(e){return e?`docusaurus.tab.${e}`:null}(t),[a,l]=(0,c.Nk)(n);return[a,(0,r.useCallback)((e=>{n&&l.set(e)}),[n,l])]}({groupId:a}),v=(()=>{const e=i??p;return d({value:e,tabValues:l})?e:null})();(0,r.useLayoutEffect)((()=>{v&&u(v)}),[v]);return{selectedValue:o,selectValue:(0,r.useCallback)((e=>{if(!d({value:e,tabValues:l}))throw new Error(`Can't select invalid tab value=${e}`);u(e),s(e),b(e)}),[s,b,l]),tabValues:l}}var v=n(2389);const y="tabList__CuJ",h="tabItem_LNqP";function g(e){let{className:t,block:n,selectedValue:u,selectValue:i,tabValues:s}=e;const c=[],{blockElementScrollPositionUntilNextRender:p}=(0,o.o5)(),m=e=>{const t=e.currentTarget,n=c.indexOf(t),a=s[n].value;a!==u&&(p(t),i(a))},d=e=>{let t=null;switch(e.key){case"Enter":m(e);break;case"ArrowRight":{const n=c.indexOf(e.currentTarget)+1;t=c[n]??c[0];break}case"ArrowLeft":{const n=c.indexOf(e.currentTarget)-1;t=c[n]??c[c.length-1];break}}t?.focus()};return r.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,l.Z)("tabs",{"tabs--block":n},t)},s.map((e=>{let{value:t,label:n,attributes:o}=e;return r.createElement("li",(0,a.Z)({role:"tab",tabIndex:u===t?0:-1,"aria-selected":u===t,key:t,ref:e=>c.push(e),onKeyDown:d,onClick:m},o,{className:(0,l.Z)("tabs__item",h,o?.className,{"tabs__item--active":u===t})}),n??t)})))}function k(e){let{lazy:t,children:n,selectedValue:a}=e;const l=(Array.isArray(n)?n:[n]).filter(Boolean);if(t){const e=l.find((e=>e.props.value===a));return e?(0,r.cloneElement)(e,{className:"margin-top--md"}):null}return r.createElement("div",{className:"margin-top--md"},l.map(((e,t)=>(0,r.cloneElement)(e,{key:t,hidden:e.props.value!==a}))))}function w(e){const t=b(e);return r.createElement("div",{className:(0,l.Z)("tabs-container",y)},r.createElement(g,(0,a.Z)({},e,t)),r.createElement(k,(0,a.Z)({},e,t)))}function x(e){const t=(0,v.Z)();return r.createElement(w,(0,a.Z)({key:String(t)},e))}},3682:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>d,frontMatter:()=>u,metadata:()=>s,toc:()=>p});var a=n(7462),r=(n(7294),n(3905)),l=n(4866),o=n(5162);const u={},i="Lean",s={unversionedId:"extras/lang/lean",id:"extras/lang/lean",title:"Lean",description:"You can enable the extra with the :LazyExtras command.",source:"@site/docs/extras/lang/lean.md",sourceDirName:"extras/lang",slug:"/extras/lang/lean",permalink:"/extras/lang/lean",draft:!1,editUrl:"https://github.com/LazyVim/lazyvim.github.io/tree/main/docs/extras/lang/lean.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Kotlin",permalink:"/extras/lang/kotlin"},next:{title:"Markdown",permalink:"/extras/lang/markdown"}},c={},p=[{value:"lean.nvim",id:"leannvim",level:2},{value:"plenary.nvim",id:"plenarynvim",level:2}],m={toc:p};function d(e){let{components:t,...n}=e;return(0,r.kt)("wrapper",(0,a.Z)({},m,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"lean"},(0,r.kt)("inlineCode",{parentName:"h1"},"Lean")),(0,r.kt)("admonition",{type:"info"},(0,r.kt)("p",{parentName:"admonition"},"You can enable the extra with the ",(0,r.kt)("inlineCode",{parentName:"p"},":LazyExtras")," command.\nPlugins marked as optional will only be configured if they are installed.")),(0,r.kt)("p",null,"Below you can find a list of included plugins and their default settings."),(0,r.kt)("admonition",{type:"caution"},(0,r.kt)("p",{parentName:"admonition"},"You don't need to copy the default settings to your config.\nThey are only shown here for reference.")),(0,r.kt)("h2",{id:"leannvim"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/Julian/lean.nvim"},"lean.nvim")),(0,r.kt)(l.Z,{mdxType:"Tabs"},(0,r.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},"opts = nil\n"))),(0,r.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'"Julian/lean.nvim"\n')))),(0,r.kt)("h2",{id:"plenarynvim"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/nvim-lua/plenary.nvim"},"plenary.nvim")),(0,r.kt)(l.Z,{mdxType:"Tabs"},(0,r.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},"opts = nil\n"))),(0,r.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "nvim-lua/plenary.nvim",\n}\n')))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/2f41730a.a91f44ef.js b/assets/js/2f41730a.a91f44ef.js new file mode 100644 index 0000000000..01fc714001 --- /dev/null +++ b/assets/js/2f41730a.a91f44ef.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklazyvim=self.webpackChunklazyvim||[]).push([[2404],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>f});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?l(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):l(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function i(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},l=Object.keys(e);for(r=0;r<l.length;r++)n=l[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r<l.length;r++)n=l[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var u=r.createContext({}),s=function(e){var t=r.useContext(u),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},c=function(e){var t=s(e.components);return r.createElement(u.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,l=e.originalType,u=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),p=s(n),d=a,f=p["".concat(u,".").concat(d)]||p[d]||m[d]||l;return n?r.createElement(f,o(o({ref:t},c),{},{components:n})):r.createElement(f,o({ref:t},c))}));function f(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var l=n.length,o=new Array(l);o[0]=d;var i={};for(var u in t)hasOwnProperty.call(t,u)&&(i[u]=t[u]);i.originalType=e,i[p]="string"==typeof e?e:a,o[1]=i;for(var s=2;s<l;s++)o[s]=n[s];return r.createElement.apply(null,o)}return r.createElement.apply(null,n)}d.displayName="MDXCreateElement"},5162:(e,t,n)=>{n.d(t,{Z:()=>o});var r=n(7294),a=n(6010);const l="tabItem_Ymn6";function o(e){let{children:t,hidden:n,className:o}=e;return r.createElement("div",{role:"tabpanel",className:(0,a.Z)(l,o),hidden:n},t)}},4866:(e,t,n)=>{n.d(t,{Z:()=>w});var r=n(7462),a=n(7294),l=n(6010),o=n(2466),i=n(6550),u=n(1980),s=n(7392),c=n(12);function p(e){return function(e){return a.Children.map(e,(e=>{if(!e||(0,a.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:t,label:n,attributes:r,default:a}}=e;return{value:t,label:n,attributes:r,default:a}}))}function m(e){const{values:t,children:n}=e;return(0,a.useMemo)((()=>{const e=t??p(n);return function(e){const t=(0,s.l)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[t,n])}function d(e){let{value:t,tabValues:n}=e;return n.some((e=>e.value===t))}function f(e){let{queryString:t=!1,groupId:n}=e;const r=(0,i.k6)(),l=function(e){let{queryString:t=!1,groupId:n}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!n)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return n??null}({queryString:t,groupId:n});return[(0,u._X)(l),(0,a.useCallback)((e=>{if(!l)return;const t=new URLSearchParams(r.location.search);t.set(l,e),r.replace({...r.location,search:t.toString()})}),[l,r])]}function g(e){const{defaultValue:t,queryString:n=!1,groupId:r}=e,l=m(e),[o,i]=(0,a.useState)((()=>function(e){let{defaultValue:t,tabValues:n}=e;if(0===n.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(t){if(!d({value:t,tabValues:n}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${n.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const r=n.find((e=>e.default))??n[0];if(!r)throw new Error("Unexpected error: 0 tabValues");return r.value}({defaultValue:t,tabValues:l}))),[u,s]=f({queryString:n,groupId:r}),[p,g]=function(e){let{groupId:t}=e;const n=function(e){return e?`docusaurus.tab.${e}`:null}(t),[r,l]=(0,c.Nk)(n);return[r,(0,a.useCallback)((e=>{n&&l.set(e)}),[n,l])]}({groupId:r}),b=(()=>{const e=u??p;return d({value:e,tabValues:l})?e:null})();(0,a.useLayoutEffect)((()=>{b&&i(b)}),[b]);return{selectedValue:o,selectValue:(0,a.useCallback)((e=>{if(!d({value:e,tabValues:l}))throw new Error(`Can't select invalid tab value=${e}`);i(e),s(e),g(e)}),[s,g,l]),tabValues:l}}var b=n(2389);const h="tabList__CuJ",v="tabItem_LNqP";function y(e){let{className:t,block:n,selectedValue:i,selectValue:u,tabValues:s}=e;const c=[],{blockElementScrollPositionUntilNextRender:p}=(0,o.o5)(),m=e=>{const t=e.currentTarget,n=c.indexOf(t),r=s[n].value;r!==i&&(p(t),u(r))},d=e=>{let t=null;switch(e.key){case"Enter":m(e);break;case"ArrowRight":{const n=c.indexOf(e.currentTarget)+1;t=c[n]??c[0];break}case"ArrowLeft":{const n=c.indexOf(e.currentTarget)-1;t=c[n]??c[c.length-1];break}}t?.focus()};return a.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,l.Z)("tabs",{"tabs--block":n},t)},s.map((e=>{let{value:t,label:n,attributes:o}=e;return a.createElement("li",(0,r.Z)({role:"tab",tabIndex:i===t?0:-1,"aria-selected":i===t,key:t,ref:e=>c.push(e),onKeyDown:d,onClick:m},o,{className:(0,l.Z)("tabs__item",v,o?.className,{"tabs__item--active":i===t})}),n??t)})))}function k(e){let{lazy:t,children:n,selectedValue:r}=e;const l=(Array.isArray(n)?n:[n]).filter(Boolean);if(t){const e=l.find((e=>e.props.value===r));return e?(0,a.cloneElement)(e,{className:"margin-top--md"}):null}return a.createElement("div",{className:"margin-top--md"},l.map(((e,t)=>(0,a.cloneElement)(e,{key:t,hidden:e.props.value!==r}))))}function T(e){const t=g(e);return a.createElement("div",{className:(0,l.Z)("tabs-container",h)},a.createElement(y,(0,r.Z)({},e,t)),a.createElement(k,(0,r.Z)({},e,t)))}function w(e){const t=(0,b.Z)();return a.createElement(T,(0,r.Z)({key:String(t)},e))}},5662:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>u,default:()=>d,frontMatter:()=>i,metadata:()=>s,toc:()=>p});var r=n(7462),a=(n(7294),n(3905)),l=n(4866),o=n(5162);const i={},u="Git",s={unversionedId:"extras/lang/git",id:"extras/lang/git",title:"Git",description:"You can enable the extra with the :LazyExtras command.",source:"@site/docs/extras/lang/git.md",sourceDirName:"extras/lang",slug:"/extras/lang/git",permalink:"/extras/lang/git",draft:!1,editUrl:"https://github.com/LazyVim/lazyvim.github.io/tree/main/docs/extras/lang/git.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Erlang",permalink:"/extras/lang/erlang"},next:{title:"Gleam",permalink:"/extras/lang/gleam"}},c={},p=[{value:"nvim-treesitter",id:"nvim-treesitter",level:2},{value:"cmp-git",id:"cmp-git",level:2},{value:"nvim-cmp <em>(optional)</em>",id:"nvim-cmp-optional",level:2}],m={toc:p};function d(e){let{components:t,...n}=e;return(0,a.kt)("wrapper",(0,r.Z)({},m,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"git"},(0,a.kt)("inlineCode",{parentName:"h1"},"Git")),(0,a.kt)("admonition",{type:"info"},(0,a.kt)("p",{parentName:"admonition"},"You can enable the extra with the ",(0,a.kt)("inlineCode",{parentName:"p"},":LazyExtras")," command.\nPlugins marked as optional will only be configured if they are installed.")),(0,a.kt)("p",null,"Below you can find a list of included plugins and their default settings."),(0,a.kt)("admonition",{type:"caution"},(0,a.kt)("p",{parentName:"admonition"},"You don't need to copy the default settings to your config.\nThey are only shown here for reference.")),(0,a.kt)("h2",{id:"nvim-treesitter"},(0,a.kt)("a",{parentName:"h2",href:"https://github.com/nvim-treesitter/nvim-treesitter"},"nvim-treesitter")),(0,a.kt)("p",null," Treesitter git support"),(0,a.kt)(l.Z,{mdxType:"Tabs"},(0,a.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'opts = { ensure_installed = { "git_config", "gitcommit", "git_rebase", "gitignore", "gitattributes" } }\n'))),(0,a.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "nvim-treesitter/nvim-treesitter",\n opts = { ensure_installed = { "git_config", "gitcommit", "git_rebase", "gitignore", "gitattributes" } },\n}\n')))),(0,a.kt)("h2",{id:"cmp-git"},(0,a.kt)("a",{parentName:"h2",href:"https://github.com/petertriho/cmp-git"},"cmp-git")),(0,a.kt)(l.Z,{mdxType:"Tabs"},(0,a.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},"opts = {}\n"))),(0,a.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'{ "petertriho/cmp-git", opts = {} }\n')))),(0,a.kt)("h2",{id:"nvim-cmp-optional"},(0,a.kt)("a",{parentName:"h2",href:"https://github.com/hrsh7th/nvim-cmp"},"nvim-cmp")," ",(0,a.kt)("em",{parentName:"h2"},"(optional)")),(0,a.kt)(l.Z,{mdxType:"Tabs"},(0,a.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'opts = function(_, opts)\n table.insert(opts.sources, { name = "git" })\nend\n'))),(0,a.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "hrsh7th/nvim-cmp",\n optional = true,\n dependencies = {\n { "petertriho/cmp-git", opts = {} },\n },\n ---@module \'cmp\'\n ---@param opts cmp.ConfigSchema\n opts = function(_, opts)\n table.insert(opts.sources, { name = "git" })\n end,\n}\n')))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/30f42c63.73b928a8.js b/assets/js/30f42c63.73b928a8.js new file mode 100644 index 0000000000..240cef72d9 --- /dev/null +++ b/assets/js/30f42c63.73b928a8.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklazyvim=self.webpackChunklazyvim||[]).push([[8186],{3905:(e,n,t)=>{t.d(n,{Zo:()=>u,kt:()=>f});var r=t(7294);function a(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function i(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function o(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?i(Object(t),!0).forEach((function(n){a(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):i(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function l(e,n){if(null==e)return{};var t,r,a=function(e,n){if(null==e)return{};var t,r,a={},i=Object.keys(e);for(r=0;r<i.length;r++)t=i[r],n.indexOf(t)>=0||(a[t]=e[t]);return a}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)t=i[r],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var s=r.createContext({}),c=function(e){var n=r.useContext(s),t=n;return e&&(t="function"==typeof e?e(n):o(o({},n),e)),t},u=function(e){var n=c(e.components);return r.createElement(s.Provider,{value:n},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},d=r.forwardRef((function(e,n){var t=e.components,a=e.mdxType,i=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),p=c(t),d=a,f=p["".concat(s,".").concat(d)]||p[d]||m[d]||i;return t?r.createElement(f,o(o({ref:n},u),{},{components:t})):r.createElement(f,o({ref:n},u))}));function f(e,n){var t=arguments,a=n&&n.mdxType;if("string"==typeof e||a){var i=t.length,o=new Array(i);o[0]=d;var l={};for(var s in n)hasOwnProperty.call(n,s)&&(l[s]=n[s]);l.originalType=e,l[p]="string"==typeof e?e:a,o[1]=l;for(var c=2;c<i;c++)o[c]=t[c];return r.createElement.apply(null,o)}return r.createElement.apply(null,t)}d.displayName="MDXCreateElement"},5162:(e,n,t)=>{t.d(n,{Z:()=>o});var r=t(7294),a=t(6010);const i="tabItem_Ymn6";function o(e){let{children:n,hidden:t,className:o}=e;return r.createElement("div",{role:"tabpanel",className:(0,a.Z)(i,o),hidden:t},n)}},4866:(e,n,t)=>{t.d(n,{Z:()=>_});var r=t(7462),a=t(7294),i=t(6010),o=t(2466),l=t(6550),s=t(1980),c=t(7392),u=t(12);function p(e){return function(e){return a.Children.map(e,(e=>{if(!e||(0,a.isValidElement)(e)&&function(e){const{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:n,label:t,attributes:r,default:a}}=e;return{value:n,label:t,attributes:r,default:a}}))}function m(e){const{values:n,children:t}=e;return(0,a.useMemo)((()=>{const e=n??p(t);return function(e){const n=(0,c.l)(e,((e,n)=>e.value===n.value));if(n.length>0)throw new Error(`Docusaurus error: Duplicate values "${n.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[n,t])}function d(e){let{value:n,tabValues:t}=e;return t.some((e=>e.value===n))}function f(e){let{queryString:n=!1,groupId:t}=e;const r=(0,l.k6)(),i=function(e){let{queryString:n=!1,groupId:t}=e;if("string"==typeof n)return n;if(!1===n)return null;if(!0===n&&!t)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return t??null}({queryString:n,groupId:t});return[(0,s._X)(i),(0,a.useCallback)((e=>{if(!i)return;const n=new URLSearchParams(r.location.search);n.set(i,e),r.replace({...r.location,search:n.toString()})}),[i,r])]}function b(e){const{defaultValue:n,queryString:t=!1,groupId:r}=e,i=m(e),[o,l]=(0,a.useState)((()=>function(e){let{defaultValue:n,tabValues:t}=e;if(0===t.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(n){if(!d({value:n,tabValues:t}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${n}" but none of its children has the corresponding value. Available values are: ${t.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return n}const r=t.find((e=>e.default))??t[0];if(!r)throw new Error("Unexpected error: 0 tabValues");return r.value}({defaultValue:n,tabValues:i}))),[s,c]=f({queryString:t,groupId:r}),[p,b]=function(e){let{groupId:n}=e;const t=function(e){return e?`docusaurus.tab.${e}`:null}(n),[r,i]=(0,u.Nk)(t);return[r,(0,a.useCallback)((e=>{t&&i.set(e)}),[t,i])]}({groupId:r}),g=(()=>{const e=s??p;return d({value:e,tabValues:i})?e:null})();(0,a.useLayoutEffect)((()=>{g&&l(g)}),[g]);return{selectedValue:o,selectValue:(0,a.useCallback)((e=>{if(!d({value:e,tabValues:i}))throw new Error(`Can't select invalid tab value=${e}`);l(e),c(e),b(e)}),[c,b,i]),tabValues:i}}var g=t(2389);const y="tabList__CuJ",h="tabItem_LNqP";function v(e){let{className:n,block:t,selectedValue:l,selectValue:s,tabValues:c}=e;const u=[],{blockElementScrollPositionUntilNextRender:p}=(0,o.o5)(),m=e=>{const n=e.currentTarget,t=u.indexOf(n),r=c[t].value;r!==l&&(p(n),s(r))},d=e=>{let n=null;switch(e.key){case"Enter":m(e);break;case"ArrowRight":{const t=u.indexOf(e.currentTarget)+1;n=u[t]??u[0];break}case"ArrowLeft":{const t=u.indexOf(e.currentTarget)-1;n=u[t]??u[u.length-1];break}}n?.focus()};return a.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,i.Z)("tabs",{"tabs--block":t},n)},c.map((e=>{let{value:n,label:t,attributes:o}=e;return a.createElement("li",(0,r.Z)({role:"tab",tabIndex:l===n?0:-1,"aria-selected":l===n,key:n,ref:e=>u.push(e),onKeyDown:d,onClick:m},o,{className:(0,i.Z)("tabs__item",h,o?.className,{"tabs__item--active":l===n})}),t??n)})))}function k(e){let{lazy:n,children:t,selectedValue:r}=e;const i=(Array.isArray(t)?t:[t]).filter(Boolean);if(n){const e=i.find((e=>e.props.value===r));return e?(0,a.cloneElement)(e,{className:"margin-top--md"}):null}return a.createElement("div",{className:"margin-top--md"},i.map(((e,n)=>(0,a.cloneElement)(e,{key:n,hidden:e.props.value!==r}))))}function w(e){const n=b(e);return a.createElement("div",{className:(0,i.Z)("tabs-container",y)},a.createElement(v,(0,r.Z)({},e,n)),a.createElement(k,(0,r.Z)({},e,n)))}function _(e){const n=(0,g.Z)();return a.createElement(w,(0,r.Z)({key:String(n)},e))}},7176:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>u,contentTitle:()=>s,default:()=>d,frontMatter:()=>l,metadata:()=>c,toc:()=>p});var r=t(7462),a=(t(7294),t(3905)),i=t(4866),o=t(5162);const l={},s="Mini Starter",c={unversionedId:"extras/ui/mini-starter",id:"extras/ui/mini-starter",title:"Mini Starter",description:"You can enable the extra with the :LazyExtras command.",source:"@site/docs/extras/ui/mini-starter.md",sourceDirName:"extras/ui",slug:"/extras/ui/mini-starter",permalink:"/extras/ui/mini-starter",draft:!1,editUrl:"https://github.com/LazyVim/lazyvim.github.io/tree/main/docs/extras/ui/mini-starter.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Mini-indentscope",permalink:"/extras/ui/mini-indentscope"},next:{title:"Smear-cursor",permalink:"/extras/ui/smear-cursor"}},u={},p=[{value:"snacks.nvim",id:"snacksnvim",level:2},{value:"mini.starter",id:"ministarter",level:2}],m={toc:p};function d(e){let{components:n,...t}=e;return(0,a.kt)("wrapper",(0,r.Z)({},m,t,{components:n,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"mini-starter"},"Mini Starter"),(0,a.kt)("admonition",{type:"info"},(0,a.kt)("p",{parentName:"admonition"},"You can enable the extra with the ",(0,a.kt)("inlineCode",{parentName:"p"},":LazyExtras")," command.\nPlugins marked as optional will only be configured if they are installed.")),(0,a.kt)("p",null,"Below you can find a list of included plugins and their default settings."),(0,a.kt)("admonition",{type:"caution"},(0,a.kt)("p",{parentName:"admonition"},"You don't need to copy the default settings to your config.\nThey are only shown here for reference.")),(0,a.kt)("h2",{id:"snacksnvim"},(0,a.kt)("a",{parentName:"h2",href:"https://github.com/folke/snacks.nvim"},"snacks.nvim")),(0,a.kt)("p",null," disable alpha"),(0,a.kt)(i.Z,{mdxType:"Tabs"},(0,a.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},"opts = { dashboard = { enabled = false } }\n"))),(0,a.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'{ "folke/snacks.nvim", opts = { dashboard = { enabled = false } } }\n')))),(0,a.kt)("h2",{id:"ministarter"},(0,a.kt)("a",{parentName:"h2",href:"https://github.com/nvim-mini/mini.starter"},"mini.starter")),(0,a.kt)("p",null," enable mini.starter"),(0,a.kt)(i.Z,{mdxType:"Tabs"},(0,a.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'opts = function()\n local logo = table.concat({\n " \u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557\u2588\u2588\u2557 \u2588\u2588\u2557\u2588\u2588\u2557 \u2588\u2588\u2557\u2588\u2588\u2557\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2557 Z",\n " \u2588\u2588\u2551 \u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557\u255a\u2550\u2550\u2588\u2588\u2588\u2554\u255d\u255a\u2588\u2588\u2557 \u2588\u2588\u2554\u255d\u2588\u2588\u2551 \u2588\u2588\u2551\u2588\u2588\u2551\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2551 Z ",\n " \u2588\u2588\u2551 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2551 \u2588\u2588\u2588\u2554\u255d \u255a\u2588\u2588\u2588\u2588\u2554\u255d \u2588\u2588\u2551 \u2588\u2588\u2551\u2588\u2588\u2551\u2588\u2588\u2554\u2588\u2588\u2588\u2588\u2554\u2588\u2588\u2551 z ",\n " \u2588\u2588\u2551 \u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2551 \u2588\u2588\u2588\u2554\u255d \u255a\u2588\u2588\u2554\u255d \u255a\u2588\u2588\u2557 \u2588\u2588\u2554\u255d\u2588\u2588\u2551\u2588\u2588\u2551\u255a\u2588\u2588\u2554\u255d\u2588\u2588\u2551 z ",\n " \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557\u2588\u2588\u2551 \u2588\u2588\u2551\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2551 \u255a\u2588\u2588\u2588\u2588\u2554\u255d \u2588\u2588\u2551\u2588\u2588\u2551 \u255a\u2550\u255d \u2588\u2588\u2551 ",\n " \u255a\u2550\u2550\u2550\u2550\u2550\u2550\u255d\u255a\u2550\u255d \u255a\u2550\u255d\u255a\u2550\u2550\u2550\u2550\u2550\u2550\u255d \u255a\u2550\u255d \u255a\u2550\u2550\u2550\u255d \u255a\u2550\u255d\u255a\u2550\u255d \u255a\u2550\u255d ",\n }, "\\n")\n local pad = string.rep(" ", 22)\n local new_section = function(name, action, section)\n return { name = name, action = action, section = pad .. section }\n end\n\n local starter = require("mini.starter")\n --stylua: ignore\n local config = {\n evaluate_single = true,\n header = logo,\n items = {\n new_section("Find file", LazyVim.pick(), "Telescope"),\n new_section("New file", "ene | startinsert", "Built-in"),\n new_section("Recent files", LazyVim.pick("oldfiles"), "Telescope"),\n new_section("Find text", LazyVim.pick("live_grep"), "Telescope"),\n new_section("Config", LazyVim.pick.config_files(), "Config"),\n new_section("Restore session", [[lua require("persistence").load()]], "Session"),\n new_section("Lazy Extras", "LazyExtras", "Config"),\n new_section("Lazy", "Lazy", "Config"),\n new_section("Quit", "qa", "Built-in"),\n },\n content_hooks = {\n starter.gen_hook.adding_bullet(pad .. "\u2591 ", false),\n starter.gen_hook.aligning("center", "center"),\n },\n }\n return config\nend\n'))),(0,a.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "nvim-mini/mini.starter",\n version = false, -- wait till new 0.7.0 release to put it back on semver\n event = "VimEnter",\n opts = function()\n local logo = table.concat({\n " \u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557\u2588\u2588\u2557 \u2588\u2588\u2557\u2588\u2588\u2557 \u2588\u2588\u2557\u2588\u2588\u2557\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2557 Z",\n " \u2588\u2588\u2551 \u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557\u255a\u2550\u2550\u2588\u2588\u2588\u2554\u255d\u255a\u2588\u2588\u2557 \u2588\u2588\u2554\u255d\u2588\u2588\u2551 \u2588\u2588\u2551\u2588\u2588\u2551\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2551 Z ",\n " \u2588\u2588\u2551 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2551 \u2588\u2588\u2588\u2554\u255d \u255a\u2588\u2588\u2588\u2588\u2554\u255d \u2588\u2588\u2551 \u2588\u2588\u2551\u2588\u2588\u2551\u2588\u2588\u2554\u2588\u2588\u2588\u2588\u2554\u2588\u2588\u2551 z ",\n " \u2588\u2588\u2551 \u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2551 \u2588\u2588\u2588\u2554\u255d \u255a\u2588\u2588\u2554\u255d \u255a\u2588\u2588\u2557 \u2588\u2588\u2554\u255d\u2588\u2588\u2551\u2588\u2588\u2551\u255a\u2588\u2588\u2554\u255d\u2588\u2588\u2551 z ",\n " \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557\u2588\u2588\u2551 \u2588\u2588\u2551\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2551 \u255a\u2588\u2588\u2588\u2588\u2554\u255d \u2588\u2588\u2551\u2588\u2588\u2551 \u255a\u2550\u255d \u2588\u2588\u2551 ",\n " \u255a\u2550\u2550\u2550\u2550\u2550\u2550\u255d\u255a\u2550\u255d \u255a\u2550\u255d\u255a\u2550\u2550\u2550\u2550\u2550\u2550\u255d \u255a\u2550\u255d \u255a\u2550\u2550\u2550\u255d \u255a\u2550\u255d\u255a\u2550\u255d \u255a\u2550\u255d ",\n }, "\\n")\n local pad = string.rep(" ", 22)\n local new_section = function(name, action, section)\n return { name = name, action = action, section = pad .. section }\n end\n\n local starter = require("mini.starter")\n --stylua: ignore\n local config = {\n evaluate_single = true,\n header = logo,\n items = {\n new_section("Find file", LazyVim.pick(), "Telescope"),\n new_section("New file", "ene | startinsert", "Built-in"),\n new_section("Recent files", LazyVim.pick("oldfiles"), "Telescope"),\n new_section("Find text", LazyVim.pick("live_grep"), "Telescope"),\n new_section("Config", LazyVim.pick.config_files(), "Config"),\n new_section("Restore session", [[lua require("persistence").load()]], "Session"),\n new_section("Lazy Extras", "LazyExtras", "Config"),\n new_section("Lazy", "Lazy", "Config"),\n new_section("Quit", "qa", "Built-in"),\n },\n content_hooks = {\n starter.gen_hook.adding_bullet(pad .. "\u2591 ", false),\n starter.gen_hook.aligning("center", "center"),\n },\n }\n return config\n end,\n config = function(_, config)\n -- close Lazy and re-open when starter is ready\n if vim.o.filetype == "lazy" then\n vim.cmd.close()\n vim.api.nvim_create_autocmd("User", {\n pattern = "MiniStarterOpened",\n callback = function()\n require("lazy").show()\n end,\n })\n end\n\n local starter = require("mini.starter")\n starter.setup(config)\n\n vim.api.nvim_create_autocmd("User", {\n pattern = "LazyVimStarted",\n callback = function(ev)\n local stats = require("lazy").stats()\n local ms = (math.floor(stats.startuptime * 100 + 0.5) / 100)\n local pad_footer = string.rep(" ", 8)\n starter.config.footer = pad_footer .. "\u26a1 Neovim loaded " .. stats.count .. " plugins in " .. ms .. "ms"\n -- INFO: based on @nvim-mini\'s recommendation (thanks a lot!!!)\n if vim.bo[ev.buf].filetype == "ministarter" then\n pcall(starter.refresh)\n end\n end,\n })\n end,\n}\n')))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/317b1847.0376b084.js b/assets/js/317b1847.0376b084.js new file mode 100644 index 0000000000..d63c1c9d80 --- /dev/null +++ b/assets/js/317b1847.0376b084.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklazyvim=self.webpackChunklazyvim||[]).push([[2555],{3905:(e,n,t)=>{t.d(n,{Zo:()=>c,kt:()=>f});var a=t(7294);function r(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function o(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,a)}return t}function l(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?o(Object(t),!0).forEach((function(n){r(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):o(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function s(e,n){if(null==e)return{};var t,a,r=function(e,n){if(null==e)return{};var t,a,r={},o=Object.keys(e);for(a=0;a<o.length;a++)t=o[a],n.indexOf(t)>=0||(r[t]=e[t]);return r}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)t=o[a],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(r[t]=e[t])}return r}var i=a.createContext({}),u=function(e){var n=a.useContext(i),t=n;return e&&(t="function"==typeof e?e(n):l(l({},n),e)),t},c=function(e){var n=u(e.components);return a.createElement(i.Provider,{value:n},e.children)},d="mdxType",m={inlineCode:"code",wrapper:function(e){var n=e.children;return a.createElement(a.Fragment,{},n)}},p=a.forwardRef((function(e,n){var t=e.components,r=e.mdxType,o=e.originalType,i=e.parentName,c=s(e,["components","mdxType","originalType","parentName"]),d=u(t),p=r,f=d["".concat(i,".").concat(p)]||d[p]||m[p]||o;return t?a.createElement(f,l(l({ref:n},c),{},{components:t})):a.createElement(f,l({ref:n},c))}));function f(e,n){var t=arguments,r=n&&n.mdxType;if("string"==typeof e||r){var o=t.length,l=new Array(o);l[0]=p;var s={};for(var i in n)hasOwnProperty.call(n,i)&&(s[i]=n[i]);s.originalType=e,s[d]="string"==typeof e?e:r,l[1]=s;for(var u=2;u<o;u++)l[u]=t[u];return a.createElement.apply(null,l)}return a.createElement.apply(null,t)}p.displayName="MDXCreateElement"},5162:(e,n,t)=>{t.d(n,{Z:()=>l});var a=t(7294),r=t(6010);const o="tabItem_Ymn6";function l(e){let{children:n,hidden:t,className:l}=e;return a.createElement("div",{role:"tabpanel",className:(0,r.Z)(o,l),hidden:t},n)}},4866:(e,n,t)=>{t.d(n,{Z:()=>k});var a=t(7462),r=t(7294),o=t(6010),l=t(2466),s=t(6550),i=t(1980),u=t(7392),c=t(12);function d(e){return function(e){return r.Children.map(e,(e=>{if(!e||(0,r.isValidElement)(e)&&function(e){const{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:n,label:t,attributes:a,default:r}}=e;return{value:n,label:t,attributes:a,default:r}}))}function m(e){const{values:n,children:t}=e;return(0,r.useMemo)((()=>{const e=n??d(t);return function(e){const n=(0,u.l)(e,((e,n)=>e.value===n.value));if(n.length>0)throw new Error(`Docusaurus error: Duplicate values "${n.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[n,t])}function p(e){let{value:n,tabValues:t}=e;return t.some((e=>e.value===n))}function f(e){let{queryString:n=!1,groupId:t}=e;const a=(0,s.k6)(),o=function(e){let{queryString:n=!1,groupId:t}=e;if("string"==typeof n)return n;if(!1===n)return null;if(!0===n&&!t)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return t??null}({queryString:n,groupId:t});return[(0,i._X)(o),(0,r.useCallback)((e=>{if(!o)return;const n=new URLSearchParams(a.location.search);n.set(o,e),a.replace({...a.location,search:n.toString()})}),[o,a])]}function g(e){const{defaultValue:n,queryString:t=!1,groupId:a}=e,o=m(e),[l,s]=(0,r.useState)((()=>function(e){let{defaultValue:n,tabValues:t}=e;if(0===t.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(n){if(!p({value:n,tabValues:t}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${n}" but none of its children has the corresponding value. Available values are: ${t.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return n}const a=t.find((e=>e.default))??t[0];if(!a)throw new Error("Unexpected error: 0 tabValues");return a.value}({defaultValue:n,tabValues:o}))),[i,u]=f({queryString:t,groupId:a}),[d,g]=function(e){let{groupId:n}=e;const t=function(e){return e?`docusaurus.tab.${e}`:null}(n),[a,o]=(0,c.Nk)(t);return[a,(0,r.useCallback)((e=>{t&&o.set(e)}),[t,o])]}({groupId:a}),h=(()=>{const e=i??d;return p({value:e,tabValues:o})?e:null})();(0,r.useLayoutEffect)((()=>{h&&s(h)}),[h]);return{selectedValue:l,selectValue:(0,r.useCallback)((e=>{if(!p({value:e,tabValues:o}))throw new Error(`Can't select invalid tab value=${e}`);s(e),u(e),g(e)}),[u,g,o]),tabValues:o}}var h=t(2389);const y="tabList__CuJ",b="tabItem_LNqP";function w(e){let{className:n,block:t,selectedValue:s,selectValue:i,tabValues:u}=e;const c=[],{blockElementScrollPositionUntilNextRender:d}=(0,l.o5)(),m=e=>{const n=e.currentTarget,t=c.indexOf(n),a=u[t].value;a!==s&&(d(n),i(a))},p=e=>{let n=null;switch(e.key){case"Enter":m(e);break;case"ArrowRight":{const t=c.indexOf(e.currentTarget)+1;n=c[t]??c[0];break}case"ArrowLeft":{const t=c.indexOf(e.currentTarget)-1;n=c[t]??c[c.length-1];break}}n?.focus()};return r.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,o.Z)("tabs",{"tabs--block":t},n)},u.map((e=>{let{value:n,label:t,attributes:l}=e;return r.createElement("li",(0,a.Z)({role:"tab",tabIndex:s===n?0:-1,"aria-selected":s===n,key:n,ref:e=>c.push(e),onKeyDown:p,onClick:m},l,{className:(0,o.Z)("tabs__item",b,l?.className,{"tabs__item--active":s===n})}),t??n)})))}function v(e){let{lazy:n,children:t,selectedValue:a}=e;const o=(Array.isArray(t)?t:[t]).filter(Boolean);if(n){const e=o.find((e=>e.props.value===a));return e?(0,r.cloneElement)(e,{className:"margin-top--md"}):null}return r.createElement("div",{className:"margin-top--md"},o.map(((e,n)=>(0,r.cloneElement)(e,{key:n,hidden:e.props.value!==a}))))}function x(e){const n=g(e);return r.createElement("div",{className:(0,o.Z)("tabs-container",y)},r.createElement(w,(0,a.Z)({},e,n)),r.createElement(v,(0,a.Z)({},e,n)))}function k(e){const n=(0,h.Z)();return r.createElement(x,(0,a.Z)({key:String(n)},e))}},7394:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>i,default:()=>p,frontMatter:()=>s,metadata:()=>u,toc:()=>d});var a=t(7462),r=(t(7294),t(3905)),o=t(4866),l=t(5162);const s={},i="Dial",u={unversionedId:"extras/editor/dial",id:"extras/editor/dial",title:"Dial",description:"You can enable the extra with the :LazyExtras command.",source:"@site/docs/extras/editor/dial.md",sourceDirName:"extras/editor",slug:"/extras/editor/dial",permalink:"/extras/editor/dial",draft:!1,editUrl:"https://github.com/LazyVim/lazyvim.github.io/tree/main/docs/extras/editor/dial.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Aerial",permalink:"/extras/editor/aerial"},next:{title:"Fzf",permalink:"/extras/editor/fzf"}},c={},d=[{value:"dial.nvim",id:"dialnvim",level:2}],m={toc:d};function p(e){let{components:n,...t}=e;return(0,r.kt)("wrapper",(0,a.Z)({},m,t,{components:n,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"dial"},(0,r.kt)("inlineCode",{parentName:"h1"},"Dial")),(0,r.kt)("admonition",{type:"info"},(0,r.kt)("p",{parentName:"admonition"},"You can enable the extra with the ",(0,r.kt)("inlineCode",{parentName:"p"},":LazyExtras")," command.\nPlugins marked as optional will only be configured if they are installed.")),(0,r.kt)("p",null,"Below you can find a list of included plugins and their default settings."),(0,r.kt)("admonition",{type:"caution"},(0,r.kt)("p",{parentName:"admonition"},"You don't need to copy the default settings to your config.\nThey are only shown here for reference.")),(0,r.kt)("h2",{id:"dialnvim"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/monaqa/dial.nvim"},"dial.nvim")),(0,r.kt)(o.Z,{mdxType:"Tabs"},(0,r.kt)(l.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = function()\n local augend = require("dial.augend")\n\n local logical_alias = augend.constant.new({\n elements = { "&&", "||" },\n word = false,\n cyclic = true,\n })\n\n local ordinal_numbers = augend.constant.new({\n -- elements through which we cycle. When we increment, we go down\n -- On decrement we go up\n elements = {\n "first",\n "second",\n "third",\n "fourth",\n "fifth",\n "sixth",\n "seventh",\n "eighth",\n "ninth",\n "tenth",\n },\n -- if true, it only matches strings with word boundary. firstDate wouldn\'t work for example\n word = false,\n -- do we cycle back and forth (tenth to first on increment, first to tenth on decrement).\n -- Otherwise nothing will happen when there are no further values\n cyclic = true,\n })\n\n local weekdays = augend.constant.new({\n elements = {\n "Monday",\n "Tuesday",\n "Wednesday",\n "Thursday",\n "Friday",\n "Saturday",\n "Sunday",\n },\n word = true,\n cyclic = true,\n })\n\n local months = augend.constant.new({\n elements = {\n "January",\n "February",\n "March",\n "April",\n "May",\n "June",\n "July",\n "August",\n "September",\n "October",\n "November",\n "December",\n },\n word = true,\n cyclic = true,\n })\n\n local capitalized_boolean = augend.constant.new({\n elements = {\n "True",\n "False",\n },\n word = true,\n cyclic = true,\n })\n\n return {\n dials_by_ft = {\n css = "css",\n vue = "vue",\n javascript = "typescript",\n typescript = "typescript",\n typescriptreact = "typescript",\n javascriptreact = "typescript",\n json = "json",\n lua = "lua",\n markdown = "markdown",\n sass = "css",\n scss = "css",\n python = "python",\n },\n groups = {\n default = {\n augend.integer.alias.decimal, -- nonnegative decimal number (0, 1, 2, 3, ...)\n augend.integer.alias.decimal_int, -- nonnegative and negative decimal number\n augend.integer.alias.hex, -- nonnegative hex number (0x01, 0x1a1f, etc.)\n augend.date.alias["%Y/%m/%d"], -- date (2022/02/19, etc.)\n ordinal_numbers,\n weekdays,\n months,\n capitalized_boolean,\n augend.constant.alias.bool, -- boolean value (true <-> false)\n logical_alias,\n },\n vue = {\n augend.constant.new({ elements = { "let", "const" } }),\n augend.hexcolor.new({ case = "lower" }),\n augend.hexcolor.new({ case = "upper" }),\n },\n typescript = {\n augend.constant.new({ elements = { "let", "const" } }),\n },\n css = {\n augend.hexcolor.new({\n case = "lower",\n }),\n augend.hexcolor.new({\n case = "upper",\n }),\n },\n markdown = {\n augend.constant.new({\n elements = { "[ ]", "[x]" },\n word = false,\n cyclic = true,\n }),\n augend.misc.alias.markdown_header,\n },\n json = {\n augend.semver.alias.semver, -- versioning (v1.1.2)\n },\n lua = {\n augend.constant.new({\n elements = { "and", "or" },\n word = true, -- if false, "sand" is incremented into "sor", "doctor" into "doctand", etc.\n cyclic = true, -- "or" is incremented into "and".\n }),\n },\n python = {\n augend.constant.new({\n elements = { "and", "or" },\n }),\n },\n },\n }\nend\n'))),(0,r.kt)(l.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "monaqa/dial.nvim",\n recommended = true,\n desc = "Increment and decrement numbers, dates, and more",\n -- stylua: ignore\n keys = {\n { "<C-a>", function() return M.dial(true) end, expr = true, desc = "Increment", mode = {"n", "v"} },\n { "<C-x>", function() return M.dial(false) end, expr = true, desc = "Decrement", mode = {"n", "v"} },\n { "g<C-a>", function() return M.dial(true, true) end, expr = true, desc = "Increment", mode = {"n", "x"} },\n { "g<C-x>", function() return M.dial(false, true) end, expr = true, desc = "Decrement", mode = {"n", "x"} },\n },\n opts = function()\n local augend = require("dial.augend")\n\n local logical_alias = augend.constant.new({\n elements = { "&&", "||" },\n word = false,\n cyclic = true,\n })\n\n local ordinal_numbers = augend.constant.new({\n -- elements through which we cycle. When we increment, we go down\n -- On decrement we go up\n elements = {\n "first",\n "second",\n "third",\n "fourth",\n "fifth",\n "sixth",\n "seventh",\n "eighth",\n "ninth",\n "tenth",\n },\n -- if true, it only matches strings with word boundary. firstDate wouldn\'t work for example\n word = false,\n -- do we cycle back and forth (tenth to first on increment, first to tenth on decrement).\n -- Otherwise nothing will happen when there are no further values\n cyclic = true,\n })\n\n local weekdays = augend.constant.new({\n elements = {\n "Monday",\n "Tuesday",\n "Wednesday",\n "Thursday",\n "Friday",\n "Saturday",\n "Sunday",\n },\n word = true,\n cyclic = true,\n })\n\n local months = augend.constant.new({\n elements = {\n "January",\n "February",\n "March",\n "April",\n "May",\n "June",\n "July",\n "August",\n "September",\n "October",\n "November",\n "December",\n },\n word = true,\n cyclic = true,\n })\n\n local capitalized_boolean = augend.constant.new({\n elements = {\n "True",\n "False",\n },\n word = true,\n cyclic = true,\n })\n\n return {\n dials_by_ft = {\n css = "css",\n vue = "vue",\n javascript = "typescript",\n typescript = "typescript",\n typescriptreact = "typescript",\n javascriptreact = "typescript",\n json = "json",\n lua = "lua",\n markdown = "markdown",\n sass = "css",\n scss = "css",\n python = "python",\n },\n groups = {\n default = {\n augend.integer.alias.decimal, -- nonnegative decimal number (0, 1, 2, 3, ...)\n augend.integer.alias.decimal_int, -- nonnegative and negative decimal number\n augend.integer.alias.hex, -- nonnegative hex number (0x01, 0x1a1f, etc.)\n augend.date.alias["%Y/%m/%d"], -- date (2022/02/19, etc.)\n ordinal_numbers,\n weekdays,\n months,\n capitalized_boolean,\n augend.constant.alias.bool, -- boolean value (true <-> false)\n logical_alias,\n },\n vue = {\n augend.constant.new({ elements = { "let", "const" } }),\n augend.hexcolor.new({ case = "lower" }),\n augend.hexcolor.new({ case = "upper" }),\n },\n typescript = {\n augend.constant.new({ elements = { "let", "const" } }),\n },\n css = {\n augend.hexcolor.new({\n case = "lower",\n }),\n augend.hexcolor.new({\n case = "upper",\n }),\n },\n markdown = {\n augend.constant.new({\n elements = { "[ ]", "[x]" },\n word = false,\n cyclic = true,\n }),\n augend.misc.alias.markdown_header,\n },\n json = {\n augend.semver.alias.semver, -- versioning (v1.1.2)\n },\n lua = {\n augend.constant.new({\n elements = { "and", "or" },\n word = true, -- if false, "sand" is incremented into "sor", "doctor" into "doctand", etc.\n cyclic = true, -- "or" is incremented into "and".\n }),\n },\n python = {\n augend.constant.new({\n elements = { "and", "or" },\n }),\n },\n },\n }\n end,\n config = function(_, opts)\n -- copy defaults to each group\n for name, group in pairs(opts.groups) do\n if name ~= "default" then\n vim.list_extend(group, opts.groups.default)\n end\n end\n require("dial.config").augends:register_group(opts.groups)\n vim.g.dials_by_ft = opts.dials_by_ft\n end,\n}\n')))))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/34c7b1b3.63747987.js b/assets/js/34c7b1b3.63747987.js new file mode 100644 index 0000000000..a1a36a81af --- /dev/null +++ b/assets/js/34c7b1b3.63747987.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklazyvim=self.webpackChunklazyvim||[]).push([[2781],{3905:(t,e,a)=>{a.d(e,{Zo:()=>i,kt:()=>g});var n=a(7294);function l(t,e,a){return e in t?Object.defineProperty(t,e,{value:a,enumerable:!0,configurable:!0,writable:!0}):t[e]=a,t}function r(t,e){var a=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),a.push.apply(a,n)}return a}function d(t){for(var e=1;e<arguments.length;e++){var a=null!=arguments[e]?arguments[e]:{};e%2?r(Object(a),!0).forEach((function(e){l(t,e,a[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(a)):r(Object(a)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(a,e))}))}return t}function k(t,e){if(null==t)return{};var a,n,l=function(t,e){if(null==t)return{};var a,n,l={},r=Object.keys(t);for(n=0;n<r.length;n++)a=r[n],e.indexOf(a)>=0||(l[a]=t[a]);return l}(t,e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);for(n=0;n<r.length;n++)a=r[n],e.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(t,a)&&(l[a]=t[a])}return l}var p=n.createContext({}),m=function(t){var e=n.useContext(p),a=e;return t&&(a="function"==typeof t?t(e):d(d({},e),t)),a},i=function(t){var e=m(t.components);return n.createElement(p.Provider,{value:e},t.children)},N="mdxType",u={inlineCode:"code",wrapper:function(t){var e=t.children;return n.createElement(n.Fragment,{},e)}},o=n.forwardRef((function(t,e){var a=t.components,l=t.mdxType,r=t.originalType,p=t.parentName,i=k(t,["components","mdxType","originalType","parentName"]),N=m(a),o=l,g=N["".concat(p,".").concat(o)]||N[o]||u[o]||r;return a?n.createElement(g,d(d({ref:e},i),{},{components:a})):n.createElement(g,d({ref:e},i))}));function g(t,e){var a=arguments,l=e&&e.mdxType;if("string"==typeof t||l){var r=a.length,d=new Array(r);d[0]=o;var k={};for(var p in e)hasOwnProperty.call(e,p)&&(k[p]=e[p]);k.originalType=t,k[N]="string"==typeof t?t:l,d[1]=k;for(var m=2;m<r;m++)d[m]=a[m];return n.createElement.apply(null,d)}return n.createElement.apply(null,a)}o.displayName="MDXCreateElement"},9744:(t,e,a)=>{a.r(e),a.d(e,{assets:()=>p,contentTitle:()=>d,default:()=>N,frontMatter:()=>r,metadata:()=>k,toc:()=>m});var n=a(7462),l=(a(7294),a(3905));const r={sidebar_position:3},d="\u2328\ufe0f Keymaps",k={unversionedId:"keymaps",id:"keymaps",title:"\u2328\ufe0f Keymaps",description:"LazyVim uses which-key.nvim to help you remember your",source:"@site/docs/keymaps.md",sourceDirName:".",slug:"/keymaps",permalink:"/keymaps",draft:!1,editUrl:"https://github.com/LazyVim/lazyvim.github.io/tree/main/docs/keymaps.md",tags:[],version:"current",sidebarPosition:3,frontMatter:{sidebar_position:3},sidebar:"tutorialSidebar",previous:{title:"\ud83d\udcf0 What's new?",permalink:"/news"},next:{title:"\u2699\ufe0f Configuration",permalink:"/configuration/"}},p={},m=[{value:"General",id:"general",level:2},{value:"LSP",id:"lsp",level:2},{value:"bufferline.nvim",id:"bufferlinenvim",level:2},{value:"conform.nvim",id:"conformnvim",level:2},{value:"flash.nvim",id:"flashnvim",level:2},{value:"grug-far.nvim",id:"grug-farnvim",level:2},{value:"mason.nvim",id:"masonnvim",level:2},{value:"noice.nvim",id:"noicenvim",level:2},{value:"persistence.nvim",id:"persistencenvim",level:2},{value:"snacks.nvim",id:"snacksnvim",level:2},{value:"todo-comments.nvim",id:"todo-commentsnvim",level:2},{value:"trouble.nvim",id:"troublenvim",level:2},{value:"which-key.nvim",id:"which-keynvim",level:2},{value:"avante.nvim",id:"avantenvim",level:2},{value:"claudecode.nvim",id:"claudecodenvim",level:2},{value:"CopilotChat.nvim",id:"copilotchatnvim",level:2},{value:"sidekick.nvim",id:"sidekicknvim",level:2},{value:"mini.surround",id:"minisurround",level:2},{value:"neogen",id:"neogen",level:2},{value:"yanky.nvim",id:"yankynvim",level:2},{value:"nvim-dap",id:"nvim-dap",level:2},{value:"nvim-dap-ui",id:"nvim-dap-ui",level:2},{value:"aerial.nvim",id:"aerialnvim",level:2},{value:"telescope.nvim",id:"telescopenvim",level:2},{value:"dial.nvim",id:"dialnvim",level:2},{value:"harpoon",id:"harpoon",level:2},{value:"vim-illuminate",id:"vim-illuminate",level:2},{value:"leap.nvim",id:"leapnvim",level:2},{value:"mini.surround",id:"minisurround-1",level:2},{value:"mini.diff",id:"minidiff",level:2},{value:"mini.files",id:"minifiles",level:2},{value:"outline.nvim",id:"outlinenvim",level:2},{value:"overseer.nvim",id:"overseernvim",level:2},{value:"refactoring.nvim",id:"refactoringnvim",level:2},{value:"snacks.nvim",id:"snacksnvim-1",level:2},{value:"snacks.nvim",id:"snacksnvim-2",level:2},{value:"todo-comments.nvim",id:"todo-commentsnvim-1",level:2},{value:"nvim-ansible",id:"nvim-ansible",level:2},{value:"haskell-tools.nvim",id:"haskell-toolsnvim",level:2},{value:"telescope_hoogle",id:"telescope_hoogle",level:2},{value:"markdown-preview.nvim",id:"markdown-previewnvim",level:2},{value:"nvim-dap-python",id:"nvim-dap-python",level:2},{value:"venv-selector.nvim",id:"venv-selectornvim",level:2},{value:"nvim-metals",id:"nvim-metals",level:2},{value:"vim-dadbod-ui",id:"vim-dadbod-ui",level:2},{value:"vimtex",id:"vimtex",level:2},{value:"typst-preview.nvim",id:"typst-previewnvim",level:2},{value:"neotest",id:"neotest",level:2},{value:"nvim-dap",id:"nvim-dap-1",level:2},{value:"edgy.nvim",id:"edgynvim",level:2},{value:"chezmoi.nvim",id:"chezmoinvim",level:2},{value:"gh.nvim",id:"ghnvim",level:2},{value:"mason.nvim",id:"masonnvim-1",level:2},{value:"octo.nvim",id:"octonvim",level:2},{value:"fzf-lua",id:"fzf-lua",level:2},{value:"telescope.nvim",id:"telescopenvim-1",level:2},{value:"kulala.nvim",id:"kulalanvim",level:2}],i={toc:m};function N(t){let{components:e,...a}=t;return(0,l.kt)("wrapper",(0,n.Z)({},i,a,{components:e,mdxType:"MDXLayout"}),(0,l.kt)("h1",{id:"\ufe0f-keymaps"},"\u2328\ufe0f Keymaps"),(0,l.kt)("p",null,(0,l.kt)("strong",{parentName:"p"},"LazyVim")," uses ",(0,l.kt)("a",{parentName:"p",href:"https://github.com/folke/which-key.nvim"},"which-key.nvim")," to help you remember your\nkeymaps. Just press any key like ",(0,l.kt)("inlineCode",{parentName:"p"},"<space>")," and you'll see a popup with all\npossible keymaps starting with ",(0,l.kt)("inlineCode",{parentName:"p"},"<space>"),"."),(0,l.kt)("p",null,(0,l.kt)("img",{parentName:"p",src:"https://user-images.githubusercontent.com/292349/211862473-1ff5ee7a-3bb9-4782-a9f6-014f0e5d4474.png",alt:"image"})),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"default ",(0,l.kt)("inlineCode",{parentName:"li"},"<leader>")," is ",(0,l.kt)("inlineCode",{parentName:"li"},"<space>")),(0,l.kt)("li",{parentName:"ul"},"default ",(0,l.kt)("inlineCode",{parentName:"li"},"<localleader>")," is ",(0,l.kt)("inlineCode",{parentName:"li"},"\\"))),(0,l.kt)("h2",{id:"general"},"General"),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Key"),(0,l.kt)("th",{parentName:"tr",align:null},"Description"),(0,l.kt)("th",{parentName:"tr",align:null},"Mode"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"j")),(0,l.kt)("td",{parentName:"tr",align:null},"Down"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"),", ",(0,l.kt)("strong",{parentName:"td"},"x"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","Down",">")),(0,l.kt)("td",{parentName:"tr",align:null},"Down"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"),", ",(0,l.kt)("strong",{parentName:"td"},"x"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"k")),(0,l.kt)("td",{parentName:"tr",align:null},"Up"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"),", ",(0,l.kt)("strong",{parentName:"td"},"x"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","Up",">")),(0,l.kt)("td",{parentName:"tr",align:null},"Up"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"),", ",(0,l.kt)("strong",{parentName:"td"},"x"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","C-h",">")),(0,l.kt)("td",{parentName:"tr",align:null},"Go to Left Window"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","C-j",">")),(0,l.kt)("td",{parentName:"tr",align:null},"Go to Lower Window"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","C-k",">")),(0,l.kt)("td",{parentName:"tr",align:null},"Go to Upper Window"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","C-l",">")),(0,l.kt)("td",{parentName:"tr",align:null},"Go to Right Window"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","C-Up",">")),(0,l.kt)("td",{parentName:"tr",align:null},"Increase Window Height"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","C-Down",">")),(0,l.kt)("td",{parentName:"tr",align:null},"Decrease Window Height"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","C-Left",">")),(0,l.kt)("td",{parentName:"tr",align:null},"Decrease Window Width"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","C-Right",">")),(0,l.kt)("td",{parentName:"tr",align:null},"Increase Window Width"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","A-j",">")),(0,l.kt)("td",{parentName:"tr",align:null},"Move Down"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"),", ",(0,l.kt)("strong",{parentName:"td"},"i"),", ",(0,l.kt)("strong",{parentName:"td"},"v"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","A-k",">")),(0,l.kt)("td",{parentName:"tr",align:null},"Move Up"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"),", ",(0,l.kt)("strong",{parentName:"td"},"i"),", ",(0,l.kt)("strong",{parentName:"td"},"v"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","S-h",">")),(0,l.kt)("td",{parentName:"tr",align:null},"Prev Buffer"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","S-l",">")),(0,l.kt)("td",{parentName:"tr",align:null},"Next Buffer"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"[b")),(0,l.kt)("td",{parentName:"tr",align:null},"Prev Buffer"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"]b")),(0,l.kt)("td",{parentName:"tr",align:null},"Next Buffer"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","bb")),(0,l.kt)("td",{parentName:"tr",align:null},"Switch to Other Buffer"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","`")),(0,l.kt)("td",{parentName:"tr",align:null},"Switch to Other Buffer"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","bd")),(0,l.kt)("td",{parentName:"tr",align:null},"Delete Buffer"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","bo")),(0,l.kt)("td",{parentName:"tr",align:null},"Delete Other Buffers"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","bD")),(0,l.kt)("td",{parentName:"tr",align:null},"Delete Buffer and Window"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","esc",">")),(0,l.kt)("td",{parentName:"tr",align:null},"Escape and Clear hlsearch"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"i"),", ",(0,l.kt)("strong",{parentName:"td"},"n"),", ",(0,l.kt)("strong",{parentName:"td"},"s"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","ur")),(0,l.kt)("td",{parentName:"tr",align:null},"Redraw / Clear hlsearch / Diff Update"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"n")),(0,l.kt)("td",{parentName:"tr",align:null},"Next Search Result"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"),", ",(0,l.kt)("strong",{parentName:"td"},"x"),", ",(0,l.kt)("strong",{parentName:"td"},"o"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"N")),(0,l.kt)("td",{parentName:"tr",align:null},"Prev Search Result"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"),", ",(0,l.kt)("strong",{parentName:"td"},"x"),", ",(0,l.kt)("strong",{parentName:"td"},"o"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","C-s",">")),(0,l.kt)("td",{parentName:"tr",align:null},"Save File"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"i"),", ",(0,l.kt)("strong",{parentName:"td"},"x"),", ",(0,l.kt)("strong",{parentName:"td"},"n"),", ",(0,l.kt)("strong",{parentName:"td"},"s"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","K")),(0,l.kt)("td",{parentName:"tr",align:null},"Keywordprg"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"gco")),(0,l.kt)("td",{parentName:"tr",align:null},"Add Comment Below"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"gcO")),(0,l.kt)("td",{parentName:"tr",align:null},"Add Comment Above"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","l")),(0,l.kt)("td",{parentName:"tr",align:null},"Lazy"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","fn")),(0,l.kt)("td",{parentName:"tr",align:null},"New File"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","xl")),(0,l.kt)("td",{parentName:"tr",align:null},"Location List"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","xq")),(0,l.kt)("td",{parentName:"tr",align:null},"Quickfix List"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"[q")),(0,l.kt)("td",{parentName:"tr",align:null},"Previous Quickfix"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"]q")),(0,l.kt)("td",{parentName:"tr",align:null},"Next Quickfix"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","cf")),(0,l.kt)("td",{parentName:"tr",align:null},"Format"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"),", ",(0,l.kt)("strong",{parentName:"td"},"x"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","cd")),(0,l.kt)("td",{parentName:"tr",align:null},"Line Diagnostics"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"]d")),(0,l.kt)("td",{parentName:"tr",align:null},"Next Diagnostic"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"[d")),(0,l.kt)("td",{parentName:"tr",align:null},"Prev Diagnostic"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"]e")),(0,l.kt)("td",{parentName:"tr",align:null},"Next Error"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"[e")),(0,l.kt)("td",{parentName:"tr",align:null},"Prev Error"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"]w")),(0,l.kt)("td",{parentName:"tr",align:null},"Next Warning"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"[w")),(0,l.kt)("td",{parentName:"tr",align:null},"Prev Warning"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","uf")),(0,l.kt)("td",{parentName:"tr",align:null},"Toggle Auto Format (Global)"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","uF")),(0,l.kt)("td",{parentName:"tr",align:null},"Toggle Auto Format (Buffer)"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","us")),(0,l.kt)("td",{parentName:"tr",align:null},"Toggle Spelling"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","uw")),(0,l.kt)("td",{parentName:"tr",align:null},"Toggle Wrap"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","uL")),(0,l.kt)("td",{parentName:"tr",align:null},"Toggle Relative Number"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","ud")),(0,l.kt)("td",{parentName:"tr",align:null},"Toggle Diagnostics"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","ul")),(0,l.kt)("td",{parentName:"tr",align:null},"Toggle Line Numbers"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","uc")),(0,l.kt)("td",{parentName:"tr",align:null},"Toggle Conceal Level"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","uA")),(0,l.kt)("td",{parentName:"tr",align:null},"Toggle Tabline"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","uT")),(0,l.kt)("td",{parentName:"tr",align:null},"Toggle Treesitter Highlight"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","ub")),(0,l.kt)("td",{parentName:"tr",align:null},"Toggle Dark Background"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","uD")),(0,l.kt)("td",{parentName:"tr",align:null},"Toggle Dimming"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","ua")),(0,l.kt)("td",{parentName:"tr",align:null},"Toggle Animations"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","ug")),(0,l.kt)("td",{parentName:"tr",align:null},"Toggle Indent Guides"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","uS")),(0,l.kt)("td",{parentName:"tr",align:null},"Toggle Smooth Scroll"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","dpp")),(0,l.kt)("td",{parentName:"tr",align:null},"Toggle Profiler"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","dph")),(0,l.kt)("td",{parentName:"tr",align:null},"Toggle Profiler Highlights"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","uh")),(0,l.kt)("td",{parentName:"tr",align:null},"Toggle Inlay Hints"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","gL")),(0,l.kt)("td",{parentName:"tr",align:null},"Git Log (cwd)"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","gb")),(0,l.kt)("td",{parentName:"tr",align:null},"Git Blame Line"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","gf")),(0,l.kt)("td",{parentName:"tr",align:null},"Git Current File History"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","gl")),(0,l.kt)("td",{parentName:"tr",align:null},"Git Log"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","gB")),(0,l.kt)("td",{parentName:"tr",align:null},"Git Browse (open)"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"),", ",(0,l.kt)("strong",{parentName:"td"},"x"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","gY")),(0,l.kt)("td",{parentName:"tr",align:null},"Git Browse (copy)"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"),", ",(0,l.kt)("strong",{parentName:"td"},"x"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","qq")),(0,l.kt)("td",{parentName:"tr",align:null},"Quit All"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","ui")),(0,l.kt)("td",{parentName:"tr",align:null},"Inspect Pos"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","uI")),(0,l.kt)("td",{parentName:"tr",align:null},"Inspect Tree"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","L")),(0,l.kt)("td",{parentName:"tr",align:null},"LazyVim Changelog"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","fT")),(0,l.kt)("td",{parentName:"tr",align:null},"Terminal (cwd)"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","ft")),(0,l.kt)("td",{parentName:"tr",align:null},"Terminal (Root Dir)"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","c-/",">")),(0,l.kt)("td",{parentName:"tr",align:null},"Terminal (Root Dir)"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"),", ",(0,l.kt)("strong",{parentName:"td"},"t"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","c-_",">")),(0,l.kt)("td",{parentName:"tr",align:null},"which_key_ignore"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"),", ",(0,l.kt)("strong",{parentName:"td"},"t"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","-")),(0,l.kt)("td",{parentName:"tr",align:null},"Split Window Below"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","|")),(0,l.kt)("td",{parentName:"tr",align:null},"Split Window Right"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","wd")),(0,l.kt)("td",{parentName:"tr",align:null},"Delete Window"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","wm")),(0,l.kt)("td",{parentName:"tr",align:null},"Toggle Zoom Mode"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","uZ")),(0,l.kt)("td",{parentName:"tr",align:null},"Toggle Zoom Mode"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","uz")),(0,l.kt)("td",{parentName:"tr",align:null},"Toggle Zen Mode"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","<","tab",">","l")),(0,l.kt)("td",{parentName:"tr",align:null},"Last Tab"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","<","tab",">","o")),(0,l.kt)("td",{parentName:"tr",align:null},"Close Other Tabs"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","<","tab",">","f")),(0,l.kt)("td",{parentName:"tr",align:null},"First Tab"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","<","tab",">","<","tab",">")),(0,l.kt)("td",{parentName:"tr",align:null},"New Tab"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","<","tab",">","]")),(0,l.kt)("td",{parentName:"tr",align:null},"Next Tab"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","<","tab",">","d")),(0,l.kt)("td",{parentName:"tr",align:null},"Close Tab"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","<","tab",">","[")),(0,l.kt)("td",{parentName:"tr",align:null},"Previous Tab"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))))),(0,l.kt)("h2",{id:"lsp"},"LSP"),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Key"),(0,l.kt)("th",{parentName:"tr",align:null},"Description"),(0,l.kt)("th",{parentName:"tr",align:null},"Mode"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","cl")),(0,l.kt)("td",{parentName:"tr",align:null},"Lsp Info"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"gd")),(0,l.kt)("td",{parentName:"tr",align:null},"Goto Definition"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"gr")),(0,l.kt)("td",{parentName:"tr",align:null},"References"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"gI")),(0,l.kt)("td",{parentName:"tr",align:null},"Goto Implementation"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"gy")),(0,l.kt)("td",{parentName:"tr",align:null},"Goto T","[y]","pe Definition"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"gD")),(0,l.kt)("td",{parentName:"tr",align:null},"Goto Declaration"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"K")),(0,l.kt)("td",{parentName:"tr",align:null},"Hover"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"gK")),(0,l.kt)("td",{parentName:"tr",align:null},"Signature Help"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","c-k",">")),(0,l.kt)("td",{parentName:"tr",align:null},"Signature Help"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"i"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","ca")),(0,l.kt)("td",{parentName:"tr",align:null},"Code Action"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"),", ",(0,l.kt)("strong",{parentName:"td"},"x"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","cc")),(0,l.kt)("td",{parentName:"tr",align:null},"Run Codelens"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"),", ",(0,l.kt)("strong",{parentName:"td"},"x"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","cC")),(0,l.kt)("td",{parentName:"tr",align:null},"Refresh & Display Codelens"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","cR")),(0,l.kt)("td",{parentName:"tr",align:null},"Rename File"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","cr")),(0,l.kt)("td",{parentName:"tr",align:null},"Rename"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","cA")),(0,l.kt)("td",{parentName:"tr",align:null},"Source Action"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"]]")),(0,l.kt)("td",{parentName:"tr",align:null},"Next Reference"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"[[")),(0,l.kt)("td",{parentName:"tr",align:null},"Prev Reference"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","a-n",">")),(0,l.kt)("td",{parentName:"tr",align:null},"Next Reference"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","a-p",">")),(0,l.kt)("td",{parentName:"tr",align:null},"Prev Reference"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))))),(0,l.kt)("h2",{id:"bufferlinenvim"},(0,l.kt)("a",{parentName:"h2",href:"https://github.com/akinsho/bufferline.nvim.git"},"bufferline.nvim")),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Key"),(0,l.kt)("th",{parentName:"tr",align:null},"Description"),(0,l.kt)("th",{parentName:"tr",align:null},"Mode"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","bl")),(0,l.kt)("td",{parentName:"tr",align:null},"Delete Buffers to the Left"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","bp")),(0,l.kt)("td",{parentName:"tr",align:null},"Toggle Pin"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","bP")),(0,l.kt)("td",{parentName:"tr",align:null},"Delete Non-Pinned Buffers"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","br")),(0,l.kt)("td",{parentName:"tr",align:null},"Delete Buffers to the Right"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"[b")),(0,l.kt)("td",{parentName:"tr",align:null},"Prev Buffer"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"[B")),(0,l.kt)("td",{parentName:"tr",align:null},"Move buffer prev"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"]b")),(0,l.kt)("td",{parentName:"tr",align:null},"Next Buffer"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"]B")),(0,l.kt)("td",{parentName:"tr",align:null},"Move buffer next"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","S-h",">")),(0,l.kt)("td",{parentName:"tr",align:null},"Prev Buffer"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","S-l",">")),(0,l.kt)("td",{parentName:"tr",align:null},"Next Buffer"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))))),(0,l.kt)("h2",{id:"conformnvim"},(0,l.kt)("a",{parentName:"h2",href:"https://github.com/stevearc/conform.nvim.git"},"conform.nvim")),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Key"),(0,l.kt)("th",{parentName:"tr",align:null},"Description"),(0,l.kt)("th",{parentName:"tr",align:null},"Mode"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","cF")),(0,l.kt)("td",{parentName:"tr",align:null},"Format Injected Langs"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"),", ",(0,l.kt)("strong",{parentName:"td"},"x"))))),(0,l.kt)("h2",{id:"flashnvim"},(0,l.kt)("a",{parentName:"h2",href:"https://github.com/folke/flash.nvim.git"},"flash.nvim")),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Key"),(0,l.kt)("th",{parentName:"tr",align:null},"Description"),(0,l.kt)("th",{parentName:"tr",align:null},"Mode"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","c-s",">")),(0,l.kt)("td",{parentName:"tr",align:null},"Toggle Flash Search"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"c"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"r")),(0,l.kt)("td",{parentName:"tr",align:null},"Remote Flash"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"o"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"R")),(0,l.kt)("td",{parentName:"tr",align:null},"Treesitter Search"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"o"),", ",(0,l.kt)("strong",{parentName:"td"},"x"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"s")),(0,l.kt)("td",{parentName:"tr",align:null},"Flash"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"),", ",(0,l.kt)("strong",{parentName:"td"},"o"),", ",(0,l.kt)("strong",{parentName:"td"},"x"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"S")),(0,l.kt)("td",{parentName:"tr",align:null},"Flash Treesitter"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"),", ",(0,l.kt)("strong",{parentName:"td"},"o"),", ",(0,l.kt)("strong",{parentName:"td"},"x"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","c-space",">")),(0,l.kt)("td",{parentName:"tr",align:null},"Treesitter Incremental Selection"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"),", ",(0,l.kt)("strong",{parentName:"td"},"o"),", ",(0,l.kt)("strong",{parentName:"td"},"x"))))),(0,l.kt)("h2",{id:"grug-farnvim"},(0,l.kt)("a",{parentName:"h2",href:"https://github.com/MagicDuck/grug-far.nvim.git"},"grug-far.nvim")),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Key"),(0,l.kt)("th",{parentName:"tr",align:null},"Description"),(0,l.kt)("th",{parentName:"tr",align:null},"Mode"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","sr")),(0,l.kt)("td",{parentName:"tr",align:null},"Search and Replace"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"),", ",(0,l.kt)("strong",{parentName:"td"},"x"))))),(0,l.kt)("h2",{id:"masonnvim"},(0,l.kt)("a",{parentName:"h2",href:"https://github.com/mason-org/mason.nvim.git"},"mason.nvim")),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Key"),(0,l.kt)("th",{parentName:"tr",align:null},"Description"),(0,l.kt)("th",{parentName:"tr",align:null},"Mode"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","cm")),(0,l.kt)("td",{parentName:"tr",align:null},"Mason"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))))),(0,l.kt)("h2",{id:"noicenvim"},(0,l.kt)("a",{parentName:"h2",href:"https://github.com/folke/noice.nvim.git"},"noice.nvim")),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Key"),(0,l.kt)("th",{parentName:"tr",align:null},"Description"),(0,l.kt)("th",{parentName:"tr",align:null},"Mode"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","c-b",">")),(0,l.kt)("td",{parentName:"tr",align:null},"Scroll Backward"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"),", ",(0,l.kt)("strong",{parentName:"td"},"i"),", ",(0,l.kt)("strong",{parentName:"td"},"s"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","c-f",">")),(0,l.kt)("td",{parentName:"tr",align:null},"Scroll Forward"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"),", ",(0,l.kt)("strong",{parentName:"td"},"i"),", ",(0,l.kt)("strong",{parentName:"td"},"s"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","sn")),(0,l.kt)("td",{parentName:"tr",align:null},"+noice"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","sna")),(0,l.kt)("td",{parentName:"tr",align:null},"Noice All"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","snd")),(0,l.kt)("td",{parentName:"tr",align:null},"Dismiss All"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","snh")),(0,l.kt)("td",{parentName:"tr",align:null},"Noice History"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","snl")),(0,l.kt)("td",{parentName:"tr",align:null},"Noice Last Message"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","snt")),(0,l.kt)("td",{parentName:"tr",align:null},"Noice Picker (Telescope/FzfLua)"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","S-Enter",">")),(0,l.kt)("td",{parentName:"tr",align:null},"Redirect Cmdline"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"c"))))),(0,l.kt)("h2",{id:"persistencenvim"},(0,l.kt)("a",{parentName:"h2",href:"https://github.com/folke/persistence.nvim.git"},"persistence.nvim")),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Key"),(0,l.kt)("th",{parentName:"tr",align:null},"Description"),(0,l.kt)("th",{parentName:"tr",align:null},"Mode"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","qd")),(0,l.kt)("td",{parentName:"tr",align:null},"Don't Save Current Session"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","ql")),(0,l.kt)("td",{parentName:"tr",align:null},"Restore Last Session"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","qs")),(0,l.kt)("td",{parentName:"tr",align:null},"Restore Session"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","qS")),(0,l.kt)("td",{parentName:"tr",align:null},"Select Session"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))))),(0,l.kt)("h2",{id:"snacksnvim"},(0,l.kt)("a",{parentName:"h2",href:"https://github.com/folke/snacks.nvim.git"},"snacks.nvim")),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Key"),(0,l.kt)("th",{parentName:"tr",align:null},"Description"),(0,l.kt)("th",{parentName:"tr",align:null},"Mode"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","<","space",">")),(0,l.kt)("td",{parentName:"tr",align:null},"Find Files (Root Dir)"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">",",")),(0,l.kt)("td",{parentName:"tr",align:null},"Buffers"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">",".")),(0,l.kt)("td",{parentName:"tr",align:null},"Toggle Scratch Buffer"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","/")),(0,l.kt)("td",{parentName:"tr",align:null},"Grep (Root Dir)"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">",":")),(0,l.kt)("td",{parentName:"tr",align:null},"Command History"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","dps")),(0,l.kt)("td",{parentName:"tr",align:null},"Profiler Scratch Buffer"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","e")),(0,l.kt)("td",{parentName:"tr",align:null},"Explorer Snacks (root dir)"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","E")),(0,l.kt)("td",{parentName:"tr",align:null},"Explorer Snacks (cwd)"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","fb")),(0,l.kt)("td",{parentName:"tr",align:null},"Buffers"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","fB")),(0,l.kt)("td",{parentName:"tr",align:null},"Buffers (all)"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","fc")),(0,l.kt)("td",{parentName:"tr",align:null},"Find Config File"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","fe")),(0,l.kt)("td",{parentName:"tr",align:null},"Explorer Snacks (root dir)"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","fE")),(0,l.kt)("td",{parentName:"tr",align:null},"Explorer Snacks (cwd)"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","ff")),(0,l.kt)("td",{parentName:"tr",align:null},"Find Files (Root Dir)"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","fF")),(0,l.kt)("td",{parentName:"tr",align:null},"Find Files (cwd)"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","fg")),(0,l.kt)("td",{parentName:"tr",align:null},"Find Files (git-files)"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","fp")),(0,l.kt)("td",{parentName:"tr",align:null},"Projects"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","fr")),(0,l.kt)("td",{parentName:"tr",align:null},"Recent"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","fR")),(0,l.kt)("td",{parentName:"tr",align:null},"Recent (cwd)"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","gd")),(0,l.kt)("td",{parentName:"tr",align:null},"Git Diff (hunks)"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","gD")),(0,l.kt)("td",{parentName:"tr",align:null},"Git Diff (origin)"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","gs")),(0,l.kt)("td",{parentName:"tr",align:null},"Git Status"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","gS")),(0,l.kt)("td",{parentName:"tr",align:null},"Git Stash"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","n")),(0,l.kt)("td",{parentName:"tr",align:null},"Notification History"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","S")),(0,l.kt)("td",{parentName:"tr",align:null},"Select Scratch Buffer"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">",'s"')),(0,l.kt)("td",{parentName:"tr",align:null},"Registers"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","s/")),(0,l.kt)("td",{parentName:"tr",align:null},"Search History"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","sa")),(0,l.kt)("td",{parentName:"tr",align:null},"Autocmds"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","sb")),(0,l.kt)("td",{parentName:"tr",align:null},"Buffer Lines"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","sB")),(0,l.kt)("td",{parentName:"tr",align:null},"Grep Open Buffers"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","sc")),(0,l.kt)("td",{parentName:"tr",align:null},"Command History"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","sC")),(0,l.kt)("td",{parentName:"tr",align:null},"Commands"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","sd")),(0,l.kt)("td",{parentName:"tr",align:null},"Diagnostics"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","sD")),(0,l.kt)("td",{parentName:"tr",align:null},"Buffer Diagnostics"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","sg")),(0,l.kt)("td",{parentName:"tr",align:null},"Grep (Root Dir)"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","sG")),(0,l.kt)("td",{parentName:"tr",align:null},"Grep (cwd)"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","sh")),(0,l.kt)("td",{parentName:"tr",align:null},"Help Pages"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","sH")),(0,l.kt)("td",{parentName:"tr",align:null},"Highlights"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","si")),(0,l.kt)("td",{parentName:"tr",align:null},"Icons"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","sj")),(0,l.kt)("td",{parentName:"tr",align:null},"Jumps"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","sk")),(0,l.kt)("td",{parentName:"tr",align:null},"Keymaps"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","sl")),(0,l.kt)("td",{parentName:"tr",align:null},"Location List"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","sm")),(0,l.kt)("td",{parentName:"tr",align:null},"Marks"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","sM")),(0,l.kt)("td",{parentName:"tr",align:null},"Man Pages"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","sp")),(0,l.kt)("td",{parentName:"tr",align:null},"Search for Plugin Spec"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","sq")),(0,l.kt)("td",{parentName:"tr",align:null},"Quickfix List"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","sR")),(0,l.kt)("td",{parentName:"tr",align:null},"Resume"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","su")),(0,l.kt)("td",{parentName:"tr",align:null},"Undotree"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","sw")),(0,l.kt)("td",{parentName:"tr",align:null},"Visual selection or word (Root Dir)"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"),", ",(0,l.kt)("strong",{parentName:"td"},"x"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","sW")),(0,l.kt)("td",{parentName:"tr",align:null},"Visual selection or word (cwd)"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"),", ",(0,l.kt)("strong",{parentName:"td"},"x"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","uC")),(0,l.kt)("td",{parentName:"tr",align:null},"Colorschemes"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","un")),(0,l.kt)("td",{parentName:"tr",align:null},"Dismiss All Notifications"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))))),(0,l.kt)("h2",{id:"todo-commentsnvim"},(0,l.kt)("a",{parentName:"h2",href:"https://github.com/folke/todo-comments.nvim.git"},"todo-comments.nvim")),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Key"),(0,l.kt)("th",{parentName:"tr",align:null},"Description"),(0,l.kt)("th",{parentName:"tr",align:null},"Mode"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","st")),(0,l.kt)("td",{parentName:"tr",align:null},"Todo"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","sT")),(0,l.kt)("td",{parentName:"tr",align:null},"Todo/Fix/Fixme"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","xt")),(0,l.kt)("td",{parentName:"tr",align:null},"Todo (Trouble)"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","xT")),(0,l.kt)("td",{parentName:"tr",align:null},"Todo/Fix/Fixme (Trouble)"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"[t")),(0,l.kt)("td",{parentName:"tr",align:null},"Previous Todo Comment"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"]t")),(0,l.kt)("td",{parentName:"tr",align:null},"Next Todo Comment"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))))),(0,l.kt)("h2",{id:"troublenvim"},(0,l.kt)("a",{parentName:"h2",href:"https://github.com/folke/trouble.nvim.git"},"trouble.nvim")),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Key"),(0,l.kt)("th",{parentName:"tr",align:null},"Description"),(0,l.kt)("th",{parentName:"tr",align:null},"Mode"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","cs")),(0,l.kt)("td",{parentName:"tr",align:null},"Symbols (Trouble)"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","cS")),(0,l.kt)("td",{parentName:"tr",align:null},"LSP references/definitions/... (Trouble)"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","xL")),(0,l.kt)("td",{parentName:"tr",align:null},"Location List (Trouble)"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","xQ")),(0,l.kt)("td",{parentName:"tr",align:null},"Quickfix List (Trouble)"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","xx")),(0,l.kt)("td",{parentName:"tr",align:null},"Diagnostics (Trouble)"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","xX")),(0,l.kt)("td",{parentName:"tr",align:null},"Buffer Diagnostics (Trouble)"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"[q")),(0,l.kt)("td",{parentName:"tr",align:null},"Previous Trouble/Quickfix Item"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"]q")),(0,l.kt)("td",{parentName:"tr",align:null},"Next Trouble/Quickfix Item"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))))),(0,l.kt)("h2",{id:"which-keynvim"},(0,l.kt)("a",{parentName:"h2",href:"https://github.com/folke/which-key.nvim.git"},"which-key.nvim")),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Key"),(0,l.kt)("th",{parentName:"tr",align:null},"Description"),(0,l.kt)("th",{parentName:"tr",align:null},"Mode"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","c-w",">","<","space",">")),(0,l.kt)("td",{parentName:"tr",align:null},"Window Hydra Mode (which-key)"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","?")),(0,l.kt)("td",{parentName:"tr",align:null},"Buffer Keymaps (which-key)"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))))),(0,l.kt)("h2",{id:"avantenvim"},(0,l.kt)("a",{parentName:"h2",href:"https://github.com/yetone/avante.nvim.git"},"avante.nvim")),(0,l.kt)("p",null,"Part of ",(0,l.kt)("a",{parentName:"p",href:"/extras/ai/avante"},"lazyvim.plugins.extras.ai.avante")),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Key"),(0,l.kt)("th",{parentName:"tr",align:null},"Description"),(0,l.kt)("th",{parentName:"tr",align:null},"Mode"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","aa")),(0,l.kt)("td",{parentName:"tr",align:null},"Ask Avante"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","ac")),(0,l.kt)("td",{parentName:"tr",align:null},"Chat with Avante"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","ae")),(0,l.kt)("td",{parentName:"tr",align:null},"Edit Avante"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","af")),(0,l.kt)("td",{parentName:"tr",align:null},"Focus Avante"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","ah")),(0,l.kt)("td",{parentName:"tr",align:null},"Avante History"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","am")),(0,l.kt)("td",{parentName:"tr",align:null},"Select Avante Model"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","an")),(0,l.kt)("td",{parentName:"tr",align:null},"New Avante Chat"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","ap")),(0,l.kt)("td",{parentName:"tr",align:null},"Switch Avante Provider"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","ar")),(0,l.kt)("td",{parentName:"tr",align:null},"Refresh Avante"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","as")),(0,l.kt)("td",{parentName:"tr",align:null},"Stop Avante"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","at")),(0,l.kt)("td",{parentName:"tr",align:null},"Toggle Avante"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))))),(0,l.kt)("h2",{id:"claudecodenvim"},(0,l.kt)("a",{parentName:"h2",href:"https://github.com/coder/claudecode.nvim.git"},"claudecode.nvim")),(0,l.kt)("p",null,"Part of ",(0,l.kt)("a",{parentName:"p",href:"/extras/ai/claudecode"},"lazyvim.plugins.extras.ai.claudecode")),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Key"),(0,l.kt)("th",{parentName:"tr",align:null},"Description"),(0,l.kt)("th",{parentName:"tr",align:null},"Mode"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","a")),(0,l.kt)("td",{parentName:"tr",align:null},"+ai"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"),", ",(0,l.kt)("strong",{parentName:"td"},"v"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","aa")),(0,l.kt)("td",{parentName:"tr",align:null},"Accept diff"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","ab")),(0,l.kt)("td",{parentName:"tr",align:null},"Add current buffer"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","ac")),(0,l.kt)("td",{parentName:"tr",align:null},"Toggle Claude"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","aC")),(0,l.kt)("td",{parentName:"tr",align:null},"Continue Claude"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","ad")),(0,l.kt)("td",{parentName:"tr",align:null},"Deny diff"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","af")),(0,l.kt)("td",{parentName:"tr",align:null},"Focus Claude"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","ar")),(0,l.kt)("td",{parentName:"tr",align:null},"Resume Claude"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","as")),(0,l.kt)("td",{parentName:"tr",align:null},"Add file"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","as")),(0,l.kt)("td",{parentName:"tr",align:null},"Send to Claude"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"v"))))),(0,l.kt)("h2",{id:"copilotchatnvim"},(0,l.kt)("a",{parentName:"h2",href:"https://github.com/CopilotC-Nvim/CopilotChat.nvim.git"},"CopilotChat.nvim")),(0,l.kt)("p",null,"Part of ",(0,l.kt)("a",{parentName:"p",href:"/extras/ai/copilot-chat"},"lazyvim.plugins.extras.ai.copilot-chat")),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Key"),(0,l.kt)("th",{parentName:"tr",align:null},"Description"),(0,l.kt)("th",{parentName:"tr",align:null},"Mode"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","c-s",">")),(0,l.kt)("td",{parentName:"tr",align:null},"Submit Prompt"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","a")),(0,l.kt)("td",{parentName:"tr",align:null},"+ai"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"),", ",(0,l.kt)("strong",{parentName:"td"},"x"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","aa")),(0,l.kt)("td",{parentName:"tr",align:null},"Toggle (CopilotChat)"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"),", ",(0,l.kt)("strong",{parentName:"td"},"x"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","ap")),(0,l.kt)("td",{parentName:"tr",align:null},"Prompt Actions (CopilotChat)"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"),", ",(0,l.kt)("strong",{parentName:"td"},"x"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","aq")),(0,l.kt)("td",{parentName:"tr",align:null},"Quick Chat (CopilotChat)"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"),", ",(0,l.kt)("strong",{parentName:"td"},"x"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","ax")),(0,l.kt)("td",{parentName:"tr",align:null},"Clear (CopilotChat)"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"),", ",(0,l.kt)("strong",{parentName:"td"},"x"))))),(0,l.kt)("h2",{id:"sidekicknvim"},(0,l.kt)("a",{parentName:"h2",href:"https://github.com/folke/sidekick.nvim.git"},"sidekick.nvim")),(0,l.kt)("p",null,"Part of ",(0,l.kt)("a",{parentName:"p",href:"/extras/ai/sidekick"},"lazyvim.plugins.extras.ai.sidekick")),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Key"),(0,l.kt)("th",{parentName:"tr",align:null},"Description"),(0,l.kt)("th",{parentName:"tr",align:null},"Mode"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","a")),(0,l.kt)("td",{parentName:"tr",align:null},"+ai"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"),", ",(0,l.kt)("strong",{parentName:"td"},"v"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","aa")),(0,l.kt)("td",{parentName:"tr",align:null},"Sidekick Toggle CLI"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","ad")),(0,l.kt)("td",{parentName:"tr",align:null},"Detach a CLI Session"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","af")),(0,l.kt)("td",{parentName:"tr",align:null},"Send File"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","ap")),(0,l.kt)("td",{parentName:"tr",align:null},"Sidekick Select Prompt"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"),", ",(0,l.kt)("strong",{parentName:"td"},"x"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","as")),(0,l.kt)("td",{parentName:"tr",align:null},"Select CLI"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","at")),(0,l.kt)("td",{parentName:"tr",align:null},"Send This"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"),", ",(0,l.kt)("strong",{parentName:"td"},"x"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","av")),(0,l.kt)("td",{parentName:"tr",align:null},"Send Visual Selection"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"x"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","c-.",">")),(0,l.kt)("td",{parentName:"tr",align:null},"Sidekick Toggle"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"),", ",(0,l.kt)("strong",{parentName:"td"},"i"),", ",(0,l.kt)("strong",{parentName:"td"},"t"),", ",(0,l.kt)("strong",{parentName:"td"},"x"))))),(0,l.kt)("h2",{id:"minisurround"},(0,l.kt)("a",{parentName:"h2",href:"https://github.com/nvim-mini/mini.surround.git"},"mini.surround")),(0,l.kt)("p",null,"Part of ",(0,l.kt)("a",{parentName:"p",href:"/extras/coding/mini-surround"},"lazyvim.plugins.extras.coding.mini-surround")),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Key"),(0,l.kt)("th",{parentName:"tr",align:null},"Description"),(0,l.kt)("th",{parentName:"tr",align:null},"Mode"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"gsa")),(0,l.kt)("td",{parentName:"tr",align:null},"Add Surrounding"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"),", ",(0,l.kt)("strong",{parentName:"td"},"x"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"gsd")),(0,l.kt)("td",{parentName:"tr",align:null},"Delete Surrounding"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"gsf")),(0,l.kt)("td",{parentName:"tr",align:null},"Find Right Surrounding"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"gsF")),(0,l.kt)("td",{parentName:"tr",align:null},"Find Left Surrounding"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"gsh")),(0,l.kt)("td",{parentName:"tr",align:null},"Highlight Surrounding"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"gsn")),(0,l.kt)("td",{parentName:"tr",align:null},"Update ",(0,l.kt)("inlineCode",{parentName:"td"},"MiniSurround.config.n_lines")),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"gsr")),(0,l.kt)("td",{parentName:"tr",align:null},"Replace Surrounding"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))))),(0,l.kt)("h2",{id:"neogen"},(0,l.kt)("a",{parentName:"h2",href:"https://github.com/danymat/neogen.git"},"neogen")),(0,l.kt)("p",null,"Part of ",(0,l.kt)("a",{parentName:"p",href:"/extras/coding/neogen"},"lazyvim.plugins.extras.coding.neogen")),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Key"),(0,l.kt)("th",{parentName:"tr",align:null},"Description"),(0,l.kt)("th",{parentName:"tr",align:null},"Mode"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","cn")),(0,l.kt)("td",{parentName:"tr",align:null},"Generate Annotations (Neogen)"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))))),(0,l.kt)("h2",{id:"yankynvim"},(0,l.kt)("a",{parentName:"h2",href:"https://github.com/gbprod/yanky.nvim.git"},"yanky.nvim")),(0,l.kt)("p",null,"Part of ",(0,l.kt)("a",{parentName:"p",href:"/extras/coding/yanky"},"lazyvim.plugins.extras.coding.yanky")),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Key"),(0,l.kt)("th",{parentName:"tr",align:null},"Description"),(0,l.kt)("th",{parentName:"tr",align:null},"Mode"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","p")),(0,l.kt)("td",{parentName:"tr",align:null},"Open Yank History"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"),", ",(0,l.kt)("strong",{parentName:"td"},"x"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","p")),(0,l.kt)("td",{parentName:"tr",align:null},"Put and Indent Left"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","P")),(0,l.kt)("td",{parentName:"tr",align:null},"Put Before and Indent Left"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"=p")),(0,l.kt)("td",{parentName:"tr",align:null},"Put After Applying a Filter"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"=P")),(0,l.kt)("td",{parentName:"tr",align:null},"Put Before Applying a Filter"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,">","p")),(0,l.kt)("td",{parentName:"tr",align:null},"Put and Indent Right"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,">","P")),(0,l.kt)("td",{parentName:"tr",align:null},"Put Before and Indent Right"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"[p")),(0,l.kt)("td",{parentName:"tr",align:null},"Put Indented Before Cursor (Linewise)"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"[P")),(0,l.kt)("td",{parentName:"tr",align:null},"Put Indented Before Cursor (Linewise)"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"[y")),(0,l.kt)("td",{parentName:"tr",align:null},"Cycle Forward Through Yank History"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"]p")),(0,l.kt)("td",{parentName:"tr",align:null},"Put Indented After Cursor (Linewise)"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"]P")),(0,l.kt)("td",{parentName:"tr",align:null},"Put Indented After Cursor (Linewise)"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"]y")),(0,l.kt)("td",{parentName:"tr",align:null},"Cycle Backward Through Yank History"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"gp")),(0,l.kt)("td",{parentName:"tr",align:null},"Put Text After Selection"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"),", ",(0,l.kt)("strong",{parentName:"td"},"x"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"gP")),(0,l.kt)("td",{parentName:"tr",align:null},"Put Text Before Selection"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"),", ",(0,l.kt)("strong",{parentName:"td"},"x"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"p")),(0,l.kt)("td",{parentName:"tr",align:null},"Put Text After Cursor"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"),", ",(0,l.kt)("strong",{parentName:"td"},"x"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"P")),(0,l.kt)("td",{parentName:"tr",align:null},"Put Text Before Cursor"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"),", ",(0,l.kt)("strong",{parentName:"td"},"x"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"y")),(0,l.kt)("td",{parentName:"tr",align:null},"Yank Text"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"),", ",(0,l.kt)("strong",{parentName:"td"},"x"))))),(0,l.kt)("h2",{id:"nvim-dap"},(0,l.kt)("a",{parentName:"h2",href:"https://github.com/mfussenegger/nvim-dap.git"},"nvim-dap")),(0,l.kt)("p",null,"Part of ",(0,l.kt)("a",{parentName:"p",href:"/extras/dap/core"},"lazyvim.plugins.extras.dap.core")),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Key"),(0,l.kt)("th",{parentName:"tr",align:null},"Description"),(0,l.kt)("th",{parentName:"tr",align:null},"Mode"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","da")),(0,l.kt)("td",{parentName:"tr",align:null},"Run with Args"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","db")),(0,l.kt)("td",{parentName:"tr",align:null},"Toggle Breakpoint"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","dB")),(0,l.kt)("td",{parentName:"tr",align:null},"Breakpoint Condition"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","dc")),(0,l.kt)("td",{parentName:"tr",align:null},"Run/Continue"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","dC")),(0,l.kt)("td",{parentName:"tr",align:null},"Run to Cursor"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","dg")),(0,l.kt)("td",{parentName:"tr",align:null},"Go to Line (No Execute)"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","di")),(0,l.kt)("td",{parentName:"tr",align:null},"Step Into"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","dj")),(0,l.kt)("td",{parentName:"tr",align:null},"Down"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","dk")),(0,l.kt)("td",{parentName:"tr",align:null},"Up"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","dl")),(0,l.kt)("td",{parentName:"tr",align:null},"Run Last"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","do")),(0,l.kt)("td",{parentName:"tr",align:null},"Step Out"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","dO")),(0,l.kt)("td",{parentName:"tr",align:null},"Step Over"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","dP")),(0,l.kt)("td",{parentName:"tr",align:null},"Pause"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","dr")),(0,l.kt)("td",{parentName:"tr",align:null},"Toggle REPL"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","ds")),(0,l.kt)("td",{parentName:"tr",align:null},"Session"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","dt")),(0,l.kt)("td",{parentName:"tr",align:null},"Terminate"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","dw")),(0,l.kt)("td",{parentName:"tr",align:null},"Widgets"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))))),(0,l.kt)("h2",{id:"nvim-dap-ui"},(0,l.kt)("a",{parentName:"h2",href:"https://github.com/rcarriga/nvim-dap-ui.git"},"nvim-dap-ui")),(0,l.kt)("p",null,"Part of ",(0,l.kt)("a",{parentName:"p",href:"/extras/dap/core"},"lazyvim.plugins.extras.dap.core")),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Key"),(0,l.kt)("th",{parentName:"tr",align:null},"Description"),(0,l.kt)("th",{parentName:"tr",align:null},"Mode"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","de")),(0,l.kt)("td",{parentName:"tr",align:null},"Eval"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"),", ",(0,l.kt)("strong",{parentName:"td"},"x"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","du")),(0,l.kt)("td",{parentName:"tr",align:null},"Dap UI"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))))),(0,l.kt)("h2",{id:"aerialnvim"},(0,l.kt)("a",{parentName:"h2",href:"https://github.com/stevearc/aerial.nvim.git"},"aerial.nvim")),(0,l.kt)("p",null,"Part of ",(0,l.kt)("a",{parentName:"p",href:"/extras/editor/aerial"},"lazyvim.plugins.extras.editor.aerial")),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Key"),(0,l.kt)("th",{parentName:"tr",align:null},"Description"),(0,l.kt)("th",{parentName:"tr",align:null},"Mode"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","cs")),(0,l.kt)("td",{parentName:"tr",align:null},"Aerial (Symbols)"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))))),(0,l.kt)("h2",{id:"telescopenvim"},(0,l.kt)("a",{parentName:"h2",href:"https://github.com/nvim-telescope/telescope.nvim.git"},"telescope.nvim")),(0,l.kt)("p",null,"Part of ",(0,l.kt)("a",{parentName:"p",href:"/extras/editor/aerial"},"lazyvim.plugins.extras.editor.aerial")),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Key"),(0,l.kt)("th",{parentName:"tr",align:null},"Description"),(0,l.kt)("th",{parentName:"tr",align:null},"Mode"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","ss")),(0,l.kt)("td",{parentName:"tr",align:null},"Goto Symbol (Aerial)"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))))),(0,l.kt)("h2",{id:"dialnvim"},(0,l.kt)("a",{parentName:"h2",href:"https://github.com/monaqa/dial.nvim.git"},"dial.nvim")),(0,l.kt)("p",null,"Part of ",(0,l.kt)("a",{parentName:"p",href:"/extras/editor/dial"},"lazyvim.plugins.extras.editor.dial")),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Key"),(0,l.kt)("th",{parentName:"tr",align:null},"Description"),(0,l.kt)("th",{parentName:"tr",align:null},"Mode"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","C-a",">")),(0,l.kt)("td",{parentName:"tr",align:null},"Increment"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"),", ",(0,l.kt)("strong",{parentName:"td"},"v"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","C-x",">")),(0,l.kt)("td",{parentName:"tr",align:null},"Decrement"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"),", ",(0,l.kt)("strong",{parentName:"td"},"v"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"g","<","C-a",">")),(0,l.kt)("td",{parentName:"tr",align:null},"Increment"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"),", ",(0,l.kt)("strong",{parentName:"td"},"x"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"g","<","C-x",">")),(0,l.kt)("td",{parentName:"tr",align:null},"Decrement"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"),", ",(0,l.kt)("strong",{parentName:"td"},"x"))))),(0,l.kt)("h2",{id:"harpoon"},(0,l.kt)("a",{parentName:"h2",href:"https://github.com/ThePrimeagen/harpoon.git"},"harpoon")),(0,l.kt)("p",null,"Part of ",(0,l.kt)("a",{parentName:"p",href:"/extras/editor/harpoon2"},"lazyvim.plugins.extras.editor.harpoon2")),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Key"),(0,l.kt)("th",{parentName:"tr",align:null},"Description"),(0,l.kt)("th",{parentName:"tr",align:null},"Mode"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","1")),(0,l.kt)("td",{parentName:"tr",align:null},"Harpoon to File 1"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","2")),(0,l.kt)("td",{parentName:"tr",align:null},"Harpoon to File 2"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","3")),(0,l.kt)("td",{parentName:"tr",align:null},"Harpoon to File 3"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","4")),(0,l.kt)("td",{parentName:"tr",align:null},"Harpoon to File 4"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","5")),(0,l.kt)("td",{parentName:"tr",align:null},"Harpoon to File 5"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","6")),(0,l.kt)("td",{parentName:"tr",align:null},"Harpoon to File 6"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","7")),(0,l.kt)("td",{parentName:"tr",align:null},"Harpoon to File 7"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","8")),(0,l.kt)("td",{parentName:"tr",align:null},"Harpoon to File 8"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","9")),(0,l.kt)("td",{parentName:"tr",align:null},"Harpoon to File 9"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","h")),(0,l.kt)("td",{parentName:"tr",align:null},"Harpoon Quick Menu"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","H")),(0,l.kt)("td",{parentName:"tr",align:null},"Harpoon File"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))))),(0,l.kt)("h2",{id:"vim-illuminate"},(0,l.kt)("a",{parentName:"h2",href:"https://github.com/RRethy/vim-illuminate.git"},"vim-illuminate")),(0,l.kt)("p",null,"Part of ",(0,l.kt)("a",{parentName:"p",href:"/extras/editor/illuminate"},"lazyvim.plugins.extras.editor.illuminate")),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Key"),(0,l.kt)("th",{parentName:"tr",align:null},"Description"),(0,l.kt)("th",{parentName:"tr",align:null},"Mode"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"[[")),(0,l.kt)("td",{parentName:"tr",align:null},"Prev Reference"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"]]")),(0,l.kt)("td",{parentName:"tr",align:null},"Next Reference"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))))),(0,l.kt)("h2",{id:"leapnvim"},(0,l.kt)("a",{parentName:"h2",href:"https://github.com/ggandor/leap.nvim.git"},"leap.nvim")),(0,l.kt)("p",null,"Part of ",(0,l.kt)("a",{parentName:"p",href:"/extras/editor/leap"},"lazyvim.plugins.extras.editor.leap")),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Key"),(0,l.kt)("th",{parentName:"tr",align:null},"Description"),(0,l.kt)("th",{parentName:"tr",align:null},"Mode"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"gs")),(0,l.kt)("td",{parentName:"tr",align:null},"Leap from Windows"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"),", ",(0,l.kt)("strong",{parentName:"td"},"o"),", ",(0,l.kt)("strong",{parentName:"td"},"x"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"s")),(0,l.kt)("td",{parentName:"tr",align:null},"Leap Forward to"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"),", ",(0,l.kt)("strong",{parentName:"td"},"o"),", ",(0,l.kt)("strong",{parentName:"td"},"x"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"S")),(0,l.kt)("td",{parentName:"tr",align:null},"Leap Backward to"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"),", ",(0,l.kt)("strong",{parentName:"td"},"o"),", ",(0,l.kt)("strong",{parentName:"td"},"x"))))),(0,l.kt)("h2",{id:"minisurround-1"},(0,l.kt)("a",{parentName:"h2",href:"https://github.com/nvim-mini/mini.surround.git"},"mini.surround")),(0,l.kt)("p",null,"Part of ",(0,l.kt)("a",{parentName:"p",href:"/extras/editor/leap"},"lazyvim.plugins.extras.editor.leap")),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Key"),(0,l.kt)("th",{parentName:"tr",align:null},"Description"),(0,l.kt)("th",{parentName:"tr",align:null},"Mode"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"gz")),(0,l.kt)("td",{parentName:"tr",align:null},"+surround"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))))),(0,l.kt)("h2",{id:"minidiff"},(0,l.kt)("a",{parentName:"h2",href:"https://github.com/nvim-mini/mini.diff.git"},"mini.diff")),(0,l.kt)("p",null,"Part of ",(0,l.kt)("a",{parentName:"p",href:"/extras/editor/mini-diff"},"lazyvim.plugins.extras.editor.mini-diff")),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Key"),(0,l.kt)("th",{parentName:"tr",align:null},"Description"),(0,l.kt)("th",{parentName:"tr",align:null},"Mode"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","go")),(0,l.kt)("td",{parentName:"tr",align:null},"Toggle mini.diff overlay"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))))),(0,l.kt)("h2",{id:"minifiles"},(0,l.kt)("a",{parentName:"h2",href:"https://github.com/nvim-mini/mini.files.git"},"mini.files")),(0,l.kt)("p",null,"Part of ",(0,l.kt)("a",{parentName:"p",href:"/extras/editor/mini-files"},"lazyvim.plugins.extras.editor.mini-files")),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Key"),(0,l.kt)("th",{parentName:"tr",align:null},"Description"),(0,l.kt)("th",{parentName:"tr",align:null},"Mode"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","fm")),(0,l.kt)("td",{parentName:"tr",align:null},"Open mini.files (Directory of Current File)"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","fM")),(0,l.kt)("td",{parentName:"tr",align:null},"Open mini.files (cwd)"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))))),(0,l.kt)("h2",{id:"outlinenvim"},(0,l.kt)("a",{parentName:"h2",href:"https://github.com/hedyhli/outline.nvim.git"},"outline.nvim")),(0,l.kt)("p",null,"Part of ",(0,l.kt)("a",{parentName:"p",href:"/extras/editor/outline"},"lazyvim.plugins.extras.editor.outline")),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Key"),(0,l.kt)("th",{parentName:"tr",align:null},"Description"),(0,l.kt)("th",{parentName:"tr",align:null},"Mode"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","cs")),(0,l.kt)("td",{parentName:"tr",align:null},"Toggle Outline"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))))),(0,l.kt)("h2",{id:"overseernvim"},(0,l.kt)("a",{parentName:"h2",href:"https://github.com/stevearc/overseer.nvim.git"},"overseer.nvim")),(0,l.kt)("p",null,"Part of ",(0,l.kt)("a",{parentName:"p",href:"/extras/editor/overseer"},"lazyvim.plugins.extras.editor.overseer")),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Key"),(0,l.kt)("th",{parentName:"tr",align:null},"Description"),(0,l.kt)("th",{parentName:"tr",align:null},"Mode"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","ob")),(0,l.kt)("td",{parentName:"tr",align:null},"Task builder"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","oc")),(0,l.kt)("td",{parentName:"tr",align:null},"Clear cache"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","oi")),(0,l.kt)("td",{parentName:"tr",align:null},"Overseer Info"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","oo")),(0,l.kt)("td",{parentName:"tr",align:null},"Run task"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","oq")),(0,l.kt)("td",{parentName:"tr",align:null},"Action recent task"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","ot")),(0,l.kt)("td",{parentName:"tr",align:null},"Task action"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","ow")),(0,l.kt)("td",{parentName:"tr",align:null},"Task list"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))))),(0,l.kt)("h2",{id:"refactoringnvim"},(0,l.kt)("a",{parentName:"h2",href:"https://github.com/ThePrimeagen/refactoring.nvim.git"},"refactoring.nvim")),(0,l.kt)("p",null,"Part of ",(0,l.kt)("a",{parentName:"p",href:"/extras/editor/refactoring"},"lazyvim.plugins.extras.editor.refactoring")),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Key"),(0,l.kt)("th",{parentName:"tr",align:null},"Description"),(0,l.kt)("th",{parentName:"tr",align:null},"Mode"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","r")),(0,l.kt)("td",{parentName:"tr",align:null},"+refactor"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"),", ",(0,l.kt)("strong",{parentName:"td"},"x"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","rb")),(0,l.kt)("td",{parentName:"tr",align:null},"Extract Block"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"),", ",(0,l.kt)("strong",{parentName:"td"},"x"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","rc")),(0,l.kt)("td",{parentName:"tr",align:null},"Debug Cleanup"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","rf")),(0,l.kt)("td",{parentName:"tr",align:null},"Extract Function"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"),", ",(0,l.kt)("strong",{parentName:"td"},"x"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","rF")),(0,l.kt)("td",{parentName:"tr",align:null},"Extract Function To File"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"),", ",(0,l.kt)("strong",{parentName:"td"},"x"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","ri")),(0,l.kt)("td",{parentName:"tr",align:null},"Inline Variable"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"),", ",(0,l.kt)("strong",{parentName:"td"},"x"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","rp")),(0,l.kt)("td",{parentName:"tr",align:null},"Debug Print Variable"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"),", ",(0,l.kt)("strong",{parentName:"td"},"x"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","rP")),(0,l.kt)("td",{parentName:"tr",align:null},"Debug Print"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","rs")),(0,l.kt)("td",{parentName:"tr",align:null},"Refactor"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"),", ",(0,l.kt)("strong",{parentName:"td"},"x"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","rx")),(0,l.kt)("td",{parentName:"tr",align:null},"Extract Variable"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"),", ",(0,l.kt)("strong",{parentName:"td"},"x"))))),(0,l.kt)("h2",{id:"snacksnvim-1"},(0,l.kt)("a",{parentName:"h2",href:"https://github.com/folke/snacks.nvim.git"},"snacks.nvim")),(0,l.kt)("p",null,"Part of ",(0,l.kt)("a",{parentName:"p",href:"/extras/editor/snacks_explorer"},"lazyvim.plugins.extras.editor.snacks_explorer")),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Key"),(0,l.kt)("th",{parentName:"tr",align:null},"Description"),(0,l.kt)("th",{parentName:"tr",align:null},"Mode"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","e")),(0,l.kt)("td",{parentName:"tr",align:null},"Explorer Snacks (root dir)"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","E")),(0,l.kt)("td",{parentName:"tr",align:null},"Explorer Snacks (cwd)"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","fe")),(0,l.kt)("td",{parentName:"tr",align:null},"Explorer Snacks (root dir)"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","fE")),(0,l.kt)("td",{parentName:"tr",align:null},"Explorer Snacks (cwd)"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))))),(0,l.kt)("h2",{id:"snacksnvim-2"},(0,l.kt)("a",{parentName:"h2",href:"https://github.com/folke/snacks.nvim.git"},"snacks.nvim")),(0,l.kt)("p",null,"Part of ",(0,l.kt)("a",{parentName:"p",href:"/extras/editor/snacks_picker"},"lazyvim.plugins.extras.editor.snacks_picker")),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Key"),(0,l.kt)("th",{parentName:"tr",align:null},"Description"),(0,l.kt)("th",{parentName:"tr",align:null},"Mode"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","<","space",">")),(0,l.kt)("td",{parentName:"tr",align:null},"Find Files (Root Dir)"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">",",")),(0,l.kt)("td",{parentName:"tr",align:null},"Buffers"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","/")),(0,l.kt)("td",{parentName:"tr",align:null},"Grep (Root Dir)"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">",":")),(0,l.kt)("td",{parentName:"tr",align:null},"Command History"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","fb")),(0,l.kt)("td",{parentName:"tr",align:null},"Buffers"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","fB")),(0,l.kt)("td",{parentName:"tr",align:null},"Buffers (all)"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","fc")),(0,l.kt)("td",{parentName:"tr",align:null},"Find Config File"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","ff")),(0,l.kt)("td",{parentName:"tr",align:null},"Find Files (Root Dir)"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","fF")),(0,l.kt)("td",{parentName:"tr",align:null},"Find Files (cwd)"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","fg")),(0,l.kt)("td",{parentName:"tr",align:null},"Find Files (git-files)"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","fp")),(0,l.kt)("td",{parentName:"tr",align:null},"Projects"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","fr")),(0,l.kt)("td",{parentName:"tr",align:null},"Recent"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","fR")),(0,l.kt)("td",{parentName:"tr",align:null},"Recent (cwd)"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","gd")),(0,l.kt)("td",{parentName:"tr",align:null},"Git Diff (hunks)"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","gD")),(0,l.kt)("td",{parentName:"tr",align:null},"Git Diff (origin)"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","gs")),(0,l.kt)("td",{parentName:"tr",align:null},"Git Status"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","gS")),(0,l.kt)("td",{parentName:"tr",align:null},"Git Stash"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","n")),(0,l.kt)("td",{parentName:"tr",align:null},"Notification History"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">",'s"')),(0,l.kt)("td",{parentName:"tr",align:null},"Registers"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","s/")),(0,l.kt)("td",{parentName:"tr",align:null},"Search History"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","sa")),(0,l.kt)("td",{parentName:"tr",align:null},"Autocmds"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","sb")),(0,l.kt)("td",{parentName:"tr",align:null},"Buffer Lines"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","sB")),(0,l.kt)("td",{parentName:"tr",align:null},"Grep Open Buffers"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","sc")),(0,l.kt)("td",{parentName:"tr",align:null},"Command History"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","sC")),(0,l.kt)("td",{parentName:"tr",align:null},"Commands"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","sd")),(0,l.kt)("td",{parentName:"tr",align:null},"Diagnostics"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","sD")),(0,l.kt)("td",{parentName:"tr",align:null},"Buffer Diagnostics"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","sg")),(0,l.kt)("td",{parentName:"tr",align:null},"Grep (Root Dir)"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","sG")),(0,l.kt)("td",{parentName:"tr",align:null},"Grep (cwd)"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","sh")),(0,l.kt)("td",{parentName:"tr",align:null},"Help Pages"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","sH")),(0,l.kt)("td",{parentName:"tr",align:null},"Highlights"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","si")),(0,l.kt)("td",{parentName:"tr",align:null},"Icons"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","sj")),(0,l.kt)("td",{parentName:"tr",align:null},"Jumps"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","sk")),(0,l.kt)("td",{parentName:"tr",align:null},"Keymaps"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","sl")),(0,l.kt)("td",{parentName:"tr",align:null},"Location List"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","sm")),(0,l.kt)("td",{parentName:"tr",align:null},"Marks"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","sM")),(0,l.kt)("td",{parentName:"tr",align:null},"Man Pages"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","sp")),(0,l.kt)("td",{parentName:"tr",align:null},"Search for Plugin Spec"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","sq")),(0,l.kt)("td",{parentName:"tr",align:null},"Quickfix List"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","sR")),(0,l.kt)("td",{parentName:"tr",align:null},"Resume"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","su")),(0,l.kt)("td",{parentName:"tr",align:null},"Undotree"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","sw")),(0,l.kt)("td",{parentName:"tr",align:null},"Visual selection or word (Root Dir)"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"),", ",(0,l.kt)("strong",{parentName:"td"},"x"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","sW")),(0,l.kt)("td",{parentName:"tr",align:null},"Visual selection or word (cwd)"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"),", ",(0,l.kt)("strong",{parentName:"td"},"x"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","uC")),(0,l.kt)("td",{parentName:"tr",align:null},"Colorschemes"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))))),(0,l.kt)("h2",{id:"todo-commentsnvim-1"},(0,l.kt)("a",{parentName:"h2",href:"https://github.com/folke/todo-comments.nvim.git"},"todo-comments.nvim")),(0,l.kt)("p",null,"Part of ",(0,l.kt)("a",{parentName:"p",href:"/extras/editor/snacks_picker"},"lazyvim.plugins.extras.editor.snacks_picker")),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Key"),(0,l.kt)("th",{parentName:"tr",align:null},"Description"),(0,l.kt)("th",{parentName:"tr",align:null},"Mode"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","st")),(0,l.kt)("td",{parentName:"tr",align:null},"Todo"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","sT")),(0,l.kt)("td",{parentName:"tr",align:null},"Todo/Fix/Fixme"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))))),(0,l.kt)("h2",{id:"nvim-ansible"},(0,l.kt)("a",{parentName:"h2",href:"https://github.com/mfussenegger/nvim-ansible.git"},"nvim-ansible")),(0,l.kt)("p",null,"Part of ",(0,l.kt)("a",{parentName:"p",href:"/extras/lang/ansible"},"lazyvim.plugins.extras.lang.ansible")),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Key"),(0,l.kt)("th",{parentName:"tr",align:null},"Description"),(0,l.kt)("th",{parentName:"tr",align:null},"Mode"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","ta")),(0,l.kt)("td",{parentName:"tr",align:null},"Ansible Run Playbook/Role"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))))),(0,l.kt)("h2",{id:"haskell-toolsnvim"},(0,l.kt)("a",{parentName:"h2",href:"https://github.com/mrcjkb/haskell-tools.nvim.git"},"haskell-tools.nvim")),(0,l.kt)("p",null,"Part of ",(0,l.kt)("a",{parentName:"p",href:"/extras/lang/haskell"},"lazyvim.plugins.extras.lang.haskell")),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Key"),(0,l.kt)("th",{parentName:"tr",align:null},"Description"),(0,l.kt)("th",{parentName:"tr",align:null},"Mode"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","localleader",">","e")),(0,l.kt)("td",{parentName:"tr",align:null},"Evaluate All"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","localleader",">","h")),(0,l.kt)("td",{parentName:"tr",align:null},"Hoogle Signature"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","localleader",">","r")),(0,l.kt)("td",{parentName:"tr",align:null},"REPL (Package)"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","localleader",">","R")),(0,l.kt)("td",{parentName:"tr",align:null},"REPL (Buffer)"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))))),(0,l.kt)("h2",{id:"telescope_hoogle"},(0,l.kt)("a",{parentName:"h2",href:"https://github.com/luc-tielen/telescope_hoogle.git"},"telescope_hoogle")),(0,l.kt)("p",null,"Part of ",(0,l.kt)("a",{parentName:"p",href:"/extras/lang/haskell"},"lazyvim.plugins.extras.lang.haskell")),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Key"),(0,l.kt)("th",{parentName:"tr",align:null},"Description"),(0,l.kt)("th",{parentName:"tr",align:null},"Mode"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","localleader",">","H")),(0,l.kt)("td",{parentName:"tr",align:null},"Hoogle"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))))),(0,l.kt)("h2",{id:"markdown-previewnvim"},(0,l.kt)("a",{parentName:"h2",href:"https://github.com/iamcco/markdown-preview.nvim.git"},"markdown-preview.nvim")),(0,l.kt)("p",null,"Part of ",(0,l.kt)("a",{parentName:"p",href:"/extras/lang/markdown"},"lazyvim.plugins.extras.lang.markdown")),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Key"),(0,l.kt)("th",{parentName:"tr",align:null},"Description"),(0,l.kt)("th",{parentName:"tr",align:null},"Mode"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","cp")),(0,l.kt)("td",{parentName:"tr",align:null},"Markdown Preview"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))))),(0,l.kt)("h2",{id:"nvim-dap-python"},(0,l.kt)("a",{parentName:"h2",href:"https://github.com/mfussenegger/nvim-dap-python.git"},"nvim-dap-python")),(0,l.kt)("p",null,"Part of ",(0,l.kt)("a",{parentName:"p",href:"/extras/lang/python"},"lazyvim.plugins.extras.lang.python")),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Key"),(0,l.kt)("th",{parentName:"tr",align:null},"Description"),(0,l.kt)("th",{parentName:"tr",align:null},"Mode"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","dPc")),(0,l.kt)("td",{parentName:"tr",align:null},"Debug Class"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","dPt")),(0,l.kt)("td",{parentName:"tr",align:null},"Debug Method"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))))),(0,l.kt)("h2",{id:"venv-selectornvim"},(0,l.kt)("a",{parentName:"h2",href:"https://github.com/linux-cultist/venv-selector.nvim.git"},"venv-selector.nvim")),(0,l.kt)("p",null,"Part of ",(0,l.kt)("a",{parentName:"p",href:"/extras/lang/python"},"lazyvim.plugins.extras.lang.python")),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Key"),(0,l.kt)("th",{parentName:"tr",align:null},"Description"),(0,l.kt)("th",{parentName:"tr",align:null},"Mode"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","cv")),(0,l.kt)("td",{parentName:"tr",align:null},"Select VirtualEnv"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))))),(0,l.kt)("h2",{id:"nvim-metals"},(0,l.kt)("a",{parentName:"h2",href:"https://github.com/scalameta/nvim-metals.git"},"nvim-metals")),(0,l.kt)("p",null,"Part of ",(0,l.kt)("a",{parentName:"p",href:"/extras/lang/scala"},"lazyvim.plugins.extras.lang.scala")),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Key"),(0,l.kt)("th",{parentName:"tr",align:null},"Description"),(0,l.kt)("th",{parentName:"tr",align:null},"Mode"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","mc")),(0,l.kt)("td",{parentName:"tr",align:null},"Metals compile cascade"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","me")),(0,l.kt)("td",{parentName:"tr",align:null},"Metals commands"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","mh")),(0,l.kt)("td",{parentName:"tr",align:null},"Metals hover worksheet"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))))),(0,l.kt)("h2",{id:"vim-dadbod-ui"},(0,l.kt)("a",{parentName:"h2",href:"https://github.com/kristijanhusak/vim-dadbod-ui.git"},"vim-dadbod-ui")),(0,l.kt)("p",null,"Part of ",(0,l.kt)("a",{parentName:"p",href:"/extras/lang/sql"},"lazyvim.plugins.extras.lang.sql")),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Key"),(0,l.kt)("th",{parentName:"tr",align:null},"Description"),(0,l.kt)("th",{parentName:"tr",align:null},"Mode"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","D")),(0,l.kt)("td",{parentName:"tr",align:null},"Toggle DBUI"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))))),(0,l.kt)("h2",{id:"vimtex"},(0,l.kt)("a",{parentName:"h2",href:"https://github.com/lervag/vimtex.git"},"vimtex")),(0,l.kt)("p",null,"Part of ",(0,l.kt)("a",{parentName:"p",href:"/extras/lang/tex"},"lazyvim.plugins.extras.lang.tex")),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Key"),(0,l.kt)("th",{parentName:"tr",align:null},"Description"),(0,l.kt)("th",{parentName:"tr",align:null},"Mode"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","localLeader",">","l")),(0,l.kt)("td",{parentName:"tr",align:null},"+vimtex"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))))),(0,l.kt)("h2",{id:"typst-previewnvim"},(0,l.kt)("a",{parentName:"h2",href:"https://github.com/chomosuke/typst-preview.nvim.git"},"typst-preview.nvim")),(0,l.kt)("p",null,"Part of ",(0,l.kt)("a",{parentName:"p",href:"/extras/lang/typst"},"lazyvim.plugins.extras.lang.typst")),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Key"),(0,l.kt)("th",{parentName:"tr",align:null},"Description"),(0,l.kt)("th",{parentName:"tr",align:null},"Mode"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","cp")),(0,l.kt)("td",{parentName:"tr",align:null},"Toggle Typst Preview"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))))),(0,l.kt)("h2",{id:"neotest"},(0,l.kt)("a",{parentName:"h2",href:"https://github.com/nvim-neotest/neotest.git"},"neotest")),(0,l.kt)("p",null,"Part of ",(0,l.kt)("a",{parentName:"p",href:"/extras/test/core"},"lazyvim.plugins.extras.test.core")),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Key"),(0,l.kt)("th",{parentName:"tr",align:null},"Description"),(0,l.kt)("th",{parentName:"tr",align:null},"Mode"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","t")),(0,l.kt)("td",{parentName:"tr",align:null},"+test"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","ta")),(0,l.kt)("td",{parentName:"tr",align:null},"Attach to Test (Neotest)"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","tl")),(0,l.kt)("td",{parentName:"tr",align:null},"Run Last (Neotest)"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","to")),(0,l.kt)("td",{parentName:"tr",align:null},"Show Output (Neotest)"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","tO")),(0,l.kt)("td",{parentName:"tr",align:null},"Toggle Output Panel (Neotest)"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","tr")),(0,l.kt)("td",{parentName:"tr",align:null},"Run Nearest (Neotest)"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","ts")),(0,l.kt)("td",{parentName:"tr",align:null},"Toggle Summary (Neotest)"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","tS")),(0,l.kt)("td",{parentName:"tr",align:null},"Stop (Neotest)"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","tt")),(0,l.kt)("td",{parentName:"tr",align:null},"Run File (Neotest)"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","tT")),(0,l.kt)("td",{parentName:"tr",align:null},"Run All Test Files (Neotest)"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","tw")),(0,l.kt)("td",{parentName:"tr",align:null},"Toggle Watch (Neotest)"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))))),(0,l.kt)("h2",{id:"nvim-dap-1"},(0,l.kt)("a",{parentName:"h2",href:"https://github.com/mfussenegger/nvim-dap.git"},"nvim-dap")),(0,l.kt)("p",null,"Part of ",(0,l.kt)("a",{parentName:"p",href:"/extras/test/core"},"lazyvim.plugins.extras.test.core")),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Key"),(0,l.kt)("th",{parentName:"tr",align:null},"Description"),(0,l.kt)("th",{parentName:"tr",align:null},"Mode"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","td")),(0,l.kt)("td",{parentName:"tr",align:null},"Debug Nearest"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))))),(0,l.kt)("h2",{id:"edgynvim"},(0,l.kt)("a",{parentName:"h2",href:"https://github.com/folke/edgy.nvim.git"},"edgy.nvim")),(0,l.kt)("p",null,"Part of ",(0,l.kt)("a",{parentName:"p",href:"/extras/ui/edgy"},"lazyvim.plugins.extras.ui.edgy")),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Key"),(0,l.kt)("th",{parentName:"tr",align:null},"Description"),(0,l.kt)("th",{parentName:"tr",align:null},"Mode"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","ue")),(0,l.kt)("td",{parentName:"tr",align:null},"Edgy Toggle"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","uE")),(0,l.kt)("td",{parentName:"tr",align:null},"Edgy Select Window"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))))),(0,l.kt)("h2",{id:"chezmoinvim"},(0,l.kt)("a",{parentName:"h2",href:"https://github.com/xvzc/chezmoi.nvim.git"},"chezmoi.nvim")),(0,l.kt)("p",null,"Part of ",(0,l.kt)("a",{parentName:"p",href:"/extras/util/chezmoi"},"lazyvim.plugins.extras.util.chezmoi")),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Key"),(0,l.kt)("th",{parentName:"tr",align:null},"Description"),(0,l.kt)("th",{parentName:"tr",align:null},"Mode"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","sz")),(0,l.kt)("td",{parentName:"tr",align:null},"Chezmoi"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))))),(0,l.kt)("h2",{id:"ghnvim"},(0,l.kt)("a",{parentName:"h2",href:"https://github.com/ldelossa/gh.nvim.git"},"gh.nvim")),(0,l.kt)("p",null,"Part of ",(0,l.kt)("a",{parentName:"p",href:"/extras/util/gh"},"lazyvim.plugins.extras.util.gh")),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Key"),(0,l.kt)("th",{parentName:"tr",align:null},"Description"),(0,l.kt)("th",{parentName:"tr",align:null},"Mode"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","G")),(0,l.kt)("td",{parentName:"tr",align:null},"+Github"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","Gc")),(0,l.kt)("td",{parentName:"tr",align:null},"+Commits"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","Gcc")),(0,l.kt)("td",{parentName:"tr",align:null},"Close"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","Gce")),(0,l.kt)("td",{parentName:"tr",align:null},"Expand"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","Gco")),(0,l.kt)("td",{parentName:"tr",align:null},"Open To"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","Gcp")),(0,l.kt)("td",{parentName:"tr",align:null},"Pop Out"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","Gcz")),(0,l.kt)("td",{parentName:"tr",align:null},"Collapse"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","Gi")),(0,l.kt)("td",{parentName:"tr",align:null},"+Issues"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","Gio")),(0,l.kt)("td",{parentName:"tr",align:null},"Open"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","Gip")),(0,l.kt)("td",{parentName:"tr",align:null},"Preview"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","Gl")),(0,l.kt)("td",{parentName:"tr",align:null},"+Litee"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","Glt")),(0,l.kt)("td",{parentName:"tr",align:null},"Toggle Panel"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","Gp")),(0,l.kt)("td",{parentName:"tr",align:null},"+Pull Request"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","Gpc")),(0,l.kt)("td",{parentName:"tr",align:null},"Close"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","Gpd")),(0,l.kt)("td",{parentName:"tr",align:null},"Details"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","Gpe")),(0,l.kt)("td",{parentName:"tr",align:null},"Expand"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","Gpo")),(0,l.kt)("td",{parentName:"tr",align:null},"Open"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","Gpp")),(0,l.kt)("td",{parentName:"tr",align:null},"PopOut"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","Gpr")),(0,l.kt)("td",{parentName:"tr",align:null},"Refresh"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","Gpt")),(0,l.kt)("td",{parentName:"tr",align:null},"Open To"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","Gpz")),(0,l.kt)("td",{parentName:"tr",align:null},"Collapse"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","Gr")),(0,l.kt)("td",{parentName:"tr",align:null},"+Review"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","Grb")),(0,l.kt)("td",{parentName:"tr",align:null},"Begin"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","Grc")),(0,l.kt)("td",{parentName:"tr",align:null},"Close"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","Grd")),(0,l.kt)("td",{parentName:"tr",align:null},"Delete"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","Gre")),(0,l.kt)("td",{parentName:"tr",align:null},"Expand"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","Grs")),(0,l.kt)("td",{parentName:"tr",align:null},"Submit"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","Grz")),(0,l.kt)("td",{parentName:"tr",align:null},"Collapse"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","Gt")),(0,l.kt)("td",{parentName:"tr",align:null},"+Threads"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","Gtc")),(0,l.kt)("td",{parentName:"tr",align:null},"Create"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","Gtn")),(0,l.kt)("td",{parentName:"tr",align:null},"Next"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","Gtt")),(0,l.kt)("td",{parentName:"tr",align:null},"Toggle"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))))),(0,l.kt)("h2",{id:"masonnvim-1"},(0,l.kt)("a",{parentName:"h2",href:"https://github.com/mason-org/mason.nvim.git"},"mason.nvim")),(0,l.kt)("p",null,"Part of ",(0,l.kt)("a",{parentName:"p",href:"/extras/util/gitui"},"lazyvim.plugins.extras.util.gitui")),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Key"),(0,l.kt)("th",{parentName:"tr",align:null},"Description"),(0,l.kt)("th",{parentName:"tr",align:null},"Mode"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","gg")),(0,l.kt)("td",{parentName:"tr",align:null},"GitUi (Root Dir)"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","gG")),(0,l.kt)("td",{parentName:"tr",align:null},"GitUi (cwd)"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))))),(0,l.kt)("h2",{id:"octonvim"},(0,l.kt)("a",{parentName:"h2",href:"https://github.com/pwntester/octo.nvim.git"},"octo.nvim")),(0,l.kt)("p",null,"Part of ",(0,l.kt)("a",{parentName:"p",href:"/extras/util/octo"},"lazyvim.plugins.extras.util.octo")),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Key"),(0,l.kt)("th",{parentName:"tr",align:null},"Description"),(0,l.kt)("th",{parentName:"tr",align:null},"Mode"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","gi")),(0,l.kt)("td",{parentName:"tr",align:null},"List Issues (Octo)"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","gI")),(0,l.kt)("td",{parentName:"tr",align:null},"Search Issues (Octo)"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","gp")),(0,l.kt)("td",{parentName:"tr",align:null},"List PRs (Octo)"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","gP")),(0,l.kt)("td",{parentName:"tr",align:null},"Search PRs (Octo)"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","gr")),(0,l.kt)("td",{parentName:"tr",align:null},"List Repos (Octo)"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","gS")),(0,l.kt)("td",{parentName:"tr",align:null},"Search (Octo)"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","localleader",">","a")),(0,l.kt)("td",{parentName:"tr",align:null},"+assignee (Octo)"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","localleader",">","c")),(0,l.kt)("td",{parentName:"tr",align:null},"+comment/code (Octo)"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","localleader",">","g")),(0,l.kt)("td",{parentName:"tr",align:null},"+goto_issue (Octo)"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","localleader",">","i")),(0,l.kt)("td",{parentName:"tr",align:null},"+issue (Octo)"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","localleader",">","l")),(0,l.kt)("td",{parentName:"tr",align:null},"+label (Octo)"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","localleader",">","p")),(0,l.kt)("td",{parentName:"tr",align:null},"+pr (Octo)"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","localleader",">","pr")),(0,l.kt)("td",{parentName:"tr",align:null},"+rebase (Octo)"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","localleader",">","ps")),(0,l.kt)("td",{parentName:"tr",align:null},"+squash (Octo)"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","localleader",">","r")),(0,l.kt)("td",{parentName:"tr",align:null},"+react (Octo)"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","localleader",">","v")),(0,l.kt)("td",{parentName:"tr",align:null},"+review (Octo)"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))))),(0,l.kt)("h2",{id:"fzf-lua"},(0,l.kt)("a",{parentName:"h2",href:"https://github.com/ibhagwan/fzf-lua.git"},"fzf-lua")),(0,l.kt)("p",null,"Part of ",(0,l.kt)("a",{parentName:"p",href:"/extras/util/project"},"lazyvim.plugins.extras.util.project")),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Key"),(0,l.kt)("th",{parentName:"tr",align:null},"Description"),(0,l.kt)("th",{parentName:"tr",align:null},"Mode"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","fp")),(0,l.kt)("td",{parentName:"tr",align:null},"Projects"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))))),(0,l.kt)("h2",{id:"telescopenvim-1"},(0,l.kt)("a",{parentName:"h2",href:"https://github.com/nvim-telescope/telescope.nvim.git"},"telescope.nvim")),(0,l.kt)("p",null,"Part of ",(0,l.kt)("a",{parentName:"p",href:"/extras/util/project"},"lazyvim.plugins.extras.util.project")),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Key"),(0,l.kt)("th",{parentName:"tr",align:null},"Description"),(0,l.kt)("th",{parentName:"tr",align:null},"Mode"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","fp")),(0,l.kt)("td",{parentName:"tr",align:null},"Projects"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))))),(0,l.kt)("h2",{id:"kulalanvim"},(0,l.kt)("a",{parentName:"h2",href:"https://github.com/mistweaverco/kulala.nvim.git"},"kulala.nvim")),(0,l.kt)("p",null,"Part of ",(0,l.kt)("a",{parentName:"p",href:"/extras/util/rest"},"lazyvim.plugins.extras.util.rest")),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Key"),(0,l.kt)("th",{parentName:"tr",align:null},"Description"),(0,l.kt)("th",{parentName:"tr",align:null},"Mode"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","R")),(0,l.kt)("td",{parentName:"tr",align:null},"+Rest"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","Rb")),(0,l.kt)("td",{parentName:"tr",align:null},"Open scratchpad"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","Rc")),(0,l.kt)("td",{parentName:"tr",align:null},"Copy as cURL"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","RC")),(0,l.kt)("td",{parentName:"tr",align:null},"Paste from curl"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","Re")),(0,l.kt)("td",{parentName:"tr",align:null},"Set environment"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","Rg")),(0,l.kt)("td",{parentName:"tr",align:null},"Download GraphQL schema"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","Ri")),(0,l.kt)("td",{parentName:"tr",align:null},"Inspect current request"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","Rn")),(0,l.kt)("td",{parentName:"tr",align:null},"Jump to next request"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","Rp")),(0,l.kt)("td",{parentName:"tr",align:null},"Jump to previous request"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","Rq")),(0,l.kt)("td",{parentName:"tr",align:null},"Close window"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","Rr")),(0,l.kt)("td",{parentName:"tr",align:null},"Replay the last request"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","Rs")),(0,l.kt)("td",{parentName:"tr",align:null},"Send the request"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","RS")),(0,l.kt)("td",{parentName:"tr",align:null},"Show stats"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("code",null,"<","leader",">","Rt")),(0,l.kt)("td",{parentName:"tr",align:null},"Toggle headers/body"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"td"},"n"))))))}N.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/36e7d211.cda0b050.js b/assets/js/36e7d211.cda0b050.js new file mode 100644 index 0000000000..c2c82914dd --- /dev/null +++ b/assets/js/36e7d211.cda0b050.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklazyvim=self.webpackChunklazyvim||[]).push([[7532],{3905:(e,t,n)=>{n.d(t,{Zo:()=>s,kt:()=>f});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function l(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var u=r.createContext({}),c=function(e){var t=r.useContext(u),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},s=function(e){var t=c(e.components);return r.createElement(u.Provider,{value:t},e.children)},m="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,u=e.parentName,s=l(e,["components","mdxType","originalType","parentName"]),m=c(n),d=a,f=m["".concat(u,".").concat(d)]||m[d]||p[d]||o;return n?r.createElement(f,i(i({ref:t},s),{},{components:n})):r.createElement(f,i({ref:t},s))}));function f(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,i=new Array(o);i[0]=d;var l={};for(var u in t)hasOwnProperty.call(t,u)&&(l[u]=t[u]);l.originalType=e,l[m]="string"==typeof e?e:a,i[1]=l;for(var c=2;c<o;c++)i[c]=n[c];return r.createElement.apply(null,i)}return r.createElement.apply(null,n)}d.displayName="MDXCreateElement"},5162:(e,t,n)=>{n.d(t,{Z:()=>i});var r=n(7294),a=n(6010);const o="tabItem_Ymn6";function i(e){let{children:t,hidden:n,className:i}=e;return r.createElement("div",{role:"tabpanel",className:(0,a.Z)(o,i),hidden:n},t)}},4866:(e,t,n)=>{n.d(t,{Z:()=>w});var r=n(7462),a=n(7294),o=n(6010),i=n(2466),l=n(6550),u=n(1980),c=n(7392),s=n(12);function m(e){return function(e){return a.Children.map(e,(e=>{if(!e||(0,a.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:t,label:n,attributes:r,default:a}}=e;return{value:t,label:n,attributes:r,default:a}}))}function p(e){const{values:t,children:n}=e;return(0,a.useMemo)((()=>{const e=t??m(n);return function(e){const t=(0,c.l)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[t,n])}function d(e){let{value:t,tabValues:n}=e;return n.some((e=>e.value===t))}function f(e){let{queryString:t=!1,groupId:n}=e;const r=(0,l.k6)(),o=function(e){let{queryString:t=!1,groupId:n}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!n)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return n??null}({queryString:t,groupId:n});return[(0,u._X)(o),(0,a.useCallback)((e=>{if(!o)return;const t=new URLSearchParams(r.location.search);t.set(o,e),r.replace({...r.location,search:t.toString()})}),[o,r])]}function b(e){const{defaultValue:t,queryString:n=!1,groupId:r}=e,o=p(e),[i,l]=(0,a.useState)((()=>function(e){let{defaultValue:t,tabValues:n}=e;if(0===n.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(t){if(!d({value:t,tabValues:n}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${n.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const r=n.find((e=>e.default))??n[0];if(!r)throw new Error("Unexpected error: 0 tabValues");return r.value}({defaultValue:t,tabValues:o}))),[u,c]=f({queryString:n,groupId:r}),[m,b]=function(e){let{groupId:t}=e;const n=function(e){return e?`docusaurus.tab.${e}`:null}(t),[r,o]=(0,s.Nk)(n);return[r,(0,a.useCallback)((e=>{n&&o.set(e)}),[n,o])]}({groupId:r}),g=(()=>{const e=u??m;return d({value:e,tabValues:o})?e:null})();(0,a.useLayoutEffect)((()=>{g&&l(g)}),[g]);return{selectedValue:i,selectValue:(0,a.useCallback)((e=>{if(!d({value:e,tabValues:o}))throw new Error(`Can't select invalid tab value=${e}`);l(e),c(e),b(e)}),[c,b,o]),tabValues:o}}var g=n(2389);const v="tabList__CuJ",y="tabItem_LNqP";function h(e){let{className:t,block:n,selectedValue:l,selectValue:u,tabValues:c}=e;const s=[],{blockElementScrollPositionUntilNextRender:m}=(0,i.o5)(),p=e=>{const t=e.currentTarget,n=s.indexOf(t),r=c[n].value;r!==l&&(m(t),u(r))},d=e=>{let t=null;switch(e.key){case"Enter":p(e);break;case"ArrowRight":{const n=s.indexOf(e.currentTarget)+1;t=s[n]??s[0];break}case"ArrowLeft":{const n=s.indexOf(e.currentTarget)-1;t=s[n]??s[s.length-1];break}}t?.focus()};return a.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,o.Z)("tabs",{"tabs--block":n},t)},c.map((e=>{let{value:t,label:n,attributes:i}=e;return a.createElement("li",(0,r.Z)({role:"tab",tabIndex:l===t?0:-1,"aria-selected":l===t,key:t,ref:e=>s.push(e),onKeyDown:d,onClick:p},i,{className:(0,o.Z)("tabs__item",y,i?.className,{"tabs__item--active":l===t})}),n??t)})))}function k(e){let{lazy:t,children:n,selectedValue:r}=e;const o=(Array.isArray(n)?n:[n]).filter(Boolean);if(t){const e=o.find((e=>e.props.value===r));return e?(0,a.cloneElement)(e,{className:"margin-top--md"}):null}return a.createElement("div",{className:"margin-top--md"},o.map(((e,t)=>(0,a.cloneElement)(e,{key:t,hidden:e.props.value!==r}))))}function x(e){const t=b(e);return a.createElement("div",{className:(0,o.Z)("tabs-container",v)},a.createElement(h,(0,r.Z)({},e,t)),a.createElement(k,(0,r.Z)({},e,t)))}function w(e){const t=(0,g.Z)();return a.createElement(x,(0,r.Z)({key:String(t)},e))}},1315:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>u,default:()=>d,frontMatter:()=>l,metadata:()=>c,toc:()=>m});var r=n(7462),a=(n(7294),n(3905)),o=n(4866),i=n(5162);const l={},u="Mini-comment",c={unversionedId:"extras/coding/mini-comment",id:"extras/coding/mini-comment",title:"Mini-comment",description:"You can enable the extra with the :LazyExtras command.",source:"@site/docs/extras/coding/mini-comment.md",sourceDirName:"extras/coding",slug:"/extras/coding/mini-comment",permalink:"/extras/coding/mini-comment",draft:!1,editUrl:"https://github.com/LazyVim/lazyvim.github.io/tree/main/docs/extras/coding/mini-comment.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Luasnip",permalink:"/extras/coding/luasnip"},next:{title:"Mini-snippets",permalink:"/extras/coding/mini-snippets"}},s={},m=[{value:"mini.comment",id:"minicomment",level:2},{value:"nvim-ts-context-commentstring",id:"nvim-ts-context-commentstring",level:2}],p={toc:m};function d(e){let{components:t,...n}=e;return(0,a.kt)("wrapper",(0,r.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"mini-comment"},(0,a.kt)("inlineCode",{parentName:"h1"},"Mini-comment")),(0,a.kt)("admonition",{type:"info"},(0,a.kt)("p",{parentName:"admonition"},"You can enable the extra with the ",(0,a.kt)("inlineCode",{parentName:"p"},":LazyExtras")," command.\nPlugins marked as optional will only be configured if they are installed.")),(0,a.kt)("p",null,"Below you can find a list of included plugins and their default settings."),(0,a.kt)("admonition",{type:"caution"},(0,a.kt)("p",{parentName:"admonition"},"You don't need to copy the default settings to your config.\nThey are only shown here for reference.")),(0,a.kt)("h2",{id:"minicomment"},(0,a.kt)("a",{parentName:"h2",href:"https://github.com/nvim-mini/mini.comment"},"mini.comment")),(0,a.kt)(o.Z,{mdxType:"Tabs"},(0,a.kt)(i.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'opts = {\n options = {\n custom_commentstring = function()\n return require("ts_context_commentstring.internal").calculate_commentstring() or vim.bo.commentstring\n end,\n },\n}\n'))),(0,a.kt)(i.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "nvim-mini/mini.comment",\n event = "VeryLazy",\n opts = {\n options = {\n custom_commentstring = function()\n return require("ts_context_commentstring.internal").calculate_commentstring() or vim.bo.commentstring\n end,\n },\n },\n}\n')))),(0,a.kt)("h2",{id:"nvim-ts-context-commentstring"},(0,a.kt)("a",{parentName:"h2",href:"https://github.com/JoosepAlviste/nvim-ts-context-commentstring"},"nvim-ts-context-commentstring")),(0,a.kt)(o.Z,{mdxType:"Tabs"},(0,a.kt)(i.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},"opts = {\n enable_autocmd = false,\n}\n"))),(0,a.kt)(i.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "JoosepAlviste/nvim-ts-context-commentstring",\n lazy = true,\n opts = {\n enable_autocmd = false,\n },\n}\n')))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/3726a5f7.b2a488a0.js b/assets/js/3726a5f7.b2a488a0.js new file mode 100644 index 0000000000..c007960804 --- /dev/null +++ b/assets/js/3726a5f7.b2a488a0.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklazyvim=self.webpackChunklazyvim||[]).push([[7448],{3905:(e,n,t)=>{t.d(n,{Zo:()=>s,kt:()=>f});var r=t(7294);function a(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function l(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function o(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?l(Object(t),!0).forEach((function(n){a(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):l(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function i(e,n){if(null==e)return{};var t,r,a=function(e,n){if(null==e)return{};var t,r,a={},l=Object.keys(e);for(r=0;r<l.length;r++)t=l[r],n.indexOf(t)>=0||(a[t]=e[t]);return a}(e,n);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r<l.length;r++)t=l[r],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var u=r.createContext({}),c=function(e){var n=r.useContext(u),t=n;return e&&(t="function"==typeof e?e(n):o(o({},n),e)),t},s=function(e){var n=c(e.components);return r.createElement(u.Provider,{value:n},e.children)},m="mdxType",p={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},d=r.forwardRef((function(e,n){var t=e.components,a=e.mdxType,l=e.originalType,u=e.parentName,s=i(e,["components","mdxType","originalType","parentName"]),m=c(t),d=a,f=m["".concat(u,".").concat(d)]||m[d]||p[d]||l;return t?r.createElement(f,o(o({ref:n},s),{},{components:t})):r.createElement(f,o({ref:n},s))}));function f(e,n){var t=arguments,a=n&&n.mdxType;if("string"==typeof e||a){var l=t.length,o=new Array(l);o[0]=d;var i={};for(var u in n)hasOwnProperty.call(n,u)&&(i[u]=n[u]);i.originalType=e,i[m]="string"==typeof e?e:a,o[1]=i;for(var c=2;c<l;c++)o[c]=t[c];return r.createElement.apply(null,o)}return r.createElement.apply(null,t)}d.displayName="MDXCreateElement"},5162:(e,n,t)=>{t.d(n,{Z:()=>o});var r=t(7294),a=t(6010);const l="tabItem_Ymn6";function o(e){let{children:n,hidden:t,className:o}=e;return r.createElement("div",{role:"tabpanel",className:(0,a.Z)(l,o),hidden:t},n)}},4866:(e,n,t)=>{t.d(n,{Z:()=>x});var r=t(7462),a=t(7294),l=t(6010),o=t(2466),i=t(6550),u=t(1980),c=t(7392),s=t(12);function m(e){return function(e){return a.Children.map(e,(e=>{if(!e||(0,a.isValidElement)(e)&&function(e){const{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:n,label:t,attributes:r,default:a}}=e;return{value:n,label:t,attributes:r,default:a}}))}function p(e){const{values:n,children:t}=e;return(0,a.useMemo)((()=>{const e=n??m(t);return function(e){const n=(0,c.l)(e,((e,n)=>e.value===n.value));if(n.length>0)throw new Error(`Docusaurus error: Duplicate values "${n.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[n,t])}function d(e){let{value:n,tabValues:t}=e;return t.some((e=>e.value===n))}function f(e){let{queryString:n=!1,groupId:t}=e;const r=(0,i.k6)(),l=function(e){let{queryString:n=!1,groupId:t}=e;if("string"==typeof n)return n;if(!1===n)return null;if(!0===n&&!t)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return t??null}({queryString:n,groupId:t});return[(0,u._X)(l),(0,a.useCallback)((e=>{if(!l)return;const n=new URLSearchParams(r.location.search);n.set(l,e),r.replace({...r.location,search:n.toString()})}),[l,r])]}function b(e){const{defaultValue:n,queryString:t=!1,groupId:r}=e,l=p(e),[o,i]=(0,a.useState)((()=>function(e){let{defaultValue:n,tabValues:t}=e;if(0===t.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(n){if(!d({value:n,tabValues:t}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${n}" but none of its children has the corresponding value. Available values are: ${t.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return n}const r=t.find((e=>e.default))??t[0];if(!r)throw new Error("Unexpected error: 0 tabValues");return r.value}({defaultValue:n,tabValues:l}))),[u,c]=f({queryString:t,groupId:r}),[m,b]=function(e){let{groupId:n}=e;const t=function(e){return e?`docusaurus.tab.${e}`:null}(n),[r,l]=(0,s.Nk)(t);return[r,(0,a.useCallback)((e=>{t&&l.set(e)}),[t,l])]}({groupId:r}),v=(()=>{const e=u??m;return d({value:e,tabValues:l})?e:null})();(0,a.useLayoutEffect)((()=>{v&&i(v)}),[v]);return{selectedValue:o,selectValue:(0,a.useCallback)((e=>{if(!d({value:e,tabValues:l}))throw new Error(`Can't select invalid tab value=${e}`);i(e),c(e),b(e)}),[c,b,l]),tabValues:l}}var v=t(2389);const y="tabList__CuJ",h="tabItem_LNqP";function g(e){let{className:n,block:t,selectedValue:i,selectValue:u,tabValues:c}=e;const s=[],{blockElementScrollPositionUntilNextRender:m}=(0,o.o5)(),p=e=>{const n=e.currentTarget,t=s.indexOf(n),r=c[t].value;r!==i&&(m(n),u(r))},d=e=>{let n=null;switch(e.key){case"Enter":p(e);break;case"ArrowRight":{const t=s.indexOf(e.currentTarget)+1;n=s[t]??s[0];break}case"ArrowLeft":{const t=s.indexOf(e.currentTarget)-1;n=s[t]??s[s.length-1];break}}n?.focus()};return a.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,l.Z)("tabs",{"tabs--block":t},n)},c.map((e=>{let{value:n,label:t,attributes:o}=e;return a.createElement("li",(0,r.Z)({role:"tab",tabIndex:i===n?0:-1,"aria-selected":i===n,key:n,ref:e=>s.push(e),onKeyDown:d,onClick:p},o,{className:(0,l.Z)("tabs__item",h,o?.className,{"tabs__item--active":i===n})}),t??n)})))}function k(e){let{lazy:n,children:t,selectedValue:r}=e;const l=(Array.isArray(t)?t:[t]).filter(Boolean);if(n){const e=l.find((e=>e.props.value===r));return e?(0,a.cloneElement)(e,{className:"margin-top--md"}):null}return a.createElement("div",{className:"margin-top--md"},l.map(((e,n)=>(0,a.cloneElement)(e,{key:n,hidden:e.props.value!==r}))))}function w(e){const n=b(e);return a.createElement("div",{className:(0,l.Z)("tabs-container",y)},a.createElement(g,(0,r.Z)({},e,n)),a.createElement(k,(0,r.Z)({},e,n)))}function x(e){const n=(0,v.Z)();return a.createElement(w,(0,r.Z)({key:String(n)},e))}},6053:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>s,contentTitle:()=>u,default:()=>d,frontMatter:()=>i,metadata:()=>c,toc:()=>m});var r=t(7462),a=(t(7294),t(3905)),l=t(4866),o=t(5162);const i={},u="Inc-rename",c={unversionedId:"extras/editor/inc-rename",id:"extras/editor/inc-rename",title:"Inc-rename",description:"You can enable the extra with the :LazyExtras command.",source:"@site/docs/extras/editor/inc-rename.md",sourceDirName:"extras/editor",slug:"/extras/editor/inc-rename",permalink:"/extras/editor/inc-rename",draft:!1,editUrl:"https://github.com/LazyVim/lazyvim.github.io/tree/main/docs/extras/editor/inc-rename.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Illuminate",permalink:"/extras/editor/illuminate"},next:{title:"Leap",permalink:"/extras/editor/leap"}},s={},m=[{value:"inc-rename.nvim",id:"inc-renamenvim",level:2},{value:"nvim-lspconfig",id:"nvim-lspconfig",level:2},{value:"noice.nvim <em>(optional)</em>",id:"noicenvim-optional",level:2}],p={toc:m};function d(e){let{components:n,...t}=e;return(0,a.kt)("wrapper",(0,r.Z)({},p,t,{components:n,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"inc-rename"},(0,a.kt)("inlineCode",{parentName:"h1"},"Inc-rename")),(0,a.kt)("admonition",{type:"info"},(0,a.kt)("p",{parentName:"admonition"},"You can enable the extra with the ",(0,a.kt)("inlineCode",{parentName:"p"},":LazyExtras")," command.\nPlugins marked as optional will only be configured if they are installed.")),(0,a.kt)("p",null,"Below you can find a list of included plugins and their default settings."),(0,a.kt)("admonition",{type:"caution"},(0,a.kt)("p",{parentName:"admonition"},"You don't need to copy the default settings to your config.\nThey are only shown here for reference.")),(0,a.kt)("h2",{id:"inc-renamenvim"},(0,a.kt)("a",{parentName:"h2",href:"https://github.com/smjonas/inc-rename.nvim"},"inc-rename.nvim")),(0,a.kt)(l.Z,{mdxType:"Tabs"},(0,a.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},"opts = {}\n"))),(0,a.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "smjonas/inc-rename.nvim",\n cmd = "IncRename",\n opts = {},\n}\n')))),(0,a.kt)("h2",{id:"nvim-lspconfig"},(0,a.kt)("a",{parentName:"h2",href:"https://github.com/neovim/nvim-lspconfig"},"nvim-lspconfig")),(0,a.kt)("p",null," LSP Keymaps"),(0,a.kt)(l.Z,{mdxType:"Tabs"},(0,a.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'opts = function()\n local keys = require("lazyvim.plugins.lsp.keymaps").get()\n keys[#keys + 1] = {\n "<leader>cr",\n function()\n local inc_rename = require("inc_rename")\n return ":" .. inc_rename.config.cmd_name .. " " .. vim.fn.expand("<cword>")\n end,\n expr = true,\n desc = "Rename (inc-rename.nvim)",\n has = "rename",\n }\nend\n'))),(0,a.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "neovim/nvim-lspconfig",\n opts = function()\n local keys = require("lazyvim.plugins.lsp.keymaps").get()\n keys[#keys + 1] = {\n "<leader>cr",\n function()\n local inc_rename = require("inc_rename")\n return ":" .. inc_rename.config.cmd_name .. " " .. vim.fn.expand("<cword>")\n end,\n expr = true,\n desc = "Rename (inc-rename.nvim)",\n has = "rename",\n }\n end,\n}\n')))),(0,a.kt)("h2",{id:"noicenvim-optional"},(0,a.kt)("a",{parentName:"h2",href:"https://github.com/folke/noice.nvim"},"noice.nvim")," ",(0,a.kt)("em",{parentName:"h2"},"(optional)")),(0,a.kt)("p",null," Noice integration"),(0,a.kt)(l.Z,{mdxType:"Tabs"},(0,a.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},"opts = {\n presets = { inc_rename = true },\n}\n"))),(0,a.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "folke/noice.nvim",\n optional = true,\n opts = {\n presets = { inc_rename = true },\n },\n}\n')))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/3b8c55ea.0c054656.js b/assets/js/3b8c55ea.0c054656.js new file mode 100644 index 0000000000..59da3a8b77 --- /dev/null +++ b/assets/js/3b8c55ea.0c054656.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklazyvim=self.webpackChunklazyvim||[]).push([[3217],{3905:(e,t,a)=>{a.d(t,{Zo:()=>c,kt:()=>f});var n=a(7294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function l(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function o(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?l(Object(a),!0).forEach((function(t){r(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):l(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function i(e,t){if(null==e)return{};var a,n,r=function(e,t){if(null==e)return{};var a,n,r={},l=Object.keys(e);for(n=0;n<l.length;n++)a=l[n],t.indexOf(a)>=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(n=0;n<l.length;n++)a=l[n],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var u=n.createContext({}),s=function(e){var t=n.useContext(u),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},c=function(e){var t=s(e.components);return n.createElement(u.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,l=e.originalType,u=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),p=s(a),d=r,f=p["".concat(u,".").concat(d)]||p[d]||m[d]||l;return a?n.createElement(f,o(o({ref:t},c),{},{components:a})):n.createElement(f,o({ref:t},c))}));function f(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var l=a.length,o=new Array(l);o[0]=d;var i={};for(var u in t)hasOwnProperty.call(t,u)&&(i[u]=t[u]);i.originalType=e,i[p]="string"==typeof e?e:r,o[1]=i;for(var s=2;s<l;s++)o[s]=a[s];return n.createElement.apply(null,o)}return n.createElement.apply(null,a)}d.displayName="MDXCreateElement"},5162:(e,t,a)=>{a.d(t,{Z:()=>o});var n=a(7294),r=a(6010);const l="tabItem_Ymn6";function o(e){let{children:t,hidden:a,className:o}=e;return n.createElement("div",{role:"tabpanel",className:(0,r.Z)(l,o),hidden:a},t)}},4866:(e,t,a)=>{a.d(t,{Z:()=>w});var n=a(7462),r=a(7294),l=a(6010),o=a(2466),i=a(6550),u=a(1980),s=a(7392),c=a(12);function p(e){return function(e){return r.Children.map(e,(e=>{if(!e||(0,r.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:t,label:a,attributes:n,default:r}}=e;return{value:t,label:a,attributes:n,default:r}}))}function m(e){const{values:t,children:a}=e;return(0,r.useMemo)((()=>{const e=t??p(a);return function(e){const t=(0,s.l)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[t,a])}function d(e){let{value:t,tabValues:a}=e;return a.some((e=>e.value===t))}function f(e){let{queryString:t=!1,groupId:a}=e;const n=(0,i.k6)(),l=function(e){let{queryString:t=!1,groupId:a}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!a)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return a??null}({queryString:t,groupId:a});return[(0,u._X)(l),(0,r.useCallback)((e=>{if(!l)return;const t=new URLSearchParams(n.location.search);t.set(l,e),n.replace({...n.location,search:t.toString()})}),[l,n])]}function h(e){const{defaultValue:t,queryString:a=!1,groupId:n}=e,l=m(e),[o,i]=(0,r.useState)((()=>function(e){let{defaultValue:t,tabValues:a}=e;if(0===a.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(t){if(!d({value:t,tabValues:a}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${a.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const n=a.find((e=>e.default))??a[0];if(!n)throw new Error("Unexpected error: 0 tabValues");return n.value}({defaultValue:t,tabValues:l}))),[u,s]=f({queryString:a,groupId:n}),[p,h]=function(e){let{groupId:t}=e;const a=function(e){return e?`docusaurus.tab.${e}`:null}(t),[n,l]=(0,c.Nk)(a);return[n,(0,r.useCallback)((e=>{a&&l.set(e)}),[a,l])]}({groupId:n}),b=(()=>{const e=u??p;return d({value:e,tabValues:l})?e:null})();(0,r.useLayoutEffect)((()=>{b&&i(b)}),[b]);return{selectedValue:o,selectValue:(0,r.useCallback)((e=>{if(!d({value:e,tabValues:l}))throw new Error(`Can't select invalid tab value=${e}`);i(e),s(e),h(e)}),[s,h,l]),tabValues:l}}var b=a(2389);const v="tabList__CuJ",g="tabItem_LNqP";function k(e){let{className:t,block:a,selectedValue:i,selectValue:u,tabValues:s}=e;const c=[],{blockElementScrollPositionUntilNextRender:p}=(0,o.o5)(),m=e=>{const t=e.currentTarget,a=c.indexOf(t),n=s[a].value;n!==i&&(p(t),u(n))},d=e=>{let t=null;switch(e.key){case"Enter":m(e);break;case"ArrowRight":{const a=c.indexOf(e.currentTarget)+1;t=c[a]??c[0];break}case"ArrowLeft":{const a=c.indexOf(e.currentTarget)-1;t=c[a]??c[c.length-1];break}}t?.focus()};return r.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,l.Z)("tabs",{"tabs--block":a},t)},s.map((e=>{let{value:t,label:a,attributes:o}=e;return r.createElement("li",(0,n.Z)({role:"tab",tabIndex:i===t?0:-1,"aria-selected":i===t,key:t,ref:e=>c.push(e),onKeyDown:d,onClick:m},o,{className:(0,l.Z)("tabs__item",g,o?.className,{"tabs__item--active":i===t})}),a??t)})))}function y(e){let{lazy:t,children:a,selectedValue:n}=e;const l=(Array.isArray(a)?a:[a]).filter(Boolean);if(t){const e=l.find((e=>e.props.value===n));return e?(0,r.cloneElement)(e,{className:"margin-top--md"}):null}return r.createElement("div",{className:"margin-top--md"},l.map(((e,t)=>(0,r.cloneElement)(e,{key:t,hidden:e.props.value!==n}))))}function N(e){const t=h(e);return r.createElement("div",{className:(0,l.Z)("tabs-container",v)},r.createElement(k,(0,n.Z)({},e,t)),r.createElement(y,(0,n.Z)({},e,t)))}function w(e){const t=(0,b.Z)();return r.createElement(N,(0,n.Z)({key:String(t)},e))}},9803:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>c,contentTitle:()=>u,default:()=>d,frontMatter:()=>i,metadata:()=>s,toc:()=>p});var n=a(7462),r=(a(7294),a(3905)),l=a(4866),o=a(5162);const i={sidebar_position:2},u="\ud83d\udee0\ufe0f Installation",s={unversionedId:"installation",id:"installation",title:"\ud83d\udee0\ufe0f Installation",description:"You can find a starter template for LazyVim here",source:"@site/docs/installation.md",sourceDirName:".",slug:"/installation",permalink:"/installation",draft:!1,editUrl:"https://github.com/LazyVim/lazyvim.github.io/tree/main/docs/installation.md",tags:[],version:"current",sidebarPosition:2,frontMatter:{sidebar_position:2},sidebar:"tutorialSidebar",previous:{title:"\ud83d\ude80 Getting Started",permalink:"/"},next:{title:"\ud83d\udcf0 What's new?",permalink:"/news"}},c={},p=[],m={toc:p};function d(e){let{components:t,...a}=e;return(0,r.kt)("wrapper",(0,n.Z)({},m,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"\ufe0f-installation"},"\ud83d\udee0\ufe0f Installation"),(0,r.kt)("p",null,"You can find a starter template for ",(0,r.kt)("strong",{parentName:"p"},"LazyVim")," ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/LazyVim/starter"},"here")),(0,r.kt)(l.Z,{mdxType:"Tabs"},(0,r.kt)(o.Z,{value:"local",label:"Linux/MacOS",default:!0,mdxType:"TabItem"},(0,r.kt)("p",null,"Install the ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/LazyVim/starter"},"LazyVim Starter")),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Make a backup of your current Neovim files:"),(0,r.kt)("pre",{parentName:"li"},(0,r.kt)("code",{parentName:"pre",className:"language-sh"},"# required\nmv ~/.config/nvim{,.bak}\n\n# optional but recommended\nmv ~/.local/share/nvim{,.bak}\nmv ~/.local/state/nvim{,.bak}\nmv ~/.cache/nvim{,.bak}\n"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Clone the starter"),(0,r.kt)("pre",{parentName:"li"},(0,r.kt)("code",{parentName:"pre",className:"language-sh"},"git clone https://github.com/LazyVim/starter ~/.config/nvim\n"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Remove the ",(0,r.kt)("inlineCode",{parentName:"p"},".git")," folder, so you can add it to your own repo later"),(0,r.kt)("pre",{parentName:"li"},(0,r.kt)("code",{parentName:"pre",className:"language-sh"},"rm -rf ~/.config/nvim/.git\n"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Start Neovim!"),(0,r.kt)("pre",{parentName:"li"},(0,r.kt)("code",{parentName:"pre",className:"language-sh"},"nvim\n")),(0,r.kt)("p",{parentName:"li"},"Refer to the comments in the files on how to customize ",(0,r.kt)("strong",{parentName:"p"},"LazyVim"),".")))),(0,r.kt)(o.Z,{value:"windows",label:"Windows",mdxType:"TabItem"},(0,r.kt)("p",null,"Install the ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/LazyVim/starter"},"LazyVim Starter"),"\nwith ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/PowerShell/PowerShell"},"PowerShell")),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Make a backup of your current Neovim files:"),(0,r.kt)("pre",{parentName:"li"},(0,r.kt)("code",{parentName:"pre",className:"language-powershell"},"# required\nMove-Item $env:LOCALAPPDATA\\nvim $env:LOCALAPPDATA\\nvim.bak\n\n# optional but recommended\nMove-Item $env:LOCALAPPDATA\\nvim-data $env:LOCALAPPDATA\\nvim-data.bak\n"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Clone the starter"),(0,r.kt)("pre",{parentName:"li"},(0,r.kt)("code",{parentName:"pre",className:"language-powershell"},"git clone https://github.com/LazyVim/starter $env:LOCALAPPDATA\\nvim\n"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Remove the ",(0,r.kt)("inlineCode",{parentName:"p"},".git")," folder, so you can add it to your own repo later"),(0,r.kt)("pre",{parentName:"li"},(0,r.kt)("code",{parentName:"pre",className:"language-powershell"},"Remove-Item $env:LOCALAPPDATA\\nvim\\.git -Recurse -Force\n"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Start Neovim!"),(0,r.kt)("pre",{parentName:"li"},(0,r.kt)("code",{parentName:"pre",className:"language-powershell"},"nvim\n")),(0,r.kt)("p",{parentName:"li"},"Refer to the comments in the files on how to customize ",(0,r.kt)("strong",{parentName:"p"},"LazyVim"),".")))),(0,r.kt)(o.Z,{value:"docker",label:"Try it with Docker",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-sh"},"docker run -w /root -it --rm fedora:latest sh -uelic '\n dnf copr enable -y dejan/lazygit\n dnf install -y git lazygit fd-find curl ripgrep tree-sitter-cli neovim\n git clone https://github.com/LazyVim/starter ~/.config/nvim\n cd ~/.config/nvim\n nvim\n'\n")))),(0,r.kt)("admonition",{type:"tip"},(0,r.kt)("p",{parentName:"admonition"},"It is recommended to run ",(0,r.kt)("inlineCode",{parentName:"p"},":LazyHealth")," after installation.\nThis will load all plugins and check if everything is working correctly.")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/3bc80f43.e38ec9b3.js b/assets/js/3bc80f43.e38ec9b3.js new file mode 100644 index 0000000000..044c3e66a3 --- /dev/null +++ b/assets/js/3bc80f43.e38ec9b3.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklazyvim=self.webpackChunklazyvim||[]).push([[7875],{3905:(e,n,t)=>{t.d(n,{Zo:()=>c,kt:()=>f});var a=t(7294);function r(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function o(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,a)}return t}function l(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?o(Object(t),!0).forEach((function(n){r(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):o(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function u(e,n){if(null==e)return{};var t,a,r=function(e,n){if(null==e)return{};var t,a,r={},o=Object.keys(e);for(a=0;a<o.length;a++)t=o[a],n.indexOf(t)>=0||(r[t]=e[t]);return r}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)t=o[a],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(r[t]=e[t])}return r}var i=a.createContext({}),s=function(e){var n=a.useContext(i),t=n;return e&&(t="function"==typeof e?e(n):l(l({},n),e)),t},c=function(e){var n=s(e.components);return a.createElement(i.Provider,{value:n},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var n=e.children;return a.createElement(a.Fragment,{},n)}},m=a.forwardRef((function(e,n){var t=e.components,r=e.mdxType,o=e.originalType,i=e.parentName,c=u(e,["components","mdxType","originalType","parentName"]),p=s(t),m=r,f=p["".concat(i,".").concat(m)]||p[m]||d[m]||o;return t?a.createElement(f,l(l({ref:n},c),{},{components:t})):a.createElement(f,l({ref:n},c))}));function f(e,n){var t=arguments,r=n&&n.mdxType;if("string"==typeof e||r){var o=t.length,l=new Array(o);l[0]=m;var u={};for(var i in n)hasOwnProperty.call(n,i)&&(u[i]=n[i]);u.originalType=e,u[p]="string"==typeof e?e:r,l[1]=u;for(var s=2;s<o;s++)l[s]=t[s];return a.createElement.apply(null,l)}return a.createElement.apply(null,t)}m.displayName="MDXCreateElement"},5162:(e,n,t)=>{t.d(n,{Z:()=>l});var a=t(7294),r=t(6010);const o="tabItem_Ymn6";function l(e){let{children:n,hidden:t,className:l}=e;return a.createElement("div",{role:"tabpanel",className:(0,r.Z)(o,l),hidden:t},n)}},4866:(e,n,t)=>{t.d(n,{Z:()=>x});var a=t(7462),r=t(7294),o=t(6010),l=t(2466),u=t(6550),i=t(1980),s=t(7392),c=t(12);function p(e){return function(e){return r.Children.map(e,(e=>{if(!e||(0,r.isValidElement)(e)&&function(e){const{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:n,label:t,attributes:a,default:r}}=e;return{value:n,label:t,attributes:a,default:r}}))}function d(e){const{values:n,children:t}=e;return(0,r.useMemo)((()=>{const e=n??p(t);return function(e){const n=(0,s.l)(e,((e,n)=>e.value===n.value));if(n.length>0)throw new Error(`Docusaurus error: Duplicate values "${n.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[n,t])}function m(e){let{value:n,tabValues:t}=e;return t.some((e=>e.value===n))}function f(e){let{queryString:n=!1,groupId:t}=e;const a=(0,u.k6)(),o=function(e){let{queryString:n=!1,groupId:t}=e;if("string"==typeof n)return n;if(!1===n)return null;if(!0===n&&!t)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return t??null}({queryString:n,groupId:t});return[(0,i._X)(o),(0,r.useCallback)((e=>{if(!o)return;const n=new URLSearchParams(a.location.search);n.set(o,e),a.replace({...a.location,search:n.toString()})}),[o,a])]}function b(e){const{defaultValue:n,queryString:t=!1,groupId:a}=e,o=d(e),[l,u]=(0,r.useState)((()=>function(e){let{defaultValue:n,tabValues:t}=e;if(0===t.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(n){if(!m({value:n,tabValues:t}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${n}" but none of its children has the corresponding value. Available values are: ${t.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return n}const a=t.find((e=>e.default))??t[0];if(!a)throw new Error("Unexpected error: 0 tabValues");return a.value}({defaultValue:n,tabValues:o}))),[i,s]=f({queryString:t,groupId:a}),[p,b]=function(e){let{groupId:n}=e;const t=function(e){return e?`docusaurus.tab.${e}`:null}(n),[a,o]=(0,c.Nk)(t);return[a,(0,r.useCallback)((e=>{t&&o.set(e)}),[t,o])]}({groupId:a}),h=(()=>{const e=i??p;return m({value:e,tabValues:o})?e:null})();(0,r.useLayoutEffect)((()=>{h&&u(h)}),[h]);return{selectedValue:l,selectValue:(0,r.useCallback)((e=>{if(!m({value:e,tabValues:o}))throw new Error(`Can't select invalid tab value=${e}`);u(e),s(e),b(e)}),[s,b,o]),tabValues:o}}var h=t(2389);const v="tabList__CuJ",y="tabItem_LNqP";function g(e){let{className:n,block:t,selectedValue:u,selectValue:i,tabValues:s}=e;const c=[],{blockElementScrollPositionUntilNextRender:p}=(0,l.o5)(),d=e=>{const n=e.currentTarget,t=c.indexOf(n),a=s[t].value;a!==u&&(p(n),i(a))},m=e=>{let n=null;switch(e.key){case"Enter":d(e);break;case"ArrowRight":{const t=c.indexOf(e.currentTarget)+1;n=c[t]??c[0];break}case"ArrowLeft":{const t=c.indexOf(e.currentTarget)-1;n=c[t]??c[c.length-1];break}}n?.focus()};return r.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,o.Z)("tabs",{"tabs--block":t},n)},s.map((e=>{let{value:n,label:t,attributes:l}=e;return r.createElement("li",(0,a.Z)({role:"tab",tabIndex:u===n?0:-1,"aria-selected":u===n,key:n,ref:e=>c.push(e),onKeyDown:m,onClick:d},l,{className:(0,o.Z)("tabs__item",y,l?.className,{"tabs__item--active":u===n})}),t??n)})))}function k(e){let{lazy:n,children:t,selectedValue:a}=e;const o=(Array.isArray(t)?t:[t]).filter(Boolean);if(n){const e=o.find((e=>e.props.value===a));return e?(0,r.cloneElement)(e,{className:"margin-top--md"}):null}return r.createElement("div",{className:"margin-top--md"},o.map(((e,n)=>(0,r.cloneElement)(e,{key:n,hidden:e.props.value!==a}))))}function w(e){const n=b(e);return r.createElement("div",{className:(0,o.Z)("tabs-container",v)},r.createElement(g,(0,a.Z)({},e,n)),r.createElement(k,(0,a.Z)({},e,n)))}function x(e){const n=(0,h.Z)();return r.createElement(w,(0,a.Z)({key:String(n)},e))}},8653:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>i,default:()=>m,frontMatter:()=>u,metadata:()=>s,toc:()=>p});var a=t(7462),r=(t(7294),t(3905)),o=t(4866),l=t(5162);const u={},i="DAP Neovim Lua Adapter",s={unversionedId:"extras/dap/nlua",id:"extras/dap/nlua",title:"DAP Neovim Lua Adapter",description:"You can enable the extra with the :LazyExtras command.",source:"@site/docs/extras/dap/nlua.md",sourceDirName:"extras/dap",slug:"/extras/dap/nlua",permalink:"/extras/dap/nlua",draft:!1,editUrl:"https://github.com/LazyVim/lazyvim.github.io/tree/main/docs/extras/dap/nlua.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"DAP Core",permalink:"/extras/dap/core"},next:{title:"Aerial",permalink:"/extras/editor/aerial"}},c={},p=[{value:"nvim-dap",id:"nvim-dap",level:2},{value:"one-small-step-for-vimkind",id:"one-small-step-for-vimkind",level:2}],d={toc:p};function m(e){let{components:n,...t}=e;return(0,r.kt)("wrapper",(0,a.Z)({},d,t,{components:n,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"dap-neovim-lua-adapter"},"DAP Neovim Lua Adapter"),(0,r.kt)("admonition",{type:"info"},(0,r.kt)("p",{parentName:"admonition"},"You can enable the extra with the ",(0,r.kt)("inlineCode",{parentName:"p"},":LazyExtras")," command.\nPlugins marked as optional will only be configured if they are installed.")),(0,r.kt)("p",null,"Below you can find a list of included plugins and their default settings."),(0,r.kt)("admonition",{type:"caution"},(0,r.kt)("p",{parentName:"admonition"},"You don't need to copy the default settings to your config.\nThey are only shown here for reference.")),(0,r.kt)("h2",{id:"nvim-dap"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/mfussenegger/nvim-dap"},"nvim-dap")),(0,r.kt)(o.Z,{mdxType:"Tabs"},(0,r.kt)(l.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},"opts = nil\n"))),(0,r.kt)(l.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "mfussenegger/nvim-dap",\n dependencies = {\n {\n "jbyuki/one-small-step-for-vimkind",\n -- stylua: ignore\n config = function()\n local dap = require("dap")\n dap.adapters.nlua = function(callback, conf)\n local adapter = {\n type = "server",\n host = conf.host or "127.0.0.1",\n port = conf.port or 8086,\n }\n if conf.start_neovim then\n local dap_run = dap.run\n dap.run = function(c)\n adapter.port = c.port\n adapter.host = c.host\n end\n require("osv").run_this()\n dap.run = dap_run\n end\n callback(adapter)\n end\n dap.configurations.lua = {\n {\n type = "nlua",\n request = "attach",\n name = "Run this file",\n start_neovim = {},\n },\n {\n type = "nlua",\n request = "attach",\n name = "Attach to running Neovim instance (port = 8086)",\n port = 8086,\n },\n }\n end,\n },\n },\n}\n')))),(0,r.kt)("h2",{id:"one-small-step-for-vimkind"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/jbyuki/one-small-step-for-vimkind"},"one-small-step-for-vimkind")),(0,r.kt)(o.Z,{mdxType:"Tabs"},(0,r.kt)(l.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},"opts = {}\n"))),(0,r.kt)(l.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "jbyuki/one-small-step-for-vimkind",\n -- stylua: ignore\n config = function()\n local dap = require("dap")\n dap.adapters.nlua = function(callback, conf)\n local adapter = {\n type = "server",\n host = conf.host or "127.0.0.1",\n port = conf.port or 8086,\n }\n if conf.start_neovim then\n local dap_run = dap.run\n dap.run = function(c)\n adapter.port = c.port\n adapter.host = c.host\n end\n require("osv").run_this()\n dap.run = dap_run\n end\n callback(adapter)\n end\n dap.configurations.lua = {\n {\n type = "nlua",\n request = "attach",\n name = "Run this file",\n start_neovim = {},\n },\n {\n type = "nlua",\n request = "attach",\n name = "Attach to running Neovim instance (port = 8086)",\n port = 8086,\n },\n }\n end,\n}\n')))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/3d779113.2cee38ba.js b/assets/js/3d779113.2cee38ba.js new file mode 100644 index 0000000000..558e400c5a --- /dev/null +++ b/assets/js/3d779113.2cee38ba.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklazyvim=self.webpackChunklazyvim||[]).push([[7374],{3905:(e,t,r)=>{r.d(t,{Zo:()=>c,kt:()=>f});var n=r(7294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?o(Object(r),!0).forEach((function(t){a(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):o(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function l(e,t){if(null==e)return{};var r,n,a=function(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var u=n.createContext({}),s=function(e){var t=n.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},c=function(e){var t=s(e.components);return n.createElement(u.Provider,{value:t},e.children)},m="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,u=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),m=s(r),d=a,f=m["".concat(u,".").concat(d)]||m[d]||p[d]||o;return r?n.createElement(f,i(i({ref:t},c),{},{components:r})):n.createElement(f,i({ref:t},c))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,i=new Array(o);i[0]=d;var l={};for(var u in t)hasOwnProperty.call(t,u)&&(l[u]=t[u]);l.originalType=e,l[m]="string"==typeof e?e:a,i[1]=l;for(var s=2;s<o;s++)i[s]=r[s];return n.createElement.apply(null,i)}return n.createElement.apply(null,r)}d.displayName="MDXCreateElement"},5162:(e,t,r)=>{r.d(t,{Z:()=>i});var n=r(7294),a=r(6010);const o="tabItem_Ymn6";function i(e){let{children:t,hidden:r,className:i}=e;return n.createElement("div",{role:"tabpanel",className:(0,a.Z)(o,i),hidden:r},t)}},4866:(e,t,r)=>{r.d(t,{Z:()=>E});var n=r(7462),a=r(7294),o=r(6010),i=r(2466),l=r(6550),u=r(1980),s=r(7392),c=r(12);function m(e){return function(e){return a.Children.map(e,(e=>{if(!e||(0,a.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:t,label:r,attributes:n,default:a}}=e;return{value:t,label:r,attributes:n,default:a}}))}function p(e){const{values:t,children:r}=e;return(0,a.useMemo)((()=>{const e=t??m(r);return function(e){const t=(0,s.l)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[t,r])}function d(e){let{value:t,tabValues:r}=e;return r.some((e=>e.value===t))}function f(e){let{queryString:t=!1,groupId:r}=e;const n=(0,l.k6)(),o=function(e){let{queryString:t=!1,groupId:r}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!r)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return r??null}({queryString:t,groupId:r});return[(0,u._X)(o),(0,a.useCallback)((e=>{if(!o)return;const t=new URLSearchParams(n.location.search);t.set(o,e),n.replace({...n.location,search:t.toString()})}),[o,n])]}function b(e){const{defaultValue:t,queryString:r=!1,groupId:n}=e,o=p(e),[i,l]=(0,a.useState)((()=>function(e){let{defaultValue:t,tabValues:r}=e;if(0===r.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(t){if(!d({value:t,tabValues:r}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${r.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const n=r.find((e=>e.default))??r[0];if(!n)throw new Error("Unexpected error: 0 tabValues");return n.value}({defaultValue:t,tabValues:o}))),[u,s]=f({queryString:r,groupId:n}),[m,b]=function(e){let{groupId:t}=e;const r=function(e){return e?`docusaurus.tab.${e}`:null}(t),[n,o]=(0,c.Nk)(r);return[n,(0,a.useCallback)((e=>{r&&o.set(e)}),[r,o])]}({groupId:n}),v=(()=>{const e=u??m;return d({value:e,tabValues:o})?e:null})();(0,a.useLayoutEffect)((()=>{v&&l(v)}),[v]);return{selectedValue:i,selectValue:(0,a.useCallback)((e=>{if(!d({value:e,tabValues:o}))throw new Error(`Can't select invalid tab value=${e}`);l(e),s(e),b(e)}),[s,b,o]),tabValues:o}}var v=r(2389);const y="tabList__CuJ",h="tabItem_LNqP";function g(e){let{className:t,block:r,selectedValue:l,selectValue:u,tabValues:s}=e;const c=[],{blockElementScrollPositionUntilNextRender:m}=(0,i.o5)(),p=e=>{const t=e.currentTarget,r=c.indexOf(t),n=s[r].value;n!==l&&(m(t),u(n))},d=e=>{let t=null;switch(e.key){case"Enter":p(e);break;case"ArrowRight":{const r=c.indexOf(e.currentTarget)+1;t=c[r]??c[0];break}case"ArrowLeft":{const r=c.indexOf(e.currentTarget)-1;t=c[r]??c[c.length-1];break}}t?.focus()};return a.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,o.Z)("tabs",{"tabs--block":r},t)},s.map((e=>{let{value:t,label:r,attributes:i}=e;return a.createElement("li",(0,n.Z)({role:"tab",tabIndex:l===t?0:-1,"aria-selected":l===t,key:t,ref:e=>c.push(e),onKeyDown:d,onClick:p},i,{className:(0,o.Z)("tabs__item",h,i?.className,{"tabs__item--active":l===t})}),r??t)})))}function k(e){let{lazy:t,children:r,selectedValue:n}=e;const o=(Array.isArray(r)?r:[r]).filter(Boolean);if(t){const e=o.find((e=>e.props.value===n));return e?(0,a.cloneElement)(e,{className:"margin-top--md"}):null}return a.createElement("div",{className:"margin-top--md"},o.map(((e,t)=>(0,a.cloneElement)(e,{key:t,hidden:e.props.value!==n}))))}function w(e){const t=b(e);return a.createElement("div",{className:(0,o.Z)("tabs-container",y)},a.createElement(g,(0,n.Z)({},e,t)),a.createElement(k,(0,n.Z)({},e,t)))}function E(e){const t=(0,v.Z)();return a.createElement(w,(0,n.Z)({key:String(t)},e))}},9095:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>u,default:()=>d,frontMatter:()=>l,metadata:()=>s,toc:()=>m});var n=r(7462),a=(r(7294),r(3905)),o=r(4866),i=r(5162);const l={},u="Mini-move",s={unversionedId:"extras/editor/mini-move",id:"extras/editor/mini-move",title:"Mini-move",description:"You can enable the extra with the :LazyExtras command.",source:"@site/docs/extras/editor/mini-move.md",sourceDirName:"extras/editor",slug:"/extras/editor/mini-move",permalink:"/extras/editor/mini-move",draft:!1,editUrl:"https://github.com/LazyVim/lazyvim.github.io/tree/main/docs/extras/editor/mini-move.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Mini Files",permalink:"/extras/editor/mini-files"},next:{title:"Navic",permalink:"/extras/editor/navic"}},c={},m=[{value:"mini.move",id:"minimove",level:2}],p={toc:m};function d(e){let{components:t,...r}=e;return(0,a.kt)("wrapper",(0,n.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"mini-move"},(0,a.kt)("inlineCode",{parentName:"h1"},"Mini-move")),(0,a.kt)("admonition",{type:"info"},(0,a.kt)("p",{parentName:"admonition"},"You can enable the extra with the ",(0,a.kt)("inlineCode",{parentName:"p"},":LazyExtras")," command.\nPlugins marked as optional will only be configured if they are installed.")),(0,a.kt)("p",null,"Below you can find a list of included plugins and their default settings."),(0,a.kt)("admonition",{type:"caution"},(0,a.kt)("p",{parentName:"admonition"},"You don't need to copy the default settings to your config.\nThey are only shown here for reference.")),(0,a.kt)("h2",{id:"minimove"},(0,a.kt)("a",{parentName:"h2",href:"https://github.com/nvim-mini/mini.move"},"mini.move")),(0,a.kt)(o.Z,{mdxType:"Tabs"},(0,a.kt)(i.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},"opts = {}\n"))),(0,a.kt)(i.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "nvim-mini/mini.move",\n event = "VeryLazy",\n opts = {},\n}\n')))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/3e5dfa0f.772bd6d0.js b/assets/js/3e5dfa0f.772bd6d0.js new file mode 100644 index 0000000000..b0487f039d --- /dev/null +++ b/assets/js/3e5dfa0f.772bd6d0.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklazyvim=self.webpackChunklazyvim||[]).push([[6609],{3905:(e,n,t)=>{t.d(n,{Zo:()=>p,kt:()=>k});var a=t(7294);function r(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function s(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,a)}return t}function o(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?s(Object(t),!0).forEach((function(n){r(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):s(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function i(e,n){if(null==e)return{};var t,a,r=function(e,n){if(null==e)return{};var t,a,r={},s=Object.keys(e);for(a=0;a<s.length;a++)t=s[a],n.indexOf(t)>=0||(r[t]=e[t]);return r}(e,n);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(a=0;a<s.length;a++)t=s[a],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(r[t]=e[t])}return r}var c=a.createContext({}),l=function(e){var n=a.useContext(c),t=n;return e&&(t="function"==typeof e?e(n):o(o({},n),e)),t},p=function(e){var n=l(e.components);return a.createElement(c.Provider,{value:n},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var n=e.children;return a.createElement(a.Fragment,{},n)}},m=a.forwardRef((function(e,n){var t=e.components,r=e.mdxType,s=e.originalType,c=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),u=l(t),m=r,k=u["".concat(c,".").concat(m)]||u[m]||d[m]||s;return t?a.createElement(k,o(o({ref:n},p),{},{components:t})):a.createElement(k,o({ref:n},p))}));function k(e,n){var t=arguments,r=n&&n.mdxType;if("string"==typeof e||r){var s=t.length,o=new Array(s);o[0]=m;var i={};for(var c in n)hasOwnProperty.call(n,c)&&(i[c]=n[c]);i.originalType=e,i[u]="string"==typeof e?e:r,o[1]=i;for(var l=2;l<s;l++)o[l]=t[l];return a.createElement.apply(null,o)}return a.createElement.apply(null,t)}m.displayName="MDXCreateElement"},5162:(e,n,t)=>{t.d(n,{Z:()=>o});var a=t(7294),r=t(6010);const s="tabItem_Ymn6";function o(e){let{children:n,hidden:t,className:o}=e;return a.createElement("div",{role:"tabpanel",className:(0,r.Z)(s,o),hidden:t},n)}},4866:(e,n,t)=>{t.d(n,{Z:()=>S});var a=t(7462),r=t(7294),s=t(6010),o=t(2466),i=t(6550),c=t(1980),l=t(7392),p=t(12);function u(e){return function(e){return r.Children.map(e,(e=>{if(!e||(0,r.isValidElement)(e)&&function(e){const{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:n,label:t,attributes:a,default:r}}=e;return{value:n,label:t,attributes:a,default:r}}))}function d(e){const{values:n,children:t}=e;return(0,r.useMemo)((()=>{const e=n??u(t);return function(e){const n=(0,l.l)(e,((e,n)=>e.value===n.value));if(n.length>0)throw new Error(`Docusaurus error: Duplicate values "${n.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[n,t])}function m(e){let{value:n,tabValues:t}=e;return t.some((e=>e.value===n))}function k(e){let{queryString:n=!1,groupId:t}=e;const a=(0,i.k6)(),s=function(e){let{queryString:n=!1,groupId:t}=e;if("string"==typeof n)return n;if(!1===n)return null;if(!0===n&&!t)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return t??null}({queryString:n,groupId:t});return[(0,c._X)(s),(0,r.useCallback)((e=>{if(!s)return;const n=new URLSearchParams(a.location.search);n.set(s,e),a.replace({...a.location,search:n.toString()})}),[s,a])]}function f(e){const{defaultValue:n,queryString:t=!1,groupId:a}=e,s=d(e),[o,i]=(0,r.useState)((()=>function(e){let{defaultValue:n,tabValues:t}=e;if(0===t.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(n){if(!m({value:n,tabValues:t}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${n}" but none of its children has the corresponding value. Available values are: ${t.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return n}const a=t.find((e=>e.default))??t[0];if(!a)throw new Error("Unexpected error: 0 tabValues");return a.value}({defaultValue:n,tabValues:s}))),[c,l]=k({queryString:t,groupId:a}),[u,f]=function(e){let{groupId:n}=e;const t=function(e){return e?`docusaurus.tab.${e}`:null}(n),[a,s]=(0,p.Nk)(t);return[a,(0,r.useCallback)((e=>{t&&s.set(e)}),[t,s])]}({groupId:a}),h=(()=>{const e=c??u;return m({value:e,tabValues:s})?e:null})();(0,r.useLayoutEffect)((()=>{h&&i(h)}),[h]);return{selectedValue:o,selectValue:(0,r.useCallback)((e=>{if(!m({value:e,tabValues:s}))throw new Error(`Can't select invalid tab value=${e}`);i(e),l(e),f(e)}),[l,f,s]),tabValues:s}}var h=t(2389);const b="tabList__CuJ",g="tabItem_LNqP";function v(e){let{className:n,block:t,selectedValue:i,selectValue:c,tabValues:l}=e;const p=[],{blockElementScrollPositionUntilNextRender:u}=(0,o.o5)(),d=e=>{const n=e.currentTarget,t=p.indexOf(n),a=l[t].value;a!==i&&(u(n),c(a))},m=e=>{let n=null;switch(e.key){case"Enter":d(e);break;case"ArrowRight":{const t=p.indexOf(e.currentTarget)+1;n=p[t]??p[0];break}case"ArrowLeft":{const t=p.indexOf(e.currentTarget)-1;n=p[t]??p[p.length-1];break}}n?.focus()};return r.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,s.Z)("tabs",{"tabs--block":t},n)},l.map((e=>{let{value:n,label:t,attributes:o}=e;return r.createElement("li",(0,a.Z)({role:"tab",tabIndex:i===n?0:-1,"aria-selected":i===n,key:n,ref:e=>p.push(e),onKeyDown:m,onClick:d},o,{className:(0,s.Z)("tabs__item",g,o?.className,{"tabs__item--active":i===n})}),t??n)})))}function y(e){let{lazy:n,children:t,selectedValue:a}=e;const s=(Array.isArray(t)?t:[t]).filter(Boolean);if(n){const e=s.find((e=>e.props.value===a));return e?(0,r.cloneElement)(e,{className:"margin-top--md"}):null}return r.createElement("div",{className:"margin-top--md"},s.map(((e,n)=>(0,r.cloneElement)(e,{key:n,hidden:e.props.value!==a}))))}function _(e){const n=f(e);return r.createElement("div",{className:(0,s.Z)("tabs-container",b)},r.createElement(v,(0,a.Z)({},e,n)),r.createElement(y,(0,a.Z)({},e,n)))}function S(e){const n=(0,h.Z)();return r.createElement(_,(0,a.Z)({key:String(n)},e))}},6045:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>p,contentTitle:()=>c,default:()=>m,frontMatter:()=>i,metadata:()=>l,toc:()=>u});var a=t(7462),r=(t(7294),t(3905)),s=t(4866),o=t(5162);const i={},c="Snacks_picker",l={unversionedId:"extras/editor/snacks_picker",id:"extras/editor/snacks_picker",title:"Snacks_picker",description:"You can enable the extra with the :LazyExtras command.",source:"@site/docs/extras/editor/snacks_picker.md",sourceDirName:"extras/editor",slug:"/extras/editor/snacks_picker",permalink:"/extras/editor/snacks_picker",draft:!1,editUrl:"https://github.com/LazyVim/lazyvim.github.io/tree/main/docs/extras/editor/snacks_picker.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Snacks_explorer",permalink:"/extras/editor/snacks_explorer"},next:{title:"Telescope",permalink:"/extras/editor/telescope"}},p={},u=[{value:"Options",id:"options",level:3},{value:"snacks.nvim",id:"snacksnvim",level:2},{value:"snacks.nvim",id:"snacksnvim-1",level:2},{value:"nvim-lspconfig",id:"nvim-lspconfig",level:2},{value:"snacks.nvim",id:"snacksnvim-2",level:2},{value:"snacks.nvim",id:"snacksnvim-3",level:2},{value:"todo-comments.nvim <em>(optional)</em>",id:"todo-commentsnvim-optional",level:2},{value:"alpha-nvim <em>(optional)</em>",id:"alpha-nvim-optional",level:2},{value:"mini.starter <em>(optional)</em>",id:"ministarter-optional",level:2},{value:"dashboard-nvim <em>(optional)</em>",id:"dashboard-nvim-optional",level:2},{value:"flash.nvim <em>(optional)</em>",id:"flashnvim-optional",level:2}],d={toc:u};function m(e){let{components:n,...t}=e;return(0,r.kt)("wrapper",(0,a.Z)({},d,t,{components:n,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"snacks_picker"},(0,r.kt)("inlineCode",{parentName:"h1"},"Snacks_picker")),(0,r.kt)("admonition",{type:"info"},(0,r.kt)("p",{parentName:"admonition"},"You can enable the extra with the ",(0,r.kt)("inlineCode",{parentName:"p"},":LazyExtras")," command.\nPlugins marked as optional will only be configured if they are installed.")),(0,r.kt)("h3",{id:"options"},"Options"),(0,r.kt)("p",null,"Additional options for this extra can be configured in your ",(0,r.kt)("a",{parentName:"p",href:"/configuration/general#options"},"lua/config/options.lua")," file:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua",metastring:'title="lua/config/options.lua"',title:'"lua/config/options.lua"'},'-- In case you don\'t want to use `:LazyExtras`,\n-- then you need to set the option below.\nvim.g.lazyvim_picker = "snacks"\n')),(0,r.kt)("p",null,"Below you can find a list of included plugins and their default settings."),(0,r.kt)("admonition",{type:"caution"},(0,r.kt)("p",{parentName:"admonition"},"You don't need to copy the default settings to your config.\nThey are only shown here for reference.")),(0,r.kt)("h2",{id:"snacksnvim"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/folke/snacks.nvim"},"snacks.nvim")),(0,r.kt)(s.Z,{mdxType:"Tabs"},(0,r.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = {\n picker = {\n win = {\n input = {\n keys = {\n ["<a-c>"] = {\n "toggle_cwd",\n mode = { "n", "i" },\n },\n },\n },\n },\n actions = {\n ---@param p snacks.Picker\n toggle_cwd = function(p)\n local root = LazyVim.root({ buf = p.input.filter.current_buf, normalize = true })\n local cwd = vim.fs.normalize((vim.uv or vim.loop).cwd() or ".")\n local current = p:cwd()\n p:set_cwd(current == root and cwd or root)\n p:find()\n end,\n },\n },\n}\n'))),(0,r.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "folke/snacks.nvim",\n opts = {\n picker = {\n win = {\n input = {\n keys = {\n ["<a-c>"] = {\n "toggle_cwd",\n mode = { "n", "i" },\n },\n },\n },\n },\n actions = {\n ---@param p snacks.Picker\n toggle_cwd = function(p)\n local root = LazyVim.root({ buf = p.input.filter.current_buf, normalize = true })\n local cwd = vim.fs.normalize((vim.uv or vim.loop).cwd() or ".")\n local current = p:cwd()\n p:set_cwd(current == root and cwd or root)\n p:find()\n end,\n },\n },\n },\n -- stylua: ignore\n keys = {\n { "<leader>,", function() Snacks.picker.buffers() end, desc = "Buffers" },\n { "<leader>/", LazyVim.pick("grep"), desc = "Grep (Root Dir)" },\n { "<leader>:", function() Snacks.picker.command_history() end, desc = "Command History" },\n { "<leader><space>", LazyVim.pick("files"), desc = "Find Files (Root Dir)" },\n { "<leader>n", function() Snacks.picker.notifications() end, desc = "Notification History" },\n -- find\n { "<leader>fb", function() Snacks.picker.buffers() end, desc = "Buffers" },\n { "<leader>fB", function() Snacks.picker.buffers({ hidden = true, nofile = true }) end, desc = "Buffers (all)" },\n { "<leader>fc", LazyVim.pick.config_files(), desc = "Find Config File" },\n { "<leader>ff", LazyVim.pick("files"), desc = "Find Files (Root Dir)" },\n { "<leader>fF", LazyVim.pick("files", { root = false }), desc = "Find Files (cwd)" },\n { "<leader>fg", function() Snacks.picker.git_files() end, desc = "Find Files (git-files)" },\n { "<leader>fr", LazyVim.pick("oldfiles"), desc = "Recent" },\n { "<leader>fR", function() Snacks.picker.recent({ filter = { cwd = true }}) end, desc = "Recent (cwd)" },\n { "<leader>fp", function() Snacks.picker.projects() end, desc = "Projects" },\n -- git\n { "<leader>gd", function() Snacks.picker.git_diff() end, desc = "Git Diff (hunks)" },\n { "<leader>gD", function() Snacks.picker.git_diff({ base = "origin" }) end, desc = "Git Diff (origin)" },\n { "<leader>gs", function() Snacks.picker.git_status() end, desc = "Git Status" },\n { "<leader>gS", function() Snacks.picker.git_stash() end, desc = "Git Stash" },\n -- Grep\n { "<leader>sb", function() Snacks.picker.lines() end, desc = "Buffer Lines" },\n { "<leader>sB", function() Snacks.picker.grep_buffers() end, desc = "Grep Open Buffers" },\n { "<leader>sg", LazyVim.pick("live_grep"), desc = "Grep (Root Dir)" },\n { "<leader>sG", LazyVim.pick("live_grep", { root = false }), desc = "Grep (cwd)" },\n { "<leader>sp", function() Snacks.picker.lazy() end, desc = "Search for Plugin Spec" },\n { "<leader>sw", LazyVim.pick("grep_word"), desc = "Visual selection or word (Root Dir)", mode = { "n", "x" } },\n { "<leader>sW", LazyVim.pick("grep_word", { root = false }), desc = "Visual selection or word (cwd)", mode = { "n", "x" } },\n -- search\n { \'<leader>s"\', function() Snacks.picker.registers() end, desc = "Registers" },\n { \'<leader>s/\', function() Snacks.picker.search_history() end, desc = "Search History" },\n { "<leader>sa", function() Snacks.picker.autocmds() end, desc = "Autocmds" },\n { "<leader>sc", function() Snacks.picker.command_history() end, desc = "Command History" },\n { "<leader>sC", function() Snacks.picker.commands() end, desc = "Commands" },\n { "<leader>sd", function() Snacks.picker.diagnostics() end, desc = "Diagnostics" },\n { "<leader>sD", function() Snacks.picker.diagnostics_buffer() end, desc = "Buffer Diagnostics" },\n { "<leader>sh", function() Snacks.picker.help() end, desc = "Help Pages" },\n { "<leader>sH", function() Snacks.picker.highlights() end, desc = "Highlights" },\n { "<leader>si", function() Snacks.picker.icons() end, desc = "Icons" },\n { "<leader>sj", function() Snacks.picker.jumps() end, desc = "Jumps" },\n { "<leader>sk", function() Snacks.picker.keymaps() end, desc = "Keymaps" },\n { "<leader>sl", function() Snacks.picker.loclist() end, desc = "Location List" },\n { "<leader>sM", function() Snacks.picker.man() end, desc = "Man Pages" },\n { "<leader>sm", function() Snacks.picker.marks() end, desc = "Marks" },\n { "<leader>sR", function() Snacks.picker.resume() end, desc = "Resume" },\n { "<leader>sq", function() Snacks.picker.qflist() end, desc = "Quickfix List" },\n { "<leader>su", function() Snacks.picker.undo() end, desc = "Undotree" },\n -- ui\n { "<leader>uC", function() Snacks.picker.colorschemes() end, desc = "Colorschemes" },\n },\n}\n')))),(0,r.kt)("h2",{id:"snacksnvim-1"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/folke/snacks.nvim"},"snacks.nvim")),(0,r.kt)(s.Z,{mdxType:"Tabs"},(0,r.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = function(_, opts)\n if LazyVim.has("trouble.nvim") then\n return vim.tbl_deep_extend("force", opts or {}, {\n picker = {\n actions = {\n trouble_open = function(...)\n return require("trouble.sources.snacks").actions.trouble_open.action(...)\n end,\n },\n win = {\n input = {\n keys = {\n ["<a-t>"] = {\n "trouble_open",\n mode = { "n", "i" },\n },\n },\n },\n },\n },\n })\n end\nend\n'))),(0,r.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "folke/snacks.nvim",\n opts = function(_, opts)\n if LazyVim.has("trouble.nvim") then\n return vim.tbl_deep_extend("force", opts or {}, {\n picker = {\n actions = {\n trouble_open = function(...)\n return require("trouble.sources.snacks").actions.trouble_open.action(...)\n end,\n },\n win = {\n input = {\n keys = {\n ["<a-t>"] = {\n "trouble_open",\n mode = { "n", "i" },\n },\n },\n },\n },\n },\n })\n end\n end,\n}\n')))),(0,r.kt)("h2",{id:"nvim-lspconfig"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/neovim/nvim-lspconfig"},"nvim-lspconfig")),(0,r.kt)(s.Z,{mdxType:"Tabs"},(0,r.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = function()\n local Keys = require("lazyvim.plugins.lsp.keymaps").get()\n -- stylua: ignore\n vim.list_extend(Keys, {\n { "gd", function() Snacks.picker.lsp_definitions() end, desc = "Goto Definition", has = "definition" },\n { "gr", function() Snacks.picker.lsp_references() end, nowait = true, desc = "References" },\n { "gI", function() Snacks.picker.lsp_implementations() end, desc = "Goto Implementation" },\n { "gy", function() Snacks.picker.lsp_type_definitions() end, desc = "Goto T[y]pe Definition" },\n { "<leader>ss", function() Snacks.picker.lsp_symbols({ filter = LazyVim.config.kind_filter }) end, desc = "LSP Symbols", has = "documentSymbol" },\n { "<leader>sS", function() Snacks.picker.lsp_workspace_symbols({ filter = LazyVim.config.kind_filter }) end, desc = "LSP Workspace Symbols", has = "workspace/symbols" },\n { "gai", function() Snacks.picker.lsp_incoming_calls() end, desc = "C[a]lls Incoming", has = "callHierarchy/incomingCalls" },\n { "gao", function() Snacks.picker.lsp_outgoing_calls() end, desc = "C[a]lls Outgoing", has = "callHierarchy/outgoingCalls" },\n })\nend\n'))),(0,r.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "neovim/nvim-lspconfig",\n opts = function()\n local Keys = require("lazyvim.plugins.lsp.keymaps").get()\n -- stylua: ignore\n vim.list_extend(Keys, {\n { "gd", function() Snacks.picker.lsp_definitions() end, desc = "Goto Definition", has = "definition" },\n { "gr", function() Snacks.picker.lsp_references() end, nowait = true, desc = "References" },\n { "gI", function() Snacks.picker.lsp_implementations() end, desc = "Goto Implementation" },\n { "gy", function() Snacks.picker.lsp_type_definitions() end, desc = "Goto T[y]pe Definition" },\n { "<leader>ss", function() Snacks.picker.lsp_symbols({ filter = LazyVim.config.kind_filter }) end, desc = "LSP Symbols", has = "documentSymbol" },\n { "<leader>sS", function() Snacks.picker.lsp_workspace_symbols({ filter = LazyVim.config.kind_filter }) end, desc = "LSP Workspace Symbols", has = "workspace/symbols" },\n { "gai", function() Snacks.picker.lsp_incoming_calls() end, desc = "C[a]lls Incoming", has = "callHierarchy/incomingCalls" },\n { "gao", function() Snacks.picker.lsp_outgoing_calls() end, desc = "C[a]lls Outgoing", has = "callHierarchy/outgoingCalls" },\n })\n end,\n}\n')))),(0,r.kt)("h2",{id:"snacksnvim-2"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/folke/snacks.nvim"},"snacks.nvim")),(0,r.kt)(s.Z,{mdxType:"Tabs"},(0,r.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = function(_, opts)\n table.insert(opts.dashboard.preset.keys, 3, {\n icon = "\uf502 ",\n key = "p",\n desc = "Projects",\n action = ":lua Snacks.picker.projects()",\n })\nend\n'))),(0,r.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "folke/snacks.nvim",\n opts = function(_, opts)\n table.insert(opts.dashboard.preset.keys, 3, {\n icon = "\uf502 ",\n key = "p",\n desc = "Projects",\n action = ":lua Snacks.picker.projects()",\n })\n end,\n}\n')))),(0,r.kt)("h2",{id:"snacksnvim-3"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/folke/snacks.nvim"},"snacks.nvim")),(0,r.kt)(s.Z,{mdxType:"Tabs"},(0,r.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = {\n picker = {\n win = {\n input = {\n keys = {\n ["<a-s>"] = { "flash", mode = { "n", "i" } },\n ["s"] = { "flash" },\n },\n },\n },\n actions = {\n flash = function(picker)\n require("flash").jump({\n pattern = "^",\n label = { after = { 0, 0 } },\n search = {\n mode = "search",\n exclude = {\n function(win)\n return vim.bo[vim.api.nvim_win_get_buf(win)].filetype ~= "snacks_picker_list"\n end,\n },\n },\n action = function(match)\n local idx = picker.list:row2idx(match.pos[1])\n picker.list:_move(idx, true, true)\n end,\n })\n end,\n },\n },\n}\n'))),(0,r.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "folke/snacks.nvim",\n opts = {\n picker = {\n win = {\n input = {\n keys = {\n ["<a-s>"] = { "flash", mode = { "n", "i" } },\n ["s"] = { "flash" },\n },\n },\n },\n actions = {\n flash = function(picker)\n require("flash").jump({\n pattern = "^",\n label = { after = { 0, 0 } },\n search = {\n mode = "search",\n exclude = {\n function(win)\n return vim.bo[vim.api.nvim_win_get_buf(win)].filetype ~= "snacks_picker_list"\n end,\n },\n },\n action = function(match)\n local idx = picker.list:row2idx(match.pos[1])\n picker.list:_move(idx, true, true)\n end,\n })\n end,\n },\n },\n },\n}\n')))),(0,r.kt)("h2",{id:"todo-commentsnvim-optional"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/folke/todo-comments.nvim"},"todo-comments.nvim")," ",(0,r.kt)("em",{parentName:"h2"},"(optional)")),(0,r.kt)(s.Z,{mdxType:"Tabs"},(0,r.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},"opts = nil\n"))),(0,r.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "folke/todo-comments.nvim",\n optional = true,\n -- stylua: ignore\n keys = {\n { "<leader>st", function() Snacks.picker.todo_comments() end, desc = "Todo" },\n { "<leader>sT", function () Snacks.picker.todo_comments({ keywords = { "TODO", "FIX", "FIXME" } }) end, desc = "Todo/Fix/Fixme" },\n },\n}\n')))),(0,r.kt)("h2",{id:"alpha-nvim-optional"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/goolord/alpha-nvim"},"alpha-nvim")," ",(0,r.kt)("em",{parentName:"h2"},"(optional)")),(0,r.kt)(s.Z,{mdxType:"Tabs"},(0,r.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = function(_, dashboard)\n local button = dashboard.button("p", "\uf401 " .. " Projects", [[<cmd> lua Snacks.picker.projects() <cr>]])\n button.opts.hl = "AlphaButtons"\n button.opts.hl_shortcut = "AlphaShortcut"\n table.insert(dashboard.section.buttons.val, 4, button)\nend\n'))),(0,r.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "goolord/alpha-nvim",\n optional = true,\n opts = function(_, dashboard)\n local button = dashboard.button("p", "\uf401 " .. " Projects", [[<cmd> lua Snacks.picker.projects() <cr>]])\n button.opts.hl = "AlphaButtons"\n button.opts.hl_shortcut = "AlphaShortcut"\n table.insert(dashboard.section.buttons.val, 4, button)\n end,\n}\n')))),(0,r.kt)("h2",{id:"ministarter-optional"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/nvim-mini/mini.starter"},"mini.starter")," ",(0,r.kt)("em",{parentName:"h2"},"(optional)")),(0,r.kt)(s.Z,{mdxType:"Tabs"},(0,r.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = function(_, opts)\n local items = {\n {\n name = "Projects",\n action = [[lua Snacks.picker.projects()]],\n section = string.rep(" ", 22) .. "Telescope",\n },\n }\n vim.list_extend(opts.items, items)\nend\n'))),(0,r.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "nvim-mini/mini.starter",\n optional = true,\n opts = function(_, opts)\n local items = {\n {\n name = "Projects",\n action = [[lua Snacks.picker.projects()]],\n section = string.rep(" ", 22) .. "Telescope",\n },\n }\n vim.list_extend(opts.items, items)\n end,\n}\n')))),(0,r.kt)("h2",{id:"dashboard-nvim-optional"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/nvimdev/dashboard-nvim"},"dashboard-nvim")," ",(0,r.kt)("em",{parentName:"h2"},"(optional)")),(0,r.kt)(s.Z,{mdxType:"Tabs"},(0,r.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = function(_, opts)\n if not vim.tbl_get(opts, "config", "center") then\n return\n end\n local projects = {\n action = "lua Snacks.picker.projects()",\n desc = " Projects",\n icon = "\uf502 ",\n key = "p",\n }\n\n projects.desc = projects.desc .. string.rep(" ", 43 - #projects.desc)\n projects.key_format = " %s"\n\n table.insert(opts.config.center, 3, projects)\nend\n'))),(0,r.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "nvimdev/dashboard-nvim",\n optional = true,\n opts = function(_, opts)\n if not vim.tbl_get(opts, "config", "center") then\n return\n end\n local projects = {\n action = "lua Snacks.picker.projects()",\n desc = " Projects",\n icon = "\uf502 ",\n key = "p",\n }\n\n projects.desc = projects.desc .. string.rep(" ", 43 - #projects.desc)\n projects.key_format = " %s"\n\n table.insert(opts.config.center, 3, projects)\n end,\n}\n')))),(0,r.kt)("h2",{id:"flashnvim-optional"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/folke/flash.nvim"},"flash.nvim")," ",(0,r.kt)("em",{parentName:"h2"},"(optional)")),(0,r.kt)(s.Z,{mdxType:"Tabs"},(0,r.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},"opts = nil\n"))),(0,r.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "folke/flash.nvim",\n optional = true,\n specs = {\n {\n "folke/snacks.nvim",\n opts = {\n picker = {\n win = {\n input = {\n keys = {\n ["<a-s>"] = { "flash", mode = { "n", "i" } },\n ["s"] = { "flash" },\n },\n },\n },\n actions = {\n flash = function(picker)\n require("flash").jump({\n pattern = "^",\n label = { after = { 0, 0 } },\n search = {\n mode = "search",\n exclude = {\n function(win)\n return vim.bo[vim.api.nvim_win_get_buf(win)].filetype ~= "snacks_picker_list"\n end,\n },\n },\n action = function(match)\n local idx = picker.list:row2idx(match.pos[1])\n picker.list:_move(idx, true, true)\n end,\n })\n end,\n },\n },\n },\n },\n },\n}\n')))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/420dc8cc.4809e767.js b/assets/js/420dc8cc.4809e767.js new file mode 100644 index 0000000000..a774ffdbb1 --- /dev/null +++ b/assets/js/420dc8cc.4809e767.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklazyvim=self.webpackChunklazyvim||[]).push([[3719],{3905:(e,t,n)=>{n.d(t,{Zo:()=>s,kt:()=>f});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function l(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var u=r.createContext({}),c=function(e){var t=r.useContext(u),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},s=function(e){var t=c(e.components);return r.createElement(u.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,u=e.parentName,s=l(e,["components","mdxType","originalType","parentName"]),p=c(n),d=a,f=p["".concat(u,".").concat(d)]||p[d]||m[d]||o;return n?r.createElement(f,i(i({ref:t},s),{},{components:n})):r.createElement(f,i({ref:t},s))}));function f(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,i=new Array(o);i[0]=d;var l={};for(var u in t)hasOwnProperty.call(t,u)&&(l[u]=t[u]);l.originalType=e,l[p]="string"==typeof e?e:a,i[1]=l;for(var c=2;c<o;c++)i[c]=n[c];return r.createElement.apply(null,i)}return r.createElement.apply(null,n)}d.displayName="MDXCreateElement"},5162:(e,t,n)=>{n.d(t,{Z:()=>i});var r=n(7294),a=n(6010);const o="tabItem_Ymn6";function i(e){let{children:t,hidden:n,className:i}=e;return r.createElement("div",{role:"tabpanel",className:(0,a.Z)(o,i),hidden:n},t)}},4866:(e,t,n)=>{n.d(t,{Z:()=>x});var r=n(7462),a=n(7294),o=n(6010),i=n(2466),l=n(6550),u=n(1980),c=n(7392),s=n(12);function p(e){return function(e){return a.Children.map(e,(e=>{if(!e||(0,a.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:t,label:n,attributes:r,default:a}}=e;return{value:t,label:n,attributes:r,default:a}}))}function m(e){const{values:t,children:n}=e;return(0,a.useMemo)((()=>{const e=t??p(n);return function(e){const t=(0,c.l)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[t,n])}function d(e){let{value:t,tabValues:n}=e;return n.some((e=>e.value===t))}function f(e){let{queryString:t=!1,groupId:n}=e;const r=(0,l.k6)(),o=function(e){let{queryString:t=!1,groupId:n}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!n)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return n??null}({queryString:t,groupId:n});return[(0,u._X)(o),(0,a.useCallback)((e=>{if(!o)return;const t=new URLSearchParams(r.location.search);t.set(o,e),r.replace({...r.location,search:t.toString()})}),[o,r])]}function v(e){const{defaultValue:t,queryString:n=!1,groupId:r}=e,o=m(e),[i,l]=(0,a.useState)((()=>function(e){let{defaultValue:t,tabValues:n}=e;if(0===n.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(t){if(!d({value:t,tabValues:n}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${n.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const r=n.find((e=>e.default))??n[0];if(!r)throw new Error("Unexpected error: 0 tabValues");return r.value}({defaultValue:t,tabValues:o}))),[u,c]=f({queryString:n,groupId:r}),[p,v]=function(e){let{groupId:t}=e;const n=function(e){return e?`docusaurus.tab.${e}`:null}(t),[r,o]=(0,s.Nk)(n);return[r,(0,a.useCallback)((e=>{n&&o.set(e)}),[n,o])]}({groupId:r}),b=(()=>{const e=u??p;return d({value:e,tabValues:o})?e:null})();(0,a.useLayoutEffect)((()=>{b&&l(b)}),[b]);return{selectedValue:i,selectValue:(0,a.useCallback)((e=>{if(!d({value:e,tabValues:o}))throw new Error(`Can't select invalid tab value=${e}`);l(e),c(e),v(e)}),[c,v,o]),tabValues:o}}var b=n(2389);const h="tabList__CuJ",y="tabItem_LNqP";function g(e){let{className:t,block:n,selectedValue:l,selectValue:u,tabValues:c}=e;const s=[],{blockElementScrollPositionUntilNextRender:p}=(0,i.o5)(),m=e=>{const t=e.currentTarget,n=s.indexOf(t),r=c[n].value;r!==l&&(p(t),u(r))},d=e=>{let t=null;switch(e.key){case"Enter":m(e);break;case"ArrowRight":{const n=s.indexOf(e.currentTarget)+1;t=s[n]??s[0];break}case"ArrowLeft":{const n=s.indexOf(e.currentTarget)-1;t=s[n]??s[s.length-1];break}}t?.focus()};return a.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,o.Z)("tabs",{"tabs--block":n},t)},c.map((e=>{let{value:t,label:n,attributes:i}=e;return a.createElement("li",(0,r.Z)({role:"tab",tabIndex:l===t?0:-1,"aria-selected":l===t,key:t,ref:e=>s.push(e),onKeyDown:d,onClick:m},i,{className:(0,o.Z)("tabs__item",y,i?.className,{"tabs__item--active":l===t})}),n??t)})))}function k(e){let{lazy:t,children:n,selectedValue:r}=e;const o=(Array.isArray(n)?n:[n]).filter(Boolean);if(t){const e=o.find((e=>e.props.value===r));return e?(0,a.cloneElement)(e,{className:"margin-top--md"}):null}return a.createElement("div",{className:"margin-top--md"},o.map(((e,t)=>(0,a.cloneElement)(e,{key:t,hidden:e.props.value!==r}))))}function w(e){const t=v(e);return a.createElement("div",{className:(0,o.Z)("tabs-container",h)},a.createElement(g,(0,r.Z)({},e,t)),a.createElement(k,(0,r.Z)({},e,t)))}function x(e){const t=(0,b.Z)();return a.createElement(w,(0,r.Z)({key:String(t)},e))}},4806:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>u,default:()=>d,frontMatter:()=>l,metadata:()=>c,toc:()=>p});var r=n(7462),a=(n(7294),n(3905)),o=n(4866),i=n(5162);const l={},u="Navic",c={unversionedId:"extras/editor/navic",id:"extras/editor/navic",title:"Navic",description:"You can enable the extra with the :LazyExtras command.",source:"@site/docs/extras/editor/navic.md",sourceDirName:"extras/editor",slug:"/extras/editor/navic",permalink:"/extras/editor/navic",draft:!1,editUrl:"https://github.com/LazyVim/lazyvim.github.io/tree/main/docs/extras/editor/navic.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Mini-move",permalink:"/extras/editor/mini-move"},next:{title:"Neo-tree",permalink:"/extras/editor/neo-tree"}},s={},p=[{value:"nvim-navic",id:"nvim-navic",level:2},{value:"lualine.nvim <em>(optional)</em>",id:"lualinenvim-optional",level:2}],m={toc:p};function d(e){let{components:t,...n}=e;return(0,a.kt)("wrapper",(0,r.Z)({},m,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"navic"},"Navic"),(0,a.kt)("admonition",{type:"info"},(0,a.kt)("p",{parentName:"admonition"},"You can enable the extra with the ",(0,a.kt)("inlineCode",{parentName:"p"},":LazyExtras")," command.\nPlugins marked as optional will only be configured if they are installed.")),(0,a.kt)("p",null,"Below you can find a list of included plugins and their default settings."),(0,a.kt)("admonition",{type:"caution"},(0,a.kt)("p",{parentName:"admonition"},"You don't need to copy the default settings to your config.\nThey are only shown here for reference.")),(0,a.kt)("h2",{id:"nvim-navic"},(0,a.kt)("a",{parentName:"h2",href:"https://github.com/SmiteshP/nvim-navic"},"nvim-navic")),(0,a.kt)("p",null," lsp symbol navigation for lualine. This shows where\nin the code structure you are - within functions, classes,\netc - in the statusline."),(0,a.kt)(o.Z,{mdxType:"Tabs"},(0,a.kt)(i.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'opts = function()\n return {\n separator = " ",\n highlight = true,\n depth_limit = 5,\n icons = LazyVim.config.icons.kinds,\n lazy_update_context = true,\n }\nend\n'))),(0,a.kt)(i.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "SmiteshP/nvim-navic",\n lazy = true,\n init = function()\n vim.g.navic_silence = true\n LazyVim.lsp.on_attach(function(client, buffer)\n if client:supports_method("textDocument/documentSymbol") then\n require("nvim-navic").attach(client, buffer)\n end\n end)\n end,\n opts = function()\n return {\n separator = " ",\n highlight = true,\n depth_limit = 5,\n icons = LazyVim.config.icons.kinds,\n lazy_update_context = true,\n }\n end,\n}\n')))),(0,a.kt)("h2",{id:"lualinenvim-optional"},(0,a.kt)("a",{parentName:"h2",href:"https://github.com/nvim-lualine/lualine.nvim"},"lualine.nvim")," ",(0,a.kt)("em",{parentName:"h2"},"(optional)")),(0,a.kt)("p",null," lualine integration"),(0,a.kt)(o.Z,{mdxType:"Tabs"},(0,a.kt)(i.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'opts = function(_, opts)\n if not vim.g.trouble_lualine then\n table.insert(opts.sections.lualine_c, { "navic", color_correction = "dynamic" })\n end\nend\n'))),(0,a.kt)(i.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "nvim-lualine/lualine.nvim",\n optional = true,\n opts = function(_, opts)\n if not vim.g.trouble_lualine then\n table.insert(opts.sections.lualine_c, { "navic", color_correction = "dynamic" })\n end\n end,\n}\n')))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/468753df.0218e241.js b/assets/js/468753df.0218e241.js new file mode 100644 index 0000000000..f7a2c41312 --- /dev/null +++ b/assets/js/468753df.0218e241.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklazyvim=self.webpackChunklazyvim||[]).push([[9898],{3905:(e,t,r)=>{r.d(t,{Zo:()=>c,kt:()=>f});var n=r(7294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?o(Object(r),!0).forEach((function(t){a(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):o(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function u(e,t){if(null==e)return{};var r,n,a=function(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var s=n.createContext({}),i=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},c=function(e){var t=i(e.components);return n.createElement(s.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,s=e.parentName,c=u(e,["components","mdxType","originalType","parentName"]),p=i(r),m=a,f=p["".concat(s,".").concat(m)]||p[m]||d[m]||o;return r?n.createElement(f,l(l({ref:t},c),{},{components:r})):n.createElement(f,l({ref:t},c))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,l=new Array(o);l[0]=m;var u={};for(var s in t)hasOwnProperty.call(t,s)&&(u[s]=t[s]);u.originalType=e,u[p]="string"==typeof e?e:a,l[1]=u;for(var i=2;i<o;i++)l[i]=r[i];return n.createElement.apply(null,l)}return n.createElement.apply(null,r)}m.displayName="MDXCreateElement"},5162:(e,t,r)=>{r.d(t,{Z:()=>l});var n=r(7294),a=r(6010);const o="tabItem_Ymn6";function l(e){let{children:t,hidden:r,className:l}=e;return n.createElement("div",{role:"tabpanel",className:(0,a.Z)(o,l),hidden:r},t)}},4866:(e,t,r)=>{r.d(t,{Z:()=>w});var n=r(7462),a=r(7294),o=r(6010),l=r(2466),u=r(6550),s=r(1980),i=r(7392),c=r(12);function p(e){return function(e){return a.Children.map(e,(e=>{if(!e||(0,a.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:t,label:r,attributes:n,default:a}}=e;return{value:t,label:r,attributes:n,default:a}}))}function d(e){const{values:t,children:r}=e;return(0,a.useMemo)((()=>{const e=t??p(r);return function(e){const t=(0,i.l)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[t,r])}function m(e){let{value:t,tabValues:r}=e;return r.some((e=>e.value===t))}function f(e){let{queryString:t=!1,groupId:r}=e;const n=(0,u.k6)(),o=function(e){let{queryString:t=!1,groupId:r}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!r)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return r??null}({queryString:t,groupId:r});return[(0,s._X)(o),(0,a.useCallback)((e=>{if(!o)return;const t=new URLSearchParams(n.location.search);t.set(o,e),n.replace({...n.location,search:t.toString()})}),[o,n])]}function b(e){const{defaultValue:t,queryString:r=!1,groupId:n}=e,o=d(e),[l,u]=(0,a.useState)((()=>function(e){let{defaultValue:t,tabValues:r}=e;if(0===r.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(t){if(!m({value:t,tabValues:r}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${r.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const n=r.find((e=>e.default))??r[0];if(!n)throw new Error("Unexpected error: 0 tabValues");return n.value}({defaultValue:t,tabValues:o}))),[s,i]=f({queryString:r,groupId:n}),[p,b]=function(e){let{groupId:t}=e;const r=function(e){return e?`docusaurus.tab.${e}`:null}(t),[n,o]=(0,c.Nk)(r);return[n,(0,a.useCallback)((e=>{r&&o.set(e)}),[r,o])]}({groupId:n}),y=(()=>{const e=s??p;return m({value:e,tabValues:o})?e:null})();(0,a.useLayoutEffect)((()=>{y&&u(y)}),[y]);return{selectedValue:l,selectValue:(0,a.useCallback)((e=>{if(!m({value:e,tabValues:o}))throw new Error(`Can't select invalid tab value=${e}`);u(e),i(e),b(e)}),[i,b,o]),tabValues:o}}var y=r(2389);const h="tabList__CuJ",v="tabItem_LNqP";function k(e){let{className:t,block:r,selectedValue:u,selectValue:s,tabValues:i}=e;const c=[],{blockElementScrollPositionUntilNextRender:p}=(0,l.o5)(),d=e=>{const t=e.currentTarget,r=c.indexOf(t),n=i[r].value;n!==u&&(p(t),s(n))},m=e=>{let t=null;switch(e.key){case"Enter":d(e);break;case"ArrowRight":{const r=c.indexOf(e.currentTarget)+1;t=c[r]??c[0];break}case"ArrowLeft":{const r=c.indexOf(e.currentTarget)-1;t=c[r]??c[c.length-1];break}}t?.focus()};return a.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,o.Z)("tabs",{"tabs--block":r},t)},i.map((e=>{let{value:t,label:r,attributes:l}=e;return a.createElement("li",(0,n.Z)({role:"tab",tabIndex:u===t?0:-1,"aria-selected":u===t,key:t,ref:e=>c.push(e),onKeyDown:m,onClick:d},l,{className:(0,o.Z)("tabs__item",v,l?.className,{"tabs__item--active":u===t})}),r??t)})))}function g(e){let{lazy:t,children:r,selectedValue:n}=e;const o=(Array.isArray(r)?r:[r]).filter(Boolean);if(t){const e=o.find((e=>e.props.value===n));return e?(0,a.cloneElement)(e,{className:"margin-top--md"}):null}return a.createElement("div",{className:"margin-top--md"},o.map(((e,t)=>(0,a.cloneElement)(e,{key:t,hidden:e.props.value!==n}))))}function x(e){const t=b(e);return a.createElement("div",{className:(0,o.Z)("tabs-container",h)},a.createElement(k,(0,n.Z)({},e,t)),a.createElement(g,(0,n.Z)({},e,t)))}function w(e){const t=(0,y.Z)();return a.createElement(x,(0,n.Z)({key:String(t)},e))}},5025:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>s,default:()=>m,frontMatter:()=>u,metadata:()=>i,toc:()=>p});var n=r(7462),a=(r(7294),r(3905)),o=r(4866),l=r(5162);const u={},s="Snacks_explorer",i={unversionedId:"extras/editor/snacks_explorer",id:"extras/editor/snacks_explorer",title:"Snacks_explorer",description:"You can enable the extra with the :LazyExtras command.",source:"@site/docs/extras/editor/snacks_explorer.md",sourceDirName:"extras/editor",slug:"/extras/editor/snacks_explorer",permalink:"/extras/editor/snacks_explorer",draft:!1,editUrl:"https://github.com/LazyVim/lazyvim.github.io/tree/main/docs/extras/editor/snacks_explorer.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Refactoring",permalink:"/extras/editor/refactoring"},next:{title:"Snacks_picker",permalink:"/extras/editor/snacks_picker"}},c={},p=[{value:"snacks.nvim",id:"snacksnvim",level:2}],d={toc:p};function m(e){let{components:t,...r}=e;return(0,a.kt)("wrapper",(0,n.Z)({},d,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"snacks_explorer"},(0,a.kt)("inlineCode",{parentName:"h1"},"Snacks_explorer")),(0,a.kt)("admonition",{type:"info"},(0,a.kt)("p",{parentName:"admonition"},"You can enable the extra with the ",(0,a.kt)("inlineCode",{parentName:"p"},":LazyExtras")," command.\nPlugins marked as optional will only be configured if they are installed.")),(0,a.kt)("p",null,"Below you can find a list of included plugins and their default settings."),(0,a.kt)("admonition",{type:"caution"},(0,a.kt)("p",{parentName:"admonition"},"You don't need to copy the default settings to your config.\nThey are only shown here for reference.")),(0,a.kt)("h2",{id:"snacksnvim"},(0,a.kt)("a",{parentName:"h2",href:"https://github.com/folke/snacks.nvim"},"snacks.nvim")),(0,a.kt)(o.Z,{mdxType:"Tabs"},(0,a.kt)(l.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},"opts = nil\n"))),(0,a.kt)(l.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'"folke/snacks.nvim"\n')))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/4972.8b7a66b6.js b/assets/js/4972.8b7a66b6.js new file mode 100644 index 0000000000..096383a2e5 --- /dev/null +++ b/assets/js/4972.8b7a66b6.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklazyvim=self.webpackChunklazyvim||[]).push([[4972],{4972:(e,t,a)=>{a.r(t),a.d(t,{default:()=>i});var n=a(7294),l=a(5999),o=a(1944),r=a(5924);function i(){return n.createElement(n.Fragment,null,n.createElement(o.d,{title:(0,l.I)({id:"theme.NotFound.title",message:"Page Not Found"})}),n.createElement(r.Z,null,n.createElement("main",{className:"container margin-vert--xl"},n.createElement("div",{className:"row"},n.createElement("div",{className:"col col--6 col--offset-3"},n.createElement("h1",{className:"hero__title"},n.createElement(l.Z,{id:"theme.NotFound.title",description:"The title of the 404 page"},"Page Not Found")),n.createElement("p",null,n.createElement(l.Z,{id:"theme.NotFound.p1",description:"The first paragraph of the 404 page"},"We could not find what you were looking for.")),n.createElement("p",null,n.createElement(l.Z,{id:"theme.NotFound.p2",description:"The 2nd paragraph of the 404 page"},"Please contact the owner of the site that linked you to the original URL and let them know their link is broken.")))))))}}}]); \ No newline at end of file diff --git a/assets/js/49928ac3.595fa845.js b/assets/js/49928ac3.595fa845.js new file mode 100644 index 0000000000..9370b1ff3f --- /dev/null +++ b/assets/js/49928ac3.595fa845.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklazyvim=self.webpackChunklazyvim||[]).push([[2147],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>f});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?l(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):l(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function u(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},l=Object.keys(e);for(r=0;r<l.length;r++)n=l[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r<l.length;r++)n=l[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var i=r.createContext({}),s=function(e){var t=r.useContext(i),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},c=function(e){var t=s(e.components);return r.createElement(i.Provider,{value:t},e.children)},m="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,l=e.originalType,i=e.parentName,c=u(e,["components","mdxType","originalType","parentName"]),m=s(n),d=a,f=m["".concat(i,".").concat(d)]||m[d]||p[d]||l;return n?r.createElement(f,o(o({ref:t},c),{},{components:n})):r.createElement(f,o({ref:t},c))}));function f(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var l=n.length,o=new Array(l);o[0]=d;var u={};for(var i in t)hasOwnProperty.call(t,i)&&(u[i]=t[i]);u.originalType=e,u[m]="string"==typeof e?e:a,o[1]=u;for(var s=2;s<l;s++)o[s]=n[s];return r.createElement.apply(null,o)}return r.createElement.apply(null,n)}d.displayName="MDXCreateElement"},5162:(e,t,n)=>{n.d(t,{Z:()=>o});var r=n(7294),a=n(6010);const l="tabItem_Ymn6";function o(e){let{children:t,hidden:n,className:o}=e;return r.createElement("div",{role:"tabpanel",className:(0,a.Z)(l,o),hidden:n},t)}},4866:(e,t,n)=>{n.d(t,{Z:()=>x});var r=n(7462),a=n(7294),l=n(6010),o=n(2466),u=n(6550),i=n(1980),s=n(7392),c=n(12);function m(e){return function(e){return a.Children.map(e,(e=>{if(!e||(0,a.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:t,label:n,attributes:r,default:a}}=e;return{value:t,label:n,attributes:r,default:a}}))}function p(e){const{values:t,children:n}=e;return(0,a.useMemo)((()=>{const e=t??m(n);return function(e){const t=(0,s.l)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[t,n])}function d(e){let{value:t,tabValues:n}=e;return n.some((e=>e.value===t))}function f(e){let{queryString:t=!1,groupId:n}=e;const r=(0,u.k6)(),l=function(e){let{queryString:t=!1,groupId:n}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!n)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return n??null}({queryString:t,groupId:n});return[(0,i._X)(l),(0,a.useCallback)((e=>{if(!l)return;const t=new URLSearchParams(r.location.search);t.set(l,e),r.replace({...r.location,search:t.toString()})}),[l,r])]}function b(e){const{defaultValue:t,queryString:n=!1,groupId:r}=e,l=p(e),[o,u]=(0,a.useState)((()=>function(e){let{defaultValue:t,tabValues:n}=e;if(0===n.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(t){if(!d({value:t,tabValues:n}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${n.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const r=n.find((e=>e.default))??n[0];if(!r)throw new Error("Unexpected error: 0 tabValues");return r.value}({defaultValue:t,tabValues:l}))),[i,s]=f({queryString:n,groupId:r}),[m,b]=function(e){let{groupId:t}=e;const n=function(e){return e?`docusaurus.tab.${e}`:null}(t),[r,l]=(0,c.Nk)(n);return[r,(0,a.useCallback)((e=>{n&&l.set(e)}),[n,l])]}({groupId:r}),h=(()=>{const e=i??m;return d({value:e,tabValues:l})?e:null})();(0,a.useLayoutEffect)((()=>{h&&u(h)}),[h]);return{selectedValue:o,selectValue:(0,a.useCallback)((e=>{if(!d({value:e,tabValues:l}))throw new Error(`Can't select invalid tab value=${e}`);u(e),s(e),b(e)}),[s,b,l]),tabValues:l}}var h=n(2389);const v="tabList__CuJ",y="tabItem_LNqP";function g(e){let{className:t,block:n,selectedValue:u,selectValue:i,tabValues:s}=e;const c=[],{blockElementScrollPositionUntilNextRender:m}=(0,o.o5)(),p=e=>{const t=e.currentTarget,n=c.indexOf(t),r=s[n].value;r!==u&&(m(t),i(r))},d=e=>{let t=null;switch(e.key){case"Enter":p(e);break;case"ArrowRight":{const n=c.indexOf(e.currentTarget)+1;t=c[n]??c[0];break}case"ArrowLeft":{const n=c.indexOf(e.currentTarget)-1;t=c[n]??c[c.length-1];break}}t?.focus()};return a.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,l.Z)("tabs",{"tabs--block":n},t)},s.map((e=>{let{value:t,label:n,attributes:o}=e;return a.createElement("li",(0,r.Z)({role:"tab",tabIndex:u===t?0:-1,"aria-selected":u===t,key:t,ref:e=>c.push(e),onKeyDown:d,onClick:p},o,{className:(0,l.Z)("tabs__item",y,o?.className,{"tabs__item--active":u===t})}),n??t)})))}function k(e){let{lazy:t,children:n,selectedValue:r}=e;const l=(Array.isArray(n)?n:[n]).filter(Boolean);if(t){const e=l.find((e=>e.props.value===r));return e?(0,a.cloneElement)(e,{className:"margin-top--md"}):null}return a.createElement("div",{className:"margin-top--md"},l.map(((e,t)=>(0,a.cloneElement)(e,{key:t,hidden:e.props.value!==r}))))}function w(e){const t=b(e);return a.createElement("div",{className:(0,l.Z)("tabs-container",v)},a.createElement(g,(0,r.Z)({},e,t)),a.createElement(k,(0,r.Z)({},e,t)))}function x(e){const t=(0,h.Z)();return a.createElement(w,(0,r.Z)({key:String(t)},e))}},5564:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>d,frontMatter:()=>u,metadata:()=>s,toc:()=>m});var r=n(7462),a=(n(7294),n(3905)),l=n(4866),o=n(5162);const u={},i="Ocaml",s={unversionedId:"extras/lang/ocaml",id:"extras/lang/ocaml",title:"Ocaml",description:"You can enable the extra with the :LazyExtras command.",source:"@site/docs/extras/lang/ocaml.md",sourceDirName:"extras/lang",slug:"/extras/lang/ocaml",permalink:"/extras/lang/ocaml",draft:!1,editUrl:"https://github.com/LazyVim/lazyvim.github.io/tree/main/docs/extras/lang/ocaml.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Nushell",permalink:"/extras/lang/nushell"},next:{title:"PHP",permalink:"/extras/lang/php"}},c={},m=[{value:"nvim-treesitter",id:"nvim-treesitter",level:2},{value:"nvim-lspconfig",id:"nvim-lspconfig",level:2}],p={toc:m};function d(e){let{components:t,...n}=e;return(0,a.kt)("wrapper",(0,r.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"ocaml"},(0,a.kt)("inlineCode",{parentName:"h1"},"Ocaml")),(0,a.kt)("admonition",{type:"info"},(0,a.kt)("p",{parentName:"admonition"},"You can enable the extra with the ",(0,a.kt)("inlineCode",{parentName:"p"},":LazyExtras")," command.\nPlugins marked as optional will only be configured if they are installed.")),(0,a.kt)("p",null,"Below you can find a list of included plugins and their default settings."),(0,a.kt)("admonition",{type:"caution"},(0,a.kt)("p",{parentName:"admonition"},"You don't need to copy the default settings to your config.\nThey are only shown here for reference.")),(0,a.kt)("h2",{id:"nvim-treesitter"},(0,a.kt)("a",{parentName:"h2",href:"https://github.com/nvim-treesitter/nvim-treesitter"},"nvim-treesitter")),(0,a.kt)(l.Z,{mdxType:"Tabs"},(0,a.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'opts = function(_, opts)\n if type(opts.ensure_installed) == "table" then\n vim.list_extend(opts.ensure_installed, { "ocaml" })\n end\nend\n'))),(0,a.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "nvim-treesitter/nvim-treesitter",\n opts = function(_, opts)\n if type(opts.ensure_installed) == "table" then\n vim.list_extend(opts.ensure_installed, { "ocaml" })\n end\n end,\n}\n')))),(0,a.kt)("h2",{id:"nvim-lspconfig"},(0,a.kt)("a",{parentName:"h2",href:"https://github.com/neovim/nvim-lspconfig"},"nvim-lspconfig")),(0,a.kt)(l.Z,{mdxType:"Tabs"},(0,a.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'opts = {\n servers = {\n ocamllsp = {\n filetypes = {\n "ocaml",\n "ocaml.menhir",\n "ocaml.interface",\n "ocaml.ocamllex",\n "reason",\n "dune",\n },\n root_markers = {\n function(name)\n return name:match(".*%.opam$")\n end,\n "esy.json",\n "package.json",\n ".git",\n "dune-project",\n "dune-workspace",\n function(name)\n return name:match(".*%.ml$")\n end,\n },\n },\n },\n}\n'))),(0,a.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "neovim/nvim-lspconfig",\n opts = {\n servers = {\n ocamllsp = {\n filetypes = {\n "ocaml",\n "ocaml.menhir",\n "ocaml.interface",\n "ocaml.ocamllex",\n "reason",\n "dune",\n },\n root_markers = {\n function(name)\n return name:match(".*%.opam$")\n end,\n "esy.json",\n "package.json",\n ".git",\n "dune-project",\n "dune-workspace",\n function(name)\n return name:match(".*%.ml$")\n end,\n },\n },\n },\n },\n}\n')))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/49dfcdce.7ec021d7.js b/assets/js/49dfcdce.7ec021d7.js new file mode 100644 index 0000000000..d2a3f69b62 --- /dev/null +++ b/assets/js/49dfcdce.7ec021d7.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklazyvim=self.webpackChunklazyvim||[]).push([[1220],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>d});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function l(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function i(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var s=r.createContext({}),u=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},c=function(e){var t=u(e.components);return r.createElement(s.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},f=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,s=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),p=u(n),f=a,d=p["".concat(s,".").concat(f)]||p[f]||m[f]||o;return n?r.createElement(d,l(l({ref:t},c),{},{components:n})):r.createElement(d,l({ref:t},c))}));function d(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,l=new Array(o);l[0]=f;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[p]="string"==typeof e?e:a,l[1]=i;for(var u=2;u<o;u++)l[u]=n[u];return r.createElement.apply(null,l)}return r.createElement.apply(null,n)}f.displayName="MDXCreateElement"},5162:(e,t,n)=>{n.d(t,{Z:()=>l});var r=n(7294),a=n(6010);const o="tabItem_Ymn6";function l(e){let{children:t,hidden:n,className:l}=e;return r.createElement("div",{role:"tabpanel",className:(0,a.Z)(o,l),hidden:n},t)}},4866:(e,t,n)=>{n.d(t,{Z:()=>T});var r=n(7462),a=n(7294),o=n(6010),l=n(2466),i=n(6550),s=n(1980),u=n(7392),c=n(12);function p(e){return function(e){return a.Children.map(e,(e=>{if(!e||(0,a.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:t,label:n,attributes:r,default:a}}=e;return{value:t,label:n,attributes:r,default:a}}))}function m(e){const{values:t,children:n}=e;return(0,a.useMemo)((()=>{const e=t??p(n);return function(e){const t=(0,u.l)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[t,n])}function f(e){let{value:t,tabValues:n}=e;return n.some((e=>e.value===t))}function d(e){let{queryString:t=!1,groupId:n}=e;const r=(0,i.k6)(),o=function(e){let{queryString:t=!1,groupId:n}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!n)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return n??null}({queryString:t,groupId:n});return[(0,s._X)(o),(0,a.useCallback)((e=>{if(!o)return;const t=new URLSearchParams(r.location.search);t.set(o,e),r.replace({...r.location,search:t.toString()})}),[o,r])]}function b(e){const{defaultValue:t,queryString:n=!1,groupId:r}=e,o=m(e),[l,i]=(0,a.useState)((()=>function(e){let{defaultValue:t,tabValues:n}=e;if(0===n.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(t){if(!f({value:t,tabValues:n}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${n.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const r=n.find((e=>e.default))??n[0];if(!r)throw new Error("Unexpected error: 0 tabValues");return r.value}({defaultValue:t,tabValues:o}))),[s,u]=d({queryString:n,groupId:r}),[p,b]=function(e){let{groupId:t}=e;const n=function(e){return e?`docusaurus.tab.${e}`:null}(t),[r,o]=(0,c.Nk)(n);return[r,(0,a.useCallback)((e=>{n&&o.set(e)}),[n,o])]}({groupId:r}),v=(()=>{const e=s??p;return f({value:e,tabValues:o})?e:null})();(0,a.useLayoutEffect)((()=>{v&&i(v)}),[v]);return{selectedValue:l,selectValue:(0,a.useCallback)((e=>{if(!f({value:e,tabValues:o}))throw new Error(`Can't select invalid tab value=${e}`);i(e),u(e),b(e)}),[u,b,o]),tabValues:o}}var v=n(2389);const y="tabList__CuJ",g="tabItem_LNqP";function h(e){let{className:t,block:n,selectedValue:i,selectValue:s,tabValues:u}=e;const c=[],{blockElementScrollPositionUntilNextRender:p}=(0,l.o5)(),m=e=>{const t=e.currentTarget,n=c.indexOf(t),r=u[n].value;r!==i&&(p(t),s(r))},f=e=>{let t=null;switch(e.key){case"Enter":m(e);break;case"ArrowRight":{const n=c.indexOf(e.currentTarget)+1;t=c[n]??c[0];break}case"ArrowLeft":{const n=c.indexOf(e.currentTarget)-1;t=c[n]??c[c.length-1];break}}t?.focus()};return a.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,o.Z)("tabs",{"tabs--block":n},t)},u.map((e=>{let{value:t,label:n,attributes:l}=e;return a.createElement("li",(0,r.Z)({role:"tab",tabIndex:i===t?0:-1,"aria-selected":i===t,key:t,ref:e=>c.push(e),onKeyDown:f,onClick:m},l,{className:(0,o.Z)("tabs__item",g,l?.className,{"tabs__item--active":i===t})}),n??t)})))}function k(e){let{lazy:t,children:n,selectedValue:r}=e;const o=(Array.isArray(n)?n:[n]).filter(Boolean);if(t){const e=o.find((e=>e.props.value===r));return e?(0,a.cloneElement)(e,{className:"margin-top--md"}):null}return a.createElement("div",{className:"margin-top--md"},o.map(((e,t)=>(0,a.cloneElement)(e,{key:t,hidden:e.props.value!==r}))))}function w(e){const t=b(e);return a.createElement("div",{className:(0,o.Z)("tabs-container",y)},a.createElement(h,(0,r.Z)({},e,t)),a.createElement(k,(0,r.Z)({},e,t)))}function T(e){const t=(0,v.Z)();return a.createElement(w,(0,r.Z)({key:String(t)},e))}},6128:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>s,default:()=>f,frontMatter:()=>i,metadata:()=>u,toc:()=>p});var r=n(7462),a=(n(7294),n(3905)),o=n(4866),l=n(5162);const i={},s="Biome",u={unversionedId:"extras/formatting/biome",id:"extras/formatting/biome",title:"Biome",description:"You can enable the extra with the :LazyExtras command.",source:"@site/docs/extras/formatting/biome.md",sourceDirName:"extras/formatting",slug:"/extras/formatting/biome",permalink:"/extras/formatting/biome",draft:!1,editUrl:"https://github.com/LazyVim/lazyvim.github.io/tree/main/docs/extras/formatting/biome.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Telescope",permalink:"/extras/editor/telescope"},next:{title:"Black Formatter",permalink:"/extras/formatting/black"}},c={},p=[{value:"Options",id:"options",level:3},{value:"mason.nvim",id:"masonnvim",level:2},{value:"conform.nvim <em>(optional)</em>",id:"conformnvim-optional",level:2},{value:"none-ls.nvim <em>(optional)</em>",id:"none-lsnvim-optional",level:2}],m={toc:p};function f(e){let{components:t,...n}=e;return(0,a.kt)("wrapper",(0,r.Z)({},m,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"biome"},(0,a.kt)("inlineCode",{parentName:"h1"},"Biome")),(0,a.kt)("admonition",{type:"info"},(0,a.kt)("p",{parentName:"admonition"},"You can enable the extra with the ",(0,a.kt)("inlineCode",{parentName:"p"},":LazyExtras")," command.\nPlugins marked as optional will only be configured if they are installed.")),(0,a.kt)("h3",{id:"options"},"Options"),(0,a.kt)("p",null,"Additional options for this extra can be configured in your ",(0,a.kt)("a",{parentName:"p",href:"/configuration/general#options"},"lua/config/options.lua")," file:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua",metastring:'title="lua/config/options.lua"',title:'"lua/config/options.lua"'},"-- Enable this option to avoid conflicts with Prettier.\nvim.g.lazyvim_prettier_needs_config = true\n")),(0,a.kt)("p",null,"Below you can find a list of included plugins and their default settings."),(0,a.kt)("admonition",{type:"caution"},(0,a.kt)("p",{parentName:"admonition"},"You don't need to copy the default settings to your config.\nThey are only shown here for reference.")),(0,a.kt)("h2",{id:"masonnvim"},(0,a.kt)("a",{parentName:"h2",href:"https://github.com/mason-org/mason.nvim"},"mason.nvim")),(0,a.kt)(o.Z,{mdxType:"Tabs"},(0,a.kt)(l.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'opts = { ensure_installed = { "biome" } }\n'))),(0,a.kt)(l.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "mason-org/mason.nvim",\n opts = { ensure_installed = { "biome" } },\n}\n')))),(0,a.kt)("h2",{id:"conformnvim-optional"},(0,a.kt)("a",{parentName:"h2",href:"https://github.com/stevearc/conform.nvim"},"conform.nvim")," ",(0,a.kt)("em",{parentName:"h2"},"(optional)")),(0,a.kt)(o.Z,{mdxType:"Tabs"},(0,a.kt)(l.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'opts = function(_, opts)\n opts.formatters_by_ft = opts.formatters_by_ft or {}\n for _, ft in ipairs(supported) do\n opts.formatters_by_ft[ft] = opts.formatters_by_ft[ft] or {}\n table.insert(opts.formatters_by_ft[ft], "biome")\n end\n\n opts.formatters = opts.formatters or {}\n opts.formatters.biome = {\n require_cwd = true,\n }\nend\n'))),(0,a.kt)(l.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "stevearc/conform.nvim",\n optional = true,\n ---@param opts ConformOpts\n opts = function(_, opts)\n opts.formatters_by_ft = opts.formatters_by_ft or {}\n for _, ft in ipairs(supported) do\n opts.formatters_by_ft[ft] = opts.formatters_by_ft[ft] or {}\n table.insert(opts.formatters_by_ft[ft], "biome")\n end\n\n opts.formatters = opts.formatters or {}\n opts.formatters.biome = {\n require_cwd = true,\n }\n end,\n}\n')))),(0,a.kt)("h2",{id:"none-lsnvim-optional"},(0,a.kt)("a",{parentName:"h2",href:"https://github.com/nvimtools/none-ls.nvim"},"none-ls.nvim")," ",(0,a.kt)("em",{parentName:"h2"},"(optional)")),(0,a.kt)("p",null," none-ls support"),(0,a.kt)(o.Z,{mdxType:"Tabs"},(0,a.kt)(l.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'opts = function(_, opts)\n local nls = require("null-ls")\n opts.sources = opts.sources or {}\n table.insert(opts.sources, nls.builtins.formatting.biome)\nend\n'))),(0,a.kt)(l.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "nvimtools/none-ls.nvim",\n optional = true,\n opts = function(_, opts)\n local nls = require("null-ls")\n opts.sources = opts.sources or {}\n table.insert(opts.sources, nls.builtins.formatting.biome)\n end,\n}\n')))))}f.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/49e39c69.7f4c2ae0.js b/assets/js/49e39c69.7f4c2ae0.js new file mode 100644 index 0000000000..cb436b061c --- /dev/null +++ b/assets/js/49e39c69.7f4c2ae0.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklazyvim=self.webpackChunklazyvim||[]).push([[2393],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>v});var a=n(7294);function l(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function o(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?r(Object(n),!0).forEach((function(t){l(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):r(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function i(e,t){if(null==e)return{};var n,a,l=function(e,t){if(null==e)return{};var n,a,l={},r=Object.keys(e);for(a=0;a<r.length;a++)n=r[a],t.indexOf(n)>=0||(l[n]=e[n]);return l}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a<r.length;a++)n=r[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(l[n]=e[n])}return l}var s=a.createContext({}),u=function(e){var t=a.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},c=function(e){var t=u(e.components);return a.createElement(s.Provider,{value:t},e.children)},m="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},d=a.forwardRef((function(e,t){var n=e.components,l=e.mdxType,r=e.originalType,s=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),m=u(n),d=l,v=m["".concat(s,".").concat(d)]||m[d]||p[d]||r;return n?a.createElement(v,o(o({ref:t},c),{},{components:n})):a.createElement(v,o({ref:t},c))}));function v(e,t){var n=arguments,l=t&&t.mdxType;if("string"==typeof e||l){var r=n.length,o=new Array(r);o[0]=d;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[m]="string"==typeof e?e:l,o[1]=i;for(var u=2;u<r;u++)o[u]=n[u];return a.createElement.apply(null,o)}return a.createElement.apply(null,n)}d.displayName="MDXCreateElement"},5162:(e,t,n)=>{n.d(t,{Z:()=>o});var a=n(7294),l=n(6010);const r="tabItem_Ymn6";function o(e){let{children:t,hidden:n,className:o}=e;return a.createElement("div",{role:"tabpanel",className:(0,l.Z)(r,o),hidden:n},t)}},4866:(e,t,n)=>{n.d(t,{Z:()=>N});var a=n(7462),l=n(7294),r=n(6010),o=n(2466),i=n(6550),s=n(1980),u=n(7392),c=n(12);function m(e){return function(e){return l.Children.map(e,(e=>{if(!e||(0,l.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:t,label:n,attributes:a,default:l}}=e;return{value:t,label:n,attributes:a,default:l}}))}function p(e){const{values:t,children:n}=e;return(0,l.useMemo)((()=>{const e=t??m(n);return function(e){const t=(0,u.l)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[t,n])}function d(e){let{value:t,tabValues:n}=e;return n.some((e=>e.value===t))}function v(e){let{queryString:t=!1,groupId:n}=e;const a=(0,i.k6)(),r=function(e){let{queryString:t=!1,groupId:n}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!n)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return n??null}({queryString:t,groupId:n});return[(0,s._X)(r),(0,l.useCallback)((e=>{if(!r)return;const t=new URLSearchParams(a.location.search);t.set(r,e),a.replace({...a.location,search:t.toString()})}),[r,a])]}function f(e){const{defaultValue:t,queryString:n=!1,groupId:a}=e,r=p(e),[o,i]=(0,l.useState)((()=>function(e){let{defaultValue:t,tabValues:n}=e;if(0===n.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(t){if(!d({value:t,tabValues:n}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${n.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const a=n.find((e=>e.default))??n[0];if(!a)throw new Error("Unexpected error: 0 tabValues");return a.value}({defaultValue:t,tabValues:r}))),[s,u]=v({queryString:n,groupId:a}),[m,f]=function(e){let{groupId:t}=e;const n=function(e){return e?`docusaurus.tab.${e}`:null}(t),[a,r]=(0,c.Nk)(n);return[a,(0,l.useCallback)((e=>{n&&r.set(e)}),[n,r])]}({groupId:a}),k=(()=>{const e=s??m;return d({value:e,tabValues:r})?e:null})();(0,l.useLayoutEffect)((()=>{k&&i(k)}),[k]);return{selectedValue:o,selectValue:(0,l.useCallback)((e=>{if(!d({value:e,tabValues:r}))throw new Error(`Can't select invalid tab value=${e}`);i(e),u(e),f(e)}),[u,f,r]),tabValues:r}}var k=n(2389);const b="tabList__CuJ",g="tabItem_LNqP";function h(e){let{className:t,block:n,selectedValue:i,selectValue:s,tabValues:u}=e;const c=[],{blockElementScrollPositionUntilNextRender:m}=(0,o.o5)(),p=e=>{const t=e.currentTarget,n=c.indexOf(t),a=u[n].value;a!==i&&(m(t),s(a))},d=e=>{let t=null;switch(e.key){case"Enter":p(e);break;case"ArrowRight":{const n=c.indexOf(e.currentTarget)+1;t=c[n]??c[0];break}case"ArrowLeft":{const n=c.indexOf(e.currentTarget)-1;t=c[n]??c[c.length-1];break}}t?.focus()};return l.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,r.Z)("tabs",{"tabs--block":n},t)},u.map((e=>{let{value:t,label:n,attributes:o}=e;return l.createElement("li",(0,a.Z)({role:"tab",tabIndex:i===t?0:-1,"aria-selected":i===t,key:t,ref:e=>c.push(e),onKeyDown:d,onClick:p},o,{className:(0,r.Z)("tabs__item",g,o?.className,{"tabs__item--active":i===t})}),n??t)})))}function y(e){let{lazy:t,children:n,selectedValue:a}=e;const r=(Array.isArray(n)?n:[n]).filter(Boolean);if(t){const e=r.find((e=>e.props.value===a));return e?(0,l.cloneElement)(e,{className:"margin-top--md"}):null}return l.createElement("div",{className:"margin-top--md"},r.map(((e,t)=>(0,l.cloneElement)(e,{key:t,hidden:e.props.value!==a}))))}function T(e){const t=f(e);return l.createElement("div",{className:(0,r.Z)("tabs-container",b)},l.createElement(h,(0,a.Z)({},e,t)),l.createElement(y,(0,a.Z)({},e,t)))}function N(e){const t=(0,k.Z)();return l.createElement(T,(0,a.Z)({key:String(t)},e))}},3391:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>s,default:()=>d,frontMatter:()=>i,metadata:()=>u,toc:()=>m});var a=n(7462),l=(n(7294),n(3905)),r=n(4866),o=n(5162);const i={},s="CMake",u={unversionedId:"extras/lang/cmake",id:"extras/lang/cmake",title:"CMake",description:"You can enable the extra with the :LazyExtras command.",source:"@site/docs/extras/lang/cmake.md",sourceDirName:"extras/lang",slug:"/extras/lang/cmake",permalink:"/extras/lang/cmake",draft:!1,editUrl:"https://github.com/LazyVim/lazyvim.github.io/tree/main/docs/extras/lang/cmake.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Clojure",permalink:"/extras/lang/clojure"},next:{title:"Dart",permalink:"/extras/lang/dart"}},c={},m=[{value:"nvim-treesitter",id:"nvim-treesitter",level:2},{value:"mason.nvim",id:"masonnvim",level:2},{value:"nvim-lspconfig",id:"nvim-lspconfig",level:2},{value:"cmake-tools.nvim",id:"cmake-toolsnvim",level:2},{value:"cmake-tools.nvim",id:"cmake-toolsnvim-1",level:2},{value:"none-ls.nvim <em>(optional)</em>",id:"none-lsnvim-optional",level:2},{value:"nvim-lint <em>(optional)</em>",id:"nvim-lint-optional",level:2}],p={toc:m};function d(e){let{components:t,...n}=e;return(0,l.kt)("wrapper",(0,a.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,l.kt)("h1",{id:"cmake"},"CMake"),(0,l.kt)("admonition",{type:"info"},(0,l.kt)("p",{parentName:"admonition"},"You can enable the extra with the ",(0,l.kt)("inlineCode",{parentName:"p"},":LazyExtras")," command.\nPlugins marked as optional will only be configured if they are installed.")),(0,l.kt)("p",null,"Below you can find a list of included plugins and their default settings."),(0,l.kt)("admonition",{type:"caution"},(0,l.kt)("p",{parentName:"admonition"},"You don't need to copy the default settings to your config.\nThey are only shown here for reference.")),(0,l.kt)("h2",{id:"nvim-treesitter"},(0,l.kt)("a",{parentName:"h2",href:"https://github.com/nvim-treesitter/nvim-treesitter"},"nvim-treesitter")),(0,l.kt)(r.Z,{mdxType:"Tabs"},(0,l.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-lua"},'opts = { ensure_installed = { "cmake" } }\n'))),(0,l.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "nvim-treesitter/nvim-treesitter",\n opts = { ensure_installed = { "cmake" } },\n}\n')))),(0,l.kt)("h2",{id:"masonnvim"},(0,l.kt)("a",{parentName:"h2",href:"https://github.com/mason-org/mason.nvim"},"mason.nvim")),(0,l.kt)(r.Z,{mdxType:"Tabs"},(0,l.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-lua"},'opts = { ensure_installed = { "cmakelang", "cmakelint" } }\n'))),(0,l.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "mason.nvim",\n opts = { ensure_installed = { "cmakelang", "cmakelint" } },\n}\n')))),(0,l.kt)("h2",{id:"nvim-lspconfig"},(0,l.kt)("a",{parentName:"h2",href:"https://github.com/neovim/nvim-lspconfig"},"nvim-lspconfig")),(0,l.kt)(r.Z,{mdxType:"Tabs"},(0,l.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-lua"},"opts = {\n servers = {\n neocmake = {},\n },\n}\n"))),(0,l.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "neovim/nvim-lspconfig",\n opts = {\n servers = {\n neocmake = {},\n },\n },\n}\n')))),(0,l.kt)("h2",{id:"cmake-toolsnvim"},(0,l.kt)("a",{parentName:"h2",href:"https://github.com/Civitasv/cmake-tools.nvim"},"cmake-tools.nvim")),(0,l.kt)(r.Z,{mdxType:"Tabs"},(0,l.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-lua"},"opts = {}\n"))),(0,l.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "Civitasv/cmake-tools.nvim",\n lazy = true,\n init = function()\n local loaded = false\n local function check()\n local cwd = vim.uv.cwd()\n if vim.fn.filereadable(cwd .. "/CMakeLists.txt") == 1 then\n require("lazy").load({ plugins = { "cmake-tools.nvim" } })\n loaded = true\n end\n end\n check()\n vim.api.nvim_create_autocmd("DirChanged", {\n callback = function()\n if not loaded then\n check()\n end\n end,\n })\n end,\n opts = {},\n}\n')))),(0,l.kt)("h2",{id:"cmake-toolsnvim-1"},(0,l.kt)("a",{parentName:"h2",href:"https://github.com/Civitasv/cmake-tools.nvim"},"cmake-tools.nvim")),(0,l.kt)(r.Z,{mdxType:"Tabs"},(0,l.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-lua"},"opts = nil\n"))),(0,l.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-lua"},'{ "cmake-tools.nvim" }\n')))),(0,l.kt)("h2",{id:"none-lsnvim-optional"},(0,l.kt)("a",{parentName:"h2",href:"https://github.com/nvimtools/none-ls.nvim"},"none-ls.nvim")," ",(0,l.kt)("em",{parentName:"h2"},"(optional)")),(0,l.kt)(r.Z,{mdxType:"Tabs"},(0,l.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-lua"},'opts = function(_, opts)\n local nls = require("null-ls")\n opts.sources = vim.list_extend(opts.sources or {}, {\n nls.builtins.diagnostics.cmake_lint,\n })\nend\n'))),(0,l.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "nvimtools/none-ls.nvim",\n optional = true,\n opts = function(_, opts)\n local nls = require("null-ls")\n opts.sources = vim.list_extend(opts.sources or {}, {\n nls.builtins.diagnostics.cmake_lint,\n })\n end,\n}\n')))),(0,l.kt)("h2",{id:"nvim-lint-optional"},(0,l.kt)("a",{parentName:"h2",href:"https://github.com/mfussenegger/nvim-lint"},"nvim-lint")," ",(0,l.kt)("em",{parentName:"h2"},"(optional)")),(0,l.kt)(r.Z,{mdxType:"Tabs"},(0,l.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-lua"},'opts = {\n linters_by_ft = {\n cmake = { "cmakelint" },\n },\n}\n'))),(0,l.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "mfussenegger/nvim-lint",\n optional = true,\n opts = {\n linters_by_ft = {\n cmake = { "cmakelint" },\n },\n },\n}\n')))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/4a588e30.80ed4e24.js b/assets/js/4a588e30.80ed4e24.js new file mode 100644 index 0000000000..d2d5b7441a --- /dev/null +++ b/assets/js/4a588e30.80ed4e24.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklazyvim=self.webpackChunklazyvim||[]).push([[767],{3905:(e,n,t)=>{t.d(n,{Zo:()=>u,kt:()=>g});var a=t(7294);function i(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function l(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,a)}return t}function r(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?l(Object(t),!0).forEach((function(n){i(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):l(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function s(e,n){if(null==e)return{};var t,a,i=function(e,n){if(null==e)return{};var t,a,i={},l=Object.keys(e);for(a=0;a<l.length;a++)t=l[a],n.indexOf(t)>=0||(i[t]=e[t]);return i}(e,n);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a<l.length;a++)t=l[a],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(i[t]=e[t])}return i}var o=a.createContext({}),p=function(e){var n=a.useContext(o),t=n;return e&&(t="function"==typeof e?e(n):r(r({},n),e)),t},u=function(e){var n=p(e.components);return a.createElement(o.Provider,{value:n},e.children)},d="mdxType",m={inlineCode:"code",wrapper:function(e){var n=e.children;return a.createElement(a.Fragment,{},n)}},c=a.forwardRef((function(e,n){var t=e.components,i=e.mdxType,l=e.originalType,o=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),d=p(t),c=i,g=d["".concat(o,".").concat(c)]||d[c]||m[c]||l;return t?a.createElement(g,r(r({ref:n},u),{},{components:t})):a.createElement(g,r({ref:n},u))}));function g(e,n){var t=arguments,i=n&&n.mdxType;if("string"==typeof e||i){var l=t.length,r=new Array(l);r[0]=c;var s={};for(var o in n)hasOwnProperty.call(n,o)&&(s[o]=n[o]);s.originalType=e,s[d]="string"==typeof e?e:i,r[1]=s;for(var p=2;p<l;p++)r[p]=t[p];return a.createElement.apply(null,r)}return a.createElement.apply(null,t)}c.displayName="MDXCreateElement"},4998:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>o,contentTitle:()=>r,default:()=>d,frontMatter:()=>l,metadata:()=>s,toc:()=>p});var a=t(7462),i=(t(7294),t(3905));const l={sidebar_position:3},r="Plugins",s={unversionedId:"configuration/plugins",id:"configuration/plugins",title:"Plugins",description:"Configuring LazyVim plugins is exactly the same as using lazy.nvim to build",source:"@site/docs/configuration/plugins.md",sourceDirName:"configuration",slug:"/configuration/plugins",permalink:"/configuration/plugins",draft:!1,editUrl:"https://github.com/LazyVim/lazyvim.github.io/tree/main/docs/configuration/plugins.md",tags:[],version:"current",sidebarPosition:3,frontMatter:{sidebar_position:3},sidebar:"tutorialSidebar",previous:{title:"General Settings",permalink:"/configuration/general"},next:{title:"Keymaps",permalink:"/configuration/keymaps"}},o={},p=[{value:"\u2795 Adding Plugins",id:"-adding-plugins",level:2},{value:"\u274c Disabling Plugins",id:"-disabling-plugins",level:2},{value:"\u270f\ufe0f Customizing Plugin Specs",id:"\ufe0f-customizing-plugin-specs",level:2},{value:"\u2328\ufe0f Adding & Disabling Plugin Keymaps",id:"\ufe0f-adding--disabling-plugin-keymaps",level:2}],u={toc:p};function d(e){let{components:n,...t}=e;return(0,i.kt)("wrapper",(0,a.Z)({},u,t,{components:n,mdxType:"MDXLayout"}),(0,i.kt)("h1",{id:"plugins"},"Plugins"),(0,i.kt)("p",null,"Configuring ",(0,i.kt)("strong",{parentName:"p"},"LazyVim")," plugins is exactly the same as using ",(0,i.kt)("strong",{parentName:"p"},"lazy.nvim")," to build\na config from scratch."),(0,i.kt)("p",null,"For the full plugin spec documentation please check the ",(0,i.kt)("strong",{parentName:"p"},"lazy.nvim"),"\n",(0,i.kt)("a",{parentName:"p",href:"https://github.com/folke/lazy.nvim"},"readme"),"."),(0,i.kt)("p",null,"Refer to the ",(0,i.kt)("strong",{parentName:"p"},"plugins")," section in the sidebar for configuring\nincluded plugins."),(0,i.kt)("h2",{id:"-adding-plugins"},"\u2795 Adding Plugins"),(0,i.kt)("p",null,"Adding a plugin is as simple as adding the plugin spec to one of the files\nunder ",(0,i.kt)("inlineCode",{parentName:"p"},"lua/plugins/*.lua"),". You can create as many files there as you want."),(0,i.kt)("p",null,"You can structure your ",(0,i.kt)("inlineCode",{parentName:"p"},"lua/plugins")," folder with a file per plugin,\nor a separate file containing all the plugin specs for some functionality."),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-lua",metastring:'title="lua/plugins/lsp.lua"',title:'"lua/plugins/lsp.lua"'},'return {\n -- add symbols-outline\n {\n "simrat39/symbols-outline.nvim",\n cmd = "SymbolsOutline",\n keys = { { "<leader>cs", "<cmd>SymbolsOutline<cr>", desc = "Symbols Outline" } },\n opts = {\n -- add your options that should be passed to the setup() function here\n position = "right",\n },\n },\n}\n')),(0,i.kt)("h2",{id:"-disabling-plugins"},"\u274c Disabling Plugins"),(0,i.kt)("p",null,"In order to disable a plugin, add a spec with ",(0,i.kt)("inlineCode",{parentName:"p"},"enabled=false")),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-lua",metastring:'title="lua/plugins/disabled.lua"',title:'"lua/plugins/disabled.lua"'},'return {\n -- disable trouble\n { "folke/trouble.nvim", enabled = false },\n}\n')),(0,i.kt)("h2",{id:"\ufe0f-customizing-plugin-specs"},"\u270f\ufe0f Customizing Plugin Specs"),(0,i.kt)("p",null,"Defaults merging rules:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"cmd"),": the list of commands will be extended with your custom commands"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"event"),": the list of events will be extended with your custom events"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"ft"),": the list of filetypes will be extended with your custom filetypes"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"keys"),": the list of keymaps will be extended with your custom keymaps"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"opts"),": your custom opts will be merged with the default opts"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"dependencies"),": the list of dependencies will be extended with your custom dependencies"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},(0,i.kt)("em",{parentName:"strong"},"any other property will override the defaults")))),(0,i.kt)("p",null,"For ",(0,i.kt)("inlineCode",{parentName:"p"},"ft"),", ",(0,i.kt)("inlineCode",{parentName:"p"},"event"),", ",(0,i.kt)("inlineCode",{parentName:"p"},"keys"),", ",(0,i.kt)("inlineCode",{parentName:"p"},"cmd")," and ",(0,i.kt)("inlineCode",{parentName:"p"},"opts")," you can instead also specify a ",(0,i.kt)("inlineCode",{parentName:"p"},"values")," function\nthat can make changes to the default values, or return new values to be used instead."),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-lua"},'return {\n -- change trouble config\n {\n "folke/trouble.nvim",\n -- opts will be merged with the parent spec\n opts = { use_diagnostic_signs = true },\n }\n\n -- add cmp-emoji\n {\n "hrsh7th/nvim-cmp",\n dependencies = { "hrsh7th/cmp-emoji" },\n ---@param opts cmp.ConfigSchema\n opts = function(_, opts)\n table.insert(opts.sources, { name = "emoji" })\n end,\n }\n}\n')),(0,i.kt)("h2",{id:"\ufe0f-adding--disabling-plugin-keymaps"},"\u2328\ufe0f Adding & Disabling Plugin Keymaps"),(0,i.kt)("p",null,"Adding ",(0,i.kt)("inlineCode",{parentName:"p"},"keys=")," follows the rules as explained above."),(0,i.kt)("p",null,"You can also disable a default keymap by setting it to ",(0,i.kt)("inlineCode",{parentName:"p"},"false"),".\nTo override a keymap, simply add one with the same ",(0,i.kt)("inlineCode",{parentName:"p"},"lhs")," and a new ",(0,i.kt)("inlineCode",{parentName:"p"},"rhs"),"."),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-lua",metastring:'title="lua/plugins/telescope.lua"',title:'"lua/plugins/telescope.lua"'},'return {\n "nvim-telescope/telescope.nvim",\n keys = {\n -- disable the keymap to grep files\n {"<leader>/", false},\n -- change a keymap\n { "<leader>ff", "<cmd>Telescope find_files<cr>", desc = "Find Files" },\n -- add a keymap to browse plugin files\n {\n "<leader>fp",\n function() require("telescope.builtin").find_files({ cwd = require("lazy.core.config").options.root }) end,\n desc = "Find Plugin File",\n },\n },\n},\n')),(0,i.kt)("admonition",{type:"caution"},(0,i.kt)("p",{parentName:"admonition"},"Make sure to use the exact same mode as the keymap you want to disable.\nYou don't have to specify a mode for ",(0,i.kt)("inlineCode",{parentName:"p"},"normal")," mode keymaps.")),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-lua",metastring:'title="lua/plugins/flash.lua"',title:'"lua/plugins/flash.lua"'},'return {\n "folke/flash.nvim",\n keys = {\n -- disable the default flash keymap\n { "s", mode = { "n", "x", "o" }, false },\n },\n}\n')),(0,i.kt)("p",null,"You can also return a whole new set of keymaps to be used instead.\nOr return ",(0,i.kt)("inlineCode",{parentName:"p"},"{}")," to disable all keymaps for a plugin."),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-lua",metastring:'title="lua/plugins/telescope.lua"',title:'"lua/plugins/telescope.lua"'},'return {\n "nvim-telescope/telescope.nvim",\n -- replace all Telescope keymaps with only one mapping\n keys = function()\n return {\n { "<leader>ff", "<cmd>Telescope find_files<cr>", desc = "Find Files" },\n }\n end,\n},\n')))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/4b6e5af7.70295676.js b/assets/js/4b6e5af7.70295676.js new file mode 100644 index 0000000000..08a558cf06 --- /dev/null +++ b/assets/js/4b6e5af7.70295676.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklazyvim=self.webpackChunklazyvim||[]).push([[7780],{3905:(e,n,t)=>{t.d(n,{Zo:()=>d,kt:()=>f});var a=t(7294);function r(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function i(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,a)}return t}function o(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?i(Object(t),!0).forEach((function(n){r(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):i(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function l(e,n){if(null==e)return{};var t,a,r=function(e,n){if(null==e)return{};var t,a,r={},i=Object.keys(e);for(a=0;a<i.length;a++)t=i[a],n.indexOf(t)>=0||(r[t]=e[t]);return r}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a<i.length;a++)t=i[a],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(r[t]=e[t])}return r}var u=a.createContext({}),s=function(e){var n=a.useContext(u),t=n;return e&&(t="function"==typeof e?e(n):o(o({},n),e)),t},d=function(e){var n=s(e.components);return a.createElement(u.Provider,{value:n},e.children)},p="mdxType",c={inlineCode:"code",wrapper:function(e){var n=e.children;return a.createElement(a.Fragment,{},n)}},m=a.forwardRef((function(e,n){var t=e.components,r=e.mdxType,i=e.originalType,u=e.parentName,d=l(e,["components","mdxType","originalType","parentName"]),p=s(t),m=r,f=p["".concat(u,".").concat(m)]||p[m]||c[m]||i;return t?a.createElement(f,o(o({ref:n},d),{},{components:t})):a.createElement(f,o({ref:n},d))}));function f(e,n){var t=arguments,r=n&&n.mdxType;if("string"==typeof e||r){var i=t.length,o=new Array(i);o[0]=m;var l={};for(var u in n)hasOwnProperty.call(n,u)&&(l[u]=n[u]);l.originalType=e,l[p]="string"==typeof e?e:r,o[1]=l;for(var s=2;s<i;s++)o[s]=t[s];return a.createElement.apply(null,o)}return a.createElement.apply(null,t)}m.displayName="MDXCreateElement"},5162:(e,n,t)=>{t.d(n,{Z:()=>o});var a=t(7294),r=t(6010);const i="tabItem_Ymn6";function o(e){let{children:n,hidden:t,className:o}=e;return a.createElement("div",{role:"tabpanel",className:(0,r.Z)(i,o),hidden:t},n)}},4866:(e,n,t)=>{t.d(n,{Z:()=>T});var a=t(7462),r=t(7294),i=t(6010),o=t(2466),l=t(6550),u=t(1980),s=t(7392),d=t(12);function p(e){return function(e){return r.Children.map(e,(e=>{if(!e||(0,r.isValidElement)(e)&&function(e){const{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:n,label:t,attributes:a,default:r}}=e;return{value:n,label:t,attributes:a,default:r}}))}function c(e){const{values:n,children:t}=e;return(0,r.useMemo)((()=>{const e=n??p(t);return function(e){const n=(0,s.l)(e,((e,n)=>e.value===n.value));if(n.length>0)throw new Error(`Docusaurus error: Duplicate values "${n.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[n,t])}function m(e){let{value:n,tabValues:t}=e;return t.some((e=>e.value===n))}function f(e){let{queryString:n=!1,groupId:t}=e;const a=(0,l.k6)(),i=function(e){let{queryString:n=!1,groupId:t}=e;if("string"==typeof n)return n;if(!1===n)return null;if(!0===n&&!t)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return t??null}({queryString:n,groupId:t});return[(0,u._X)(i),(0,r.useCallback)((e=>{if(!i)return;const n=new URLSearchParams(a.location.search);n.set(i,e),a.replace({...a.location,search:n.toString()})}),[i,a])]}function v(e){const{defaultValue:n,queryString:t=!1,groupId:a}=e,i=c(e),[o,l]=(0,r.useState)((()=>function(e){let{defaultValue:n,tabValues:t}=e;if(0===t.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(n){if(!m({value:n,tabValues:t}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${n}" but none of its children has the corresponding value. Available values are: ${t.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return n}const a=t.find((e=>e.default))??t[0];if(!a)throw new Error("Unexpected error: 0 tabValues");return a.value}({defaultValue:n,tabValues:i}))),[u,s]=f({queryString:t,groupId:a}),[p,v]=function(e){let{groupId:n}=e;const t=function(e){return e?`docusaurus.tab.${e}`:null}(n),[a,i]=(0,d.Nk)(t);return[a,(0,r.useCallback)((e=>{t&&i.set(e)}),[t,i])]}({groupId:a}),g=(()=>{const e=u??p;return m({value:e,tabValues:i})?e:null})();(0,r.useLayoutEffect)((()=>{g&&l(g)}),[g]);return{selectedValue:o,selectValue:(0,r.useCallback)((e=>{if(!m({value:e,tabValues:i}))throw new Error(`Can't select invalid tab value=${e}`);l(e),s(e),v(e)}),[s,v,i]),tabValues:i}}var g=t(2389);const h="tabList__CuJ",b="tabItem_LNqP";function y(e){let{className:n,block:t,selectedValue:l,selectValue:u,tabValues:s}=e;const d=[],{blockElementScrollPositionUntilNextRender:p}=(0,o.o5)(),c=e=>{const n=e.currentTarget,t=d.indexOf(n),a=s[t].value;a!==l&&(p(n),u(a))},m=e=>{let n=null;switch(e.key){case"Enter":c(e);break;case"ArrowRight":{const t=d.indexOf(e.currentTarget)+1;n=d[t]??d[0];break}case"ArrowLeft":{const t=d.indexOf(e.currentTarget)-1;n=d[t]??d[d.length-1];break}}n?.focus()};return r.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,i.Z)("tabs",{"tabs--block":t},n)},s.map((e=>{let{value:n,label:t,attributes:o}=e;return r.createElement("li",(0,a.Z)({role:"tab",tabIndex:l===n?0:-1,"aria-selected":l===n,key:n,ref:e=>d.push(e),onKeyDown:m,onClick:c},o,{className:(0,i.Z)("tabs__item",b,o?.className,{"tabs__item--active":l===n})}),t??n)})))}function k(e){let{lazy:n,children:t,selectedValue:a}=e;const i=(Array.isArray(t)?t:[t]).filter(Boolean);if(n){const e=i.find((e=>e.props.value===a));return e?(0,r.cloneElement)(e,{className:"margin-top--md"}):null}return r.createElement("div",{className:"margin-top--md"},i.map(((e,n)=>(0,r.cloneElement)(e,{key:n,hidden:e.props.value!==a}))))}function x(e){const n=v(e);return r.createElement("div",{className:(0,i.Z)("tabs-container",h)},r.createElement(y,(0,a.Z)({},e,n)),r.createElement(k,(0,a.Z)({},e,n)))}function T(e){const n=(0,g.Z)();return r.createElement(x,(0,a.Z)({key:String(n)},e))}},7331:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>d,contentTitle:()=>u,default:()=>m,frontMatter:()=>l,metadata:()=>s,toc:()=>p});var a=t(7462),r=(t(7294),t(3905)),i=t(4866),o=t(5162);const l={},u="DAP Core",s={unversionedId:"extras/dap/core",id:"extras/dap/core",title:"DAP Core",description:"You can enable the extra with the :LazyExtras command.",source:"@site/docs/extras/dap/core.md",sourceDirName:"extras/dap",slug:"/extras/dap/core",permalink:"/extras/dap/core",draft:!1,editUrl:"https://github.com/LazyVim/lazyvim.github.io/tree/main/docs/extras/dap/core.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"yanky.nvim",permalink:"/extras/coding/yanky"},next:{title:"DAP Neovim Lua Adapter",permalink:"/extras/dap/nlua"}},d={},p=[{value:"nvim-dap",id:"nvim-dap",level:2},{value:"nvim-dap-ui",id:"nvim-dap-ui",level:2},{value:"nvim-dap-virtual-text",id:"nvim-dap-virtual-text",level:2},{value:"nvim-dap-ui",id:"nvim-dap-ui-1",level:2},{value:"nvim-nio",id:"nvim-nio",level:2},{value:"mason-nvim-dap.nvim",id:"mason-nvim-dapnvim",level:2}],c={toc:p};function m(e){let{components:n,...t}=e;return(0,r.kt)("wrapper",(0,a.Z)({},c,t,{components:n,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"dap-core"},"DAP Core"),(0,r.kt)("admonition",{type:"info"},(0,r.kt)("p",{parentName:"admonition"},"You can enable the extra with the ",(0,r.kt)("inlineCode",{parentName:"p"},":LazyExtras")," command.\nPlugins marked as optional will only be configured if they are installed.")),(0,r.kt)("p",null,"Below you can find a list of included plugins and their default settings."),(0,r.kt)("admonition",{type:"caution"},(0,r.kt)("p",{parentName:"admonition"},"You don't need to copy the default settings to your config.\nThey are only shown here for reference.")),(0,r.kt)("h2",{id:"nvim-dap"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/mfussenegger/nvim-dap"},"nvim-dap")),(0,r.kt)(i.Z,{mdxType:"Tabs"},(0,r.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},"opts = {}\n"))),(0,r.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "mfussenegger/nvim-dap",\n recommended = true,\n desc = "Debugging support. Requires language specific adapters to be configured. (see lang extras)",\n\n dependencies = {\n "rcarriga/nvim-dap-ui",\n -- virtual text for the debugger\n {\n "theHamsta/nvim-dap-virtual-text",\n opts = {},\n },\n },\n\n -- stylua: ignore\n keys = {\n { "<leader>dB", function() require("dap").set_breakpoint(vim.fn.input(\'Breakpoint condition: \')) end, desc = "Breakpoint Condition" },\n { "<leader>db", function() require("dap").toggle_breakpoint() end, desc = "Toggle Breakpoint" },\n { "<leader>dc", function() require("dap").continue() end, desc = "Run/Continue" },\n { "<leader>da", function() require("dap").continue({ before = get_args }) end, desc = "Run with Args" },\n { "<leader>dC", function() require("dap").run_to_cursor() end, desc = "Run to Cursor" },\n { "<leader>dg", function() require("dap").goto_() end, desc = "Go to Line (No Execute)" },\n { "<leader>di", function() require("dap").step_into() end, desc = "Step Into" },\n { "<leader>dj", function() require("dap").down() end, desc = "Down" },\n { "<leader>dk", function() require("dap").up() end, desc = "Up" },\n { "<leader>dl", function() require("dap").run_last() end, desc = "Run Last" },\n { "<leader>do", function() require("dap").step_out() end, desc = "Step Out" },\n { "<leader>dO", function() require("dap").step_over() end, desc = "Step Over" },\n { "<leader>dP", function() require("dap").pause() end, desc = "Pause" },\n { "<leader>dr", function() require("dap").repl.toggle() end, desc = "Toggle REPL" },\n { "<leader>ds", function() require("dap").session() end, desc = "Session" },\n { "<leader>dt", function() require("dap").terminate() end, desc = "Terminate" },\n { "<leader>dw", function() require("dap.ui.widgets").hover() end, desc = "Widgets" },\n },\n\n config = function()\n -- load mason-nvim-dap here, after all adapters have been setup\n if LazyVim.has("mason-nvim-dap.nvim") then\n require("mason-nvim-dap").setup(LazyVim.opts("mason-nvim-dap.nvim"))\n end\n\n vim.api.nvim_set_hl(0, "DapStoppedLine", { default = true, link = "Visual" })\n\n for name, sign in pairs(LazyVim.config.icons.dap) do\n sign = type(sign) == "table" and sign or { sign }\n vim.fn.sign_define(\n "Dap" .. name,\n { text = sign[1], texthl = sign[2] or "DiagnosticInfo", linehl = sign[3], numhl = sign[3] }\n )\n end\n\n -- setup dap config by VsCode launch.json file\n local vscode = require("dap.ext.vscode")\n local json = require("plenary.json")\n vscode.json_decode = function(str)\n return vim.json.decode(json.json_strip_comments(str))\n end\n end,\n}\n')))),(0,r.kt)("h2",{id:"nvim-dap-ui"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/rcarriga/nvim-dap-ui"},"nvim-dap-ui")),(0,r.kt)(i.Z,{mdxType:"Tabs"},(0,r.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},"opts = nil\n"))),(0,r.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "rcarriga/nvim-dap-ui",\n -- virtual text for the debugger\n {\n "theHamsta/nvim-dap-virtual-text",\n opts = {},\n },\n}\n')))),(0,r.kt)("h2",{id:"nvim-dap-virtual-text"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/theHamsta/nvim-dap-virtual-text"},"nvim-dap-virtual-text")),(0,r.kt)("p",null," virtual text for the debugger"),(0,r.kt)(i.Z,{mdxType:"Tabs"},(0,r.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},"opts = {}\n"))),(0,r.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "theHamsta/nvim-dap-virtual-text",\n opts = {},\n}\n')))),(0,r.kt)("h2",{id:"nvim-dap-ui-1"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/rcarriga/nvim-dap-ui"},"nvim-dap-ui")),(0,r.kt)("p",null," fancy UI for the debugger"),(0,r.kt)(i.Z,{mdxType:"Tabs"},(0,r.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},"opts = {}\n"))),(0,r.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "rcarriga/nvim-dap-ui",\n dependencies = { "nvim-neotest/nvim-nio" },\n -- stylua: ignore\n keys = {\n { "<leader>du", function() require("dapui").toggle({ }) end, desc = "Dap UI" },\n { "<leader>de", function() require("dapui").eval() end, desc = "Eval", mode = {"n", "x"} },\n },\n opts = {},\n config = function(_, opts)\n local dap = require("dap")\n local dapui = require("dapui")\n dapui.setup(opts)\n dap.listeners.after.event_initialized["dapui_config"] = function()\n dapui.open({})\n end\n dap.listeners.before.event_terminated["dapui_config"] = function()\n dapui.close({})\n end\n dap.listeners.before.event_exited["dapui_config"] = function()\n dapui.close({})\n end\n end,\n}\n')))),(0,r.kt)("h2",{id:"nvim-nio"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/nvim-neotest/nvim-nio"},"nvim-nio")),(0,r.kt)(i.Z,{mdxType:"Tabs"},(0,r.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},"opts = nil\n"))),(0,r.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{ "nvim-neotest/nvim-nio" }\n')))),(0,r.kt)("h2",{id:"mason-nvim-dapnvim"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/jay-babu/mason-nvim-dap.nvim"},"mason-nvim-dap.nvim")),(0,r.kt)("p",null," mason.nvim integration"),(0,r.kt)(i.Z,{mdxType:"Tabs"},(0,r.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},"opts = {\n -- Makes a best effort to setup the various debuggers with\n -- reasonable debug configurations\n automatic_installation = true,\n\n -- You can provide additional configuration to the handlers,\n -- see mason-nvim-dap README for more information\n handlers = {},\n\n -- You'll need to check that you have the required things installed\n -- online, please don't ask me how to install them :)\n ensure_installed = {\n -- Update this to ensure that you have the debuggers for the langs you want\n },\n}\n"))),(0,r.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "jay-babu/mason-nvim-dap.nvim",\n dependencies = "mason.nvim",\n cmd = { "DapInstall", "DapUninstall" },\n opts = {\n -- Makes a best effort to setup the various debuggers with\n -- reasonable debug configurations\n automatic_installation = true,\n\n -- You can provide additional configuration to the handlers,\n -- see mason-nvim-dap README for more information\n handlers = {},\n\n -- You\'ll need to check that you have the required things installed\n -- online, please don\'t ask me how to install them :)\n ensure_installed = {\n -- Update this to ensure that you have the debuggers for the langs you want\n },\n },\n -- mason-nvim-dap is loaded when nvim-dap loads\n config = function() end,\n}\n')))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/4e954c8e.e0b9da7d.js b/assets/js/4e954c8e.e0b9da7d.js new file mode 100644 index 0000000000..cc401429dc --- /dev/null +++ b/assets/js/4e954c8e.e0b9da7d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklazyvim=self.webpackChunklazyvim||[]).push([[4747],{3905:(e,t,a)=>{a.d(t,{Zo:()=>c,kt:()=>h});var n=a(7294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function l(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?o(Object(a),!0).forEach((function(t){r(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):o(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function s(e,t){if(null==e)return{};var a,n,r=function(e,t){if(null==e)return{};var a,n,r={},o=Object.keys(e);for(n=0;n<o.length;n++)a=o[n],t.indexOf(a)>=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)a=o[n],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var i=n.createContext({}),u=function(e){var t=n.useContext(i),a=t;return e&&(a="function"==typeof e?e(t):l(l({},t),e)),a},c=function(e){var t=u(e.components);return n.createElement(i.Provider,{value:t},e.children)},d="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,o=e.originalType,i=e.parentName,c=s(e,["components","mdxType","originalType","parentName"]),d=u(a),m=r,h=d["".concat(i,".").concat(m)]||d[m]||p[m]||o;return a?n.createElement(h,l(l({ref:t},c),{},{components:a})):n.createElement(h,l({ref:t},c))}));function h(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=a.length,l=new Array(o);l[0]=m;var s={};for(var i in t)hasOwnProperty.call(t,i)&&(s[i]=t[i]);s.originalType=e,s[d]="string"==typeof e?e:r,l[1]=s;for(var u=2;u<o;u++)l[u]=a[u];return n.createElement.apply(null,l)}return n.createElement.apply(null,a)}m.displayName="MDXCreateElement"},5162:(e,t,a)=>{a.d(t,{Z:()=>l});var n=a(7294),r=a(6010);const o="tabItem_Ymn6";function l(e){let{children:t,hidden:a,className:l}=e;return n.createElement("div",{role:"tabpanel",className:(0,r.Z)(o,l),hidden:a},t)}},4866:(e,t,a)=>{a.d(t,{Z:()=>x});var n=a(7462),r=a(7294),o=a(6010),l=a(2466),s=a(6550),i=a(1980),u=a(7392),c=a(12);function d(e){return function(e){return r.Children.map(e,(e=>{if(!e||(0,r.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:t,label:a,attributes:n,default:r}}=e;return{value:t,label:a,attributes:n,default:r}}))}function p(e){const{values:t,children:a}=e;return(0,r.useMemo)((()=>{const e=t??d(a);return function(e){const t=(0,u.l)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[t,a])}function m(e){let{value:t,tabValues:a}=e;return a.some((e=>e.value===t))}function h(e){let{queryString:t=!1,groupId:a}=e;const n=(0,s.k6)(),o=function(e){let{queryString:t=!1,groupId:a}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!a)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return a??null}({queryString:t,groupId:a});return[(0,i._X)(o),(0,r.useCallback)((e=>{if(!o)return;const t=new URLSearchParams(n.location.search);t.set(o,e),n.replace({...n.location,search:t.toString()})}),[o,n])]}function b(e){const{defaultValue:t,queryString:a=!1,groupId:n}=e,o=p(e),[l,s]=(0,r.useState)((()=>function(e){let{defaultValue:t,tabValues:a}=e;if(0===a.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(t){if(!m({value:t,tabValues:a}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${a.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const n=a.find((e=>e.default))??a[0];if(!n)throw new Error("Unexpected error: 0 tabValues");return n.value}({defaultValue:t,tabValues:o}))),[i,u]=h({queryString:a,groupId:n}),[d,b]=function(e){let{groupId:t}=e;const a=function(e){return e?`docusaurus.tab.${e}`:null}(t),[n,o]=(0,c.Nk)(a);return[n,(0,r.useCallback)((e=>{a&&o.set(e)}),[a,o])]}({groupId:n}),f=(()=>{const e=i??d;return m({value:e,tabValues:o})?e:null})();(0,r.useLayoutEffect)((()=>{f&&s(f)}),[f]);return{selectedValue:l,selectValue:(0,r.useCallback)((e=>{if(!m({value:e,tabValues:o}))throw new Error(`Can't select invalid tab value=${e}`);s(e),u(e),b(e)}),[u,b,o]),tabValues:o}}var f=a(2389);const v="tabList__CuJ",y="tabItem_LNqP";function g(e){let{className:t,block:a,selectedValue:s,selectValue:i,tabValues:u}=e;const c=[],{blockElementScrollPositionUntilNextRender:d}=(0,l.o5)(),p=e=>{const t=e.currentTarget,a=c.indexOf(t),n=u[a].value;n!==s&&(d(t),i(n))},m=e=>{let t=null;switch(e.key){case"Enter":p(e);break;case"ArrowRight":{const a=c.indexOf(e.currentTarget)+1;t=c[a]??c[0];break}case"ArrowLeft":{const a=c.indexOf(e.currentTarget)-1;t=c[a]??c[c.length-1];break}}t?.focus()};return r.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,o.Z)("tabs",{"tabs--block":a},t)},u.map((e=>{let{value:t,label:a,attributes:l}=e;return r.createElement("li",(0,n.Z)({role:"tab",tabIndex:s===t?0:-1,"aria-selected":s===t,key:t,ref:e=>c.push(e),onKeyDown:m,onClick:p},l,{className:(0,o.Z)("tabs__item",y,l?.className,{"tabs__item--active":s===t})}),a??t)})))}function k(e){let{lazy:t,children:a,selectedValue:n}=e;const o=(Array.isArray(a)?a:[a]).filter(Boolean);if(t){const e=o.find((e=>e.props.value===n));return e?(0,r.cloneElement)(e,{className:"margin-top--md"}):null}return r.createElement("div",{className:"margin-top--md"},o.map(((e,t)=>(0,r.cloneElement)(e,{key:t,hidden:e.props.value!==n}))))}function w(e){const t=b(e);return r.createElement("div",{className:(0,o.Z)("tabs-container",v)},r.createElement(g,(0,n.Z)({},e,t)),r.createElement(k,(0,n.Z)({},e,t)))}function x(e){const t=(0,f.Z)();return r.createElement(w,(0,n.Z)({key:String(t)},e))}},4175:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>m,frontMatter:()=>s,metadata:()=>u,toc:()=>d});var n=a(7462),r=(a(7294),a(3905)),o=a(4866),l=a(5162);const s={},i="Alpha",u={unversionedId:"extras/ui/alpha",id:"extras/ui/alpha",title:"Alpha",description:"You can enable the extra with the :LazyExtras command.",source:"@site/docs/extras/ui/alpha.md",sourceDirName:"extras/ui",slug:"/extras/ui/alpha",permalink:"/extras/ui/alpha",draft:!1,editUrl:"https://github.com/LazyVim/lazyvim.github.io/tree/main/docs/extras/ui/alpha.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Neotest",permalink:"/extras/test/core"},next:{title:"Dashboard-nvim",permalink:"/extras/ui/dashboard-nvim"}},c={},d=[{value:"snacks.nvim",id:"snacksnvim",level:2},{value:"alpha-nvim",id:"alpha-nvim",level:2}],p={toc:d};function m(e){let{components:t,...a}=e;return(0,r.kt)("wrapper",(0,n.Z)({},p,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"alpha"},"Alpha"),(0,r.kt)("admonition",{type:"info"},(0,r.kt)("p",{parentName:"admonition"},"You can enable the extra with the ",(0,r.kt)("inlineCode",{parentName:"p"},":LazyExtras")," command.\nPlugins marked as optional will only be configured if they are installed.")),(0,r.kt)("p",null,"Below you can find a list of included plugins and their default settings."),(0,r.kt)("admonition",{type:"caution"},(0,r.kt)("p",{parentName:"admonition"},"You don't need to copy the default settings to your config.\nThey are only shown here for reference.")),(0,r.kt)("h2",{id:"snacksnvim"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/folke/snacks.nvim"},"snacks.nvim")),(0,r.kt)(o.Z,{mdxType:"Tabs"},(0,r.kt)(l.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},"opts = { dashboard = { enabled = false } }\n"))),(0,r.kt)(l.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{ "folke/snacks.nvim", opts = { dashboard = { enabled = false } } }\n')))),(0,r.kt)("h2",{id:"alpha-nvim"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/goolord/alpha-nvim"},"alpha-nvim")),(0,r.kt)("p",null,' Dashboard. This runs when neovim starts, and is what displays\nthe "LAZYVIM" banner.'),(0,r.kt)(o.Z,{mdxType:"Tabs"},(0,r.kt)(l.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = function()\n local dashboard = require("alpha.themes.dashboard")\n local logo = [[\n \u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557\u2588\u2588\u2557 \u2588\u2588\u2557\u2588\u2588\u2557 \u2588\u2588\u2557\u2588\u2588\u2557\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2557 Z\n \u2588\u2588\u2551 \u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557\u255a\u2550\u2550\u2588\u2588\u2588\u2554\u255d\u255a\u2588\u2588\u2557 \u2588\u2588\u2554\u255d\u2588\u2588\u2551 \u2588\u2588\u2551\u2588\u2588\u2551\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2551 Z \n \u2588\u2588\u2551 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2551 \u2588\u2588\u2588\u2554\u255d \u255a\u2588\u2588\u2588\u2588\u2554\u255d \u2588\u2588\u2551 \u2588\u2588\u2551\u2588\u2588\u2551\u2588\u2588\u2554\u2588\u2588\u2588\u2588\u2554\u2588\u2588\u2551 z \n \u2588\u2588\u2551 \u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2551 \u2588\u2588\u2588\u2554\u255d \u255a\u2588\u2588\u2554\u255d \u255a\u2588\u2588\u2557 \u2588\u2588\u2554\u255d\u2588\u2588\u2551\u2588\u2588\u2551\u255a\u2588\u2588\u2554\u255d\u2588\u2588\u2551 z \n \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557\u2588\u2588\u2551 \u2588\u2588\u2551\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2551 \u255a\u2588\u2588\u2588\u2588\u2554\u255d \u2588\u2588\u2551\u2588\u2588\u2551 \u255a\u2550\u255d \u2588\u2588\u2551\n \u255a\u2550\u2550\u2550\u2550\u2550\u2550\u255d\u255a\u2550\u255d \u255a\u2550\u255d\u255a\u2550\u2550\u2550\u2550\u2550\u2550\u255d \u255a\u2550\u255d \u255a\u2550\u2550\u2550\u255d \u255a\u2550\u255d\u255a\u2550\u255d \u255a\u2550\u255d\n ]]\n\n dashboard.section.header.val = vim.split(logo, "\\n")\n -- stylua: ignore\n dashboard.section.buttons.val = {\n dashboard.button("f", "\uf002 " .. " Find file", "<cmd> lua LazyVim.pick()() <cr>"),\n dashboard.button("n", "\uf15b " .. " New file", [[<cmd> ene <BAR> startinsert <cr>]]),\n dashboard.button("r", "\uf0c5 " .. " Recent files", [[<cmd> lua LazyVim.pick("oldfiles")() <cr>]]),\n dashboard.button("g", "\uf022 " .. " Find text", [[<cmd> lua LazyVim.pick("live_grep")() <cr>]]),\n dashboard.button("c", "\uf423 " .. " Config", "<cmd> lua LazyVim.pick.config_files()() <cr>"),\n dashboard.button("s", "\ue348 " .. " Restore Session", [[<cmd> lua require("persistence").load() <cr>]]),\n dashboard.button("x", "\uea8c " .. " Lazy Extras", "<cmd> LazyExtras <cr>"),\n dashboard.button("l", "\udb81\udcb2 " .. " Lazy", "<cmd> Lazy <cr>"),\n dashboard.button("q", "\uf426 " .. " Quit", "<cmd> qa <cr>"),\n }\n for _, button in ipairs(dashboard.section.buttons.val) do\n button.opts.hl = "AlphaButtons"\n button.opts.hl_shortcut = "AlphaShortcut"\n end\n dashboard.section.header.opts.hl = "AlphaHeader"\n dashboard.section.buttons.opts.hl = "AlphaButtons"\n dashboard.section.footer.opts.hl = "AlphaFooter"\n dashboard.opts.layout[1].val = 8\n return dashboard\nend\n'))),(0,r.kt)(l.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "goolord/alpha-nvim",\n event = "VimEnter",\n enabled = true,\n init = false,\n opts = function()\n local dashboard = require("alpha.themes.dashboard")\n local logo = [[\n \u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557\u2588\u2588\u2557 \u2588\u2588\u2557\u2588\u2588\u2557 \u2588\u2588\u2557\u2588\u2588\u2557\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2557 Z\n \u2588\u2588\u2551 \u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557\u255a\u2550\u2550\u2588\u2588\u2588\u2554\u255d\u255a\u2588\u2588\u2557 \u2588\u2588\u2554\u255d\u2588\u2588\u2551 \u2588\u2588\u2551\u2588\u2588\u2551\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2551 Z \n \u2588\u2588\u2551 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2551 \u2588\u2588\u2588\u2554\u255d \u255a\u2588\u2588\u2588\u2588\u2554\u255d \u2588\u2588\u2551 \u2588\u2588\u2551\u2588\u2588\u2551\u2588\u2588\u2554\u2588\u2588\u2588\u2588\u2554\u2588\u2588\u2551 z \n \u2588\u2588\u2551 \u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2551 \u2588\u2588\u2588\u2554\u255d \u255a\u2588\u2588\u2554\u255d \u255a\u2588\u2588\u2557 \u2588\u2588\u2554\u255d\u2588\u2588\u2551\u2588\u2588\u2551\u255a\u2588\u2588\u2554\u255d\u2588\u2588\u2551 z \n \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557\u2588\u2588\u2551 \u2588\u2588\u2551\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2551 \u255a\u2588\u2588\u2588\u2588\u2554\u255d \u2588\u2588\u2551\u2588\u2588\u2551 \u255a\u2550\u255d \u2588\u2588\u2551\n \u255a\u2550\u2550\u2550\u2550\u2550\u2550\u255d\u255a\u2550\u255d \u255a\u2550\u255d\u255a\u2550\u2550\u2550\u2550\u2550\u2550\u255d \u255a\u2550\u255d \u255a\u2550\u2550\u2550\u255d \u255a\u2550\u255d\u255a\u2550\u255d \u255a\u2550\u255d\n ]]\n\n dashboard.section.header.val = vim.split(logo, "\\n")\n -- stylua: ignore\n dashboard.section.buttons.val = {\n dashboard.button("f", "\uf002 " .. " Find file", "<cmd> lua LazyVim.pick()() <cr>"),\n dashboard.button("n", "\uf15b " .. " New file", [[<cmd> ene <BAR> startinsert <cr>]]),\n dashboard.button("r", "\uf0c5 " .. " Recent files", [[<cmd> lua LazyVim.pick("oldfiles")() <cr>]]),\n dashboard.button("g", "\uf022 " .. " Find text", [[<cmd> lua LazyVim.pick("live_grep")() <cr>]]),\n dashboard.button("c", "\uf423 " .. " Config", "<cmd> lua LazyVim.pick.config_files()() <cr>"),\n dashboard.button("s", "\ue348 " .. " Restore Session", [[<cmd> lua require("persistence").load() <cr>]]),\n dashboard.button("x", "\uea8c " .. " Lazy Extras", "<cmd> LazyExtras <cr>"),\n dashboard.button("l", "\udb81\udcb2 " .. " Lazy", "<cmd> Lazy <cr>"),\n dashboard.button("q", "\uf426 " .. " Quit", "<cmd> qa <cr>"),\n }\n for _, button in ipairs(dashboard.section.buttons.val) do\n button.opts.hl = "AlphaButtons"\n button.opts.hl_shortcut = "AlphaShortcut"\n end\n dashboard.section.header.opts.hl = "AlphaHeader"\n dashboard.section.buttons.opts.hl = "AlphaButtons"\n dashboard.section.footer.opts.hl = "AlphaFooter"\n dashboard.opts.layout[1].val = 8\n return dashboard\n end,\n config = function(_, dashboard)\n -- close Lazy and re-open when the dashboard is ready\n if vim.o.filetype == "lazy" then\n vim.cmd.close()\n vim.api.nvim_create_autocmd("User", {\n once = true,\n pattern = "AlphaReady",\n callback = function()\n require("lazy").show()\n end,\n })\n end\n\n require("alpha").setup(dashboard.opts)\n\n vim.api.nvim_create_autocmd("User", {\n once = true,\n pattern = "LazyVimStarted",\n callback = function()\n local stats = require("lazy").stats()\n local ms = (math.floor(stats.startuptime * 100 + 0.5) / 100)\n dashboard.section.footer.val = "\u26a1 Neovim loaded "\n .. stats.loaded\n .. "/"\n .. stats.count\n .. " plugins in "\n .. ms\n .. "ms"\n pcall(vim.cmd.AlphaRedraw)\n end,\n })\n end,\n}\n')))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/5160bd2b.2c8d640c.js b/assets/js/5160bd2b.2c8d640c.js new file mode 100644 index 0000000000..e29e845020 --- /dev/null +++ b/assets/js/5160bd2b.2c8d640c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklazyvim=self.webpackChunklazyvim||[]).push([[4974],{3905:(e,t,n)=>{n.d(t,{Zo:()=>s,kt:()=>h});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function l(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){r(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function i(e,t){if(null==e)return{};var n,a,r=function(e,t){if(null==e)return{};var n,a,r={},o=Object.keys(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var u=a.createContext({}),c=function(e){var t=a.useContext(u),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},s=function(e){var t=c(e.components);return a.createElement(u.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},d=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,o=e.originalType,u=e.parentName,s=i(e,["components","mdxType","originalType","parentName"]),p=c(n),d=r,h=p["".concat(u,".").concat(d)]||p[d]||m[d]||o;return n?a.createElement(h,l(l({ref:t},s),{},{components:n})):a.createElement(h,l({ref:t},s))}));function h(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=n.length,l=new Array(o);l[0]=d;var i={};for(var u in t)hasOwnProperty.call(t,u)&&(i[u]=t[u]);i.originalType=e,i[p]="string"==typeof e?e:r,l[1]=i;for(var c=2;c<o;c++)l[c]=n[c];return a.createElement.apply(null,l)}return a.createElement.apply(null,n)}d.displayName="MDXCreateElement"},5162:(e,t,n)=>{n.d(t,{Z:()=>l});var a=n(7294),r=n(6010);const o="tabItem_Ymn6";function l(e){let{children:t,hidden:n,className:l}=e;return a.createElement("div",{role:"tabpanel",className:(0,r.Z)(o,l),hidden:n},t)}},4866:(e,t,n)=>{n.d(t,{Z:()=>w});var a=n(7462),r=n(7294),o=n(6010),l=n(2466),i=n(6550),u=n(1980),c=n(7392),s=n(12);function p(e){return function(e){return r.Children.map(e,(e=>{if(!e||(0,r.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:t,label:n,attributes:a,default:r}}=e;return{value:t,label:n,attributes:a,default:r}}))}function m(e){const{values:t,children:n}=e;return(0,r.useMemo)((()=>{const e=t??p(n);return function(e){const t=(0,c.l)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[t,n])}function d(e){let{value:t,tabValues:n}=e;return n.some((e=>e.value===t))}function h(e){let{queryString:t=!1,groupId:n}=e;const a=(0,i.k6)(),o=function(e){let{queryString:t=!1,groupId:n}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!n)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return n??null}({queryString:t,groupId:n});return[(0,u._X)(o),(0,r.useCallback)((e=>{if(!o)return;const t=new URLSearchParams(a.location.search);t.set(o,e),a.replace({...a.location,search:t.toString()})}),[o,a])]}function f(e){const{defaultValue:t,queryString:n=!1,groupId:a}=e,o=m(e),[l,i]=(0,r.useState)((()=>function(e){let{defaultValue:t,tabValues:n}=e;if(0===n.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(t){if(!d({value:t,tabValues:n}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${n.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const a=n.find((e=>e.default))??n[0];if(!a)throw new Error("Unexpected error: 0 tabValues");return a.value}({defaultValue:t,tabValues:o}))),[u,c]=h({queryString:n,groupId:a}),[p,f]=function(e){let{groupId:t}=e;const n=function(e){return e?`docusaurus.tab.${e}`:null}(t),[a,o]=(0,s.Nk)(n);return[a,(0,r.useCallback)((e=>{n&&o.set(e)}),[n,o])]}({groupId:a}),b=(()=>{const e=u??p;return d({value:e,tabValues:o})?e:null})();(0,r.useLayoutEffect)((()=>{b&&i(b)}),[b]);return{selectedValue:l,selectValue:(0,r.useCallback)((e=>{if(!d({value:e,tabValues:o}))throw new Error(`Can't select invalid tab value=${e}`);i(e),c(e),f(e)}),[c,f,o]),tabValues:o}}var b=n(2389);const v="tabList__CuJ",g="tabItem_LNqP";function y(e){let{className:t,block:n,selectedValue:i,selectValue:u,tabValues:c}=e;const s=[],{blockElementScrollPositionUntilNextRender:p}=(0,l.o5)(),m=e=>{const t=e.currentTarget,n=s.indexOf(t),a=c[n].value;a!==i&&(p(t),u(a))},d=e=>{let t=null;switch(e.key){case"Enter":m(e);break;case"ArrowRight":{const n=s.indexOf(e.currentTarget)+1;t=s[n]??s[0];break}case"ArrowLeft":{const n=s.indexOf(e.currentTarget)-1;t=s[n]??s[s.length-1];break}}t?.focus()};return r.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,o.Z)("tabs",{"tabs--block":n},t)},c.map((e=>{let{value:t,label:n,attributes:l}=e;return r.createElement("li",(0,a.Z)({role:"tab",tabIndex:i===t?0:-1,"aria-selected":i===t,key:t,ref:e=>s.push(e),onKeyDown:d,onClick:m},l,{className:(0,o.Z)("tabs__item",g,l?.className,{"tabs__item--active":i===t})}),n??t)})))}function k(e){let{lazy:t,children:n,selectedValue:a}=e;const o=(Array.isArray(n)?n:[n]).filter(Boolean);if(t){const e=o.find((e=>e.props.value===a));return e?(0,r.cloneElement)(e,{className:"margin-top--md"}):null}return r.createElement("div",{className:"margin-top--md"},o.map(((e,t)=>(0,r.cloneElement)(e,{key:t,hidden:e.props.value!==a}))))}function C(e){const t=f(e);return r.createElement("div",{className:(0,o.Z)("tabs-container",v)},r.createElement(y,(0,a.Z)({},e,t)),r.createElement(k,(0,a.Z)({},e,t)))}function w(e){const t=(0,b.Z)();return r.createElement(C,(0,a.Z)({key:String(t)},e))}},3196:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>u,default:()=>d,frontMatter:()=>i,metadata:()=>c,toc:()=>p});var a=n(7462),r=(n(7294),n(3905)),o=n(4866),l=n(5162);const i={},u="Copilot-chat",c={unversionedId:"extras/ai/copilot-chat",id:"extras/ai/copilot-chat",title:"Copilot-chat",description:"You can enable the extra with the :LazyExtras command.",source:"@site/docs/extras/ai/copilot-chat.md",sourceDirName:"extras/ai",slug:"/extras/ai/copilot-chat",permalink:"/extras/ai/copilot-chat",draft:!1,editUrl:"https://github.com/LazyVim/lazyvim.github.io/tree/main/docs/extras/ai/copilot-chat.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Codeium",permalink:"/extras/ai/codeium"},next:{title:"Copilot-native",permalink:"/extras/ai/copilot-native"}},s={},p=[{value:"CopilotChat.nvim",id:"copilotchatnvim",level:2},{value:"edgy.nvim <em>(optional)</em>",id:"edgynvim-optional",level:2},{value:"blink.cmp <em>(optional)</em>",id:"blinkcmp-optional",level:2}],m={toc:p};function d(e){let{components:t,...n}=e;return(0,r.kt)("wrapper",(0,a.Z)({},m,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"copilot-chat"},(0,r.kt)("inlineCode",{parentName:"h1"},"Copilot-chat")),(0,r.kt)("admonition",{type:"info"},(0,r.kt)("p",{parentName:"admonition"},"You can enable the extra with the ",(0,r.kt)("inlineCode",{parentName:"p"},":LazyExtras")," command.\nPlugins marked as optional will only be configured if they are installed.")),(0,r.kt)("p",null,"Below you can find a list of included plugins and their default settings."),(0,r.kt)("admonition",{type:"caution"},(0,r.kt)("p",{parentName:"admonition"},"You don't need to copy the default settings to your config.\nThey are only shown here for reference.")),(0,r.kt)("h2",{id:"copilotchatnvim"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/CopilotC-Nvim/CopilotChat.nvim"},"CopilotChat.nvim")),(0,r.kt)(o.Z,{mdxType:"Tabs"},(0,r.kt)(l.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = function()\n local user = vim.env.USER or "User"\n user = user:sub(1, 1):upper() .. user:sub(2)\n return {\n auto_insert_mode = true,\n headers = {\n user = "\uf007 " .. user .. " ",\n assistant = "\uf4b8 Copilot ",\n tool = "\udb80\udeb3 Tool ",\n },\n window = {\n width = 0.4,\n },\n }\nend\n'))),(0,r.kt)(l.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "CopilotC-Nvim/CopilotChat.nvim",\n branch = "main",\n cmd = "CopilotChat",\n opts = function()\n local user = vim.env.USER or "User"\n user = user:sub(1, 1):upper() .. user:sub(2)\n return {\n auto_insert_mode = true,\n headers = {\n user = "\uf007 " .. user .. " ",\n assistant = "\uf4b8 Copilot ",\n tool = "\udb80\udeb3 Tool ",\n },\n window = {\n width = 0.4,\n },\n }\n end,\n keys = {\n { "<c-s>", "<CR>", ft = "copilot-chat", desc = "Submit Prompt", remap = true },\n { "<leader>a", "", desc = "+ai", mode = { "n", "x" } },\n {\n "<leader>aa",\n function()\n return require("CopilotChat").toggle()\n end,\n desc = "Toggle (CopilotChat)",\n mode = { "n", "x" },\n },\n {\n "<leader>ax",\n function()\n return require("CopilotChat").reset()\n end,\n desc = "Clear (CopilotChat)",\n mode = { "n", "x" },\n },\n {\n "<leader>aq",\n function()\n vim.ui.input({\n prompt = "Quick Chat: ",\n }, function(input)\n if input ~= "" then\n require("CopilotChat").ask(input)\n end\n end)\n end,\n desc = "Quick Chat (CopilotChat)",\n mode = { "n", "x" },\n },\n {\n "<leader>ap",\n function()\n require("CopilotChat").select_prompt()\n end,\n desc = "Prompt Actions (CopilotChat)",\n mode = { "n", "x" },\n },\n },\n config = function(_, opts)\n local chat = require("CopilotChat")\n\n vim.api.nvim_create_autocmd("BufEnter", {\n pattern = "copilot-chat",\n callback = function()\n vim.opt_local.relativenumber = false\n vim.opt_local.number = false\n end,\n })\n\n chat.setup(opts)\n end,\n}\n')))),(0,r.kt)("h2",{id:"edgynvim-optional"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/folke/edgy.nvim"},"edgy.nvim")," ",(0,r.kt)("em",{parentName:"h2"},"(optional)")),(0,r.kt)("p",null," Edgy integration"),(0,r.kt)(o.Z,{mdxType:"Tabs"},(0,r.kt)(l.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = function(_, opts)\n opts.right = opts.right or {}\n table.insert(opts.right, {\n ft = "copilot-chat",\n title = "Copilot Chat",\n size = { width = 50 },\n })\nend\n'))),(0,r.kt)(l.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "folke/edgy.nvim",\n optional = true,\n opts = function(_, opts)\n opts.right = opts.right or {}\n table.insert(opts.right, {\n ft = "copilot-chat",\n title = "Copilot Chat",\n size = { width = 50 },\n })\n end,\n}\n')))),(0,r.kt)("h2",{id:"blinkcmp-optional"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/saghen/blink.cmp"},"blink.cmp")," ",(0,r.kt)("em",{parentName:"h2"},"(optional)")),(0,r.kt)("p",null," Blink integration"),(0,r.kt)(o.Z,{mdxType:"Tabs"},(0,r.kt)(l.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = {\n sources = {\n providers = {\n path = {\n -- Path sources triggered by "/" interfere with CopilotChat commands\n enabled = function()\n return vim.bo.filetype ~= "copilot-chat"\n end,\n },\n },\n },\n}\n'))),(0,r.kt)(l.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "saghen/blink.cmp",\n optional = true,\n ---@module \'blink.cmp\'\n ---@type blink.cmp.Config\n opts = {\n sources = {\n providers = {\n path = {\n -- Path sources triggered by "/" interfere with CopilotChat commands\n enabled = function()\n return vim.bo.filetype ~= "copilot-chat"\n end,\n },\n },\n },\n },\n}\n')))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/524b705f.500a9376.js b/assets/js/524b705f.500a9376.js new file mode 100644 index 0000000000..8863bd50ec --- /dev/null +++ b/assets/js/524b705f.500a9376.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklazyvim=self.webpackChunklazyvim||[]).push([[3247],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>f});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function o(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?l(Object(n),!0).forEach((function(t){r(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):l(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function i(e,t){if(null==e)return{};var n,a,r=function(e,t){if(null==e)return{};var n,a,r={},l=Object.keys(e);for(a=0;a<l.length;a++)n=l[a],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a<l.length;a++)n=l[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var s=a.createContext({}),u=function(e){var t=a.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},c=function(e){var t=u(e.components);return a.createElement(s.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},d=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,l=e.originalType,s=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),p=u(n),d=r,f=p["".concat(s,".").concat(d)]||p[d]||m[d]||l;return n?a.createElement(f,o(o({ref:t},c),{},{components:n})):a.createElement(f,o({ref:t},c))}));function f(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var l=n.length,o=new Array(l);o[0]=d;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[p]="string"==typeof e?e:r,o[1]=i;for(var u=2;u<l;u++)o[u]=n[u];return a.createElement.apply(null,o)}return a.createElement.apply(null,n)}d.displayName="MDXCreateElement"},5162:(e,t,n)=>{n.d(t,{Z:()=>o});var a=n(7294),r=n(6010);const l="tabItem_Ymn6";function o(e){let{children:t,hidden:n,className:o}=e;return a.createElement("div",{role:"tabpanel",className:(0,r.Z)(l,o),hidden:n},t)}},4866:(e,t,n)=>{n.d(t,{Z:()=>T});var a=n(7462),r=n(7294),l=n(6010),o=n(2466),i=n(6550),s=n(1980),u=n(7392),c=n(12);function p(e){return function(e){return r.Children.map(e,(e=>{if(!e||(0,r.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:t,label:n,attributes:a,default:r}}=e;return{value:t,label:n,attributes:a,default:r}}))}function m(e){const{values:t,children:n}=e;return(0,r.useMemo)((()=>{const e=t??p(n);return function(e){const t=(0,u.l)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[t,n])}function d(e){let{value:t,tabValues:n}=e;return n.some((e=>e.value===t))}function f(e){let{queryString:t=!1,groupId:n}=e;const a=(0,i.k6)(),l=function(e){let{queryString:t=!1,groupId:n}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!n)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return n??null}({queryString:t,groupId:n});return[(0,s._X)(l),(0,r.useCallback)((e=>{if(!l)return;const t=new URLSearchParams(a.location.search);t.set(l,e),a.replace({...a.location,search:t.toString()})}),[l,a])]}function h(e){const{defaultValue:t,queryString:n=!1,groupId:a}=e,l=m(e),[o,i]=(0,r.useState)((()=>function(e){let{defaultValue:t,tabValues:n}=e;if(0===n.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(t){if(!d({value:t,tabValues:n}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${n.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const a=n.find((e=>e.default))??n[0];if(!a)throw new Error("Unexpected error: 0 tabValues");return a.value}({defaultValue:t,tabValues:l}))),[s,u]=f({queryString:n,groupId:a}),[p,h]=function(e){let{groupId:t}=e;const n=function(e){return e?`docusaurus.tab.${e}`:null}(t),[a,l]=(0,c.Nk)(n);return[a,(0,r.useCallback)((e=>{n&&l.set(e)}),[n,l])]}({groupId:a}),b=(()=>{const e=s??p;return d({value:e,tabValues:l})?e:null})();(0,r.useLayoutEffect)((()=>{b&&i(b)}),[b]);return{selectedValue:o,selectValue:(0,r.useCallback)((e=>{if(!d({value:e,tabValues:l}))throw new Error(`Can't select invalid tab value=${e}`);i(e),u(e),h(e)}),[u,h,l]),tabValues:l}}var b=n(2389);const g="tabList__CuJ",v="tabItem_LNqP";function y(e){let{className:t,block:n,selectedValue:i,selectValue:s,tabValues:u}=e;const c=[],{blockElementScrollPositionUntilNextRender:p}=(0,o.o5)(),m=e=>{const t=e.currentTarget,n=c.indexOf(t),a=u[n].value;a!==i&&(p(t),s(a))},d=e=>{let t=null;switch(e.key){case"Enter":m(e);break;case"ArrowRight":{const n=c.indexOf(e.currentTarget)+1;t=c[n]??c[0];break}case"ArrowLeft":{const n=c.indexOf(e.currentTarget)-1;t=c[n]??c[c.length-1];break}}t?.focus()};return r.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,l.Z)("tabs",{"tabs--block":n},t)},u.map((e=>{let{value:t,label:n,attributes:o}=e;return r.createElement("li",(0,a.Z)({role:"tab",tabIndex:i===t?0:-1,"aria-selected":i===t,key:t,ref:e=>c.push(e),onKeyDown:d,onClick:m},o,{className:(0,l.Z)("tabs__item",v,o?.className,{"tabs__item--active":i===t})}),n??t)})))}function x(e){let{lazy:t,children:n,selectedValue:a}=e;const l=(Array.isArray(n)?n:[n]).filter(Boolean);if(t){const e=l.find((e=>e.props.value===a));return e?(0,r.cloneElement)(e,{className:"margin-top--md"}):null}return r.createElement("div",{className:"margin-top--md"},l.map(((e,t)=>(0,r.cloneElement)(e,{key:t,hidden:e.props.value!==a}))))}function k(e){const t=h(e);return r.createElement("div",{className:(0,l.Z)("tabs-container",g)},r.createElement(y,(0,a.Z)({},e,t)),r.createElement(x,(0,a.Z)({},e,t)))}function T(e){const t=(0,b.Z)();return r.createElement(k,(0,a.Z)({key:String(t)},e))}},4597:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>s,default:()=>d,frontMatter:()=>i,metadata:()=>u,toc:()=>p});var a=n(7462),r=(n(7294),n(3905)),l=n(4866),o=n(5162);const i={},s="Tex",u={unversionedId:"extras/lang/tex",id:"extras/lang/tex",title:"Tex",description:"You can enable the extra with the :LazyExtras command.",source:"@site/docs/extras/lang/tex.md",sourceDirName:"extras/lang",slug:"/extras/lang/tex",permalink:"/extras/lang/tex",draft:!1,editUrl:"https://github.com/LazyVim/lazyvim.github.io/tree/main/docs/extras/lang/tex.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Terraform",permalink:"/extras/lang/terraform"},next:{title:"Thrift",permalink:"/extras/lang/thrift"}},c={},p=[{value:"nvim-treesitter",id:"nvim-treesitter",level:2},{value:"vimtex",id:"vimtex",level:2},{value:"nvim-lspconfig <em>(optional)</em>",id:"nvim-lspconfig-optional",level:2}],m={toc:p};function d(e){let{components:t,...n}=e;return(0,r.kt)("wrapper",(0,a.Z)({},m,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"tex"},"Tex"),(0,r.kt)("admonition",{type:"info"},(0,r.kt)("p",{parentName:"admonition"},"You can enable the extra with the ",(0,r.kt)("inlineCode",{parentName:"p"},":LazyExtras")," command.\nPlugins marked as optional will only be configured if they are installed.")),(0,r.kt)("p",null,"Below you can find a list of included plugins and their default settings."),(0,r.kt)("admonition",{type:"caution"},(0,r.kt)("p",{parentName:"admonition"},"You don't need to copy the default settings to your config.\nThey are only shown here for reference.")),(0,r.kt)("h2",{id:"nvim-treesitter"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/nvim-treesitter/nvim-treesitter"},"nvim-treesitter")),(0,r.kt)("p",null," Add BibTeX/LaTeX to treesitter"),(0,r.kt)(l.Z,{mdxType:"Tabs"},(0,r.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = function(_, opts)\n opts.highlight = opts.highlight or {}\n if type(opts.ensure_installed) == "table" then\n vim.list_extend(opts.ensure_installed, { "bibtex", "latex" })\n end\n if type(opts.highlight.disable) == "table" then\n vim.list_extend(opts.highlight.disable, { "latex" })\n else\n opts.highlight.disable = { "latex" }\n end\nend\n'))),(0,r.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "nvim-treesitter/nvim-treesitter",\n opts = function(_, opts)\n opts.highlight = opts.highlight or {}\n if type(opts.ensure_installed) == "table" then\n vim.list_extend(opts.ensure_installed, { "bibtex", "latex" })\n end\n if type(opts.highlight.disable) == "table" then\n vim.list_extend(opts.highlight.disable, { "latex" })\n else\n opts.highlight.disable = { "latex" }\n end\n end,\n}\n')))),(0,r.kt)("h2",{id:"vimtex"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/lervag/vimtex"},"vimtex")),(0,r.kt)(l.Z,{mdxType:"Tabs"},(0,r.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},"opts = {}\n"))),(0,r.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "lervag/vimtex",\n lazy = false, -- lazy-loading will disable inverse search\n config = function()\n vim.g.vimtex_mappings_disable = { ["n"] = { "K" } } -- disable `K` as it conflicts with LSP hover\n vim.g.vimtex_quickfix_method = vim.fn.executable("pplatex") == 1 and "pplatex" or "latexlog"\n end,\n keys = {\n { "<localLeader>l", "", desc = "+vimtex", ft = "tex" },\n },\n}\n')))),(0,r.kt)("h2",{id:"nvim-lspconfig-optional"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/neovim/nvim-lspconfig"},"nvim-lspconfig")," ",(0,r.kt)("em",{parentName:"h2"},"(optional)")),(0,r.kt)("p",null," Correctly setup lspconfig for LaTeX \ud83d\ude80"),(0,r.kt)(l.Z,{mdxType:"Tabs"},(0,r.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = {\n servers = {\n texlab = {\n keys = {\n { "<Leader>K", "<plug>(vimtex-doc-package)", desc = "Vimtex Docs", silent = true },\n },\n },\n },\n}\n'))),(0,r.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "neovim/nvim-lspconfig",\n optional = true,\n opts = {\n servers = {\n texlab = {\n keys = {\n { "<Leader>K", "<plug>(vimtex-doc-package)", desc = "Vimtex Docs", silent = true },\n },\n },\n },\n },\n}\n')))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/53c65431.c6cec854.js b/assets/js/53c65431.c6cec854.js new file mode 100644 index 0000000000..83184d6c46 --- /dev/null +++ b/assets/js/53c65431.c6cec854.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklazyvim=self.webpackChunklazyvim||[]).push([[1494],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>b});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function l(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){r(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function i(e,t){if(null==e)return{};var n,a,r=function(e,t){if(null==e)return{};var n,a,r={},o=Object.keys(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var s=a.createContext({}),c=function(e){var t=a.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},u=function(e){var t=c(e.components);return a.createElement(s.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},d=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,o=e.originalType,s=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),p=c(n),d=r,b=p["".concat(s,".").concat(d)]||p[d]||m[d]||o;return n?a.createElement(b,l(l({ref:t},u),{},{components:n})):a.createElement(b,l({ref:t},u))}));function b(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=n.length,l=new Array(o);l[0]=d;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[p]="string"==typeof e?e:r,l[1]=i;for(var c=2;c<o;c++)l[c]=n[c];return a.createElement.apply(null,l)}return a.createElement.apply(null,n)}d.displayName="MDXCreateElement"},5162:(e,t,n)=>{n.d(t,{Z:()=>l});var a=n(7294),r=n(6010);const o="tabItem_Ymn6";function l(e){let{children:t,hidden:n,className:l}=e;return a.createElement("div",{role:"tabpanel",className:(0,r.Z)(o,l),hidden:n},t)}},4866:(e,t,n)=>{n.d(t,{Z:()=>T});var a=n(7462),r=n(7294),o=n(6010),l=n(2466),i=n(6550),s=n(1980),c=n(7392),u=n(12);function p(e){return function(e){return r.Children.map(e,(e=>{if(!e||(0,r.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:t,label:n,attributes:a,default:r}}=e;return{value:t,label:n,attributes:a,default:r}}))}function m(e){const{values:t,children:n}=e;return(0,r.useMemo)((()=>{const e=t??p(n);return function(e){const t=(0,c.l)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[t,n])}function d(e){let{value:t,tabValues:n}=e;return n.some((e=>e.value===t))}function b(e){let{queryString:t=!1,groupId:n}=e;const a=(0,i.k6)(),o=function(e){let{queryString:t=!1,groupId:n}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!n)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return n??null}({queryString:t,groupId:n});return[(0,s._X)(o),(0,r.useCallback)((e=>{if(!o)return;const t=new URLSearchParams(a.location.search);t.set(o,e),a.replace({...a.location,search:t.toString()})}),[o,a])]}function f(e){const{defaultValue:t,queryString:n=!1,groupId:a}=e,o=m(e),[l,i]=(0,r.useState)((()=>function(e){let{defaultValue:t,tabValues:n}=e;if(0===n.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(t){if(!d({value:t,tabValues:n}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${n.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const a=n.find((e=>e.default))??n[0];if(!a)throw new Error("Unexpected error: 0 tabValues");return a.value}({defaultValue:t,tabValues:o}))),[s,c]=b({queryString:n,groupId:a}),[p,f]=function(e){let{groupId:t}=e;const n=function(e){return e?`docusaurus.tab.${e}`:null}(t),[a,o]=(0,u.Nk)(n);return[a,(0,r.useCallback)((e=>{n&&o.set(e)}),[n,o])]}({groupId:a}),h=(()=>{const e=s??p;return d({value:e,tabValues:o})?e:null})();(0,r.useLayoutEffect)((()=>{h&&i(h)}),[h]);return{selectedValue:l,selectValue:(0,r.useCallback)((e=>{if(!d({value:e,tabValues:o}))throw new Error(`Can't select invalid tab value=${e}`);i(e),c(e),f(e)}),[c,f,o]),tabValues:o}}var h=n(2389);const v="tabList__CuJ",k="tabItem_LNqP";function y(e){let{className:t,block:n,selectedValue:i,selectValue:s,tabValues:c}=e;const u=[],{blockElementScrollPositionUntilNextRender:p}=(0,l.o5)(),m=e=>{const t=e.currentTarget,n=u.indexOf(t),a=c[n].value;a!==i&&(p(t),s(a))},d=e=>{let t=null;switch(e.key){case"Enter":m(e);break;case"ArrowRight":{const n=u.indexOf(e.currentTarget)+1;t=u[n]??u[0];break}case"ArrowLeft":{const n=u.indexOf(e.currentTarget)-1;t=u[n]??u[u.length-1];break}}t?.focus()};return r.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,o.Z)("tabs",{"tabs--block":n},t)},c.map((e=>{let{value:t,label:n,attributes:l}=e;return r.createElement("li",(0,a.Z)({role:"tab",tabIndex:i===t?0:-1,"aria-selected":i===t,key:t,ref:e=>u.push(e),onKeyDown:d,onClick:m},l,{className:(0,o.Z)("tabs__item",k,l?.className,{"tabs__item--active":i===t})}),n??t)})))}function g(e){let{lazy:t,children:n,selectedValue:a}=e;const o=(Array.isArray(n)?n:[n]).filter(Boolean);if(t){const e=o.find((e=>e.props.value===a));return e?(0,r.cloneElement)(e,{className:"margin-top--md"}):null}return r.createElement("div",{className:"margin-top--md"},o.map(((e,t)=>(0,r.cloneElement)(e,{key:t,hidden:e.props.value!==a}))))}function j(e){const t=f(e);return r.createElement("div",{className:(0,o.Z)("tabs-container",v)},r.createElement(y,(0,a.Z)({},e,t)),r.createElement(g,(0,a.Z)({},e,t)))}function T(e){const t=(0,h.Z)();return r.createElement(j,(0,a.Z)({key:String(t)},e))}},225:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>u,contentTitle:()=>s,default:()=>d,frontMatter:()=>i,metadata:()=>c,toc:()=>p});var a=n(7462),r=(n(7294),n(3905)),o=n(4866),l=n(5162);const i={},s="Project",c={unversionedId:"extras/util/project",id:"extras/util/project",title:"Project",description:"You can enable the extra with the :LazyExtras command.",source:"@site/docs/extras/util/project.md",sourceDirName:"extras/util",slug:"/extras/util/project",permalink:"/extras/util/project",draft:!1,editUrl:"https://github.com/LazyVim/lazyvim.github.io/tree/main/docs/extras/util/project.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Octo",permalink:"/extras/util/octo"},next:{title:"Rest",permalink:"/extras/util/rest"}},u={},p=[{value:"project.nvim",id:"projectnvim",level:2},{value:"telescope.nvim <em>(optional)</em>",id:"telescopenvim-optional",level:2},{value:"fzf-lua <em>(optional)</em>",id:"fzf-lua-optional",level:2},{value:"alpha-nvim <em>(optional)</em>",id:"alpha-nvim-optional",level:2},{value:"mini.starter <em>(optional)</em>",id:"ministarter-optional",level:2},{value:"dashboard-nvim <em>(optional)</em>",id:"dashboard-nvim-optional",level:2},{value:"snacks.nvim <em>(optional)</em>",id:"snacksnvim-optional",level:2}],m={toc:p};function d(e){let{components:t,...n}=e;return(0,r.kt)("wrapper",(0,a.Z)({},m,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"project"},"Project"),(0,r.kt)("admonition",{type:"info"},(0,r.kt)("p",{parentName:"admonition"},"You can enable the extra with the ",(0,r.kt)("inlineCode",{parentName:"p"},":LazyExtras")," command.\nPlugins marked as optional will only be configured if they are installed.")),(0,r.kt)("p",null,"Below you can find a list of included plugins and their default settings."),(0,r.kt)("admonition",{type:"caution"},(0,r.kt)("p",{parentName:"admonition"},"You don't need to copy the default settings to your config.\nThey are only shown here for reference.")),(0,r.kt)("h2",{id:"projectnvim"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/ahmedkhalf/project.nvim"},"project.nvim")),(0,r.kt)(o.Z,{mdxType:"Tabs"},(0,r.kt)(l.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},"opts = {\n manual_mode = true,\n}\n"))),(0,r.kt)(l.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "ahmedkhalf/project.nvim",\n opts = {\n manual_mode = true,\n },\n event = "VeryLazy",\n config = function(_, opts)\n require("project_nvim").setup(opts)\n local history = require("project_nvim.utils.history")\n history.delete_project = function(project)\n for k, v in pairs(history.recent_projects) do\n if v == project.value then\n history.recent_projects[k] = nil\n return\n end\n end\n end\n LazyVim.on_load("telescope.nvim", function()\n require("telescope").load_extension("projects")\n end)\n end,\n}\n')))),(0,r.kt)("h2",{id:"telescopenvim-optional"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/nvim-telescope/telescope.nvim"},"telescope.nvim")," ",(0,r.kt)("em",{parentName:"h2"},"(optional)")),(0,r.kt)(o.Z,{mdxType:"Tabs"},(0,r.kt)(l.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},"opts = nil\n"))),(0,r.kt)(l.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "nvim-telescope/telescope.nvim",\n optional = true,\n keys = {\n { "<leader>fp", pick, desc = "Projects" },\n },\n}\n')))),(0,r.kt)("h2",{id:"fzf-lua-optional"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/ibhagwan/fzf-lua"},"fzf-lua")," ",(0,r.kt)("em",{parentName:"h2"},"(optional)")),(0,r.kt)(o.Z,{mdxType:"Tabs"},(0,r.kt)(l.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},"opts = nil\n"))),(0,r.kt)(l.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "ibhagwan/fzf-lua",\n optional = true,\n keys = {\n { "<leader>fp", pick, desc = "Projects" },\n },\n}\n')))),(0,r.kt)("h2",{id:"alpha-nvim-optional"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/goolord/alpha-nvim"},"alpha-nvim")," ",(0,r.kt)("em",{parentName:"h2"},"(optional)")),(0,r.kt)(o.Z,{mdxType:"Tabs"},(0,r.kt)(l.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = function(_, dashboard)\n local button = dashboard.button("P", "\uf401 " .. " Projects (util.project)", pick)\n button.opts.hl = "AlphaButtons"\n button.opts.hl_shortcut = "AlphaShortcut"\n table.insert(dashboard.section.buttons.val, 4, button)\nend\n'))),(0,r.kt)(l.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "goolord/alpha-nvim",\n optional = true,\n opts = function(_, dashboard)\n local button = dashboard.button("P", "\uf401 " .. " Projects (util.project)", pick)\n button.opts.hl = "AlphaButtons"\n button.opts.hl_shortcut = "AlphaShortcut"\n table.insert(dashboard.section.buttons.val, 4, button)\n end,\n}\n')))),(0,r.kt)("h2",{id:"ministarter-optional"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/nvim-mini/mini.starter"},"mini.starter")," ",(0,r.kt)("em",{parentName:"h2"},"(optional)")),(0,r.kt)(o.Z,{mdxType:"Tabs"},(0,r.kt)(l.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = function(_, opts)\n local items = {\n {\n name = "Projects (util.project)",\n action = pick,\n section = string.rep(" ", 22) .. "Telescope",\n },\n }\n vim.list_extend(opts.items, items)\nend\n'))),(0,r.kt)(l.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "nvim-mini/mini.starter",\n optional = true,\n opts = function(_, opts)\n local items = {\n {\n name = "Projects (util.project)",\n action = pick,\n section = string.rep(" ", 22) .. "Telescope",\n },\n }\n vim.list_extend(opts.items, items)\n end,\n}\n')))),(0,r.kt)("h2",{id:"dashboard-nvim-optional"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/nvimdev/dashboard-nvim"},"dashboard-nvim")," ",(0,r.kt)("em",{parentName:"h2"},"(optional)")),(0,r.kt)(o.Z,{mdxType:"Tabs"},(0,r.kt)(l.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = function(_, opts)\n if not vim.tbl_get(opts, "config", "center") then\n return\n end\n local projects = {\n action = pick,\n desc = " Projects (util.project)",\n icon = "\uf502 ",\n key = "P",\n }\n\n projects.desc = projects.desc .. string.rep(" ", 43 - #projects.desc)\n projects.key_format = " %s"\n\n table.insert(opts.config.center, 3, projects)\nend\n'))),(0,r.kt)(l.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "nvimdev/dashboard-nvim",\n optional = true,\n opts = function(_, opts)\n if not vim.tbl_get(opts, "config", "center") then\n return\n end\n local projects = {\n action = pick,\n desc = " Projects (util.project)",\n icon = "\uf502 ",\n key = "P",\n }\n\n projects.desc = projects.desc .. string.rep(" ", 43 - #projects.desc)\n projects.key_format = " %s"\n\n table.insert(opts.config.center, 3, projects)\n end,\n}\n')))),(0,r.kt)("h2",{id:"snacksnvim-optional"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/folke/snacks.nvim"},"snacks.nvim")," ",(0,r.kt)("em",{parentName:"h2"},"(optional)")),(0,r.kt)(o.Z,{mdxType:"Tabs"},(0,r.kt)(l.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = function(_, opts)\n table.insert(opts.dashboard.preset.keys, 3, {\n action = pick,\n desc = "Projects (util.project)",\n icon = "\uf502 ",\n key = "P",\n })\nend\n'))),(0,r.kt)(l.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "folke/snacks.nvim",\n optional = true,\n opts = function(_, opts)\n table.insert(opts.dashboard.preset.keys, 3, {\n action = pick,\n desc = "Projects (util.project)",\n icon = "\uf502 ",\n key = "P",\n })\n end,\n}\n')))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/5525.98422c1e.js b/assets/js/5525.98422c1e.js new file mode 100644 index 0000000000..7113fea50b --- /dev/null +++ b/assets/js/5525.98422c1e.js @@ -0,0 +1 @@ +(self.webpackChunklazyvim=self.webpackChunklazyvim||[]).push([[5525],{5525:()=>{}}]); \ No newline at end of file diff --git a/assets/js/5566dcf8.2e287695.js b/assets/js/5566dcf8.2e287695.js new file mode 100644 index 0000000000..305110299f --- /dev/null +++ b/assets/js/5566dcf8.2e287695.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklazyvim=self.webpackChunklazyvim||[]).push([[3213],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>f});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function l(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function u(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var s=r.createContext({}),i=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},c=function(e){var t=i(e.components);return r.createElement(s.Provider,{value:t},e.children)},m="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,s=e.parentName,c=u(e,["components","mdxType","originalType","parentName"]),m=i(n),d=a,f=m["".concat(s,".").concat(d)]||m[d]||p[d]||o;return n?r.createElement(f,l(l({ref:t},c),{},{components:n})):r.createElement(f,l({ref:t},c))}));function f(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,l=new Array(o);l[0]=d;var u={};for(var s in t)hasOwnProperty.call(t,s)&&(u[s]=t[s]);u.originalType=e,u[m]="string"==typeof e?e:a,l[1]=u;for(var i=2;i<o;i++)l[i]=n[i];return r.createElement.apply(null,l)}return r.createElement.apply(null,n)}d.displayName="MDXCreateElement"},5162:(e,t,n)=>{n.d(t,{Z:()=>l});var r=n(7294),a=n(6010);const o="tabItem_Ymn6";function l(e){let{children:t,hidden:n,className:l}=e;return r.createElement("div",{role:"tabpanel",className:(0,a.Z)(o,l),hidden:n},t)}},4866:(e,t,n)=>{n.d(t,{Z:()=>w});var r=n(7462),a=n(7294),o=n(6010),l=n(2466),u=n(6550),s=n(1980),i=n(7392),c=n(12);function m(e){return function(e){return a.Children.map(e,(e=>{if(!e||(0,a.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:t,label:n,attributes:r,default:a}}=e;return{value:t,label:n,attributes:r,default:a}}))}function p(e){const{values:t,children:n}=e;return(0,a.useMemo)((()=>{const e=t??m(n);return function(e){const t=(0,i.l)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[t,n])}function d(e){let{value:t,tabValues:n}=e;return n.some((e=>e.value===t))}function f(e){let{queryString:t=!1,groupId:n}=e;const r=(0,u.k6)(),o=function(e){let{queryString:t=!1,groupId:n}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!n)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return n??null}({queryString:t,groupId:n});return[(0,s._X)(o),(0,a.useCallback)((e=>{if(!o)return;const t=new URLSearchParams(r.location.search);t.set(o,e),r.replace({...r.location,search:t.toString()})}),[o,r])]}function b(e){const{defaultValue:t,queryString:n=!1,groupId:r}=e,o=p(e),[l,u]=(0,a.useState)((()=>function(e){let{defaultValue:t,tabValues:n}=e;if(0===n.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(t){if(!d({value:t,tabValues:n}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${n.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const r=n.find((e=>e.default))??n[0];if(!r)throw new Error("Unexpected error: 0 tabValues");return r.value}({defaultValue:t,tabValues:o}))),[s,i]=f({queryString:n,groupId:r}),[m,b]=function(e){let{groupId:t}=e;const n=function(e){return e?`docusaurus.tab.${e}`:null}(t),[r,o]=(0,c.Nk)(n);return[r,(0,a.useCallback)((e=>{n&&o.set(e)}),[n,o])]}({groupId:r}),v=(()=>{const e=s??m;return d({value:e,tabValues:o})?e:null})();(0,a.useLayoutEffect)((()=>{v&&u(v)}),[v]);return{selectedValue:l,selectValue:(0,a.useCallback)((e=>{if(!d({value:e,tabValues:o}))throw new Error(`Can't select invalid tab value=${e}`);u(e),i(e),b(e)}),[i,b,o]),tabValues:o}}var v=n(2389);const h="tabList__CuJ",y="tabItem_LNqP";function g(e){let{className:t,block:n,selectedValue:u,selectValue:s,tabValues:i}=e;const c=[],{blockElementScrollPositionUntilNextRender:m}=(0,l.o5)(),p=e=>{const t=e.currentTarget,n=c.indexOf(t),r=i[n].value;r!==u&&(m(t),s(r))},d=e=>{let t=null;switch(e.key){case"Enter":p(e);break;case"ArrowRight":{const n=c.indexOf(e.currentTarget)+1;t=c[n]??c[0];break}case"ArrowLeft":{const n=c.indexOf(e.currentTarget)-1;t=c[n]??c[c.length-1];break}}t?.focus()};return a.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,o.Z)("tabs",{"tabs--block":n},t)},i.map((e=>{let{value:t,label:n,attributes:l}=e;return a.createElement("li",(0,r.Z)({role:"tab",tabIndex:u===t?0:-1,"aria-selected":u===t,key:t,ref:e=>c.push(e),onKeyDown:d,onClick:p},l,{className:(0,o.Z)("tabs__item",y,l?.className,{"tabs__item--active":u===t})}),n??t)})))}function k(e){let{lazy:t,children:n,selectedValue:r}=e;const o=(Array.isArray(n)?n:[n]).filter(Boolean);if(t){const e=o.find((e=>e.props.value===r));return e?(0,a.cloneElement)(e,{className:"margin-top--md"}):null}return a.createElement("div",{className:"margin-top--md"},o.map(((e,t)=>(0,a.cloneElement)(e,{key:t,hidden:e.props.value!==r}))))}function T(e){const t=b(e);return a.createElement("div",{className:(0,o.Z)("tabs-container",h)},a.createElement(g,(0,r.Z)({},e,t)),a.createElement(k,(0,r.Z)({},e,t)))}function w(e){const t=(0,v.Z)();return a.createElement(T,(0,r.Z)({key:String(t)},e))}},5133:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>s,default:()=>d,frontMatter:()=>u,metadata:()=>i,toc:()=>m});var r=n(7462),a=(n(7294),n(3905)),o=n(4866),l=n(5162);const u={},s="Black Formatter",i={unversionedId:"extras/formatting/black",id:"extras/formatting/black",title:"Black Formatter",description:"You can enable the extra with the :LazyExtras command.",source:"@site/docs/extras/formatting/black.md",sourceDirName:"extras/formatting",slug:"/extras/formatting/black",permalink:"/extras/formatting/black",draft:!1,editUrl:"https://github.com/LazyVim/lazyvim.github.io/tree/main/docs/extras/formatting/black.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Biome",permalink:"/extras/formatting/biome"},next:{title:"Prettier",permalink:"/extras/formatting/prettier"}},c={},m=[{value:"mason.nvim",id:"masonnvim",level:2},{value:"none-ls.nvim <em>(optional)</em>",id:"none-lsnvim-optional",level:2},{value:"conform.nvim <em>(optional)</em>",id:"conformnvim-optional",level:2}],p={toc:m};function d(e){let{components:t,...n}=e;return(0,a.kt)("wrapper",(0,r.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"black-formatter"},"Black Formatter"),(0,a.kt)("admonition",{type:"info"},(0,a.kt)("p",{parentName:"admonition"},"You can enable the extra with the ",(0,a.kt)("inlineCode",{parentName:"p"},":LazyExtras")," command.\nPlugins marked as optional will only be configured if they are installed.")),(0,a.kt)("p",null,"Below you can find a list of included plugins and their default settings."),(0,a.kt)("admonition",{type:"caution"},(0,a.kt)("p",{parentName:"admonition"},"You don't need to copy the default settings to your config.\nThey are only shown here for reference.")),(0,a.kt)("h2",{id:"masonnvim"},(0,a.kt)("a",{parentName:"h2",href:"https://github.com/mason-org/mason.nvim"},"mason.nvim")),(0,a.kt)(o.Z,{mdxType:"Tabs"},(0,a.kt)(l.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'opts = function(_, opts)\n table.insert(opts.ensure_installed, "black")\nend\n'))),(0,a.kt)(l.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "mason-org/mason.nvim",\n opts = function(_, opts)\n table.insert(opts.ensure_installed, "black")\n end,\n}\n')))),(0,a.kt)("h2",{id:"none-lsnvim-optional"},(0,a.kt)("a",{parentName:"h2",href:"https://github.com/nvimtools/none-ls.nvim"},"none-ls.nvim")," ",(0,a.kt)("em",{parentName:"h2"},"(optional)")),(0,a.kt)(o.Z,{mdxType:"Tabs"},(0,a.kt)(l.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'opts = function(_, opts)\n local nls = require("null-ls")\n opts.sources = opts.sources or {}\n table.insert(opts.sources, nls.builtins.formatting.black)\nend\n'))),(0,a.kt)(l.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "nvimtools/none-ls.nvim",\n optional = true,\n opts = function(_, opts)\n local nls = require("null-ls")\n opts.sources = opts.sources or {}\n table.insert(opts.sources, nls.builtins.formatting.black)\n end,\n}\n')))),(0,a.kt)("h2",{id:"conformnvim-optional"},(0,a.kt)("a",{parentName:"h2",href:"https://github.com/stevearc/conform.nvim"},"conform.nvim")," ",(0,a.kt)("em",{parentName:"h2"},"(optional)")),(0,a.kt)(o.Z,{mdxType:"Tabs"},(0,a.kt)(l.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'opts = {\n formatters_by_ft = {\n ["python"] = { "black" },\n },\n}\n'))),(0,a.kt)(l.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "stevearc/conform.nvim",\n optional = true,\n opts = {\n formatters_by_ft = {\n ["python"] = { "black" },\n },\n },\n}\n')))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/595ac6db.862cb9c8.js b/assets/js/595ac6db.862cb9c8.js new file mode 100644 index 0000000000..7442b0246c --- /dev/null +++ b/assets/js/595ac6db.862cb9c8.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklazyvim=self.webpackChunklazyvim||[]).push([[6598],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>v});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function s(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?l(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):l(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function o(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},l=Object.keys(e);for(r=0;r<l.length;r++)n=l[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r<l.length;r++)n=l[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var u=r.createContext({}),i=function(e){var t=r.useContext(u),n=t;return e&&(n="function"==typeof e?e(t):s(s({},t),e)),n},c=function(e){var t=i(e.components);return r.createElement(u.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,l=e.originalType,u=e.parentName,c=o(e,["components","mdxType","originalType","parentName"]),p=i(n),d=a,v=p["".concat(u,".").concat(d)]||p[d]||m[d]||l;return n?r.createElement(v,s(s({ref:t},c),{},{components:n})):r.createElement(v,s({ref:t},c))}));function v(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var l=n.length,s=new Array(l);s[0]=d;var o={};for(var u in t)hasOwnProperty.call(t,u)&&(o[u]=t[u]);o.originalType=e,o[p]="string"==typeof e?e:a,s[1]=o;for(var i=2;i<l;i++)s[i]=n[i];return r.createElement.apply(null,s)}return r.createElement.apply(null,n)}d.displayName="MDXCreateElement"},5162:(e,t,n)=>{n.d(t,{Z:()=>s});var r=n(7294),a=n(6010);const l="tabItem_Ymn6";function s(e){let{children:t,hidden:n,className:s}=e;return r.createElement("div",{role:"tabpanel",className:(0,a.Z)(l,s),hidden:n},t)}},4866:(e,t,n)=>{n.d(t,{Z:()=>w});var r=n(7462),a=n(7294),l=n(6010),s=n(2466),o=n(6550),u=n(1980),i=n(7392),c=n(12);function p(e){return function(e){return a.Children.map(e,(e=>{if(!e||(0,a.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:t,label:n,attributes:r,default:a}}=e;return{value:t,label:n,attributes:r,default:a}}))}function m(e){const{values:t,children:n}=e;return(0,a.useMemo)((()=>{const e=t??p(n);return function(e){const t=(0,i.l)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[t,n])}function d(e){let{value:t,tabValues:n}=e;return n.some((e=>e.value===t))}function v(e){let{queryString:t=!1,groupId:n}=e;const r=(0,o.k6)(),l=function(e){let{queryString:t=!1,groupId:n}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!n)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return n??null}({queryString:t,groupId:n});return[(0,u._X)(l),(0,a.useCallback)((e=>{if(!l)return;const t=new URLSearchParams(r.location.search);t.set(l,e),r.replace({...r.location,search:t.toString()})}),[l,r])]}function f(e){const{defaultValue:t,queryString:n=!1,groupId:r}=e,l=m(e),[s,o]=(0,a.useState)((()=>function(e){let{defaultValue:t,tabValues:n}=e;if(0===n.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(t){if(!d({value:t,tabValues:n}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${n.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const r=n.find((e=>e.default))??n[0];if(!r)throw new Error("Unexpected error: 0 tabValues");return r.value}({defaultValue:t,tabValues:l}))),[u,i]=v({queryString:n,groupId:r}),[p,f]=function(e){let{groupId:t}=e;const n=function(e){return e?`docusaurus.tab.${e}`:null}(t),[r,l]=(0,c.Nk)(n);return[r,(0,a.useCallback)((e=>{n&&l.set(e)}),[n,l])]}({groupId:r}),g=(()=>{const e=u??p;return d({value:e,tabValues:l})?e:null})();(0,a.useLayoutEffect)((()=>{g&&o(g)}),[g]);return{selectedValue:s,selectValue:(0,a.useCallback)((e=>{if(!d({value:e,tabValues:l}))throw new Error(`Can't select invalid tab value=${e}`);o(e),i(e),f(e)}),[i,f,l]),tabValues:l}}var g=n(2389);const b="tabList__CuJ",y="tabItem_LNqP";function h(e){let{className:t,block:n,selectedValue:o,selectValue:u,tabValues:i}=e;const c=[],{blockElementScrollPositionUntilNextRender:p}=(0,s.o5)(),m=e=>{const t=e.currentTarget,n=c.indexOf(t),r=i[n].value;r!==o&&(p(t),u(r))},d=e=>{let t=null;switch(e.key){case"Enter":m(e);break;case"ArrowRight":{const n=c.indexOf(e.currentTarget)+1;t=c[n]??c[0];break}case"ArrowLeft":{const n=c.indexOf(e.currentTarget)-1;t=c[n]??c[c.length-1];break}}t?.focus()};return a.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,l.Z)("tabs",{"tabs--block":n},t)},i.map((e=>{let{value:t,label:n,attributes:s}=e;return a.createElement("li",(0,r.Z)({role:"tab",tabIndex:o===t?0:-1,"aria-selected":o===t,key:t,ref:e=>c.push(e),onKeyDown:d,onClick:m},s,{className:(0,l.Z)("tabs__item",y,s?.className,{"tabs__item--active":o===t})}),n??t)})))}function k(e){let{lazy:t,children:n,selectedValue:r}=e;const l=(Array.isArray(n)?n:[n]).filter(Boolean);if(t){const e=l.find((e=>e.props.value===r));return e?(0,a.cloneElement)(e,{className:"margin-top--md"}):null}return a.createElement("div",{className:"margin-top--md"},l.map(((e,t)=>(0,a.cloneElement)(e,{key:t,hidden:e.props.value!==r}))))}function x(e){const t=f(e);return a.createElement("div",{className:(0,l.Z)("tabs-container",b)},a.createElement(h,(0,r.Z)({},e,t)),a.createElement(k,(0,r.Z)({},e,t)))}function w(e){const t=(0,g.Z)();return a.createElement(x,(0,r.Z)({key:String(t)},e))}},9361:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>u,default:()=>d,frontMatter:()=>o,metadata:()=>i,toc:()=>p});var r=n(7462),a=(n(7294),n(3905)),l=n(4866),s=n(5162);const o={},u="Vue",i={unversionedId:"extras/lang/vue",id:"extras/lang/vue",title:"Vue",description:"You can enable the extra with the :LazyExtras command.",source:"@site/docs/extras/lang/vue.md",sourceDirName:"extras/lang",slug:"/extras/lang/vue",permalink:"/extras/lang/vue",draft:!1,editUrl:"https://github.com/LazyVim/lazyvim.github.io/tree/main/docs/extras/lang/vue.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Typst",permalink:"/extras/lang/typst"},next:{title:"YAML",permalink:"/extras/lang/yaml"}},c={},p=[{value:"Includes the following extras",id:"includes-the-following-extras",level:3},{value:"nvim-treesitter",id:"nvim-treesitter",level:2},{value:"nvim-lspconfig",id:"nvim-lspconfig",level:2},{value:"nvim-lspconfig",id:"nvim-lspconfig-1",level:2}],m={toc:p};function d(e){let{components:t,...n}=e;return(0,a.kt)("wrapper",(0,r.Z)({},m,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"vue"},(0,a.kt)("inlineCode",{parentName:"h1"},"Vue")),(0,a.kt)("admonition",{type:"info"},(0,a.kt)("p",{parentName:"admonition"},"You can enable the extra with the ",(0,a.kt)("inlineCode",{parentName:"p"},":LazyExtras")," command.\nPlugins marked as optional will only be configured if they are installed.")),(0,a.kt)("p",null,"Below you can find a list of included plugins and their default settings."),(0,a.kt)("admonition",{type:"caution"},(0,a.kt)("p",{parentName:"admonition"},"You don't need to copy the default settings to your config.\nThey are only shown here for reference.")),(0,a.kt)("h3",{id:"includes-the-following-extras"},"Includes the following extras"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"/extras/lang/typescript"},"lang.typescript"))),(0,a.kt)("h2",{id:"nvim-treesitter"},(0,a.kt)("a",{parentName:"h2",href:"https://github.com/nvim-treesitter/nvim-treesitter"},"nvim-treesitter")),(0,a.kt)(l.Z,{mdxType:"Tabs"},(0,a.kt)(s.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'opts = { ensure_installed = { "vue", "css" } }\n'))),(0,a.kt)(s.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "nvim-treesitter/nvim-treesitter",\n opts = { ensure_installed = { "vue", "css" } },\n}\n')))),(0,a.kt)("h2",{id:"nvim-lspconfig"},(0,a.kt)("a",{parentName:"h2",href:"https://github.com/neovim/nvim-lspconfig"},"nvim-lspconfig")),(0,a.kt)("p",null," Add LSP servers"),(0,a.kt)(l.Z,{mdxType:"Tabs"},(0,a.kt)(s.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},"opts = {\n servers = {\n vue_ls = {},\n vtsls = {},\n },\n}\n"))),(0,a.kt)(s.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "neovim/nvim-lspconfig",\n opts = {\n servers = {\n vue_ls = {},\n vtsls = {},\n },\n },\n}\n')))),(0,a.kt)("h2",{id:"nvim-lspconfig-1"},(0,a.kt)("a",{parentName:"h2",href:"https://github.com/neovim/nvim-lspconfig"},"nvim-lspconfig")),(0,a.kt)("p",null," Configure tsserver plugin"),(0,a.kt)(l.Z,{mdxType:"Tabs"},(0,a.kt)(s.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'opts = function(_, opts)\n table.insert(opts.servers.vtsls.filetypes, "vue")\n LazyVim.extend(opts.servers.vtsls, "settings.vtsls.tsserver.globalPlugins", {\n {\n name = "@vue/typescript-plugin",\n location = LazyVim.get_pkg_path("vue-language-server", "/node_modules/@vue/language-server"),\n languages = { "vue" },\n configNamespace = "typescript",\n enableForWorkspaceTypeScriptVersions = true,\n },\n })\nend\n'))),(0,a.kt)(s.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "neovim/nvim-lspconfig",\n opts = function(_, opts)\n table.insert(opts.servers.vtsls.filetypes, "vue")\n LazyVim.extend(opts.servers.vtsls, "settings.vtsls.tsserver.globalPlugins", {\n {\n name = "@vue/typescript-plugin",\n location = LazyVim.get_pkg_path("vue-language-server", "/node_modules/@vue/language-server"),\n languages = { "vue" },\n configNamespace = "typescript",\n enableForWorkspaceTypeScriptVersions = true,\n },\n })\n end,\n}\n')))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/59876f77.eb18d73f.js b/assets/js/59876f77.eb18d73f.js new file mode 100644 index 0000000000..d0dfb621b5 --- /dev/null +++ b/assets/js/59876f77.eb18d73f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklazyvim=self.webpackChunklazyvim||[]).push([[4136],{3905:(e,n,t)=>{t.d(n,{Zo:()=>c,kt:()=>d});var r=t(7294);function a(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function o(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function l(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?o(Object(t),!0).forEach((function(n){a(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):o(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function s(e,n){if(null==e)return{};var t,r,a=function(e,n){if(null==e)return{};var t,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)t=o[r],n.indexOf(t)>=0||(a[t]=e[t]);return a}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)t=o[r],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var i=r.createContext({}),u=function(e){var n=r.useContext(i),t=n;return e&&(t="function"==typeof e?e(n):l(l({},n),e)),t},c=function(e){var n=u(e.components);return r.createElement(i.Provider,{value:n},e.children)},m="mdxType",p={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},f=r.forwardRef((function(e,n){var t=e.components,a=e.mdxType,o=e.originalType,i=e.parentName,c=s(e,["components","mdxType","originalType","parentName"]),m=u(t),f=a,d=m["".concat(i,".").concat(f)]||m[f]||p[f]||o;return t?r.createElement(d,l(l({ref:n},c),{},{components:t})):r.createElement(d,l({ref:n},c))}));function d(e,n){var t=arguments,a=n&&n.mdxType;if("string"==typeof e||a){var o=t.length,l=new Array(o);l[0]=f;var s={};for(var i in n)hasOwnProperty.call(n,i)&&(s[i]=n[i]);s.originalType=e,s[m]="string"==typeof e?e:a,l[1]=s;for(var u=2;u<o;u++)l[u]=t[u];return r.createElement.apply(null,l)}return r.createElement.apply(null,t)}f.displayName="MDXCreateElement"},5162:(e,n,t)=>{t.d(n,{Z:()=>l});var r=t(7294),a=t(6010);const o="tabItem_Ymn6";function l(e){let{children:n,hidden:t,className:l}=e;return r.createElement("div",{role:"tabpanel",className:(0,a.Z)(o,l),hidden:t},n)}},4866:(e,n,t)=>{t.d(n,{Z:()=>x});var r=t(7462),a=t(7294),o=t(6010),l=t(2466),s=t(6550),i=t(1980),u=t(7392),c=t(12);function m(e){return function(e){return a.Children.map(e,(e=>{if(!e||(0,a.isValidElement)(e)&&function(e){const{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:n,label:t,attributes:r,default:a}}=e;return{value:n,label:t,attributes:r,default:a}}))}function p(e){const{values:n,children:t}=e;return(0,a.useMemo)((()=>{const e=n??m(t);return function(e){const n=(0,u.l)(e,((e,n)=>e.value===n.value));if(n.length>0)throw new Error(`Docusaurus error: Duplicate values "${n.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[n,t])}function f(e){let{value:n,tabValues:t}=e;return t.some((e=>e.value===n))}function d(e){let{queryString:n=!1,groupId:t}=e;const r=(0,s.k6)(),o=function(e){let{queryString:n=!1,groupId:t}=e;if("string"==typeof n)return n;if(!1===n)return null;if(!0===n&&!t)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return t??null}({queryString:n,groupId:t});return[(0,i._X)(o),(0,a.useCallback)((e=>{if(!o)return;const n=new URLSearchParams(r.location.search);n.set(o,e),r.replace({...r.location,search:n.toString()})}),[o,r])]}function b(e){const{defaultValue:n,queryString:t=!1,groupId:r}=e,o=p(e),[l,s]=(0,a.useState)((()=>function(e){let{defaultValue:n,tabValues:t}=e;if(0===t.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(n){if(!f({value:n,tabValues:t}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${n}" but none of its children has the corresponding value. Available values are: ${t.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return n}const r=t.find((e=>e.default))??t[0];if(!r)throw new Error("Unexpected error: 0 tabValues");return r.value}({defaultValue:n,tabValues:o}))),[i,u]=d({queryString:t,groupId:r}),[m,b]=function(e){let{groupId:n}=e;const t=function(e){return e?`docusaurus.tab.${e}`:null}(n),[r,o]=(0,c.Nk)(t);return[r,(0,a.useCallback)((e=>{t&&o.set(e)}),[t,o])]}({groupId:r}),v=(()=>{const e=i??m;return f({value:e,tabValues:o})?e:null})();(0,a.useLayoutEffect)((()=>{v&&s(v)}),[v]);return{selectedValue:l,selectValue:(0,a.useCallback)((e=>{if(!f({value:e,tabValues:o}))throw new Error(`Can't select invalid tab value=${e}`);s(e),u(e),b(e)}),[u,b,o]),tabValues:o}}var v=t(2389);const h="tabList__CuJ",y="tabItem_LNqP";function g(e){let{className:n,block:t,selectedValue:s,selectValue:i,tabValues:u}=e;const c=[],{blockElementScrollPositionUntilNextRender:m}=(0,l.o5)(),p=e=>{const n=e.currentTarget,t=c.indexOf(n),r=u[t].value;r!==s&&(m(n),i(r))},f=e=>{let n=null;switch(e.key){case"Enter":p(e);break;case"ArrowRight":{const t=c.indexOf(e.currentTarget)+1;n=c[t]??c[0];break}case"ArrowLeft":{const t=c.indexOf(e.currentTarget)-1;n=c[t]??c[c.length-1];break}}n?.focus()};return a.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,o.Z)("tabs",{"tabs--block":t},n)},u.map((e=>{let{value:n,label:t,attributes:l}=e;return a.createElement("li",(0,r.Z)({role:"tab",tabIndex:s===n?0:-1,"aria-selected":s===n,key:n,ref:e=>c.push(e),onKeyDown:f,onClick:p},l,{className:(0,o.Z)("tabs__item",y,l?.className,{"tabs__item--active":s===n})}),t??n)})))}function k(e){let{lazy:n,children:t,selectedValue:r}=e;const o=(Array.isArray(t)?t:[t]).filter(Boolean);if(n){const e=o.find((e=>e.props.value===r));return e?(0,a.cloneElement)(e,{className:"margin-top--md"}):null}return a.createElement("div",{className:"margin-top--md"},o.map(((e,n)=>(0,a.cloneElement)(e,{key:n,hidden:e.props.value!==r}))))}function w(e){const n=b(e);return a.createElement("div",{className:(0,o.Z)("tabs-container",h)},a.createElement(g,(0,r.Z)({},e,n)),a.createElement(k,(0,r.Z)({},e,n)))}function x(e){const n=(0,v.Z)();return a.createElement(w,(0,r.Z)({key:String(n)},e))}},6568:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>i,default:()=>f,frontMatter:()=>s,metadata:()=>u,toc:()=>m});var r=t(7462),a=(t(7294),t(3905)),o=t(4866),l=t(5162);const s={},i="none-ls",u={unversionedId:"extras/lsp/none-ls",id:"extras/lsp/none-ls",title:"none-ls",description:"You can enable the extra with the :LazyExtras command.",source:"@site/docs/extras/lsp/none-ls.md",sourceDirName:"extras/lsp",slug:"/extras/lsp/none-ls",permalink:"/extras/lsp/none-ls",draft:!1,editUrl:"https://github.com/LazyVim/lazyvim.github.io/tree/main/docs/extras/lsp/none-ls.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Neoconf",permalink:"/extras/lsp/neoconf"},next:{title:"Neotest",permalink:"/extras/test/core"}},c={},m=[{value:"none-ls.nvim",id:"none-lsnvim",level:2},{value:"mason.nvim",id:"masonnvim",level:2}],p={toc:m};function f(e){let{components:n,...t}=e;return(0,a.kt)("wrapper",(0,r.Z)({},p,t,{components:n,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"none-ls"},"none-ls"),(0,a.kt)("admonition",{type:"info"},(0,a.kt)("p",{parentName:"admonition"},"You can enable the extra with the ",(0,a.kt)("inlineCode",{parentName:"p"},":LazyExtras")," command.\nPlugins marked as optional will only be configured if they are installed.")),(0,a.kt)("p",null,"Below you can find a list of included plugins and their default settings."),(0,a.kt)("admonition",{type:"caution"},(0,a.kt)("p",{parentName:"admonition"},"You don't need to copy the default settings to your config.\nThey are only shown here for reference.")),(0,a.kt)("h2",{id:"none-lsnvim"},(0,a.kt)("a",{parentName:"h2",href:"https://github.com/nvimtools/none-ls.nvim"},"none-ls.nvim")),(0,a.kt)("p",null," none-ls"),(0,a.kt)(o.Z,{mdxType:"Tabs"},(0,a.kt)(l.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'opts = function(_, opts)\n local nls = require("null-ls")\n opts.root_dir = opts.root_dir\n or require("null-ls.utils").root_pattern(".null-ls-root", ".neoconf.json", "Makefile", ".git")\n opts.sources = vim.list_extend(opts.sources or {}, {\n nls.builtins.formatting.fish_indent,\n nls.builtins.diagnostics.fish,\n nls.builtins.formatting.stylua,\n nls.builtins.formatting.shfmt,\n })\nend\n'))),(0,a.kt)(l.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "nvimtools/none-ls.nvim",\n event = "LazyFile",\n dependencies = { "mason.nvim" },\n init = function()\n LazyVim.on_very_lazy(function()\n -- register the formatter with LazyVim\n LazyVim.format.register({\n name = "none-ls.nvim",\n priority = 200, -- set higher than conform, the builtin formatter\n primary = true,\n format = function(buf)\n return LazyVim.lsp.format({\n bufnr = buf,\n filter = function(client)\n return client.name == "null-ls"\n end,\n })\n end,\n sources = function(buf)\n local ret = require("null-ls.sources").get_available(vim.bo[buf].filetype, "NULL_LS_FORMATTING") or {}\n return vim.tbl_map(function(source)\n return source.name\n end, ret)\n end,\n })\n end)\n end,\n opts = function(_, opts)\n local nls = require("null-ls")\n opts.root_dir = opts.root_dir\n or require("null-ls.utils").root_pattern(".null-ls-root", ".neoconf.json", "Makefile", ".git")\n opts.sources = vim.list_extend(opts.sources or {}, {\n nls.builtins.formatting.fish_indent,\n nls.builtins.diagnostics.fish,\n nls.builtins.formatting.stylua,\n nls.builtins.formatting.shfmt,\n })\n end,\n}\n')))),(0,a.kt)("h2",{id:"masonnvim"},(0,a.kt)("a",{parentName:"h2",href:"https://github.com/mason-org/mason.nvim"},"mason.nvim")),(0,a.kt)(o.Z,{mdxType:"Tabs"},(0,a.kt)(l.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},"opts = nil\n"))),(0,a.kt)(l.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'{ "mason.nvim" }\n')))))}f.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/59b8077e.b7ba8c82.js b/assets/js/59b8077e.b7ba8c82.js new file mode 100644 index 0000000000..bc9ef6938d --- /dev/null +++ b/assets/js/59b8077e.b7ba8c82.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklazyvim=self.webpackChunklazyvim||[]).push([[6592],{3905:(e,n,t)=>{t.d(n,{Zo:()=>c,kt:()=>f});var a=t(7294);function r(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function i(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,a)}return t}function l(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?i(Object(t),!0).forEach((function(n){r(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):i(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function o(e,n){if(null==e)return{};var t,a,r=function(e,n){if(null==e)return{};var t,a,r={},i=Object.keys(e);for(a=0;a<i.length;a++)t=i[a],n.indexOf(t)>=0||(r[t]=e[t]);return r}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a<i.length;a++)t=i[a],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(r[t]=e[t])}return r}var p=a.createContext({}),s=function(e){var n=a.useContext(p),t=n;return e&&(t="function"==typeof e?e(n):l(l({},n),e)),t},c=function(e){var n=s(e.components);return a.createElement(p.Provider,{value:n},e.children)},m="mdxType",u={inlineCode:"code",wrapper:function(e){var n=e.children;return a.createElement(a.Fragment,{},n)}},d=a.forwardRef((function(e,n){var t=e.components,r=e.mdxType,i=e.originalType,p=e.parentName,c=o(e,["components","mdxType","originalType","parentName"]),m=s(t),d=r,f=m["".concat(p,".").concat(d)]||m[d]||u[d]||i;return t?a.createElement(f,l(l({ref:n},c),{},{components:t})):a.createElement(f,l({ref:n},c))}));function f(e,n){var t=arguments,r=n&&n.mdxType;if("string"==typeof e||r){var i=t.length,l=new Array(i);l[0]=d;var o={};for(var p in n)hasOwnProperty.call(n,p)&&(o[p]=n[p]);o.originalType=e,o[m]="string"==typeof e?e:r,l[1]=o;for(var s=2;s<i;s++)l[s]=t[s];return a.createElement.apply(null,l)}return a.createElement.apply(null,t)}d.displayName="MDXCreateElement"},5162:(e,n,t)=>{t.d(n,{Z:()=>l});var a=t(7294),r=t(6010);const i="tabItem_Ymn6";function l(e){let{children:n,hidden:t,className:l}=e;return a.createElement("div",{role:"tabpanel",className:(0,r.Z)(i,l),hidden:t},n)}},4866:(e,n,t)=>{t.d(n,{Z:()=>T});var a=t(7462),r=t(7294),i=t(6010),l=t(2466),o=t(6550),p=t(1980),s=t(7392),c=t(12);function m(e){return function(e){return r.Children.map(e,(e=>{if(!e||(0,r.isValidElement)(e)&&function(e){const{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:n,label:t,attributes:a,default:r}}=e;return{value:n,label:t,attributes:a,default:r}}))}function u(e){const{values:n,children:t}=e;return(0,r.useMemo)((()=>{const e=n??m(t);return function(e){const n=(0,s.l)(e,((e,n)=>e.value===n.value));if(n.length>0)throw new Error(`Docusaurus error: Duplicate values "${n.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[n,t])}function d(e){let{value:n,tabValues:t}=e;return t.some((e=>e.value===n))}function f(e){let{queryString:n=!1,groupId:t}=e;const a=(0,o.k6)(),i=function(e){let{queryString:n=!1,groupId:t}=e;if("string"==typeof n)return n;if(!1===n)return null;if(!0===n&&!t)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return t??null}({queryString:n,groupId:t});return[(0,p._X)(i),(0,r.useCallback)((e=>{if(!i)return;const n=new URLSearchParams(a.location.search);n.set(i,e),a.replace({...a.location,search:n.toString()})}),[i,a])]}function h(e){const{defaultValue:n,queryString:t=!1,groupId:a}=e,i=u(e),[l,o]=(0,r.useState)((()=>function(e){let{defaultValue:n,tabValues:t}=e;if(0===t.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(n){if(!d({value:n,tabValues:t}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${n}" but none of its children has the corresponding value. Available values are: ${t.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return n}const a=t.find((e=>e.default))??t[0];if(!a)throw new Error("Unexpected error: 0 tabValues");return a.value}({defaultValue:n,tabValues:i}))),[p,s]=f({queryString:t,groupId:a}),[m,h]=function(e){let{groupId:n}=e;const t=function(e){return e?`docusaurus.tab.${e}`:null}(n),[a,i]=(0,c.Nk)(t);return[a,(0,r.useCallback)((e=>{t&&i.set(e)}),[t,i])]}({groupId:a}),b=(()=>{const e=p??m;return d({value:e,tabValues:i})?e:null})();(0,r.useLayoutEffect)((()=>{b&&o(b)}),[b]);return{selectedValue:l,selectValue:(0,r.useCallback)((e=>{if(!d({value:e,tabValues:i}))throw new Error(`Can't select invalid tab value=${e}`);o(e),s(e),h(e)}),[s,h,i]),tabValues:i}}var b=t(2389);const v="tabList__CuJ",y="tabItem_LNqP";function g(e){let{className:n,block:t,selectedValue:o,selectValue:p,tabValues:s}=e;const c=[],{blockElementScrollPositionUntilNextRender:m}=(0,l.o5)(),u=e=>{const n=e.currentTarget,t=c.indexOf(n),a=s[t].value;a!==o&&(m(n),p(a))},d=e=>{let n=null;switch(e.key){case"Enter":u(e);break;case"ArrowRight":{const t=c.indexOf(e.currentTarget)+1;n=c[t]??c[0];break}case"ArrowLeft":{const t=c.indexOf(e.currentTarget)-1;n=c[t]??c[c.length-1];break}}n?.focus()};return r.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,i.Z)("tabs",{"tabs--block":t},n)},s.map((e=>{let{value:n,label:t,attributes:l}=e;return r.createElement("li",(0,a.Z)({role:"tab",tabIndex:o===n?0:-1,"aria-selected":o===n,key:n,ref:e=>c.push(e),onKeyDown:d,onClick:u},l,{className:(0,i.Z)("tabs__item",y,l?.className,{"tabs__item--active":o===n})}),t??n)})))}function k(e){let{lazy:n,children:t,selectedValue:a}=e;const i=(Array.isArray(t)?t:[t]).filter(Boolean);if(n){const e=i.find((e=>e.props.value===a));return e?(0,r.cloneElement)(e,{className:"margin-top--md"}):null}return r.createElement("div",{className:"margin-top--md"},i.map(((e,n)=>(0,r.cloneElement)(e,{key:n,hidden:e.props.value!==a}))))}function w(e){const n=h(e);return r.createElement("div",{className:(0,i.Z)("tabs-container",v)},r.createElement(g,(0,a.Z)({},e,n)),r.createElement(k,(0,a.Z)({},e,n)))}function T(e){const n=(0,b.Z)();return r.createElement(w,(0,a.Z)({key:String(n)},e))}},5790:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>p,default:()=>d,frontMatter:()=>o,metadata:()=>s,toc:()=>m});var a=t(7462),r=(t(7294),t(3905)),i=t(4866),l=t(5162);const o={},p="Nvim-cmp",s={unversionedId:"extras/coding/nvim-cmp",id:"extras/coding/nvim-cmp",title:"Nvim-cmp",description:"You can enable the extra with the :LazyExtras command.",source:"@site/docs/extras/coding/nvim-cmp.md",sourceDirName:"extras/coding",slug:"/extras/coding/nvim-cmp",permalink:"/extras/coding/nvim-cmp",draft:!1,editUrl:"https://github.com/LazyVim/lazyvim.github.io/tree/main/docs/extras/coding/nvim-cmp.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Neogen",permalink:"/extras/coding/neogen"},next:{title:"yanky.nvim",permalink:"/extras/coding/yanky"}},c={},m=[{value:"nvim-cmp",id:"nvim-cmp-1",level:2},{value:"cmp-nvim-lsp",id:"cmp-nvim-lsp",level:2},{value:"cmp-buffer",id:"cmp-buffer",level:2},{value:"cmp-path",id:"cmp-path",level:2},{value:"nvim-cmp",id:"nvim-cmp-2",level:2},{value:"nvim-snippets",id:"nvim-snippets",level:2},{value:"friendly-snippets",id:"friendly-snippets",level:2}],u={toc:m};function d(e){let{components:n,...t}=e;return(0,r.kt)("wrapper",(0,a.Z)({},u,t,{components:n,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"nvim-cmp"},(0,r.kt)("inlineCode",{parentName:"h1"},"Nvim-cmp")),(0,r.kt)("admonition",{type:"info"},(0,r.kt)("p",{parentName:"admonition"},"You can enable the extra with the ",(0,r.kt)("inlineCode",{parentName:"p"},":LazyExtras")," command.\nPlugins marked as optional will only be configured if they are installed.")),(0,r.kt)("p",null,"Below you can find a list of included plugins and their default settings."),(0,r.kt)("admonition",{type:"caution"},(0,r.kt)("p",{parentName:"admonition"},"You don't need to copy the default settings to your config.\nThey are only shown here for reference.")),(0,r.kt)("h2",{id:"nvim-cmp-1"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/hrsh7th/nvim-cmp"},"nvim-cmp")),(0,r.kt)("p",null," Setup nvim-cmp"),(0,r.kt)(i.Z,{mdxType:"Tabs"},(0,r.kt)(l.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = function()\n -- Register nvim-cmp lsp capabilities\n vim.lsp.config("*", { capabilities = require("cmp_nvim_lsp").default_capabilities() })\n\n vim.api.nvim_set_hl(0, "CmpGhostText", { link = "Comment", default = true })\n local cmp = require("cmp")\n local defaults = require("cmp.config.default")()\n local auto_select = true\n return {\n auto_brackets = {}, -- configure any filetype to auto add brackets\n completion = {\n completeopt = "menu,menuone,noinsert" .. (auto_select and "" or ",noselect"),\n },\n preselect = auto_select and cmp.PreselectMode.Item or cmp.PreselectMode.None,\n mapping = cmp.mapping.preset.insert({\n ["<C-b>"] = cmp.mapping.scroll_docs(-4),\n ["<C-f>"] = cmp.mapping.scroll_docs(4),\n ["<C-n>"] = cmp.mapping.select_next_item({ behavior = cmp.SelectBehavior.Insert }),\n ["<C-p>"] = cmp.mapping.select_prev_item({ behavior = cmp.SelectBehavior.Insert }),\n ["<C-Space>"] = cmp.mapping.complete(),\n ["<CR>"] = LazyVim.cmp.confirm({ select = auto_select }),\n ["<C-y>"] = LazyVim.cmp.confirm({ select = true }),\n ["<S-CR>"] = LazyVim.cmp.confirm({ behavior = cmp.ConfirmBehavior.Replace }), -- Accept currently selected item. Set `select` to `false` to only confirm explicitly selected items.\n ["<C-CR>"] = function(fallback)\n cmp.abort()\n fallback()\n end,\n ["<tab>"] = function(fallback)\n return LazyVim.cmp.map({ "snippet_forward", "ai_nes", "ai_accept" }, fallback)()\n end,\n }),\n sources = cmp.config.sources({\n { name = "lazydev" },\n { name = "nvim_lsp" },\n { name = "path" },\n }, {\n { name = "buffer" },\n }),\n formatting = {\n format = function(entry, item)\n local icons = LazyVim.config.icons.kinds\n if icons[item.kind] then\n item.kind = icons[item.kind] .. item.kind\n end\n\n local widths = {\n abbr = vim.g.cmp_widths and vim.g.cmp_widths.abbr or 40,\n menu = vim.g.cmp_widths and vim.g.cmp_widths.menu or 30,\n }\n\n for key, width in pairs(widths) do\n if item[key] and vim.fn.strdisplaywidth(item[key]) > width then\n item[key] = vim.fn.strcharpart(item[key], 0, width - 1) .. "\u2026"\n end\n end\n\n return item\n end,\n },\n experimental = {\n -- only show ghost text when we show ai completions\n ghost_text = vim.g.ai_cmp and {\n hl_group = "CmpGhostText",\n } or false,\n },\n sorting = defaults.sorting,\n }\nend\n'))),(0,r.kt)(l.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "hrsh7th/nvim-cmp",\n version = false, -- last release is way too old\n event = "InsertEnter",\n dependencies = {\n "hrsh7th/cmp-nvim-lsp",\n "hrsh7th/cmp-buffer",\n "hrsh7th/cmp-path",\n },\n -- Not all LSP servers add brackets when completing a function.\n -- To better deal with this, LazyVim adds a custom option to cmp,\n -- that you can configure. For example:\n --\n -- ```lua\n -- opts = {\n -- auto_brackets = { "python" }\n -- }\n -- ```\n opts = function()\n -- Register nvim-cmp lsp capabilities\n vim.lsp.config("*", { capabilities = require("cmp_nvim_lsp").default_capabilities() })\n\n vim.api.nvim_set_hl(0, "CmpGhostText", { link = "Comment", default = true })\n local cmp = require("cmp")\n local defaults = require("cmp.config.default")()\n local auto_select = true\n return {\n auto_brackets = {}, -- configure any filetype to auto add brackets\n completion = {\n completeopt = "menu,menuone,noinsert" .. (auto_select and "" or ",noselect"),\n },\n preselect = auto_select and cmp.PreselectMode.Item or cmp.PreselectMode.None,\n mapping = cmp.mapping.preset.insert({\n ["<C-b>"] = cmp.mapping.scroll_docs(-4),\n ["<C-f>"] = cmp.mapping.scroll_docs(4),\n ["<C-n>"] = cmp.mapping.select_next_item({ behavior = cmp.SelectBehavior.Insert }),\n ["<C-p>"] = cmp.mapping.select_prev_item({ behavior = cmp.SelectBehavior.Insert }),\n ["<C-Space>"] = cmp.mapping.complete(),\n ["<CR>"] = LazyVim.cmp.confirm({ select = auto_select }),\n ["<C-y>"] = LazyVim.cmp.confirm({ select = true }),\n ["<S-CR>"] = LazyVim.cmp.confirm({ behavior = cmp.ConfirmBehavior.Replace }), -- Accept currently selected item. Set `select` to `false` to only confirm explicitly selected items.\n ["<C-CR>"] = function(fallback)\n cmp.abort()\n fallback()\n end,\n ["<tab>"] = function(fallback)\n return LazyVim.cmp.map({ "snippet_forward", "ai_nes", "ai_accept" }, fallback)()\n end,\n }),\n sources = cmp.config.sources({\n { name = "lazydev" },\n { name = "nvim_lsp" },\n { name = "path" },\n }, {\n { name = "buffer" },\n }),\n formatting = {\n format = function(entry, item)\n local icons = LazyVim.config.icons.kinds\n if icons[item.kind] then\n item.kind = icons[item.kind] .. item.kind\n end\n\n local widths = {\n abbr = vim.g.cmp_widths and vim.g.cmp_widths.abbr or 40,\n menu = vim.g.cmp_widths and vim.g.cmp_widths.menu or 30,\n }\n\n for key, width in pairs(widths) do\n if item[key] and vim.fn.strdisplaywidth(item[key]) > width then\n item[key] = vim.fn.strcharpart(item[key], 0, width - 1) .. "\u2026"\n end\n end\n\n return item\n end,\n },\n experimental = {\n -- only show ghost text when we show ai completions\n ghost_text = vim.g.ai_cmp and {\n hl_group = "CmpGhostText",\n } or false,\n },\n sorting = defaults.sorting,\n }\n end,\n main = "lazyvim.util.cmp",\n}\n')))),(0,r.kt)("h2",{id:"cmp-nvim-lsp"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/hrsh7th/cmp-nvim-lsp"},"cmp-nvim-lsp")),(0,r.kt)(i.Z,{mdxType:"Tabs"},(0,r.kt)(l.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},"opts = nil\n"))),(0,r.kt)(l.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "hrsh7th/cmp-nvim-lsp",\n "hrsh7th/cmp-buffer",\n "hrsh7th/cmp-path",\n}\n')))),(0,r.kt)("h2",{id:"cmp-buffer"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/hrsh7th/cmp-buffer"},"cmp-buffer")),(0,r.kt)(i.Z,{mdxType:"Tabs"},(0,r.kt)(l.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},"opts = nil\n"))),(0,r.kt)(l.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'"hrsh7th/cmp-buffer"\n')))),(0,r.kt)("h2",{id:"cmp-path"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/hrsh7th/cmp-path"},"cmp-path")),(0,r.kt)(i.Z,{mdxType:"Tabs"},(0,r.kt)(l.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},"opts = nil\n"))),(0,r.kt)(l.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'"hrsh7th/cmp-path"\n')))),(0,r.kt)("h2",{id:"nvim-cmp-2"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/hrsh7th/nvim-cmp"},"nvim-cmp")),(0,r.kt)("p",null," snippets"),(0,r.kt)(i.Z,{mdxType:"Tabs"},(0,r.kt)(l.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = function(_, opts)\n opts.snippet = {\n expand = function(item)\n return LazyVim.cmp.expand(item.body)\n end,\n }\n if LazyVim.has("nvim-snippets") then\n table.insert(opts.sources, { name = "snippets" })\n end\nend\n'))),(0,r.kt)(l.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "hrsh7th/nvim-cmp",\n dependencies = {\n {\n "garymjr/nvim-snippets",\n opts = {\n friendly_snippets = true,\n },\n dependencies = { "rafamadriz/friendly-snippets" },\n },\n },\n opts = function(_, opts)\n opts.snippet = {\n expand = function(item)\n return LazyVim.cmp.expand(item.body)\n end,\n }\n if LazyVim.has("nvim-snippets") then\n table.insert(opts.sources, { name = "snippets" })\n end\n end,\n}\n')))),(0,r.kt)("h2",{id:"nvim-snippets"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/garymjr/nvim-snippets"},"nvim-snippets")),(0,r.kt)(i.Z,{mdxType:"Tabs"},(0,r.kt)(l.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},"opts = {\n friendly_snippets = true,\n}\n"))),(0,r.kt)(l.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "garymjr/nvim-snippets",\n opts = {\n friendly_snippets = true,\n },\n dependencies = { "rafamadriz/friendly-snippets" },\n}\n')))),(0,r.kt)("h2",{id:"friendly-snippets"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/rafamadriz/friendly-snippets"},"friendly-snippets")),(0,r.kt)(i.Z,{mdxType:"Tabs"},(0,r.kt)(l.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},"opts = nil\n"))),(0,r.kt)(l.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{ "rafamadriz/friendly-snippets" }\n')))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/5a36f5e4.8c14c72a.js b/assets/js/5a36f5e4.8c14c72a.js new file mode 100644 index 0000000000..9c8998004d --- /dev/null +++ b/assets/js/5a36f5e4.8c14c72a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklazyvim=self.webpackChunklazyvim||[]).push([[6553],{3769:e=>{e.exports=JSON.parse('{"name":"docusaurus-plugin-content-docs","id":"default"}')}}]); \ No newline at end of file diff --git a/assets/js/5c89b5ec.cb0c6a5d.js b/assets/js/5c89b5ec.cb0c6a5d.js new file mode 100644 index 0000000000..86cc1a11b3 --- /dev/null +++ b/assets/js/5c89b5ec.cb0c6a5d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklazyvim=self.webpackChunklazyvim||[]).push([[284],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>f});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?l(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):l(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function s(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},l=Object.keys(e);for(r=0;r<l.length;r++)n=l[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r<l.length;r++)n=l[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var i=r.createContext({}),u=function(e){var t=r.useContext(i),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},c=function(e){var t=u(e.components);return r.createElement(i.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,l=e.originalType,i=e.parentName,c=s(e,["components","mdxType","originalType","parentName"]),p=u(n),d=a,f=p["".concat(i,".").concat(d)]||p[d]||m[d]||l;return n?r.createElement(f,o(o({ref:t},c),{},{components:n})):r.createElement(f,o({ref:t},c))}));function f(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var l=n.length,o=new Array(l);o[0]=d;var s={};for(var i in t)hasOwnProperty.call(t,i)&&(s[i]=t[i]);s.originalType=e,s[p]="string"==typeof e?e:a,o[1]=s;for(var u=2;u<l;u++)o[u]=n[u];return r.createElement.apply(null,o)}return r.createElement.apply(null,n)}d.displayName="MDXCreateElement"},5162:(e,t,n)=>{n.d(t,{Z:()=>o});var r=n(7294),a=n(6010);const l="tabItem_Ymn6";function o(e){let{children:t,hidden:n,className:o}=e;return r.createElement("div",{role:"tabpanel",className:(0,a.Z)(l,o),hidden:n},t)}},4866:(e,t,n)=>{n.d(t,{Z:()=>T});var r=n(7462),a=n(7294),l=n(6010),o=n(2466),s=n(6550),i=n(1980),u=n(7392),c=n(12);function p(e){return function(e){return a.Children.map(e,(e=>{if(!e||(0,a.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:t,label:n,attributes:r,default:a}}=e;return{value:t,label:n,attributes:r,default:a}}))}function m(e){const{values:t,children:n}=e;return(0,a.useMemo)((()=>{const e=t??p(n);return function(e){const t=(0,u.l)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[t,n])}function d(e){let{value:t,tabValues:n}=e;return n.some((e=>e.value===t))}function f(e){let{queryString:t=!1,groupId:n}=e;const r=(0,s.k6)(),l=function(e){let{queryString:t=!1,groupId:n}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!n)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return n??null}({queryString:t,groupId:n});return[(0,i._X)(l),(0,a.useCallback)((e=>{if(!l)return;const t=new URLSearchParams(r.location.search);t.set(l,e),r.replace({...r.location,search:t.toString()})}),[l,r])]}function v(e){const{defaultValue:t,queryString:n=!1,groupId:r}=e,l=m(e),[o,s]=(0,a.useState)((()=>function(e){let{defaultValue:t,tabValues:n}=e;if(0===n.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(t){if(!d({value:t,tabValues:n}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${n.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const r=n.find((e=>e.default))??n[0];if(!r)throw new Error("Unexpected error: 0 tabValues");return r.value}({defaultValue:t,tabValues:l}))),[i,u]=f({queryString:n,groupId:r}),[p,v]=function(e){let{groupId:t}=e;const n=function(e){return e?`docusaurus.tab.${e}`:null}(t),[r,l]=(0,c.Nk)(n);return[r,(0,a.useCallback)((e=>{n&&l.set(e)}),[n,l])]}({groupId:r}),g=(()=>{const e=i??p;return d({value:e,tabValues:l})?e:null})();(0,a.useLayoutEffect)((()=>{g&&s(g)}),[g]);return{selectedValue:o,selectValue:(0,a.useCallback)((e=>{if(!d({value:e,tabValues:l}))throw new Error(`Can't select invalid tab value=${e}`);s(e),u(e),v(e)}),[u,v,l]),tabValues:l}}var g=n(2389);const b="tabList__CuJ",h="tabItem_LNqP";function y(e){let{className:t,block:n,selectedValue:s,selectValue:i,tabValues:u}=e;const c=[],{blockElementScrollPositionUntilNextRender:p}=(0,o.o5)(),m=e=>{const t=e.currentTarget,n=c.indexOf(t),r=u[n].value;r!==s&&(p(t),i(r))},d=e=>{let t=null;switch(e.key){case"Enter":m(e);break;case"ArrowRight":{const n=c.indexOf(e.currentTarget)+1;t=c[n]??c[0];break}case"ArrowLeft":{const n=c.indexOf(e.currentTarget)-1;t=c[n]??c[c.length-1];break}}t?.focus()};return a.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,l.Z)("tabs",{"tabs--block":n},t)},u.map((e=>{let{value:t,label:n,attributes:o}=e;return a.createElement("li",(0,r.Z)({role:"tab",tabIndex:s===t?0:-1,"aria-selected":s===t,key:t,ref:e=>c.push(e),onKeyDown:d,onClick:m},o,{className:(0,l.Z)("tabs__item",h,o?.className,{"tabs__item--active":s===t})}),n??t)})))}function k(e){let{lazy:t,children:n,selectedValue:r}=e;const l=(Array.isArray(n)?n:[n]).filter(Boolean);if(t){const e=l.find((e=>e.props.value===r));return e?(0,a.cloneElement)(e,{className:"margin-top--md"}):null}return a.createElement("div",{className:"margin-top--md"},l.map(((e,t)=>(0,a.cloneElement)(e,{key:t,hidden:e.props.value!==r}))))}function x(e){const t=v(e);return a.createElement("div",{className:(0,l.Z)("tabs-container",b)},a.createElement(y,(0,r.Z)({},e,t)),a.createElement(k,(0,r.Z)({},e,t)))}function T(e){const t=(0,g.Z)();return a.createElement(x,(0,r.Z)({key:String(t)},e))}},5859:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>d,frontMatter:()=>s,metadata:()=>u,toc:()=>p});var r=n(7462),a=(n(7294),n(3905)),l=n(4866),o=n(5162);const s={},i="Astro",u={unversionedId:"extras/lang/astro",id:"extras/lang/astro",title:"Astro",description:"You can enable the extra with the :LazyExtras command.",source:"@site/docs/extras/lang/astro.md",sourceDirName:"extras/lang",slug:"/extras/lang/astro",permalink:"/extras/lang/astro",draft:!1,editUrl:"https://github.com/LazyVim/lazyvim.github.io/tree/main/docs/extras/lang/astro.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Ansible",permalink:"/extras/lang/ansible"},next:{title:"Clangd",permalink:"/extras/lang/clangd"}},c={},p=[{value:"Includes the following extras",id:"includes-the-following-extras",level:3},{value:"nvim-treesitter",id:"nvim-treesitter",level:2},{value:"nvim-lspconfig",id:"nvim-lspconfig",level:2},{value:"nvim-lspconfig",id:"nvim-lspconfig-1",level:2},{value:"conform.nvim",id:"conformnvim",level:2}],m={toc:p};function d(e){let{components:t,...n}=e;return(0,a.kt)("wrapper",(0,r.Z)({},m,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"astro"},(0,a.kt)("inlineCode",{parentName:"h1"},"Astro")),(0,a.kt)("admonition",{type:"info"},(0,a.kt)("p",{parentName:"admonition"},"You can enable the extra with the ",(0,a.kt)("inlineCode",{parentName:"p"},":LazyExtras")," command.\nPlugins marked as optional will only be configured if they are installed.")),(0,a.kt)("p",null,"Below you can find a list of included plugins and their default settings."),(0,a.kt)("admonition",{type:"caution"},(0,a.kt)("p",{parentName:"admonition"},"You don't need to copy the default settings to your config.\nThey are only shown here for reference.")),(0,a.kt)("h3",{id:"includes-the-following-extras"},"Includes the following extras"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"/extras/lang/typescript"},"lang.typescript"))),(0,a.kt)("h2",{id:"nvim-treesitter"},(0,a.kt)("a",{parentName:"h2",href:"https://github.com/nvim-treesitter/nvim-treesitter"},"nvim-treesitter")),(0,a.kt)(l.Z,{mdxType:"Tabs"},(0,a.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'opts = { ensure_installed = { "astro", "css" } }\n'))),(0,a.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "nvim-treesitter/nvim-treesitter",\n opts = { ensure_installed = { "astro", "css" } },\n}\n')))),(0,a.kt)("h2",{id:"nvim-lspconfig"},(0,a.kt)("a",{parentName:"h2",href:"https://github.com/neovim/nvim-lspconfig"},"nvim-lspconfig")),(0,a.kt)("p",null," LSP Servers"),(0,a.kt)(l.Z,{mdxType:"Tabs"},(0,a.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},"opts = {\n servers = {\n astro = {},\n },\n}\n"))),(0,a.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "neovim/nvim-lspconfig",\n opts = {\n servers = {\n astro = {},\n },\n },\n}\n')))),(0,a.kt)("h2",{id:"nvim-lspconfig-1"},(0,a.kt)("a",{parentName:"h2",href:"https://github.com/neovim/nvim-lspconfig"},"nvim-lspconfig")),(0,a.kt)("p",null," Configure tsserver plugin"),(0,a.kt)(l.Z,{mdxType:"Tabs"},(0,a.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'opts = function(_, opts)\n LazyVim.extend(opts.servers.vtsls, "settings.vtsls.tsserver.globalPlugins", {\n {\n name = "@astrojs/ts-plugin",\n location = LazyVim.get_pkg_path("astro-language-server", "/node_modules/@astrojs/ts-plugin"),\n enableForWorkspaceTypeScriptVersions = true,\n },\n })\nend\n'))),(0,a.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "neovim/nvim-lspconfig",\n opts = function(_, opts)\n LazyVim.extend(opts.servers.vtsls, "settings.vtsls.tsserver.globalPlugins", {\n {\n name = "@astrojs/ts-plugin",\n location = LazyVim.get_pkg_path("astro-language-server", "/node_modules/@astrojs/ts-plugin"),\n enableForWorkspaceTypeScriptVersions = true,\n },\n })\n end,\n}\n')))),(0,a.kt)("h2",{id:"conformnvim"},(0,a.kt)("a",{parentName:"h2",href:"https://github.com/stevearc/conform.nvim"},"conform.nvim")),(0,a.kt)(l.Z,{mdxType:"Tabs"},(0,a.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'opts = function(_, opts)\n if LazyVim.has_extra("formatting.prettier") then\n opts.formatters_by_ft = opts.formatters_by_ft or {}\n opts.formatters_by_ft.astro = { "prettier" }\n end\nend\n'))),(0,a.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "conform.nvim",\n opts = function(_, opts)\n if LazyVim.has_extra("formatting.prettier") then\n opts.formatters_by_ft = opts.formatters_by_ft or {}\n opts.formatters_by_ft.astro = { "prettier" }\n end\n end,\n}\n')))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/5d2425ed.833a8f99.js b/assets/js/5d2425ed.833a8f99.js new file mode 100644 index 0000000000..4af993b736 --- /dev/null +++ b/assets/js/5d2425ed.833a8f99.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklazyvim=self.webpackChunklazyvim||[]).push([[3607],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>f});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function o(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?l(Object(n),!0).forEach((function(t){r(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):l(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function i(e,t){if(null==e)return{};var n,a,r=function(e,t){if(null==e)return{};var n,a,r={},l=Object.keys(e);for(a=0;a<l.length;a++)n=l[a],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a<l.length;a++)n=l[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var s=a.createContext({}),u=function(e){var t=a.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},c=function(e){var t=u(e.components);return a.createElement(s.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,l=e.originalType,s=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),p=u(n),m=r,f=p["".concat(s,".").concat(m)]||p[m]||d[m]||l;return n?a.createElement(f,o(o({ref:t},c),{},{components:n})):a.createElement(f,o({ref:t},c))}));function f(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var l=n.length,o=new Array(l);o[0]=m;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[p]="string"==typeof e?e:r,o[1]=i;for(var u=2;u<l;u++)o[u]=n[u];return a.createElement.apply(null,o)}return a.createElement.apply(null,n)}m.displayName="MDXCreateElement"},5162:(e,t,n)=>{n.d(t,{Z:()=>o});var a=n(7294),r=n(6010);const l="tabItem_Ymn6";function o(e){let{children:t,hidden:n,className:o}=e;return a.createElement("div",{role:"tabpanel",className:(0,r.Z)(l,o),hidden:n},t)}},4866:(e,t,n)=>{n.d(t,{Z:()=>T});var a=n(7462),r=n(7294),l=n(6010),o=n(2466),i=n(6550),s=n(1980),u=n(7392),c=n(12);function p(e){return function(e){return r.Children.map(e,(e=>{if(!e||(0,r.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:t,label:n,attributes:a,default:r}}=e;return{value:t,label:n,attributes:a,default:r}}))}function d(e){const{values:t,children:n}=e;return(0,r.useMemo)((()=>{const e=t??p(n);return function(e){const t=(0,u.l)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[t,n])}function m(e){let{value:t,tabValues:n}=e;return n.some((e=>e.value===t))}function f(e){let{queryString:t=!1,groupId:n}=e;const a=(0,i.k6)(),l=function(e){let{queryString:t=!1,groupId:n}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!n)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return n??null}({queryString:t,groupId:n});return[(0,s._X)(l),(0,r.useCallback)((e=>{if(!l)return;const t=new URLSearchParams(a.location.search);t.set(l,e),a.replace({...a.location,search:t.toString()})}),[l,a])]}function h(e){const{defaultValue:t,queryString:n=!1,groupId:a}=e,l=d(e),[o,i]=(0,r.useState)((()=>function(e){let{defaultValue:t,tabValues:n}=e;if(0===n.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(t){if(!m({value:t,tabValues:n}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${n.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const a=n.find((e=>e.default))??n[0];if(!a)throw new Error("Unexpected error: 0 tabValues");return a.value}({defaultValue:t,tabValues:l}))),[s,u]=f({queryString:n,groupId:a}),[p,h]=function(e){let{groupId:t}=e;const n=function(e){return e?`docusaurus.tab.${e}`:null}(t),[a,l]=(0,c.Nk)(n);return[a,(0,r.useCallback)((e=>{n&&l.set(e)}),[n,l])]}({groupId:a}),v=(()=>{const e=s??p;return m({value:e,tabValues:l})?e:null})();(0,r.useLayoutEffect)((()=>{v&&i(v)}),[v]);return{selectedValue:o,selectValue:(0,r.useCallback)((e=>{if(!m({value:e,tabValues:l}))throw new Error(`Can't select invalid tab value=${e}`);i(e),u(e),h(e)}),[u,h,l]),tabValues:l}}var v=n(2389);const b="tabList__CuJ",y="tabItem_LNqP";function g(e){let{className:t,block:n,selectedValue:i,selectValue:s,tabValues:u}=e;const c=[],{blockElementScrollPositionUntilNextRender:p}=(0,o.o5)(),d=e=>{const t=e.currentTarget,n=c.indexOf(t),a=u[n].value;a!==i&&(p(t),s(a))},m=e=>{let t=null;switch(e.key){case"Enter":d(e);break;case"ArrowRight":{const n=c.indexOf(e.currentTarget)+1;t=c[n]??c[0];break}case"ArrowLeft":{const n=c.indexOf(e.currentTarget)-1;t=c[n]??c[c.length-1];break}}t?.focus()};return r.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,l.Z)("tabs",{"tabs--block":n},t)},u.map((e=>{let{value:t,label:n,attributes:o}=e;return r.createElement("li",(0,a.Z)({role:"tab",tabIndex:i===t?0:-1,"aria-selected":i===t,key:t,ref:e=>c.push(e),onKeyDown:m,onClick:d},o,{className:(0,l.Z)("tabs__item",y,o?.className,{"tabs__item--active":i===t})}),n??t)})))}function k(e){let{lazy:t,children:n,selectedValue:a}=e;const l=(Array.isArray(n)?n:[n]).filter(Boolean);if(t){const e=l.find((e=>e.props.value===a));return e?(0,r.cloneElement)(e,{className:"margin-top--md"}):null}return r.createElement("div",{className:"margin-top--md"},l.map(((e,t)=>(0,r.cloneElement)(e,{key:t,hidden:e.props.value!==a}))))}function w(e){const t=h(e);return r.createElement("div",{className:(0,l.Z)("tabs-container",b)},r.createElement(g,(0,a.Z)({},e,t)),r.createElement(k,(0,a.Z)({},e,t)))}function T(e){const t=(0,v.Z)();return r.createElement(w,(0,a.Z)({key:String(t)},e))}},4481:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>s,default:()=>m,frontMatter:()=>i,metadata:()=>u,toc:()=>p});var a=n(7462),r=(n(7294),n(3905)),l=n(4866),o=n(5162);const i={},s="Dot Files",u={unversionedId:"extras/util/dot",id:"extras/util/dot",title:"Dot Files",description:"You can enable the extra with the :LazyExtras command.",source:"@site/docs/extras/util/dot.md",sourceDirName:"extras/util",slug:"/extras/util/dot",permalink:"/extras/util/dot",draft:!1,editUrl:"https://github.com/LazyVim/lazyvim.github.io/tree/main/docs/extras/util/dot.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Chezmoi",permalink:"/extras/util/chezmoi"},next:{title:"Gh",permalink:"/extras/util/gh"}},c={},p=[{value:"nvim-lspconfig",id:"nvim-lspconfig",level:2},{value:"mason.nvim",id:"masonnvim",level:2},{value:"nvim-treesitter",id:"nvim-treesitter",level:2}],d={toc:p};function m(e){let{components:t,...n}=e;return(0,r.kt)("wrapper",(0,a.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"dot-files"},"Dot Files"),(0,r.kt)("admonition",{type:"info"},(0,r.kt)("p",{parentName:"admonition"},"You can enable the extra with the ",(0,r.kt)("inlineCode",{parentName:"p"},":LazyExtras")," command.\nPlugins marked as optional will only be configured if they are installed.")),(0,r.kt)("p",null,"Below you can find a list of included plugins and their default settings."),(0,r.kt)("admonition",{type:"caution"},(0,r.kt)("p",{parentName:"admonition"},"You don't need to copy the default settings to your config.\nThey are only shown here for reference.")),(0,r.kt)("h2",{id:"nvim-lspconfig"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/neovim/nvim-lspconfig"},"nvim-lspconfig")),(0,r.kt)(l.Z,{mdxType:"Tabs"},(0,r.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},"opts = {\n servers = {\n bashls = {},\n },\n}\n"))),(0,r.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "neovim/nvim-lspconfig",\n opts = {\n servers = {\n bashls = {},\n },\n },\n}\n')))),(0,r.kt)("h2",{id:"masonnvim"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/mason-org/mason.nvim"},"mason.nvim")),(0,r.kt)(l.Z,{mdxType:"Tabs"},(0,r.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = { ensure_installed = { "shellcheck" } }\n'))),(0,r.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "mason-org/mason.nvim",\n opts = { ensure_installed = { "shellcheck" } },\n}\n')))),(0,r.kt)("h2",{id:"nvim-treesitter"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/nvim-treesitter/nvim-treesitter"},"nvim-treesitter")),(0,r.kt)("p",null," add some stuff to treesitter"),(0,r.kt)(l.Z,{mdxType:"Tabs"},(0,r.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = function(_, opts)\n local function add(lang)\n if type(opts.ensure_installed) == "table" then\n table.insert(opts.ensure_installed, lang)\n end\n end\n\n vim.filetype.add({\n extension = { rasi = "rasi", rofi = "rasi", wofi = "rasi" },\n filename = {\n ["vifmrc"] = "vim",\n },\n pattern = {\n [".*/waybar/config"] = "jsonc",\n [".*/mako/config"] = "dosini",\n [".*/kitty/.+%.conf"] = "kitty",\n [".*/hypr/.+%.conf"] = "hyprlang",\n ["%.env%.[%w_.-]+"] = "sh",\n },\n })\n vim.treesitter.language.register("bash", "kitty")\n\n add("git_config")\n\n if have("hypr") then\n add("hyprlang")\n end\n\n if have("fish") then\n add("fish")\n end\n\n if have("rofi") or have("wofi") then\n add("rasi")\n end\nend\n'))),(0,r.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "nvim-treesitter/nvim-treesitter",\n opts = function(_, opts)\n local function add(lang)\n if type(opts.ensure_installed) == "table" then\n table.insert(opts.ensure_installed, lang)\n end\n end\n\n vim.filetype.add({\n extension = { rasi = "rasi", rofi = "rasi", wofi = "rasi" },\n filename = {\n ["vifmrc"] = "vim",\n },\n pattern = {\n [".*/waybar/config"] = "jsonc",\n [".*/mako/config"] = "dosini",\n [".*/kitty/.+%.conf"] = "kitty",\n [".*/hypr/.+%.conf"] = "hyprlang",\n ["%.env%.[%w_.-]+"] = "sh",\n },\n })\n vim.treesitter.language.register("bash", "kitty")\n\n add("git_config")\n\n if have("hypr") then\n add("hyprlang")\n end\n\n if have("fish") then\n add("fish")\n end\n\n if have("rofi") or have("wofi") then\n add("rasi")\n end\n end,\n}\n')))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/5dd77795.8ebbf4af.js b/assets/js/5dd77795.8ebbf4af.js new file mode 100644 index 0000000000..88515f687e --- /dev/null +++ b/assets/js/5dd77795.8ebbf4af.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklazyvim=self.webpackChunklazyvim||[]).push([[8656],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>f});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?l(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):l(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function s(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},l=Object.keys(e);for(r=0;r<l.length;r++)n=l[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r<l.length;r++)n=l[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var i=r.createContext({}),u=function(e){var t=r.useContext(i),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},c=function(e){var t=u(e.components);return r.createElement(i.Provider,{value:t},e.children)},m="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,l=e.originalType,i=e.parentName,c=s(e,["components","mdxType","originalType","parentName"]),m=u(n),d=a,f=m["".concat(i,".").concat(d)]||m[d]||p[d]||l;return n?r.createElement(f,o(o({ref:t},c),{},{components:n})):r.createElement(f,o({ref:t},c))}));function f(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var l=n.length,o=new Array(l);o[0]=d;var s={};for(var i in t)hasOwnProperty.call(t,i)&&(s[i]=t[i]);s.originalType=e,s[m]="string"==typeof e?e:a,o[1]=s;for(var u=2;u<l;u++)o[u]=n[u];return r.createElement.apply(null,o)}return r.createElement.apply(null,n)}d.displayName="MDXCreateElement"},5162:(e,t,n)=>{n.d(t,{Z:()=>o});var r=n(7294),a=n(6010);const l="tabItem_Ymn6";function o(e){let{children:t,hidden:n,className:o}=e;return r.createElement("div",{role:"tabpanel",className:(0,a.Z)(l,o),hidden:n},t)}},4866:(e,t,n)=>{n.d(t,{Z:()=>j});var r=n(7462),a=n(7294),l=n(6010),o=n(2466),s=n(6550),i=n(1980),u=n(7392),c=n(12);function m(e){return function(e){return a.Children.map(e,(e=>{if(!e||(0,a.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:t,label:n,attributes:r,default:a}}=e;return{value:t,label:n,attributes:r,default:a}}))}function p(e){const{values:t,children:n}=e;return(0,a.useMemo)((()=>{const e=t??m(n);return function(e){const t=(0,u.l)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[t,n])}function d(e){let{value:t,tabValues:n}=e;return n.some((e=>e.value===t))}function f(e){let{queryString:t=!1,groupId:n}=e;const r=(0,s.k6)(),l=function(e){let{queryString:t=!1,groupId:n}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!n)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return n??null}({queryString:t,groupId:n});return[(0,i._X)(l),(0,a.useCallback)((e=>{if(!l)return;const t=new URLSearchParams(r.location.search);t.set(l,e),r.replace({...r.location,search:t.toString()})}),[l,r])]}function b(e){const{defaultValue:t,queryString:n=!1,groupId:r}=e,l=p(e),[o,s]=(0,a.useState)((()=>function(e){let{defaultValue:t,tabValues:n}=e;if(0===n.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(t){if(!d({value:t,tabValues:n}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${n.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const r=n.find((e=>e.default))??n[0];if(!r)throw new Error("Unexpected error: 0 tabValues");return r.value}({defaultValue:t,tabValues:l}))),[i,u]=f({queryString:n,groupId:r}),[m,b]=function(e){let{groupId:t}=e;const n=function(e){return e?`docusaurus.tab.${e}`:null}(t),[r,l]=(0,c.Nk)(n);return[r,(0,a.useCallback)((e=>{n&&l.set(e)}),[n,l])]}({groupId:r}),v=(()=>{const e=i??m;return d({value:e,tabValues:l})?e:null})();(0,a.useLayoutEffect)((()=>{v&&s(v)}),[v]);return{selectedValue:o,selectValue:(0,a.useCallback)((e=>{if(!d({value:e,tabValues:l}))throw new Error(`Can't select invalid tab value=${e}`);s(e),u(e),b(e)}),[u,b,l]),tabValues:l}}var v=n(2389);const h="tabList__CuJ",g="tabItem_LNqP";function y(e){let{className:t,block:n,selectedValue:s,selectValue:i,tabValues:u}=e;const c=[],{blockElementScrollPositionUntilNextRender:m}=(0,o.o5)(),p=e=>{const t=e.currentTarget,n=c.indexOf(t),r=u[n].value;r!==s&&(m(t),i(r))},d=e=>{let t=null;switch(e.key){case"Enter":p(e);break;case"ArrowRight":{const n=c.indexOf(e.currentTarget)+1;t=c[n]??c[0];break}case"ArrowLeft":{const n=c.indexOf(e.currentTarget)-1;t=c[n]??c[c.length-1];break}}t?.focus()};return a.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,l.Z)("tabs",{"tabs--block":n},t)},u.map((e=>{let{value:t,label:n,attributes:o}=e;return a.createElement("li",(0,r.Z)({role:"tab",tabIndex:s===t?0:-1,"aria-selected":s===t,key:t,ref:e=>c.push(e),onKeyDown:d,onClick:p},o,{className:(0,l.Z)("tabs__item",g,o?.className,{"tabs__item--active":s===t})}),n??t)})))}function k(e){let{lazy:t,children:n,selectedValue:r}=e;const l=(Array.isArray(n)?n:[n]).filter(Boolean);if(t){const e=l.find((e=>e.props.value===r));return e?(0,a.cloneElement)(e,{className:"margin-top--md"}):null}return a.createElement("div",{className:"margin-top--md"},l.map(((e,t)=>(0,a.cloneElement)(e,{key:t,hidden:e.props.value!==r}))))}function w(e){const t=b(e);return a.createElement("div",{className:(0,l.Z)("tabs-container",h)},a.createElement(y,(0,r.Z)({},e,t)),a.createElement(k,(0,r.Z)({},e,t)))}function j(e){const t=(0,v.Z)();return a.createElement(w,(0,r.Z)({key:String(t)},e))}},6348:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>d,frontMatter:()=>s,metadata:()=>u,toc:()=>m});var r=n(7462),a=(n(7294),n(3905)),l=n(4866),o=n(5162);const s={},i="JSON",u={unversionedId:"extras/lang/json",id:"extras/lang/json",title:"JSON",description:"You can enable the extra with the :LazyExtras command.",source:"@site/docs/extras/lang/json.md",sourceDirName:"extras/lang",slug:"/extras/lang/json",permalink:"/extras/lang/json",draft:!1,editUrl:"https://github.com/LazyVim/lazyvim.github.io/tree/main/docs/extras/lang/json.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Java",permalink:"/extras/lang/java"},next:{title:"Julia",permalink:"/extras/lang/julia"}},c={},m=[{value:"nvim-treesitter",id:"nvim-treesitter",level:2},{value:"SchemaStore.nvim",id:"schemastorenvim",level:2},{value:"nvim-lspconfig",id:"nvim-lspconfig",level:2}],p={toc:m};function d(e){let{components:t,...n}=e;return(0,a.kt)("wrapper",(0,r.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"json"},"JSON"),(0,a.kt)("admonition",{type:"info"},(0,a.kt)("p",{parentName:"admonition"},"You can enable the extra with the ",(0,a.kt)("inlineCode",{parentName:"p"},":LazyExtras")," command.\nPlugins marked as optional will only be configured if they are installed.")),(0,a.kt)("p",null,"Below you can find a list of included plugins and their default settings."),(0,a.kt)("admonition",{type:"caution"},(0,a.kt)("p",{parentName:"admonition"},"You don't need to copy the default settings to your config.\nThey are only shown here for reference.")),(0,a.kt)("h2",{id:"nvim-treesitter"},(0,a.kt)("a",{parentName:"h2",href:"https://github.com/nvim-treesitter/nvim-treesitter"},"nvim-treesitter")),(0,a.kt)("p",null," add json to treesitter"),(0,a.kt)(l.Z,{mdxType:"Tabs"},(0,a.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'opts = { ensure_installed = { "json5" } }\n'))),(0,a.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "nvim-treesitter/nvim-treesitter",\n opts = { ensure_installed = { "json5" } },\n}\n')))),(0,a.kt)("h2",{id:"schemastorenvim"},(0,a.kt)("a",{parentName:"h2",href:"https://github.com/b0o/SchemaStore.nvim"},"SchemaStore.nvim")),(0,a.kt)("p",null," yaml schema support"),(0,a.kt)(l.Z,{mdxType:"Tabs"},(0,a.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},"opts = nil\n"))),(0,a.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "b0o/SchemaStore.nvim",\n lazy = true,\n version = false, -- last release is way too old\n}\n')))),(0,a.kt)("h2",{id:"nvim-lspconfig"},(0,a.kt)("a",{parentName:"h2",href:"https://github.com/neovim/nvim-lspconfig"},"nvim-lspconfig")),(0,a.kt)("p",null," correctly setup lspconfig"),(0,a.kt)(l.Z,{mdxType:"Tabs"},(0,a.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'opts = {\n -- make sure mason installs the server\n servers = {\n jsonls = {\n -- lazy-load schemastore when needed\n before_init = function(_, new_config)\n new_config.settings.json.schemas = new_config.settings.json.schemas or {}\n vim.list_extend(new_config.settings.json.schemas, require("schemastore").json.schemas())\n end,\n settings = {\n json = {\n format = {\n enable = true,\n },\n validate = { enable = true },\n },\n },\n },\n },\n}\n'))),(0,a.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "neovim/nvim-lspconfig",\n opts = {\n -- make sure mason installs the server\n servers = {\n jsonls = {\n -- lazy-load schemastore when needed\n before_init = function(_, new_config)\n new_config.settings.json.schemas = new_config.settings.json.schemas or {}\n vim.list_extend(new_config.settings.json.schemas, require("schemastore").json.schemas())\n end,\n settings = {\n json = {\n format = {\n enable = true,\n },\n validate = { enable = true },\n },\n },\n },\n },\n },\n}\n')))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/5e1fbf1d.5d976106.js b/assets/js/5e1fbf1d.5d976106.js new file mode 100644 index 0000000000..7c7375dbf8 --- /dev/null +++ b/assets/js/5e1fbf1d.5d976106.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklazyvim=self.webpackChunklazyvim||[]).push([[9983],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>f});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function l(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?i(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):i(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function s(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var o=r.createContext({}),u=function(e){var t=r.useContext(o),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},c=function(e){var t=u(e.components);return r.createElement(o.Provider,{value:t},e.children)},m="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,i=e.originalType,o=e.parentName,c=s(e,["components","mdxType","originalType","parentName"]),m=u(n),d=a,f=m["".concat(o,".").concat(d)]||m[d]||p[d]||i;return n?r.createElement(f,l(l({ref:t},c),{},{components:n})):r.createElement(f,l({ref:t},c))}));function f(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=n.length,l=new Array(i);l[0]=d;var s={};for(var o in t)hasOwnProperty.call(t,o)&&(s[o]=t[o]);s.originalType=e,s[m]="string"==typeof e?e:a,l[1]=s;for(var u=2;u<i;u++)l[u]=n[u];return r.createElement.apply(null,l)}return r.createElement.apply(null,n)}d.displayName="MDXCreateElement"},5162:(e,t,n)=>{n.d(t,{Z:()=>l});var r=n(7294),a=n(6010);const i="tabItem_Ymn6";function l(e){let{children:t,hidden:n,className:l}=e;return r.createElement("div",{role:"tabpanel",className:(0,a.Z)(i,l),hidden:n},t)}},4866:(e,t,n)=>{n.d(t,{Z:()=>_});var r=n(7462),a=n(7294),i=n(6010),l=n(2466),s=n(6550),o=n(1980),u=n(7392),c=n(12);function m(e){return function(e){return a.Children.map(e,(e=>{if(!e||(0,a.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:t,label:n,attributes:r,default:a}}=e;return{value:t,label:n,attributes:r,default:a}}))}function p(e){const{values:t,children:n}=e;return(0,a.useMemo)((()=>{const e=t??m(n);return function(e){const t=(0,u.l)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[t,n])}function d(e){let{value:t,tabValues:n}=e;return n.some((e=>e.value===t))}function f(e){let{queryString:t=!1,groupId:n}=e;const r=(0,s.k6)(),i=function(e){let{queryString:t=!1,groupId:n}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!n)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return n??null}({queryString:t,groupId:n});return[(0,o._X)(i),(0,a.useCallback)((e=>{if(!i)return;const t=new URLSearchParams(r.location.search);t.set(i,e),r.replace({...r.location,search:t.toString()})}),[i,r])]}function v(e){const{defaultValue:t,queryString:n=!1,groupId:r}=e,i=p(e),[l,s]=(0,a.useState)((()=>function(e){let{defaultValue:t,tabValues:n}=e;if(0===n.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(t){if(!d({value:t,tabValues:n}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${n.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const r=n.find((e=>e.default))??n[0];if(!r)throw new Error("Unexpected error: 0 tabValues");return r.value}({defaultValue:t,tabValues:i}))),[o,u]=f({queryString:n,groupId:r}),[m,v]=function(e){let{groupId:t}=e;const n=function(e){return e?`docusaurus.tab.${e}`:null}(t),[r,i]=(0,c.Nk)(n);return[r,(0,a.useCallback)((e=>{n&&i.set(e)}),[n,i])]}({groupId:r}),b=(()=>{const e=o??m;return d({value:e,tabValues:i})?e:null})();(0,a.useLayoutEffect)((()=>{b&&s(b)}),[b]);return{selectedValue:l,selectValue:(0,a.useCallback)((e=>{if(!d({value:e,tabValues:i}))throw new Error(`Can't select invalid tab value=${e}`);s(e),u(e),v(e)}),[u,v,i]),tabValues:i}}var b=n(2389);const y="tabList__CuJ",g="tabItem_LNqP";function h(e){let{className:t,block:n,selectedValue:s,selectValue:o,tabValues:u}=e;const c=[],{blockElementScrollPositionUntilNextRender:m}=(0,l.o5)(),p=e=>{const t=e.currentTarget,n=c.indexOf(t),r=u[n].value;r!==s&&(m(t),o(r))},d=e=>{let t=null;switch(e.key){case"Enter":p(e);break;case"ArrowRight":{const n=c.indexOf(e.currentTarget)+1;t=c[n]??c[0];break}case"ArrowLeft":{const n=c.indexOf(e.currentTarget)-1;t=c[n]??c[c.length-1];break}}t?.focus()};return a.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,i.Z)("tabs",{"tabs--block":n},t)},u.map((e=>{let{value:t,label:n,attributes:l}=e;return a.createElement("li",(0,r.Z)({role:"tab",tabIndex:s===t?0:-1,"aria-selected":s===t,key:t,ref:e=>c.push(e),onKeyDown:d,onClick:p},l,{className:(0,i.Z)("tabs__item",g,l?.className,{"tabs__item--active":s===t})}),n??t)})))}function k(e){let{lazy:t,children:n,selectedValue:r}=e;const i=(Array.isArray(n)?n:[n]).filter(Boolean);if(t){const e=i.find((e=>e.props.value===r));return e?(0,a.cloneElement)(e,{className:"margin-top--md"}):null}return a.createElement("div",{className:"margin-top--md"},i.map(((e,t)=>(0,a.cloneElement)(e,{key:t,hidden:e.props.value!==r}))))}function T(e){const t=v(e);return a.createElement("div",{className:(0,i.Z)("tabs-container",y)},a.createElement(h,(0,r.Z)({},e,t)),a.createElement(k,(0,r.Z)({},e,t)))}function _(e){const t=(0,b.Z)();return a.createElement(T,(0,r.Z)({key:String(t)},e))}},4965:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>o,default:()=>d,frontMatter:()=>s,metadata:()=>u,toc:()=>m});var r=n(7462),a=(n(7294),n(3905)),i=n(4866),l=n(5162);const s={},o="TreeSitter",u={unversionedId:"plugins/treesitter",id:"plugins/treesitter",title:"TreeSitter",description:"nvim-treesitter",source:"@site/docs/plugins/treesitter.md",sourceDirName:"plugins",slug:"/plugins/treesitter",permalink:"/plugins/treesitter",draft:!1,editUrl:"https://github.com/LazyVim/lazyvim.github.io/tree/main/docs/plugins/treesitter.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"LSP",permalink:"/plugins/lsp"},next:{title:"UI",permalink:"/plugins/ui"}},c={},m=[{value:"nvim-treesitter",id:"nvim-treesitter",level:2},{value:"nvim-treesitter-textobjects",id:"nvim-treesitter-textobjects",level:2},{value:"nvim-ts-autotag",id:"nvim-ts-autotag",level:2}],p={toc:m};function d(e){let{components:t,...n}=e;return(0,a.kt)("wrapper",(0,r.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"treesitter"},"TreeSitter"),(0,a.kt)("h2",{id:"nvim-treesitter"},(0,a.kt)("a",{parentName:"h2",href:"https://github.com/nvim-treesitter/nvim-treesitter"},"nvim-treesitter")),(0,a.kt)("p",null," Treesitter is a new parser generator tool that we can\nuse in Neovim to power faster and more accurate\nsyntax highlighting."),(0,a.kt)(i.Z,{mdxType:"Tabs"},(0,a.kt)(l.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'opts = {\n -- LazyVim config for treesitter\n indent = { enable = true }, ---@type lazyvim.TSFeat\n highlight = { enable = true }, ---@type lazyvim.TSFeat\n folds = { enable = true }, ---@type lazyvim.TSFeat\n ensure_installed = {\n "bash",\n "c",\n "diff",\n "html",\n "javascript",\n "jsdoc",\n "json",\n "jsonc",\n "lua",\n "luadoc",\n "luap",\n "markdown",\n "markdown_inline",\n "printf",\n "python",\n "query",\n "regex",\n "toml",\n "tsx",\n "typescript",\n "vim",\n "vimdoc",\n "xml",\n "yaml",\n },\n}\n'))),(0,a.kt)(l.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "nvim-treesitter/nvim-treesitter",\n branch = "main",\n version = false, -- last release is way too old and doesn\'t work on Windows\n build = function()\n local TS = require("nvim-treesitter")\n if not TS.get_installed then\n LazyVim.error("Please restart Neovim and run `:TSUpdate` to use the `nvim-treesitter` **main** branch.")\n return\n end\n -- make sure we\'re using the latest treesitter util\n package.loaded["lazyvim.util.treesitter"] = nil\n LazyVim.treesitter.build(function()\n TS.update(nil, { summary = true })\n end)\n end,\n event = { "LazyFile", "VeryLazy" },\n cmd = { "TSUpdate", "TSInstall", "TSLog", "TSUninstall" },\n opts_extend = { "ensure_installed" },\n ---@alias lazyvim.TSFeat { enable?: boolean, disable?: string[] }\n ---@class lazyvim.TSConfig: TSConfig\n opts = {\n -- LazyVim config for treesitter\n indent = { enable = true }, ---@type lazyvim.TSFeat\n highlight = { enable = true }, ---@type lazyvim.TSFeat\n folds = { enable = true }, ---@type lazyvim.TSFeat\n ensure_installed = {\n "bash",\n "c",\n "diff",\n "html",\n "javascript",\n "jsdoc",\n "json",\n "jsonc",\n "lua",\n "luadoc",\n "luap",\n "markdown",\n "markdown_inline",\n "printf",\n "python",\n "query",\n "regex",\n "toml",\n "tsx",\n "typescript",\n "vim",\n "vimdoc",\n "xml",\n "yaml",\n },\n },\n ---@param opts lazyvim.TSConfig\n config = function(_, opts)\n local TS = require("nvim-treesitter")\n\n setmetatable(require("nvim-treesitter.install"), {\n __newindex = function(_, k)\n if k == "compilers" then\n vim.schedule(function()\n LazyVim.error({\n "Setting custom compilers for `nvim-treesitter` is no longer supported.",\n "",\n "For more info, see:",\n "- [compilers](https://docs.rs/cc/latest/cc/#compile-time-requirements)",\n })\n end)\n end\n end,\n })\n\n -- some quick sanity checks\n if not TS.get_installed then\n return LazyVim.error("Please use `:Lazy` and update `nvim-treesitter`")\n elseif type(opts.ensure_installed) ~= "table" then\n return LazyVim.error("`nvim-treesitter` opts.ensure_installed must be a table")\n end\n\n -- setup treesitter\n TS.setup(opts)\n LazyVim.treesitter.get_installed(true) -- initialize the installed langs\n\n -- install missing parsers\n local install = vim.tbl_filter(function(lang)\n return not LazyVim.treesitter.have(lang)\n end, opts.ensure_installed or {})\n if #install > 0 then\n LazyVim.treesitter.build(function()\n TS.install(install, { summary = true }):await(function()\n LazyVim.treesitter.get_installed(true) -- refresh the installed langs\n end)\n end)\n end\n\n vim.api.nvim_create_autocmd("FileType", {\n group = vim.api.nvim_create_augroup("lazyvim_treesitter", { clear = true }),\n callback = function(ev)\n local ft, lang = ev.match, vim.treesitter.language.get_lang(ev.match)\n if not LazyVim.treesitter.have(ft) then\n return\n end\n\n ---@param feat string\n ---@param query string\n local function enabled(feat, query)\n local f = opts[feat] or {} ---@type lazyvim.TSFeat\n return f.enable ~= false\n and not (type(f.disable) == "table" and vim.tbl_contains(f.disable, lang))\n and LazyVim.treesitter.have(ft, query)\n end\n\n -- highlighting\n if enabled("highlight", "highlights") then\n pcall(vim.treesitter.start, ev.buf)\n end\n\n -- indents\n if enabled("indent", "indents") then\n LazyVim.set_default("indentexpr", "v:lua.LazyVim.treesitter.indentexpr()")\n end\n\n -- folds\n if enabled("folds", "folds") then\n if LazyVim.set_default("foldmethod", "expr") then\n LazyVim.set_default("foldexpr", "v:lua.LazyVim.treesitter.foldexpr()")\n end\n end\n end,\n })\n end,\n}\n')))),(0,a.kt)("h2",{id:"nvim-treesitter-textobjects"},(0,a.kt)("a",{parentName:"h2",href:"https://github.com/nvim-treesitter/nvim-treesitter-textobjects"},"nvim-treesitter-textobjects")),(0,a.kt)(i.Z,{mdxType:"Tabs"},(0,a.kt)(l.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'opts = {\n move = {\n enable = true,\n set_jumps = true, -- whether to set jumps in the jumplist\n -- LazyVim extention to create buffer-local keymaps\n keys = {\n goto_next_start = { ["]f"] = "@function.outer", ["]c"] = "@class.outer", ["]a"] = "@parameter.inner" },\n goto_next_end = { ["]F"] = "@function.outer", ["]C"] = "@class.outer", ["]A"] = "@parameter.inner" },\n goto_previous_start = { ["[f"] = "@function.outer", ["[c"] = "@class.outer", ["[a"] = "@parameter.inner" },\n goto_previous_end = { ["[F"] = "@function.outer", ["[C"] = "@class.outer", ["[A"] = "@parameter.inner" },\n },\n },\n}\n'))),(0,a.kt)(l.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "nvim-treesitter/nvim-treesitter-textobjects",\n branch = "main",\n event = "VeryLazy",\n opts = {\n move = {\n enable = true,\n set_jumps = true, -- whether to set jumps in the jumplist\n -- LazyVim extention to create buffer-local keymaps\n keys = {\n goto_next_start = { ["]f"] = "@function.outer", ["]c"] = "@class.outer", ["]a"] = "@parameter.inner" },\n goto_next_end = { ["]F"] = "@function.outer", ["]C"] = "@class.outer", ["]A"] = "@parameter.inner" },\n goto_previous_start = { ["[f"] = "@function.outer", ["[c"] = "@class.outer", ["[a"] = "@parameter.inner" },\n goto_previous_end = { ["[F"] = "@function.outer", ["[C"] = "@class.outer", ["[A"] = "@parameter.inner" },\n },\n },\n },\n config = function(_, opts)\n local TS = require("nvim-treesitter-textobjects")\n if not TS.setup then\n LazyVim.error("Please use `:Lazy` and update `nvim-treesitter`")\n return\n end\n TS.setup(opts)\n\n local function attach(buf)\n local ft = vim.bo[buf].filetype\n if not (vim.tbl_get(opts, "move", "enable") and LazyVim.treesitter.have(ft, "textobjects")) then\n return\n end\n ---@type table<string, table<string, string>>\n local moves = vim.tbl_get(opts, "move", "keys") or {}\n\n for method, keymaps in pairs(moves) do\n for key, query in pairs(keymaps) do\n local desc = query:gsub("@", ""):gsub("%..*", "")\n desc = desc:sub(1, 1):upper() .. desc:sub(2)\n desc = (key:sub(1, 1) == "[" and "Prev " or "Next ") .. desc\n desc = desc .. (key:sub(2, 2) == key:sub(2, 2):upper() and " End" or " Start")\n if not (vim.wo.diff and key:find("[cC]")) then\n vim.keymap.set({ "n", "x", "o" }, key, function()\n require("nvim-treesitter-textobjects.move")[method](query, "textobjects")\n end, {\n buffer = buf,\n desc = desc,\n silent = true,\n })\n end\n end\n end\n end\n\n vim.api.nvim_create_autocmd("FileType", {\n group = vim.api.nvim_create_augroup("lazyvim_treesitter_textobjects", { clear = true }),\n callback = function(ev)\n attach(ev.buf)\n end,\n })\n vim.tbl_map(attach, vim.api.nvim_list_bufs())\n end,\n}\n')))),(0,a.kt)("h2",{id:"nvim-ts-autotag"},(0,a.kt)("a",{parentName:"h2",href:"https://github.com/windwp/nvim-ts-autotag"},"nvim-ts-autotag")),(0,a.kt)("p",null," Automatically add closing tags for HTML and JSX"),(0,a.kt)(i.Z,{mdxType:"Tabs"},(0,a.kt)(l.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},"opts = {}\n"))),(0,a.kt)(l.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "windwp/nvim-ts-autotag",\n event = "LazyFile",\n opts = {},\n}\n')))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/5ef416c9.32a5ded8.js b/assets/js/5ef416c9.32a5ded8.js new file mode 100644 index 0000000000..ddcb5850ad --- /dev/null +++ b/assets/js/5ef416c9.32a5ded8.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklazyvim=self.webpackChunklazyvim||[]).push([[1159],{3905:(e,n,t)=>{t.d(n,{Zo:()=>c,kt:()=>f});var i=t(7294);function r(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function a(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);n&&(i=i.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,i)}return t}function o(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?a(Object(t),!0).forEach((function(n){r(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):a(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function l(e,n){if(null==e)return{};var t,i,r=function(e,n){if(null==e)return{};var t,i,r={},a=Object.keys(e);for(i=0;i<a.length;i++)t=a[i],n.indexOf(t)>=0||(r[t]=e[t]);return r}(e,n);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i<a.length;i++)t=a[i],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(r[t]=e[t])}return r}var s=i.createContext({}),p=function(e){var n=i.useContext(s),t=n;return e&&(t="function"==typeof e?e(n):o(o({},n),e)),t},c=function(e){var n=p(e.components);return i.createElement(s.Provider,{value:n},e.children)},u="mdxType",m={inlineCode:"code",wrapper:function(e){var n=e.children;return i.createElement(i.Fragment,{},n)}},d=i.forwardRef((function(e,n){var t=e.components,r=e.mdxType,a=e.originalType,s=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),u=p(t),d=r,f=u["".concat(s,".").concat(d)]||u[d]||m[d]||a;return t?i.createElement(f,o(o({ref:n},c),{},{components:t})):i.createElement(f,o({ref:n},c))}));function f(e,n){var t=arguments,r=n&&n.mdxType;if("string"==typeof e||r){var a=t.length,o=new Array(a);o[0]=d;var l={};for(var s in n)hasOwnProperty.call(n,s)&&(l[s]=n[s]);l.originalType=e,l[u]="string"==typeof e?e:r,o[1]=l;for(var p=2;p<a;p++)o[p]=t[p];return i.createElement.apply(null,o)}return i.createElement.apply(null,t)}d.displayName="MDXCreateElement"},1864:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>s,contentTitle:()=>o,default:()=>u,frontMatter:()=>a,metadata:()=>l,toc:()=>p});var i=t(7462),r=(t(7294),t(3905));const a={sidebar_position:6},o="Recipes",l={unversionedId:"configuration/recipes",id:"configuration/recipes",title:"Recipes",description:"Add a nvim-cmp source",source:"@site/docs/configuration/recipes.md",sourceDirName:"configuration",slug:"/configuration/recipes",permalink:"/configuration/recipes",draft:!1,editUrl:"https://github.com/LazyVim/lazyvim.github.io/tree/main/docs/configuration/recipes.md",tags:[],version:"current",sidebarPosition:6,frontMatter:{sidebar_position:6},sidebar:"tutorialSidebar",previous:{title:"Examples",permalink:"/configuration/examples"},next:{title:"Tips",permalink:"/configuration/tips"}},s={},p=[{value:"Add a <code>nvim-cmp</code> source",id:"add-a-nvim-cmp-source",level:2},{value:"Supertab",id:"supertab",level:2},{value:"Change surround mappings",id:"change-surround-mappings",level:2},{value:"Make TokyoNight Transparent",id:"make-tokyonight-transparent",level:2},{value:"Fix clangd offset encoding",id:"fix-clangd-offset-encoding",level:2},{value:"Use Eslint for fix on save and prettier for formatting",id:"use-eslint-for-fix-on-save-and-prettier-for-formatting",level:2},{value:"Add Eslint and use it for formatting",id:"add-eslint-and-use-it-for-formatting",level:2}],c={toc:p};function u(e){let{components:n,...t}=e;return(0,r.kt)("wrapper",(0,i.Z)({},c,t,{components:n,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"recipes"},"Recipes"),(0,r.kt)("h2",{id:"add-a-nvim-cmp-source"},"Add a ",(0,r.kt)("inlineCode",{parentName:"h2"},"nvim-cmp")," source"),(0,r.kt)("p",null,"override nvim-cmp and add cmp-emoji"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "hrsh7th/nvim-cmp",\n dependencies = { "hrsh7th/cmp-emoji" },\n ---@param opts cmp.ConfigSchema\n opts = function(_, opts)\n table.insert(opts.sources, { name = "emoji" })\n end,\n}\n')),(0,r.kt)("h2",{id:"supertab"},"Supertab"),(0,r.kt)("p",null,"Use ",(0,r.kt)("inlineCode",{parentName:"p"},"<tab>")," for completion and snippets (supertab)."),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "hrsh7th/nvim-cmp",\n ---@param opts cmp.ConfigSchema\n opts = function(_, opts)\n local has_words_before = function()\n unpack = unpack or table.unpack\n local line, col = unpack(vim.api.nvim_win_get_cursor(0))\n return col ~= 0 and vim.api.nvim_buf_get_lines(0, line - 1, line, true)[1]:sub(col, col):match("%s") == nil\n end\n\n local cmp = require("cmp")\n\n opts.mapping = vim.tbl_extend("force", opts.mapping, {\n ["<Tab>"] = cmp.mapping(function(fallback)\n if cmp.visible() then\n -- You could replace select_next_item() with confirm({ select = true }) to get VS Code autocompletion behavior\n cmp.select_next_item()\n elseif vim.snippet.active({ direction = 1 }) then\n vim.schedule(function()\n vim.snippet.jump(1)\n end)\n elseif has_words_before() then\n cmp.complete()\n else\n fallback()\n end\n end, { "i", "s" }),\n ["<S-Tab>"] = cmp.mapping(function(fallback)\n if cmp.visible() then\n cmp.select_prev_item()\n elseif vim.snippet.active({ direction = -1 }) then\n vim.schedule(function()\n vim.snippet.jump(-1)\n end)\n else\n fallback()\n end\n end, { "i", "s" }),\n })\n end,\n}\n')),(0,r.kt)("h2",{id:"change-surround-mappings"},"Change surround mappings"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "echasnovski/mini.surround",\n opts = {\n mappings = {\n add = "gsa",\n delete = "gsd",\n find = "gsf",\n find_left = "gsF",\n highlight = "gsh",\n replace = "gsr",\n update_n_lines = "gsn",\n },\n },\n}\n')),(0,r.kt)("h2",{id:"make-tokyonight-transparent"},"Make TokyoNight Transparent"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "folke/tokyonight.nvim",\n opts = {\n transparent = true,\n styles = {\n sidebars = "transparent",\n floats = "transparent",\n },\n },\n}\n')),(0,r.kt)("h2",{id:"fix-clangd-offset-encoding"},"Fix clangd offset encoding"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "neovim/nvim-lspconfig",\n opts = {\n setup = {\n clangd = function(_, opts)\n opts.capabilities.offsetEncoding = { "utf-16" }\n end,\n },\n },\n}\n')),(0,r.kt)("h2",{id:"use-eslint-for-fix-on-save-and-prettier-for-formatting"},"Use Eslint for fix on save and prettier for formatting"),(0,r.kt)("p",null,"The ",(0,r.kt)("a",{parentName:"p",href:"https://prettier.io/docs/en/integrating-with-linters.html"},"recommended")," setup to\nintegrate prettier with linters is to ",(0,r.kt)("strong",{parentName:"p"},"not")," integrate it with eslint.\nFor this config, we have two extras, to enable eslint fix on save and enable the prettier\nformatter with null-ls."),(0,r.kt)("p",null,"Add the below to your ",(0,r.kt)("inlineCode",{parentName:"p"},"lua/config/lazy.lua")," file"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n { import = "lazyvim.plugins.extras.linting.eslint" },\n { import = "lazyvim.plugins.extras.formatting.prettier" },\n}\n')),(0,r.kt)("h2",{id:"add-eslint-and-use-it-for-formatting"},"Add Eslint and use it for formatting"),(0,r.kt)("p",null,"If your project is using eslint with ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/prettier/eslint-plugin-prettier"},"eslint-plugin-prettier"),",\nthen this will automatically fix eslint errors and format with prettier on save.\nImportant: make sure not to add prettier to null-ls, otherwise this won't work!"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "neovim/nvim-lspconfig",\n opts = {\n servers = { eslint = {} },\n setup = {\n eslint = function()\n require("lazyvim.util").lsp.on_attach(function(client)\n if client.name == "eslint" then\n client.server_capabilities.documentFormattingProvider = true\n elseif client.name == "tsserver" then\n client.server_capabilities.documentFormattingProvider = false\n end\n end)\n end,\n },\n },\n}\n')))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/60620e7a.a42ca864.js b/assets/js/60620e7a.a42ca864.js new file mode 100644 index 0000000000..c7b471fde9 --- /dev/null +++ b/assets/js/60620e7a.a42ca864.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklazyvim=self.webpackChunklazyvim||[]).push([[5892],{3905:(e,n,t)=>{t.d(n,{Zo:()=>c,kt:()=>g});var r=t(7294);function a(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function i(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function o(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?i(Object(t),!0).forEach((function(n){a(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):i(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function u(e,n){if(null==e)return{};var t,r,a=function(e,n){if(null==e)return{};var t,r,a={},i=Object.keys(e);for(r=0;r<i.length;r++)t=i[r],n.indexOf(t)>=0||(a[t]=e[t]);return a}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)t=i[r],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var l=r.createContext({}),s=function(e){var n=r.useContext(l),t=n;return e&&(t="function"==typeof e?e(n):o(o({},n),e)),t},c=function(e){var n=s(e.components);return r.createElement(l.Provider,{value:n},e.children)},d="mdxType",p={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},m=r.forwardRef((function(e,n){var t=e.components,a=e.mdxType,i=e.originalType,l=e.parentName,c=u(e,["components","mdxType","originalType","parentName"]),d=s(t),m=a,g=d["".concat(l,".").concat(m)]||d[m]||p[m]||i;return t?r.createElement(g,o(o({ref:n},c),{},{components:t})):r.createElement(g,o({ref:n},c))}));function g(e,n){var t=arguments,a=n&&n.mdxType;if("string"==typeof e||a){var i=t.length,o=new Array(i);o[0]=m;var u={};for(var l in n)hasOwnProperty.call(n,l)&&(u[l]=n[l]);u.originalType=e,u[d]="string"==typeof e?e:a,o[1]=u;for(var s=2;s<i;s++)o[s]=t[s];return r.createElement.apply(null,o)}return r.createElement.apply(null,t)}m.displayName="MDXCreateElement"},5162:(e,n,t)=>{t.d(n,{Z:()=>o});var r=t(7294),a=t(6010);const i="tabItem_Ymn6";function o(e){let{children:n,hidden:t,className:o}=e;return r.createElement("div",{role:"tabpanel",className:(0,a.Z)(i,o),hidden:t},n)}},4866:(e,n,t)=>{t.d(n,{Z:()=>x});var r=t(7462),a=t(7294),i=t(6010),o=t(2466),u=t(6550),l=t(1980),s=t(7392),c=t(12);function d(e){return function(e){return a.Children.map(e,(e=>{if(!e||(0,a.isValidElement)(e)&&function(e){const{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:n,label:t,attributes:r,default:a}}=e;return{value:n,label:t,attributes:r,default:a}}))}function p(e){const{values:n,children:t}=e;return(0,a.useMemo)((()=>{const e=n??d(t);return function(e){const n=(0,s.l)(e,((e,n)=>e.value===n.value));if(n.length>0)throw new Error(`Docusaurus error: Duplicate values "${n.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[n,t])}function m(e){let{value:n,tabValues:t}=e;return t.some((e=>e.value===n))}function g(e){let{queryString:n=!1,groupId:t}=e;const r=(0,u.k6)(),i=function(e){let{queryString:n=!1,groupId:t}=e;if("string"==typeof n)return n;if(!1===n)return null;if(!0===n&&!t)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return t??null}({queryString:n,groupId:t});return[(0,l._X)(i),(0,a.useCallback)((e=>{if(!i)return;const n=new URLSearchParams(r.location.search);n.set(i,e),r.replace({...r.location,search:n.toString()})}),[i,r])]}function f(e){const{defaultValue:n,queryString:t=!1,groupId:r}=e,i=p(e),[o,u]=(0,a.useState)((()=>function(e){let{defaultValue:n,tabValues:t}=e;if(0===t.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(n){if(!m({value:n,tabValues:t}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${n}" but none of its children has the corresponding value. Available values are: ${t.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return n}const r=t.find((e=>e.default))??t[0];if(!r)throw new Error("Unexpected error: 0 tabValues");return r.value}({defaultValue:n,tabValues:i}))),[l,s]=g({queryString:t,groupId:r}),[d,f]=function(e){let{groupId:n}=e;const t=function(e){return e?`docusaurus.tab.${e}`:null}(n),[r,i]=(0,c.Nk)(t);return[r,(0,a.useCallback)((e=>{t&&i.set(e)}),[t,i])]}({groupId:r}),h=(()=>{const e=l??d;return m({value:e,tabValues:i})?e:null})();(0,a.useLayoutEffect)((()=>{h&&u(h)}),[h]);return{selectedValue:o,selectValue:(0,a.useCallback)((e=>{if(!m({value:e,tabValues:i}))throw new Error(`Can't select invalid tab value=${e}`);u(e),s(e),f(e)}),[s,f,i]),tabValues:i}}var h=t(2389);const b="tabList__CuJ",y="tabItem_LNqP";function v(e){let{className:n,block:t,selectedValue:u,selectValue:l,tabValues:s}=e;const c=[],{blockElementScrollPositionUntilNextRender:d}=(0,o.o5)(),p=e=>{const n=e.currentTarget,t=c.indexOf(n),r=s[t].value;r!==u&&(d(n),l(r))},m=e=>{let n=null;switch(e.key){case"Enter":p(e);break;case"ArrowRight":{const t=c.indexOf(e.currentTarget)+1;n=c[t]??c[0];break}case"ArrowLeft":{const t=c.indexOf(e.currentTarget)-1;n=c[t]??c[c.length-1];break}}n?.focus()};return a.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,i.Z)("tabs",{"tabs--block":t},n)},s.map((e=>{let{value:n,label:t,attributes:o}=e;return a.createElement("li",(0,r.Z)({role:"tab",tabIndex:u===n?0:-1,"aria-selected":u===n,key:n,ref:e=>c.push(e),onKeyDown:m,onClick:p},o,{className:(0,i.Z)("tabs__item",y,o?.className,{"tabs__item--active":u===n})}),t??n)})))}function k(e){let{lazy:n,children:t,selectedValue:r}=e;const i=(Array.isArray(t)?t:[t]).filter(Boolean);if(n){const e=i.find((e=>e.props.value===r));return e?(0,a.cloneElement)(e,{className:"margin-top--md"}):null}return a.createElement("div",{className:"margin-top--md"},i.map(((e,n)=>(0,a.cloneElement)(e,{key:n,hidden:e.props.value!==r}))))}function w(e){const n=f(e);return a.createElement("div",{className:(0,i.Z)("tabs-container",b)},a.createElement(v,(0,r.Z)({},e,n)),a.createElement(k,(0,r.Z)({},e,n)))}function x(e){const n=(0,h.Z)();return a.createElement(w,(0,r.Z)({key:String(n)},e))}},6933:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>l,default:()=>m,frontMatter:()=>u,metadata:()=>s,toc:()=>d});var r=t(7462),a=(t(7294),t(3905)),i=t(4866),o=t(5162);const u={},l="Mini-surround",s={unversionedId:"extras/coding/mini-surround",id:"extras/coding/mini-surround",title:"Mini-surround",description:"You can enable the extra with the :LazyExtras command.",source:"@site/docs/extras/coding/mini-surround.md",sourceDirName:"extras/coding",slug:"/extras/coding/mini-surround",permalink:"/extras/coding/mini-surround",draft:!1,editUrl:"https://github.com/LazyVim/lazyvim.github.io/tree/main/docs/extras/coding/mini-surround.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Mini-snippets",permalink:"/extras/coding/mini-snippets"},next:{title:"Neogen",permalink:"/extras/coding/neogen"}},c={},d=[{value:"mini.surround",id:"minisurround",level:2}],p={toc:d};function m(e){let{components:n,...t}=e;return(0,a.kt)("wrapper",(0,r.Z)({},p,t,{components:n,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"mini-surround"},(0,a.kt)("inlineCode",{parentName:"h1"},"Mini-surround")),(0,a.kt)("admonition",{type:"info"},(0,a.kt)("p",{parentName:"admonition"},"You can enable the extra with the ",(0,a.kt)("inlineCode",{parentName:"p"},":LazyExtras")," command.\nPlugins marked as optional will only be configured if they are installed.")),(0,a.kt)("p",null,"Below you can find a list of included plugins and their default settings."),(0,a.kt)("admonition",{type:"caution"},(0,a.kt)("p",{parentName:"admonition"},"You don't need to copy the default settings to your config.\nThey are only shown here for reference.")),(0,a.kt)("h2",{id:"minisurround"},(0,a.kt)("a",{parentName:"h2",href:"https://github.com/nvim-mini/mini.surround"},"mini.surround")),(0,a.kt)(i.Z,{mdxType:"Tabs"},(0,a.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'opts = {\n mappings = {\n add = "gsa", -- Add surrounding in Normal and Visual modes\n delete = "gsd", -- Delete surrounding\n find = "gsf", -- Find surrounding (to the right)\n find_left = "gsF", -- Find surrounding (to the left)\n highlight = "gsh", -- Highlight surrounding\n replace = "gsr", -- Replace surrounding\n update_n_lines = "gsn", -- Update `n_lines`\n },\n}\n'))),(0,a.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "nvim-mini/mini.surround",\n keys = function(_, keys)\n -- Populate the keys based on the user\'s options\n local opts = LazyVim.opts("mini.surround")\n local mappings = {\n { opts.mappings.add, desc = "Add Surrounding", mode = { "n", "x" } },\n { opts.mappings.delete, desc = "Delete Surrounding" },\n { opts.mappings.find, desc = "Find Right Surrounding" },\n { opts.mappings.find_left, desc = "Find Left Surrounding" },\n { opts.mappings.highlight, desc = "Highlight Surrounding" },\n { opts.mappings.replace, desc = "Replace Surrounding" },\n { opts.mappings.update_n_lines, desc = "Update `MiniSurround.config.n_lines`" },\n }\n mappings = vim.tbl_filter(function(m)\n return m[1] and #m[1] > 0\n end, mappings)\n return vim.list_extend(mappings, keys)\n end,\n opts = {\n mappings = {\n add = "gsa", -- Add surrounding in Normal and Visual modes\n delete = "gsd", -- Delete surrounding\n find = "gsf", -- Find surrounding (to the right)\n find_left = "gsF", -- Find surrounding (to the left)\n highlight = "gsh", -- Highlight surrounding\n replace = "gsr", -- Replace surrounding\n update_n_lines = "gsn", -- Update `n_lines`\n },\n },\n}\n')))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/60f466ed.2ccb04cc.js b/assets/js/60f466ed.2ccb04cc.js new file mode 100644 index 0000000000..ca6aaa6cce --- /dev/null +++ b/assets/js/60f466ed.2ccb04cc.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklazyvim=self.webpackChunklazyvim||[]).push([[190],{3905:(e,n,t)=>{t.d(n,{Zo:()=>s,kt:()=>m});var r=t(7294);function a(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function o(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function l(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?o(Object(t),!0).forEach((function(n){a(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):o(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function i(e,n){if(null==e)return{};var t,r,a=function(e,n){if(null==e)return{};var t,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)t=o[r],n.indexOf(t)>=0||(a[t]=e[t]);return a}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)t=o[r],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var u=r.createContext({}),c=function(e){var n=r.useContext(u),t=n;return e&&(t="function"==typeof e?e(n):l(l({},n),e)),t},s=function(e){var n=c(e.components);return r.createElement(u.Provider,{value:n},e.children)},p="mdxType",f={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},d=r.forwardRef((function(e,n){var t=e.components,a=e.mdxType,o=e.originalType,u=e.parentName,s=i(e,["components","mdxType","originalType","parentName"]),p=c(t),d=a,m=p["".concat(u,".").concat(d)]||p[d]||f[d]||o;return t?r.createElement(m,l(l({ref:n},s),{},{components:t})):r.createElement(m,l({ref:n},s))}));function m(e,n){var t=arguments,a=n&&n.mdxType;if("string"==typeof e||a){var o=t.length,l=new Array(o);l[0]=d;var i={};for(var u in n)hasOwnProperty.call(n,u)&&(i[u]=n[u]);i.originalType=e,i[p]="string"==typeof e?e:a,l[1]=i;for(var c=2;c<o;c++)l[c]=t[c];return r.createElement.apply(null,l)}return r.createElement.apply(null,t)}d.displayName="MDXCreateElement"},5162:(e,n,t)=>{t.d(n,{Z:()=>l});var r=t(7294),a=t(6010);const o="tabItem_Ymn6";function l(e){let{children:n,hidden:t,className:l}=e;return r.createElement("div",{role:"tabpanel",className:(0,a.Z)(o,l),hidden:t},n)}},4866:(e,n,t)=>{t.d(n,{Z:()=>w});var r=t(7462),a=t(7294),o=t(6010),l=t(2466),i=t(6550),u=t(1980),c=t(7392),s=t(12);function p(e){return function(e){return a.Children.map(e,(e=>{if(!e||(0,a.isValidElement)(e)&&function(e){const{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:n,label:t,attributes:r,default:a}}=e;return{value:n,label:t,attributes:r,default:a}}))}function f(e){const{values:n,children:t}=e;return(0,a.useMemo)((()=>{const e=n??p(t);return function(e){const n=(0,c.l)(e,((e,n)=>e.value===n.value));if(n.length>0)throw new Error(`Docusaurus error: Duplicate values "${n.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[n,t])}function d(e){let{value:n,tabValues:t}=e;return t.some((e=>e.value===n))}function m(e){let{queryString:n=!1,groupId:t}=e;const r=(0,i.k6)(),o=function(e){let{queryString:n=!1,groupId:t}=e;if("string"==typeof n)return n;if(!1===n)return null;if(!0===n&&!t)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return t??null}({queryString:n,groupId:t});return[(0,u._X)(o),(0,a.useCallback)((e=>{if(!o)return;const n=new URLSearchParams(r.location.search);n.set(o,e),r.replace({...r.location,search:n.toString()})}),[o,r])]}function b(e){const{defaultValue:n,queryString:t=!1,groupId:r}=e,o=f(e),[l,i]=(0,a.useState)((()=>function(e){let{defaultValue:n,tabValues:t}=e;if(0===t.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(n){if(!d({value:n,tabValues:t}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${n}" but none of its children has the corresponding value. Available values are: ${t.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return n}const r=t.find((e=>e.default))??t[0];if(!r)throw new Error("Unexpected error: 0 tabValues");return r.value}({defaultValue:n,tabValues:o}))),[u,c]=m({queryString:t,groupId:r}),[p,b]=function(e){let{groupId:n}=e;const t=function(e){return e?`docusaurus.tab.${e}`:null}(n),[r,o]=(0,s.Nk)(t);return[r,(0,a.useCallback)((e=>{t&&o.set(e)}),[t,o])]}({groupId:r}),v=(()=>{const e=u??p;return d({value:e,tabValues:o})?e:null})();(0,a.useLayoutEffect)((()=>{v&&i(v)}),[v]);return{selectedValue:l,selectValue:(0,a.useCallback)((e=>{if(!d({value:e,tabValues:o}))throw new Error(`Can't select invalid tab value=${e}`);i(e),c(e),b(e)}),[c,b,o]),tabValues:o}}var v=t(2389);const g="tabList__CuJ",h="tabItem_LNqP";function y(e){let{className:n,block:t,selectedValue:i,selectValue:u,tabValues:c}=e;const s=[],{blockElementScrollPositionUntilNextRender:p}=(0,l.o5)(),f=e=>{const n=e.currentTarget,t=s.indexOf(n),r=c[t].value;r!==i&&(p(n),u(r))},d=e=>{let n=null;switch(e.key){case"Enter":f(e);break;case"ArrowRight":{const t=s.indexOf(e.currentTarget)+1;n=s[t]??s[0];break}case"ArrowLeft":{const t=s.indexOf(e.currentTarget)-1;n=s[t]??s[s.length-1];break}}n?.focus()};return a.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,o.Z)("tabs",{"tabs--block":t},n)},c.map((e=>{let{value:n,label:t,attributes:l}=e;return a.createElement("li",(0,r.Z)({role:"tab",tabIndex:i===n?0:-1,"aria-selected":i===n,key:n,ref:e=>s.push(e),onKeyDown:d,onClick:f},l,{className:(0,o.Z)("tabs__item",h,l?.className,{"tabs__item--active":i===n})}),t??n)})))}function x(e){let{lazy:n,children:t,selectedValue:r}=e;const o=(Array.isArray(t)?t:[t]).filter(Boolean);if(n){const e=o.find((e=>e.props.value===r));return e?(0,a.cloneElement)(e,{className:"margin-top--md"}):null}return a.createElement("div",{className:"margin-top--md"},o.map(((e,n)=>(0,a.cloneElement)(e,{key:n,hidden:e.props.value!==r}))))}function k(e){const n=b(e);return a.createElement("div",{className:(0,o.Z)("tabs-container",g)},a.createElement(y,(0,r.Z)({},e,n)),a.createElement(x,(0,r.Z)({},e,n)))}function w(e){const n=(0,v.Z)();return a.createElement(k,(0,r.Z)({key:String(n)},e))}},9380:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>s,contentTitle:()=>u,default:()=>d,frontMatter:()=>i,metadata:()=>c,toc:()=>p});var r=t(7462),a=(t(7294),t(3905)),o=t(4866),l=t(5162);const i={},u="Refactoring",c={unversionedId:"extras/editor/refactoring",id:"extras/editor/refactoring",title:"Refactoring",description:"You can enable the extra with the :LazyExtras command.",source:"@site/docs/extras/editor/refactoring.md",sourceDirName:"extras/editor",slug:"/extras/editor/refactoring",permalink:"/extras/editor/refactoring",draft:!1,editUrl:"https://github.com/LazyVim/lazyvim.github.io/tree/main/docs/extras/editor/refactoring.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Overseer",permalink:"/extras/editor/overseer"},next:{title:"Snacks_explorer",permalink:"/extras/editor/snacks_explorer"}},s={},p=[{value:"refactoring.nvim",id:"refactoringnvim",level:2},{value:"plenary.nvim",id:"plenarynvim",level:2},{value:"nvim-treesitter",id:"nvim-treesitter",level:2}],f={toc:p};function d(e){let{components:n,...t}=e;return(0,a.kt)("wrapper",(0,r.Z)({},f,t,{components:n,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"refactoring"},(0,a.kt)("inlineCode",{parentName:"h1"},"Refactoring")),(0,a.kt)("admonition",{type:"info"},(0,a.kt)("p",{parentName:"admonition"},"You can enable the extra with the ",(0,a.kt)("inlineCode",{parentName:"p"},":LazyExtras")," command.\nPlugins marked as optional will only be configured if they are installed.")),(0,a.kt)("p",null,"Below you can find a list of included plugins and their default settings."),(0,a.kt)("admonition",{type:"caution"},(0,a.kt)("p",{parentName:"admonition"},"You don't need to copy the default settings to your config.\nThey are only shown here for reference.")),(0,a.kt)("h2",{id:"refactoringnvim"},(0,a.kt)("a",{parentName:"h2",href:"https://github.com/ThePrimeagen/refactoring.nvim"},"refactoring.nvim")),(0,a.kt)(o.Z,{mdxType:"Tabs"},(0,a.kt)(l.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},"opts = {\n prompt_func_return_type = {\n go = false,\n java = false,\n cpp = false,\n c = false,\n h = false,\n hpp = false,\n cxx = false,\n },\n prompt_func_param_type = {\n go = false,\n java = false,\n cpp = false,\n c = false,\n h = false,\n hpp = false,\n cxx = false,\n },\n printf_statements = {},\n print_var_statements = {},\n show_success_message = true, -- shows a message with information about the refactor on success\n -- i.e. [Refactor] Inlined 3 variable occurrences\n}\n"))),(0,a.kt)(l.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "ThePrimeagen/refactoring.nvim",\n event = { "BufReadPre", "BufNewFile" },\n dependencies = {\n "nvim-lua/plenary.nvim",\n "nvim-treesitter/nvim-treesitter",\n },\n keys = {\n { "<leader>r", "", desc = "+refactor", mode = { "n", "x" } },\n {\n "<leader>rs",\n pick,\n mode = { "n", "x" },\n desc = "Refactor",\n },\n {\n "<leader>ri",\n function()\n return require("refactoring").refactor("Inline Variable")\n end,\n mode = { "n", "x" },\n desc = "Inline Variable",\n expr = true,\n },\n {\n "<leader>rb",\n function()\n return require("refactoring").refactor("Extract Block")\n end,\n mode = { "n", "x" },\n desc = "Extract Block",\n expr = true,\n },\n {\n "<leader>rf",\n function()\n return require("refactoring").refactor("Extract Block To File")\n end,\n mode = { "n", "x" },\n desc = "Extract Block To File",\n expr = true,\n },\n {\n "<leader>rP",\n function()\n require("refactoring").debug.printf({ below = false })\n end,\n desc = "Debug Print",\n },\n {\n "<leader>rp",\n function()\n require("refactoring").debug.print_var({ normal = true })\n end,\n mode = { "n", "x" },\n desc = "Debug Print Variable",\n },\n {\n "<leader>rc",\n function()\n require("refactoring").debug.cleanup({})\n end,\n desc = "Debug Cleanup",\n },\n {\n "<leader>rf",\n function()\n return require("refactoring").refactor("Extract Function")\n end,\n mode = { "n", "x" },\n desc = "Extract Function",\n expr = true,\n },\n {\n "<leader>rF",\n function()\n return require("refactoring").refactor("Extract Function To File")\n end,\n mode = { "n", "x" },\n desc = "Extract Function To File",\n expr = true,\n },\n {\n "<leader>rx",\n function()\n return require("refactoring").refactor("Extract Variable")\n end,\n mode = { "n", "x" },\n desc = "Extract Variable",\n expr = true,\n },\n {\n "<leader>rp",\n function()\n require("refactoring").debug.print_var()\n end,\n mode = { "n", "x" },\n desc = "Debug Print Variable",\n },\n },\n opts = {\n prompt_func_return_type = {\n go = false,\n java = false,\n cpp = false,\n c = false,\n h = false,\n hpp = false,\n cxx = false,\n },\n prompt_func_param_type = {\n go = false,\n java = false,\n cpp = false,\n c = false,\n h = false,\n hpp = false,\n cxx = false,\n },\n printf_statements = {},\n print_var_statements = {},\n show_success_message = true, -- shows a message with information about the refactor on success\n -- i.e. [Refactor] Inlined 3 variable occurrences\n },\n config = function(_, opts)\n require("refactoring").setup(opts)\n if LazyVim.has("telescope.nvim") then\n LazyVim.on_load("telescope.nvim", function()\n require("telescope").load_extension("refactoring")\n end)\n end\n end,\n}\n')))),(0,a.kt)("h2",{id:"plenarynvim"},(0,a.kt)("a",{parentName:"h2",href:"https://github.com/nvim-lua/plenary.nvim"},"plenary.nvim")),(0,a.kt)(o.Z,{mdxType:"Tabs"},(0,a.kt)(l.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},"opts = nil\n"))),(0,a.kt)(l.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "nvim-lua/plenary.nvim",\n "nvim-treesitter/nvim-treesitter",\n}\n')))),(0,a.kt)("h2",{id:"nvim-treesitter"},(0,a.kt)("a",{parentName:"h2",href:"https://github.com/nvim-treesitter/nvim-treesitter"},"nvim-treesitter")),(0,a.kt)(o.Z,{mdxType:"Tabs"},(0,a.kt)(l.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},"opts = nil\n"))),(0,a.kt)(l.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'"nvim-treesitter/nvim-treesitter"\n')))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/63e110b2.96d5a1b1.js b/assets/js/63e110b2.96d5a1b1.js new file mode 100644 index 0000000000..d34bb5c6be --- /dev/null +++ b/assets/js/63e110b2.96d5a1b1.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklazyvim=self.webpackChunklazyvim||[]).push([[2364],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>f});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?l(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):l(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function u(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},l=Object.keys(e);for(r=0;r<l.length;r++)n=l[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r<l.length;r++)n=l[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var i=r.createContext({}),s=function(e){var t=r.useContext(i),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},c=function(e){var t=s(e.components);return r.createElement(i.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,l=e.originalType,i=e.parentName,c=u(e,["components","mdxType","originalType","parentName"]),p=s(n),d=a,f=p["".concat(i,".").concat(d)]||p[d]||m[d]||l;return n?r.createElement(f,o(o({ref:t},c),{},{components:n})):r.createElement(f,o({ref:t},c))}));function f(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var l=n.length,o=new Array(l);o[0]=d;var u={};for(var i in t)hasOwnProperty.call(t,i)&&(u[i]=t[i]);u.originalType=e,u[p]="string"==typeof e?e:a,o[1]=u;for(var s=2;s<l;s++)o[s]=n[s];return r.createElement.apply(null,o)}return r.createElement.apply(null,n)}d.displayName="MDXCreateElement"},5162:(e,t,n)=>{n.d(t,{Z:()=>o});var r=n(7294),a=n(6010);const l="tabItem_Ymn6";function o(e){let{children:t,hidden:n,className:o}=e;return r.createElement("div",{role:"tabpanel",className:(0,a.Z)(l,o),hidden:n},t)}},4866:(e,t,n)=>{n.d(t,{Z:()=>T});var r=n(7462),a=n(7294),l=n(6010),o=n(2466),u=n(6550),i=n(1980),s=n(7392),c=n(12);function p(e){return function(e){return a.Children.map(e,(e=>{if(!e||(0,a.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:t,label:n,attributes:r,default:a}}=e;return{value:t,label:n,attributes:r,default:a}}))}function m(e){const{values:t,children:n}=e;return(0,a.useMemo)((()=>{const e=t??p(n);return function(e){const t=(0,s.l)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[t,n])}function d(e){let{value:t,tabValues:n}=e;return n.some((e=>e.value===t))}function f(e){let{queryString:t=!1,groupId:n}=e;const r=(0,u.k6)(),l=function(e){let{queryString:t=!1,groupId:n}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!n)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return n??null}({queryString:t,groupId:n});return[(0,i._X)(l),(0,a.useCallback)((e=>{if(!l)return;const t=new URLSearchParams(r.location.search);t.set(l,e),r.replace({...r.location,search:t.toString()})}),[l,r])]}function b(e){const{defaultValue:t,queryString:n=!1,groupId:r}=e,l=m(e),[o,u]=(0,a.useState)((()=>function(e){let{defaultValue:t,tabValues:n}=e;if(0===n.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(t){if(!d({value:t,tabValues:n}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${n.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const r=n.find((e=>e.default))??n[0];if(!r)throw new Error("Unexpected error: 0 tabValues");return r.value}({defaultValue:t,tabValues:l}))),[i,s]=f({queryString:n,groupId:r}),[p,b]=function(e){let{groupId:t}=e;const n=function(e){return e?`docusaurus.tab.${e}`:null}(t),[r,l]=(0,c.Nk)(n);return[r,(0,a.useCallback)((e=>{n&&l.set(e)}),[n,l])]}({groupId:r}),h=(()=>{const e=i??p;return d({value:e,tabValues:l})?e:null})();(0,a.useLayoutEffect)((()=>{h&&u(h)}),[h]);return{selectedValue:o,selectValue:(0,a.useCallback)((e=>{if(!d({value:e,tabValues:l}))throw new Error(`Can't select invalid tab value=${e}`);u(e),s(e),b(e)}),[s,b,l]),tabValues:l}}var h=n(2389);const g="tabList__CuJ",y="tabItem_LNqP";function v(e){let{className:t,block:n,selectedValue:u,selectValue:i,tabValues:s}=e;const c=[],{blockElementScrollPositionUntilNextRender:p}=(0,o.o5)(),m=e=>{const t=e.currentTarget,n=c.indexOf(t),r=s[n].value;r!==u&&(p(t),i(r))},d=e=>{let t=null;switch(e.key){case"Enter":m(e);break;case"ArrowRight":{const n=c.indexOf(e.currentTarget)+1;t=c[n]??c[0];break}case"ArrowLeft":{const n=c.indexOf(e.currentTarget)-1;t=c[n]??c[c.length-1];break}}t?.focus()};return a.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,l.Z)("tabs",{"tabs--block":n},t)},s.map((e=>{let{value:t,label:n,attributes:o}=e;return a.createElement("li",(0,r.Z)({role:"tab",tabIndex:u===t?0:-1,"aria-selected":u===t,key:t,ref:e=>c.push(e),onKeyDown:d,onClick:m},o,{className:(0,l.Z)("tabs__item",y,o?.className,{"tabs__item--active":u===t})}),n??t)})))}function k(e){let{lazy:t,children:n,selectedValue:r}=e;const l=(Array.isArray(n)?n:[n]).filter(Boolean);if(t){const e=l.find((e=>e.props.value===r));return e?(0,a.cloneElement)(e,{className:"margin-top--md"}):null}return a.createElement("div",{className:"margin-top--md"},l.map(((e,t)=>(0,a.cloneElement)(e,{key:t,hidden:e.props.value!==r}))))}function w(e){const t=b(e);return a.createElement("div",{className:(0,l.Z)("tabs-container",g)},a.createElement(v,(0,r.Z)({},e,t)),a.createElement(k,(0,r.Z)({},e,t)))}function T(e){const t=(0,h.Z)();return a.createElement(w,(0,r.Z)({key:String(t)},e))}},5996:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>d,frontMatter:()=>u,metadata:()=>s,toc:()=>p});var r=n(7462),a=(n(7294),n(3905)),l=n(4866),o=n(5162);const u={},i="Toml",s={unversionedId:"extras/lang/toml",id:"extras/lang/toml",title:"Toml",description:"You can enable the extra with the :LazyExtras command.",source:"@site/docs/extras/lang/toml.md",sourceDirName:"extras/lang",slug:"/extras/lang/toml",permalink:"/extras/lang/toml",draft:!1,editUrl:"https://github.com/LazyVim/lazyvim.github.io/tree/main/docs/extras/lang/toml.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Thrift",permalink:"/extras/lang/thrift"},next:{title:"Twig",permalink:"/extras/lang/twig"}},c={},p=[{value:"nvim-lspconfig",id:"nvim-lspconfig",level:2}],m={toc:p};function d(e){let{components:t,...n}=e;return(0,a.kt)("wrapper",(0,r.Z)({},m,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"toml"},(0,a.kt)("inlineCode",{parentName:"h1"},"Toml")),(0,a.kt)("admonition",{type:"info"},(0,a.kt)("p",{parentName:"admonition"},"You can enable the extra with the ",(0,a.kt)("inlineCode",{parentName:"p"},":LazyExtras")," command.\nPlugins marked as optional will only be configured if they are installed.")),(0,a.kt)("p",null,"Below you can find a list of included plugins and their default settings."),(0,a.kt)("admonition",{type:"caution"},(0,a.kt)("p",{parentName:"admonition"},"You don't need to copy the default settings to your config.\nThey are only shown here for reference.")),(0,a.kt)("h2",{id:"nvim-lspconfig"},(0,a.kt)("a",{parentName:"h2",href:"https://github.com/neovim/nvim-lspconfig"},"nvim-lspconfig")),(0,a.kt)(l.Z,{mdxType:"Tabs"},(0,a.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},"opts = nil\n"))),(0,a.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'"neovim/nvim-lspconfig"\n')))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/668a8ee6.2a5ae62b.js b/assets/js/668a8ee6.2a5ae62b.js new file mode 100644 index 0000000000..ca731393eb --- /dev/null +++ b/assets/js/668a8ee6.2a5ae62b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklazyvim=self.webpackChunklazyvim||[]).push([[513],{3905:(e,n,t)=>{t.d(n,{Zo:()=>c,kt:()=>f});var a=t(7294);function r(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function l(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,a)}return t}function o(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?l(Object(t),!0).forEach((function(n){r(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):l(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function i(e,n){if(null==e)return{};var t,a,r=function(e,n){if(null==e)return{};var t,a,r={},l=Object.keys(e);for(a=0;a<l.length;a++)t=l[a],n.indexOf(t)>=0||(r[t]=e[t]);return r}(e,n);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a<l.length;a++)t=l[a],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(r[t]=e[t])}return r}var s=a.createContext({}),u=function(e){var n=a.useContext(s),t=n;return e&&(t="function"==typeof e?e(n):o(o({},n),e)),t},c=function(e){var n=u(e.components);return a.createElement(s.Provider,{value:n},e.children)},d="mdxType",p={inlineCode:"code",wrapper:function(e){var n=e.children;return a.createElement(a.Fragment,{},n)}},m=a.forwardRef((function(e,n){var t=e.components,r=e.mdxType,l=e.originalType,s=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),d=u(t),m=r,f=d["".concat(s,".").concat(m)]||d[m]||p[m]||l;return t?a.createElement(f,o(o({ref:n},c),{},{components:t})):a.createElement(f,o({ref:n},c))}));function f(e,n){var t=arguments,r=n&&n.mdxType;if("string"==typeof e||r){var l=t.length,o=new Array(l);o[0]=m;var i={};for(var s in n)hasOwnProperty.call(n,s)&&(i[s]=n[s]);i.originalType=e,i[d]="string"==typeof e?e:r,o[1]=i;for(var u=2;u<l;u++)o[u]=t[u];return a.createElement.apply(null,o)}return a.createElement.apply(null,t)}m.displayName="MDXCreateElement"},5162:(e,n,t)=>{t.d(n,{Z:()=>o});var a=t(7294),r=t(6010);const l="tabItem_Ymn6";function o(e){let{children:n,hidden:t,className:o}=e;return a.createElement("div",{role:"tabpanel",className:(0,r.Z)(l,o),hidden:t},n)}},4866:(e,n,t)=>{t.d(n,{Z:()=>x});var a=t(7462),r=t(7294),l=t(6010),o=t(2466),i=t(6550),s=t(1980),u=t(7392),c=t(12);function d(e){return function(e){return r.Children.map(e,(e=>{if(!e||(0,r.isValidElement)(e)&&function(e){const{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:n,label:t,attributes:a,default:r}}=e;return{value:n,label:t,attributes:a,default:r}}))}function p(e){const{values:n,children:t}=e;return(0,r.useMemo)((()=>{const e=n??d(t);return function(e){const n=(0,u.l)(e,((e,n)=>e.value===n.value));if(n.length>0)throw new Error(`Docusaurus error: Duplicate values "${n.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[n,t])}function m(e){let{value:n,tabValues:t}=e;return t.some((e=>e.value===n))}function f(e){let{queryString:n=!1,groupId:t}=e;const a=(0,i.k6)(),l=function(e){let{queryString:n=!1,groupId:t}=e;if("string"==typeof n)return n;if(!1===n)return null;if(!0===n&&!t)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return t??null}({queryString:n,groupId:t});return[(0,s._X)(l),(0,r.useCallback)((e=>{if(!l)return;const n=new URLSearchParams(a.location.search);n.set(l,e),a.replace({...a.location,search:n.toString()})}),[l,a])]}function b(e){const{defaultValue:n,queryString:t=!1,groupId:a}=e,l=p(e),[o,i]=(0,r.useState)((()=>function(e){let{defaultValue:n,tabValues:t}=e;if(0===t.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(n){if(!m({value:n,tabValues:t}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${n}" but none of its children has the corresponding value. Available values are: ${t.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return n}const a=t.find((e=>e.default))??t[0];if(!a)throw new Error("Unexpected error: 0 tabValues");return a.value}({defaultValue:n,tabValues:l}))),[s,u]=f({queryString:t,groupId:a}),[d,b]=function(e){let{groupId:n}=e;const t=function(e){return e?`docusaurus.tab.${e}`:null}(n),[a,l]=(0,c.Nk)(t);return[a,(0,r.useCallback)((e=>{t&&l.set(e)}),[t,l])]}({groupId:a}),y=(()=>{const e=s??d;return m({value:e,tabValues:l})?e:null})();(0,r.useLayoutEffect)((()=>{y&&i(y)}),[y]);return{selectedValue:o,selectValue:(0,r.useCallback)((e=>{if(!m({value:e,tabValues:l}))throw new Error(`Can't select invalid tab value=${e}`);i(e),u(e),b(e)}),[u,b,l]),tabValues:l}}var y=t(2389);const g="tabList__CuJ",h="tabItem_LNqP";function v(e){let{className:n,block:t,selectedValue:i,selectValue:s,tabValues:u}=e;const c=[],{blockElementScrollPositionUntilNextRender:d}=(0,o.o5)(),p=e=>{const n=e.currentTarget,t=c.indexOf(n),a=u[t].value;a!==i&&(d(n),s(a))},m=e=>{let n=null;switch(e.key){case"Enter":p(e);break;case"ArrowRight":{const t=c.indexOf(e.currentTarget)+1;n=c[t]??c[0];break}case"ArrowLeft":{const t=c.indexOf(e.currentTarget)-1;n=c[t]??c[c.length-1];break}}n?.focus()};return r.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,l.Z)("tabs",{"tabs--block":t},n)},u.map((e=>{let{value:n,label:t,attributes:o}=e;return r.createElement("li",(0,a.Z)({role:"tab",tabIndex:i===n?0:-1,"aria-selected":i===n,key:n,ref:e=>c.push(e),onKeyDown:m,onClick:p},o,{className:(0,l.Z)("tabs__item",h,o?.className,{"tabs__item--active":i===n})}),t??n)})))}function k(e){let{lazy:n,children:t,selectedValue:a}=e;const l=(Array.isArray(t)?t:[t]).filter(Boolean);if(n){const e=l.find((e=>e.props.value===a));return e?(0,r.cloneElement)(e,{className:"margin-top--md"}):null}return r.createElement("div",{className:"margin-top--md"},l.map(((e,n)=>(0,r.cloneElement)(e,{key:n,hidden:e.props.value!==a}))))}function _(e){const n=b(e);return r.createElement("div",{className:(0,l.Z)("tabs-container",g)},r.createElement(v,(0,a.Z)({},e,n)),r.createElement(k,(0,a.Z)({},e,n)))}function x(e){const n=(0,y.Z)();return r.createElement(_,(0,a.Z)({key:String(n)},e))}},5877:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>s,default:()=>m,frontMatter:()=>i,metadata:()=>u,toc:()=>d});var a=t(7462),r=(t(7294),t(3905)),l=t(4866),o=t(5162);const i={},s="Aerial",u={unversionedId:"extras/editor/aerial",id:"extras/editor/aerial",title:"Aerial",description:"You can enable the extra with the :LazyExtras command.",source:"@site/docs/extras/editor/aerial.md",sourceDirName:"extras/editor",slug:"/extras/editor/aerial",permalink:"/extras/editor/aerial",draft:!1,editUrl:"https://github.com/LazyVim/lazyvim.github.io/tree/main/docs/extras/editor/aerial.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"DAP Neovim Lua Adapter",permalink:"/extras/dap/nlua"},next:{title:"Dial",permalink:"/extras/editor/dial"}},c={},d=[{value:"aerial.nvim",id:"aerialnvim",level:2},{value:"trouble.nvim <em>(optional)</em>",id:"troublenvim-optional",level:2},{value:"telescope.nvim <em>(optional)</em>",id:"telescopenvim-optional",level:2},{value:"edgy.nvim <em>(optional)</em>",id:"edgynvim-optional",level:2},{value:"lualine.nvim <em>(optional)</em>",id:"lualinenvim-optional",level:2}],p={toc:d};function m(e){let{components:n,...t}=e;return(0,r.kt)("wrapper",(0,a.Z)({},p,t,{components:n,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"aerial"},"Aerial"),(0,r.kt)("admonition",{type:"info"},(0,r.kt)("p",{parentName:"admonition"},"You can enable the extra with the ",(0,r.kt)("inlineCode",{parentName:"p"},":LazyExtras")," command.\nPlugins marked as optional will only be configured if they are installed.")),(0,r.kt)("p",null,"Below you can find a list of included plugins and their default settings."),(0,r.kt)("admonition",{type:"caution"},(0,r.kt)("p",{parentName:"admonition"},"You don't need to copy the default settings to your config.\nThey are only shown here for reference.")),(0,r.kt)("h2",{id:"aerialnvim"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/stevearc/aerial.nvim"},"aerial.nvim")),(0,r.kt)(l.Z,{mdxType:"Tabs"},(0,r.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = function()\n local icons = vim.deepcopy(LazyVim.config.icons.kinds)\n\n -- HACK: fix lua\'s weird choice for `Package` for control\n -- structures like if/else/for/etc.\n icons.lua = { Package = icons.Control }\n\n ---@type table<string, string[]>|false\n local filter_kind = false\n if LazyVim.config.kind_filter then\n filter_kind = assert(vim.deepcopy(LazyVim.config.kind_filter))\n filter_kind._ = filter_kind.default\n filter_kind.default = nil\n end\n\n local opts = {\n attach_mode = "global",\n backends = { "lsp", "treesitter", "markdown", "man" },\n show_guides = true,\n layout = {\n resize_to_content = false,\n win_opts = {\n winhl = "Normal:NormalFloat,FloatBorder:NormalFloat,SignColumn:SignColumnSB",\n signcolumn = "yes",\n statuscolumn = " ",\n },\n },\n icons = icons,\n filter_kind = filter_kind,\n -- stylua: ignore\n guides = {\n mid_item = "\u251c\u2574",\n last_item = "\u2514\u2574",\n nested_top = "\u2502 ",\n whitespace = " ",\n },\n }\n return opts\nend\n'))),(0,r.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "stevearc/aerial.nvim",\n event = "LazyFile",\n opts = function()\n local icons = vim.deepcopy(LazyVim.config.icons.kinds)\n\n -- HACK: fix lua\'s weird choice for `Package` for control\n -- structures like if/else/for/etc.\n icons.lua = { Package = icons.Control }\n\n ---@type table<string, string[]>|false\n local filter_kind = false\n if LazyVim.config.kind_filter then\n filter_kind = assert(vim.deepcopy(LazyVim.config.kind_filter))\n filter_kind._ = filter_kind.default\n filter_kind.default = nil\n end\n\n local opts = {\n attach_mode = "global",\n backends = { "lsp", "treesitter", "markdown", "man" },\n show_guides = true,\n layout = {\n resize_to_content = false,\n win_opts = {\n winhl = "Normal:NormalFloat,FloatBorder:NormalFloat,SignColumn:SignColumnSB",\n signcolumn = "yes",\n statuscolumn = " ",\n },\n },\n icons = icons,\n filter_kind = filter_kind,\n -- stylua: ignore\n guides = {\n mid_item = "\u251c\u2574",\n last_item = "\u2514\u2574",\n nested_top = "\u2502 ",\n whitespace = " ",\n },\n }\n return opts\n end,\n keys = {\n { "<leader>cs", "<cmd>AerialToggle<cr>", desc = "Aerial (Symbols)" },\n },\n}\n')))),(0,r.kt)("h2",{id:"troublenvim-optional"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/folke/trouble.nvim"},"trouble.nvim")," ",(0,r.kt)("em",{parentName:"h2"},"(optional)")),(0,r.kt)(l.Z,{mdxType:"Tabs"},(0,r.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},"opts = nil\n"))),(0,r.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "folke/trouble.nvim",\n optional = true,\n keys = {\n { "<leader>cs", false },\n },\n}\n')))),(0,r.kt)("h2",{id:"telescopenvim-optional"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/nvim-telescope/telescope.nvim"},"telescope.nvim")," ",(0,r.kt)("em",{parentName:"h2"},"(optional)")),(0,r.kt)("p",null," Telescope integration"),(0,r.kt)(l.Z,{mdxType:"Tabs"},(0,r.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = function()\n LazyVim.on_load("telescope.nvim", function()\n require("telescope").load_extension("aerial")\n end)\nend\n'))),(0,r.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "nvim-telescope/telescope.nvim",\n optional = true,\n opts = function()\n LazyVim.on_load("telescope.nvim", function()\n require("telescope").load_extension("aerial")\n end)\n end,\n keys = {\n {\n "<leader>ss",\n "<cmd>Telescope aerial<cr>",\n desc = "Goto Symbol (Aerial)",\n },\n },\n}\n')))),(0,r.kt)("h2",{id:"edgynvim-optional"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/folke/edgy.nvim"},"edgy.nvim")," ",(0,r.kt)("em",{parentName:"h2"},"(optional)")),(0,r.kt)("p",null," edgy integration"),(0,r.kt)(l.Z,{mdxType:"Tabs"},(0,r.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = function(_, opts)\n local edgy_idx = LazyVim.plugin.extra_idx("ui.edgy")\n local aerial_idx = LazyVim.plugin.extra_idx("editor.aerial")\n\n if edgy_idx and edgy_idx > aerial_idx then\n LazyVim.warn("The `edgy.nvim` extra must be **imported** before the `aerial.nvim` extra to work properly.", {\n title = "LazyVim",\n })\n end\n\n opts.right = opts.right or {}\n table.insert(opts.right, {\n title = "Aerial",\n ft = "aerial",\n pinned = true,\n open = "AerialOpen",\n })\nend\n'))),(0,r.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "folke/edgy.nvim",\n optional = true,\n opts = function(_, opts)\n local edgy_idx = LazyVim.plugin.extra_idx("ui.edgy")\n local aerial_idx = LazyVim.plugin.extra_idx("editor.aerial")\n\n if edgy_idx and edgy_idx > aerial_idx then\n LazyVim.warn("The `edgy.nvim` extra must be **imported** before the `aerial.nvim` extra to work properly.", {\n title = "LazyVim",\n })\n end\n\n opts.right = opts.right or {}\n table.insert(opts.right, {\n title = "Aerial",\n ft = "aerial",\n pinned = true,\n open = "AerialOpen",\n })\n end,\n}\n')))),(0,r.kt)("h2",{id:"lualinenvim-optional"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/nvim-lualine/lualine.nvim"},"lualine.nvim")," ",(0,r.kt)("em",{parentName:"h2"},"(optional)")),(0,r.kt)("p",null," lualine integration"),(0,r.kt)(l.Z,{mdxType:"Tabs"},(0,r.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = function(_, opts)\n if not vim.g.trouble_lualine then\n table.insert(opts.sections.lualine_c, {\n "aerial",\n sep = " ", -- separator between symbols\n sep_icon = "", -- separator between icon and symbol\n\n -- The number of symbols to render top-down. In order to render only \'N\' last\n -- symbols, negative numbers may be supplied. For instance, \'depth = -1\' can\n -- be used in order to render only current symbol.\n depth = 5,\n\n -- When \'dense\' mode is on, icons are not rendered near their symbols. Only\n -- a single icon that represents the kind of current symbol is rendered at\n -- the beginning of status line.\n dense = false,\n\n -- The separator to be used to separate symbols in dense mode.\n dense_sep = ".",\n\n -- Color the symbol icons.\n colored = true,\n })\n end\nend\n'))),(0,r.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "nvim-lualine/lualine.nvim",\n optional = true,\n opts = function(_, opts)\n if not vim.g.trouble_lualine then\n table.insert(opts.sections.lualine_c, {\n "aerial",\n sep = " ", -- separator between symbols\n sep_icon = "", -- separator between icon and symbol\n\n -- The number of symbols to render top-down. In order to render only \'N\' last\n -- symbols, negative numbers may be supplied. For instance, \'depth = -1\' can\n -- be used in order to render only current symbol.\n depth = 5,\n\n -- When \'dense\' mode is on, icons are not rendered near their symbols. Only\n -- a single icon that represents the kind of current symbol is rendered at\n -- the beginning of status line.\n dense = false,\n\n -- The separator to be used to separate symbols in dense mode.\n dense_sep = ".",\n\n -- Color the symbol icons.\n colored = true,\n })\n end\n end,\n}\n')))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/6752c00e.7ec19cf5.js b/assets/js/6752c00e.7ec19cf5.js new file mode 100644 index 0000000000..eafa3b74a4 --- /dev/null +++ b/assets/js/6752c00e.7ec19cf5.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklazyvim=self.webpackChunklazyvim||[]).push([[1654],{3905:(e,n,t)=>{t.d(n,{Zo:()=>c,kt:()=>f});var r=t(7294);function a(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function o(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function i(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?o(Object(t),!0).forEach((function(n){a(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):o(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function l(e,n){if(null==e)return{};var t,r,a=function(e,n){if(null==e)return{};var t,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)t=o[r],n.indexOf(t)>=0||(a[t]=e[t]);return a}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)t=o[r],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var u=r.createContext({}),s=function(e){var n=r.useContext(u),t=n;return e&&(t="function"==typeof e?e(n):i(i({},n),e)),t},c=function(e){var n=s(e.components);return r.createElement(u.Provider,{value:n},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},m=r.forwardRef((function(e,n){var t=e.components,a=e.mdxType,o=e.originalType,u=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),p=s(t),m=a,f=p["".concat(u,".").concat(m)]||p[m]||d[m]||o;return t?r.createElement(f,i(i({ref:n},c),{},{components:t})):r.createElement(f,i({ref:n},c))}));function f(e,n){var t=arguments,a=n&&n.mdxType;if("string"==typeof e||a){var o=t.length,i=new Array(o);i[0]=m;var l={};for(var u in n)hasOwnProperty.call(n,u)&&(l[u]=n[u]);l.originalType=e,l[p]="string"==typeof e?e:a,i[1]=l;for(var s=2;s<o;s++)i[s]=t[s];return r.createElement.apply(null,i)}return r.createElement.apply(null,t)}m.displayName="MDXCreateElement"},5162:(e,n,t)=>{t.d(n,{Z:()=>i});var r=t(7294),a=t(6010);const o="tabItem_Ymn6";function i(e){let{children:n,hidden:t,className:i}=e;return r.createElement("div",{role:"tabpanel",className:(0,a.Z)(o,i),hidden:t},n)}},4866:(e,n,t)=>{t.d(n,{Z:()=>E});var r=t(7462),a=t(7294),o=t(6010),i=t(2466),l=t(6550),u=t(1980),s=t(7392),c=t(12);function p(e){return function(e){return a.Children.map(e,(e=>{if(!e||(0,a.isValidElement)(e)&&function(e){const{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:n,label:t,attributes:r,default:a}}=e;return{value:n,label:t,attributes:r,default:a}}))}function d(e){const{values:n,children:t}=e;return(0,a.useMemo)((()=>{const e=n??p(t);return function(e){const n=(0,s.l)(e,((e,n)=>e.value===n.value));if(n.length>0)throw new Error(`Docusaurus error: Duplicate values "${n.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[n,t])}function m(e){let{value:n,tabValues:t}=e;return t.some((e=>e.value===n))}function f(e){let{queryString:n=!1,groupId:t}=e;const r=(0,l.k6)(),o=function(e){let{queryString:n=!1,groupId:t}=e;if("string"==typeof n)return n;if(!1===n)return null;if(!0===n&&!t)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return t??null}({queryString:n,groupId:t});return[(0,u._X)(o),(0,a.useCallback)((e=>{if(!o)return;const n=new URLSearchParams(r.location.search);n.set(o,e),r.replace({...r.location,search:n.toString()})}),[o,r])]}function g(e){const{defaultValue:n,queryString:t=!1,groupId:r}=e,o=d(e),[i,l]=(0,a.useState)((()=>function(e){let{defaultValue:n,tabValues:t}=e;if(0===t.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(n){if(!m({value:n,tabValues:t}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${n}" but none of its children has the corresponding value. Available values are: ${t.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return n}const r=t.find((e=>e.default))??t[0];if(!r)throw new Error("Unexpected error: 0 tabValues");return r.value}({defaultValue:n,tabValues:o}))),[u,s]=f({queryString:t,groupId:r}),[p,g]=function(e){let{groupId:n}=e;const t=function(e){return e?`docusaurus.tab.${e}`:null}(n),[r,o]=(0,c.Nk)(t);return[r,(0,a.useCallback)((e=>{t&&o.set(e)}),[t,o])]}({groupId:r}),b=(()=>{const e=u??p;return m({value:e,tabValues:o})?e:null})();(0,a.useLayoutEffect)((()=>{b&&l(b)}),[b]);return{selectedValue:i,selectValue:(0,a.useCallback)((e=>{if(!m({value:e,tabValues:o}))throw new Error(`Can't select invalid tab value=${e}`);l(e),s(e),g(e)}),[s,g,o]),tabValues:o}}var b=t(2389);const y="tabList__CuJ",h="tabItem_LNqP";function v(e){let{className:n,block:t,selectedValue:l,selectValue:u,tabValues:s}=e;const c=[],{blockElementScrollPositionUntilNextRender:p}=(0,i.o5)(),d=e=>{const n=e.currentTarget,t=c.indexOf(n),r=s[t].value;r!==l&&(p(n),u(r))},m=e=>{let n=null;switch(e.key){case"Enter":d(e);break;case"ArrowRight":{const t=c.indexOf(e.currentTarget)+1;n=c[t]??c[0];break}case"ArrowLeft":{const t=c.indexOf(e.currentTarget)-1;n=c[t]??c[c.length-1];break}}n?.focus()};return a.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,o.Z)("tabs",{"tabs--block":t},n)},s.map((e=>{let{value:n,label:t,attributes:i}=e;return a.createElement("li",(0,r.Z)({role:"tab",tabIndex:l===n?0:-1,"aria-selected":l===n,key:n,ref:e=>c.push(e),onKeyDown:m,onClick:d},i,{className:(0,o.Z)("tabs__item",h,i?.className,{"tabs__item--active":l===n})}),t??n)})))}function k(e){let{lazy:n,children:t,selectedValue:r}=e;const o=(Array.isArray(t)?t:[t]).filter(Boolean);if(n){const e=o.find((e=>e.props.value===r));return e?(0,a.cloneElement)(e,{className:"margin-top--md"}):null}return a.createElement("div",{className:"margin-top--md"},o.map(((e,n)=>(0,a.cloneElement)(e,{key:n,hidden:e.props.value!==r}))))}function w(e){const n=g(e);return a.createElement("div",{className:(0,o.Z)("tabs-container",y)},a.createElement(v,(0,r.Z)({},e,n)),a.createElement(k,(0,r.Z)({},e,n)))}function E(e){const n=(0,b.Z)();return a.createElement(w,(0,r.Z)({key:String(n)},e))}},4527:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>u,default:()=>m,frontMatter:()=>l,metadata:()=>s,toc:()=>p});var r=t(7462),a=(t(7294),t(3905)),o=t(4866),i=t(5162);const l={},u="Neogen",s={unversionedId:"extras/coding/neogen",id:"extras/coding/neogen",title:"Neogen",description:"You can enable the extra with the :LazyExtras command.",source:"@site/docs/extras/coding/neogen.md",sourceDirName:"extras/coding",slug:"/extras/coding/neogen",permalink:"/extras/coding/neogen",draft:!1,editUrl:"https://github.com/LazyVim/lazyvim.github.io/tree/main/docs/extras/coding/neogen.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Mini-surround",permalink:"/extras/coding/mini-surround"},next:{title:"Nvim-cmp",permalink:"/extras/coding/nvim-cmp"}},c={},p=[{value:"neogen",id:"neogen-1",level:2}],d={toc:p};function m(e){let{components:n,...t}=e;return(0,a.kt)("wrapper",(0,r.Z)({},d,t,{components:n,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"neogen"},(0,a.kt)("inlineCode",{parentName:"h1"},"Neogen")),(0,a.kt)("admonition",{type:"info"},(0,a.kt)("p",{parentName:"admonition"},"You can enable the extra with the ",(0,a.kt)("inlineCode",{parentName:"p"},":LazyExtras")," command.\nPlugins marked as optional will only be configured if they are installed.")),(0,a.kt)("p",null,"Below you can find a list of included plugins and their default settings."),(0,a.kt)("admonition",{type:"caution"},(0,a.kt)("p",{parentName:"admonition"},"You don't need to copy the default settings to your config.\nThey are only shown here for reference.")),(0,a.kt)("h2",{id:"neogen-1"},(0,a.kt)("a",{parentName:"h2",href:"https://github.com/danymat/neogen"},"neogen")),(0,a.kt)(o.Z,{mdxType:"Tabs"},(0,a.kt)(i.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'opts = function(_, opts)\n if opts.snippet_engine ~= nil then\n return\n end\n\n local map = {\n ["LuaSnip"] = "luasnip",\n ["mini.snippets"] = "mini",\n ["nvim-snippy"] = "snippy",\n ["vim-vsnip"] = "vsnip",\n }\n\n for plugin, engine in pairs(map) do\n if LazyVim.has(plugin) then\n opts.snippet_engine = engine\n return\n end\n end\n\n if vim.snippet then\n opts.snippet_engine = "nvim"\n end\nend\n'))),(0,a.kt)(i.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "danymat/neogen",\n dependencies = LazyVim.has("mini.snippets") and { "mini.snippets" } or {},\n cmd = "Neogen",\n keys = {\n {\n "<leader>cn",\n function()\n require("neogen").generate()\n end,\n desc = "Generate Annotations (Neogen)",\n },\n },\n opts = function(_, opts)\n if opts.snippet_engine ~= nil then\n return\n end\n\n local map = {\n ["LuaSnip"] = "luasnip",\n ["mini.snippets"] = "mini",\n ["nvim-snippy"] = "snippy",\n ["vim-vsnip"] = "vsnip",\n }\n\n for plugin, engine in pairs(map) do\n if LazyVim.has(plugin) then\n opts.snippet_engine = engine\n return\n end\n end\n\n if vim.snippet then\n opts.snippet_engine = "nvim"\n end\n end,\n}\n')))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/67dd85c5.e4b2d7fd.js b/assets/js/67dd85c5.e4b2d7fd.js new file mode 100644 index 0000000000..eb7fa120de --- /dev/null +++ b/assets/js/67dd85c5.e4b2d7fd.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklazyvim=self.webpackChunklazyvim||[]).push([[7897],{3905:(e,n,t)=>{t.d(n,{Zo:()=>c,kt:()=>f});var a=t(7294);function r(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function i(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,a)}return t}function o(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?i(Object(t),!0).forEach((function(n){r(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):i(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function l(e,n){if(null==e)return{};var t,a,r=function(e,n){if(null==e)return{};var t,a,r={},i=Object.keys(e);for(a=0;a<i.length;a++)t=i[a],n.indexOf(t)>=0||(r[t]=e[t]);return r}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a<i.length;a++)t=i[a],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(r[t]=e[t])}return r}var s=a.createContext({}),u=function(e){var n=a.useContext(s),t=n;return e&&(t="function"==typeof e?e(n):o(o({},n),e)),t},c=function(e){var n=u(e.components);return a.createElement(s.Provider,{value:n},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var n=e.children;return a.createElement(a.Fragment,{},n)}},d=a.forwardRef((function(e,n){var t=e.components,r=e.mdxType,i=e.originalType,s=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),p=u(t),d=r,f=p["".concat(s,".").concat(d)]||p[d]||m[d]||i;return t?a.createElement(f,o(o({ref:n},c),{},{components:t})):a.createElement(f,o({ref:n},c))}));function f(e,n){var t=arguments,r=n&&n.mdxType;if("string"==typeof e||r){var i=t.length,o=new Array(i);o[0]=d;var l={};for(var s in n)hasOwnProperty.call(n,s)&&(l[s]=n[s]);l.originalType=e,l[p]="string"==typeof e?e:r,o[1]=l;for(var u=2;u<i;u++)o[u]=t[u];return a.createElement.apply(null,o)}return a.createElement.apply(null,t)}d.displayName="MDXCreateElement"},5162:(e,n,t)=>{t.d(n,{Z:()=>o});var a=t(7294),r=t(6010);const i="tabItem_Ymn6";function o(e){let{children:n,hidden:t,className:o}=e;return a.createElement("div",{role:"tabpanel",className:(0,r.Z)(i,o),hidden:t},n)}},4866:(e,n,t)=>{t.d(n,{Z:()=>T});var a=t(7462),r=t(7294),i=t(6010),o=t(2466),l=t(6550),s=t(1980),u=t(7392),c=t(12);function p(e){return function(e){return r.Children.map(e,(e=>{if(!e||(0,r.isValidElement)(e)&&function(e){const{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:n,label:t,attributes:a,default:r}}=e;return{value:n,label:t,attributes:a,default:r}}))}function m(e){const{values:n,children:t}=e;return(0,r.useMemo)((()=>{const e=n??p(t);return function(e){const n=(0,u.l)(e,((e,n)=>e.value===n.value));if(n.length>0)throw new Error(`Docusaurus error: Duplicate values "${n.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[n,t])}function d(e){let{value:n,tabValues:t}=e;return t.some((e=>e.value===n))}function f(e){let{queryString:n=!1,groupId:t}=e;const a=(0,l.k6)(),i=function(e){let{queryString:n=!1,groupId:t}=e;if("string"==typeof n)return n;if(!1===n)return null;if(!0===n&&!t)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return t??null}({queryString:n,groupId:t});return[(0,s._X)(i),(0,r.useCallback)((e=>{if(!i)return;const n=new URLSearchParams(a.location.search);n.set(i,e),a.replace({...a.location,search:n.toString()})}),[i,a])]}function b(e){const{defaultValue:n,queryString:t=!1,groupId:a}=e,i=m(e),[o,l]=(0,r.useState)((()=>function(e){let{defaultValue:n,tabValues:t}=e;if(0===t.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(n){if(!d({value:n,tabValues:t}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${n}" but none of its children has the corresponding value. Available values are: ${t.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return n}const a=t.find((e=>e.default))??t[0];if(!a)throw new Error("Unexpected error: 0 tabValues");return a.value}({defaultValue:n,tabValues:i}))),[s,u]=f({queryString:t,groupId:a}),[p,b]=function(e){let{groupId:n}=e;const t=function(e){return e?`docusaurus.tab.${e}`:null}(n),[a,i]=(0,c.Nk)(t);return[a,(0,r.useCallback)((e=>{t&&i.set(e)}),[t,i])]}({groupId:a}),h=(()=>{const e=s??p;return d({value:e,tabValues:i})?e:null})();(0,r.useLayoutEffect)((()=>{h&&l(h)}),[h]);return{selectedValue:o,selectValue:(0,r.useCallback)((e=>{if(!d({value:e,tabValues:i}))throw new Error(`Can't select invalid tab value=${e}`);l(e),u(e),b(e)}),[u,b,i]),tabValues:i}}var h=t(2389);const g="tabList__CuJ",v="tabItem_LNqP";function y(e){let{className:n,block:t,selectedValue:l,selectValue:s,tabValues:u}=e;const c=[],{blockElementScrollPositionUntilNextRender:p}=(0,o.o5)(),m=e=>{const n=e.currentTarget,t=c.indexOf(n),a=u[t].value;a!==l&&(p(n),s(a))},d=e=>{let n=null;switch(e.key){case"Enter":m(e);break;case"ArrowRight":{const t=c.indexOf(e.currentTarget)+1;n=c[t]??c[0];break}case"ArrowLeft":{const t=c.indexOf(e.currentTarget)-1;n=c[t]??c[c.length-1];break}}n?.focus()};return r.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,i.Z)("tabs",{"tabs--block":t},n)},u.map((e=>{let{value:n,label:t,attributes:o}=e;return r.createElement("li",(0,a.Z)({role:"tab",tabIndex:l===n?0:-1,"aria-selected":l===n,key:n,ref:e=>c.push(e),onKeyDown:d,onClick:m},o,{className:(0,i.Z)("tabs__item",v,o?.className,{"tabs__item--active":l===n})}),t??n)})))}function k(e){let{lazy:n,children:t,selectedValue:a}=e;const i=(Array.isArray(t)?t:[t]).filter(Boolean);if(n){const e=i.find((e=>e.props.value===a));return e?(0,r.cloneElement)(e,{className:"margin-top--md"}):null}return r.createElement("div",{className:"margin-top--md"},i.map(((e,n)=>(0,r.cloneElement)(e,{key:n,hidden:e.props.value!==a}))))}function w(e){const n=b(e);return r.createElement("div",{className:(0,i.Z)("tabs-container",g)},r.createElement(y,(0,a.Z)({},e,n)),r.createElement(k,(0,a.Z)({},e,n)))}function T(e){const n=(0,h.Z)();return r.createElement(w,(0,a.Z)({key:String(n)},e))}},5293:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>s,default:()=>d,frontMatter:()=>l,metadata:()=>u,toc:()=>p});var a=t(7462),r=(t(7294),t(3905)),i=t(4866),o=t(5162);const l={},s="Coding",u={unversionedId:"plugins/coding",id:"plugins/coding",title:"Coding",description:"mini.pairs",source:"@site/docs/plugins/coding.md",sourceDirName:"plugins",slug:"/plugins/coding",permalink:"/plugins/coding",draft:!1,editUrl:"https://github.com/LazyVim/lazyvim.github.io/tree/main/docs/plugins/coding.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Core Plugins",permalink:"/plugins/"},next:{title:"Colorscheme",permalink:"/plugins/colorscheme"}},c={},p=[{value:"mini.pairs",id:"minipairs",level:2},{value:"ts-comments.nvim",id:"ts-commentsnvim",level:2},{value:"mini.ai",id:"miniai",level:2},{value:"lazydev.nvim",id:"lazydevnvim",level:2}],m={toc:p};function d(e){let{components:n,...t}=e;return(0,r.kt)("wrapper",(0,a.Z)({},m,t,{components:n,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"coding"},"Coding"),(0,r.kt)("h2",{id:"minipairs"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/nvim-mini/mini.pairs"},"mini.pairs")),(0,r.kt)("p",null," Auto pairs\nAutomatically inserts a matching closing character\nwhen you type an opening character like ",(0,r.kt)("inlineCode",{parentName:"p"},'"'),", ",(0,r.kt)("inlineCode",{parentName:"p"},"["),", or ",(0,r.kt)("inlineCode",{parentName:"p"},"("),"."),(0,r.kt)(i.Z,{mdxType:"Tabs"},(0,r.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = {\n modes = { insert = true, command = true, terminal = false },\n -- skip autopair when next character is one of these\n skip_next = [=[[%w%%%\'%[%"%.%`%$]]=],\n -- skip autopair when the cursor is inside these treesitter nodes\n skip_ts = { "string" },\n -- skip autopair when next character is closing pair\n -- and there are more closing pairs than opening pairs\n skip_unbalanced = true,\n -- better deal with markdown code blocks\n markdown = true,\n}\n'))),(0,r.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "nvim-mini/mini.pairs",\n event = "VeryLazy",\n opts = {\n modes = { insert = true, command = true, terminal = false },\n -- skip autopair when next character is one of these\n skip_next = [=[[%w%%%\'%[%"%.%`%$]]=],\n -- skip autopair when the cursor is inside these treesitter nodes\n skip_ts = { "string" },\n -- skip autopair when next character is closing pair\n -- and there are more closing pairs than opening pairs\n skip_unbalanced = true,\n -- better deal with markdown code blocks\n markdown = true,\n },\n config = function(_, opts)\n LazyVim.mini.pairs(opts)\n end,\n}\n')))),(0,r.kt)("h2",{id:"ts-commentsnvim"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/folke/ts-comments.nvim"},"ts-comments.nvim")),(0,r.kt)("p",null," Improves comment syntax, lets Neovim handle multiple\ntypes of comments for a single language, and relaxes rules\nfor uncommenting."),(0,r.kt)(i.Z,{mdxType:"Tabs"},(0,r.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},"opts = {}\n"))),(0,r.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "folke/ts-comments.nvim",\n event = "VeryLazy",\n opts = {},\n}\n')))),(0,r.kt)("h2",{id:"miniai"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/nvim-mini/mini.ai"},"mini.ai")),(0,r.kt)("p",null," Extends the a & i text objects, this adds the ability to select\narguments, function calls, text within quotes and brackets, and to\nrepeat those selections to select an outer text object."),(0,r.kt)(i.Z,{mdxType:"Tabs"},(0,r.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = function()\n local ai = require("mini.ai")\n return {\n n_lines = 500,\n custom_textobjects = {\n o = ai.gen_spec.treesitter({ -- code block\n a = { "@block.outer", "@conditional.outer", "@loop.outer" },\n i = { "@block.inner", "@conditional.inner", "@loop.inner" },\n }),\n f = ai.gen_spec.treesitter({ a = "@function.outer", i = "@function.inner" }), -- function\n c = ai.gen_spec.treesitter({ a = "@class.outer", i = "@class.inner" }), -- class\n t = { "<([%p%w]-)%f[^<%w][^<>]->.-</%1>", "^<.->().*()</[^/]->$" }, -- tags\n d = { "%f[%d]%d+" }, -- digits\n e = { -- Word with case\n { "%u[%l%d]+%f[^%l%d]", "%f[%S][%l%d]+%f[^%l%d]", "%f[%P][%l%d]+%f[^%l%d]", "^[%l%d]+%f[^%l%d]" },\n "^().*()$",\n },\n g = LazyVim.mini.ai_buffer, -- buffer\n u = ai.gen_spec.function_call(), -- u for "Usage"\n U = ai.gen_spec.function_call({ name_pattern = "[%w_]" }), -- without dot in function name\n },\n }\nend\n'))),(0,r.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "nvim-mini/mini.ai",\n event = "VeryLazy",\n opts = function()\n local ai = require("mini.ai")\n return {\n n_lines = 500,\n custom_textobjects = {\n o = ai.gen_spec.treesitter({ -- code block\n a = { "@block.outer", "@conditional.outer", "@loop.outer" },\n i = { "@block.inner", "@conditional.inner", "@loop.inner" },\n }),\n f = ai.gen_spec.treesitter({ a = "@function.outer", i = "@function.inner" }), -- function\n c = ai.gen_spec.treesitter({ a = "@class.outer", i = "@class.inner" }), -- class\n t = { "<([%p%w]-)%f[^<%w][^<>]->.-</%1>", "^<.->().*()</[^/]->$" }, -- tags\n d = { "%f[%d]%d+" }, -- digits\n e = { -- Word with case\n { "%u[%l%d]+%f[^%l%d]", "%f[%S][%l%d]+%f[^%l%d]", "%f[%P][%l%d]+%f[^%l%d]", "^[%l%d]+%f[^%l%d]" },\n "^().*()$",\n },\n g = LazyVim.mini.ai_buffer, -- buffer\n u = ai.gen_spec.function_call(), -- u for "Usage"\n U = ai.gen_spec.function_call({ name_pattern = "[%w_]" }), -- without dot in function name\n },\n }\n end,\n config = function(_, opts)\n require("mini.ai").setup(opts)\n LazyVim.on_load("which-key.nvim", function()\n vim.schedule(function()\n LazyVim.mini.ai_whichkey(opts)\n end)\n end)\n end,\n}\n')))),(0,r.kt)("h2",{id:"lazydevnvim"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/folke/lazydev.nvim"},"lazydev.nvim")),(0,r.kt)("p",null," Configures LuaLS to support auto-completion and type checking\nwhile editing your Neovim configuration."),(0,r.kt)(i.Z,{mdxType:"Tabs"},(0,r.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = {\n library = {\n { path = "${3rd}/luv/library", words = { "vim%.uv" } },\n { path = "LazyVim", words = { "LazyVim" } },\n { path = "snacks.nvim", words = { "Snacks" } },\n { path = "lazy.nvim", words = { "LazyVim" } },\n },\n}\n'))),(0,r.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "folke/lazydev.nvim",\n ft = "lua",\n cmd = "LazyDev",\n opts = {\n library = {\n { path = "${3rd}/luv/library", words = { "vim%.uv" } },\n { path = "LazyVim", words = { "LazyVim" } },\n { path = "snacks.nvim", words = { "Snacks" } },\n { path = "lazy.nvim", words = { "LazyVim" } },\n },\n },\n}\n')))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/692732b7.cf819be8.js b/assets/js/692732b7.cf819be8.js new file mode 100644 index 0000000000..1722a21b88 --- /dev/null +++ b/assets/js/692732b7.cf819be8.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklazyvim=self.webpackChunklazyvim||[]).push([[2298],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>f});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function o(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?l(Object(n),!0).forEach((function(t){r(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):l(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function i(e,t){if(null==e)return{};var n,a,r=function(e,t){if(null==e)return{};var n,a,r={},l=Object.keys(e);for(a=0;a<l.length;a++)n=l[a],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a<l.length;a++)n=l[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var s=a.createContext({}),u=function(e){var t=a.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},c=function(e){var t=u(e.components);return a.createElement(s.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},d=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,l=e.originalType,s=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),p=u(n),d=r,f=p["".concat(s,".").concat(d)]||p[d]||m[d]||l;return n?a.createElement(f,o(o({ref:t},c),{},{components:n})):a.createElement(f,o({ref:t},c))}));function f(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var l=n.length,o=new Array(l);o[0]=d;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[p]="string"==typeof e?e:r,o[1]=i;for(var u=2;u<l;u++)o[u]=n[u];return a.createElement.apply(null,o)}return a.createElement.apply(null,n)}d.displayName="MDXCreateElement"},5162:(e,t,n)=>{n.d(t,{Z:()=>o});var a=n(7294),r=n(6010);const l="tabItem_Ymn6";function o(e){let{children:t,hidden:n,className:o}=e;return a.createElement("div",{role:"tabpanel",className:(0,r.Z)(l,o),hidden:n},t)}},4866:(e,t,n)=>{n.d(t,{Z:()=>T});var a=n(7462),r=n(7294),l=n(6010),o=n(2466),i=n(6550),s=n(1980),u=n(7392),c=n(12);function p(e){return function(e){return r.Children.map(e,(e=>{if(!e||(0,r.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:t,label:n,attributes:a,default:r}}=e;return{value:t,label:n,attributes:a,default:r}}))}function m(e){const{values:t,children:n}=e;return(0,r.useMemo)((()=>{const e=t??p(n);return function(e){const t=(0,u.l)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[t,n])}function d(e){let{value:t,tabValues:n}=e;return n.some((e=>e.value===t))}function f(e){let{queryString:t=!1,groupId:n}=e;const a=(0,i.k6)(),l=function(e){let{queryString:t=!1,groupId:n}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!n)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return n??null}({queryString:t,groupId:n});return[(0,s._X)(l),(0,r.useCallback)((e=>{if(!l)return;const t=new URLSearchParams(a.location.search);t.set(l,e),a.replace({...a.location,search:t.toString()})}),[l,a])]}function g(e){const{defaultValue:t,queryString:n=!1,groupId:a}=e,l=m(e),[o,i]=(0,r.useState)((()=>function(e){let{defaultValue:t,tabValues:n}=e;if(0===n.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(t){if(!d({value:t,tabValues:n}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${n.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const a=n.find((e=>e.default))??n[0];if(!a)throw new Error("Unexpected error: 0 tabValues");return a.value}({defaultValue:t,tabValues:l}))),[s,u]=f({queryString:n,groupId:a}),[p,g]=function(e){let{groupId:t}=e;const n=function(e){return e?`docusaurus.tab.${e}`:null}(t),[a,l]=(0,c.Nk)(n);return[a,(0,r.useCallback)((e=>{n&&l.set(e)}),[n,l])]}({groupId:a}),v=(()=>{const e=s??p;return d({value:e,tabValues:l})?e:null})();(0,r.useLayoutEffect)((()=>{v&&i(v)}),[v]);return{selectedValue:o,selectValue:(0,r.useCallback)((e=>{if(!d({value:e,tabValues:l}))throw new Error(`Can't select invalid tab value=${e}`);i(e),u(e),g(e)}),[u,g,l]),tabValues:l}}var v=n(2389);const b="tabList__CuJ",h="tabItem_LNqP";function y(e){let{className:t,block:n,selectedValue:i,selectValue:s,tabValues:u}=e;const c=[],{blockElementScrollPositionUntilNextRender:p}=(0,o.o5)(),m=e=>{const t=e.currentTarget,n=c.indexOf(t),a=u[n].value;a!==i&&(p(t),s(a))},d=e=>{let t=null;switch(e.key){case"Enter":m(e);break;case"ArrowRight":{const n=c.indexOf(e.currentTarget)+1;t=c[n]??c[0];break}case"ArrowLeft":{const n=c.indexOf(e.currentTarget)-1;t=c[n]??c[c.length-1];break}}t?.focus()};return r.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,l.Z)("tabs",{"tabs--block":n},t)},u.map((e=>{let{value:t,label:n,attributes:o}=e;return r.createElement("li",(0,a.Z)({role:"tab",tabIndex:i===t?0:-1,"aria-selected":i===t,key:t,ref:e=>c.push(e),onKeyDown:d,onClick:m},o,{className:(0,l.Z)("tabs__item",h,o?.className,{"tabs__item--active":i===t})}),n??t)})))}function k(e){let{lazy:t,children:n,selectedValue:a}=e;const l=(Array.isArray(n)?n:[n]).filter(Boolean);if(t){const e=l.find((e=>e.props.value===a));return e?(0,r.cloneElement)(e,{className:"margin-top--md"}):null}return r.createElement("div",{className:"margin-top--md"},l.map(((e,t)=>(0,r.cloneElement)(e,{key:t,hidden:e.props.value!==a}))))}function w(e){const t=g(e);return r.createElement("div",{className:(0,l.Z)("tabs-container",b)},r.createElement(y,(0,a.Z)({},e,t)),r.createElement(k,(0,a.Z)({},e,t)))}function T(e){const t=(0,v.Z)();return r.createElement(w,(0,a.Z)({key:String(t)},e))}},4381:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>s,default:()=>d,frontMatter:()=>i,metadata:()=>u,toc:()=>p});var a=n(7462),r=(n(7294),n(3905)),l=n(4866),o=n(5162);const i={},s="Twig",u={unversionedId:"extras/lang/twig",id:"extras/lang/twig",title:"Twig",description:"You can enable the extra with the :LazyExtras command.",source:"@site/docs/extras/lang/twig.md",sourceDirName:"extras/lang",slug:"/extras/lang/twig",permalink:"/extras/lang/twig",draft:!1,editUrl:"https://github.com/LazyVim/lazyvim.github.io/tree/main/docs/extras/lang/twig.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Toml",permalink:"/extras/lang/toml"},next:{title:"Typescript",permalink:"/extras/lang/typescript"}},c={},p=[{value:"nvim-treesitter",id:"nvim-treesitter",level:2},{value:"mason.nvim",id:"masonnvim",level:2},{value:"nvim-lspconfig",id:"nvim-lspconfig",level:2},{value:"none-ls.nvim <em>(optional)</em>",id:"none-lsnvim-optional",level:2},{value:"nvim-lint <em>(optional)</em>",id:"nvim-lint-optional",level:2},{value:"conform.nvim <em>(optional)</em>",id:"conformnvim-optional",level:2}],m={toc:p};function d(e){let{components:t,...n}=e;return(0,r.kt)("wrapper",(0,a.Z)({},m,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"twig"},(0,r.kt)("inlineCode",{parentName:"h1"},"Twig")),(0,r.kt)("admonition",{type:"info"},(0,r.kt)("p",{parentName:"admonition"},"You can enable the extra with the ",(0,r.kt)("inlineCode",{parentName:"p"},":LazyExtras")," command.\nPlugins marked as optional will only be configured if they are installed.")),(0,r.kt)("p",null,"Below you can find a list of included plugins and their default settings."),(0,r.kt)("admonition",{type:"caution"},(0,r.kt)("p",{parentName:"admonition"},"You don't need to copy the default settings to your config.\nThey are only shown here for reference.")),(0,r.kt)("h2",{id:"nvim-treesitter"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/nvim-treesitter/nvim-treesitter"},"nvim-treesitter")),(0,r.kt)(l.Z,{mdxType:"Tabs"},(0,r.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = { ensure_installed = { "twig" } }\n'))),(0,r.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "nvim-treesitter/nvim-treesitter",\n opts = { ensure_installed = { "twig" } },\n}\n')))),(0,r.kt)("h2",{id:"masonnvim"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/mason-org/mason.nvim"},"mason.nvim")),(0,r.kt)(l.Z,{mdxType:"Tabs"},(0,r.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = {\n ensure_installed = {\n "twigcs",\n "twig-cs-fixer",\n },\n}\n'))),(0,r.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "mason-org/mason.nvim",\n opts = {\n ensure_installed = {\n "twigcs",\n "twig-cs-fixer",\n },\n },\n}\n')))),(0,r.kt)("h2",{id:"nvim-lspconfig"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/neovim/nvim-lspconfig"},"nvim-lspconfig")),(0,r.kt)(l.Z,{mdxType:"Tabs"},(0,r.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},"opts = {\n servers = {\n twiggy_language_server = {\n enabled = true,\n },\n },\n}\n"))),(0,r.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "neovim/nvim-lspconfig",\n opts = {\n servers = {\n twiggy_language_server = {\n enabled = true,\n },\n },\n },\n}\n')))),(0,r.kt)("h2",{id:"none-lsnvim-optional"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/nvimtools/none-ls.nvim"},"none-ls.nvim")," ",(0,r.kt)("em",{parentName:"h2"},"(optional)")),(0,r.kt)(l.Z,{mdxType:"Tabs"},(0,r.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = function(_, opts)\n local nls = require("null-ls")\n opts.sources = opts.sources or {}\n table.insert(opts.sources, nls.builtins.diagnostics.twigcs)\n -- Twig-CS-Fixer builtin not available in none-ls\nend\n'))),(0,r.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "nvimtools/none-ls.nvim",\n optional = true,\n opts = function(_, opts)\n local nls = require("null-ls")\n opts.sources = opts.sources or {}\n table.insert(opts.sources, nls.builtins.diagnostics.twigcs)\n -- Twig-CS-Fixer builtin not available in none-ls\n end,\n}\n')))),(0,r.kt)("h2",{id:"nvim-lint-optional"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/mfussenegger/nvim-lint"},"nvim-lint")," ",(0,r.kt)("em",{parentName:"h2"},"(optional)")),(0,r.kt)(l.Z,{mdxType:"Tabs"},(0,r.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = {\n linters_by_ft = {\n twig = { "twigcs" },\n },\n}\n'))),(0,r.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "mfussenegger/nvim-lint",\n optional = true,\n opts = {\n linters_by_ft = {\n twig = { "twigcs" },\n },\n },\n}\n')))),(0,r.kt)("h2",{id:"conformnvim-optional"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/stevearc/conform.nvim"},"conform.nvim")," ",(0,r.kt)("em",{parentName:"h2"},"(optional)")),(0,r.kt)(l.Z,{mdxType:"Tabs"},(0,r.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = {\n formatters_by_ft = {\n twig = { "twig-cs-fixer" },\n },\n}\n'))),(0,r.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "stevearc/conform.nvim",\n optional = true,\n opts = {\n formatters_by_ft = {\n twig = { "twig-cs-fixer" },\n },\n },\n}\n')))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/6ad48da5.c2c2151a.js b/assets/js/6ad48da5.c2c2151a.js new file mode 100644 index 0000000000..1db7a70271 --- /dev/null +++ b/assets/js/6ad48da5.c2c2151a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklazyvim=self.webpackChunklazyvim||[]).push([[2886],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>f});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?l(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):l(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function u(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},l=Object.keys(e);for(r=0;r<l.length;r++)n=l[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r<l.length;r++)n=l[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var i=r.createContext({}),s=function(e){var t=r.useContext(i),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},c=function(e){var t=s(e.components);return r.createElement(i.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,l=e.originalType,i=e.parentName,c=u(e,["components","mdxType","originalType","parentName"]),p=s(n),d=a,f=p["".concat(i,".").concat(d)]||p[d]||m[d]||l;return n?r.createElement(f,o(o({ref:t},c),{},{components:n})):r.createElement(f,o({ref:t},c))}));function f(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var l=n.length,o=new Array(l);o[0]=d;var u={};for(var i in t)hasOwnProperty.call(t,i)&&(u[i]=t[i]);u.originalType=e,u[p]="string"==typeof e?e:a,o[1]=u;for(var s=2;s<l;s++)o[s]=n[s];return r.createElement.apply(null,o)}return r.createElement.apply(null,n)}d.displayName="MDXCreateElement"},5162:(e,t,n)=>{n.d(t,{Z:()=>o});var r=n(7294),a=n(6010);const l="tabItem_Ymn6";function o(e){let{children:t,hidden:n,className:o}=e;return r.createElement("div",{role:"tabpanel",className:(0,a.Z)(l,o),hidden:n},t)}},4866:(e,t,n)=>{n.d(t,{Z:()=>E});var r=n(7462),a=n(7294),l=n(6010),o=n(2466),u=n(6550),i=n(1980),s=n(7392),c=n(12);function p(e){return function(e){return a.Children.map(e,(e=>{if(!e||(0,a.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:t,label:n,attributes:r,default:a}}=e;return{value:t,label:n,attributes:r,default:a}}))}function m(e){const{values:t,children:n}=e;return(0,a.useMemo)((()=>{const e=t??p(n);return function(e){const t=(0,s.l)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[t,n])}function d(e){let{value:t,tabValues:n}=e;return n.some((e=>e.value===t))}function f(e){let{queryString:t=!1,groupId:n}=e;const r=(0,u.k6)(),l=function(e){let{queryString:t=!1,groupId:n}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!n)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return n??null}({queryString:t,groupId:n});return[(0,i._X)(l),(0,a.useCallback)((e=>{if(!l)return;const t=new URLSearchParams(r.location.search);t.set(l,e),r.replace({...r.location,search:t.toString()})}),[l,r])]}function b(e){const{defaultValue:t,queryString:n=!1,groupId:r}=e,l=m(e),[o,u]=(0,a.useState)((()=>function(e){let{defaultValue:t,tabValues:n}=e;if(0===n.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(t){if(!d({value:t,tabValues:n}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${n.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const r=n.find((e=>e.default))??n[0];if(!r)throw new Error("Unexpected error: 0 tabValues");return r.value}({defaultValue:t,tabValues:l}))),[i,s]=f({queryString:n,groupId:r}),[p,b]=function(e){let{groupId:t}=e;const n=function(e){return e?`docusaurus.tab.${e}`:null}(t),[r,l]=(0,c.Nk)(n);return[r,(0,a.useCallback)((e=>{n&&l.set(e)}),[n,l])]}({groupId:r}),g=(()=>{const e=i??p;return d({value:e,tabValues:l})?e:null})();(0,a.useLayoutEffect)((()=>{g&&u(g)}),[g]);return{selectedValue:o,selectValue:(0,a.useCallback)((e=>{if(!d({value:e,tabValues:l}))throw new Error(`Can't select invalid tab value=${e}`);u(e),s(e),b(e)}),[s,b,l]),tabValues:l}}var g=n(2389);const v="tabList__CuJ",h="tabItem_LNqP";function y(e){let{className:t,block:n,selectedValue:u,selectValue:i,tabValues:s}=e;const c=[],{blockElementScrollPositionUntilNextRender:p}=(0,o.o5)(),m=e=>{const t=e.currentTarget,n=c.indexOf(t),r=s[n].value;r!==u&&(p(t),i(r))},d=e=>{let t=null;switch(e.key){case"Enter":m(e);break;case"ArrowRight":{const n=c.indexOf(e.currentTarget)+1;t=c[n]??c[0];break}case"ArrowLeft":{const n=c.indexOf(e.currentTarget)-1;t=c[n]??c[c.length-1];break}}t?.focus()};return a.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,l.Z)("tabs",{"tabs--block":n},t)},s.map((e=>{let{value:t,label:n,attributes:o}=e;return a.createElement("li",(0,r.Z)({role:"tab",tabIndex:u===t?0:-1,"aria-selected":u===t,key:t,ref:e=>c.push(e),onKeyDown:d,onClick:m},o,{className:(0,l.Z)("tabs__item",h,o?.className,{"tabs__item--active":u===t})}),n??t)})))}function k(e){let{lazy:t,children:n,selectedValue:r}=e;const l=(Array.isArray(n)?n:[n]).filter(Boolean);if(t){const e=l.find((e=>e.props.value===r));return e?(0,a.cloneElement)(e,{className:"margin-top--md"}):null}return a.createElement("div",{className:"margin-top--md"},l.map(((e,t)=>(0,a.cloneElement)(e,{key:t,hidden:e.props.value!==r}))))}function w(e){const t=b(e);return a.createElement("div",{className:(0,l.Z)("tabs-container",v)},a.createElement(y,(0,r.Z)({},e,t)),a.createElement(k,(0,r.Z)({},e,t)))}function E(e){const t=(0,g.Z)();return a.createElement(w,(0,r.Z)({key:String(t)},e))}},773:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>d,frontMatter:()=>u,metadata:()=>s,toc:()=>p});var r=n(7462),a=(n(7294),n(3905)),l=n(4866),o=n(5162);const u={},i="Erlang",s={unversionedId:"extras/lang/erlang",id:"extras/lang/erlang",title:"Erlang",description:"You can enable the extra with the :LazyExtras command.",source:"@site/docs/extras/lang/erlang.md",sourceDirName:"extras/lang",slug:"/extras/lang/erlang",permalink:"/extras/lang/erlang",draft:!1,editUrl:"https://github.com/LazyVim/lazyvim.github.io/tree/main/docs/extras/lang/erlang.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Ember",permalink:"/extras/lang/ember"},next:{title:"Git",permalink:"/extras/lang/git"}},c={},p=[{value:"nvim-lspconfig",id:"nvim-lspconfig",level:2},{value:"nvim-treesitter",id:"nvim-treesitter",level:2}],m={toc:p};function d(e){let{components:t,...n}=e;return(0,a.kt)("wrapper",(0,r.Z)({},m,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"erlang"},(0,a.kt)("inlineCode",{parentName:"h1"},"Erlang")),(0,a.kt)("admonition",{type:"info"},(0,a.kt)("p",{parentName:"admonition"},"You can enable the extra with the ",(0,a.kt)("inlineCode",{parentName:"p"},":LazyExtras")," command.\nPlugins marked as optional will only be configured if they are installed.")),(0,a.kt)("p",null,"Below you can find a list of included plugins and their default settings."),(0,a.kt)("admonition",{type:"caution"},(0,a.kt)("p",{parentName:"admonition"},"You don't need to copy the default settings to your config.\nThey are only shown here for reference.")),(0,a.kt)("h2",{id:"nvim-lspconfig"},(0,a.kt)("a",{parentName:"h2",href:"https://github.com/neovim/nvim-lspconfig"},"nvim-lspconfig")),(0,a.kt)(l.Z,{mdxType:"Tabs"},(0,a.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},"opts = {\n servers = {\n erlangls = {},\n },\n}\n"))),(0,a.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "neovim/nvim-lspconfig",\n opts = {\n servers = {\n erlangls = {},\n },\n },\n}\n')))),(0,a.kt)("h2",{id:"nvim-treesitter"},(0,a.kt)("a",{parentName:"h2",href:"https://github.com/nvim-treesitter/nvim-treesitter"},"nvim-treesitter")),(0,a.kt)(l.Z,{mdxType:"Tabs"},(0,a.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'opts = { ensure_installed = { "erlang" } }\n'))),(0,a.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "nvim-treesitter/nvim-treesitter",\n opts = { ensure_installed = { "erlang" } },\n}\n')))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/6b133371.ca026688.js b/assets/js/6b133371.ca026688.js new file mode 100644 index 0000000000..863ecec5b0 --- /dev/null +++ b/assets/js/6b133371.ca026688.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklazyvim=self.webpackChunklazyvim||[]).push([[4869],{3905:(e,n,t)=>{t.d(n,{Zo:()=>c,kt:()=>v});var a=t(7294);function r(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function l(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,a)}return t}function o(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?l(Object(t),!0).forEach((function(n){r(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):l(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function i(e,n){if(null==e)return{};var t,a,r=function(e,n){if(null==e)return{};var t,a,r={},l=Object.keys(e);for(a=0;a<l.length;a++)t=l[a],n.indexOf(t)>=0||(r[t]=e[t]);return r}(e,n);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a<l.length;a++)t=l[a],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(r[t]=e[t])}return r}var u=a.createContext({}),s=function(e){var n=a.useContext(u),t=n;return e&&(t="function"==typeof e?e(n):o(o({},n),e)),t},c=function(e){var n=s(e.components);return a.createElement(u.Provider,{value:n},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var n=e.children;return a.createElement(a.Fragment,{},n)}},d=a.forwardRef((function(e,n){var t=e.components,r=e.mdxType,l=e.originalType,u=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),p=s(t),d=r,v=p["".concat(u,".").concat(d)]||p[d]||m[d]||l;return t?a.createElement(v,o(o({ref:n},c),{},{components:t})):a.createElement(v,o({ref:n},c))}));function v(e,n){var t=arguments,r=n&&n.mdxType;if("string"==typeof e||r){var l=t.length,o=new Array(l);o[0]=d;var i={};for(var u in n)hasOwnProperty.call(n,u)&&(i[u]=n[u]);i.originalType=e,i[p]="string"==typeof e?e:r,o[1]=i;for(var s=2;s<l;s++)o[s]=t[s];return a.createElement.apply(null,o)}return a.createElement.apply(null,t)}d.displayName="MDXCreateElement"},5162:(e,n,t)=>{t.d(n,{Z:()=>o});var a=t(7294),r=t(6010);const l="tabItem_Ymn6";function o(e){let{children:n,hidden:t,className:o}=e;return a.createElement("div",{role:"tabpanel",className:(0,r.Z)(l,o),hidden:t},n)}},4866:(e,n,t)=>{t.d(n,{Z:()=>w});var a=t(7462),r=t(7294),l=t(6010),o=t(2466),i=t(6550),u=t(1980),s=t(7392),c=t(12);function p(e){return function(e){return r.Children.map(e,(e=>{if(!e||(0,r.isValidElement)(e)&&function(e){const{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:n,label:t,attributes:a,default:r}}=e;return{value:n,label:t,attributes:a,default:r}}))}function m(e){const{values:n,children:t}=e;return(0,r.useMemo)((()=>{const e=n??p(t);return function(e){const n=(0,s.l)(e,((e,n)=>e.value===n.value));if(n.length>0)throw new Error(`Docusaurus error: Duplicate values "${n.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[n,t])}function d(e){let{value:n,tabValues:t}=e;return t.some((e=>e.value===n))}function v(e){let{queryString:n=!1,groupId:t}=e;const a=(0,i.k6)(),l=function(e){let{queryString:n=!1,groupId:t}=e;if("string"==typeof n)return n;if(!1===n)return null;if(!0===n&&!t)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return t??null}({queryString:n,groupId:t});return[(0,u._X)(l),(0,r.useCallback)((e=>{if(!l)return;const n=new URLSearchParams(a.location.search);n.set(l,e),a.replace({...a.location,search:n.toString()})}),[l,a])]}function f(e){const{defaultValue:n,queryString:t=!1,groupId:a}=e,l=m(e),[o,i]=(0,r.useState)((()=>function(e){let{defaultValue:n,tabValues:t}=e;if(0===t.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(n){if(!d({value:n,tabValues:t}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${n}" but none of its children has the corresponding value. Available values are: ${t.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return n}const a=t.find((e=>e.default))??t[0];if(!a)throw new Error("Unexpected error: 0 tabValues");return a.value}({defaultValue:n,tabValues:l}))),[u,s]=v({queryString:t,groupId:a}),[p,f]=function(e){let{groupId:n}=e;const t=function(e){return e?`docusaurus.tab.${e}`:null}(n),[a,l]=(0,c.Nk)(t);return[a,(0,r.useCallback)((e=>{t&&l.set(e)}),[t,l])]}({groupId:a}),b=(()=>{const e=u??p;return d({value:e,tabValues:l})?e:null})();(0,r.useLayoutEffect)((()=>{b&&i(b)}),[b]);return{selectedValue:o,selectValue:(0,r.useCallback)((e=>{if(!d({value:e,tabValues:l}))throw new Error(`Can't select invalid tab value=${e}`);i(e),s(e),f(e)}),[s,f,l]),tabValues:l}}var b=t(2389);const h="tabList__CuJ",k="tabItem_LNqP";function g(e){let{className:n,block:t,selectedValue:i,selectValue:u,tabValues:s}=e;const c=[],{blockElementScrollPositionUntilNextRender:p}=(0,o.o5)(),m=e=>{const n=e.currentTarget,t=c.indexOf(n),a=s[t].value;a!==i&&(p(n),u(a))},d=e=>{let n=null;switch(e.key){case"Enter":m(e);break;case"ArrowRight":{const t=c.indexOf(e.currentTarget)+1;n=c[t]??c[0];break}case"ArrowLeft":{const t=c.indexOf(e.currentTarget)-1;n=c[t]??c[c.length-1];break}}n?.focus()};return r.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,l.Z)("tabs",{"tabs--block":t},n)},s.map((e=>{let{value:n,label:t,attributes:o}=e;return r.createElement("li",(0,a.Z)({role:"tab",tabIndex:i===n?0:-1,"aria-selected":i===n,key:n,ref:e=>c.push(e),onKeyDown:d,onClick:m},o,{className:(0,l.Z)("tabs__item",k,o?.className,{"tabs__item--active":i===n})}),t??n)})))}function y(e){let{lazy:n,children:t,selectedValue:a}=e;const l=(Array.isArray(t)?t:[t]).filter(Boolean);if(n){const e=l.find((e=>e.props.value===a));return e?(0,r.cloneElement)(e,{className:"margin-top--md"}):null}return r.createElement("div",{className:"margin-top--md"},l.map(((e,n)=>(0,r.cloneElement)(e,{key:n,hidden:e.props.value!==a}))))}function T(e){const n=f(e);return r.createElement("div",{className:(0,l.Z)("tabs-container",h)},r.createElement(g,(0,a.Z)({},e,n)),r.createElement(y,(0,a.Z)({},e,n)))}function w(e){const n=(0,b.Z)();return r.createElement(T,(0,a.Z)({key:String(n)},e))}},7386:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>u,default:()=>d,frontMatter:()=>i,metadata:()=>s,toc:()=>p});var a=t(7462),r=(t(7294),t(3905)),l=t(4866),o=t(5162);const i={},u="Avante",s={unversionedId:"extras/ai/avante",id:"extras/ai/avante",title:"Avante",description:"You can enable the extra with the :LazyExtras command.",source:"@site/docs/extras/ai/avante.md",sourceDirName:"extras/ai",slug:"/extras/ai/avante",permalink:"/extras/ai/avante",draft:!1,editUrl:"https://github.com/LazyVim/lazyvim.github.io/tree/main/docs/extras/ai/avante.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Extras",permalink:"/extras/"},next:{title:"Claudecode",permalink:"/extras/ai/claudecode"}},c={},p=[{value:"nui.nvim",id:"nuinvim",level:2},{value:"avante.nvim",id:"avantenvim",level:2},{value:"blink-cmp-avante",id:"blink-cmp-avante",level:2},{value:"img-clip.nvim <em>(optional)</em>",id:"img-clipnvim-optional",level:2},{value:"render-markdown.nvim <em>(optional)</em>",id:"render-markdownnvim-optional",level:2},{value:"blink.cmp <em>(optional)</em>",id:"blinkcmp-optional",level:2}],m={toc:p};function d(e){let{components:n,...t}=e;return(0,r.kt)("wrapper",(0,a.Z)({},m,t,{components:n,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"avante"},(0,r.kt)("inlineCode",{parentName:"h1"},"Avante")),(0,r.kt)("admonition",{type:"info"},(0,r.kt)("p",{parentName:"admonition"},"You can enable the extra with the ",(0,r.kt)("inlineCode",{parentName:"p"},":LazyExtras")," command.\nPlugins marked as optional will only be configured if they are installed.")),(0,r.kt)("p",null,"Below you can find a list of included plugins and their default settings."),(0,r.kt)("admonition",{type:"caution"},(0,r.kt)("p",{parentName:"admonition"},"You don't need to copy the default settings to your config.\nThey are only shown here for reference.")),(0,r.kt)("h2",{id:"nuinvim"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/MunifTanjim/nui.nvim"},"nui.nvim")),(0,r.kt)(l.Z,{mdxType:"Tabs"},(0,r.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},"opts = nil\n"))),(0,r.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{ "MunifTanjim/nui.nvim", lazy = true }\n')))),(0,r.kt)("h2",{id:"avantenvim"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/yetone/avante.nvim"},"avante.nvim")),(0,r.kt)(l.Z,{mdxType:"Tabs"},(0,r.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = {\n provider = "copilot",\n selection = {\n hint_display = "none",\n },\n behaviour = {\n auto_set_keymaps = false,\n },\n}\n'))),(0,r.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "yetone/avante.nvim",\n build = vim.fn.has("win32") ~= 0 and "powershell -ExecutionPolicy Bypass -File Build.ps1 -BuildFromSource false"\n or "make",\n event = "VeryLazy",\n opts = {\n provider = "copilot",\n selection = {\n hint_display = "none",\n },\n behaviour = {\n auto_set_keymaps = false,\n },\n },\n cmd = {\n "AvanteAsk",\n "AvanteBuild",\n "AvanteChat",\n "AvanteClear",\n "AvanteEdit",\n "AvanteFocus",\n "AvanteHistory",\n "AvanteModels",\n "AvanteRefresh",\n "AvanteShowRepoMap",\n "AvanteStop",\n "AvanteSwitchProvider",\n "AvanteToggle",\n },\n keys = {\n { "<leader>aa", "<cmd>AvanteAsk<CR>", desc = "Ask Avante" },\n { "<leader>ac", "<cmd>AvanteChat<CR>", desc = "Chat with Avante" },\n { "<leader>ae", "<cmd>AvanteEdit<CR>", desc = "Edit Avante" },\n { "<leader>af", "<cmd>AvanteFocus<CR>", desc = "Focus Avante" },\n { "<leader>ah", "<cmd>AvanteHistory<CR>", desc = "Avante History" },\n { "<leader>am", "<cmd>AvanteModels<CR>", desc = "Select Avante Model" },\n { "<leader>an", "<cmd>AvanteChatNew<CR>", desc = "New Avante Chat" },\n { "<leader>ap", "<cmd>AvanteSwitchProvider<CR>", desc = "Switch Avante Provider" },\n { "<leader>ar", "<cmd>AvanteRefresh<CR>", desc = "Refresh Avante" },\n { "<leader>as", "<cmd>AvanteStop<CR>", desc = "Stop Avante" },\n { "<leader>at", "<cmd>AvanteToggle<CR>", desc = "Toggle Avante" },\n },\n}\n')))),(0,r.kt)("h2",{id:"blink-cmp-avante"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/Kaiser-Yang/blink-cmp-avante"},"blink-cmp-avante")),(0,r.kt)(l.Z,{mdxType:"Tabs"},(0,r.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},"opts = nil\n"))),(0,r.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{ "Kaiser-Yang/blink-cmp-avante" }\n')))),(0,r.kt)("h2",{id:"img-clipnvim-optional"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/HakonHarnes/img-clip.nvim"},"img-clip.nvim")," ",(0,r.kt)("em",{parentName:"h2"},"(optional)")),(0,r.kt)("p",null," support for image pasting"),(0,r.kt)(l.Z,{mdxType:"Tabs"},(0,r.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},"opts = {\n -- recommended settings\n default = {\n embed_image_as_base64 = false,\n prompt_for_file_name = false,\n drag_and_drop = {\n insert_mode = true,\n },\n -- required for Windows users\n use_absolute_path = true,\n },\n}\n"))),(0,r.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "HakonHarnes/img-clip.nvim",\n event = "VeryLazy",\n optional = true,\n opts = {\n -- recommended settings\n default = {\n embed_image_as_base64 = false,\n prompt_for_file_name = false,\n drag_and_drop = {\n insert_mode = true,\n },\n -- required for Windows users\n use_absolute_path = true,\n },\n },\n}\n')))),(0,r.kt)("h2",{id:"render-markdownnvim-optional"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/MeanderingProgrammer/render-markdown.nvim"},"render-markdown.nvim")," ",(0,r.kt)("em",{parentName:"h2"},"(optional)")),(0,r.kt)("p",null," Make sure to set this up properly if you have lazy=true"),(0,r.kt)(l.Z,{mdxType:"Tabs"},(0,r.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = {\n file_types = { "markdown", "Avante" },\n}\n'))),(0,r.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "MeanderingProgrammer/render-markdown.nvim",\n optional = true,\n opts = {\n file_types = { "markdown", "Avante" },\n },\n ft = { "markdown", "Avante" },\n}\n')))),(0,r.kt)("h2",{id:"blinkcmp-optional"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/saghen/blink.cmp"},"blink.cmp")," ",(0,r.kt)("em",{parentName:"h2"},"(optional)")),(0,r.kt)("p",null," blink.cmp source for avante.nvim"),(0,r.kt)(l.Z,{mdxType:"Tabs"},(0,r.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = {\n sources = {\n default = { "avante" },\n providers = { avante = { module = "blink-cmp-avante", name = "Avante" } },\n },\n}\n'))),(0,r.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "saghen/blink.cmp",\n optional = true,\n specs = { "Kaiser-Yang/blink-cmp-avante" },\n opts = {\n sources = {\n default = { "avante" },\n providers = { avante = { module = "blink-cmp-avante", name = "Avante" } },\n },\n },\n}\n')))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/7454edaa.60b00574.js b/assets/js/7454edaa.60b00574.js new file mode 100644 index 0000000000..fb2a9ba1ef --- /dev/null +++ b/assets/js/7454edaa.60b00574.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklazyvim=self.webpackChunklazyvim||[]).push([[3054],{3905:(e,n,t)=>{t.d(n,{Zo:()=>c,kt:()=>f});var a=t(7294);function r(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function l(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,a)}return t}function s(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?l(Object(t),!0).forEach((function(n){r(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):l(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function o(e,n){if(null==e)return{};var t,a,r=function(e,n){if(null==e)return{};var t,a,r={},l=Object.keys(e);for(a=0;a<l.length;a++)t=l[a],n.indexOf(t)>=0||(r[t]=e[t]);return r}(e,n);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a<l.length;a++)t=l[a],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(r[t]=e[t])}return r}var i=a.createContext({}),u=function(e){var n=a.useContext(i),t=n;return e&&(t="function"==typeof e?e(n):s(s({},n),e)),t},c=function(e){var n=u(e.components);return a.createElement(i.Provider,{value:n},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var n=e.children;return a.createElement(a.Fragment,{},n)}},d=a.forwardRef((function(e,n){var t=e.components,r=e.mdxType,l=e.originalType,i=e.parentName,c=o(e,["components","mdxType","originalType","parentName"]),p=u(t),d=r,f=p["".concat(i,".").concat(d)]||p[d]||m[d]||l;return t?a.createElement(f,s(s({ref:n},c),{},{components:t})):a.createElement(f,s({ref:n},c))}));function f(e,n){var t=arguments,r=n&&n.mdxType;if("string"==typeof e||r){var l=t.length,s=new Array(l);s[0]=d;var o={};for(var i in n)hasOwnProperty.call(n,i)&&(o[i]=n[i]);o.originalType=e,o[p]="string"==typeof e?e:r,s[1]=o;for(var u=2;u<l;u++)s[u]=t[u];return a.createElement.apply(null,s)}return a.createElement.apply(null,t)}d.displayName="MDXCreateElement"},5162:(e,n,t)=>{t.d(n,{Z:()=>s});var a=t(7294),r=t(6010);const l="tabItem_Ymn6";function s(e){let{children:n,hidden:t,className:s}=e;return a.createElement("div",{role:"tabpanel",className:(0,r.Z)(l,s),hidden:t},n)}},4866:(e,n,t)=>{t.d(n,{Z:()=>w});var a=t(7462),r=t(7294),l=t(6010),s=t(2466),o=t(6550),i=t(1980),u=t(7392),c=t(12);function p(e){return function(e){return r.Children.map(e,(e=>{if(!e||(0,r.isValidElement)(e)&&function(e){const{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:n,label:t,attributes:a,default:r}}=e;return{value:n,label:t,attributes:a,default:r}}))}function m(e){const{values:n,children:t}=e;return(0,r.useMemo)((()=>{const e=n??p(t);return function(e){const n=(0,u.l)(e,((e,n)=>e.value===n.value));if(n.length>0)throw new Error(`Docusaurus error: Duplicate values "${n.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[n,t])}function d(e){let{value:n,tabValues:t}=e;return t.some((e=>e.value===n))}function f(e){let{queryString:n=!1,groupId:t}=e;const a=(0,o.k6)(),l=function(e){let{queryString:n=!1,groupId:t}=e;if("string"==typeof n)return n;if(!1===n)return null;if(!0===n&&!t)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return t??null}({queryString:n,groupId:t});return[(0,i._X)(l),(0,r.useCallback)((e=>{if(!l)return;const n=new URLSearchParams(a.location.search);n.set(l,e),a.replace({...a.location,search:n.toString()})}),[l,a])]}function g(e){const{defaultValue:n,queryString:t=!1,groupId:a}=e,l=m(e),[s,o]=(0,r.useState)((()=>function(e){let{defaultValue:n,tabValues:t}=e;if(0===t.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(n){if(!d({value:n,tabValues:t}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${n}" but none of its children has the corresponding value. Available values are: ${t.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return n}const a=t.find((e=>e.default))??t[0];if(!a)throw new Error("Unexpected error: 0 tabValues");return a.value}({defaultValue:n,tabValues:l}))),[i,u]=f({queryString:t,groupId:a}),[p,g]=function(e){let{groupId:n}=e;const t=function(e){return e?`docusaurus.tab.${e}`:null}(n),[a,l]=(0,c.Nk)(t);return[a,(0,r.useCallback)((e=>{t&&l.set(e)}),[t,l])]}({groupId:a}),v=(()=>{const e=i??p;return d({value:e,tabValues:l})?e:null})();(0,r.useLayoutEffect)((()=>{v&&o(v)}),[v]);return{selectedValue:s,selectValue:(0,r.useCallback)((e=>{if(!d({value:e,tabValues:l}))throw new Error(`Can't select invalid tab value=${e}`);o(e),u(e),g(e)}),[u,g,l]),tabValues:l}}var v=t(2389);const b="tabList__CuJ",h="tabItem_LNqP";function y(e){let{className:n,block:t,selectedValue:o,selectValue:i,tabValues:u}=e;const c=[],{blockElementScrollPositionUntilNextRender:p}=(0,s.o5)(),m=e=>{const n=e.currentTarget,t=c.indexOf(n),a=u[t].value;a!==o&&(p(n),i(a))},d=e=>{let n=null;switch(e.key){case"Enter":m(e);break;case"ArrowRight":{const t=c.indexOf(e.currentTarget)+1;n=c[t]??c[0];break}case"ArrowLeft":{const t=c.indexOf(e.currentTarget)-1;n=c[t]??c[c.length-1];break}}n?.focus()};return r.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,l.Z)("tabs",{"tabs--block":t},n)},u.map((e=>{let{value:n,label:t,attributes:s}=e;return r.createElement("li",(0,a.Z)({role:"tab",tabIndex:o===n?0:-1,"aria-selected":o===n,key:n,ref:e=>c.push(e),onKeyDown:d,onClick:m},s,{className:(0,l.Z)("tabs__item",h,s?.className,{"tabs__item--active":o===n})}),t??n)})))}function k(e){let{lazy:n,children:t,selectedValue:a}=e;const l=(Array.isArray(t)?t:[t]).filter(Boolean);if(n){const e=l.find((e=>e.props.value===a));return e?(0,r.cloneElement)(e,{className:"margin-top--md"}):null}return r.createElement("div",{className:"margin-top--md"},l.map(((e,n)=>(0,r.cloneElement)(e,{key:n,hidden:e.props.value!==a}))))}function T(e){const n=g(e);return r.createElement("div",{className:(0,l.Z)("tabs-container",b)},r.createElement(y,(0,a.Z)({},e,n)),r.createElement(k,(0,a.Z)({},e,n)))}function w(e){const n=(0,v.Z)();return r.createElement(T,(0,a.Z)({key:String(n)},e))}},6335:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>i,default:()=>d,frontMatter:()=>o,metadata:()=>u,toc:()=>p});var a=t(7462),r=(t(7294),t(3905)),l=t(4866),s=t(5162);const o={},i="Scala",u={unversionedId:"extras/lang/scala",id:"extras/lang/scala",title:"Scala",description:"You can enable the extra with the :LazyExtras command.",source:"@site/docs/extras/lang/scala.md",sourceDirName:"extras/lang",slug:"/extras/lang/scala",permalink:"/extras/lang/scala",draft:!1,editUrl:"https://github.com/LazyVim/lazyvim.github.io/tree/main/docs/extras/lang/scala.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Rust",permalink:"/extras/lang/rust"},next:{title:"Solidity",permalink:"/extras/lang/solidity"}},c={},p=[{value:"nvim-treesitter",id:"nvim-treesitter",level:2},{value:"nvim-metals",id:"nvim-metals",level:2},{value:"plenary.nvim",id:"plenarynvim",level:2},{value:"nvim-dap <em>(optional)</em>",id:"nvim-dap-optional",level:2}],m={toc:p};function d(e){let{components:n,...t}=e;return(0,r.kt)("wrapper",(0,a.Z)({},m,t,{components:n,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"scala"},(0,r.kt)("inlineCode",{parentName:"h1"},"Scala")),(0,r.kt)("admonition",{type:"info"},(0,r.kt)("p",{parentName:"admonition"},"You can enable the extra with the ",(0,r.kt)("inlineCode",{parentName:"p"},":LazyExtras")," command.\nPlugins marked as optional will only be configured if they are installed.")),(0,r.kt)("p",null,"Below you can find a list of included plugins and their default settings."),(0,r.kt)("admonition",{type:"caution"},(0,r.kt)("p",{parentName:"admonition"},"You don't need to copy the default settings to your config.\nThey are only shown here for reference.")),(0,r.kt)("h2",{id:"nvim-treesitter"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/nvim-treesitter/nvim-treesitter"},"nvim-treesitter")),(0,r.kt)(l.Z,{mdxType:"Tabs"},(0,r.kt)(s.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = { ensure_installed = { "scala" } }\n'))),(0,r.kt)(s.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "nvim-treesitter/nvim-treesitter",\n opts = { ensure_installed = { "scala" } },\n}\n')))),(0,r.kt)("h2",{id:"nvim-metals"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/scalameta/nvim-metals"},"nvim-metals")),(0,r.kt)(l.Z,{mdxType:"Tabs"},(0,r.kt)(s.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = function()\n local metals_config = require("metals").bare_config()\n\n metals_config.init_options.statusBarProvider = "off"\n\n metals_config.settings = {\n verboseCompilation = true,\n showImplicitArguments = true,\n showImplicitConversionsAndClasses = true,\n showInferredType = true,\n superMethodLensesEnabled = true,\n excludedPackages = {\n "akka.actor.typed.javadsl",\n "org.apache.pekko.actor.typed.javadsl",\n "com.github.swagger.akka.javadsl",\n },\n testUserInterface = "Test Explorer",\n }\n\n metals_config.on_attach = function(client, bufnr)\n -- your on_attach function\n require("metals").setup_dap()\n end\n\n return metals_config\nend\n'))),(0,r.kt)(s.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "scalameta/nvim-metals",\n dependencies = {\n "nvim-lua/plenary.nvim",\n },\n keys = {\n {\n "<leader>me",\n function()\n require("telescope").extensions.metals.commands()\n end,\n desc = "Metals commands",\n },\n {\n "<leader>mc",\n function()\n require("metals").compile_cascade()\n end,\n desc = "Metals compile cascade",\n },\n {\n "<leader>mh",\n function()\n require("metals").hover_worksheet()\n end,\n desc = "Metals hover worksheet",\n },\n },\n ft = { "scala", "sbt", "java" },\n opts = function()\n local metals_config = require("metals").bare_config()\n\n metals_config.init_options.statusBarProvider = "off"\n\n metals_config.settings = {\n verboseCompilation = true,\n showImplicitArguments = true,\n showImplicitConversionsAndClasses = true,\n showInferredType = true,\n superMethodLensesEnabled = true,\n excludedPackages = {\n "akka.actor.typed.javadsl",\n "org.apache.pekko.actor.typed.javadsl",\n "com.github.swagger.akka.javadsl",\n },\n testUserInterface = "Test Explorer",\n }\n\n metals_config.on_attach = function(client, bufnr)\n -- your on_attach function\n require("metals").setup_dap()\n end\n\n return metals_config\n end,\n config = function(self, metals_config)\n local nvim_metals_group = vim.api.nvim_create_augroup("nvim-metals", { clear = true })\n vim.api.nvim_create_autocmd("FileType", {\n pattern = self.ft,\n callback = function()\n require("metals").initialize_or_attach(metals_config)\n end,\n group = nvim_metals_group,\n })\n end,\n}\n')))),(0,r.kt)("h2",{id:"plenarynvim"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/nvim-lua/plenary.nvim"},"plenary.nvim")),(0,r.kt)(l.Z,{mdxType:"Tabs"},(0,r.kt)(s.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},"opts = nil\n"))),(0,r.kt)(s.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "nvim-lua/plenary.nvim",\n}\n')))),(0,r.kt)("h2",{id:"nvim-dap-optional"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/mfussenegger/nvim-dap"},"nvim-dap")," ",(0,r.kt)("em",{parentName:"h2"},"(optional)")),(0,r.kt)(l.Z,{mdxType:"Tabs"},(0,r.kt)(s.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = function()\n -- Debug settings\n local dap = require("dap")\n dap.configurations.scala = {\n {\n type = "scala",\n request = "launch",\n name = "RunOrTest",\n metals = {\n runType = "runOrTestFile",\n --args = { "firstArg", "secondArg", "thirdArg" }, -- here just as an example\n },\n },\n {\n type = "scala",\n request = "launch",\n name = "Test Target",\n metals = {\n runType = "testTarget",\n },\n },\n }\nend\n'))),(0,r.kt)(s.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "mfussenegger/nvim-dap",\n optional = true,\n opts = function()\n -- Debug settings\n local dap = require("dap")\n dap.configurations.scala = {\n {\n type = "scala",\n request = "launch",\n name = "RunOrTest",\n metals = {\n runType = "runOrTestFile",\n --args = { "firstArg", "secondArg", "thirdArg" }, -- here just as an example\n },\n },\n {\n type = "scala",\n request = "launch",\n name = "Test Target",\n metals = {\n runType = "testTarget",\n },\n },\n }\n end,\n}\n')))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/74c5fc19.bdbf561a.js b/assets/js/74c5fc19.bdbf561a.js new file mode 100644 index 0000000000..1118373c26 --- /dev/null +++ b/assets/js/74c5fc19.bdbf561a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklazyvim=self.webpackChunklazyvim||[]).push([[8612],{3905:(e,n,t)=>{t.d(n,{Zo:()=>p,kt:()=>f});var a=t(7294);function r(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function s(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,a)}return t}function o(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?s(Object(t),!0).forEach((function(n){r(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):s(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function i(e,n){if(null==e)return{};var t,a,r=function(e,n){if(null==e)return{};var t,a,r={},s=Object.keys(e);for(a=0;a<s.length;a++)t=s[a],n.indexOf(t)>=0||(r[t]=e[t]);return r}(e,n);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(a=0;a<s.length;a++)t=s[a],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(r[t]=e[t])}return r}var l=a.createContext({}),c=function(e){var n=a.useContext(l),t=n;return e&&(t="function"==typeof e?e(n):o(o({},n),e)),t},p=function(e){var n=c(e.components);return a.createElement(l.Provider,{value:n},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var n=e.children;return a.createElement(a.Fragment,{},n)}},m=a.forwardRef((function(e,n){var t=e.components,r=e.mdxType,s=e.originalType,l=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),u=c(t),m=r,f=u["".concat(l,".").concat(m)]||u[m]||d[m]||s;return t?a.createElement(f,o(o({ref:n},p),{},{components:t})):a.createElement(f,o({ref:n},p))}));function f(e,n){var t=arguments,r=n&&n.mdxType;if("string"==typeof e||r){var s=t.length,o=new Array(s);o[0]=m;var i={};for(var l in n)hasOwnProperty.call(n,l)&&(i[l]=n[l]);i.originalType=e,i[u]="string"==typeof e?e:r,o[1]=i;for(var c=2;c<s;c++)o[c]=t[c];return a.createElement.apply(null,o)}return a.createElement.apply(null,t)}m.displayName="MDXCreateElement"},5162:(e,n,t)=>{t.d(n,{Z:()=>o});var a=t(7294),r=t(6010);const s="tabItem_Ymn6";function o(e){let{children:n,hidden:t,className:o}=e;return a.createElement("div",{role:"tabpanel",className:(0,r.Z)(s,o),hidden:t},n)}},4866:(e,n,t)=>{t.d(n,{Z:()=>w});var a=t(7462),r=t(7294),s=t(6010),o=t(2466),i=t(6550),l=t(1980),c=t(7392),p=t(12);function u(e){return function(e){return r.Children.map(e,(e=>{if(!e||(0,r.isValidElement)(e)&&function(e){const{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:n,label:t,attributes:a,default:r}}=e;return{value:n,label:t,attributes:a,default:r}}))}function d(e){const{values:n,children:t}=e;return(0,r.useMemo)((()=>{const e=n??u(t);return function(e){const n=(0,c.l)(e,((e,n)=>e.value===n.value));if(n.length>0)throw new Error(`Docusaurus error: Duplicate values "${n.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[n,t])}function m(e){let{value:n,tabValues:t}=e;return t.some((e=>e.value===n))}function f(e){let{queryString:n=!1,groupId:t}=e;const a=(0,i.k6)(),s=function(e){let{queryString:n=!1,groupId:t}=e;if("string"==typeof n)return n;if(!1===n)return null;if(!0===n&&!t)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return t??null}({queryString:n,groupId:t});return[(0,l._X)(s),(0,r.useCallback)((e=>{if(!s)return;const n=new URLSearchParams(a.location.search);n.set(s,e),a.replace({...a.location,search:n.toString()})}),[s,a])]}function v(e){const{defaultValue:n,queryString:t=!1,groupId:a}=e,s=d(e),[o,i]=(0,r.useState)((()=>function(e){let{defaultValue:n,tabValues:t}=e;if(0===t.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(n){if(!m({value:n,tabValues:t}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${n}" but none of its children has the corresponding value. Available values are: ${t.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return n}const a=t.find((e=>e.default))??t[0];if(!a)throw new Error("Unexpected error: 0 tabValues");return a.value}({defaultValue:n,tabValues:s}))),[l,c]=f({queryString:t,groupId:a}),[u,v]=function(e){let{groupId:n}=e;const t=function(e){return e?`docusaurus.tab.${e}`:null}(n),[a,s]=(0,p.Nk)(t);return[a,(0,r.useCallback)((e=>{t&&s.set(e)}),[t,s])]}({groupId:a}),y=(()=>{const e=l??u;return m({value:e,tabValues:s})?e:null})();(0,r.useLayoutEffect)((()=>{y&&i(y)}),[y]);return{selectedValue:o,selectValue:(0,r.useCallback)((e=>{if(!m({value:e,tabValues:s}))throw new Error(`Can't select invalid tab value=${e}`);i(e),c(e),v(e)}),[c,v,s]),tabValues:s}}var y=t(2389);const g="tabList__CuJ",h="tabItem_LNqP";function b(e){let{className:n,block:t,selectedValue:i,selectValue:l,tabValues:c}=e;const p=[],{blockElementScrollPositionUntilNextRender:u}=(0,o.o5)(),d=e=>{const n=e.currentTarget,t=p.indexOf(n),a=c[t].value;a!==i&&(u(n),l(a))},m=e=>{let n=null;switch(e.key){case"Enter":d(e);break;case"ArrowRight":{const t=p.indexOf(e.currentTarget)+1;n=p[t]??p[0];break}case"ArrowLeft":{const t=p.indexOf(e.currentTarget)-1;n=p[t]??p[p.length-1];break}}n?.focus()};return r.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,s.Z)("tabs",{"tabs--block":t},n)},c.map((e=>{let{value:n,label:t,attributes:o}=e;return r.createElement("li",(0,a.Z)({role:"tab",tabIndex:i===n?0:-1,"aria-selected":i===n,key:n,ref:e=>p.push(e),onKeyDown:m,onClick:d},o,{className:(0,s.Z)("tabs__item",h,o?.className,{"tabs__item--active":i===n})}),t??n)})))}function k(e){let{lazy:n,children:t,selectedValue:a}=e;const s=(Array.isArray(t)?t:[t]).filter(Boolean);if(n){const e=s.find((e=>e.props.value===a));return e?(0,r.cloneElement)(e,{className:"margin-top--md"}):null}return r.createElement("div",{className:"margin-top--md"},s.map(((e,n)=>(0,r.cloneElement)(e,{key:n,hidden:e.props.value!==a}))))}function _(e){const n=v(e);return r.createElement("div",{className:(0,s.Z)("tabs-container",g)},r.createElement(b,(0,a.Z)({},e,n)),r.createElement(k,(0,a.Z)({},e,n)))}function w(e){const n=(0,y.Z)();return r.createElement(_,(0,a.Z)({key:String(n)},e))}},7007:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>p,contentTitle:()=>l,default:()=>m,frontMatter:()=>i,metadata:()=>c,toc:()=>u});var a=t(7462),r=(t(7294),t(3905)),s=t(4866),o=t(5162);const i={},l="Typescript",c={unversionedId:"extras/lang/typescript",id:"extras/lang/typescript",title:"Typescript",description:"You can enable the extra with the :LazyExtras command.",source:"@site/docs/extras/lang/typescript.md",sourceDirName:"extras/lang",slug:"/extras/lang/typescript",permalink:"/extras/lang/typescript",draft:!1,editUrl:"https://github.com/LazyVim/lazyvim.github.io/tree/main/docs/extras/lang/typescript.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Twig",permalink:"/extras/lang/twig"},next:{title:"Typst",permalink:"/extras/lang/typst"}},p={},u=[{value:"nvim-lspconfig",id:"nvim-lspconfig",level:2},{value:"mason.nvim",id:"masonnvim",level:2},{value:"mini.icons",id:"miniicons",level:2},{value:"nvim-dap <em>(optional)</em>",id:"nvim-dap-optional",level:2},{value:"mason-nvim-dap.nvim <em>(optional)</em>",id:"mason-nvim-dapnvim-optional",level:2}],d={toc:u};function m(e){let{components:n,...t}=e;return(0,r.kt)("wrapper",(0,a.Z)({},d,t,{components:n,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"typescript"},"Typescript"),(0,r.kt)("admonition",{type:"info"},(0,r.kt)("p",{parentName:"admonition"},"You can enable the extra with the ",(0,r.kt)("inlineCode",{parentName:"p"},":LazyExtras")," command.\nPlugins marked as optional will only be configured if they are installed.")),(0,r.kt)("p",null,"Below you can find a list of included plugins and their default settings."),(0,r.kt)("admonition",{type:"caution"},(0,r.kt)("p",{parentName:"admonition"},"You don't need to copy the default settings to your config.\nThey are only shown here for reference.")),(0,r.kt)("h2",{id:"nvim-lspconfig"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/neovim/nvim-lspconfig"},"nvim-lspconfig")),(0,r.kt)("p",null," correctly setup lspconfig"),(0,r.kt)(s.Z,{mdxType:"Tabs"},(0,r.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = {\n -- make sure mason installs the server\n servers = {\n --- @deprecated -- tsserver renamed to ts_ls but not yet released, so keep this for now\n --- the proper approach is to check the nvim-lspconfig release version when it\'s released to determine the server name dynamically\n tsserver = {\n enabled = false,\n },\n ts_ls = {\n enabled = false,\n },\n vtsls = {\n -- explicitly add default filetypes, so that we can extend\n -- them in related extras\n filetypes = {\n "javascript",\n "javascriptreact",\n "javascript.jsx",\n "typescript",\n "typescriptreact",\n "typescript.tsx",\n },\n settings = {\n complete_function_calls = true,\n vtsls = {\n enableMoveToFileCodeAction = true,\n autoUseWorkspaceTsdk = true,\n experimental = {\n maxInlayHintLength = 30,\n completion = {\n enableServerSideFuzzyMatch = true,\n },\n },\n },\n typescript = {\n updateImportsOnFileMove = { enabled = "always" },\n suggest = {\n completeFunctionCalls = true,\n },\n inlayHints = {\n enumMemberValues = { enabled = true },\n functionLikeReturnTypes = { enabled = true },\n parameterNames = { enabled = "literals" },\n parameterTypes = { enabled = true },\n propertyDeclarationTypes = { enabled = true },\n variableTypes = { enabled = false },\n },\n },\n },\n keys = {\n {\n "gD",\n function()\n local win = vim.api.nvim_get_current_win()\n local params = vim.lsp.util.make_position_params(win, "utf-16")\n LazyVim.lsp.execute({\n command = "typescript.goToSourceDefinition",\n arguments = { params.textDocument.uri, params.position },\n open = true,\n })\n end,\n desc = "Goto Source Definition",\n },\n {\n "gR",\n function()\n LazyVim.lsp.execute({\n command = "typescript.findAllFileReferences",\n arguments = { vim.uri_from_bufnr(0) },\n open = true,\n })\n end,\n desc = "File References",\n },\n {\n "<leader>co",\n LazyVim.lsp.action["source.organizeImports"],\n desc = "Organize Imports",\n },\n {\n "<leader>cM",\n LazyVim.lsp.action["source.addMissingImports.ts"],\n desc = "Add missing imports",\n },\n {\n "<leader>cu",\n LazyVim.lsp.action["source.removeUnused.ts"],\n desc = "Remove unused imports",\n },\n {\n "<leader>cD",\n LazyVim.lsp.action["source.fixAll.ts"],\n desc = "Fix all diagnostics",\n },\n {\n "<leader>cV",\n function()\n LazyVim.lsp.execute({ command = "typescript.selectTypeScriptVersion" })\n end,\n desc = "Select TS workspace version",\n },\n },\n },\n },\n setup = {\n --- @deprecated -- tsserver renamed to ts_ls but not yet released, so keep this for now\n --- the proper approach is to check the nvim-lspconfig release version when it\'s released to determine the server name dynamically\n tsserver = function()\n -- disable tsserver\n return true\n end,\n ts_ls = function()\n -- disable tsserver\n return true\n end,\n vtsls = function(_, opts)\n if vim.lsp.config.denols and vim.lsp.config.vtsls then\n ---@param server string\n local resolve = function(server)\n local markers, root_dir = vim.lsp.config[server].root_markers, vim.lsp.config[server].root_dir\n vim.lsp.config(server, {\n root_dir = function(bufnr, on_dir)\n local is_deno = vim.fs.root(bufnr, { "deno.json", "deno.jsonc" }) ~= nil\n if is_deno == (server == "denols") then\n if root_dir then\n return root_dir(bufnr, on_dir)\n elseif type(markers) == "table" then\n local root = vim.fs.root(bufnr, markers)\n return root and on_dir(root)\n end\n end\n end,\n })\n end\n resolve("denols")\n resolve("vtsls")\n end\n\n LazyVim.lsp.on_attach(function(client, buffer)\n client.commands["_typescript.moveToFileRefactoring"] = function(command, ctx)\n ---@type string, string, lsp.Range\n local action, uri, range = unpack(command.arguments)\n\n local function move(newf)\n client:request("workspace/executeCommand", {\n command = command.command,\n arguments = { action, uri, range, newf },\n })\n end\n\n local fname = vim.uri_to_fname(uri)\n client:request("workspace/executeCommand", {\n command = "typescript.tsserverRequest",\n arguments = {\n "getMoveToRefactoringFileSuggestions",\n {\n file = fname,\n startLine = range.start.line + 1,\n startOffset = range.start.character + 1,\n endLine = range["end"].line + 1,\n endOffset = range["end"].character + 1,\n },\n },\n }, function(_, result)\n ---@type string[]\n local files = result.body.files\n table.insert(files, 1, "Enter new path...")\n vim.ui.select(files, {\n prompt = "Select move destination:",\n format_item = function(f)\n return vim.fn.fnamemodify(f, ":~:.")\n end,\n }, function(f)\n if f and f:find("^Enter new path") then\n vim.ui.input({\n prompt = "Enter move destination:",\n default = vim.fn.fnamemodify(fname, ":h") .. "/",\n completion = "file",\n }, function(newf)\n return newf and move(newf)\n end)\n elseif f then\n move(f)\n end\n end)\n end)\n end\n end, "vtsls")\n -- copy typescript settings to javascript\n opts.settings.javascript =\n vim.tbl_deep_extend("force", {}, opts.settings.typescript, opts.settings.javascript or {})\n end,\n },\n}\n'))),(0,r.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "neovim/nvim-lspconfig",\n opts = {\n -- make sure mason installs the server\n servers = {\n --- @deprecated -- tsserver renamed to ts_ls but not yet released, so keep this for now\n --- the proper approach is to check the nvim-lspconfig release version when it\'s released to determine the server name dynamically\n tsserver = {\n enabled = false,\n },\n ts_ls = {\n enabled = false,\n },\n vtsls = {\n -- explicitly add default filetypes, so that we can extend\n -- them in related extras\n filetypes = {\n "javascript",\n "javascriptreact",\n "javascript.jsx",\n "typescript",\n "typescriptreact",\n "typescript.tsx",\n },\n settings = {\n complete_function_calls = true,\n vtsls = {\n enableMoveToFileCodeAction = true,\n autoUseWorkspaceTsdk = true,\n experimental = {\n maxInlayHintLength = 30,\n completion = {\n enableServerSideFuzzyMatch = true,\n },\n },\n },\n typescript = {\n updateImportsOnFileMove = { enabled = "always" },\n suggest = {\n completeFunctionCalls = true,\n },\n inlayHints = {\n enumMemberValues = { enabled = true },\n functionLikeReturnTypes = { enabled = true },\n parameterNames = { enabled = "literals" },\n parameterTypes = { enabled = true },\n propertyDeclarationTypes = { enabled = true },\n variableTypes = { enabled = false },\n },\n },\n },\n keys = {\n {\n "gD",\n function()\n local win = vim.api.nvim_get_current_win()\n local params = vim.lsp.util.make_position_params(win, "utf-16")\n LazyVim.lsp.execute({\n command = "typescript.goToSourceDefinition",\n arguments = { params.textDocument.uri, params.position },\n open = true,\n })\n end,\n desc = "Goto Source Definition",\n },\n {\n "gR",\n function()\n LazyVim.lsp.execute({\n command = "typescript.findAllFileReferences",\n arguments = { vim.uri_from_bufnr(0) },\n open = true,\n })\n end,\n desc = "File References",\n },\n {\n "<leader>co",\n LazyVim.lsp.action["source.organizeImports"],\n desc = "Organize Imports",\n },\n {\n "<leader>cM",\n LazyVim.lsp.action["source.addMissingImports.ts"],\n desc = "Add missing imports",\n },\n {\n "<leader>cu",\n LazyVim.lsp.action["source.removeUnused.ts"],\n desc = "Remove unused imports",\n },\n {\n "<leader>cD",\n LazyVim.lsp.action["source.fixAll.ts"],\n desc = "Fix all diagnostics",\n },\n {\n "<leader>cV",\n function()\n LazyVim.lsp.execute({ command = "typescript.selectTypeScriptVersion" })\n end,\n desc = "Select TS workspace version",\n },\n },\n },\n },\n setup = {\n --- @deprecated -- tsserver renamed to ts_ls but not yet released, so keep this for now\n --- the proper approach is to check the nvim-lspconfig release version when it\'s released to determine the server name dynamically\n tsserver = function()\n -- disable tsserver\n return true\n end,\n ts_ls = function()\n -- disable tsserver\n return true\n end,\n vtsls = function(_, opts)\n if vim.lsp.config.denols and vim.lsp.config.vtsls then\n ---@param server string\n local resolve = function(server)\n local markers, root_dir = vim.lsp.config[server].root_markers, vim.lsp.config[server].root_dir\n vim.lsp.config(server, {\n root_dir = function(bufnr, on_dir)\n local is_deno = vim.fs.root(bufnr, { "deno.json", "deno.jsonc" }) ~= nil\n if is_deno == (server == "denols") then\n if root_dir then\n return root_dir(bufnr, on_dir)\n elseif type(markers) == "table" then\n local root = vim.fs.root(bufnr, markers)\n return root and on_dir(root)\n end\n end\n end,\n })\n end\n resolve("denols")\n resolve("vtsls")\n end\n\n LazyVim.lsp.on_attach(function(client, buffer)\n client.commands["_typescript.moveToFileRefactoring"] = function(command, ctx)\n ---@type string, string, lsp.Range\n local action, uri, range = unpack(command.arguments)\n\n local function move(newf)\n client:request("workspace/executeCommand", {\n command = command.command,\n arguments = { action, uri, range, newf },\n })\n end\n\n local fname = vim.uri_to_fname(uri)\n client:request("workspace/executeCommand", {\n command = "typescript.tsserverRequest",\n arguments = {\n "getMoveToRefactoringFileSuggestions",\n {\n file = fname,\n startLine = range.start.line + 1,\n startOffset = range.start.character + 1,\n endLine = range["end"].line + 1,\n endOffset = range["end"].character + 1,\n },\n },\n }, function(_, result)\n ---@type string[]\n local files = result.body.files\n table.insert(files, 1, "Enter new path...")\n vim.ui.select(files, {\n prompt = "Select move destination:",\n format_item = function(f)\n return vim.fn.fnamemodify(f, ":~:.")\n end,\n }, function(f)\n if f and f:find("^Enter new path") then\n vim.ui.input({\n prompt = "Enter move destination:",\n default = vim.fn.fnamemodify(fname, ":h") .. "/",\n completion = "file",\n }, function(newf)\n return newf and move(newf)\n end)\n elseif f then\n move(f)\n end\n end)\n end)\n end\n end, "vtsls")\n -- copy typescript settings to javascript\n opts.settings.javascript =\n vim.tbl_deep_extend("force", {}, opts.settings.typescript, opts.settings.javascript or {})\n end,\n },\n },\n}\n')))),(0,r.kt)("h2",{id:"masonnvim"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/mason-org/mason.nvim"},"mason.nvim")),(0,r.kt)(s.Z,{mdxType:"Tabs"},(0,r.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = function(_, opts)\n opts.ensure_installed = opts.ensure_installed or {}\n table.insert(opts.ensure_installed, "js-debug-adapter")\nend\n'))),(0,r.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "mason-org/mason.nvim",\n opts = function(_, opts)\n opts.ensure_installed = opts.ensure_installed or {}\n table.insert(opts.ensure_installed, "js-debug-adapter")\n end,\n}\n')))),(0,r.kt)("h2",{id:"miniicons"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/nvim-mini/mini.icons"},"mini.icons")),(0,r.kt)("p",null," Filetype icons"),(0,r.kt)(s.Z,{mdxType:"Tabs"},(0,r.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = {\n file = {\n [".eslintrc.js"] = { glyph = "\udb83\udc7a", hl = "MiniIconsYellow" },\n [".node-version"] = { glyph = "\ue718", hl = "MiniIconsGreen" },\n [".prettierrc"] = { glyph = "\ue6b4", hl = "MiniIconsPurple" },\n [".yarnrc.yml"] = { glyph = "\ue6a7", hl = "MiniIconsBlue" },\n ["eslint.config.js"] = { glyph = "\udb83\udc7a", hl = "MiniIconsYellow" },\n ["package.json"] = { glyph = "\ue718", hl = "MiniIconsGreen" },\n ["tsconfig.json"] = { glyph = "\ue628", hl = "MiniIconsAzure" },\n ["tsconfig.build.json"] = { glyph = "\ue628", hl = "MiniIconsAzure" },\n ["yarn.lock"] = { glyph = "\ue6a7", hl = "MiniIconsBlue" },\n },\n}\n'))),(0,r.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "nvim-mini/mini.icons",\n opts = {\n file = {\n [".eslintrc.js"] = { glyph = "\udb83\udc7a", hl = "MiniIconsYellow" },\n [".node-version"] = { glyph = "\ue718", hl = "MiniIconsGreen" },\n [".prettierrc"] = { glyph = "\ue6b4", hl = "MiniIconsPurple" },\n [".yarnrc.yml"] = { glyph = "\ue6a7", hl = "MiniIconsBlue" },\n ["eslint.config.js"] = { glyph = "\udb83\udc7a", hl = "MiniIconsYellow" },\n ["package.json"] = { glyph = "\ue718", hl = "MiniIconsGreen" },\n ["tsconfig.json"] = { glyph = "\ue628", hl = "MiniIconsAzure" },\n ["tsconfig.build.json"] = { glyph = "\ue628", hl = "MiniIconsAzure" },\n ["yarn.lock"] = { glyph = "\ue6a7", hl = "MiniIconsBlue" },\n },\n },\n}\n')))),(0,r.kt)("h2",{id:"nvim-dap-optional"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/mfussenegger/nvim-dap"},"nvim-dap")," ",(0,r.kt)("em",{parentName:"h2"},"(optional)")),(0,r.kt)(s.Z,{mdxType:"Tabs"},(0,r.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = function()\n local dap = require("dap")\n\n for _, adapterType in ipairs({ "node", "chrome", "msedge" }) do\n local pwaType = "pwa-" .. adapterType\n\n if not dap.adapters[pwaType] then\n dap.adapters[pwaType] = {\n type = "server",\n host = "localhost",\n port = "${port}",\n executable = {\n command = "js-debug-adapter",\n args = { "${port}" },\n },\n }\n end\n\n -- Define adapters without the "pwa-" prefix for VSCode compatibility\n if not dap.adapters[adapterType] then\n dap.adapters[adapterType] = function(cb, config)\n local nativeAdapter = dap.adapters[pwaType]\n\n config.type = pwaType\n\n if type(nativeAdapter) == "function" then\n nativeAdapter(cb, config)\n else\n cb(nativeAdapter)\n end\n end\n end\n end\n\n local js_filetypes = { "typescript", "javascript", "typescriptreact", "javascriptreact" }\n\n local vscode = require("dap.ext.vscode")\n vscode.type_to_filetypes["node"] = js_filetypes\n vscode.type_to_filetypes["pwa-node"] = js_filetypes\n\n for _, language in ipairs(js_filetypes) do\n if not dap.configurations[language] then\n local runtimeExecutable = nil\n if language:find("typescript") then\n runtimeExecutable = vim.fn.executable("tsx") == 1 and "tsx" or "ts-node"\n end\n dap.configurations[language] = {\n {\n type = "pwa-node",\n request = "launch",\n name = "Launch file",\n program = "${file}",\n cwd = "${workspaceFolder}",\n sourceMaps = true,\n runtimeExecutable = runtimeExecutable,\n skipFiles = {\n "<node_internals>/**",\n "node_modules/**",\n },\n resolveSourceMapLocations = {\n "${workspaceFolder}/**",\n "!**/node_modules/**",\n },\n },\n {\n type = "pwa-node",\n request = "attach",\n name = "Attach",\n processId = require("dap.utils").pick_process,\n cwd = "${workspaceFolder}",\n sourceMaps = true,\n runtimeExecutable = runtimeExecutable,\n skipFiles = {\n "<node_internals>/**",\n "node_modules/**",\n },\n resolveSourceMapLocations = {\n "${workspaceFolder}/**",\n "!**/node_modules/**",\n },\n },\n }\n end\n end\nend\n'))),(0,r.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "mfussenegger/nvim-dap",\n optional = true,\n dependencies = {\n {\n "mason-org/mason.nvim",\n opts = function(_, opts)\n opts.ensure_installed = opts.ensure_installed or {}\n table.insert(opts.ensure_installed, "js-debug-adapter")\n end,\n },\n },\n opts = function()\n local dap = require("dap")\n\n for _, adapterType in ipairs({ "node", "chrome", "msedge" }) do\n local pwaType = "pwa-" .. adapterType\n\n if not dap.adapters[pwaType] then\n dap.adapters[pwaType] = {\n type = "server",\n host = "localhost",\n port = "${port}",\n executable = {\n command = "js-debug-adapter",\n args = { "${port}" },\n },\n }\n end\n\n -- Define adapters without the "pwa-" prefix for VSCode compatibility\n if not dap.adapters[adapterType] then\n dap.adapters[adapterType] = function(cb, config)\n local nativeAdapter = dap.adapters[pwaType]\n\n config.type = pwaType\n\n if type(nativeAdapter) == "function" then\n nativeAdapter(cb, config)\n else\n cb(nativeAdapter)\n end\n end\n end\n end\n\n local js_filetypes = { "typescript", "javascript", "typescriptreact", "javascriptreact" }\n\n local vscode = require("dap.ext.vscode")\n vscode.type_to_filetypes["node"] = js_filetypes\n vscode.type_to_filetypes["pwa-node"] = js_filetypes\n\n for _, language in ipairs(js_filetypes) do\n if not dap.configurations[language] then\n local runtimeExecutable = nil\n if language:find("typescript") then\n runtimeExecutable = vim.fn.executable("tsx") == 1 and "tsx" or "ts-node"\n end\n dap.configurations[language] = {\n {\n type = "pwa-node",\n request = "launch",\n name = "Launch file",\n program = "${file}",\n cwd = "${workspaceFolder}",\n sourceMaps = true,\n runtimeExecutable = runtimeExecutable,\n skipFiles = {\n "<node_internals>/**",\n "node_modules/**",\n },\n resolveSourceMapLocations = {\n "${workspaceFolder}/**",\n "!**/node_modules/**",\n },\n },\n {\n type = "pwa-node",\n request = "attach",\n name = "Attach",\n processId = require("dap.utils").pick_process,\n cwd = "${workspaceFolder}",\n sourceMaps = true,\n runtimeExecutable = runtimeExecutable,\n skipFiles = {\n "<node_internals>/**",\n "node_modules/**",\n },\n resolveSourceMapLocations = {\n "${workspaceFolder}/**",\n "!**/node_modules/**",\n },\n },\n }\n end\n end\n end,\n}\n')))),(0,r.kt)("h2",{id:"mason-nvim-dapnvim-optional"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/jay-babu/mason-nvim-dap.nvim"},"mason-nvim-dap.nvim")," ",(0,r.kt)("em",{parentName:"h2"},"(optional)")),(0,r.kt)(s.Z,{mdxType:"Tabs"},(0,r.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = {\n -- chrome adapter is deprecated, use js-debug-adapter instead\n automatic_installation = { exclude = { "chrome" } },\n}\n'))),(0,r.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "jay-babu/mason-nvim-dap.nvim",\n optional = true,\n opts = {\n -- chrome adapter is deprecated, use js-debug-adapter instead\n automatic_installation = { exclude = { "chrome" } },\n },\n}\n')))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/769b26d9.35e8b716.js b/assets/js/769b26d9.35e8b716.js new file mode 100644 index 0000000000..801224f176 --- /dev/null +++ b/assets/js/769b26d9.35e8b716.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklazyvim=self.webpackChunklazyvim||[]).push([[1969],{3905:(e,n,t)=>{t.d(n,{Zo:()=>c,kt:()=>b});var a=t(7294);function r(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function l(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,a)}return t}function s(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?l(Object(t),!0).forEach((function(n){r(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):l(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function o(e,n){if(null==e)return{};var t,a,r=function(e,n){if(null==e)return{};var t,a,r={},l=Object.keys(e);for(a=0;a<l.length;a++)t=l[a],n.indexOf(t)>=0||(r[t]=e[t]);return r}(e,n);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a<l.length;a++)t=l[a],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(r[t]=e[t])}return r}var i=a.createContext({}),u=function(e){var n=a.useContext(i),t=n;return e&&(t="function"==typeof e?e(n):s(s({},n),e)),t},c=function(e){var n=u(e.components);return a.createElement(i.Provider,{value:n},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var n=e.children;return a.createElement(a.Fragment,{},n)}},m=a.forwardRef((function(e,n){var t=e.components,r=e.mdxType,l=e.originalType,i=e.parentName,c=o(e,["components","mdxType","originalType","parentName"]),p=u(t),m=r,b=p["".concat(i,".").concat(m)]||p[m]||d[m]||l;return t?a.createElement(b,s(s({ref:n},c),{},{components:t})):a.createElement(b,s({ref:n},c))}));function b(e,n){var t=arguments,r=n&&n.mdxType;if("string"==typeof e||r){var l=t.length,s=new Array(l);s[0]=m;var o={};for(var i in n)hasOwnProperty.call(n,i)&&(o[i]=n[i]);o.originalType=e,o[p]="string"==typeof e?e:r,s[1]=o;for(var u=2;u<l;u++)s[u]=t[u];return a.createElement.apply(null,s)}return a.createElement.apply(null,t)}m.displayName="MDXCreateElement"},5162:(e,n,t)=>{t.d(n,{Z:()=>s});var a=t(7294),r=t(6010);const l="tabItem_Ymn6";function s(e){let{children:n,hidden:t,className:s}=e;return a.createElement("div",{role:"tabpanel",className:(0,r.Z)(l,s),hidden:t},n)}},4866:(e,n,t)=>{t.d(n,{Z:()=>T});var a=t(7462),r=t(7294),l=t(6010),s=t(2466),o=t(6550),i=t(1980),u=t(7392),c=t(12);function p(e){return function(e){return r.Children.map(e,(e=>{if(!e||(0,r.isValidElement)(e)&&function(e){const{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:n,label:t,attributes:a,default:r}}=e;return{value:n,label:t,attributes:a,default:r}}))}function d(e){const{values:n,children:t}=e;return(0,r.useMemo)((()=>{const e=n??p(t);return function(e){const n=(0,u.l)(e,((e,n)=>e.value===n.value));if(n.length>0)throw new Error(`Docusaurus error: Duplicate values "${n.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[n,t])}function m(e){let{value:n,tabValues:t}=e;return t.some((e=>e.value===n))}function b(e){let{queryString:n=!1,groupId:t}=e;const a=(0,o.k6)(),l=function(e){let{queryString:n=!1,groupId:t}=e;if("string"==typeof n)return n;if(!1===n)return null;if(!0===n&&!t)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return t??null}({queryString:n,groupId:t});return[(0,i._X)(l),(0,r.useCallback)((e=>{if(!l)return;const n=new URLSearchParams(a.location.search);n.set(l,e),a.replace({...a.location,search:n.toString()})}),[l,a])]}function f(e){const{defaultValue:n,queryString:t=!1,groupId:a}=e,l=d(e),[s,o]=(0,r.useState)((()=>function(e){let{defaultValue:n,tabValues:t}=e;if(0===t.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(n){if(!m({value:n,tabValues:t}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${n}" but none of its children has the corresponding value. Available values are: ${t.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return n}const a=t.find((e=>e.default))??t[0];if(!a)throw new Error("Unexpected error: 0 tabValues");return a.value}({defaultValue:n,tabValues:l}))),[i,u]=b({queryString:t,groupId:a}),[p,f]=function(e){let{groupId:n}=e;const t=function(e){return e?`docusaurus.tab.${e}`:null}(n),[a,l]=(0,c.Nk)(t);return[a,(0,r.useCallback)((e=>{t&&l.set(e)}),[t,l])]}({groupId:a}),v=(()=>{const e=i??p;return m({value:e,tabValues:l})?e:null})();(0,r.useLayoutEffect)((()=>{v&&o(v)}),[v]);return{selectedValue:s,selectValue:(0,r.useCallback)((e=>{if(!m({value:e,tabValues:l}))throw new Error(`Can't select invalid tab value=${e}`);o(e),u(e),f(e)}),[u,f,l]),tabValues:l}}var v=t(2389);const g="tabList__CuJ",h="tabItem_LNqP";function y(e){let{className:n,block:t,selectedValue:o,selectValue:i,tabValues:u}=e;const c=[],{blockElementScrollPositionUntilNextRender:p}=(0,s.o5)(),d=e=>{const n=e.currentTarget,t=c.indexOf(n),a=u[t].value;a!==o&&(p(n),i(a))},m=e=>{let n=null;switch(e.key){case"Enter":d(e);break;case"ArrowRight":{const t=c.indexOf(e.currentTarget)+1;n=c[t]??c[0];break}case"ArrowLeft":{const t=c.indexOf(e.currentTarget)-1;n=c[t]??c[c.length-1];break}}n?.focus()};return r.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,l.Z)("tabs",{"tabs--block":t},n)},u.map((e=>{let{value:n,label:t,attributes:s}=e;return r.createElement("li",(0,a.Z)({role:"tab",tabIndex:o===n?0:-1,"aria-selected":o===n,key:n,ref:e=>c.push(e),onKeyDown:m,onClick:d},s,{className:(0,l.Z)("tabs__item",h,s?.className,{"tabs__item--active":o===n})}),t??n)})))}function k(e){let{lazy:n,children:t,selectedValue:a}=e;const l=(Array.isArray(t)?t:[t]).filter(Boolean);if(n){const e=l.find((e=>e.props.value===a));return e?(0,r.cloneElement)(e,{className:"margin-top--md"}):null}return r.createElement("div",{className:"margin-top--md"},l.map(((e,n)=>(0,r.cloneElement)(e,{key:n,hidden:e.props.value!==a}))))}function x(e){const n=f(e);return r.createElement("div",{className:(0,l.Z)("tabs-container",g)},r.createElement(y,(0,a.Z)({},e,n)),r.createElement(k,(0,a.Z)({},e,n)))}function T(e){const n=(0,v.Z)();return r.createElement(x,(0,a.Z)({key:String(n)},e))}},1452:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>i,default:()=>m,frontMatter:()=>o,metadata:()=>u,toc:()=>p});var a=t(7462),r=(t(7294),t(3905)),l=t(4866),s=t(5162);const o={},i="Rust",u={unversionedId:"extras/lang/rust",id:"extras/lang/rust",title:"Rust",description:"You can enable the extra with the :LazyExtras command.",source:"@site/docs/extras/lang/rust.md",sourceDirName:"extras/lang",slug:"/extras/lang/rust",permalink:"/extras/lang/rust",draft:!1,editUrl:"https://github.com/LazyVim/lazyvim.github.io/tree/main/docs/extras/lang/rust.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Ruby",permalink:"/extras/lang/ruby"},next:{title:"Scala",permalink:"/extras/lang/scala"}},c={},p=[{value:"Options",id:"options",level:3},{value:"crates.nvim",id:"cratesnvim",level:2},{value:"nvim-treesitter",id:"nvim-treesitter",level:2},{value:"rustaceanvim",id:"rustaceanvim",level:2},{value:"nvim-lspconfig",id:"nvim-lspconfig",level:2},{value:"mason.nvim <em>(optional)</em>",id:"masonnvim-optional",level:2},{value:"neotest <em>(optional)</em>",id:"neotest-optional",level:2}],d={toc:p};function m(e){let{components:n,...t}=e;return(0,r.kt)("wrapper",(0,a.Z)({},d,t,{components:n,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"rust"},"Rust"),(0,r.kt)("admonition",{type:"info"},(0,r.kt)("p",{parentName:"admonition"},"You can enable the extra with the ",(0,r.kt)("inlineCode",{parentName:"p"},":LazyExtras")," command.\nPlugins marked as optional will only be configured if they are installed.")),(0,r.kt)("h3",{id:"options"},"Options"),(0,r.kt)("p",null,"Additional options for this extra can be configured in your ",(0,r.kt)("a",{parentName:"p",href:"/configuration/general#options"},"lua/config/options.lua")," file:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua",metastring:'title="lua/config/options.lua"',title:'"lua/config/options.lua"'},'-- LSP Server to use for Rust.\n-- Set to "bacon-ls" to use bacon-ls instead of rust-analyzer.\n-- only for diagnostics. The rest of LSP support will still be\n-- provided by rust-analyzer.\nvim.g.lazyvim_rust_diagnostics = "rust-analyzer"\n')),(0,r.kt)("p",null,"Below you can find a list of included plugins and their default settings."),(0,r.kt)("admonition",{type:"caution"},(0,r.kt)("p",{parentName:"admonition"},"You don't need to copy the default settings to your config.\nThey are only shown here for reference.")),(0,r.kt)("h2",{id:"cratesnvim"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/Saecki/crates.nvim"},"crates.nvim")),(0,r.kt)("p",null," LSP for Cargo.toml"),(0,r.kt)(l.Z,{mdxType:"Tabs"},(0,r.kt)(s.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},"opts = {\n completion = {\n crates = {\n enabled = true,\n },\n },\n lsp = {\n enabled = true,\n actions = true,\n completion = true,\n hover = true,\n },\n}\n"))),(0,r.kt)(s.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "Saecki/crates.nvim",\n event = { "BufRead Cargo.toml" },\n opts = {\n completion = {\n crates = {\n enabled = true,\n },\n },\n lsp = {\n enabled = true,\n actions = true,\n completion = true,\n hover = true,\n },\n },\n}\n')))),(0,r.kt)("h2",{id:"nvim-treesitter"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/nvim-treesitter/nvim-treesitter"},"nvim-treesitter")),(0,r.kt)("p",null," Add Rust & related to treesitter"),(0,r.kt)(l.Z,{mdxType:"Tabs"},(0,r.kt)(s.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = { ensure_installed = { "rust", "ron" } }\n'))),(0,r.kt)(s.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "nvim-treesitter/nvim-treesitter",\n opts = { ensure_installed = { "rust", "ron" } },\n}\n')))),(0,r.kt)("h2",{id:"rustaceanvim"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/mrcjkb/rustaceanvim"},"rustaceanvim")),(0,r.kt)(l.Z,{mdxType:"Tabs"},(0,r.kt)(s.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = {\n server = {\n on_attach = function(_, bufnr)\n vim.keymap.set("n", "<leader>cR", function()\n vim.cmd.RustLsp("codeAction")\n end, { desc = "Code Action", buffer = bufnr })\n vim.keymap.set("n", "<leader>dr", function()\n vim.cmd.RustLsp("debuggables")\n end, { desc = "Rust Debuggables", buffer = bufnr })\n end,\n default_settings = {\n -- rust-analyzer language server configuration\n ["rust-analyzer"] = {\n cargo = {\n allFeatures = true,\n loadOutDirsFromCheck = true,\n buildScripts = {\n enable = true,\n },\n },\n -- Add clippy lints for Rust if using rust-analyzer\n checkOnSave = diagnostics == "rust-analyzer",\n -- Enable diagnostics if using rust-analyzer\n diagnostics = {\n enable = diagnostics == "rust-analyzer",\n },\n procMacro = {\n enable = true,\n },\n files = {\n exclude = {\n ".direnv",\n ".git",\n ".jj",\n ".github",\n ".gitlab",\n "bin",\n "node_modules",\n "target",\n "venv",\n ".venv",\n },\n -- Avoid Roots Scanned hanging, see https://github.com/rust-lang/rust-analyzer/issues/12613#issuecomment-2096386344\n watcher = "client",\n },\n },\n },\n },\n}\n'))),(0,r.kt)(s.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "mrcjkb/rustaceanvim",\n ft = { "rust" },\n opts = {\n server = {\n on_attach = function(_, bufnr)\n vim.keymap.set("n", "<leader>cR", function()\n vim.cmd.RustLsp("codeAction")\n end, { desc = "Code Action", buffer = bufnr })\n vim.keymap.set("n", "<leader>dr", function()\n vim.cmd.RustLsp("debuggables")\n end, { desc = "Rust Debuggables", buffer = bufnr })\n end,\n default_settings = {\n -- rust-analyzer language server configuration\n ["rust-analyzer"] = {\n cargo = {\n allFeatures = true,\n loadOutDirsFromCheck = true,\n buildScripts = {\n enable = true,\n },\n },\n -- Add clippy lints for Rust if using rust-analyzer\n checkOnSave = diagnostics == "rust-analyzer",\n -- Enable diagnostics if using rust-analyzer\n diagnostics = {\n enable = diagnostics == "rust-analyzer",\n },\n procMacro = {\n enable = true,\n },\n files = {\n exclude = {\n ".direnv",\n ".git",\n ".jj",\n ".github",\n ".gitlab",\n "bin",\n "node_modules",\n "target",\n "venv",\n ".venv",\n },\n -- Avoid Roots Scanned hanging, see https://github.com/rust-lang/rust-analyzer/issues/12613#issuecomment-2096386344\n watcher = "client",\n },\n },\n },\n },\n },\n config = function(_, opts)\n if LazyVim.has("mason.nvim") then\n local codelldb = vim.fn.exepath("codelldb")\n local codelldb_lib_ext = io.popen("uname"):read("*l") == "Linux" and ".so" or ".dylib"\n local library_path = vim.fn.expand("$MASON/opt/lldb/lib/liblldb" .. codelldb_lib_ext)\n opts.dap = {\n adapter = require("rustaceanvim.config").get_codelldb_adapter(codelldb, library_path),\n }\n end\n vim.g.rustaceanvim = vim.tbl_deep_extend("keep", vim.g.rustaceanvim or {}, opts or {})\n if vim.fn.executable("rust-analyzer") == 0 then\n LazyVim.error(\n "**rust-analyzer** not found in PATH, please install it.\\nhttps://rust-analyzer.github.io/",\n { title = "rustaceanvim" }\n )\n end\n end,\n}\n')))),(0,r.kt)("h2",{id:"nvim-lspconfig"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/neovim/nvim-lspconfig"},"nvim-lspconfig")),(0,r.kt)("p",null," Correctly setup lspconfig for Rust \ud83d\ude80"),(0,r.kt)(l.Z,{mdxType:"Tabs"},(0,r.kt)(s.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = {\n servers = {\n bacon_ls = {\n enabled = diagnostics == "bacon-ls",\n },\n rust_analyzer = { enabled = false },\n },\n}\n'))),(0,r.kt)(s.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "neovim/nvim-lspconfig",\n opts = {\n servers = {\n bacon_ls = {\n enabled = diagnostics == "bacon-ls",\n },\n rust_analyzer = { enabled = false },\n },\n },\n}\n')))),(0,r.kt)("h2",{id:"masonnvim-optional"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/mason-org/mason.nvim"},"mason.nvim")," ",(0,r.kt)("em",{parentName:"h2"},"(optional)")),(0,r.kt)("p",null," Ensure Rust debugger is installed"),(0,r.kt)(l.Z,{mdxType:"Tabs"},(0,r.kt)(s.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = function(_, opts)\n opts.ensure_installed = opts.ensure_installed or {}\n vim.list_extend(opts.ensure_installed, { "codelldb" })\n if diagnostics == "bacon-ls" then\n vim.list_extend(opts.ensure_installed, { "bacon" })\n end\nend\n'))),(0,r.kt)(s.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "mason-org/mason.nvim",\n optional = true,\n opts = function(_, opts)\n opts.ensure_installed = opts.ensure_installed or {}\n vim.list_extend(opts.ensure_installed, { "codelldb" })\n if diagnostics == "bacon-ls" then\n vim.list_extend(opts.ensure_installed, { "bacon" })\n end\n end,\n}\n')))),(0,r.kt)("h2",{id:"neotest-optional"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/nvim-neotest/neotest"},"neotest")," ",(0,r.kt)("em",{parentName:"h2"},"(optional)")),(0,r.kt)(l.Z,{mdxType:"Tabs"},(0,r.kt)(s.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = {\n adapters = {\n ["rustaceanvim.neotest"] = {},\n },\n}\n'))),(0,r.kt)(s.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "nvim-neotest/neotest",\n optional = true,\n opts = {\n adapters = {\n ["rustaceanvim.neotest"] = {},\n },\n },\n}\n')))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/77467bf2.a471583a.js b/assets/js/77467bf2.a471583a.js new file mode 100644 index 0000000000..002ce3cb5e --- /dev/null +++ b/assets/js/77467bf2.a471583a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklazyvim=self.webpackChunklazyvim||[]).push([[5169],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>f});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?l(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):l(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function i(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},l=Object.keys(e);for(r=0;r<l.length;r++)n=l[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r<l.length;r++)n=l[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var u=r.createContext({}),s=function(e){var t=r.useContext(u),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},c=function(e){var t=s(e.components);return r.createElement(u.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,l=e.originalType,u=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),p=s(n),d=a,f=p["".concat(u,".").concat(d)]||p[d]||m[d]||l;return n?r.createElement(f,o(o({ref:t},c),{},{components:n})):r.createElement(f,o({ref:t},c))}));function f(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var l=n.length,o=new Array(l);o[0]=d;var i={};for(var u in t)hasOwnProperty.call(t,u)&&(i[u]=t[u]);i.originalType=e,i[p]="string"==typeof e?e:a,o[1]=i;for(var s=2;s<l;s++)o[s]=n[s];return r.createElement.apply(null,o)}return r.createElement.apply(null,n)}d.displayName="MDXCreateElement"},5162:(e,t,n)=>{n.d(t,{Z:()=>o});var r=n(7294),a=n(6010);const l="tabItem_Ymn6";function o(e){let{children:t,hidden:n,className:o}=e;return r.createElement("div",{role:"tabpanel",className:(0,a.Z)(l,o),hidden:n},t)}},4866:(e,t,n)=>{n.d(t,{Z:()=>w});var r=n(7462),a=n(7294),l=n(6010),o=n(2466),i=n(6550),u=n(1980),s=n(7392),c=n(12);function p(e){return function(e){return a.Children.map(e,(e=>{if(!e||(0,a.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:t,label:n,attributes:r,default:a}}=e;return{value:t,label:n,attributes:r,default:a}}))}function m(e){const{values:t,children:n}=e;return(0,a.useMemo)((()=>{const e=t??p(n);return function(e){const t=(0,s.l)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[t,n])}function d(e){let{value:t,tabValues:n}=e;return n.some((e=>e.value===t))}function f(e){let{queryString:t=!1,groupId:n}=e;const r=(0,i.k6)(),l=function(e){let{queryString:t=!1,groupId:n}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!n)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return n??null}({queryString:t,groupId:n});return[(0,u._X)(l),(0,a.useCallback)((e=>{if(!l)return;const t=new URLSearchParams(r.location.search);t.set(l,e),r.replace({...r.location,search:t.toString()})}),[l,r])]}function b(e){const{defaultValue:t,queryString:n=!1,groupId:r}=e,l=m(e),[o,i]=(0,a.useState)((()=>function(e){let{defaultValue:t,tabValues:n}=e;if(0===n.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(t){if(!d({value:t,tabValues:n}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${n.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const r=n.find((e=>e.default))??n[0];if(!r)throw new Error("Unexpected error: 0 tabValues");return r.value}({defaultValue:t,tabValues:l}))),[u,s]=f({queryString:n,groupId:r}),[p,b]=function(e){let{groupId:t}=e;const n=function(e){return e?`docusaurus.tab.${e}`:null}(t),[r,l]=(0,c.Nk)(n);return[r,(0,a.useCallback)((e=>{n&&l.set(e)}),[n,l])]}({groupId:r}),y=(()=>{const e=u??p;return d({value:e,tabValues:l})?e:null})();(0,a.useLayoutEffect)((()=>{y&&i(y)}),[y]);return{selectedValue:o,selectValue:(0,a.useCallback)((e=>{if(!d({value:e,tabValues:l}))throw new Error(`Can't select invalid tab value=${e}`);i(e),s(e),b(e)}),[s,b,l]),tabValues:l}}var y=n(2389);const v="tabList__CuJ",g="tabItem_LNqP";function h(e){let{className:t,block:n,selectedValue:i,selectValue:u,tabValues:s}=e;const c=[],{blockElementScrollPositionUntilNextRender:p}=(0,o.o5)(),m=e=>{const t=e.currentTarget,n=c.indexOf(t),r=s[n].value;r!==i&&(p(t),u(r))},d=e=>{let t=null;switch(e.key){case"Enter":m(e);break;case"ArrowRight":{const n=c.indexOf(e.currentTarget)+1;t=c[n]??c[0];break}case"ArrowLeft":{const n=c.indexOf(e.currentTarget)-1;t=c[n]??c[c.length-1];break}}t?.focus()};return a.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,l.Z)("tabs",{"tabs--block":n},t)},s.map((e=>{let{value:t,label:n,attributes:o}=e;return a.createElement("li",(0,r.Z)({role:"tab",tabIndex:i===t?0:-1,"aria-selected":i===t,key:t,ref:e=>c.push(e),onKeyDown:d,onClick:m},o,{className:(0,l.Z)("tabs__item",g,o?.className,{"tabs__item--active":i===t})}),n??t)})))}function k(e){let{lazy:t,children:n,selectedValue:r}=e;const l=(Array.isArray(n)?n:[n]).filter(Boolean);if(t){const e=l.find((e=>e.props.value===r));return e?(0,a.cloneElement)(e,{className:"margin-top--md"}):null}return a.createElement("div",{className:"margin-top--md"},l.map(((e,t)=>(0,a.cloneElement)(e,{key:t,hidden:e.props.value!==r}))))}function T(e){const t=b(e);return a.createElement("div",{className:(0,l.Z)("tabs-container",v)},a.createElement(h,(0,r.Z)({},e,t)),a.createElement(k,(0,r.Z)({},e,t)))}function w(e){const t=(0,y.Z)();return a.createElement(T,(0,r.Z)({key:String(t)},e))}},474:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>u,default:()=>d,frontMatter:()=>i,metadata:()=>s,toc:()=>p});var r=n(7462),a=(n(7294),n(3905)),l=n(4866),o=n(5162);const i={},u="Solidity",s={unversionedId:"extras/lang/solidity",id:"extras/lang/solidity",title:"Solidity",description:"You can enable the extra with the :LazyExtras command.",source:"@site/docs/extras/lang/solidity.md",sourceDirName:"extras/lang",slug:"/extras/lang/solidity",permalink:"/extras/lang/solidity",draft:!1,editUrl:"https://github.com/LazyVim/lazyvim.github.io/tree/main/docs/extras/lang/solidity.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Scala",permalink:"/extras/lang/scala"},next:{title:"Sql",permalink:"/extras/lang/sql"}},c={},p=[{value:"nvim-treesitter",id:"nvim-treesitter",level:2},{value:"nvim-lspconfig",id:"nvim-lspconfig",level:2},{value:"conform.nvim <em>(optional)</em>",id:"conformnvim-optional",level:2}],m={toc:p};function d(e){let{components:t,...n}=e;return(0,a.kt)("wrapper",(0,r.Z)({},m,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"solidity"},(0,a.kt)("inlineCode",{parentName:"h1"},"Solidity")),(0,a.kt)("admonition",{type:"info"},(0,a.kt)("p",{parentName:"admonition"},"You can enable the extra with the ",(0,a.kt)("inlineCode",{parentName:"p"},":LazyExtras")," command.\nPlugins marked as optional will only be configured if they are installed.")),(0,a.kt)("p",null,"Below you can find a list of included plugins and their default settings."),(0,a.kt)("admonition",{type:"caution"},(0,a.kt)("p",{parentName:"admonition"},"You don't need to copy the default settings to your config.\nThey are only shown here for reference.")),(0,a.kt)("h2",{id:"nvim-treesitter"},(0,a.kt)("a",{parentName:"h2",href:"https://github.com/nvim-treesitter/nvim-treesitter"},"nvim-treesitter")),(0,a.kt)("p",null," Add Solidity & related to treesitter"),(0,a.kt)(l.Z,{mdxType:"Tabs"},(0,a.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'opts = { ensure_installed = { "solidity" } }\n'))),(0,a.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "nvim-treesitter/nvim-treesitter",\n opts = { ensure_installed = { "solidity" } },\n}\n')))),(0,a.kt)("h2",{id:"nvim-lspconfig"},(0,a.kt)("a",{parentName:"h2",href:"https://github.com/neovim/nvim-lspconfig"},"nvim-lspconfig")),(0,a.kt)("p",null," Correctly setup lspconfig for Solidity"),(0,a.kt)(l.Z,{mdxType:"Tabs"},(0,a.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},"opts = {\n servers = {\n solidity_ls = {},\n },\n}\n"))),(0,a.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "neovim/nvim-lspconfig",\n opts = {\n servers = {\n solidity_ls = {},\n },\n },\n}\n')))),(0,a.kt)("h2",{id:"conformnvim-optional"},(0,a.kt)("a",{parentName:"h2",href:"https://github.com/stevearc/conform.nvim"},"conform.nvim")," ",(0,a.kt)("em",{parentName:"h2"},"(optional)")),(0,a.kt)("p",null," Formatter for Solidity"),(0,a.kt)(l.Z,{mdxType:"Tabs"},(0,a.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'opts = {\n formatters_by_ft = {\n solidity = { "forge_fmt" },\n },\n}\n'))),(0,a.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "stevearc/conform.nvim",\n optional = true,\n opts = {\n formatters_by_ft = {\n solidity = { "forge_fmt" },\n },\n },\n}\n')))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/77762066.fdafd2ea.js b/assets/js/77762066.fdafd2ea.js new file mode 100644 index 0000000000..538e921978 --- /dev/null +++ b/assets/js/77762066.fdafd2ea.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklazyvim=self.webpackChunklazyvim||[]).push([[1358],{3905:(e,n,t)=>{t.d(n,{Zo:()=>m,kt:()=>f});var r=t(7294);function a(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function i(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function o(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?i(Object(t),!0).forEach((function(n){a(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):i(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function p(e,n){if(null==e)return{};var t,r,a=function(e,n){if(null==e)return{};var t,r,a={},i=Object.keys(e);for(r=0;r<i.length;r++)t=i[r],n.indexOf(t)>=0||(a[t]=e[t]);return a}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)t=i[r],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var s=r.createContext({}),l=function(e){var n=r.useContext(s),t=n;return e&&(t="function"==typeof e?e(n):o(o({},n),e)),t},m=function(e){var n=l(e.components);return r.createElement(s.Provider,{value:n},e.children)},c="mdxType",u={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},y=r.forwardRef((function(e,n){var t=e.components,a=e.mdxType,i=e.originalType,s=e.parentName,m=p(e,["components","mdxType","originalType","parentName"]),c=l(t),y=a,f=c["".concat(s,".").concat(y)]||c[y]||u[y]||i;return t?r.createElement(f,o(o({ref:n},m),{},{components:t})):r.createElement(f,o({ref:n},m))}));function f(e,n){var t=arguments,a=n&&n.mdxType;if("string"==typeof e||a){var i=t.length,o=new Array(i);o[0]=y;var p={};for(var s in n)hasOwnProperty.call(n,s)&&(p[s]=n[s]);p.originalType=e,p[c]="string"==typeof e?e:a,o[1]=p;for(var l=2;l<i;l++)o[l]=t[l];return r.createElement.apply(null,o)}return r.createElement.apply(null,t)}y.displayName="MDXCreateElement"},7536:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>s,contentTitle:()=>o,default:()=>c,frontMatter:()=>i,metadata:()=>p,toc:()=>l});var r=t(7462),a=(t(7294),t(3905));const i={sidebar_position:4},o="Keymaps",p={unversionedId:"configuration/keymaps",id:"configuration/keymaps",title:"Keymaps",description:"LazyVim provides multiple ways to configure keymaps.",source:"@site/docs/configuration/keymaps.md",sourceDirName:"configuration",slug:"/configuration/keymaps",permalink:"/configuration/keymaps",draft:!1,editUrl:"https://github.com/LazyVim/lazyvim.github.io/tree/main/docs/configuration/keymaps.md",tags:[],version:"current",sidebarPosition:4,frontMatter:{sidebar_position:4},sidebar:"tutorialSidebar",previous:{title:"Plugins",permalink:"/configuration/plugins"},next:{title:"Examples",permalink:"/configuration/examples"}},s={},l=[{value:"Global keymaps",id:"global-keymaps",level:2},{value:"Plugin keymaps",id:"plugin-keymaps",level:2},{value:"LSP keymaps",id:"lsp-keymaps",level:2},{value:"LSP Server keymaps",id:"lsp-server-keymaps",level:3}],m={toc:l};function c(e){let{components:n,...t}=e;return(0,a.kt)("wrapper",(0,r.Z)({},m,t,{components:n,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"keymaps"},"Keymaps"),(0,a.kt)("p",null,"LazyVim provides multiple ways to configure keymaps.\nIf you want to override an existing mapping, make sure to\ndisable it first in the correct place."),(0,a.kt)("h2",{id:"global-keymaps"},"Global keymaps"),(0,a.kt)("p",null,"Global keymaps are keymaps that are always active.\nYou can configure them in your ",(0,a.kt)("a",{parentName:"p",href:"/configuration/general#keymaps"},"lua/config/keymaps.lua")," file.\nDefault LazyVim keymaps can be deleted with ",(0,a.kt)("inlineCode",{parentName:"p"},"vim.keymap.del"),"."),(0,a.kt)("h2",{id:"plugin-keymaps"},"Plugin keymaps"),(0,a.kt)("p",null,"For more info on configuring plugin keymaps, see ",(0,a.kt)("a",{parentName:"p",href:"/configuration/plugins#%EF%B8%8F-adding--disabling-plugin-keymaps"},"Adding & Disabling Plugin Keymaps")),(0,a.kt)("h2",{id:"lsp-keymaps"},"LSP keymaps"),(0,a.kt)("p",null,"These are the default keymaps that will be added when an LSP server is attached to the current buffer.\nFor more info see ",(0,a.kt)("a",{parentName:"p",href:"/plugins/lsp#%EF%B8%8F-customizing-lsp-keymaps"},"Customizing LSP Keymaps")),(0,a.kt)("h3",{id:"lsp-server-keymaps"},"LSP Server keymaps"),(0,a.kt)("p",null,"Sometimes it may be necessary to add keymaps for a specific LSP server.\nLazyutils provides a ",(0,a.kt)("inlineCode",{parentName:"p"},"keys")," LSP option for this purpose."),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "neovim/nvim-lspconfig",\n opts = {\n servers = {\n tsserver = {\n keys = {\n { "<leader>co", "<cmd>TypescriptOrganizeImports<CR>", desc = "Organize Imports" },\n { "<leader>cR", "<cmd>TypescriptRenameFile<CR>", desc = "Rename File" },\n },\n },\n },\n },\n}\n')))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/77eac538.98e590ce.js b/assets/js/77eac538.98e590ce.js new file mode 100644 index 0000000000..9493531a93 --- /dev/null +++ b/assets/js/77eac538.98e590ce.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklazyvim=self.webpackChunklazyvim||[]).push([[4467],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>f});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?l(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):l(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function i(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},l=Object.keys(e);for(r=0;r<l.length;r++)n=l[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r<l.length;r++)n=l[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var u=r.createContext({}),s=function(e){var t=r.useContext(u),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},c=function(e){var t=s(e.components);return r.createElement(u.Provider,{value:t},e.children)},m="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,l=e.originalType,u=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),m=s(n),d=a,f=m["".concat(u,".").concat(d)]||m[d]||p[d]||l;return n?r.createElement(f,o(o({ref:t},c),{},{components:n})):r.createElement(f,o({ref:t},c))}));function f(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var l=n.length,o=new Array(l);o[0]=d;var i={};for(var u in t)hasOwnProperty.call(t,u)&&(i[u]=t[u]);i.originalType=e,i[m]="string"==typeof e?e:a,o[1]=i;for(var s=2;s<l;s++)o[s]=n[s];return r.createElement.apply(null,o)}return r.createElement.apply(null,n)}d.displayName="MDXCreateElement"},5162:(e,t,n)=>{n.d(t,{Z:()=>o});var r=n(7294),a=n(6010);const l="tabItem_Ymn6";function o(e){let{children:t,hidden:n,className:o}=e;return r.createElement("div",{role:"tabpanel",className:(0,a.Z)(l,o),hidden:n},t)}},4866:(e,t,n)=>{n.d(t,{Z:()=>x});var r=n(7462),a=n(7294),l=n(6010),o=n(2466),i=n(6550),u=n(1980),s=n(7392),c=n(12);function m(e){return function(e){return a.Children.map(e,(e=>{if(!e||(0,a.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:t,label:n,attributes:r,default:a}}=e;return{value:t,label:n,attributes:r,default:a}}))}function p(e){const{values:t,children:n}=e;return(0,a.useMemo)((()=>{const e=t??m(n);return function(e){const t=(0,s.l)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[t,n])}function d(e){let{value:t,tabValues:n}=e;return n.some((e=>e.value===t))}function f(e){let{queryString:t=!1,groupId:n}=e;const r=(0,i.k6)(),l=function(e){let{queryString:t=!1,groupId:n}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!n)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return n??null}({queryString:t,groupId:n});return[(0,u._X)(l),(0,a.useCallback)((e=>{if(!l)return;const t=new URLSearchParams(r.location.search);t.set(l,e),r.replace({...r.location,search:t.toString()})}),[l,r])]}function b(e){const{defaultValue:t,queryString:n=!1,groupId:r}=e,l=p(e),[o,i]=(0,a.useState)((()=>function(e){let{defaultValue:t,tabValues:n}=e;if(0===n.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(t){if(!d({value:t,tabValues:n}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${n.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const r=n.find((e=>e.default))??n[0];if(!r)throw new Error("Unexpected error: 0 tabValues");return r.value}({defaultValue:t,tabValues:l}))),[u,s]=f({queryString:n,groupId:r}),[m,b]=function(e){let{groupId:t}=e;const n=function(e){return e?`docusaurus.tab.${e}`:null}(t),[r,l]=(0,c.Nk)(n);return[r,(0,a.useCallback)((e=>{n&&l.set(e)}),[n,l])]}({groupId:r}),v=(()=>{const e=u??m;return d({value:e,tabValues:l})?e:null})();(0,a.useLayoutEffect)((()=>{v&&i(v)}),[v]);return{selectedValue:o,selectValue:(0,a.useCallback)((e=>{if(!d({value:e,tabValues:l}))throw new Error(`Can't select invalid tab value=${e}`);i(e),s(e),b(e)}),[s,b,l]),tabValues:l}}var v=n(2389);const g="tabList__CuJ",h="tabItem_LNqP";function y(e){let{className:t,block:n,selectedValue:i,selectValue:u,tabValues:s}=e;const c=[],{blockElementScrollPositionUntilNextRender:m}=(0,o.o5)(),p=e=>{const t=e.currentTarget,n=c.indexOf(t),r=s[n].value;r!==i&&(m(t),u(r))},d=e=>{let t=null;switch(e.key){case"Enter":p(e);break;case"ArrowRight":{const n=c.indexOf(e.currentTarget)+1;t=c[n]??c[0];break}case"ArrowLeft":{const n=c.indexOf(e.currentTarget)-1;t=c[n]??c[c.length-1];break}}t?.focus()};return a.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,l.Z)("tabs",{"tabs--block":n},t)},s.map((e=>{let{value:t,label:n,attributes:o}=e;return a.createElement("li",(0,r.Z)({role:"tab",tabIndex:i===t?0:-1,"aria-selected":i===t,key:t,ref:e=>c.push(e),onKeyDown:d,onClick:p},o,{className:(0,l.Z)("tabs__item",h,o?.className,{"tabs__item--active":i===t})}),n??t)})))}function k(e){let{lazy:t,children:n,selectedValue:r}=e;const l=(Array.isArray(n)?n:[n]).filter(Boolean);if(t){const e=l.find((e=>e.props.value===r));return e?(0,a.cloneElement)(e,{className:"margin-top--md"}):null}return a.createElement("div",{className:"margin-top--md"},l.map(((e,t)=>(0,a.cloneElement)(e,{key:t,hidden:e.props.value!==r}))))}function T(e){const t=b(e);return a.createElement("div",{className:(0,l.Z)("tabs-container",g)},a.createElement(y,(0,r.Z)({},e,t)),a.createElement(k,(0,r.Z)({},e,t)))}function x(e){const t=(0,v.Z)();return a.createElement(T,(0,r.Z)({key:String(t)},e))}},7245:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>u,default:()=>d,frontMatter:()=>i,metadata:()=>s,toc:()=>m});var r=n(7462),a=(n(7294),n(3905)),l=n(4866),o=n(5162);const i={},u="Elm",s={unversionedId:"extras/lang/elm",id:"extras/lang/elm",title:"Elm",description:"You can enable the extra with the :LazyExtras command.",source:"@site/docs/extras/lang/elm.md",sourceDirName:"extras/lang",slug:"/extras/lang/elm",permalink:"/extras/lang/elm",draft:!1,editUrl:"https://github.com/LazyVim/lazyvim.github.io/tree/main/docs/extras/lang/elm.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Elixir",permalink:"/extras/lang/elixir"},next:{title:"Ember",permalink:"/extras/lang/ember"}},c={},m=[{value:"nvim-treesitter",id:"nvim-treesitter",level:2},{value:"mason.nvim",id:"masonnvim",level:2},{value:"nvim-lspconfig",id:"nvim-lspconfig",level:2},{value:"conform.nvim <em>(optional)</em>",id:"conformnvim-optional",level:2}],p={toc:m};function d(e){let{components:t,...n}=e;return(0,a.kt)("wrapper",(0,r.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"elm"},(0,a.kt)("inlineCode",{parentName:"h1"},"Elm")),(0,a.kt)("admonition",{type:"info"},(0,a.kt)("p",{parentName:"admonition"},"You can enable the extra with the ",(0,a.kt)("inlineCode",{parentName:"p"},":LazyExtras")," command.\nPlugins marked as optional will only be configured if they are installed.")),(0,a.kt)("p",null,"Below you can find a list of included plugins and their default settings."),(0,a.kt)("admonition",{type:"caution"},(0,a.kt)("p",{parentName:"admonition"},"You don't need to copy the default settings to your config.\nThey are only shown here for reference.")),(0,a.kt)("h2",{id:"nvim-treesitter"},(0,a.kt)("a",{parentName:"h2",href:"https://github.com/nvim-treesitter/nvim-treesitter"},"nvim-treesitter")),(0,a.kt)(l.Z,{mdxType:"Tabs"},(0,a.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'opts = { ensure_installed = { "elm" } }\n'))),(0,a.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "nvim-treesitter/nvim-treesitter",\n opts = { ensure_installed = { "elm" } },\n}\n')))),(0,a.kt)("h2",{id:"masonnvim"},(0,a.kt)("a",{parentName:"h2",href:"https://github.com/mason-org/mason.nvim"},"mason.nvim")),(0,a.kt)(l.Z,{mdxType:"Tabs"},(0,a.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'opts = { ensure_installed = { "elm-format" } }\n'))),(0,a.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "mason-org/mason.nvim",\n opts = { ensure_installed = { "elm-format" } },\n}\n')))),(0,a.kt)("h2",{id:"nvim-lspconfig"},(0,a.kt)("a",{parentName:"h2",href:"https://github.com/neovim/nvim-lspconfig"},"nvim-lspconfig")),(0,a.kt)(l.Z,{mdxType:"Tabs"},(0,a.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},"opts = {\n servers = {\n elmls = {},\n },\n}\n"))),(0,a.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "neovim/nvim-lspconfig",\n opts = {\n servers = {\n elmls = {},\n },\n },\n}\n')))),(0,a.kt)("h2",{id:"conformnvim-optional"},(0,a.kt)("a",{parentName:"h2",href:"https://github.com/stevearc/conform.nvim"},"conform.nvim")," ",(0,a.kt)("em",{parentName:"h2"},"(optional)")),(0,a.kt)(l.Z,{mdxType:"Tabs"},(0,a.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'opts = {\n formatters_by_ft = {\n elm = { "elm_format" },\n },\n}\n'))),(0,a.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "stevearc/conform.nvim",\n optional = true,\n opts = {\n formatters_by_ft = {\n elm = { "elm_format" },\n },\n },\n}\n')))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/7bd194f7.f73c53c6.js b/assets/js/7bd194f7.f73c53c6.js new file mode 100644 index 0000000000..02facfae03 --- /dev/null +++ b/assets/js/7bd194f7.f73c53c6.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklazyvim=self.webpackChunklazyvim||[]).push([[2293],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>f});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function o(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?l(Object(n),!0).forEach((function(t){r(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):l(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function i(e,t){if(null==e)return{};var n,a,r=function(e,t){if(null==e)return{};var n,a,r={},l=Object.keys(e);for(a=0;a<l.length;a++)n=l[a],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a<l.length;a++)n=l[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var s=a.createContext({}),u=function(e){var t=a.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},c=function(e){var t=u(e.components);return a.createElement(s.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},d=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,l=e.originalType,s=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),p=u(n),d=r,f=p["".concat(s,".").concat(d)]||p[d]||m[d]||l;return n?a.createElement(f,o(o({ref:t},c),{},{components:n})):a.createElement(f,o({ref:t},c))}));function f(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var l=n.length,o=new Array(l);o[0]=d;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[p]="string"==typeof e?e:r,o[1]=i;for(var u=2;u<l;u++)o[u]=n[u];return a.createElement.apply(null,o)}return a.createElement.apply(null,n)}d.displayName="MDXCreateElement"},5162:(e,t,n)=>{n.d(t,{Z:()=>o});var a=n(7294),r=n(6010);const l="tabItem_Ymn6";function o(e){let{children:t,hidden:n,className:o}=e;return a.createElement("div",{role:"tabpanel",className:(0,r.Z)(l,o),hidden:n},t)}},4866:(e,t,n)=>{n.d(t,{Z:()=>T});var a=n(7462),r=n(7294),l=n(6010),o=n(2466),i=n(6550),s=n(1980),u=n(7392),c=n(12);function p(e){return function(e){return r.Children.map(e,(e=>{if(!e||(0,r.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:t,label:n,attributes:a,default:r}}=e;return{value:t,label:n,attributes:a,default:r}}))}function m(e){const{values:t,children:n}=e;return(0,r.useMemo)((()=>{const e=t??p(n);return function(e){const t=(0,u.l)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[t,n])}function d(e){let{value:t,tabValues:n}=e;return n.some((e=>e.value===t))}function f(e){let{queryString:t=!1,groupId:n}=e;const a=(0,i.k6)(),l=function(e){let{queryString:t=!1,groupId:n}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!n)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return n??null}({queryString:t,groupId:n});return[(0,s._X)(l),(0,r.useCallback)((e=>{if(!l)return;const t=new URLSearchParams(a.location.search);t.set(l,e),a.replace({...a.location,search:t.toString()})}),[l,a])]}function g(e){const{defaultValue:t,queryString:n=!1,groupId:a}=e,l=m(e),[o,i]=(0,r.useState)((()=>function(e){let{defaultValue:t,tabValues:n}=e;if(0===n.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(t){if(!d({value:t,tabValues:n}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${n.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const a=n.find((e=>e.default))??n[0];if(!a)throw new Error("Unexpected error: 0 tabValues");return a.value}({defaultValue:t,tabValues:l}))),[s,u]=f({queryString:n,groupId:a}),[p,g]=function(e){let{groupId:t}=e;const n=function(e){return e?`docusaurus.tab.${e}`:null}(t),[a,l]=(0,c.Nk)(n);return[a,(0,r.useCallback)((e=>{n&&l.set(e)}),[n,l])]}({groupId:a}),v=(()=>{const e=s??p;return d({value:e,tabValues:l})?e:null})();(0,r.useLayoutEffect)((()=>{v&&i(v)}),[v]);return{selectedValue:o,selectValue:(0,r.useCallback)((e=>{if(!d({value:e,tabValues:l}))throw new Error(`Can't select invalid tab value=${e}`);i(e),u(e),g(e)}),[u,g,l]),tabValues:l}}var v=n(2389);const b="tabList__CuJ",h="tabItem_LNqP";function y(e){let{className:t,block:n,selectedValue:i,selectValue:s,tabValues:u}=e;const c=[],{blockElementScrollPositionUntilNextRender:p}=(0,o.o5)(),m=e=>{const t=e.currentTarget,n=c.indexOf(t),a=u[n].value;a!==i&&(p(t),s(a))},d=e=>{let t=null;switch(e.key){case"Enter":m(e);break;case"ArrowRight":{const n=c.indexOf(e.currentTarget)+1;t=c[n]??c[0];break}case"ArrowLeft":{const n=c.indexOf(e.currentTarget)-1;t=c[n]??c[c.length-1];break}}t?.focus()};return r.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,l.Z)("tabs",{"tabs--block":n},t)},u.map((e=>{let{value:t,label:n,attributes:o}=e;return r.createElement("li",(0,a.Z)({role:"tab",tabIndex:i===t?0:-1,"aria-selected":i===t,key:t,ref:e=>c.push(e),onKeyDown:d,onClick:m},o,{className:(0,l.Z)("tabs__item",h,o?.className,{"tabs__item--active":i===t})}),n??t)})))}function k(e){let{lazy:t,children:n,selectedValue:a}=e;const l=(Array.isArray(n)?n:[n]).filter(Boolean);if(t){const e=l.find((e=>e.props.value===a));return e?(0,r.cloneElement)(e,{className:"margin-top--md"}):null}return r.createElement("div",{className:"margin-top--md"},l.map(((e,t)=>(0,r.cloneElement)(e,{key:t,hidden:e.props.value!==a}))))}function x(e){const t=g(e);return r.createElement("div",{className:(0,l.Z)("tabs-container",b)},r.createElement(y,(0,a.Z)({},e,t)),r.createElement(k,(0,a.Z)({},e,t)))}function T(e){const t=(0,v.Z)();return r.createElement(x,(0,a.Z)({key:String(t)},e))}},4153:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>s,default:()=>d,frontMatter:()=>i,metadata:()=>u,toc:()=>p});var a=n(7462),r=(n(7294),n(3905)),l=n(4866),o=n(5162);const i={},s="Angular",u={unversionedId:"extras/lang/angular",id:"extras/lang/angular",title:"Angular",description:"You can enable the extra with the :LazyExtras command.",source:"@site/docs/extras/lang/angular.md",sourceDirName:"extras/lang",slug:"/extras/lang/angular",permalink:"/extras/lang/angular",draft:!1,editUrl:"https://github.com/LazyVim/lazyvim.github.io/tree/main/docs/extras/lang/angular.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Prettier",permalink:"/extras/formatting/prettier"},next:{title:"Ansible",permalink:"/extras/lang/ansible"}},c={},p=[{value:"Includes the following extras",id:"includes-the-following-extras",level:3},{value:"nvim-treesitter",id:"nvim-treesitter",level:2},{value:"nvim-lspconfig",id:"nvim-lspconfig",level:2},{value:"nvim-lspconfig",id:"nvim-lspconfig-1",level:2},{value:"conform.nvim",id:"conformnvim",level:2}],m={toc:p};function d(e){let{components:t,...n}=e;return(0,r.kt)("wrapper",(0,a.Z)({},m,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"angular"},(0,r.kt)("inlineCode",{parentName:"h1"},"Angular")),(0,r.kt)("admonition",{type:"info"},(0,r.kt)("p",{parentName:"admonition"},"You can enable the extra with the ",(0,r.kt)("inlineCode",{parentName:"p"},":LazyExtras")," command.\nPlugins marked as optional will only be configured if they are installed.")),(0,r.kt)("p",null,"Below you can find a list of included plugins and their default settings."),(0,r.kt)("admonition",{type:"caution"},(0,r.kt)("p",{parentName:"admonition"},"You don't need to copy the default settings to your config.\nThey are only shown here for reference.")),(0,r.kt)("h3",{id:"includes-the-following-extras"},"Includes the following extras"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"/extras/lang/typescript"},"lang.typescript"))),(0,r.kt)("h2",{id:"nvim-treesitter"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/nvim-treesitter/nvim-treesitter"},"nvim-treesitter")),(0,r.kt)(l.Z,{mdxType:"Tabs"},(0,r.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = function(_, opts)\n if type(opts.ensure_installed) == "table" then\n vim.list_extend(opts.ensure_installed, { "angular", "scss" })\n end\n vim.api.nvim_create_autocmd({ "BufReadPost", "BufNewFile" }, {\n pattern = { "*.component.html", "*.container.html" },\n callback = function()\n vim.treesitter.start(nil, "angular")\n end,\n })\nend\n'))),(0,r.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "nvim-treesitter",\n opts = function(_, opts)\n if type(opts.ensure_installed) == "table" then\n vim.list_extend(opts.ensure_installed, { "angular", "scss" })\n end\n vim.api.nvim_create_autocmd({ "BufReadPost", "BufNewFile" }, {\n pattern = { "*.component.html", "*.container.html" },\n callback = function()\n vim.treesitter.start(nil, "angular")\n end,\n })\n end,\n}\n')))),(0,r.kt)("h2",{id:"nvim-lspconfig"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/neovim/nvim-lspconfig"},"nvim-lspconfig")),(0,r.kt)("p",null," LSP Servers"),(0,r.kt)(l.Z,{mdxType:"Tabs"},(0,r.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = {\n servers = {\n angularls = {},\n },\n setup = {\n angularls = function()\n LazyVim.lsp.on_attach(function(client)\n --HACK: disable angular renaming capability due to duplicate rename popping up\n client.server_capabilities.renameProvider = false\n end, "angularls")\n end,\n },\n}\n'))),(0,r.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "neovim/nvim-lspconfig",\n opts = {\n servers = {\n angularls = {},\n },\n setup = {\n angularls = function()\n LazyVim.lsp.on_attach(function(client)\n --HACK: disable angular renaming capability due to duplicate rename popping up\n client.server_capabilities.renameProvider = false\n end, "angularls")\n end,\n },\n },\n}\n')))),(0,r.kt)("h2",{id:"nvim-lspconfig-1"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/neovim/nvim-lspconfig"},"nvim-lspconfig")),(0,r.kt)("p",null," Configure tsserver plugin"),(0,r.kt)(l.Z,{mdxType:"Tabs"},(0,r.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = function(_, opts)\n LazyVim.extend(opts.servers.vtsls, "settings.vtsls.tsserver.globalPlugins", {\n {\n name = "@angular/language-server",\n location = LazyVim.get_pkg_path("angular-language-server", "/node_modules/@angular/language-server"),\n enableForWorkspaceTypeScriptVersions = false,\n },\n })\nend\n'))),(0,r.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "neovim/nvim-lspconfig",\n opts = function(_, opts)\n LazyVim.extend(opts.servers.vtsls, "settings.vtsls.tsserver.globalPlugins", {\n {\n name = "@angular/language-server",\n location = LazyVim.get_pkg_path("angular-language-server", "/node_modules/@angular/language-server"),\n enableForWorkspaceTypeScriptVersions = false,\n },\n })\n end,\n}\n')))),(0,r.kt)("h2",{id:"conformnvim"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/stevearc/conform.nvim"},"conform.nvim")),(0,r.kt)("p",null," formatting"),(0,r.kt)(l.Z,{mdxType:"Tabs"},(0,r.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = function(_, opts)\n if LazyVim.has_extra("formatting.prettier") then\n opts.formatters_by_ft = opts.formatters_by_ft or {}\n opts.formatters_by_ft.htmlangular = { "prettier" }\n end\nend\n'))),(0,r.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "conform.nvim",\n opts = function(_, opts)\n if LazyVim.has_extra("formatting.prettier") then\n opts.formatters_by_ft = opts.formatters_by_ft or {}\n opts.formatters_by_ft.htmlangular = { "prettier" }\n end\n end,\n}\n')))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/7d779db9.8d3471a1.js b/assets/js/7d779db9.8d3471a1.js new file mode 100644 index 0000000000..6da542409f --- /dev/null +++ b/assets/js/7d779db9.8d3471a1.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklazyvim=self.webpackChunklazyvim||[]).push([[5521],{3905:(e,n,t)=>{t.d(n,{Zo:()=>u,kt:()=>v});var a=t(7294);function r(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function o(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,a)}return t}function l(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?o(Object(t),!0).forEach((function(n){r(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):o(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function s(e,n){if(null==e)return{};var t,a,r=function(e,n){if(null==e)return{};var t,a,r={},o=Object.keys(e);for(a=0;a<o.length;a++)t=o[a],n.indexOf(t)>=0||(r[t]=e[t]);return r}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)t=o[a],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(r[t]=e[t])}return r}var i=a.createContext({}),p=function(e){var n=a.useContext(i),t=n;return e&&(t="function"==typeof e?e(n):l(l({},n),e)),t},u=function(e){var n=p(e.components);return a.createElement(i.Provider,{value:n},e.children)},c="mdxType",m={inlineCode:"code",wrapper:function(e){var n=e.children;return a.createElement(a.Fragment,{},n)}},d=a.forwardRef((function(e,n){var t=e.components,r=e.mdxType,o=e.originalType,i=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),c=p(t),d=r,v=c["".concat(i,".").concat(d)]||c[d]||m[d]||o;return t?a.createElement(v,l(l({ref:n},u),{},{components:t})):a.createElement(v,l({ref:n},u))}));function v(e,n){var t=arguments,r=n&&n.mdxType;if("string"==typeof e||r){var o=t.length,l=new Array(o);l[0]=d;var s={};for(var i in n)hasOwnProperty.call(n,i)&&(s[i]=n[i]);s.originalType=e,s[c]="string"==typeof e?e:r,l[1]=s;for(var p=2;p<o;p++)l[p]=t[p];return a.createElement.apply(null,l)}return a.createElement.apply(null,t)}d.displayName="MDXCreateElement"},5162:(e,n,t)=>{t.d(n,{Z:()=>l});var a=t(7294),r=t(6010);const o="tabItem_Ymn6";function l(e){let{children:n,hidden:t,className:l}=e;return a.createElement("div",{role:"tabpanel",className:(0,r.Z)(o,l),hidden:t},n)}},4866:(e,n,t)=>{t.d(n,{Z:()=>N});var a=t(7462),r=t(7294),o=t(6010),l=t(2466),s=t(6550),i=t(1980),p=t(7392),u=t(12);function c(e){return function(e){return r.Children.map(e,(e=>{if(!e||(0,r.isValidElement)(e)&&function(e){const{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:n,label:t,attributes:a,default:r}}=e;return{value:n,label:t,attributes:a,default:r}}))}function m(e){const{values:n,children:t}=e;return(0,r.useMemo)((()=>{const e=n??c(t);return function(e){const n=(0,p.l)(e,((e,n)=>e.value===n.value));if(n.length>0)throw new Error(`Docusaurus error: Duplicate values "${n.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[n,t])}function d(e){let{value:n,tabValues:t}=e;return t.some((e=>e.value===n))}function v(e){let{queryString:n=!1,groupId:t}=e;const a=(0,s.k6)(),o=function(e){let{queryString:n=!1,groupId:t}=e;if("string"==typeof n)return n;if(!1===n)return null;if(!0===n&&!t)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return t??null}({queryString:n,groupId:t});return[(0,i._X)(o),(0,r.useCallback)((e=>{if(!o)return;const n=new URLSearchParams(a.location.search);n.set(o,e),a.replace({...a.location,search:n.toString()})}),[o,a])]}function f(e){const{defaultValue:n,queryString:t=!1,groupId:a}=e,o=m(e),[l,s]=(0,r.useState)((()=>function(e){let{defaultValue:n,tabValues:t}=e;if(0===t.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(n){if(!d({value:n,tabValues:t}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${n}" but none of its children has the corresponding value. Available values are: ${t.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return n}const a=t.find((e=>e.default))??t[0];if(!a)throw new Error("Unexpected error: 0 tabValues");return a.value}({defaultValue:n,tabValues:o}))),[i,p]=v({queryString:t,groupId:a}),[c,f]=function(e){let{groupId:n}=e;const t=function(e){return e?`docusaurus.tab.${e}`:null}(n),[a,o]=(0,u.Nk)(t);return[a,(0,r.useCallback)((e=>{t&&o.set(e)}),[t,o])]}({groupId:a}),h=(()=>{const e=i??c;return d({value:e,tabValues:o})?e:null})();(0,r.useLayoutEffect)((()=>{h&&s(h)}),[h]);return{selectedValue:l,selectValue:(0,r.useCallback)((e=>{if(!d({value:e,tabValues:o}))throw new Error(`Can't select invalid tab value=${e}`);s(e),p(e),f(e)}),[p,f,o]),tabValues:o}}var h=t(2389);const y="tabList__CuJ",g="tabItem_LNqP";function b(e){let{className:n,block:t,selectedValue:s,selectValue:i,tabValues:p}=e;const u=[],{blockElementScrollPositionUntilNextRender:c}=(0,l.o5)(),m=e=>{const n=e.currentTarget,t=u.indexOf(n),a=p[t].value;a!==s&&(c(n),i(a))},d=e=>{let n=null;switch(e.key){case"Enter":m(e);break;case"ArrowRight":{const t=u.indexOf(e.currentTarget)+1;n=u[t]??u[0];break}case"ArrowLeft":{const t=u.indexOf(e.currentTarget)-1;n=u[t]??u[u.length-1];break}}n?.focus()};return r.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,o.Z)("tabs",{"tabs--block":t},n)},p.map((e=>{let{value:n,label:t,attributes:l}=e;return r.createElement("li",(0,a.Z)({role:"tab",tabIndex:s===n?0:-1,"aria-selected":s===n,key:n,ref:e=>u.push(e),onKeyDown:d,onClick:m},l,{className:(0,o.Z)("tabs__item",g,l?.className,{"tabs__item--active":s===n})}),t??n)})))}function k(e){let{lazy:n,children:t,selectedValue:a}=e;const o=(Array.isArray(t)?t:[t]).filter(Boolean);if(n){const e=o.find((e=>e.props.value===a));return e?(0,r.cloneElement)(e,{className:"margin-top--md"}):null}return r.createElement("div",{className:"margin-top--md"},o.map(((e,n)=>(0,r.cloneElement)(e,{key:n,hidden:e.props.value!==a}))))}function T(e){const n=f(e);return r.createElement("div",{className:(0,o.Z)("tabs-container",y)},r.createElement(b,(0,a.Z)({},e,n)),r.createElement(k,(0,a.Z)({},e,n)))}function N(e){const n=(0,h.Z)();return r.createElement(T,(0,a.Z)({key:String(n)},e))}},1482:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>u,contentTitle:()=>i,default:()=>d,frontMatter:()=>s,metadata:()=>p,toc:()=>c});var a=t(7462),r=(t(7294),t(3905)),o=t(4866),l=t(5162);const s={},i="Python",p={unversionedId:"extras/lang/python",id:"extras/lang/python",title:"Python",description:"You can enable the extra with the :LazyExtras command.",source:"@site/docs/extras/lang/python.md",sourceDirName:"extras/lang",slug:"/extras/lang/python",permalink:"/extras/lang/python",draft:!1,editUrl:"https://github.com/LazyVim/lazyvim.github.io/tree/main/docs/extras/lang/python.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Prisma",permalink:"/extras/lang/prisma"},next:{title:"R",permalink:"/extras/lang/r"}},u={},c=[{value:"Options",id:"options",level:3},{value:"nvim-treesitter",id:"nvim-treesitter",level:2},{value:"nvim-lspconfig",id:"nvim-lspconfig",level:2},{value:"nvim-lspconfig",id:"nvim-lspconfig-1",level:2},{value:"neotest-python",id:"neotest-python",level:2},{value:"nvim-dap-python",id:"nvim-dap-python",level:2},{value:"venv-selector.nvim",id:"venv-selectornvim",level:2},{value:"neotest <em>(optional)</em>",id:"neotest-optional",level:2},{value:"nvim-dap <em>(optional)</em>",id:"nvim-dap-optional",level:2},{value:"nvim-cmp <em>(optional)</em>",id:"nvim-cmp-optional",level:2},{value:"mason-nvim-dap.nvim <em>(optional)</em>",id:"mason-nvim-dapnvim-optional",level:2}],m={toc:c};function d(e){let{components:n,...t}=e;return(0,r.kt)("wrapper",(0,a.Z)({},m,t,{components:n,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"python"},"Python"),(0,r.kt)("admonition",{type:"info"},(0,r.kt)("p",{parentName:"admonition"},"You can enable the extra with the ",(0,r.kt)("inlineCode",{parentName:"p"},":LazyExtras")," command.\nPlugins marked as optional will only be configured if they are installed.")),(0,r.kt)("h3",{id:"options"},"Options"),(0,r.kt)("p",null,"Additional options for this extra can be configured in your ",(0,r.kt)("a",{parentName:"p",href:"/configuration/general#options"},"lua/config/options.lua")," file:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua",metastring:'title="lua/config/options.lua"',title:'"lua/config/options.lua"'},'-- LSP Server to use for Python.\n-- Set to "basedpyright" to use basedpyright instead of pyright.\nvim.g.lazyvim_python_lsp = "pyright"\n-- Set to "ruff_lsp" to use the old LSP implementation version.\nvim.g.lazyvim_python_ruff = "ruff"\n')),(0,r.kt)("p",null,"Below you can find a list of included plugins and their default settings."),(0,r.kt)("admonition",{type:"caution"},(0,r.kt)("p",{parentName:"admonition"},"You don't need to copy the default settings to your config.\nThey are only shown here for reference.")),(0,r.kt)("h2",{id:"nvim-treesitter"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/nvim-treesitter/nvim-treesitter"},"nvim-treesitter")),(0,r.kt)(o.Z,{mdxType:"Tabs"},(0,r.kt)(l.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = { ensure_installed = { "ninja", "rst" } }\n'))),(0,r.kt)(l.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "nvim-treesitter/nvim-treesitter",\n opts = { ensure_installed = { "ninja", "rst" } },\n}\n')))),(0,r.kt)("h2",{id:"nvim-lspconfig"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/neovim/nvim-lspconfig"},"nvim-lspconfig")),(0,r.kt)(o.Z,{mdxType:"Tabs"},(0,r.kt)(l.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = {\n servers = {\n ruff = {\n cmd_env = { RUFF_TRACE = "messages" },\n init_options = {\n settings = {\n logLevel = "error",\n },\n },\n keys = {\n {\n "<leader>co",\n LazyVim.lsp.action["source.organizeImports"],\n desc = "Organize Imports",\n },\n },\n },\n ruff_lsp = {\n keys = {\n {\n "<leader>co",\n LazyVim.lsp.action["source.organizeImports"],\n desc = "Organize Imports",\n },\n },\n },\n },\n setup = {\n [ruff] = function()\n LazyVim.lsp.on_attach(function(client, _)\n -- Disable hover in favor of Pyright\n client.server_capabilities.hoverProvider = false\n end, ruff)\n end,\n },\n}\n'))),(0,r.kt)(l.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "neovim/nvim-lspconfig",\n opts = {\n servers = {\n ruff = {\n cmd_env = { RUFF_TRACE = "messages" },\n init_options = {\n settings = {\n logLevel = "error",\n },\n },\n keys = {\n {\n "<leader>co",\n LazyVim.lsp.action["source.organizeImports"],\n desc = "Organize Imports",\n },\n },\n },\n ruff_lsp = {\n keys = {\n {\n "<leader>co",\n LazyVim.lsp.action["source.organizeImports"],\n desc = "Organize Imports",\n },\n },\n },\n },\n setup = {\n [ruff] = function()\n LazyVim.lsp.on_attach(function(client, _)\n -- Disable hover in favor of Pyright\n client.server_capabilities.hoverProvider = false\n end, ruff)\n end,\n },\n },\n}\n')))),(0,r.kt)("h2",{id:"nvim-lspconfig-1"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/neovim/nvim-lspconfig"},"nvim-lspconfig")),(0,r.kt)(o.Z,{mdxType:"Tabs"},(0,r.kt)(l.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = function(_, opts)\n local servers = { "pyright", "basedpyright", "ruff", "ruff_lsp", ruff, lsp }\n for _, server in ipairs(servers) do\n opts.servers[server] = opts.servers[server] or {}\n opts.servers[server].enabled = server == lsp or server == ruff\n end\nend\n'))),(0,r.kt)(l.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "neovim/nvim-lspconfig",\n opts = function(_, opts)\n local servers = { "pyright", "basedpyright", "ruff", "ruff_lsp", ruff, lsp }\n for _, server in ipairs(servers) do\n opts.servers[server] = opts.servers[server] or {}\n opts.servers[server].enabled = server == lsp or server == ruff\n end\n end,\n}\n')))),(0,r.kt)("h2",{id:"neotest-python"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/nvim-neotest/neotest-python"},"neotest-python")),(0,r.kt)(o.Z,{mdxType:"Tabs"},(0,r.kt)(l.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},"opts = nil\n"))),(0,r.kt)(l.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "nvim-neotest/neotest-python",\n}\n')))),(0,r.kt)("h2",{id:"nvim-dap-python"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/mfussenegger/nvim-dap-python"},"nvim-dap-python")),(0,r.kt)(o.Z,{mdxType:"Tabs"},(0,r.kt)(l.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},"opts = {}\n"))),(0,r.kt)(l.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "mfussenegger/nvim-dap-python",\n -- stylua: ignore\n keys = {\n { "<leader>dPt", function() require(\'dap-python\').test_method() end, desc = "Debug Method", ft = "python" },\n { "<leader>dPc", function() require(\'dap-python\').test_class() end, desc = "Debug Class", ft = "python" },\n },\n config = function()\n require("dap-python").setup("debugpy-adapter")\n end,\n}\n')))),(0,r.kt)("h2",{id:"venv-selectornvim"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/linux-cultist/venv-selector.nvim"},"venv-selector.nvim")),(0,r.kt)(o.Z,{mdxType:"Tabs"},(0,r.kt)(l.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},"opts = {\n options = {\n notify_user_on_venv_activation = true,\n },\n}\n"))),(0,r.kt)(l.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "linux-cultist/venv-selector.nvim",\n cmd = "VenvSelect",\n opts = {\n options = {\n notify_user_on_venv_activation = true,\n },\n },\n -- Call config for Python files and load the cached venv automatically\n ft = "python",\n keys = { { "<leader>cv", "<cmd>:VenvSelect<cr>", desc = "Select VirtualEnv", ft = "python" } },\n}\n')))),(0,r.kt)("h2",{id:"neotest-optional"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/nvim-neotest/neotest"},"neotest")," ",(0,r.kt)("em",{parentName:"h2"},"(optional)")),(0,r.kt)(o.Z,{mdxType:"Tabs"},(0,r.kt)(l.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = {\n adapters = {\n ["neotest-python"] = {\n -- Here you can specify the settings for the adapter, i.e.\n -- runner = "pytest",\n -- python = ".venv/bin/python",\n },\n },\n}\n'))),(0,r.kt)(l.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "nvim-neotest/neotest",\n optional = true,\n dependencies = {\n "nvim-neotest/neotest-python",\n },\n opts = {\n adapters = {\n ["neotest-python"] = {\n -- Here you can specify the settings for the adapter, i.e.\n -- runner = "pytest",\n -- python = ".venv/bin/python",\n },\n },\n },\n}\n')))),(0,r.kt)("h2",{id:"nvim-dap-optional"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/mfussenegger/nvim-dap"},"nvim-dap")," ",(0,r.kt)("em",{parentName:"h2"},"(optional)")),(0,r.kt)(o.Z,{mdxType:"Tabs"},(0,r.kt)(l.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},"opts = nil\n"))),(0,r.kt)(l.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "mfussenegger/nvim-dap",\n optional = true,\n dependencies = {\n "mfussenegger/nvim-dap-python",\n -- stylua: ignore\n keys = {\n { "<leader>dPt", function() require(\'dap-python\').test_method() end, desc = "Debug Method", ft = "python" },\n { "<leader>dPc", function() require(\'dap-python\').test_class() end, desc = "Debug Class", ft = "python" },\n },\n config = function()\n require("dap-python").setup("debugpy-adapter")\n end,\n },\n}\n')))),(0,r.kt)("h2",{id:"nvim-cmp-optional"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/hrsh7th/nvim-cmp"},"nvim-cmp")," ",(0,r.kt)("em",{parentName:"h2"},"(optional)")),(0,r.kt)(o.Z,{mdxType:"Tabs"},(0,r.kt)(l.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = function(_, opts)\n opts.auto_brackets = opts.auto_brackets or {}\n table.insert(opts.auto_brackets, "python")\nend\n'))),(0,r.kt)(l.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "hrsh7th/nvim-cmp",\n optional = true,\n opts = function(_, opts)\n opts.auto_brackets = opts.auto_brackets or {}\n table.insert(opts.auto_brackets, "python")\n end,\n}\n')))),(0,r.kt)("h2",{id:"mason-nvim-dapnvim-optional"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/jay-babu/mason-nvim-dap.nvim"},"mason-nvim-dap.nvim")," ",(0,r.kt)("em",{parentName:"h2"},"(optional)")),(0,r.kt)("p",null," Don't mess up DAP adapters provided by nvim-dap-python"),(0,r.kt)(o.Z,{mdxType:"Tabs"},(0,r.kt)(l.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},"opts = {\n handlers = {\n python = function() end,\n },\n}\n"))),(0,r.kt)(l.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "jay-babu/mason-nvim-dap.nvim",\n optional = true,\n opts = {\n handlers = {\n python = function() end,\n },\n },\n}\n')))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/7e44cc6a.5146f48c.js b/assets/js/7e44cc6a.5146f48c.js new file mode 100644 index 0000000000..82d0059c84 --- /dev/null +++ b/assets/js/7e44cc6a.5146f48c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklazyvim=self.webpackChunklazyvim||[]).push([[7152],{3905:(e,t,r)=>{r.d(t,{Zo:()=>c,kt:()=>f});var n=r(7294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?o(Object(r),!0).forEach((function(t){a(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):o(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function u(e,t){if(null==e)return{};var r,n,a=function(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var i=n.createContext({}),s=function(e){var t=n.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},c=function(e){var t=s(e.components);return n.createElement(i.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,i=e.parentName,c=u(e,["components","mdxType","originalType","parentName"]),p=s(r),d=a,f=p["".concat(i,".").concat(d)]||p[d]||m[d]||o;return r?n.createElement(f,l(l({ref:t},c),{},{components:r})):n.createElement(f,l({ref:t},c))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,l=new Array(o);l[0]=d;var u={};for(var i in t)hasOwnProperty.call(t,i)&&(u[i]=t[i]);u.originalType=e,u[p]="string"==typeof e?e:a,l[1]=u;for(var s=2;s<o;s++)l[s]=r[s];return n.createElement.apply(null,l)}return n.createElement.apply(null,r)}d.displayName="MDXCreateElement"},5162:(e,t,r)=>{r.d(t,{Z:()=>l});var n=r(7294),a=r(6010);const o="tabItem_Ymn6";function l(e){let{children:t,hidden:r,className:l}=e;return n.createElement("div",{role:"tabpanel",className:(0,a.Z)(o,l),hidden:r},t)}},4866:(e,t,r)=>{r.d(t,{Z:()=>E});var n=r(7462),a=r(7294),o=r(6010),l=r(2466),u=r(6550),i=r(1980),s=r(7392),c=r(12);function p(e){return function(e){return a.Children.map(e,(e=>{if(!e||(0,a.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:t,label:r,attributes:n,default:a}}=e;return{value:t,label:r,attributes:n,default:a}}))}function m(e){const{values:t,children:r}=e;return(0,a.useMemo)((()=>{const e=t??p(r);return function(e){const t=(0,s.l)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[t,r])}function d(e){let{value:t,tabValues:r}=e;return r.some((e=>e.value===t))}function f(e){let{queryString:t=!1,groupId:r}=e;const n=(0,u.k6)(),o=function(e){let{queryString:t=!1,groupId:r}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!r)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return r??null}({queryString:t,groupId:r});return[(0,i._X)(o),(0,a.useCallback)((e=>{if(!o)return;const t=new URLSearchParams(n.location.search);t.set(o,e),n.replace({...n.location,search:t.toString()})}),[o,n])]}function b(e){const{defaultValue:t,queryString:r=!1,groupId:n}=e,o=m(e),[l,u]=(0,a.useState)((()=>function(e){let{defaultValue:t,tabValues:r}=e;if(0===r.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(t){if(!d({value:t,tabValues:r}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${r.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const n=r.find((e=>e.default))??r[0];if(!n)throw new Error("Unexpected error: 0 tabValues");return n.value}({defaultValue:t,tabValues:o}))),[i,s]=f({queryString:r,groupId:n}),[p,b]=function(e){let{groupId:t}=e;const r=function(e){return e?`docusaurus.tab.${e}`:null}(t),[n,o]=(0,c.Nk)(r);return[n,(0,a.useCallback)((e=>{r&&o.set(e)}),[r,o])]}({groupId:n}),y=(()=>{const e=i??p;return d({value:e,tabValues:o})?e:null})();(0,a.useLayoutEffect)((()=>{y&&u(y)}),[y]);return{selectedValue:l,selectValue:(0,a.useCallback)((e=>{if(!d({value:e,tabValues:o}))throw new Error(`Can't select invalid tab value=${e}`);u(e),s(e),b(e)}),[s,b,o]),tabValues:o}}var y=r(2389);const h="tabList__CuJ",v="tabItem_LNqP";function g(e){let{className:t,block:r,selectedValue:u,selectValue:i,tabValues:s}=e;const c=[],{blockElementScrollPositionUntilNextRender:p}=(0,l.o5)(),m=e=>{const t=e.currentTarget,r=c.indexOf(t),n=s[r].value;n!==u&&(p(t),i(n))},d=e=>{let t=null;switch(e.key){case"Enter":m(e);break;case"ArrowRight":{const r=c.indexOf(e.currentTarget)+1;t=c[r]??c[0];break}case"ArrowLeft":{const r=c.indexOf(e.currentTarget)-1;t=c[r]??c[c.length-1];break}}t?.focus()};return a.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,o.Z)("tabs",{"tabs--block":r},t)},s.map((e=>{let{value:t,label:r,attributes:l}=e;return a.createElement("li",(0,n.Z)({role:"tab",tabIndex:u===t?0:-1,"aria-selected":u===t,key:t,ref:e=>c.push(e),onKeyDown:d,onClick:m},l,{className:(0,o.Z)("tabs__item",v,l?.className,{"tabs__item--active":u===t})}),r??t)})))}function k(e){let{lazy:t,children:r,selectedValue:n}=e;const o=(Array.isArray(r)?r:[r]).filter(Boolean);if(t){const e=o.find((e=>e.props.value===n));return e?(0,a.cloneElement)(e,{className:"margin-top--md"}):null}return a.createElement("div",{className:"margin-top--md"},o.map(((e,t)=>(0,a.cloneElement)(e,{key:t,hidden:e.props.value!==n}))))}function w(e){const t=b(e);return a.createElement("div",{className:(0,o.Z)("tabs-container",h)},a.createElement(g,(0,n.Z)({},e,t)),a.createElement(k,(0,n.Z)({},e,t)))}function E(e){const t=(0,y.Z)();return a.createElement(w,(0,n.Z)({key:String(t)},e))}},2395:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>d,frontMatter:()=>u,metadata:()=>s,toc:()=>p});var n=r(7462),a=(r(7294),r(3905)),o=r(4866),l=r(5162);const u={},i="Startuptime",s={unversionedId:"extras/util/startuptime",id:"extras/util/startuptime",title:"Startuptime",description:"You can enable the extra with the :LazyExtras command.",source:"@site/docs/extras/util/startuptime.md",sourceDirName:"extras/util",slug:"/extras/util/startuptime",permalink:"/extras/util/startuptime",draft:!1,editUrl:"https://github.com/LazyVim/lazyvim.github.io/tree/main/docs/extras/util/startuptime.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Rest",permalink:"/extras/util/rest"},next:{title:"VS Code",permalink:"/extras/vscode"}},c={},p=[{value:"vim-startuptime",id:"vim-startuptime",level:2}],m={toc:p};function d(e){let{components:t,...r}=e;return(0,a.kt)("wrapper",(0,n.Z)({},m,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"startuptime"},(0,a.kt)("inlineCode",{parentName:"h1"},"Startuptime")),(0,a.kt)("admonition",{type:"info"},(0,a.kt)("p",{parentName:"admonition"},"You can enable the extra with the ",(0,a.kt)("inlineCode",{parentName:"p"},":LazyExtras")," command.\nPlugins marked as optional will only be configured if they are installed.")),(0,a.kt)("p",null,"Below you can find a list of included plugins and their default settings."),(0,a.kt)("admonition",{type:"caution"},(0,a.kt)("p",{parentName:"admonition"},"You don't need to copy the default settings to your config.\nThey are only shown here for reference.")),(0,a.kt)("h2",{id:"vim-startuptime"},(0,a.kt)("a",{parentName:"h2",href:"https://github.com/dstein64/vim-startuptime"},"vim-startuptime")),(0,a.kt)(o.Z,{mdxType:"Tabs"},(0,a.kt)(l.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},"opts = {}\n"))),(0,a.kt)(l.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "dstein64/vim-startuptime",\n cmd = "StartupTime",\n config = function()\n vim.g.startuptime_tries = 10\n end,\n}\n')))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/8001b023.126b5ba1.js b/assets/js/8001b023.126b5ba1.js new file mode 100644 index 0000000000..4b0f2822e3 --- /dev/null +++ b/assets/js/8001b023.126b5ba1.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklazyvim=self.webpackChunklazyvim||[]).push([[6857],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>f});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?l(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):l(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function i(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},l=Object.keys(e);for(r=0;r<l.length;r++)n=l[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r<l.length;r++)n=l[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var u=r.createContext({}),s=function(e){var t=r.useContext(u),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},c=function(e){var t=s(e.components);return r.createElement(u.Provider,{value:t},e.children)},m="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,l=e.originalType,u=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),m=s(n),d=a,f=m["".concat(u,".").concat(d)]||m[d]||p[d]||l;return n?r.createElement(f,o(o({ref:t},c),{},{components:n})):r.createElement(f,o({ref:t},c))}));function f(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var l=n.length,o=new Array(l);o[0]=d;var i={};for(var u in t)hasOwnProperty.call(t,u)&&(i[u]=t[u]);i.originalType=e,i[m]="string"==typeof e?e:a,o[1]=i;for(var s=2;s<l;s++)o[s]=n[s];return r.createElement.apply(null,o)}return r.createElement.apply(null,n)}d.displayName="MDXCreateElement"},5162:(e,t,n)=>{n.d(t,{Z:()=>o});var r=n(7294),a=n(6010);const l="tabItem_Ymn6";function o(e){let{children:t,hidden:n,className:o}=e;return r.createElement("div",{role:"tabpanel",className:(0,a.Z)(l,o),hidden:n},t)}},4866:(e,t,n)=>{n.d(t,{Z:()=>x});var r=n(7462),a=n(7294),l=n(6010),o=n(2466),i=n(6550),u=n(1980),s=n(7392),c=n(12);function m(e){return function(e){return a.Children.map(e,(e=>{if(!e||(0,a.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:t,label:n,attributes:r,default:a}}=e;return{value:t,label:n,attributes:r,default:a}}))}function p(e){const{values:t,children:n}=e;return(0,a.useMemo)((()=>{const e=t??m(n);return function(e){const t=(0,s.l)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[t,n])}function d(e){let{value:t,tabValues:n}=e;return n.some((e=>e.value===t))}function f(e){let{queryString:t=!1,groupId:n}=e;const r=(0,i.k6)(),l=function(e){let{queryString:t=!1,groupId:n}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!n)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return n??null}({queryString:t,groupId:n});return[(0,u._X)(l),(0,a.useCallback)((e=>{if(!l)return;const t=new URLSearchParams(r.location.search);t.set(l,e),r.replace({...r.location,search:t.toString()})}),[l,r])]}function b(e){const{defaultValue:t,queryString:n=!1,groupId:r}=e,l=p(e),[o,i]=(0,a.useState)((()=>function(e){let{defaultValue:t,tabValues:n}=e;if(0===n.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(t){if(!d({value:t,tabValues:n}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${n.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const r=n.find((e=>e.default))??n[0];if(!r)throw new Error("Unexpected error: 0 tabValues");return r.value}({defaultValue:t,tabValues:l}))),[u,s]=f({queryString:n,groupId:r}),[m,b]=function(e){let{groupId:t}=e;const n=function(e){return e?`docusaurus.tab.${e}`:null}(t),[r,l]=(0,c.Nk)(n);return[r,(0,a.useCallback)((e=>{n&&l.set(e)}),[n,l])]}({groupId:r}),v=(()=>{const e=u??m;return d({value:e,tabValues:l})?e:null})();(0,a.useLayoutEffect)((()=>{v&&i(v)}),[v]);return{selectedValue:o,selectValue:(0,a.useCallback)((e=>{if(!d({value:e,tabValues:l}))throw new Error(`Can't select invalid tab value=${e}`);i(e),s(e),b(e)}),[s,b,l]),tabValues:l}}var v=n(2389);const y="tabList__CuJ",h="tabItem_LNqP";function g(e){let{className:t,block:n,selectedValue:i,selectValue:u,tabValues:s}=e;const c=[],{blockElementScrollPositionUntilNextRender:m}=(0,o.o5)(),p=e=>{const t=e.currentTarget,n=c.indexOf(t),r=s[n].value;r!==i&&(m(t),u(r))},d=e=>{let t=null;switch(e.key){case"Enter":p(e);break;case"ArrowRight":{const n=c.indexOf(e.currentTarget)+1;t=c[n]??c[0];break}case"ArrowLeft":{const n=c.indexOf(e.currentTarget)-1;t=c[n]??c[c.length-1];break}}t?.focus()};return a.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,l.Z)("tabs",{"tabs--block":n},t)},s.map((e=>{let{value:t,label:n,attributes:o}=e;return a.createElement("li",(0,r.Z)({role:"tab",tabIndex:i===t?0:-1,"aria-selected":i===t,key:t,ref:e=>c.push(e),onKeyDown:d,onClick:p},o,{className:(0,l.Z)("tabs__item",h,o?.className,{"tabs__item--active":i===t})}),n??t)})))}function k(e){let{lazy:t,children:n,selectedValue:r}=e;const l=(Array.isArray(n)?n:[n]).filter(Boolean);if(t){const e=l.find((e=>e.props.value===r));return e?(0,a.cloneElement)(e,{className:"margin-top--md"}):null}return a.createElement("div",{className:"margin-top--md"},l.map(((e,t)=>(0,a.cloneElement)(e,{key:t,hidden:e.props.value!==r}))))}function w(e){const t=b(e);return a.createElement("div",{className:(0,l.Z)("tabs-container",y)},a.createElement(g,(0,r.Z)({},e,t)),a.createElement(k,(0,r.Z)({},e,t)))}function x(e){const t=(0,v.Z)();return a.createElement(w,(0,r.Z)({key:String(t)},e))}},7382:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>u,default:()=>d,frontMatter:()=>i,metadata:()=>s,toc:()=>m});var r=n(7462),a=(n(7294),n(3905)),l=n(4866),o=n(5162);const i={},u="Illuminate",s={unversionedId:"extras/editor/illuminate",id:"extras/editor/illuminate",title:"Illuminate",description:"You can enable the extra with the :LazyExtras command.",source:"@site/docs/extras/editor/illuminate.md",sourceDirName:"extras/editor",slug:"/extras/editor/illuminate",permalink:"/extras/editor/illuminate",draft:!1,editUrl:"https://github.com/LazyVim/lazyvim.github.io/tree/main/docs/extras/editor/illuminate.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Harpoon2",permalink:"/extras/editor/harpoon2"},next:{title:"Inc-rename",permalink:"/extras/editor/inc-rename"}},c={},m=[{value:"snacks.nvim",id:"snacksnvim",level:2},{value:"vim-illuminate",id:"vim-illuminate",level:2}],p={toc:m};function d(e){let{components:t,...n}=e;return(0,a.kt)("wrapper",(0,r.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"illuminate"},(0,a.kt)("inlineCode",{parentName:"h1"},"Illuminate")),(0,a.kt)("admonition",{type:"info"},(0,a.kt)("p",{parentName:"admonition"},"You can enable the extra with the ",(0,a.kt)("inlineCode",{parentName:"p"},":LazyExtras")," command.\nPlugins marked as optional will only be configured if they are installed.")),(0,a.kt)("p",null,"Below you can find a list of included plugins and their default settings."),(0,a.kt)("admonition",{type:"caution"},(0,a.kt)("p",{parentName:"admonition"},"You don't need to copy the default settings to your config.\nThey are only shown here for reference.")),(0,a.kt)("h2",{id:"snacksnvim"},(0,a.kt)("a",{parentName:"h2",href:"https://github.com/folke/snacks.nvim"},"snacks.nvim")),(0,a.kt)("p",null," disable snacks words"),(0,a.kt)(l.Z,{mdxType:"Tabs"},(0,a.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},"opts = { words = { enabled = false } }\n"))),(0,a.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'{ "snacks.nvim", opts = { words = { enabled = false } } }\n')))),(0,a.kt)("h2",{id:"vim-illuminate"},(0,a.kt)("a",{parentName:"h2",href:"https://github.com/RRethy/vim-illuminate"},"vim-illuminate")),(0,a.kt)(l.Z,{mdxType:"Tabs"},(0,a.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'opts = {\n delay = 200,\n large_file_cutoff = 2000,\n large_file_overrides = {\n providers = { "lsp" },\n },\n}\n'))),(0,a.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "RRethy/vim-illuminate",\n event = "LazyFile",\n opts = {\n delay = 200,\n large_file_cutoff = 2000,\n large_file_overrides = {\n providers = { "lsp" },\n },\n },\n config = function(_, opts)\n require("illuminate").configure(opts)\n\n Snacks.toggle({\n name = "Illuminate",\n get = function()\n return not require("illuminate.engine").is_paused()\n end,\n set = function(enabled)\n local m = require("illuminate")\n if enabled then\n m.resume()\n else\n m.pause()\n end\n end,\n }):map("<leader>ux")\n\n local function map(key, dir, buffer)\n vim.keymap.set("n", key, function()\n require("illuminate")["goto_" .. dir .. "_reference"](false)\n end, { desc = dir:sub(1, 1):upper() .. dir:sub(2) .. " Reference", buffer = buffer })\n end\n\n map("]]", "next")\n map("[[", "prev")\n\n -- also set it after loading ftplugins, since a lot overwrite [[ and ]]\n vim.api.nvim_create_autocmd("FileType", {\n callback = function()\n local buffer = vim.api.nvim_get_current_buf()\n map("]]", "next", buffer)\n map("[[", "prev", buffer)\n end,\n })\n end,\n keys = {\n { "]]", desc = "Next Reference" },\n { "[[", desc = "Prev Reference" },\n },\n}\n')))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/835d9726.29cec360.js b/assets/js/835d9726.29cec360.js new file mode 100644 index 0000000000..e63853fcd9 --- /dev/null +++ b/assets/js/835d9726.29cec360.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklazyvim=self.webpackChunklazyvim||[]).push([[6265],{3905:(e,n,t)=>{t.d(n,{Zo:()=>c,kt:()=>f});var a=t(7294);function r(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function i(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,a)}return t}function l(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?i(Object(t),!0).forEach((function(n){r(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):i(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function o(e,n){if(null==e)return{};var t,a,r=function(e,n){if(null==e)return{};var t,a,r={},i=Object.keys(e);for(a=0;a<i.length;a++)t=i[a],n.indexOf(t)>=0||(r[t]=e[t]);return r}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a<i.length;a++)t=i[a],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(r[t]=e[t])}return r}var u=a.createContext({}),s=function(e){var n=a.useContext(u),t=n;return e&&(t="function"==typeof e?e(n):l(l({},n),e)),t},c=function(e){var n=s(e.components);return a.createElement(u.Provider,{value:n},e.children)},m="mdxType",d={inlineCode:"code",wrapper:function(e){var n=e.children;return a.createElement(a.Fragment,{},n)}},p=a.forwardRef((function(e,n){var t=e.components,r=e.mdxType,i=e.originalType,u=e.parentName,c=o(e,["components","mdxType","originalType","parentName"]),m=s(t),p=r,f=m["".concat(u,".").concat(p)]||m[p]||d[p]||i;return t?a.createElement(f,l(l({ref:n},c),{},{components:t})):a.createElement(f,l({ref:n},c))}));function f(e,n){var t=arguments,r=n&&n.mdxType;if("string"==typeof e||r){var i=t.length,l=new Array(i);l[0]=p;var o={};for(var u in n)hasOwnProperty.call(n,u)&&(o[u]=n[u]);o.originalType=e,o[m]="string"==typeof e?e:r,l[1]=o;for(var s=2;s<i;s++)l[s]=t[s];return a.createElement.apply(null,l)}return a.createElement.apply(null,t)}p.displayName="MDXCreateElement"},5162:(e,n,t)=>{t.d(n,{Z:()=>l});var a=t(7294),r=t(6010);const i="tabItem_Ymn6";function l(e){let{children:n,hidden:t,className:l}=e;return a.createElement("div",{role:"tabpanel",className:(0,r.Z)(i,l),hidden:t},n)}},4866:(e,n,t)=>{t.d(n,{Z:()=>_});var a=t(7462),r=t(7294),i=t(6010),l=t(2466),o=t(6550),u=t(1980),s=t(7392),c=t(12);function m(e){return function(e){return r.Children.map(e,(e=>{if(!e||(0,r.isValidElement)(e)&&function(e){const{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:n,label:t,attributes:a,default:r}}=e;return{value:n,label:t,attributes:a,default:r}}))}function d(e){const{values:n,children:t}=e;return(0,r.useMemo)((()=>{const e=n??m(t);return function(e){const n=(0,s.l)(e,((e,n)=>e.value===n.value));if(n.length>0)throw new Error(`Docusaurus error: Duplicate values "${n.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[n,t])}function p(e){let{value:n,tabValues:t}=e;return t.some((e=>e.value===n))}function f(e){let{queryString:n=!1,groupId:t}=e;const a=(0,o.k6)(),i=function(e){let{queryString:n=!1,groupId:t}=e;if("string"==typeof n)return n;if(!1===n)return null;if(!0===n&&!t)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return t??null}({queryString:n,groupId:t});return[(0,u._X)(i),(0,r.useCallback)((e=>{if(!i)return;const n=new URLSearchParams(a.location.search);n.set(i,e),a.replace({...a.location,search:n.toString()})}),[i,a])]}function b(e){const{defaultValue:n,queryString:t=!1,groupId:a}=e,i=d(e),[l,o]=(0,r.useState)((()=>function(e){let{defaultValue:n,tabValues:t}=e;if(0===t.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(n){if(!p({value:n,tabValues:t}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${n}" but none of its children has the corresponding value. Available values are: ${t.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return n}const a=t.find((e=>e.default))??t[0];if(!a)throw new Error("Unexpected error: 0 tabValues");return a.value}({defaultValue:n,tabValues:i}))),[u,s]=f({queryString:t,groupId:a}),[m,b]=function(e){let{groupId:n}=e;const t=function(e){return e?`docusaurus.tab.${e}`:null}(n),[a,i]=(0,c.Nk)(t);return[a,(0,r.useCallback)((e=>{t&&i.set(e)}),[t,i])]}({groupId:a}),v=(()=>{const e=u??m;return p({value:e,tabValues:i})?e:null})();(0,r.useLayoutEffect)((()=>{v&&o(v)}),[v]);return{selectedValue:l,selectValue:(0,r.useCallback)((e=>{if(!p({value:e,tabValues:i}))throw new Error(`Can't select invalid tab value=${e}`);o(e),s(e),b(e)}),[s,b,i]),tabValues:i}}var v=t(2389);const g="tabList__CuJ",h="tabItem_LNqP";function y(e){let{className:n,block:t,selectedValue:o,selectValue:u,tabValues:s}=e;const c=[],{blockElementScrollPositionUntilNextRender:m}=(0,l.o5)(),d=e=>{const n=e.currentTarget,t=c.indexOf(n),a=s[t].value;a!==o&&(m(n),u(a))},p=e=>{let n=null;switch(e.key){case"Enter":d(e);break;case"ArrowRight":{const t=c.indexOf(e.currentTarget)+1;n=c[t]??c[0];break}case"ArrowLeft":{const t=c.indexOf(e.currentTarget)-1;n=c[t]??c[c.length-1];break}}n?.focus()};return r.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,i.Z)("tabs",{"tabs--block":t},n)},s.map((e=>{let{value:n,label:t,attributes:l}=e;return r.createElement("li",(0,a.Z)({role:"tab",tabIndex:o===n?0:-1,"aria-selected":o===n,key:n,ref:e=>c.push(e),onKeyDown:p,onClick:d},l,{className:(0,i.Z)("tabs__item",h,l?.className,{"tabs__item--active":o===n})}),t??n)})))}function k(e){let{lazy:n,children:t,selectedValue:a}=e;const i=(Array.isArray(t)?t:[t]).filter(Boolean);if(n){const e=i.find((e=>e.props.value===a));return e?(0,r.cloneElement)(e,{className:"margin-top--md"}):null}return r.createElement("div",{className:"margin-top--md"},i.map(((e,n)=>(0,r.cloneElement)(e,{key:n,hidden:e.props.value!==a}))))}function w(e){const n=b(e);return r.createElement("div",{className:(0,i.Z)("tabs-container",g)},r.createElement(y,(0,a.Z)({},e,n)),r.createElement(k,(0,a.Z)({},e,n)))}function _(e){const n=(0,v.Z)();return r.createElement(w,(0,a.Z)({key:String(n)},e))}},8004:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>u,default:()=>p,frontMatter:()=>o,metadata:()=>s,toc:()=>m});var a=t(7462),r=(t(7294),t(3905)),i=t(4866),l=t(5162);const o={},u="Mini Animate",s={unversionedId:"extras/ui/mini-animate",id:"extras/ui/mini-animate",title:"Mini Animate",description:"You can enable the extra with the :LazyExtras command.",source:"@site/docs/extras/ui/mini-animate.md",sourceDirName:"extras/ui",slug:"/extras/ui/mini-animate",permalink:"/extras/ui/mini-animate",draft:!1,editUrl:"https://github.com/LazyVim/lazyvim.github.io/tree/main/docs/extras/ui/mini-animate.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Indent-blankline",permalink:"/extras/ui/indent-blankline"},next:{title:"Mini-indentscope",permalink:"/extras/ui/mini-indentscope"}},c={},m=[{value:"snacks.nvim",id:"snacksnvim",level:2},{value:"mini.animate",id:"minianimate",level:2}],d={toc:m};function p(e){let{components:n,...t}=e;return(0,r.kt)("wrapper",(0,a.Z)({},d,t,{components:n,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"mini-animate"},"Mini Animate"),(0,r.kt)("admonition",{type:"info"},(0,r.kt)("p",{parentName:"admonition"},"You can enable the extra with the ",(0,r.kt)("inlineCode",{parentName:"p"},":LazyExtras")," command.\nPlugins marked as optional will only be configured if they are installed.")),(0,r.kt)("p",null,"Below you can find a list of included plugins and their default settings."),(0,r.kt)("admonition",{type:"caution"},(0,r.kt)("p",{parentName:"admonition"},"You don't need to copy the default settings to your config.\nThey are only shown here for reference.")),(0,r.kt)("h2",{id:"snacksnvim"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/folke/snacks.nvim"},"snacks.nvim")),(0,r.kt)("p",null," disable snacks scroll when animate is enabled"),(0,r.kt)(i.Z,{mdxType:"Tabs"},(0,r.kt)(l.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},"opts = {\n scroll = { enabled = false },\n}\n"))),(0,r.kt)(l.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "snacks.nvim",\n opts = {\n scroll = { enabled = false },\n },\n}\n')))),(0,r.kt)("h2",{id:"minianimate"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/nvim-mini/mini.animate"},"mini.animate")),(0,r.kt)("p",null," Animates many common Neovim actions, like scrolling,\nmoving the cursor, and resizing windows."),(0,r.kt)(i.Z,{mdxType:"Tabs"},(0,r.kt)(l.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = function(_, opts)\n -- don\'t use animate when scrolling with the mouse\n local mouse_scrolled = false\n for _, scroll in ipairs({ "Up", "Down" }) do\n local key = "<ScrollWheel" .. scroll .. ">"\n vim.keymap.set({ "", "i" }, key, function()\n mouse_scrolled = true\n return key\n end, { expr = true })\n end\n\n vim.api.nvim_create_autocmd("FileType", {\n pattern = "grug-far",\n callback = function()\n vim.b.minianimate_disable = true\n end,\n })\n\n -- schedule setting the mapping to override the default mapping from `keymaps.lua`\n -- seems `keymaps.lua` is the last event to execute on `VeryLazy` and it overwrites it\n vim.schedule(function()\n Snacks.toggle({\n name = "Mini Animate",\n get = function()\n return not vim.g.minianimate_disable\n end,\n set = function(state)\n vim.g.minianimate_disable = not state\n end,\n }):map("<leader>ua")\n end)\n\n local animate = require("mini.animate")\n return vim.tbl_deep_extend("force", opts, {\n resize = {\n timing = animate.gen_timing.linear({ duration = 50, unit = "total" }),\n },\n scroll = {\n timing = animate.gen_timing.linear({ duration = 150, unit = "total" }),\n subscroll = animate.gen_subscroll.equal({\n predicate = function(total_scroll)\n if mouse_scrolled then\n mouse_scrolled = false\n return false\n end\n return total_scroll > 1\n end,\n }),\n },\n })\nend\n'))),(0,r.kt)(l.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "nvim-mini/mini.animate",\n event = "VeryLazy",\n cond = vim.g.neovide == nil,\n opts = function(_, opts)\n -- don\'t use animate when scrolling with the mouse\n local mouse_scrolled = false\n for _, scroll in ipairs({ "Up", "Down" }) do\n local key = "<ScrollWheel" .. scroll .. ">"\n vim.keymap.set({ "", "i" }, key, function()\n mouse_scrolled = true\n return key\n end, { expr = true })\n end\n\n vim.api.nvim_create_autocmd("FileType", {\n pattern = "grug-far",\n callback = function()\n vim.b.minianimate_disable = true\n end,\n })\n\n -- schedule setting the mapping to override the default mapping from `keymaps.lua`\n -- seems `keymaps.lua` is the last event to execute on `VeryLazy` and it overwrites it\n vim.schedule(function()\n Snacks.toggle({\n name = "Mini Animate",\n get = function()\n return not vim.g.minianimate_disable\n end,\n set = function(state)\n vim.g.minianimate_disable = not state\n end,\n }):map("<leader>ua")\n end)\n\n local animate = require("mini.animate")\n return vim.tbl_deep_extend("force", opts, {\n resize = {\n timing = animate.gen_timing.linear({ duration = 50, unit = "total" }),\n },\n scroll = {\n timing = animate.gen_timing.linear({ duration = 150, unit = "total" }),\n subscroll = animate.gen_subscroll.equal({\n predicate = function(total_scroll)\n if mouse_scrolled then\n mouse_scrolled = false\n return false\n end\n return total_scroll > 1\n end,\n }),\n },\n })\n end,\n}\n')))))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/840ee53e.57c0816d.js b/assets/js/840ee53e.57c0816d.js new file mode 100644 index 0000000000..bfc7832a9d --- /dev/null +++ b/assets/js/840ee53e.57c0816d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklazyvim=self.webpackChunklazyvim||[]).push([[1432],{3905:(e,n,t)=>{t.d(n,{Zo:()=>u,kt:()=>f});var a=t(7294);function r(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function o(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,a)}return t}function i(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?o(Object(t),!0).forEach((function(n){r(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):o(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function l(e,n){if(null==e)return{};var t,a,r=function(e,n){if(null==e)return{};var t,a,r={},o=Object.keys(e);for(a=0;a<o.length;a++)t=o[a],n.indexOf(t)>=0||(r[t]=e[t]);return r}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)t=o[a],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(r[t]=e[t])}return r}var s=a.createContext({}),c=function(e){var n=a.useContext(s),t=n;return e&&(t="function"==typeof e?e(n):i(i({},n),e)),t},u=function(e){var n=c(e.components);return a.createElement(s.Provider,{value:n},e.children)},d="mdxType",m={inlineCode:"code",wrapper:function(e){var n=e.children;return a.createElement(a.Fragment,{},n)}},p=a.forwardRef((function(e,n){var t=e.components,r=e.mdxType,o=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),d=c(t),p=r,f=d["".concat(s,".").concat(p)]||d[p]||m[p]||o;return t?a.createElement(f,i(i({ref:n},u),{},{components:t})):a.createElement(f,i({ref:n},u))}));function f(e,n){var t=arguments,r=n&&n.mdxType;if("string"==typeof e||r){var o=t.length,i=new Array(o);i[0]=p;var l={};for(var s in n)hasOwnProperty.call(n,s)&&(l[s]=n[s]);l.originalType=e,l[d]="string"==typeof e?e:r,i[1]=l;for(var c=2;c<o;c++)i[c]=t[c];return a.createElement.apply(null,i)}return a.createElement.apply(null,t)}p.displayName="MDXCreateElement"},5162:(e,n,t)=>{t.d(n,{Z:()=>i});var a=t(7294),r=t(6010);const o="tabItem_Ymn6";function i(e){let{children:n,hidden:t,className:i}=e;return a.createElement("div",{role:"tabpanel",className:(0,r.Z)(o,i),hidden:t},n)}},4866:(e,n,t)=>{t.d(n,{Z:()=>w});var a=t(7462),r=t(7294),o=t(6010),i=t(2466),l=t(6550),s=t(1980),c=t(7392),u=t(12);function d(e){return function(e){return r.Children.map(e,(e=>{if(!e||(0,r.isValidElement)(e)&&function(e){const{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:n,label:t,attributes:a,default:r}}=e;return{value:n,label:t,attributes:a,default:r}}))}function m(e){const{values:n,children:t}=e;return(0,r.useMemo)((()=>{const e=n??d(t);return function(e){const n=(0,c.l)(e,((e,n)=>e.value===n.value));if(n.length>0)throw new Error(`Docusaurus error: Duplicate values "${n.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[n,t])}function p(e){let{value:n,tabValues:t}=e;return t.some((e=>e.value===n))}function f(e){let{queryString:n=!1,groupId:t}=e;const a=(0,l.k6)(),o=function(e){let{queryString:n=!1,groupId:t}=e;if("string"==typeof n)return n;if(!1===n)return null;if(!0===n&&!t)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return t??null}({queryString:n,groupId:t});return[(0,s._X)(o),(0,r.useCallback)((e=>{if(!o)return;const n=new URLSearchParams(a.location.search);n.set(o,e),a.replace({...a.location,search:n.toString()})}),[o,a])]}function b(e){const{defaultValue:n,queryString:t=!1,groupId:a}=e,o=m(e),[i,l]=(0,r.useState)((()=>function(e){let{defaultValue:n,tabValues:t}=e;if(0===t.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(n){if(!p({value:n,tabValues:t}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${n}" but none of its children has the corresponding value. Available values are: ${t.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return n}const a=t.find((e=>e.default))??t[0];if(!a)throw new Error("Unexpected error: 0 tabValues");return a.value}({defaultValue:n,tabValues:o}))),[s,c]=f({queryString:t,groupId:a}),[d,b]=function(e){let{groupId:n}=e;const t=function(e){return e?`docusaurus.tab.${e}`:null}(n),[a,o]=(0,u.Nk)(t);return[a,(0,r.useCallback)((e=>{t&&o.set(e)}),[t,o])]}({groupId:a}),y=(()=>{const e=s??d;return p({value:e,tabValues:o})?e:null})();(0,r.useLayoutEffect)((()=>{y&&l(y)}),[y]);return{selectedValue:i,selectValue:(0,r.useCallback)((e=>{if(!p({value:e,tabValues:o}))throw new Error(`Can't select invalid tab value=${e}`);l(e),c(e),b(e)}),[c,b,o]),tabValues:o}}var y=t(2389);const h="tabList__CuJ",v="tabItem_LNqP";function g(e){let{className:n,block:t,selectedValue:l,selectValue:s,tabValues:c}=e;const u=[],{blockElementScrollPositionUntilNextRender:d}=(0,i.o5)(),m=e=>{const n=e.currentTarget,t=u.indexOf(n),a=c[t].value;a!==l&&(d(n),s(a))},p=e=>{let n=null;switch(e.key){case"Enter":m(e);break;case"ArrowRight":{const t=u.indexOf(e.currentTarget)+1;n=u[t]??u[0];break}case"ArrowLeft":{const t=u.indexOf(e.currentTarget)-1;n=u[t]??u[u.length-1];break}}n?.focus()};return r.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,o.Z)("tabs",{"tabs--block":t},n)},c.map((e=>{let{value:n,label:t,attributes:i}=e;return r.createElement("li",(0,a.Z)({role:"tab",tabIndex:l===n?0:-1,"aria-selected":l===n,key:n,ref:e=>u.push(e),onKeyDown:p,onClick:m},i,{className:(0,o.Z)("tabs__item",v,i?.className,{"tabs__item--active":l===n})}),t??n)})))}function k(e){let{lazy:n,children:t,selectedValue:a}=e;const o=(Array.isArray(t)?t:[t]).filter(Boolean);if(n){const e=o.find((e=>e.props.value===a));return e?(0,r.cloneElement)(e,{className:"margin-top--md"}):null}return r.createElement("div",{className:"margin-top--md"},o.map(((e,n)=>(0,r.cloneElement)(e,{key:n,hidden:e.props.value!==a}))))}function x(e){const n=b(e);return r.createElement("div",{className:(0,o.Z)("tabs-container",h)},r.createElement(g,(0,a.Z)({},e,n)),r.createElement(k,(0,a.Z)({},e,n)))}function w(e){const n=(0,y.Z)();return r.createElement(x,(0,a.Z)({key:String(n)},e))}},5179:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>u,contentTitle:()=>s,default:()=>p,frontMatter:()=>l,metadata:()=>c,toc:()=>d});var a=t(7462),r=(t(7294),t(3905)),o=t(4866),i=t(5162);const l={},s="Dashboard-nvim",c={unversionedId:"extras/ui/dashboard-nvim",id:"extras/ui/dashboard-nvim",title:"Dashboard-nvim",description:"You can enable the extra with the :LazyExtras command.",source:"@site/docs/extras/ui/dashboard-nvim.md",sourceDirName:"extras/ui",slug:"/extras/ui/dashboard-nvim",permalink:"/extras/ui/dashboard-nvim",draft:!1,editUrl:"https://github.com/LazyVim/lazyvim.github.io/tree/main/docs/extras/ui/dashboard-nvim.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Alpha",permalink:"/extras/ui/alpha"},next:{title:"edgy.nvim",permalink:"/extras/ui/edgy"}},u={},d=[{value:"snacks.nvim",id:"snacksnvim",level:2},{value:"dashboard-nvim",id:"dashboard-nvim-1",level:2}],m={toc:d};function p(e){let{components:n,...t}=e;return(0,r.kt)("wrapper",(0,a.Z)({},m,t,{components:n,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"dashboard-nvim"},(0,r.kt)("inlineCode",{parentName:"h1"},"Dashboard-nvim")),(0,r.kt)("admonition",{type:"info"},(0,r.kt)("p",{parentName:"admonition"},"You can enable the extra with the ",(0,r.kt)("inlineCode",{parentName:"p"},":LazyExtras")," command.\nPlugins marked as optional will only be configured if they are installed.")),(0,r.kt)("p",null,"Below you can find a list of included plugins and their default settings."),(0,r.kt)("admonition",{type:"caution"},(0,r.kt)("p",{parentName:"admonition"},"You don't need to copy the default settings to your config.\nThey are only shown here for reference.")),(0,r.kt)("h2",{id:"snacksnvim"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/folke/snacks.nvim"},"snacks.nvim")),(0,r.kt)(o.Z,{mdxType:"Tabs"},(0,r.kt)(i.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},"opts = { dashboard = { enabled = false } }\n"))),(0,r.kt)(i.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{ "folke/snacks.nvim", opts = { dashboard = { enabled = false } } }\n')))),(0,r.kt)("h2",{id:"dashboard-nvim-1"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/nvimdev/dashboard-nvim"},"dashboard-nvim")),(0,r.kt)(o.Z,{mdxType:"Tabs"},(0,r.kt)(i.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = function()\n local logo = [[\n \u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557\u2588\u2588\u2557 \u2588\u2588\u2557\u2588\u2588\u2557 \u2588\u2588\u2557\u2588\u2588\u2557\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2557 Z\n \u2588\u2588\u2551 \u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557\u255a\u2550\u2550\u2588\u2588\u2588\u2554\u255d\u255a\u2588\u2588\u2557 \u2588\u2588\u2554\u255d\u2588\u2588\u2551 \u2588\u2588\u2551\u2588\u2588\u2551\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2551 Z \n \u2588\u2588\u2551 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2551 \u2588\u2588\u2588\u2554\u255d \u255a\u2588\u2588\u2588\u2588\u2554\u255d \u2588\u2588\u2551 \u2588\u2588\u2551\u2588\u2588\u2551\u2588\u2588\u2554\u2588\u2588\u2588\u2588\u2554\u2588\u2588\u2551 z \n \u2588\u2588\u2551 \u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2551 \u2588\u2588\u2588\u2554\u255d \u255a\u2588\u2588\u2554\u255d \u255a\u2588\u2588\u2557 \u2588\u2588\u2554\u255d\u2588\u2588\u2551\u2588\u2588\u2551\u255a\u2588\u2588\u2554\u255d\u2588\u2588\u2551 z \n \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557\u2588\u2588\u2551 \u2588\u2588\u2551\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2551 \u255a\u2588\u2588\u2588\u2588\u2554\u255d \u2588\u2588\u2551\u2588\u2588\u2551 \u255a\u2550\u255d \u2588\u2588\u2551 \n \u255a\u2550\u2550\u2550\u2550\u2550\u2550\u255d\u255a\u2550\u255d \u255a\u2550\u255d\u255a\u2550\u2550\u2550\u2550\u2550\u2550\u255d \u255a\u2550\u255d \u255a\u2550\u2550\u2550\u255d \u255a\u2550\u255d\u255a\u2550\u255d \u255a\u2550\u255d \n ]]\n\n logo = string.rep("\\n", 8) .. logo .. "\\n\\n"\n\n local opts = {\n theme = "doom",\n hide = {\n -- this is taken care of by lualine\n -- enabling this messes up the actual laststatus setting after loading a file\n statusline = false,\n },\n config = {\n header = vim.split(logo, "\\n"),\n -- stylua: ignore\n center = {\n { action = \'lua LazyVim.pick()()\', desc = " Find File", icon = "\uf002 ", key = "f" },\n { action = "ene | startinsert", desc = " New File", icon = "\uf15b ", key = "n" },\n { action = \'lua LazyVim.pick("oldfiles")()\', desc = " Recent Files", icon = "\uf0c5 ", key = "r" },\n { action = \'lua LazyVim.pick("live_grep")()\', desc = " Find Text", icon = "\uf022 ", key = "g" },\n { action = \'lua LazyVim.pick.config_files()()\', desc = " Config", icon = "\uf423 ", key = "c" },\n { action = \'lua require("persistence").load()\', desc = " Restore Session", icon = "\ue348 ", key = "s" },\n { action = "LazyExtras", desc = " Lazy Extras", icon = "\uea8c ", key = "x" },\n { action = "Lazy", desc = " Lazy", icon = "\udb81\udcb2 ", key = "l" },\n { action = function() vim.api.nvim_input("<cmd>qa<cr>") end, desc = " Quit", icon = "\uf426 ", key = "q" },\n },\n footer = function()\n local stats = require("lazy").stats()\n local ms = (math.floor(stats.startuptime * 100 + 0.5) / 100)\n return { "\u26a1 Neovim loaded " .. stats.loaded .. "/" .. stats.count .. " plugins in " .. ms .. "ms" }\n end,\n },\n }\n\n for _, button in ipairs(opts.config.center) do\n button.desc = button.desc .. string.rep(" ", 43 - #button.desc)\n button.key_format = " %s"\n end\n\n -- open dashboard after closing lazy\n if vim.o.filetype == "lazy" then\n vim.api.nvim_create_autocmd("WinClosed", {\n pattern = tostring(vim.api.nvim_get_current_win()),\n once = true,\n callback = function()\n vim.schedule(function()\n vim.api.nvim_exec_autocmds("UIEnter", { group = "dashboard" })\n end)\n end,\n })\n end\n\n return opts\nend\n'))),(0,r.kt)(i.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "nvimdev/dashboard-nvim",\n lazy = false, -- As https://github.com/nvimdev/dashboard-nvim/pull/450, dashboard-nvim shouldn\'t be lazy-loaded to properly handle stdin.\n opts = function()\n local logo = [[\n \u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557\u2588\u2588\u2557 \u2588\u2588\u2557\u2588\u2588\u2557 \u2588\u2588\u2557\u2588\u2588\u2557\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2557 Z\n \u2588\u2588\u2551 \u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557\u255a\u2550\u2550\u2588\u2588\u2588\u2554\u255d\u255a\u2588\u2588\u2557 \u2588\u2588\u2554\u255d\u2588\u2588\u2551 \u2588\u2588\u2551\u2588\u2588\u2551\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2551 Z \n \u2588\u2588\u2551 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2551 \u2588\u2588\u2588\u2554\u255d \u255a\u2588\u2588\u2588\u2588\u2554\u255d \u2588\u2588\u2551 \u2588\u2588\u2551\u2588\u2588\u2551\u2588\u2588\u2554\u2588\u2588\u2588\u2588\u2554\u2588\u2588\u2551 z \n \u2588\u2588\u2551 \u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2551 \u2588\u2588\u2588\u2554\u255d \u255a\u2588\u2588\u2554\u255d \u255a\u2588\u2588\u2557 \u2588\u2588\u2554\u255d\u2588\u2588\u2551\u2588\u2588\u2551\u255a\u2588\u2588\u2554\u255d\u2588\u2588\u2551 z \n \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557\u2588\u2588\u2551 \u2588\u2588\u2551\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2551 \u255a\u2588\u2588\u2588\u2588\u2554\u255d \u2588\u2588\u2551\u2588\u2588\u2551 \u255a\u2550\u255d \u2588\u2588\u2551 \n \u255a\u2550\u2550\u2550\u2550\u2550\u2550\u255d\u255a\u2550\u255d \u255a\u2550\u255d\u255a\u2550\u2550\u2550\u2550\u2550\u2550\u255d \u255a\u2550\u255d \u255a\u2550\u2550\u2550\u255d \u255a\u2550\u255d\u255a\u2550\u255d \u255a\u2550\u255d \n ]]\n\n logo = string.rep("\\n", 8) .. logo .. "\\n\\n"\n\n local opts = {\n theme = "doom",\n hide = {\n -- this is taken care of by lualine\n -- enabling this messes up the actual laststatus setting after loading a file\n statusline = false,\n },\n config = {\n header = vim.split(logo, "\\n"),\n -- stylua: ignore\n center = {\n { action = \'lua LazyVim.pick()()\', desc = " Find File", icon = "\uf002 ", key = "f" },\n { action = "ene | startinsert", desc = " New File", icon = "\uf15b ", key = "n" },\n { action = \'lua LazyVim.pick("oldfiles")()\', desc = " Recent Files", icon = "\uf0c5 ", key = "r" },\n { action = \'lua LazyVim.pick("live_grep")()\', desc = " Find Text", icon = "\uf022 ", key = "g" },\n { action = \'lua LazyVim.pick.config_files()()\', desc = " Config", icon = "\uf423 ", key = "c" },\n { action = \'lua require("persistence").load()\', desc = " Restore Session", icon = "\ue348 ", key = "s" },\n { action = "LazyExtras", desc = " Lazy Extras", icon = "\uea8c ", key = "x" },\n { action = "Lazy", desc = " Lazy", icon = "\udb81\udcb2 ", key = "l" },\n { action = function() vim.api.nvim_input("<cmd>qa<cr>") end, desc = " Quit", icon = "\uf426 ", key = "q" },\n },\n footer = function()\n local stats = require("lazy").stats()\n local ms = (math.floor(stats.startuptime * 100 + 0.5) / 100)\n return { "\u26a1 Neovim loaded " .. stats.loaded .. "/" .. stats.count .. " plugins in " .. ms .. "ms" }\n end,\n },\n }\n\n for _, button in ipairs(opts.config.center) do\n button.desc = button.desc .. string.rep(" ", 43 - #button.desc)\n button.key_format = " %s"\n end\n\n -- open dashboard after closing lazy\n if vim.o.filetype == "lazy" then\n vim.api.nvim_create_autocmd("WinClosed", {\n pattern = tostring(vim.api.nvim_get_current_win()),\n once = true,\n callback = function()\n vim.schedule(function()\n vim.api.nvim_exec_autocmds("UIEnter", { group = "dashboard" })\n end)\n end,\n })\n end\n\n return opts\n end,\n}\n')))))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/8443.06003310.js b/assets/js/8443.06003310.js new file mode 100644 index 0000000000..41981af3fd --- /dev/null +++ b/assets/js/8443.06003310.js @@ -0,0 +1,2 @@ +/*! For license information please see 8443.06003310.js.LICENSE.txt */ +(self.webpackChunklazyvim=self.webpackChunklazyvim||[]).push([[8443],{8443:(t,e,n)=>{"use strict";t.exports=n(295)},1228:(t,e,n)=>{"use strict";var i=n(2856),s={wrapper:{position:"relative",display:"inline-block"},hint:{position:"absolute",top:"0",left:"0",borderColor:"transparent",boxShadow:"none",opacity:"1"},input:{position:"relative",verticalAlign:"top",backgroundColor:"transparent"},inputWithNoHint:{position:"relative",verticalAlign:"top"},dropdown:{position:"absolute",top:"100%",left:"0",zIndex:"100",display:"none"},suggestions:{display:"block"},suggestion:{whiteSpace:"nowrap",cursor:"pointer"},suggestionChild:{whiteSpace:"normal"},ltr:{left:"0",right:"auto"},rtl:{left:"auto",right:"0"},defaultClasses:{root:"algolia-autocomplete",prefix:"aa",noPrefix:!1,dropdownMenu:"dropdown-menu",input:"input",hint:"hint",suggestions:"suggestions",suggestion:"suggestion",cursor:"cursor",dataset:"dataset",empty:"empty"},appendTo:{wrapper:{position:"absolute",zIndex:"100",display:"none"},input:{},inputWithNoHint:{},dropdown:{display:"block"}}};i.isMsie()&&i.mixin(s.input,{backgroundImage:"url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)"}),i.isMsie()&&i.isMsie()<=7&&i.mixin(s.input,{marginTop:"-1px"}),t.exports=s},9050:(t,e,n)=>{"use strict";var i="aaDataset",s="aaValue",r="aaDatum",o=n(2856),a=n(4910),u=n(3561),c=n(1228),l=n(3109);function h(t){var e;(t=t||{}).templates=t.templates||{},t.source||o.error("missing source"),t.name&&(e=t.name,!/^[_a-zA-Z0-9-]+$/.test(e))&&o.error("invalid dataset name: "+t.name),this.query=null,this._isEmpty=!0,this.highlight=!!t.highlight,this.name=void 0===t.name||null===t.name?o.getUniqueId():t.name,this.source=t.source,this.displayFn=function(t){return t=t||"value",o.isFunction(t)?t:e;function e(e){return e[t]}}(t.display||t.displayKey),this.debounce=t.debounce,this.cache=!1!==t.cache,this.templates=function(t,e){return{empty:t.empty&&o.templatify(t.empty),header:t.header&&o.templatify(t.header),footer:t.footer&&o.templatify(t.footer),suggestion:t.suggestion||n};function n(t){return"<p>"+e(t)+"</p>"}}(t.templates,this.displayFn),this.css=o.mixin({},c,t.appendTo?c.appendTo:{}),this.cssClasses=t.cssClasses=o.mixin({},c.defaultClasses,t.cssClasses||{}),this.cssClasses.prefix=t.cssClasses.formattedPrefix||o.formatPrefix(this.cssClasses.prefix,this.cssClasses.noPrefix);var n=o.className(this.cssClasses.prefix,this.cssClasses.dataset);this.$el=t.$menu&&t.$menu.find(n+"-"+this.name).length>0?a.element(t.$menu.find(n+"-"+this.name)[0]):a.element(u.dataset.replace("%CLASS%",this.name).replace("%PREFIX%",this.cssClasses.prefix).replace("%DATASET%",this.cssClasses.dataset)),this.$menu=t.$menu,this.clearCachedSuggestions()}h.extractDatasetName=function(t){return a.element(t).data(i)},h.extractValue=function(t){return a.element(t).data(s)},h.extractDatum=function(t){var e=a.element(t).data(r);return"string"==typeof e&&(e=JSON.parse(e)),e},o.mixin(h.prototype,l,{_render:function(t,e){if(this.$el){var n,c=this,l=[].slice.call(arguments,2);if(this.$el.empty(),n=e&&e.length,this._isEmpty=!n,!n&&this.templates.empty)this.$el.html(h.apply(this,l)).prepend(c.templates.header?f.apply(this,l):null).append(c.templates.footer?d.apply(this,l):null);else if(n)this.$el.html(p.apply(this,l)).prepend(c.templates.header?f.apply(this,l):null).append(c.templates.footer?d.apply(this,l):null);else if(e&&!Array.isArray(e))throw new TypeError("suggestions must be an array");this.$menu&&this.$menu.addClass(this.cssClasses.prefix+(n?"with":"without")+"-"+this.name).removeClass(this.cssClasses.prefix+(n?"without":"with")+"-"+this.name),this.trigger("rendered",t)}function h(){var e=[].slice.call(arguments,0);return e=[{query:t,isEmpty:!0}].concat(e),c.templates.empty.apply(this,e)}function p(){var t,n,l=[].slice.call(arguments,0),h=this,p=u.suggestions.replace("%PREFIX%",this.cssClasses.prefix).replace("%SUGGESTIONS%",this.cssClasses.suggestions);return t=a.element(p).css(this.css.suggestions),n=o.map(e,f),t.append.apply(t,n),t;function f(t){var e,n=u.suggestion.replace("%PREFIX%",h.cssClasses.prefix).replace("%SUGGESTION%",h.cssClasses.suggestion);return(e=a.element(n).attr({role:"option",id:["option",Math.floor(1e8*Math.random())].join("-")}).append(c.templates.suggestion.apply(this,[t].concat(l)))).data(i,c.name),e.data(s,c.displayFn(t)||void 0),e.data(r,JSON.stringify(t)),e.children().each((function(){a.element(this).css(h.css.suggestionChild)})),e}}function f(){var e=[].slice.call(arguments,0);return e=[{query:t,isEmpty:!n}].concat(e),c.templates.header.apply(this,e)}function d(){var e=[].slice.call(arguments,0);return e=[{query:t,isEmpty:!n}].concat(e),c.templates.footer.apply(this,e)}},getRoot:function(){return this.$el},update:function(t){function e(e){if(!this.canceled&&t===this.query){var n=[].slice.call(arguments,1);this.cacheSuggestions(t,e,n),this._render.apply(this,[t,e].concat(n))}}if(this.query=t,this.canceled=!1,this.shouldFetchFromCache(t))e.apply(this,[this.cachedSuggestions].concat(this.cachedRenderExtraArgs));else{var n=this,i=function(){n.canceled||n.source(t,e.bind(n))};if(this.debounce){clearTimeout(this.debounceTimeout),this.debounceTimeout=setTimeout((function(){n.debounceTimeout=null,i()}),this.debounce)}else i()}},cacheSuggestions:function(t,e,n){this.cachedQuery=t,this.cachedSuggestions=e,this.cachedRenderExtraArgs=n},shouldFetchFromCache:function(t){return this.cache&&this.cachedQuery===t&&this.cachedSuggestions&&this.cachedSuggestions.length},clearCachedSuggestions:function(){delete this.cachedQuery,delete this.cachedSuggestions,delete this.cachedRenderExtraArgs},cancel:function(){this.canceled=!0},clear:function(){this.$el&&(this.cancel(),this.$el.empty(),this.trigger("rendered",""))},isEmpty:function(){return this._isEmpty},destroy:function(){this.clearCachedSuggestions(),this.$el=null}}),t.exports=h},3354:(t,e,n)=>{"use strict";var i=n(2856),s=n(4910),r=n(3109),o=n(9050),a=n(1228);function u(t){var e,n,r,o=this;(t=t||{}).menu||i.error("menu is required"),i.isArray(t.datasets)||i.isObject(t.datasets)||i.error("1 or more datasets required"),t.datasets||i.error("datasets is required"),this.isOpen=!1,this.isEmpty=!0,this.minLength=t.minLength||0,this.templates={},this.appendTo=t.appendTo||!1,this.css=i.mixin({},a,t.appendTo?a.appendTo:{}),this.cssClasses=t.cssClasses=i.mixin({},a.defaultClasses,t.cssClasses||{}),this.cssClasses.prefix=t.cssClasses.formattedPrefix||i.formatPrefix(this.cssClasses.prefix,this.cssClasses.noPrefix),e=i.bind(this._onSuggestionClick,this),n=i.bind(this._onSuggestionMouseEnter,this),r=i.bind(this._onSuggestionMouseLeave,this);var c=i.className(this.cssClasses.prefix,this.cssClasses.suggestion);this.$menu=s.element(t.menu).on("mouseenter.aa",c,n).on("mouseleave.aa",c,r).on("click.aa",c,e),this.$container=t.appendTo?t.wrapper:this.$menu,t.templates&&t.templates.header&&(this.templates.header=i.templatify(t.templates.header),this.$menu.prepend(this.templates.header())),t.templates&&t.templates.empty&&(this.templates.empty=i.templatify(t.templates.empty),this.$empty=s.element('<div class="'+i.className(this.cssClasses.prefix,this.cssClasses.empty,!0)+'"></div>'),this.$menu.append(this.$empty),this.$empty.hide()),this.datasets=i.map(t.datasets,(function(e){return function(t,e,n){return new u.Dataset(i.mixin({$menu:t,cssClasses:n},e))}(o.$menu,e,t.cssClasses)})),i.each(this.datasets,(function(t){var e=t.getRoot();e&&0===e.parent().length&&o.$menu.append(e),t.onSync("rendered",o._onRendered,o)})),t.templates&&t.templates.footer&&(this.templates.footer=i.templatify(t.templates.footer),this.$menu.append(this.templates.footer()));var l=this;s.element(window).resize((function(){l._redraw()}))}i.mixin(u.prototype,r,{_onSuggestionClick:function(t){this.trigger("suggestionClicked",s.element(t.currentTarget))},_onSuggestionMouseEnter:function(t){var e=s.element(t.currentTarget);if(!e.hasClass(i.className(this.cssClasses.prefix,this.cssClasses.cursor,!0))){this._removeCursor();var n=this;setTimeout((function(){n._setCursor(e,!1)}),0)}},_onSuggestionMouseLeave:function(t){if(t.relatedTarget&&s.element(t.relatedTarget).closest("."+i.className(this.cssClasses.prefix,this.cssClasses.cursor,!0)).length>0)return;this._removeCursor(),this.trigger("cursorRemoved")},_onRendered:function(t,e){if(this.isEmpty=i.every(this.datasets,(function(t){return t.isEmpty()})),this.isEmpty)if(e.length>=this.minLength&&this.trigger("empty"),this.$empty)if(e.length<this.minLength)this._hide();else{var n=this.templates.empty({query:this.datasets[0]&&this.datasets[0].query});this.$empty.html(n),this.$empty.show(),this._show()}else i.any(this.datasets,(function(t){return t.templates&&t.templates.empty}))?e.length<this.minLength?this._hide():this._show():this._hide();else this.isOpen&&(this.$empty&&(this.$empty.empty(),this.$empty.hide()),e.length>=this.minLength?this._show():this._hide());this.trigger("datasetRendered")},_hide:function(){this.$container.hide()},_show:function(){this.$container.css("display","block"),this._redraw(),this.trigger("shown")},_redraw:function(){this.isOpen&&this.appendTo&&this.trigger("redrawn")},_getSuggestions:function(){return this.$menu.find(i.className(this.cssClasses.prefix,this.cssClasses.suggestion))},_getCursor:function(){return this.$menu.find(i.className(this.cssClasses.prefix,this.cssClasses.cursor)).first()},_setCursor:function(t,e){t.first().addClass(i.className(this.cssClasses.prefix,this.cssClasses.cursor,!0)).attr("aria-selected","true"),this.trigger("cursorMoved",e)},_removeCursor:function(){this._getCursor().removeClass(i.className(this.cssClasses.prefix,this.cssClasses.cursor,!0)).removeAttr("aria-selected")},_moveCursor:function(t){var e,n,i,s;this.isOpen&&(n=this._getCursor(),e=this._getSuggestions(),this._removeCursor(),-1!==(i=((i=e.index(n)+t)+1)%(e.length+1)-1)?(i<-1&&(i=e.length-1),this._setCursor(s=e.eq(i),!0),this._ensureVisible(s)):this.trigger("cursorRemoved"))},_ensureVisible:function(t){var e,n,i,s;n=(e=t.position().top)+t.height()+parseInt(t.css("margin-top"),10)+parseInt(t.css("margin-bottom"),10),i=this.$menu.scrollTop(),s=this.$menu.height()+parseInt(this.$menu.css("padding-top"),10)+parseInt(this.$menu.css("padding-bottom"),10),e<0?this.$menu.scrollTop(i+e):s<n&&this.$menu.scrollTop(i+(n-s))},close:function(){this.isOpen&&(this.isOpen=!1,this._removeCursor(),this._hide(),this.trigger("closed"))},open:function(){this.isOpen||(this.isOpen=!0,this.isEmpty||this._show(),this.trigger("opened"))},setLanguageDirection:function(t){this.$menu.css("ltr"===t?this.css.ltr:this.css.rtl)},moveCursorUp:function(){this._moveCursor(-1)},moveCursorDown:function(){this._moveCursor(1)},getDatumForSuggestion:function(t){var e=null;return t.length&&(e={raw:o.extractDatum(t),value:o.extractValue(t),datasetName:o.extractDatasetName(t)}),e},getCurrentCursor:function(){return this._getCursor().first()},getDatumForCursor:function(){return this.getDatumForSuggestion(this._getCursor().first())},getDatumForTopSuggestion:function(){return this.getDatumForSuggestion(this._getSuggestions().first())},cursorTopSuggestion:function(){this._setCursor(this._getSuggestions().first(),!1)},update:function(t){i.each(this.datasets,(function(e){e.update(t)}))},empty:function(){i.each(this.datasets,(function(t){t.clear()})),this.isEmpty=!0},isVisible:function(){return this.isOpen&&!this.isEmpty},destroy:function(){this.$menu.off(".aa"),this.$menu=null,i.each(this.datasets,(function(t){t.destroy()}))}}),u.Dataset=o,t.exports=u},50:(t,e,n)=>{"use strict";var i=n(2856),s=n(4910);function r(t){t&&t.el||i.error("EventBus initialized without el"),this.$el=s.element(t.el)}i.mixin(r.prototype,{trigger:function(t,e,n,s){var r=i.Event("autocomplete:"+t);return this.$el.trigger(r,[e,n,s]),r}}),t.exports=r},3109:(t,e,n)=>{"use strict";var i=n(624),s=/\s+/;function r(t,e,n,i){var r;if(!n)return this;for(e=e.split(s),n=i?function(t,e){return t.bind?t.bind(e):function(){t.apply(e,[].slice.call(arguments,0))}}(n,i):n,this._callbacks=this._callbacks||{};r=e.shift();)this._callbacks[r]=this._callbacks[r]||{sync:[],async:[]},this._callbacks[r][t].push(n);return this}function o(t,e,n){return function(){for(var i,s=0,r=t.length;!i&&s<r;s+=1)i=!1===t[s].apply(e,n);return!i}}t.exports={onSync:function(t,e,n){return r.call(this,"sync",t,e,n)},onAsync:function(t,e,n){return r.call(this,"async",t,e,n)},off:function(t){var e;if(!this._callbacks)return this;t=t.split(s);for(;e=t.shift();)delete this._callbacks[e];return this},trigger:function(t){var e,n,r,a,u;if(!this._callbacks)return this;t=t.split(s),r=[].slice.call(arguments,1);for(;(e=t.shift())&&(n=this._callbacks[e]);)a=o(n.sync,this,[e].concat(r)),u=o(n.async,this,[e].concat(r)),a()&&i(u);return this}}},3561:t=>{"use strict";t.exports={wrapper:'<span class="%ROOT%"></span>',dropdown:'<span class="%PREFIX%%DROPDOWN_MENU%"></span>',dataset:'<div class="%PREFIX%%DATASET%-%CLASS%"></div>',suggestions:'<span class="%PREFIX%%SUGGESTIONS%"></span>',suggestion:'<div class="%PREFIX%%SUGGESTION%"></div>'}},2534:(t,e,n)=>{"use strict";var i;i={9:"tab",27:"esc",37:"left",39:"right",13:"enter",38:"up",40:"down"};var s=n(2856),r=n(4910),o=n(3109);function a(t){var e,n,o,a,u,c=this;(t=t||{}).input||s.error("input is missing"),e=s.bind(this._onBlur,this),n=s.bind(this._onFocus,this),o=s.bind(this._onKeydown,this),a=s.bind(this._onInput,this),this.$hint=r.element(t.hint),this.$input=r.element(t.input).on("blur.aa",e).on("focus.aa",n).on("keydown.aa",o),0===this.$hint.length&&(this.setHint=this.getHint=this.clearHint=this.clearHintIfInvalid=s.noop),s.isMsie()?this.$input.on("keydown.aa keypress.aa cut.aa paste.aa",(function(t){i[t.which||t.keyCode]||s.defer(s.bind(c._onInput,c,t))})):this.$input.on("input.aa",a),this.query=this.$input.val(),this.$overflowHelper=(u=this.$input,r.element('<pre aria-hidden="true"></pre>').css({position:"absolute",visibility:"hidden",whiteSpace:"pre",fontFamily:u.css("font-family"),fontSize:u.css("font-size"),fontStyle:u.css("font-style"),fontVariant:u.css("font-variant"),fontWeight:u.css("font-weight"),wordSpacing:u.css("word-spacing"),letterSpacing:u.css("letter-spacing"),textIndent:u.css("text-indent"),textRendering:u.css("text-rendering"),textTransform:u.css("text-transform")}).insertAfter(u))}function u(t){return t.altKey||t.ctrlKey||t.metaKey||t.shiftKey}a.normalizeQuery=function(t){return(t||"").replace(/^\s*/g,"").replace(/\s{2,}/g," ")},s.mixin(a.prototype,o,{_onBlur:function(){this.resetInputValue(),this.$input.removeAttr("aria-activedescendant"),this.trigger("blurred")},_onFocus:function(){this.trigger("focused")},_onKeydown:function(t){var e=i[t.which||t.keyCode];this._managePreventDefault(e,t),e&&this._shouldTrigger(e,t)&&this.trigger(e+"Keyed",t)},_onInput:function(){this._checkInputValue()},_managePreventDefault:function(t,e){var n,i,s;switch(t){case"tab":i=this.getHint(),s=this.getInputValue(),n=i&&i!==s&&!u(e);break;case"up":case"down":n=!u(e);break;default:n=!1}n&&e.preventDefault()},_shouldTrigger:function(t,e){var n;if("tab"===t)n=!u(e);else n=!0;return n},_checkInputValue:function(){var t,e,n,i,s;t=this.getInputValue(),i=t,s=this.query,n=!(!(e=a.normalizeQuery(i)===a.normalizeQuery(s))||!this.query)&&this.query.length!==t.length,this.query=t,e?n&&this.trigger("whitespaceChanged",this.query):this.trigger("queryChanged",this.query)},focus:function(){this.$input.focus()},blur:function(){this.$input.blur()},getQuery:function(){return this.query},setQuery:function(t){this.query=t},getInputValue:function(){return this.$input.val()},setInputValue:function(t,e){void 0===t&&(t=this.query),this.$input.val(t),e?this.clearHint():this._checkInputValue()},expand:function(){this.$input.attr("aria-expanded","true")},collapse:function(){this.$input.attr("aria-expanded","false")},setActiveDescendant:function(t){this.$input.attr("aria-activedescendant",t)},removeActiveDescendant:function(){this.$input.removeAttr("aria-activedescendant")},resetInputValue:function(){this.setInputValue(this.query,!0)},getHint:function(){return this.$hint.val()},setHint:function(t){this.$hint.val(t)},clearHint:function(){this.setHint("")},clearHintIfInvalid:function(){var t,e,n;n=(t=this.getInputValue())!==(e=this.getHint())&&0===e.indexOf(t),""!==t&&n&&!this.hasOverflow()||this.clearHint()},getLanguageDirection:function(){return(this.$input.css("direction")||"ltr").toLowerCase()},hasOverflow:function(){var t=this.$input.width()-2;return this.$overflowHelper.text(this.getInputValue()),this.$overflowHelper.width()>=t},isCursorAtEnd:function(){var t,e,n;return t=this.$input.val().length,e=this.$input[0].selectionStart,s.isNumber(e)?e===t:!document.selection||((n=document.selection.createRange()).moveStart("character",-t),t===n.text.length)},destroy:function(){this.$hint.off(".aa"),this.$input.off(".aa"),this.$hint=this.$input=this.$overflowHelper=null}}),t.exports=a},6549:(t,e,n)=>{"use strict";var i="aaAttrs",s=n(2856),r=n(4910),o=n(50),a=n(2534),u=n(3354),c=n(3561),l=n(1228);function h(t){var e,n;if((t=t||{}).input||s.error("missing input"),this.isActivated=!1,this.debug=!!t.debug,this.autoselect=!!t.autoselect,this.autoselectOnBlur=!!t.autoselectOnBlur,this.openOnFocus=!!t.openOnFocus,this.minLength=s.isNumber(t.minLength)?t.minLength:1,this.autoWidth=void 0===t.autoWidth||!!t.autoWidth,this.clearOnSelected=!!t.clearOnSelected,this.tabAutocomplete=void 0===t.tabAutocomplete||!!t.tabAutocomplete,t.hint=!!t.hint,t.hint&&t.appendTo)throw new Error("[autocomplete.js] hint and appendTo options can't be used at the same time");this.css=t.css=s.mixin({},l,t.appendTo?l.appendTo:{}),this.cssClasses=t.cssClasses=s.mixin({},l.defaultClasses,t.cssClasses||{}),this.cssClasses.prefix=t.cssClasses.formattedPrefix=s.formatPrefix(this.cssClasses.prefix,this.cssClasses.noPrefix),this.listboxId=t.listboxId=[this.cssClasses.root,"listbox",s.getUniqueId()].join("-");var a=function(t){var e,n,o,a;e=r.element(t.input),n=r.element(c.wrapper.replace("%ROOT%",t.cssClasses.root)).css(t.css.wrapper),t.appendTo||"block"!==e.css("display")||"table"!==e.parent().css("display")||n.css("display","table-cell");var u=c.dropdown.replace("%PREFIX%",t.cssClasses.prefix).replace("%DROPDOWN_MENU%",t.cssClasses.dropdownMenu);o=r.element(u).css(t.css.dropdown).attr({role:"listbox",id:t.listboxId}),t.templates&&t.templates.dropdownMenu&&o.html(s.templatify(t.templates.dropdownMenu)());a=e.clone().css(t.css.hint).css(function(t){return{backgroundAttachment:t.css("background-attachment"),backgroundClip:t.css("background-clip"),backgroundColor:t.css("background-color"),backgroundImage:t.css("background-image"),backgroundOrigin:t.css("background-origin"),backgroundPosition:t.css("background-position"),backgroundRepeat:t.css("background-repeat"),backgroundSize:t.css("background-size")}}(e)),a.val("").addClass(s.className(t.cssClasses.prefix,t.cssClasses.hint,!0)).removeAttr("id name placeholder required").prop("readonly",!0).attr({"aria-hidden":"true",autocomplete:"off",spellcheck:"false",tabindex:-1}),a.removeData&&a.removeData();e.data(i,{"aria-autocomplete":e.attr("aria-autocomplete"),"aria-expanded":e.attr("aria-expanded"),"aria-owns":e.attr("aria-owns"),autocomplete:e.attr("autocomplete"),dir:e.attr("dir"),role:e.attr("role"),spellcheck:e.attr("spellcheck"),style:e.attr("style"),type:e.attr("type")}),e.addClass(s.className(t.cssClasses.prefix,t.cssClasses.input,!0)).attr({autocomplete:"off",spellcheck:!1,role:"combobox","aria-autocomplete":t.datasets&&t.datasets[0]&&t.datasets[0].displayKey?"both":"list","aria-expanded":"false","aria-label":t.ariaLabel,"aria-owns":t.listboxId}).css(t.hint?t.css.input:t.css.inputWithNoHint);try{e.attr("dir")||e.attr("dir","auto")}catch(l){}return n=t.appendTo?n.appendTo(r.element(t.appendTo).eq(0)).eq(0):e.wrap(n).parent(),n.prepend(t.hint?a:null).append(o),{wrapper:n,input:e,hint:a,menu:o}}(t);this.$node=a.wrapper;var u=this.$input=a.input;e=a.menu,n=a.hint,t.dropdownMenuContainer&&r.element(t.dropdownMenuContainer).css("position","relative").append(e.css("top","0")),u.on("blur.aa",(function(t){var n=document.activeElement;s.isMsie()&&(e[0]===n||e[0].contains(n))&&(t.preventDefault(),t.stopImmediatePropagation(),s.defer((function(){u.focus()})))})),e.on("mousedown.aa",(function(t){t.preventDefault()})),this.eventBus=t.eventBus||new o({el:u}),this.dropdown=new h.Dropdown({appendTo:t.appendTo,wrapper:this.$node,menu:e,datasets:t.datasets,templates:t.templates,cssClasses:t.cssClasses,minLength:this.minLength}).onSync("suggestionClicked",this._onSuggestionClicked,this).onSync("cursorMoved",this._onCursorMoved,this).onSync("cursorRemoved",this._onCursorRemoved,this).onSync("opened",this._onOpened,this).onSync("closed",this._onClosed,this).onSync("shown",this._onShown,this).onSync("empty",this._onEmpty,this).onSync("redrawn",this._onRedrawn,this).onAsync("datasetRendered",this._onDatasetRendered,this),this.input=new h.Input({input:u,hint:n}).onSync("focused",this._onFocused,this).onSync("blurred",this._onBlurred,this).onSync("enterKeyed",this._onEnterKeyed,this).onSync("tabKeyed",this._onTabKeyed,this).onSync("escKeyed",this._onEscKeyed,this).onSync("upKeyed",this._onUpKeyed,this).onSync("downKeyed",this._onDownKeyed,this).onSync("leftKeyed",this._onLeftKeyed,this).onSync("rightKeyed",this._onRightKeyed,this).onSync("queryChanged",this._onQueryChanged,this).onSync("whitespaceChanged",this._onWhitespaceChanged,this),this._bindKeyboardShortcuts(t),this._setLanguageDirection()}s.mixin(h.prototype,{_bindKeyboardShortcuts:function(t){if(t.keyboardShortcuts){var e=this.$input,n=[];s.each(t.keyboardShortcuts,(function(t){"string"==typeof t&&(t=t.toUpperCase().charCodeAt(0)),n.push(t)})),r.element(document).keydown((function(t){var i=t.target||t.srcElement,s=i.tagName;if(!i.isContentEditable&&"INPUT"!==s&&"SELECT"!==s&&"TEXTAREA"!==s){var r=t.which||t.keyCode;-1!==n.indexOf(r)&&(e.focus(),t.stopPropagation(),t.preventDefault())}}))}},_onSuggestionClicked:function(t,e){var n;(n=this.dropdown.getDatumForSuggestion(e))&&this._select(n,{selectionMethod:"click"})},_onCursorMoved:function(t,e){var n=this.dropdown.getDatumForCursor(),i=this.dropdown.getCurrentCursor().attr("id");this.input.setActiveDescendant(i),n&&(e&&this.input.setInputValue(n.value,!0),this.eventBus.trigger("cursorchanged",n.raw,n.datasetName))},_onCursorRemoved:function(){this.input.resetInputValue(),this._updateHint(),this.eventBus.trigger("cursorremoved")},_onDatasetRendered:function(){this._updateHint(),this.eventBus.trigger("updated")},_onOpened:function(){this._updateHint(),this.input.expand(),this.eventBus.trigger("opened")},_onEmpty:function(){this.eventBus.trigger("empty")},_onRedrawn:function(){this.$node.css("top","0px"),this.$node.css("left","0px");var t=this.$input[0].getBoundingClientRect();this.autoWidth&&this.$node.css("width",t.width+"px");var e=this.$node[0].getBoundingClientRect(),n=t.bottom-e.top;this.$node.css("top",n+"px");var i=t.left-e.left;this.$node.css("left",i+"px"),this.eventBus.trigger("redrawn")},_onShown:function(){this.eventBus.trigger("shown"),this.autoselect&&this.dropdown.cursorTopSuggestion()},_onClosed:function(){this.input.clearHint(),this.input.removeActiveDescendant(),this.input.collapse(),this.eventBus.trigger("closed")},_onFocused:function(){if(this.isActivated=!0,this.openOnFocus){var t=this.input.getQuery();t.length>=this.minLength?this.dropdown.update(t):this.dropdown.empty(),this.dropdown.open()}},_onBlurred:function(){var t,e;t=this.dropdown.getDatumForCursor(),e=this.dropdown.getDatumForTopSuggestion();var n={selectionMethod:"blur"};this.debug||(this.autoselectOnBlur&&t?this._select(t,n):this.autoselectOnBlur&&e?this._select(e,n):(this.isActivated=!1,this.dropdown.empty(),this.dropdown.close()))},_onEnterKeyed:function(t,e){var n,i;n=this.dropdown.getDatumForCursor(),i=this.dropdown.getDatumForTopSuggestion();var s={selectionMethod:"enterKey"};n?(this._select(n,s),e.preventDefault()):this.autoselect&&i&&(this._select(i,s),e.preventDefault())},_onTabKeyed:function(t,e){if(this.tabAutocomplete){var n;(n=this.dropdown.getDatumForCursor())?(this._select(n,{selectionMethod:"tabKey"}),e.preventDefault()):this._autocomplete(!0)}else this.dropdown.close()},_onEscKeyed:function(){this.dropdown.close(),this.input.resetInputValue()},_onUpKeyed:function(){var t=this.input.getQuery();this.dropdown.isEmpty&&t.length>=this.minLength?this.dropdown.update(t):this.dropdown.moveCursorUp(),this.dropdown.open()},_onDownKeyed:function(){var t=this.input.getQuery();this.dropdown.isEmpty&&t.length>=this.minLength?this.dropdown.update(t):this.dropdown.moveCursorDown(),this.dropdown.open()},_onLeftKeyed:function(){"rtl"===this.dir&&this._autocomplete()},_onRightKeyed:function(){"ltr"===this.dir&&this._autocomplete()},_onQueryChanged:function(t,e){this.input.clearHintIfInvalid(),e.length>=this.minLength?this.dropdown.update(e):this.dropdown.empty(),this.dropdown.open(),this._setLanguageDirection()},_onWhitespaceChanged:function(){this._updateHint(),this.dropdown.open()},_setLanguageDirection:function(){var t=this.input.getLanguageDirection();this.dir!==t&&(this.dir=t,this.$node.css("direction",t),this.dropdown.setLanguageDirection(t))},_updateHint:function(){var t,e,n,i,r;(t=this.dropdown.getDatumForTopSuggestion())&&this.dropdown.isVisible()&&!this.input.hasOverflow()?(e=this.input.getInputValue(),n=a.normalizeQuery(e),i=s.escapeRegExChars(n),(r=new RegExp("^(?:"+i+")(.+$)","i").exec(t.value))?this.input.setHint(e+r[1]):this.input.clearHint()):this.input.clearHint()},_autocomplete:function(t){var e,n,i,s;e=this.input.getHint(),n=this.input.getQuery(),i=t||this.input.isCursorAtEnd(),e&&n!==e&&i&&((s=this.dropdown.getDatumForTopSuggestion())&&this.input.setInputValue(s.value),this.eventBus.trigger("autocompleted",s.raw,s.datasetName))},_select:function(t,e){void 0!==t.value&&this.input.setQuery(t.value),this.clearOnSelected?this.setVal(""):this.input.setInputValue(t.value,!0),this._setLanguageDirection(),!1===this.eventBus.trigger("selected",t.raw,t.datasetName,e).isDefaultPrevented()&&(this.dropdown.close(),s.defer(s.bind(this.dropdown.empty,this.dropdown)))},open:function(){if(!this.isActivated){var t=this.input.getInputValue();t.length>=this.minLength?this.dropdown.update(t):this.dropdown.empty()}this.dropdown.open()},close:function(){this.dropdown.close()},setVal:function(t){t=s.toStr(t),this.isActivated?this.input.setInputValue(t):(this.input.setQuery(t),this.input.setInputValue(t,!0)),this._setLanguageDirection()},getVal:function(){return this.input.getQuery()},destroy:function(){this.input.destroy(),this.dropdown.destroy(),function(t,e){var n=t.find(s.className(e.prefix,e.input));s.each(n.data(i),(function(t,e){void 0===t?n.removeAttr(e):n.attr(e,t)})),n.detach().removeClass(s.className(e.prefix,e.input,!0)).insertAfter(t),n.removeData&&n.removeData(i);t.remove()}(this.$node,this.cssClasses),this.$node=null},getWrapper:function(){return this.dropdown.$container[0]}}),h.Dropdown=u,h.Input=a,h.sources=n(8840),t.exports=h},4910:t=>{"use strict";t.exports={element:null}},9149:t=>{"use strict";t.exports=function(t){var e=t.match(/Algolia for JavaScript \((\d+\.)(\d+\.)(\d+)\)/)||t.match(/Algolia for vanilla JavaScript (\d+\.)(\d+\.)(\d+)/);if(e)return[e[1],e[2],e[3]]}},2856:(t,e,n)=>{"use strict";var i,s=n(8820),r=n(4910);function o(t){return t.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")}t.exports={isArray:null,isFunction:null,isObject:null,bind:null,each:null,map:null,mixin:null,isMsie:function(t){if(void 0===t&&(t=navigator.userAgent),/(msie|trident)/i.test(t)){var e=t.match(/(msie |rv:)(\d+(.\d+)?)/i);if(e)return e[2]}return!1},escapeRegExChars:function(t){return t.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")},isNumber:function(t){return"number"==typeof t},toStr:function(t){return null==t?"":t+""},cloneDeep:function(t){var e=this.mixin({},t),n=this;return this.each(e,(function(t,i){t&&(n.isArray(t)?e[i]=[].concat(t):n.isObject(t)&&(e[i]=n.cloneDeep(t)))})),e},error:function(t){throw new Error(t)},every:function(t,e){var n=!0;return t?(this.each(t,(function(i,s){n&&(n=e.call(null,i,s,t)&&n)})),!!n):n},any:function(t,e){var n=!1;return t?(this.each(t,(function(i,s){if(e.call(null,i,s,t))return n=!0,!1})),n):n},getUniqueId:(i=0,function(){return i++}),templatify:function(t){if(this.isFunction(t))return t;var e=r.element(t);return"SCRIPT"===e.prop("tagName")?function(){return e.text()}:function(){return String(t)}},defer:function(t){setTimeout(t,0)},noop:function(){},formatPrefix:function(t,e){return e?"":t+"-"},className:function(t,e,n){return n?t+e:"."+s(t+e,{isIdentifier:!0})},escapeHighlightedString:function(t,e,n){e=e||"<em>";var i=document.createElement("div");i.appendChild(document.createTextNode(e)),n=n||"</em>";var s=document.createElement("div");s.appendChild(document.createTextNode(n));var r=document.createElement("div");return r.appendChild(document.createTextNode(t)),r.innerHTML.replace(RegExp(o(i.innerHTML),"g"),e).replace(RegExp(o(s.innerHTML),"g"),n)}}},9983:(t,e,n)=>{"use strict";var i=n(2856),s=n(533),r=n(9149);var o,a,u=(o=[],a=window.Promise.resolve(),function(t,e){return function(n,s){(function(t,e){return window.Promise.resolve().then((function(){return o.length&&(a=t.search(o),o=[]),a})).then((function(t){if(t)return t.results[e]}))})(t.as,o.push({indexName:t.indexName,query:n,params:e})-1).then((function(t){t&&s(t.hits,t)})).catch((function(t){i.error(t.message)}))}});t.exports=function(t,e){var n=r(t.as._ua);if(n&&n[0]>=3&&n[1]>20){var i="autocomplete.js "+s;-1===t.as._ua.indexOf(i)&&(t.as._ua+="; "+i)}return u(t,e)}},8840:(t,e,n)=>{"use strict";t.exports={hits:n(9983),popularIn:n(4445)}},4445:(t,e,n)=>{"use strict";var i=n(2856),s=n(533),r=n(9149);t.exports=function(t,e,n,o){var a=r(t.as._ua);if(a&&a[0]>=3&&a[1]>20&&((e=e||{}).additionalUA="autocomplete.js "+s),!n.source)return i.error("Missing 'source' key");var u=i.isFunction(n.source)?n.source:function(t){return t[n.source]};if(!n.index)return i.error("Missing 'index' key");var c=n.index;return o=o||{},function(a,l){t.search(a,e,(function(t,a){if(t)i.error(t.message);else{if(a.hits.length>0){var h=a.hits[0],p=i.mixin({hitsPerPage:0},n);delete p.source,delete p.index;var f=r(c.as._ua);return f&&f[0]>=3&&f[1]>20&&(e.additionalUA="autocomplete.js "+s),void c.search(u(h),p,(function(t,e){if(t)i.error(t.message);else{var n=[];if(o.includeAll){var s=o.allTitle||"All departments";n.push(i.mixin({facet:{value:s,count:e.nbHits}},i.cloneDeep(h)))}i.each(e.facets,(function(t,e){i.each(t,(function(t,s){n.push(i.mixin({facet:{facet:e,value:s,count:t}},i.cloneDeep(h)))}))}));for(var r=1;r<a.hits.length;++r)n.push(a.hits[r]);l(n,a)}}))}l([])}}))}}},295:(t,e,n)=>{"use strict";var i=n(6990);n(4910).element=i;var s=n(2856);s.isArray=i.isArray,s.isFunction=i.isFunction,s.isObject=i.isPlainObject,s.bind=i.proxy,s.each=function(t,e){i.each(t,(function(t,n){return e(n,t)}))},s.map=i.map,s.mixin=i.extend,s.Event=i.Event;var r="aaAutocomplete",o=n(6549),a=n(50);function u(t,e,n,u){n=s.isArray(n)?n:[].slice.call(arguments,2);var c=i(t).each((function(t,s){var c=i(s),l=new a({el:c}),h=u||new o({input:c,eventBus:l,dropdownMenuContainer:e.dropdownMenuContainer,hint:void 0===e.hint||!!e.hint,minLength:e.minLength,autoselect:e.autoselect,autoselectOnBlur:e.autoselectOnBlur,tabAutocomplete:e.tabAutocomplete,openOnFocus:e.openOnFocus,templates:e.templates,debug:e.debug,clearOnSelected:e.clearOnSelected,cssClasses:e.cssClasses,datasets:n,keyboardShortcuts:e.keyboardShortcuts,appendTo:e.appendTo,autoWidth:e.autoWidth,ariaLabel:e.ariaLabel||s.getAttribute("aria-label")});c.data(r,h)}));return c.autocomplete={},s.each(["open","close","getVal","setVal","destroy","getWrapper"],(function(t){c.autocomplete[t]=function(){var e,n=arguments;return c.each((function(s,o){var a=i(o).data(r);e=a[t].apply(a,n)})),e}})),c}u.sources=o.sources,u.escapeHighlightedString=s.escapeHighlightedString;var c="autocomplete"in window,l=window.autocomplete;u.noConflict=function(){return c?window.autocomplete=l:delete window.autocomplete,u},t.exports=u},533:t=>{t.exports="0.38.1"},6990:t=>{var e;e=window,t.exports=function(t){var e,n,i=function(){var e,n,i,s,r,o,a=[],u=a.concat,c=a.filter,l=a.slice,h=t.document,p={},f={},d={"column-count":1,columns:1,"font-weight":1,"line-height":1,opacity:1,"z-index":1,zoom:1},g=/^\s*<(\w+|!)[^>]*>/,m=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,v=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,y=/^(?:body|html)$/i,w=/([A-Z])/g,b=["val","css","html","text","data","width","height","offset"],C=["after","prepend","before","append"],x=h.createElement("table"),_=h.createElement("tr"),S={tr:h.createElement("tbody"),tbody:x,thead:x,tfoot:x,td:_,th:_,"*":h.createElement("div")},E=/complete|loaded|interactive/,A=/^[\w-]*$/,$={},T=$.toString,O={},D=h.createElement("div"),N={tabindex:"tabIndex",readonly:"readOnly",for:"htmlFor",class:"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},k=Array.isArray||function(t){return t instanceof Array};function I(t){return null==t?String(t):$[T.call(t)]||"object"}function P(t){return"function"==I(t)}function L(t){return null!=t&&t==t.window}function M(t){return null!=t&&t.nodeType==t.DOCUMENT_NODE}function F(t){return"object"==I(t)}function R(t){return F(t)&&!L(t)&&Object.getPrototypeOf(t)==Object.prototype}function q(t){var e=!!t&&"length"in t&&t.length,n=i.type(t);return"function"!=n&&!L(t)&&("array"==n||0===e||"number"==typeof e&&e>0&&e-1 in t)}function V(t){return c.call(t,(function(t){return null!=t}))}function H(t){return t.length>0?i.fn.concat.apply([],t):t}function B(t){return t.replace(/::/g,"/").replace(/([A-Z]+)([A-Z][a-z])/g,"$1_$2").replace(/([a-z\d])([A-Z])/g,"$1_$2").replace(/_/g,"-").toLowerCase()}function K(t){return t in f?f[t]:f[t]=new RegExp("(^|\\s)"+t+"(\\s|$)")}function z(t,e){return"number"!=typeof e||d[B(t)]?e:e+"px"}function j(t){var e,n;return p[t]||(e=h.createElement(t),h.body.appendChild(e),n=getComputedStyle(e,"").getPropertyValue("display"),e.parentNode.removeChild(e),"none"==n&&(n="block"),p[t]=n),p[t]}function U(t){return"children"in t?l.call(t.children):i.map(t.childNodes,(function(t){if(1==t.nodeType)return t}))}function Q(t,e){var n,i=t?t.length:0;for(n=0;n<i;n++)this[n]=t[n];this.length=i,this.selector=e||""}function W(t,i,s){for(n in i)s&&(R(i[n])||k(i[n]))?(R(i[n])&&!R(t[n])&&(t[n]={}),k(i[n])&&!k(t[n])&&(t[n]=[]),W(t[n],i[n],s)):i[n]!==e&&(t[n]=i[n])}function Z(t,e){return null==e?i(t):i(t).filter(e)}function X(t,e,n,i){return P(e)?e.call(t,n,i):e}function G(t,e,n){null==n?t.removeAttribute(e):t.setAttribute(e,n)}function J(t,n){var i=t.className||"",s=i&&i.baseVal!==e;if(n===e)return s?i.baseVal:i;s?i.baseVal=n:t.className=n}function Y(t){try{return t?"true"==t||"false"!=t&&("null"==t?null:+t+""==t?+t:/^[\[\{]/.test(t)?i.parseJSON(t):t):t}catch(e){return t}}function tt(t,e){e(t);for(var n=0,i=t.childNodes.length;n<i;n++)tt(t.childNodes[n],e)}return O.matches=function(t,e){if(!e||!t||1!==t.nodeType)return!1;var n=t.matches||t.webkitMatchesSelector||t.mozMatchesSelector||t.oMatchesSelector||t.matchesSelector;if(n)return n.call(t,e);var i,s=t.parentNode,r=!s;return r&&(s=D).appendChild(t),i=~O.qsa(s,e).indexOf(t),r&&D.removeChild(t),i},r=function(t){return t.replace(/-+(.)?/g,(function(t,e){return e?e.toUpperCase():""}))},o=function(t){return c.call(t,(function(e,n){return t.indexOf(e)==n}))},O.fragment=function(t,n,s){var r,o,a;return m.test(t)&&(r=i(h.createElement(RegExp.$1))),r||(t.replace&&(t=t.replace(v,"<$1></$2>")),n===e&&(n=g.test(t)&&RegExp.$1),n in S||(n="*"),(a=S[n]).innerHTML=""+t,r=i.each(l.call(a.childNodes),(function(){a.removeChild(this)}))),R(s)&&(o=i(r),i.each(s,(function(t,e){b.indexOf(t)>-1?o[t](e):o.attr(t,e)}))),r},O.Z=function(t,e){return new Q(t,e)},O.isZ=function(t){return t instanceof O.Z},O.init=function(t,n){var s;if(!t)return O.Z();if("string"==typeof t)if("<"==(t=t.trim())[0]&&g.test(t))s=O.fragment(t,RegExp.$1,n),t=null;else{if(n!==e)return i(n).find(t);s=O.qsa(h,t)}else{if(P(t))return i(h).ready(t);if(O.isZ(t))return t;if(k(t))s=V(t);else if(F(t))s=[t],t=null;else if(g.test(t))s=O.fragment(t.trim(),RegExp.$1,n),t=null;else{if(n!==e)return i(n).find(t);s=O.qsa(h,t)}}return O.Z(s,t)},(i=function(t,e){return O.init(t,e)}).extend=function(t){var e,n=l.call(arguments,1);return"boolean"==typeof t&&(e=t,t=n.shift()),n.forEach((function(n){W(t,n,e)})),t},O.qsa=function(t,e){var n,i="#"==e[0],s=!i&&"."==e[0],r=i||s?e.slice(1):e,o=A.test(r);return t.getElementById&&o&&i?(n=t.getElementById(r))?[n]:[]:1!==t.nodeType&&9!==t.nodeType&&11!==t.nodeType?[]:l.call(o&&!i&&t.getElementsByClassName?s?t.getElementsByClassName(r):t.getElementsByTagName(e):t.querySelectorAll(e))},i.contains=h.documentElement.contains?function(t,e){return t!==e&&t.contains(e)}:function(t,e){for(;e&&(e=e.parentNode);)if(e===t)return!0;return!1},i.type=I,i.isFunction=P,i.isWindow=L,i.isArray=k,i.isPlainObject=R,i.isEmptyObject=function(t){var e;for(e in t)return!1;return!0},i.isNumeric=function(t){var e=Number(t),n=typeof t;return null!=t&&"boolean"!=n&&("string"!=n||t.length)&&!isNaN(e)&&isFinite(e)||!1},i.inArray=function(t,e,n){return a.indexOf.call(e,t,n)},i.camelCase=r,i.trim=function(t){return null==t?"":String.prototype.trim.call(t)},i.uuid=0,i.support={},i.expr={},i.noop=function(){},i.map=function(t,e){var n,i,s,r=[];if(q(t))for(i=0;i<t.length;i++)null!=(n=e(t[i],i))&&r.push(n);else for(s in t)null!=(n=e(t[s],s))&&r.push(n);return H(r)},i.each=function(t,e){var n,i;if(q(t)){for(n=0;n<t.length;n++)if(!1===e.call(t[n],n,t[n]))return t}else for(i in t)if(!1===e.call(t[i],i,t[i]))return t;return t},i.grep=function(t,e){return c.call(t,e)},t.JSON&&(i.parseJSON=JSON.parse),i.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),(function(t,e){$["[object "+e+"]"]=e.toLowerCase()})),i.fn={constructor:O.Z,length:0,forEach:a.forEach,reduce:a.reduce,push:a.push,sort:a.sort,splice:a.splice,indexOf:a.indexOf,concat:function(){var t,e,n=[];for(t=0;t<arguments.length;t++)e=arguments[t],n[t]=O.isZ(e)?e.toArray():e;return u.apply(O.isZ(this)?this.toArray():this,n)},map:function(t){return i(i.map(this,(function(e,n){return t.call(e,n,e)})))},slice:function(){return i(l.apply(this,arguments))},ready:function(t){return E.test(h.readyState)&&h.body?t(i):h.addEventListener("DOMContentLoaded",(function(){t(i)}),!1),this},get:function(t){return t===e?l.call(this):this[t>=0?t:t+this.length]},toArray:function(){return this.get()},size:function(){return this.length},remove:function(){return this.each((function(){null!=this.parentNode&&this.parentNode.removeChild(this)}))},each:function(t){return a.every.call(this,(function(e,n){return!1!==t.call(e,n,e)})),this},filter:function(t){return P(t)?this.not(this.not(t)):i(c.call(this,(function(e){return O.matches(e,t)})))},add:function(t,e){return i(o(this.concat(i(t,e))))},is:function(t){return this.length>0&&O.matches(this[0],t)},not:function(t){var n=[];if(P(t)&&t.call!==e)this.each((function(e){t.call(this,e)||n.push(this)}));else{var s="string"==typeof t?this.filter(t):q(t)&&P(t.item)?l.call(t):i(t);this.forEach((function(t){s.indexOf(t)<0&&n.push(t)}))}return i(n)},has:function(t){return this.filter((function(){return F(t)?i.contains(this,t):i(this).find(t).size()}))},eq:function(t){return-1===t?this.slice(t):this.slice(t,+t+1)},first:function(){var t=this[0];return t&&!F(t)?t:i(t)},last:function(){var t=this[this.length-1];return t&&!F(t)?t:i(t)},find:function(t){var e=this;return t?"object"==typeof t?i(t).filter((function(){var t=this;return a.some.call(e,(function(e){return i.contains(e,t)}))})):1==this.length?i(O.qsa(this[0],t)):this.map((function(){return O.qsa(this,t)})):i()},closest:function(t,e){var n=[],s="object"==typeof t&&i(t);return this.each((function(i,r){for(;r&&!(s?s.indexOf(r)>=0:O.matches(r,t));)r=r!==e&&!M(r)&&r.parentNode;r&&n.indexOf(r)<0&&n.push(r)})),i(n)},parents:function(t){for(var e=[],n=this;n.length>0;)n=i.map(n,(function(t){if((t=t.parentNode)&&!M(t)&&e.indexOf(t)<0)return e.push(t),t}));return Z(e,t)},parent:function(t){return Z(o(this.pluck("parentNode")),t)},children:function(t){return Z(this.map((function(){return U(this)})),t)},contents:function(){return this.map((function(){return this.contentDocument||l.call(this.childNodes)}))},siblings:function(t){return Z(this.map((function(t,e){return c.call(U(e.parentNode),(function(t){return t!==e}))})),t)},empty:function(){return this.each((function(){this.innerHTML=""}))},pluck:function(t){return i.map(this,(function(e){return e[t]}))},show:function(){return this.each((function(){"none"==this.style.display&&(this.style.display=""),"none"==getComputedStyle(this,"").getPropertyValue("display")&&(this.style.display=j(this.nodeName))}))},replaceWith:function(t){return this.before(t).remove()},wrap:function(t){var e=P(t);if(this[0]&&!e)var n=i(t).get(0),s=n.parentNode||this.length>1;return this.each((function(r){i(this).wrapAll(e?t.call(this,r):s?n.cloneNode(!0):n)}))},wrapAll:function(t){if(this[0]){var e;for(i(this[0]).before(t=i(t));(e=t.children()).length;)t=e.first();i(t).append(this)}return this},wrapInner:function(t){var e=P(t);return this.each((function(n){var s=i(this),r=s.contents(),o=e?t.call(this,n):t;r.length?r.wrapAll(o):s.append(o)}))},unwrap:function(){return this.parent().each((function(){i(this).replaceWith(i(this).children())})),this},clone:function(){return this.map((function(){return this.cloneNode(!0)}))},hide:function(){return this.css("display","none")},toggle:function(t){return this.each((function(){var n=i(this);(t===e?"none"==n.css("display"):t)?n.show():n.hide()}))},prev:function(t){return i(this.pluck("previousElementSibling")).filter(t||"*")},next:function(t){return i(this.pluck("nextElementSibling")).filter(t||"*")},html:function(t){return 0 in arguments?this.each((function(e){var n=this.innerHTML;i(this).empty().append(X(this,t,e,n))})):0 in this?this[0].innerHTML:null},text:function(t){return 0 in arguments?this.each((function(e){var n=X(this,t,e,this.textContent);this.textContent=null==n?"":""+n})):0 in this?this.pluck("textContent").join(""):null},attr:function(t,i){var s;return"string"!=typeof t||1 in arguments?this.each((function(e){if(1===this.nodeType)if(F(t))for(n in t)G(this,n,t[n]);else G(this,t,X(this,i,e,this.getAttribute(t)))})):0 in this&&1==this[0].nodeType&&null!=(s=this[0].getAttribute(t))?s:e},removeAttr:function(t){return this.each((function(){1===this.nodeType&&t.split(" ").forEach((function(t){G(this,t)}),this)}))},prop:function(t,e){return t=N[t]||t,1 in arguments?this.each((function(n){this[t]=X(this,e,n,this[t])})):this[0]&&this[0][t]},removeProp:function(t){return t=N[t]||t,this.each((function(){delete this[t]}))},data:function(t,n){var i="data-"+t.replace(w,"-$1").toLowerCase(),s=1 in arguments?this.attr(i,n):this.attr(i);return null!==s?Y(s):e},val:function(t){return 0 in arguments?(null==t&&(t=""),this.each((function(e){this.value=X(this,t,e,this.value)}))):this[0]&&(this[0].multiple?i(this[0]).find("option").filter((function(){return this.selected})).pluck("value"):this[0].value)},offset:function(e){if(e)return this.each((function(t){var n=i(this),s=X(this,e,t,n.offset()),r=n.offsetParent().offset(),o={top:s.top-r.top,left:s.left-r.left};"static"==n.css("position")&&(o.position="relative"),n.css(o)}));if(!this.length)return null;if(h.documentElement!==this[0]&&!i.contains(h.documentElement,this[0]))return{top:0,left:0};var n=this[0].getBoundingClientRect();return{left:n.left+t.pageXOffset,top:n.top+t.pageYOffset,width:Math.round(n.width),height:Math.round(n.height)}},css:function(t,e){if(arguments.length<2){var s=this[0];if("string"==typeof t){if(!s)return;return s.style[r(t)]||getComputedStyle(s,"").getPropertyValue(t)}if(k(t)){if(!s)return;var o={},a=getComputedStyle(s,"");return i.each(t,(function(t,e){o[e]=s.style[r(e)]||a.getPropertyValue(e)})),o}}var u="";if("string"==I(t))e||0===e?u=B(t)+":"+z(t,e):this.each((function(){this.style.removeProperty(B(t))}));else for(n in t)t[n]||0===t[n]?u+=B(n)+":"+z(n,t[n])+";":this.each((function(){this.style.removeProperty(B(n))}));return this.each((function(){this.style.cssText+=";"+u}))},index:function(t){return t?this.indexOf(i(t)[0]):this.parent().children().indexOf(this[0])},hasClass:function(t){return!!t&&a.some.call(this,(function(t){return this.test(J(t))}),K(t))},addClass:function(t){return t?this.each((function(e){if("className"in this){s=[];var n=J(this);X(this,t,e,n).split(/\s+/g).forEach((function(t){i(this).hasClass(t)||s.push(t)}),this),s.length&&J(this,n+(n?" ":"")+s.join(" "))}})):this},removeClass:function(t){return this.each((function(n){if("className"in this){if(t===e)return J(this,"");s=J(this),X(this,t,n,s).split(/\s+/g).forEach((function(t){s=s.replace(K(t)," ")})),J(this,s.trim())}}))},toggleClass:function(t,n){return t?this.each((function(s){var r=i(this);X(this,t,s,J(this)).split(/\s+/g).forEach((function(t){(n===e?!r.hasClass(t):n)?r.addClass(t):r.removeClass(t)}))})):this},scrollTop:function(t){if(this.length){var n="scrollTop"in this[0];return t===e?n?this[0].scrollTop:this[0].pageYOffset:this.each(n?function(){this.scrollTop=t}:function(){this.scrollTo(this.scrollX,t)})}},scrollLeft:function(t){if(this.length){var n="scrollLeft"in this[0];return t===e?n?this[0].scrollLeft:this[0].pageXOffset:this.each(n?function(){this.scrollLeft=t}:function(){this.scrollTo(t,this.scrollY)})}},position:function(){if(this.length){var t=this[0],e=this.offsetParent(),n=this.offset(),s=y.test(e[0].nodeName)?{top:0,left:0}:e.offset();return n.top-=parseFloat(i(t).css("margin-top"))||0,n.left-=parseFloat(i(t).css("margin-left"))||0,s.top+=parseFloat(i(e[0]).css("border-top-width"))||0,s.left+=parseFloat(i(e[0]).css("border-left-width"))||0,{top:n.top-s.top,left:n.left-s.left}}},offsetParent:function(){return this.map((function(){for(var t=this.offsetParent||h.body;t&&!y.test(t.nodeName)&&"static"==i(t).css("position");)t=t.offsetParent;return t}))}},i.fn.detach=i.fn.remove,["width","height"].forEach((function(t){var n=t.replace(/./,(function(t){return t[0].toUpperCase()}));i.fn[t]=function(s){var r,o=this[0];return s===e?L(o)?o["inner"+n]:M(o)?o.documentElement["scroll"+n]:(r=this.offset())&&r[t]:this.each((function(e){(o=i(this)).css(t,X(this,s,e,o[t]()))}))}})),C.forEach((function(n,s){var r=s%2;i.fn[n]=function(){var n,o,a=i.map(arguments,(function(t){var s=[];return"array"==(n=I(t))?(t.forEach((function(t){return t.nodeType!==e?s.push(t):i.zepto.isZ(t)?s=s.concat(t.get()):void(s=s.concat(O.fragment(t)))})),s):"object"==n||null==t?t:O.fragment(t)})),u=this.length>1;return a.length<1?this:this.each((function(e,n){o=r?n:n.parentNode,n=0==s?n.nextSibling:1==s?n.firstChild:2==s?n:null;var c=i.contains(h.documentElement,o);a.forEach((function(e){if(u)e=e.cloneNode(!0);else if(!o)return i(e).remove();o.insertBefore(e,n),c&&tt(e,(function(e){if(!(null==e.nodeName||"SCRIPT"!==e.nodeName.toUpperCase()||e.type&&"text/javascript"!==e.type||e.src)){var n=e.ownerDocument?e.ownerDocument.defaultView:t;n.eval.call(n,e.innerHTML)}}))}))}))},i.fn[r?n+"To":"insert"+(s?"Before":"After")]=function(t){return i(t)[n](this),this}})),O.Z.prototype=Q.prototype=i.fn,O.uniq=o,O.deserializeValue=Y,i.zepto=O,i}();return function(e){var n,i=1,s=Array.prototype.slice,r=e.isFunction,o=function(t){return"string"==typeof t},a={},u={},c="onfocusin"in t,l={focus:"focusin",blur:"focusout"},h={mouseenter:"mouseover",mouseleave:"mouseout"};function p(t){return t._zid||(t._zid=i++)}function f(t,e,n,i){if((e=d(e)).ns)var s=g(e.ns);return(a[p(t)]||[]).filter((function(t){return t&&(!e.e||t.e==e.e)&&(!e.ns||s.test(t.ns))&&(!n||p(t.fn)===p(n))&&(!i||t.sel==i)}))}function d(t){var e=(""+t).split(".");return{e:e[0],ns:e.slice(1).sort().join(" ")}}function g(t){return new RegExp("(?:^| )"+t.replace(" "," .* ?")+"(?: |$)")}function m(t,e){return t.del&&!c&&t.e in l||!!e}function v(t){return h[t]||c&&l[t]||t}function y(t,i,s,r,o,u,c){var l=p(t),f=a[l]||(a[l]=[]);i.split(/\s/).forEach((function(i){if("ready"==i)return e(document).ready(s);var a=d(i);a.fn=s,a.sel=o,a.e in h&&(s=function(t){var n=t.relatedTarget;if(!n||n!==this&&!e.contains(this,n))return a.fn.apply(this,arguments)}),a.del=u;var l=u||s;a.proxy=function(e){if(!(e=S(e)).isImmediatePropagationStopped()){try{var i=Object.getOwnPropertyDescriptor(e,"data");i&&!i.writable||(e.data=r)}catch(e){}var s=l.apply(t,e._args==n?[e]:[e].concat(e._args));return!1===s&&(e.preventDefault(),e.stopPropagation()),s}},a.i=f.length,f.push(a),"addEventListener"in t&&t.addEventListener(v(a.e),a.proxy,m(a,c))}))}function w(t,e,n,i,s){var r=p(t);(e||"").split(/\s/).forEach((function(e){f(t,e,n,i).forEach((function(e){delete a[r][e.i],"removeEventListener"in t&&t.removeEventListener(v(e.e),e.proxy,m(e,s))}))}))}u.click=u.mousedown=u.mouseup=u.mousemove="MouseEvents",e.event={add:y,remove:w},e.proxy=function(t,n){var i=2 in arguments&&s.call(arguments,2);if(r(t)){var a=function(){return t.apply(n,i?i.concat(s.call(arguments)):arguments)};return a._zid=p(t),a}if(o(n))return i?(i.unshift(t[n],t),e.proxy.apply(null,i)):e.proxy(t[n],t);throw new TypeError("expected function")},e.fn.bind=function(t,e,n){return this.on(t,e,n)},e.fn.unbind=function(t,e){return this.off(t,e)},e.fn.one=function(t,e,n,i){return this.on(t,e,n,i,1)};var b=function(){return!0},C=function(){return!1},x=/^([A-Z]|returnValue$|layer[XY]$|webkitMovement[XY]$)/,_={preventDefault:"isDefaultPrevented",stopImmediatePropagation:"isImmediatePropagationStopped",stopPropagation:"isPropagationStopped"};function S(t,i){if(i||!t.isDefaultPrevented){i||(i=t),e.each(_,(function(e,n){var s=i[e];t[e]=function(){return this[n]=b,s&&s.apply(i,arguments)},t[n]=C}));try{t.timeStamp||(t.timeStamp=Date.now())}catch(s){}(i.defaultPrevented!==n?i.defaultPrevented:"returnValue"in i?!1===i.returnValue:i.getPreventDefault&&i.getPreventDefault())&&(t.isDefaultPrevented=b)}return t}function E(t){var e,i={originalEvent:t};for(e in t)x.test(e)||t[e]===n||(i[e]=t[e]);return S(i,t)}e.fn.delegate=function(t,e,n){return this.on(e,t,n)},e.fn.undelegate=function(t,e,n){return this.off(e,t,n)},e.fn.live=function(t,n){return e(document.body).delegate(this.selector,t,n),this},e.fn.die=function(t,n){return e(document.body).undelegate(this.selector,t,n),this},e.fn.on=function(t,i,a,u,c){var l,h,p=this;return t&&!o(t)?(e.each(t,(function(t,e){p.on(t,i,a,e,c)})),p):(o(i)||r(u)||!1===u||(u=a,a=i,i=n),u!==n&&!1!==a||(u=a,a=n),!1===u&&(u=C),p.each((function(n,r){c&&(l=function(t){return w(r,t.type,u),u.apply(this,arguments)}),i&&(h=function(t){var n,o=e(t.target).closest(i,r).get(0);if(o&&o!==r)return n=e.extend(E(t),{currentTarget:o,liveFired:r}),(l||u).apply(o,[n].concat(s.call(arguments,1)))}),y(r,t,u,a,i,h||l)})))},e.fn.off=function(t,i,s){var a=this;return t&&!o(t)?(e.each(t,(function(t,e){a.off(t,i,e)})),a):(o(i)||r(s)||!1===s||(s=i,i=n),!1===s&&(s=C),a.each((function(){w(this,t,s,i)})))},e.fn.trigger=function(t,n){return(t=o(t)||e.isPlainObject(t)?e.Event(t):S(t))._args=n,this.each((function(){t.type in l&&"function"==typeof this[t.type]?this[t.type]():"dispatchEvent"in this?this.dispatchEvent(t):e(this).triggerHandler(t,n)}))},e.fn.triggerHandler=function(t,n){var i,s;return this.each((function(r,a){(i=E(o(t)?e.Event(t):t))._args=n,i.target=a,e.each(f(a,t.type||t),(function(t,e){if(s=e.proxy(i),i.isImmediatePropagationStopped())return!1}))})),s},"focusin focusout focus blur load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select keydown keypress keyup error".split(" ").forEach((function(t){e.fn[t]=function(e){return 0 in arguments?this.bind(t,e):this.trigger(t)}})),e.Event=function(t,e){o(t)||(t=(e=t).type);var n=document.createEvent(u[t]||"Events"),i=!0;if(e)for(var s in e)"bubbles"==s?i=!!e[s]:n[s]=e[s];return n.initEvent(t,i,!0),S(n)}}(i),n=[],i.fn.remove=function(){return this.each((function(){this.parentNode&&("IMG"===this.tagName&&(n.push(this),this.src="data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=",e&&clearTimeout(e),e=setTimeout((function(){n=[]}),6e4)),this.parentNode.removeChild(this))}))},function(t){var e={},n=t.fn.data,i=t.camelCase,s=t.expando="Zepto"+ +new Date,r=[];function o(r,o){var u=r[s],c=u&&e[u];if(void 0===o)return c||a(r);if(c){if(o in c)return c[o];var l=i(o);if(l in c)return c[l]}return n.call(t(r),o)}function a(n,r,o){var a=n[s]||(n[s]=++t.uuid),c=e[a]||(e[a]=u(n));return void 0!==r&&(c[i(r)]=o),c}function u(e){var n={};return t.each(e.attributes||r,(function(e,s){0==s.name.indexOf("data-")&&(n[i(s.name.replace("data-",""))]=t.zepto.deserializeValue(s.value))})),n}t.fn.data=function(e,n){return void 0===n?t.isPlainObject(e)?this.each((function(n,i){t.each(e,(function(t,e){a(i,t,e)}))})):0 in this?o(this[0],e):void 0:this.each((function(){a(this,e,n)}))},t.data=function(e,n,i){return t(e).data(n,i)},t.hasData=function(n){var i=n[s],r=i&&e[i];return!!r&&!t.isEmptyObject(r)},t.fn.removeData=function(n){return"string"==typeof n&&(n=n.split(/\s+/)),this.each((function(){var r=this[s],o=r&&e[r];o&&t.each(n||o,(function(t){delete o[n?i(this):t]}))}))},["remove","empty"].forEach((function(e){var n=t.fn[e];t.fn[e]=function(){var t=this.find("*");return"remove"===e&&(t=t.add(this)),t.removeData(),n.call(this)}}))}(i),i}(e)},8820:t=>{"use strict";var e={}.hasOwnProperty,n=/[ -,\.\/:-@\[-\^`\{-~]/,i=/[ -,\.\/:-@\[\]\^`\{-~]/,s=/(^|\\+)?(\\[A-F0-9]{1,6})\x20(?![a-fA-F0-9\x20])/g,r=function t(r,o){"single"!=(o=function(t,n){if(!t)return n;var i={};for(var s in n)i[s]=e.call(t,s)?t[s]:n[s];return i}(o,t.options)).quotes&&"double"!=o.quotes&&(o.quotes="single");for(var a="double"==o.quotes?'"':"'",u=o.isIdentifier,c=r.charAt(0),l="",h=0,p=r.length;h<p;){var f=r.charAt(h++),d=f.charCodeAt(),g=void 0;if(d<32||d>126){if(d>=55296&&d<=56319&&h<p){var m=r.charCodeAt(h++);56320==(64512&m)?d=((1023&d)<<10)+(1023&m)+65536:h--}g="\\"+d.toString(16).toUpperCase()+" "}else g=o.escapeEverything?n.test(f)?"\\"+f:"\\"+d.toString(16).toUpperCase()+" ":/[\t\n\f\r\x0B]/.test(f)?"\\"+d.toString(16).toUpperCase()+" ":"\\"==f||!u&&('"'==f&&a==f||"'"==f&&a==f)||u&&i.test(f)?"\\"+f:f;l+=g}return u&&(/^-[-\d]/.test(l)?l="\\-"+l.slice(1):/\d/.test(c)&&(l="\\3"+c+" "+l.slice(1))),l=l.replace(s,(function(t,e,n){return e&&e.length%2?t:(e||"")+n})),!u&&o.wrap?a+l+a:l};r.options={escapeEverything:!1,isIdentifier:!1,quotes:"single",wrap:!1},r.version="3.0.0",t.exports=r},624:(t,e,n)=>{"use strict";var i,s,r,o=[n(5525),n(4785),n(8291),n(2709),n(2506),n(9176)],a=-1,u=[],c=!1;function l(){i&&s&&(i=!1,s.length?u=s.concat(u):a=-1,u.length&&h())}function h(){if(!i){c=!1,i=!0;for(var t=u.length,e=setTimeout(l);t;){for(s=u,u=[];s&&++a<t;)s[a].run();a=-1,t=u.length}s=null,a=-1,i=!1,clearTimeout(e)}}for(var p=-1,f=o.length;++p<f;)if(o[p]&&o[p].test&&o[p].test()){r=o[p].install(h);break}function d(t,e){this.fun=t,this.array=e}d.prototype.run=function(){var t=this.fun,e=this.array;switch(e.length){case 0:return t();case 1:return t(e[0]);case 2:return t(e[0],e[1]);case 3:return t(e[0],e[1],e[2]);default:return t.apply(null,e)}},t.exports=function(t){var e=new Array(arguments.length-1);if(arguments.length>1)for(var n=1;n<arguments.length;n++)e[n-1]=arguments[n];u.push(new d(t,e)),c||i||(c=!0,r())}},2709:(t,e,n)=>{"use strict";e.test=function(){return!n.g.setImmediate&&void 0!==n.g.MessageChannel},e.install=function(t){var e=new n.g.MessageChannel;return e.port1.onmessage=t,function(){e.port2.postMessage(0)}}},8291:(t,e,n)=>{"use strict";var i=n.g.MutationObserver||n.g.WebKitMutationObserver;e.test=function(){return i},e.install=function(t){var e=0,s=new i(t),r=n.g.document.createTextNode("");return s.observe(r,{characterData:!0}),function(){r.data=e=++e%2}}},4785:(t,e,n)=>{"use strict";e.test=function(){return"function"==typeof n.g.queueMicrotask},e.install=function(t){return function(){n.g.queueMicrotask(t)}}},2506:(t,e,n)=>{"use strict";e.test=function(){return"document"in n.g&&"onreadystatechange"in n.g.document.createElement("script")},e.install=function(t){return function(){var e=n.g.document.createElement("script");return e.onreadystatechange=function(){t(),e.onreadystatechange=null,e.parentNode.removeChild(e),e=null},n.g.document.documentElement.appendChild(e),t}}},9176:(t,e)=>{"use strict";e.test=function(){return!0},e.install=function(t){return function(){setTimeout(t,0)}}}}]); \ No newline at end of file diff --git a/assets/js/8443.06003310.js.LICENSE.txt b/assets/js/8443.06003310.js.LICENSE.txt new file mode 100644 index 0000000000..4f7ccd8a76 --- /dev/null +++ b/assets/js/8443.06003310.js.LICENSE.txt @@ -0,0 +1 @@ +/*! https://mths.be/cssesc v3.0.0 by @mathias */ diff --git a/assets/js/8599c685.1d0a26a9.js b/assets/js/8599c685.1d0a26a9.js new file mode 100644 index 0000000000..3ed41481ea --- /dev/null +++ b/assets/js/8599c685.1d0a26a9.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklazyvim=self.webpackChunklazyvim||[]).push([[5819],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>d});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function l(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function i(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var s=r.createContext({}),u=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},c=function(e){var t=u(e.components);return r.createElement(s.Provider,{value:t},e.children)},p="mdxType",f={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,s=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),p=u(n),m=a,d=p["".concat(s,".").concat(m)]||p[m]||f[m]||o;return n?r.createElement(d,l(l({ref:t},c),{},{components:n})):r.createElement(d,l({ref:t},c))}));function d(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,l=new Array(o);l[0]=m;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[p]="string"==typeof e?e:a,l[1]=i;for(var u=2;u<o;u++)l[u]=n[u];return r.createElement.apply(null,l)}return r.createElement.apply(null,n)}m.displayName="MDXCreateElement"},5162:(e,t,n)=>{n.d(t,{Z:()=>l});var r=n(7294),a=n(6010);const o="tabItem_Ymn6";function l(e){let{children:t,hidden:n,className:l}=e;return r.createElement("div",{role:"tabpanel",className:(0,a.Z)(o,l),hidden:n},t)}},4866:(e,t,n)=>{n.d(t,{Z:()=>E});var r=n(7462),a=n(7294),o=n(6010),l=n(2466),i=n(6550),s=n(1980),u=n(7392),c=n(12);function p(e){return function(e){return a.Children.map(e,(e=>{if(!e||(0,a.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:t,label:n,attributes:r,default:a}}=e;return{value:t,label:n,attributes:r,default:a}}))}function f(e){const{values:t,children:n}=e;return(0,a.useMemo)((()=>{const e=t??p(n);return function(e){const t=(0,u.l)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[t,n])}function m(e){let{value:t,tabValues:n}=e;return n.some((e=>e.value===t))}function d(e){let{queryString:t=!1,groupId:n}=e;const r=(0,i.k6)(),o=function(e){let{queryString:t=!1,groupId:n}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!n)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return n??null}({queryString:t,groupId:n});return[(0,s._X)(o),(0,a.useCallback)((e=>{if(!o)return;const t=new URLSearchParams(r.location.search);t.set(o,e),r.replace({...r.location,search:t.toString()})}),[o,r])]}function g(e){const{defaultValue:t,queryString:n=!1,groupId:r}=e,o=f(e),[l,i]=(0,a.useState)((()=>function(e){let{defaultValue:t,tabValues:n}=e;if(0===n.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(t){if(!m({value:t,tabValues:n}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${n.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const r=n.find((e=>e.default))??n[0];if(!r)throw new Error("Unexpected error: 0 tabValues");return r.value}({defaultValue:t,tabValues:o}))),[s,u]=d({queryString:n,groupId:r}),[p,g]=function(e){let{groupId:t}=e;const n=function(e){return e?`docusaurus.tab.${e}`:null}(t),[r,o]=(0,c.Nk)(n);return[r,(0,a.useCallback)((e=>{n&&o.set(e)}),[n,o])]}({groupId:r}),b=(()=>{const e=s??p;return m({value:e,tabValues:o})?e:null})();(0,a.useLayoutEffect)((()=>{b&&i(b)}),[b]);return{selectedValue:l,selectValue:(0,a.useCallback)((e=>{if(!m({value:e,tabValues:o}))throw new Error(`Can't select invalid tab value=${e}`);i(e),u(e),g(e)}),[u,g,o]),tabValues:o}}var b=n(2389);const h="tabList__CuJ",y="tabItem_LNqP";function v(e){let{className:t,block:n,selectedValue:i,selectValue:s,tabValues:u}=e;const c=[],{blockElementScrollPositionUntilNextRender:p}=(0,l.o5)(),f=e=>{const t=e.currentTarget,n=c.indexOf(t),r=u[n].value;r!==i&&(p(t),s(r))},m=e=>{let t=null;switch(e.key){case"Enter":f(e);break;case"ArrowRight":{const n=c.indexOf(e.currentTarget)+1;t=c[n]??c[0];break}case"ArrowLeft":{const n=c.indexOf(e.currentTarget)-1;t=c[n]??c[c.length-1];break}}t?.focus()};return a.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,o.Z)("tabs",{"tabs--block":n},t)},u.map((e=>{let{value:t,label:n,attributes:l}=e;return a.createElement("li",(0,r.Z)({role:"tab",tabIndex:i===t?0:-1,"aria-selected":i===t,key:t,ref:e=>c.push(e),onKeyDown:m,onClick:f},l,{className:(0,o.Z)("tabs__item",y,l?.className,{"tabs__item--active":i===t})}),n??t)})))}function k(e){let{lazy:t,children:n,selectedValue:r}=e;const o=(Array.isArray(n)?n:[n]).filter(Boolean);if(t){const e=o.find((e=>e.props.value===r));return e?(0,a.cloneElement)(e,{className:"margin-top--md"}):null}return a.createElement("div",{className:"margin-top--md"},o.map(((e,t)=>(0,a.cloneElement)(e,{key:t,hidden:e.props.value!==r}))))}function w(e){const t=g(e);return a.createElement("div",{className:(0,o.Z)("tabs-container",h)},a.createElement(v,(0,r.Z)({},e,t)),a.createElement(k,(0,r.Z)({},e,t)))}function E(e){const t=(0,b.Z)();return a.createElement(w,(0,r.Z)({key:String(t)},e))}},3549:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>s,default:()=>m,frontMatter:()=>i,metadata:()=>u,toc:()=>p});var r=n(7462),a=(n(7294),n(3905)),o=n(4866),l=n(5162);const i={},s="Eslint",u={unversionedId:"extras/linting/eslint",id:"extras/linting/eslint",title:"Eslint",description:"You can enable the extra with the :LazyExtras command.",source:"@site/docs/extras/linting/eslint.md",sourceDirName:"extras/linting",slug:"/extras/linting/eslint",permalink:"/extras/linting/eslint",draft:!1,editUrl:"https://github.com/LazyVim/lazyvim.github.io/tree/main/docs/extras/linting/eslint.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Zig",permalink:"/extras/lang/zig"},next:{title:"Neoconf",permalink:"/extras/lsp/neoconf"}},c={},p=[{value:"Options",id:"options",level:3},{value:"nvim-lspconfig",id:"nvim-lspconfig",level:2}],f={toc:p};function m(e){let{components:t,...n}=e;return(0,a.kt)("wrapper",(0,r.Z)({},f,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"eslint"},"Eslint"),(0,a.kt)("admonition",{type:"info"},(0,a.kt)("p",{parentName:"admonition"},"You can enable the extra with the ",(0,a.kt)("inlineCode",{parentName:"p"},":LazyExtras")," command.\nPlugins marked as optional will only be configured if they are installed.")),(0,a.kt)("h3",{id:"options"},"Options"),(0,a.kt)("p",null,"Additional options for this extra can be configured in your ",(0,a.kt)("a",{parentName:"p",href:"/configuration/general#options"},"lua/config/options.lua")," file:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua",metastring:'title="lua/config/options.lua"',title:'"lua/config/options.lua"'},"-- Set to false to disable auto format\nvim.g.lazyvim_eslint_auto_format = true\n")),(0,a.kt)("p",null,"Below you can find a list of included plugins and their default settings."),(0,a.kt)("admonition",{type:"caution"},(0,a.kt)("p",{parentName:"admonition"},"You don't need to copy the default settings to your config.\nThey are only shown here for reference.")),(0,a.kt)("h2",{id:"nvim-lspconfig"},(0,a.kt)("a",{parentName:"h2",href:"https://github.com/neovim/nvim-lspconfig"},"nvim-lspconfig")),(0,a.kt)(o.Z,{mdxType:"Tabs"},(0,a.kt)(l.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'opts = {\n ---@type table<string, vim.lsp.Config>\n servers = {\n eslint = {\n settings = {\n -- helps eslint find the eslintrc when it\'s placed in a subfolder instead of the cwd root\n workingDirectories = { mode = "auto" },\n format = auto_format,\n },\n },\n },\n setup = {\n eslint = function()\n if not auto_format then\n return\n end\n\n local formatter = LazyVim.lsp.formatter({\n name = "eslint: lsp",\n primary = false,\n priority = 200,\n filter = "eslint",\n })\n\n -- register the formatter with LazyVim\n LazyVim.format.register(formatter)\n end,\n },\n}\n'))),(0,a.kt)(l.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "neovim/nvim-lspconfig",\n -- other settings removed for brevity\n opts = {\n ---@type table<string, vim.lsp.Config>\n servers = {\n eslint = {\n settings = {\n -- helps eslint find the eslintrc when it\'s placed in a subfolder instead of the cwd root\n workingDirectories = { mode = "auto" },\n format = auto_format,\n },\n },\n },\n setup = {\n eslint = function()\n if not auto_format then\n return\n end\n\n local formatter = LazyVim.lsp.formatter({\n name = "eslint: lsp",\n primary = false,\n priority = 200,\n filter = "eslint",\n })\n\n -- register the formatter with LazyVim\n LazyVim.format.register(formatter)\n end,\n },\n },\n}\n')))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/8b3d7d9d.6e9ee3b6.js b/assets/js/8b3d7d9d.6e9ee3b6.js new file mode 100644 index 0000000000..2166bcb387 --- /dev/null +++ b/assets/js/8b3d7d9d.6e9ee3b6.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklazyvim=self.webpackChunklazyvim||[]).push([[2171],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>f});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function l(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function i(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var u=r.createContext({}),s=function(e){var t=r.useContext(u),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},c=function(e){var t=s(e.components);return r.createElement(u.Provider,{value:t},e.children)},d="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,u=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),d=s(n),m=a,f=d["".concat(u,".").concat(m)]||d[m]||p[m]||o;return n?r.createElement(f,l(l({ref:t},c),{},{components:n})):r.createElement(f,l({ref:t},c))}));function f(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,l=new Array(o);l[0]=m;var i={};for(var u in t)hasOwnProperty.call(t,u)&&(i[u]=t[u]);i.originalType=e,i[d]="string"==typeof e?e:a,l[1]=i;for(var s=2;s<o;s++)l[s]=n[s];return r.createElement.apply(null,l)}return r.createElement.apply(null,n)}m.displayName="MDXCreateElement"},5162:(e,t,n)=>{n.d(t,{Z:()=>l});var r=n(7294),a=n(6010);const o="tabItem_Ymn6";function l(e){let{children:t,hidden:n,className:l}=e;return r.createElement("div",{role:"tabpanel",className:(0,a.Z)(o,l),hidden:n},t)}},4866:(e,t,n)=>{n.d(t,{Z:()=>w});var r=n(7462),a=n(7294),o=n(6010),l=n(2466),i=n(6550),u=n(1980),s=n(7392),c=n(12);function d(e){return function(e){return a.Children.map(e,(e=>{if(!e||(0,a.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:t,label:n,attributes:r,default:a}}=e;return{value:t,label:n,attributes:r,default:a}}))}function p(e){const{values:t,children:n}=e;return(0,a.useMemo)((()=>{const e=t??d(n);return function(e){const t=(0,s.l)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[t,n])}function m(e){let{value:t,tabValues:n}=e;return n.some((e=>e.value===t))}function f(e){let{queryString:t=!1,groupId:n}=e;const r=(0,i.k6)(),o=function(e){let{queryString:t=!1,groupId:n}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!n)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return n??null}({queryString:t,groupId:n});return[(0,u._X)(o),(0,a.useCallback)((e=>{if(!o)return;const t=new URLSearchParams(r.location.search);t.set(o,e),r.replace({...r.location,search:t.toString()})}),[o,r])]}function b(e){const{defaultValue:t,queryString:n=!1,groupId:r}=e,o=p(e),[l,i]=(0,a.useState)((()=>function(e){let{defaultValue:t,tabValues:n}=e;if(0===n.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(t){if(!m({value:t,tabValues:n}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${n.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const r=n.find((e=>e.default))??n[0];if(!r)throw new Error("Unexpected error: 0 tabValues");return r.value}({defaultValue:t,tabValues:o}))),[u,s]=f({queryString:n,groupId:r}),[d,b]=function(e){let{groupId:t}=e;const n=function(e){return e?`docusaurus.tab.${e}`:null}(t),[r,o]=(0,c.Nk)(n);return[r,(0,a.useCallback)((e=>{n&&o.set(e)}),[n,o])]}({groupId:r}),h=(()=>{const e=u??d;return m({value:e,tabValues:o})?e:null})();(0,a.useLayoutEffect)((()=>{h&&i(h)}),[h]);return{selectedValue:l,selectValue:(0,a.useCallback)((e=>{if(!m({value:e,tabValues:o}))throw new Error(`Can't select invalid tab value=${e}`);i(e),s(e),b(e)}),[s,b,o]),tabValues:o}}var h=n(2389);const y="tabList__CuJ",v="tabItem_LNqP";function g(e){let{className:t,block:n,selectedValue:i,selectValue:u,tabValues:s}=e;const c=[],{blockElementScrollPositionUntilNextRender:d}=(0,l.o5)(),p=e=>{const t=e.currentTarget,n=c.indexOf(t),r=s[n].value;r!==i&&(d(t),u(r))},m=e=>{let t=null;switch(e.key){case"Enter":p(e);break;case"ArrowRight":{const n=c.indexOf(e.currentTarget)+1;t=c[n]??c[0];break}case"ArrowLeft":{const n=c.indexOf(e.currentTarget)-1;t=c[n]??c[c.length-1];break}}t?.focus()};return a.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,o.Z)("tabs",{"tabs--block":n},t)},s.map((e=>{let{value:t,label:n,attributes:l}=e;return a.createElement("li",(0,r.Z)({role:"tab",tabIndex:i===t?0:-1,"aria-selected":i===t,key:t,ref:e=>c.push(e),onKeyDown:m,onClick:p},l,{className:(0,o.Z)("tabs__item",v,l?.className,{"tabs__item--active":i===t})}),n??t)})))}function x(e){let{lazy:t,children:n,selectedValue:r}=e;const o=(Array.isArray(n)?n:[n]).filter(Boolean);if(t){const e=o.find((e=>e.props.value===r));return e?(0,a.cloneElement)(e,{className:"margin-top--md"}):null}return a.createElement("div",{className:"margin-top--md"},o.map(((e,t)=>(0,a.cloneElement)(e,{key:t,hidden:e.props.value!==r}))))}function k(e){const t=b(e);return a.createElement("div",{className:(0,o.Z)("tabs-container",y)},a.createElement(g,(0,r.Z)({},e,t)),a.createElement(x,(0,r.Z)({},e,t)))}function w(e){const t=(0,h.Z)();return a.createElement(k,(0,r.Z)({key:String(t)},e))}},1601:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>u,default:()=>m,frontMatter:()=>i,metadata:()=>s,toc:()=>d});var r=n(7462),a=(n(7294),n(3905)),o=n(4866),l=n(5162);const i={},u="Treesitter-context",s={unversionedId:"extras/ui/treesitter-context",id:"extras/ui/treesitter-context",title:"Treesitter-context",description:"You can enable the extra with the :LazyExtras command.",source:"@site/docs/extras/ui/treesitter-context.md",sourceDirName:"extras/ui",slug:"/extras/ui/treesitter-context",permalink:"/extras/ui/treesitter-context",draft:!1,editUrl:"https://github.com/LazyVim/lazyvim.github.io/tree/main/docs/extras/ui/treesitter-context.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Smear-cursor",permalink:"/extras/ui/smear-cursor"},next:{title:"Chezmoi",permalink:"/extras/util/chezmoi"}},c={},d=[{value:"nvim-treesitter-context",id:"nvim-treesitter-context",level:2}],p={toc:d};function m(e){let{components:t,...n}=e;return(0,a.kt)("wrapper",(0,r.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"treesitter-context"},(0,a.kt)("inlineCode",{parentName:"h1"},"Treesitter-context")),(0,a.kt)("admonition",{type:"info"},(0,a.kt)("p",{parentName:"admonition"},"You can enable the extra with the ",(0,a.kt)("inlineCode",{parentName:"p"},":LazyExtras")," command.\nPlugins marked as optional will only be configured if they are installed.")),(0,a.kt)("p",null,"Below you can find a list of included plugins and their default settings."),(0,a.kt)("admonition",{type:"caution"},(0,a.kt)("p",{parentName:"admonition"},"You don't need to copy the default settings to your config.\nThey are only shown here for reference.")),(0,a.kt)("h2",{id:"nvim-treesitter-context"},(0,a.kt)("a",{parentName:"h2",href:"https://github.com/nvim-treesitter/nvim-treesitter-context"},"nvim-treesitter-context")),(0,a.kt)(o.Z,{mdxType:"Tabs"},(0,a.kt)(l.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'opts = function()\n local tsc = require("treesitter-context")\n Snacks.toggle({\n name = "Treesitter Context",\n get = tsc.enabled,\n set = function(state)\n if state then\n tsc.enable()\n else\n tsc.disable()\n end\n end,\n }):map("<leader>ut")\n return { mode = "cursor", max_lines = 3 }\nend\n'))),(0,a.kt)(l.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "nvim-treesitter/nvim-treesitter-context",\n event = "LazyFile",\n opts = function()\n local tsc = require("treesitter-context")\n Snacks.toggle({\n name = "Treesitter Context",\n get = tsc.enabled,\n set = function(state)\n if state then\n tsc.enable()\n else\n tsc.disable()\n end\n end,\n }):map("<leader>ut")\n return { mode = "cursor", max_lines = 3 }\n end,\n}\n')))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/8b52b704.9b7bbbd6.js b/assets/js/8b52b704.9b7bbbd6.js new file mode 100644 index 0000000000..ad051428e9 --- /dev/null +++ b/assets/js/8b52b704.9b7bbbd6.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklazyvim=self.webpackChunklazyvim||[]).push([[5341],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>f});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function l(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function i(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var c=r.createContext({}),s=function(e){var t=r.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},u=function(e){var t=s(e.components);return r.createElement(c.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,c=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),p=s(n),m=a,f=p["".concat(c,".").concat(m)]||p[m]||d[m]||o;return n?r.createElement(f,l(l({ref:t},u),{},{components:n})):r.createElement(f,l({ref:t},u))}));function f(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,l=new Array(o);l[0]=m;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i[p]="string"==typeof e?e:a,l[1]=i;for(var s=2;s<o;s++)l[s]=n[s];return r.createElement.apply(null,l)}return r.createElement.apply(null,n)}m.displayName="MDXCreateElement"},5162:(e,t,n)=>{n.d(t,{Z:()=>l});var r=n(7294),a=n(6010);const o="tabItem_Ymn6";function l(e){let{children:t,hidden:n,className:l}=e;return r.createElement("div",{role:"tabpanel",className:(0,a.Z)(o,l),hidden:n},t)}},4866:(e,t,n)=>{n.d(t,{Z:()=>O});var r=n(7462),a=n(7294),o=n(6010),l=n(2466),i=n(6550),c=n(1980),s=n(7392),u=n(12);function p(e){return function(e){return a.Children.map(e,(e=>{if(!e||(0,a.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:t,label:n,attributes:r,default:a}}=e;return{value:t,label:n,attributes:r,default:a}}))}function d(e){const{values:t,children:n}=e;return(0,a.useMemo)((()=>{const e=t??p(n);return function(e){const t=(0,s.l)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[t,n])}function m(e){let{value:t,tabValues:n}=e;return n.some((e=>e.value===t))}function f(e){let{queryString:t=!1,groupId:n}=e;const r=(0,i.k6)(),o=function(e){let{queryString:t=!1,groupId:n}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!n)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return n??null}({queryString:t,groupId:n});return[(0,c._X)(o),(0,a.useCallback)((e=>{if(!o)return;const t=new URLSearchParams(r.location.search);t.set(o,e),r.replace({...r.location,search:t.toString()})}),[o,r])]}function v(e){const{defaultValue:t,queryString:n=!1,groupId:r}=e,o=d(e),[l,i]=(0,a.useState)((()=>function(e){let{defaultValue:t,tabValues:n}=e;if(0===n.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(t){if(!m({value:t,tabValues:n}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${n.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const r=n.find((e=>e.default))??n[0];if(!r)throw new Error("Unexpected error: 0 tabValues");return r.value}({defaultValue:t,tabValues:o}))),[c,s]=f({queryString:n,groupId:r}),[p,v]=function(e){let{groupId:t}=e;const n=function(e){return e?`docusaurus.tab.${e}`:null}(t),[r,o]=(0,u.Nk)(n);return[r,(0,a.useCallback)((e=>{n&&o.set(e)}),[n,o])]}({groupId:r}),b=(()=>{const e=c??p;return m({value:e,tabValues:o})?e:null})();(0,a.useLayoutEffect)((()=>{b&&i(b)}),[b]);return{selectedValue:l,selectValue:(0,a.useCallback)((e=>{if(!m({value:e,tabValues:o}))throw new Error(`Can't select invalid tab value=${e}`);i(e),s(e),v(e)}),[s,v,o]),tabValues:o}}var b=n(2389);const h="tabList__CuJ",y="tabItem_LNqP";function g(e){let{className:t,block:n,selectedValue:i,selectValue:c,tabValues:s}=e;const u=[],{blockElementScrollPositionUntilNextRender:p}=(0,l.o5)(),d=e=>{const t=e.currentTarget,n=u.indexOf(t),r=s[n].value;r!==i&&(p(t),c(r))},m=e=>{let t=null;switch(e.key){case"Enter":d(e);break;case"ArrowRight":{const n=u.indexOf(e.currentTarget)+1;t=u[n]??u[0];break}case"ArrowLeft":{const n=u.indexOf(e.currentTarget)-1;t=u[n]??u[u.length-1];break}}t?.focus()};return a.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,o.Z)("tabs",{"tabs--block":n},t)},s.map((e=>{let{value:t,label:n,attributes:l}=e;return a.createElement("li",(0,r.Z)({role:"tab",tabIndex:i===t?0:-1,"aria-selected":i===t,key:t,ref:e=>u.push(e),onKeyDown:m,onClick:d},l,{className:(0,o.Z)("tabs__item",y,l?.className,{"tabs__item--active":i===t})}),n??t)})))}function k(e){let{lazy:t,children:n,selectedValue:r}=e;const o=(Array.isArray(n)?n:[n]).filter(Boolean);if(t){const e=o.find((e=>e.props.value===r));return e?(0,a.cloneElement)(e,{className:"margin-top--md"}):null}return a.createElement("div",{className:"margin-top--md"},o.map(((e,t)=>(0,a.cloneElement)(e,{key:t,hidden:e.props.value!==r}))))}function w(e){const t=v(e);return a.createElement("div",{className:(0,o.Z)("tabs-container",h)},a.createElement(g,(0,r.Z)({},e,t)),a.createElement(k,(0,r.Z)({},e,t)))}function O(e){const t=(0,b.Z)();return a.createElement(w,(0,r.Z)({key:String(t)},e))}},6705:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>u,contentTitle:()=>c,default:()=>m,frontMatter:()=>i,metadata:()=>s,toc:()=>p});var r=n(7462),a=(n(7294),n(3905)),o=n(4866),l=n(5162);const i={},c="Octo",s={unversionedId:"extras/util/octo",id:"extras/util/octo",title:"Octo",description:"You can enable the extra with the :LazyExtras command.",source:"@site/docs/extras/util/octo.md",sourceDirName:"extras/util",slug:"/extras/util/octo",permalink:"/extras/util/octo",draft:!1,editUrl:"https://github.com/LazyVim/lazyvim.github.io/tree/main/docs/extras/util/octo.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Mini Hipatterns",permalink:"/extras/util/mini-hipatterns"},next:{title:"Project",permalink:"/extras/util/project"}},u={},p=[{value:"Includes the following extras",id:"includes-the-following-extras",level:3},{value:"octo.nvim",id:"octonvim",level:2},{value:"octo.nvim",id:"octonvim-1",level:2}],d={toc:p};function m(e){let{components:t,...n}=e;return(0,a.kt)("wrapper",(0,r.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"octo"},(0,a.kt)("inlineCode",{parentName:"h1"},"Octo")),(0,a.kt)("admonition",{type:"info"},(0,a.kt)("p",{parentName:"admonition"},"You can enable the extra with the ",(0,a.kt)("inlineCode",{parentName:"p"},":LazyExtras")," command.\nPlugins marked as optional will only be configured if they are installed.")),(0,a.kt)("p",null,"Below you can find a list of included plugins and their default settings."),(0,a.kt)("admonition",{type:"caution"},(0,a.kt)("p",{parentName:"admonition"},"You don't need to copy the default settings to your config.\nThey are only shown here for reference.")),(0,a.kt)("h3",{id:"includes-the-following-extras"},"Includes the following extras"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"/extras/lang/git"},"lang.git"))),(0,a.kt)("h2",{id:"octonvim"},(0,a.kt)("a",{parentName:"h2",href:"https://github.com/pwntester/octo.nvim"},"octo.nvim")),(0,a.kt)("p",null," Octo"),(0,a.kt)(o.Z,{mdxType:"Tabs"},(0,a.kt)(l.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'opts = {\n enable_builtin = true,\n default_to_projects_v2 = true,\n default_merge_method = "squash",\n picker = "telescope",\n}\n'))),(0,a.kt)(l.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "pwntester/octo.nvim",\n cmd = "Octo",\n event = { { event = "BufReadCmd", pattern = "octo://*" } },\n opts = {\n enable_builtin = true,\n default_to_projects_v2 = true,\n default_merge_method = "squash",\n picker = "telescope",\n },\n keys = {\n { "<leader>gi", "<cmd>Octo issue list<CR>", desc = "List Issues (Octo)" },\n { "<leader>gI", "<cmd>Octo issue search<CR>", desc = "Search Issues (Octo)" },\n { "<leader>gp", "<cmd>Octo pr list<CR>", desc = "List PRs (Octo)" },\n { "<leader>gP", "<cmd>Octo pr search<CR>", desc = "Search PRs (Octo)" },\n { "<leader>gr", "<cmd>Octo repo list<CR>", desc = "List Repos (Octo)" },\n { "<leader>gS", "<cmd>Octo search<CR>", desc = "Search (Octo)" },\n\n { "<localleader>a", "", desc = "+assignee (Octo)", ft = "octo" },\n { "<localleader>c", "", desc = "+comment/code (Octo)", ft = "octo" },\n { "<localleader>l", "", desc = "+label (Octo)", ft = "octo" },\n { "<localleader>i", "", desc = "+issue (Octo)", ft = "octo" },\n { "<localleader>r", "", desc = "+react (Octo)", ft = "octo" },\n { "<localleader>p", "", desc = "+pr (Octo)", ft = "octo" },\n { "<localleader>pr", "", desc = "+rebase (Octo)", ft = "octo" },\n { "<localleader>ps", "", desc = "+squash (Octo)", ft = "octo" },\n { "<localleader>v", "", desc = "+review (Octo)", ft = "octo" },\n { "<localleader>g", "", desc = "+goto_issue (Octo)", ft = "octo" },\n { "@", "@<C-x><C-o>", mode = "i", ft = "octo", silent = true },\n { "#", "#<C-x><C-o>", mode = "i", ft = "octo", silent = true },\n },\n}\n')))),(0,a.kt)("h2",{id:"octonvim-1"},(0,a.kt)("a",{parentName:"h2",href:"https://github.com/pwntester/octo.nvim"},"octo.nvim")),(0,a.kt)("p",null," Octo Picker"),(0,a.kt)(o.Z,{mdxType:"Tabs"},(0,a.kt)(l.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'opts = function(_, opts)\n vim.treesitter.language.register("markdown", "octo")\n if LazyVim.has_extra("editor.telescope") then\n opts.picker = "telescope"\n elseif LazyVim.has_extra("editor.fzf") then\n opts.picker = "fzf-lua"\n elseif LazyVim.has_extra("editor.snacks_picker") then\n opts.picker = "snacks"\n else\n LazyVim.error("`octo.nvim` requires `telescope.nvim` or `fzf-lua` or `snacks.nvim`")\n end\n\n -- Keep some empty windows in sessions\n vim.api.nvim_create_autocmd("ExitPre", {\n group = vim.api.nvim_create_augroup("octo_exit_pre", { clear = true }),\n callback = function(ev)\n local keep = { "octo" }\n for _, win in ipairs(vim.api.nvim_list_wins()) do\n local buf = vim.api.nvim_win_get_buf(win)\n if vim.tbl_contains(keep, vim.bo[buf].filetype) then\n vim.bo[buf].buftype = "" -- set buftype to empty to keep the window\n end\n end\n end,\n })\nend\n'))),(0,a.kt)(l.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "pwntester/octo.nvim",\n opts = function(_, opts)\n vim.treesitter.language.register("markdown", "octo")\n if LazyVim.has_extra("editor.telescope") then\n opts.picker = "telescope"\n elseif LazyVim.has_extra("editor.fzf") then\n opts.picker = "fzf-lua"\n elseif LazyVim.has_extra("editor.snacks_picker") then\n opts.picker = "snacks"\n else\n LazyVim.error("`octo.nvim` requires `telescope.nvim` or `fzf-lua` or `snacks.nvim`")\n end\n\n -- Keep some empty windows in sessions\n vim.api.nvim_create_autocmd("ExitPre", {\n group = vim.api.nvim_create_augroup("octo_exit_pre", { clear = true }),\n callback = function(ev)\n local keep = { "octo" }\n for _, win in ipairs(vim.api.nvim_list_wins()) do\n local buf = vim.api.nvim_win_get_buf(win)\n if vim.tbl_contains(keep, vim.bo[buf].filetype) then\n vim.bo[buf].buftype = "" -- set buftype to empty to keep the window\n end\n end\n end,\n })\n end,\n}\n')))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/8e97e177.8f3e7320.js b/assets/js/8e97e177.8f3e7320.js new file mode 100644 index 0000000000..41a5b47496 --- /dev/null +++ b/assets/js/8e97e177.8f3e7320.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklazyvim=self.webpackChunklazyvim||[]).push([[7441],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>f});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function o(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?l(Object(n),!0).forEach((function(t){r(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):l(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function i(e,t){if(null==e)return{};var n,a,r=function(e,t){if(null==e)return{};var n,a,r={},l=Object.keys(e);for(a=0;a<l.length;a++)n=l[a],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a<l.length;a++)n=l[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var u=a.createContext({}),s=function(e){var t=a.useContext(u),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},p=function(e){var t=s(e.components);return a.createElement(u.Provider,{value:t},e.children)},c="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,l=e.originalType,u=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),c=s(n),m=r,f=c["".concat(u,".").concat(m)]||c[m]||d[m]||l;return n?a.createElement(f,o(o({ref:t},p),{},{components:n})):a.createElement(f,o({ref:t},p))}));function f(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var l=n.length,o=new Array(l);o[0]=m;var i={};for(var u in t)hasOwnProperty.call(t,u)&&(i[u]=t[u]);i.originalType=e,i[c]="string"==typeof e?e:r,o[1]=i;for(var s=2;s<l;s++)o[s]=n[s];return a.createElement.apply(null,o)}return a.createElement.apply(null,n)}m.displayName="MDXCreateElement"},5162:(e,t,n)=>{n.d(t,{Z:()=>o});var a=n(7294),r=n(6010);const l="tabItem_Ymn6";function o(e){let{children:t,hidden:n,className:o}=e;return a.createElement("div",{role:"tabpanel",className:(0,r.Z)(l,o),hidden:n},t)}},4866:(e,t,n)=>{n.d(t,{Z:()=>T});var a=n(7462),r=n(7294),l=n(6010),o=n(2466),i=n(6550),u=n(1980),s=n(7392),p=n(12);function c(e){return function(e){return r.Children.map(e,(e=>{if(!e||(0,r.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:t,label:n,attributes:a,default:r}}=e;return{value:t,label:n,attributes:a,default:r}}))}function d(e){const{values:t,children:n}=e;return(0,r.useMemo)((()=>{const e=t??c(n);return function(e){const t=(0,s.l)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[t,n])}function m(e){let{value:t,tabValues:n}=e;return n.some((e=>e.value===t))}function f(e){let{queryString:t=!1,groupId:n}=e;const a=(0,i.k6)(),l=function(e){let{queryString:t=!1,groupId:n}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!n)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return n??null}({queryString:t,groupId:n});return[(0,u._X)(l),(0,r.useCallback)((e=>{if(!l)return;const t=new URLSearchParams(a.location.search);t.set(l,e),a.replace({...a.location,search:t.toString()})}),[l,a])]}function g(e){const{defaultValue:t,queryString:n=!1,groupId:a}=e,l=d(e),[o,i]=(0,r.useState)((()=>function(e){let{defaultValue:t,tabValues:n}=e;if(0===n.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(t){if(!m({value:t,tabValues:n}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${n.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const a=n.find((e=>e.default))??n[0];if(!a)throw new Error("Unexpected error: 0 tabValues");return a.value}({defaultValue:t,tabValues:l}))),[u,s]=f({queryString:n,groupId:a}),[c,g]=function(e){let{groupId:t}=e;const n=function(e){return e?`docusaurus.tab.${e}`:null}(t),[a,l]=(0,p.Nk)(n);return[a,(0,r.useCallback)((e=>{n&&l.set(e)}),[n,l])]}({groupId:a}),b=(()=>{const e=u??c;return m({value:e,tabValues:l})?e:null})();(0,r.useLayoutEffect)((()=>{b&&i(b)}),[b]);return{selectedValue:o,selectValue:(0,r.useCallback)((e=>{if(!m({value:e,tabValues:l}))throw new Error(`Can't select invalid tab value=${e}`);i(e),s(e),g(e)}),[s,g,l]),tabValues:l}}var b=n(2389);const h="tabList__CuJ",v="tabItem_LNqP";function y(e){let{className:t,block:n,selectedValue:i,selectValue:u,tabValues:s}=e;const p=[],{blockElementScrollPositionUntilNextRender:c}=(0,o.o5)(),d=e=>{const t=e.currentTarget,n=p.indexOf(t),a=s[n].value;a!==i&&(c(t),u(a))},m=e=>{let t=null;switch(e.key){case"Enter":d(e);break;case"ArrowRight":{const n=p.indexOf(e.currentTarget)+1;t=p[n]??p[0];break}case"ArrowLeft":{const n=p.indexOf(e.currentTarget)-1;t=p[n]??p[p.length-1];break}}t?.focus()};return r.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,l.Z)("tabs",{"tabs--block":n},t)},s.map((e=>{let{value:t,label:n,attributes:o}=e;return r.createElement("li",(0,a.Z)({role:"tab",tabIndex:i===t?0:-1,"aria-selected":i===t,key:t,ref:e=>p.push(e),onKeyDown:m,onClick:d},o,{className:(0,l.Z)("tabs__item",v,o?.className,{"tabs__item--active":i===t})}),n??t)})))}function k(e){let{lazy:t,children:n,selectedValue:a}=e;const l=(Array.isArray(n)?n:[n]).filter(Boolean);if(t){const e=l.find((e=>e.props.value===a));return e?(0,r.cloneElement)(e,{className:"margin-top--md"}):null}return r.createElement("div",{className:"margin-top--md"},l.map(((e,t)=>(0,r.cloneElement)(e,{key:t,hidden:e.props.value!==a}))))}function x(e){const t=g(e);return r.createElement("div",{className:(0,l.Z)("tabs-container",h)},r.createElement(y,(0,a.Z)({},e,t)),r.createElement(k,(0,a.Z)({},e,t)))}function T(e){const t=(0,b.Z)();return r.createElement(x,(0,a.Z)({key:String(t)},e))}},339:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>u,default:()=>m,frontMatter:()=>i,metadata:()=>s,toc:()=>c});var a=n(7462),r=(n(7294),n(3905)),l=n(4866),o=n(5162);const i={},u="Leap",s={unversionedId:"extras/editor/leap",id:"extras/editor/leap",title:"Leap",description:"You can enable the extra with the :LazyExtras command.",source:"@site/docs/extras/editor/leap.md",sourceDirName:"extras/editor",slug:"/extras/editor/leap",permalink:"/extras/editor/leap",draft:!1,editUrl:"https://github.com/LazyVim/lazyvim.github.io/tree/main/docs/extras/editor/leap.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Inc-rename",permalink:"/extras/editor/inc-rename"},next:{title:"Mini-diff",permalink:"/extras/editor/mini-diff"}},p={},c=[{value:"flit.nvim",id:"flitnvim",level:2},{value:"leap.nvim",id:"leapnvim",level:2},{value:"vim-repeat",id:"vim-repeat",level:2},{value:"mini.surround <em>(optional)</em>",id:"minisurround-optional",level:2}],d={toc:c};function m(e){let{components:t,...n}=e;return(0,r.kt)("wrapper",(0,a.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"leap"},"Leap"),(0,r.kt)("admonition",{type:"info"},(0,r.kt)("p",{parentName:"admonition"},"You can enable the extra with the ",(0,r.kt)("inlineCode",{parentName:"p"},":LazyExtras")," command.\nPlugins marked as optional will only be configured if they are installed.")),(0,r.kt)("p",null,"Below you can find a list of included plugins and their default settings."),(0,r.kt)("admonition",{type:"caution"},(0,r.kt)("p",{parentName:"admonition"},"You don't need to copy the default settings to your config.\nThey are only shown here for reference.")),(0,r.kt)("h2",{id:"flitnvim"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/ggandor/flit.nvim"},"flit.nvim")),(0,r.kt)("p",null," easily jump to any location and enhanced f/t motions for Leap"),(0,r.kt)(l.Z,{mdxType:"Tabs"},(0,r.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = { labeled_modes = "nx" }\n'))),(0,r.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "ggandor/flit.nvim",\n enabled = true,\n keys = function()\n ---@type LazyKeysSpec[]\n local ret = {}\n for _, key in ipairs({ "f", "F", "t", "T" }) do\n ret[#ret + 1] = { key, mode = { "n", "x", "o" } }\n end\n return ret\n end,\n opts = { labeled_modes = "nx" },\n}\n')))),(0,r.kt)("h2",{id:"leapnvim"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/ggandor/leap.nvim"},"leap.nvim")),(0,r.kt)(l.Z,{mdxType:"Tabs"},(0,r.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},"opts = {}\n"))),(0,r.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "ggandor/leap.nvim",\n enabled = true,\n keys = {\n { "s", mode = { "n", "x", "o" }, desc = "Leap Forward to" },\n { "S", mode = { "n", "x", "o" }, desc = "Leap Backward to" },\n { "gs", mode = { "n", "x", "o" }, desc = "Leap from Windows" },\n },\n config = function(_, opts)\n local leap = require("leap")\n for k, v in pairs(opts) do\n leap.opts[k] = v\n end\n leap.add_default_mappings(true)\n vim.keymap.del({ "x", "o" }, "x")\n vim.keymap.del({ "x", "o" }, "X")\n end,\n}\n')))),(0,r.kt)("h2",{id:"vim-repeat"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/tpope/vim-repeat"},"vim-repeat")),(0,r.kt)("p",null," makes some plugins dot-repeatable like leap"),(0,r.kt)(l.Z,{mdxType:"Tabs"},(0,r.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},"opts = nil\n"))),(0,r.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{ "tpope/vim-repeat", event = "VeryLazy" }\n')))),(0,r.kt)("h2",{id:"minisurround-optional"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/nvim-mini/mini.surround"},"mini.surround")," ",(0,r.kt)("em",{parentName:"h2"},"(optional)")),(0,r.kt)("p",null," rename surround mappings from gs to gz to prevent conflict with leap"),(0,r.kt)(l.Z,{mdxType:"Tabs"},(0,r.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = {\n mappings = {\n add = "gza", -- Add surrounding in Normal and Visual modes\n delete = "gzd", -- Delete surrounding\n find = "gzf", -- Find surrounding (to the right)\n find_left = "gzF", -- Find surrounding (to the left)\n highlight = "gzh", -- Highlight surrounding\n replace = "gzr", -- Replace surrounding\n update_n_lines = "gzn", -- Update `n_lines`\n },\n}\n'))),(0,r.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "nvim-mini/mini.surround",\n optional = true,\n opts = {\n mappings = {\n add = "gza", -- Add surrounding in Normal and Visual modes\n delete = "gzd", -- Delete surrounding\n find = "gzf", -- Find surrounding (to the right)\n find_left = "gzF", -- Find surrounding (to the left)\n highlight = "gzh", -- Highlight surrounding\n replace = "gzr", -- Replace surrounding\n update_n_lines = "gzn", -- Update `n_lines`\n },\n },\n keys = {\n { "gz", "", desc = "+surround" },\n },\n}\n')))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/8fb7ed7a.497f04c1.js b/assets/js/8fb7ed7a.497f04c1.js new file mode 100644 index 0000000000..834dccd62a --- /dev/null +++ b/assets/js/8fb7ed7a.497f04c1.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklazyvim=self.webpackChunklazyvim||[]).push([[8497],{3905:(e,n,t)=>{t.d(n,{Zo:()=>u,kt:()=>m});var i=t(7294);function l(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function r(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);n&&(i=i.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,i)}return t}function a(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?r(Object(t),!0).forEach((function(n){l(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):r(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function o(e,n){if(null==e)return{};var t,i,l=function(e,n){if(null==e)return{};var t,i,l={},r=Object.keys(e);for(i=0;i<r.length;i++)t=r[i],n.indexOf(t)>=0||(l[t]=e[t]);return l}(e,n);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(i=0;i<r.length;i++)t=r[i],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(l[t]=e[t])}return l}var s=i.createContext({}),c=function(e){var n=i.useContext(s),t=n;return e&&(t="function"==typeof e?e(n):a(a({},n),e)),t},u=function(e){var n=c(e.components);return i.createElement(s.Provider,{value:n},e.children)},d="mdxType",p={inlineCode:"code",wrapper:function(e){var n=e.children;return i.createElement(i.Fragment,{},n)}},f=i.forwardRef((function(e,n){var t=e.components,l=e.mdxType,r=e.originalType,s=e.parentName,u=o(e,["components","mdxType","originalType","parentName"]),d=c(t),f=l,m=d["".concat(s,".").concat(f)]||d[f]||p[f]||r;return t?i.createElement(m,a(a({ref:n},u),{},{components:t})):i.createElement(m,a({ref:n},u))}));function m(e,n){var t=arguments,l=n&&n.mdxType;if("string"==typeof e||l){var r=t.length,a=new Array(r);a[0]=f;var o={};for(var s in n)hasOwnProperty.call(n,s)&&(o[s]=n[s]);o.originalType=e,o[d]="string"==typeof e?e:l,a[1]=o;for(var c=2;c<r;c++)a[c]=t[c];return i.createElement.apply(null,a)}return i.createElement.apply(null,t)}f.displayName="MDXCreateElement"},5162:(e,n,t)=>{t.d(n,{Z:()=>a});var i=t(7294),l=t(6010);const r="tabItem_Ymn6";function a(e){let{children:n,hidden:t,className:a}=e;return i.createElement("div",{role:"tabpanel",className:(0,l.Z)(r,a),hidden:t},n)}},4866:(e,n,t)=>{t.d(n,{Z:()=>w});var i=t(7462),l=t(7294),r=t(6010),a=t(2466),o=t(6550),s=t(1980),c=t(7392),u=t(12);function d(e){return function(e){return l.Children.map(e,(e=>{if(!e||(0,l.isValidElement)(e)&&function(e){const{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:n,label:t,attributes:i,default:l}}=e;return{value:n,label:t,attributes:i,default:l}}))}function p(e){const{values:n,children:t}=e;return(0,l.useMemo)((()=>{const e=n??d(t);return function(e){const n=(0,c.l)(e,((e,n)=>e.value===n.value));if(n.length>0)throw new Error(`Docusaurus error: Duplicate values "${n.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[n,t])}function f(e){let{value:n,tabValues:t}=e;return t.some((e=>e.value===n))}function m(e){let{queryString:n=!1,groupId:t}=e;const i=(0,o.k6)(),r=function(e){let{queryString:n=!1,groupId:t}=e;if("string"==typeof n)return n;if(!1===n)return null;if(!0===n&&!t)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return t??null}({queryString:n,groupId:t});return[(0,s._X)(r),(0,l.useCallback)((e=>{if(!r)return;const n=new URLSearchParams(i.location.search);n.set(r,e),i.replace({...i.location,search:n.toString()})}),[r,i])]}function g(e){const{defaultValue:n,queryString:t=!1,groupId:i}=e,r=p(e),[a,o]=(0,l.useState)((()=>function(e){let{defaultValue:n,tabValues:t}=e;if(0===t.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(n){if(!f({value:n,tabValues:t}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${n}" but none of its children has the corresponding value. Available values are: ${t.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return n}const i=t.find((e=>e.default))??t[0];if(!i)throw new Error("Unexpected error: 0 tabValues");return i.value}({defaultValue:n,tabValues:r}))),[s,c]=m({queryString:t,groupId:i}),[d,g]=function(e){let{groupId:n}=e;const t=function(e){return e?`docusaurus.tab.${e}`:null}(n),[i,r]=(0,u.Nk)(t);return[i,(0,l.useCallback)((e=>{t&&r.set(e)}),[t,r])]}({groupId:i}),v=(()=>{const e=s??d;return f({value:e,tabValues:r})?e:null})();(0,l.useLayoutEffect)((()=>{v&&o(v)}),[v]);return{selectedValue:a,selectValue:(0,l.useCallback)((e=>{if(!f({value:e,tabValues:r}))throw new Error(`Can't select invalid tab value=${e}`);o(e),c(e),g(e)}),[c,g,r]),tabValues:r}}var v=t(2389);const b="tabList__CuJ",_="tabItem_LNqP";function h(e){let{className:n,block:t,selectedValue:o,selectValue:s,tabValues:c}=e;const u=[],{blockElementScrollPositionUntilNextRender:d}=(0,a.o5)(),p=e=>{const n=e.currentTarget,t=u.indexOf(n),i=c[t].value;i!==o&&(d(n),s(i))},f=e=>{let n=null;switch(e.key){case"Enter":p(e);break;case"ArrowRight":{const t=u.indexOf(e.currentTarget)+1;n=u[t]??u[0];break}case"ArrowLeft":{const t=u.indexOf(e.currentTarget)-1;n=u[t]??u[u.length-1];break}}n?.focus()};return l.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,r.Z)("tabs",{"tabs--block":t},n)},c.map((e=>{let{value:n,label:t,attributes:a}=e;return l.createElement("li",(0,i.Z)({role:"tab",tabIndex:o===n?0:-1,"aria-selected":o===n,key:n,ref:e=>u.push(e),onKeyDown:f,onClick:p},a,{className:(0,r.Z)("tabs__item",_,a?.className,{"tabs__item--active":o===n})}),t??n)})))}function y(e){let{lazy:n,children:t,selectedValue:i}=e;const r=(Array.isArray(t)?t:[t]).filter(Boolean);if(n){const e=r.find((e=>e.props.value===i));return e?(0,l.cloneElement)(e,{className:"margin-top--md"}):null}return l.createElement("div",{className:"margin-top--md"},r.map(((e,n)=>(0,l.cloneElement)(e,{key:n,hidden:e.props.value!==i}))))}function k(e){const n=g(e);return l.createElement("div",{className:(0,r.Z)("tabs-container",b)},l.createElement(h,(0,i.Z)({},e,n)),l.createElement(y,(0,i.Z)({},e,n)))}function w(e){const n=(0,v.Z)();return l.createElement(k,(0,i.Z)({key:String(n)},e))}},2523:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>u,contentTitle:()=>s,default:()=>f,frontMatter:()=>o,metadata:()=>c,toc:()=>d});var i=t(7462),l=(t(7294),t(3905)),r=t(4866),a=t(5162);const o={},s="Telescope",c={unversionedId:"extras/editor/telescope",id:"extras/editor/telescope",title:"Telescope",description:"You can enable the extra with the :LazyExtras command.",source:"@site/docs/extras/editor/telescope.md",sourceDirName:"extras/editor",slug:"/extras/editor/telescope",permalink:"/extras/editor/telescope",draft:!1,editUrl:"https://github.com/LazyVim/lazyvim.github.io/tree/main/docs/extras/editor/telescope.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Snacks_picker",permalink:"/extras/editor/snacks_picker"},next:{title:"Biome",permalink:"/extras/formatting/biome"}},u={},d=[{value:"Options",id:"options",level:3},{value:"telescope.nvim",id:"telescopenvim",level:2},{value:"dressing.nvim",id:"dressingnvim",level:2},{value:"telescope.nvim",id:"telescopenvim-1",level:2},{value:"telescope-fzf-native.nvim",id:"telescope-fzf-nativenvim",level:2},{value:"nvim-lspconfig",id:"nvim-lspconfig",level:2}],p={toc:d};function f(e){let{components:n,...t}=e;return(0,l.kt)("wrapper",(0,i.Z)({},p,t,{components:n,mdxType:"MDXLayout"}),(0,l.kt)("h1",{id:"telescope"},(0,l.kt)("inlineCode",{parentName:"h1"},"Telescope")),(0,l.kt)("admonition",{type:"info"},(0,l.kt)("p",{parentName:"admonition"},"You can enable the extra with the ",(0,l.kt)("inlineCode",{parentName:"p"},":LazyExtras")," command.\nPlugins marked as optional will only be configured if they are installed.")),(0,l.kt)("h3",{id:"options"},"Options"),(0,l.kt)("p",null,"Additional options for this extra can be configured in your ",(0,l.kt)("a",{parentName:"p",href:"/configuration/general#options"},"lua/config/options.lua")," file:"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-lua",metastring:'title="lua/config/options.lua"',title:'"lua/config/options.lua"'},'-- In case you don\'t want to use `:LazyExtras`,\n-- then you need to set the option below.\nvim.g.lazyvim_picker = "telescope"\n')),(0,l.kt)("p",null,"Below you can find a list of included plugins and their default settings."),(0,l.kt)("admonition",{type:"caution"},(0,l.kt)("p",{parentName:"admonition"},"You don't need to copy the default settings to your config.\nThey are only shown here for reference.")),(0,l.kt)("h2",{id:"telescopenvim"},(0,l.kt)("a",{parentName:"h2",href:"https://github.com/nvim-telescope/telescope.nvim"},"telescope.nvim")),(0,l.kt)("p",null," Fuzzy finder.\nThe default key bindings to find files will use Telescope's\n",(0,l.kt)("inlineCode",{parentName:"p"},"find_files")," or ",(0,l.kt)("inlineCode",{parentName:"p"},"git_files")," depending on whether the\ndirectory is a git repo."),(0,l.kt)(r.Z,{mdxType:"Tabs"},(0,l.kt)(a.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-lua"},'opts = function()\n local actions = require("telescope.actions")\n\n local open_with_trouble = function(...)\n return require("trouble.sources.telescope").open(...)\n end\n local find_files_no_ignore = function()\n local action_state = require("telescope.actions.state")\n local line = action_state.get_current_line()\n LazyVim.pick("find_files", { no_ignore = true, default_text = line })()\n end\n local find_files_with_hidden = function()\n local action_state = require("telescope.actions.state")\n local line = action_state.get_current_line()\n LazyVim.pick("find_files", { hidden = true, default_text = line })()\n end\n\n local function find_command()\n if 1 == vim.fn.executable("rg") then\n return { "rg", "--files", "--color", "never", "-g", "!.git" }\n elseif 1 == vim.fn.executable("fd") then\n return { "fd", "--type", "f", "--color", "never", "-E", ".git" }\n elseif 1 == vim.fn.executable("fdfind") then\n return { "fdfind", "--type", "f", "--color", "never", "-E", ".git" }\n elseif 1 == vim.fn.executable("find") and vim.fn.has("win32") == 0 then\n return { "find", ".", "-type", "f" }\n elseif 1 == vim.fn.executable("where") then\n return { "where", "/r", ".", "*" }\n end\n end\n\n return {\n defaults = {\n prompt_prefix = "\uf054 ",\n selection_caret = "\uf44a ",\n -- open files in the first window that is an actual file.\n -- use the current window if no other window is available.\n get_selection_window = function()\n local wins = vim.api.nvim_list_wins()\n table.insert(wins, 1, vim.api.nvim_get_current_win())\n for _, win in ipairs(wins) do\n local buf = vim.api.nvim_win_get_buf(win)\n if vim.bo[buf].buftype == "" then\n return win\n end\n end\n return 0\n end,\n mappings = {\n i = {\n ["<c-t>"] = open_with_trouble,\n ["<a-t>"] = open_with_trouble,\n ["<a-i>"] = find_files_no_ignore,\n ["<a-h>"] = find_files_with_hidden,\n ["<C-Down>"] = actions.cycle_history_next,\n ["<C-Up>"] = actions.cycle_history_prev,\n ["<C-f>"] = actions.preview_scrolling_down,\n ["<C-b>"] = actions.preview_scrolling_up,\n },\n n = {\n ["q"] = actions.close,\n },\n },\n },\n pickers = {\n find_files = {\n find_command = find_command,\n hidden = true,\n },\n },\n }\nend\n'))),(0,l.kt)(a.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "nvim-telescope/telescope.nvim",\n cmd = "Telescope",\n version = false, -- telescope did only one release, so use HEAD for now\n dependencies = {\n {\n "nvim-telescope/telescope-fzf-native.nvim",\n build = (build_cmd ~= "cmake") and "make"\n or "cmake -S. -Bbuild -DCMAKE_BUILD_TYPE=Release && cmake --build build --config Release && cmake --install build --prefix build",\n enabled = build_cmd ~= nil,\n config = function(plugin)\n LazyVim.on_load("telescope.nvim", function()\n local ok, err = pcall(require("telescope").load_extension, "fzf")\n if not ok then\n local lib = plugin.dir .. "/build/libfzf." .. (LazyVim.is_win() and "dll" or "so")\n if not vim.uv.fs_stat(lib) then\n LazyVim.warn("`telescope-fzf-native.nvim` not built. Rebuilding...")\n require("lazy").build({ plugins = { plugin }, show = false }):wait(function()\n LazyVim.info("Rebuilding `telescope-fzf-native.nvim` done.\\nPlease restart Neovim.")\n end)\n else\n LazyVim.error("Failed to load `telescope-fzf-native.nvim`:\\n" .. err)\n end\n end\n end)\n end,\n },\n },\n keys = {\n {\n "<leader>,",\n "<cmd>Telescope buffers sort_mru=true sort_lastused=true<cr>",\n desc = "Switch Buffer",\n },\n { "<leader>/", LazyVim.pick("live_grep"), desc = "Grep (Root Dir)" },\n { "<leader>:", "<cmd>Telescope command_history<cr>", desc = "Command History" },\n { "<leader><space>", LazyVim.pick("files"), desc = "Find Files (Root Dir)" },\n -- find\n {\n "<leader>fb",\n "<cmd>Telescope buffers sort_mru=true sort_lastused=true ignore_current_buffer=true<cr>",\n desc = "Buffers",\n },\n { "<leader>fB", "<cmd>Telescope buffers<cr>", desc = "Buffers (all)" },\n { "<leader>fc", LazyVim.pick.config_files(), desc = "Find Config File" },\n { "<leader>ff", LazyVim.pick("files"), desc = "Find Files (Root Dir)" },\n { "<leader>fF", LazyVim.pick("files", { root = false }), desc = "Find Files (cwd)" },\n { "<leader>fg", "<cmd>Telescope git_files<cr>", desc = "Find Files (git-files)" },\n { "<leader>fr", "<cmd>Telescope oldfiles<cr>", desc = "Recent" },\n { "<leader>fR", LazyVim.pick("oldfiles", { cwd = vim.uv.cwd() }), desc = "Recent (cwd)" },\n -- git\n { "<leader>gc", "<cmd>Telescope git_commits<CR>", desc = "Commits" },\n { "<leader>gl", "<cmd>Telescope git_commits<CR>", desc = "Commits" },\n { "<leader>gs", "<cmd>Telescope git_status<CR>", desc = "Status" },\n { "<leader>gS", "<cmd>Telescope git_stash<cr>", desc = "Git Stash" },\n -- search\n { \'<leader>s"\', "<cmd>Telescope registers<cr>", desc = "Registers" },\n { "<leader>s/", "<cmd>Telescope search_history<cr>", desc = "Search History" },\n { "<leader>sa", "<cmd>Telescope autocommands<cr>", desc = "Auto Commands" },\n { "<leader>sb", "<cmd>Telescope current_buffer_fuzzy_find<cr>", desc = "Buffer Lines" },\n { "<leader>sc", "<cmd>Telescope command_history<cr>", desc = "Command History" },\n { "<leader>sC", "<cmd>Telescope commands<cr>", desc = "Commands" },\n { "<leader>sd", "<cmd>Telescope diagnostics<cr>", desc = "Diagnostics" },\n { "<leader>sD", "<cmd>Telescope diagnostics bufnr=0<cr>", desc = "Buffer Diagnostics" },\n { "<leader>sg", LazyVim.pick("live_grep"), desc = "Grep (Root Dir)" },\n { "<leader>sG", LazyVim.pick("live_grep", { root = false }), desc = "Grep (cwd)" },\n { "<leader>sh", "<cmd>Telescope help_tags<cr>", desc = "Help Pages" },\n { "<leader>sH", "<cmd>Telescope highlights<cr>", desc = "Search Highlight Groups" },\n { "<leader>sj", "<cmd>Telescope jumplist<cr>", desc = "Jumplist" },\n { "<leader>sk", "<cmd>Telescope keymaps<cr>", desc = "Key Maps" },\n { "<leader>sl", "<cmd>Telescope loclist<cr>", desc = "Location List" },\n { "<leader>sM", "<cmd>Telescope man_pages<cr>", desc = "Man Pages" },\n { "<leader>sm", "<cmd>Telescope marks<cr>", desc = "Jump to Mark" },\n { "<leader>so", "<cmd>Telescope vim_options<cr>", desc = "Options" },\n { "<leader>sR", "<cmd>Telescope resume<cr>", desc = "Resume" },\n { "<leader>sq", "<cmd>Telescope quickfix<cr>", desc = "Quickfix List" },\n { "<leader>sw", LazyVim.pick("grep_string", { word_match = "-w" }), desc = "Word (Root Dir)" },\n { "<leader>sW", LazyVim.pick("grep_string", { root = false, word_match = "-w" }), desc = "Word (cwd)" },\n { "<leader>sw", LazyVim.pick("grep_string"), mode = "x", desc = "Selection (Root Dir)" },\n { "<leader>sW", LazyVim.pick("grep_string", { root = false }), mode = "x", desc = "Selection (cwd)" },\n { "<leader>uC", LazyVim.pick("colorscheme", { enable_preview = true }), desc = "Colorscheme with Preview" },\n {\n "<leader>ss",\n function()\n require("telescope.builtin").lsp_document_symbols({\n symbols = LazyVim.config.get_kind_filter(),\n })\n end,\n desc = "Goto Symbol",\n },\n {\n "<leader>sS",\n function()\n require("telescope.builtin").lsp_dynamic_workspace_symbols({\n symbols = LazyVim.config.get_kind_filter(),\n })\n end,\n desc = "Goto Symbol (Workspace)",\n },\n },\n opts = function()\n local actions = require("telescope.actions")\n\n local open_with_trouble = function(...)\n return require("trouble.sources.telescope").open(...)\n end\n local find_files_no_ignore = function()\n local action_state = require("telescope.actions.state")\n local line = action_state.get_current_line()\n LazyVim.pick("find_files", { no_ignore = true, default_text = line })()\n end\n local find_files_with_hidden = function()\n local action_state = require("telescope.actions.state")\n local line = action_state.get_current_line()\n LazyVim.pick("find_files", { hidden = true, default_text = line })()\n end\n\n local function find_command()\n if 1 == vim.fn.executable("rg") then\n return { "rg", "--files", "--color", "never", "-g", "!.git" }\n elseif 1 == vim.fn.executable("fd") then\n return { "fd", "--type", "f", "--color", "never", "-E", ".git" }\n elseif 1 == vim.fn.executable("fdfind") then\n return { "fdfind", "--type", "f", "--color", "never", "-E", ".git" }\n elseif 1 == vim.fn.executable("find") and vim.fn.has("win32") == 0 then\n return { "find", ".", "-type", "f" }\n elseif 1 == vim.fn.executable("where") then\n return { "where", "/r", ".", "*" }\n end\n end\n\n return {\n defaults = {\n prompt_prefix = "\uf054 ",\n selection_caret = "\uf44a ",\n -- open files in the first window that is an actual file.\n -- use the current window if no other window is available.\n get_selection_window = function()\n local wins = vim.api.nvim_list_wins()\n table.insert(wins, 1, vim.api.nvim_get_current_win())\n for _, win in ipairs(wins) do\n local buf = vim.api.nvim_win_get_buf(win)\n if vim.bo[buf].buftype == "" then\n return win\n end\n end\n return 0\n end,\n mappings = {\n i = {\n ["<c-t>"] = open_with_trouble,\n ["<a-t>"] = open_with_trouble,\n ["<a-i>"] = find_files_no_ignore,\n ["<a-h>"] = find_files_with_hidden,\n ["<C-Down>"] = actions.cycle_history_next,\n ["<C-Up>"] = actions.cycle_history_prev,\n ["<C-f>"] = actions.preview_scrolling_down,\n ["<C-b>"] = actions.preview_scrolling_up,\n },\n n = {\n ["q"] = actions.close,\n },\n },\n },\n pickers = {\n find_files = {\n find_command = find_command,\n hidden = true,\n },\n },\n }\n end,\n}\n')))),(0,l.kt)("h2",{id:"dressingnvim"},(0,l.kt)("a",{parentName:"h2",href:"https://github.com/stevearc/dressing.nvim"},"dressing.nvim")),(0,l.kt)("p",null," better vim.ui with telescope"),(0,l.kt)(r.Z,{mdxType:"Tabs"},(0,l.kt)(a.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-lua"},"opts = nil\n"))),(0,l.kt)(a.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "stevearc/dressing.nvim",\n lazy = true,\n init = function()\n ---@diagnostic disable-next-line: duplicate-set-field\n vim.ui.select = function(...)\n require("lazy").load({ plugins = { "dressing.nvim" } })\n return vim.ui.select(...)\n end\n ---@diagnostic disable-next-line: duplicate-set-field\n vim.ui.input = function(...)\n require("lazy").load({ plugins = { "dressing.nvim" } })\n return vim.ui.input(...)\n end\n end,\n}\n')))),(0,l.kt)("h2",{id:"telescopenvim-1"},(0,l.kt)("a",{parentName:"h2",href:"https://github.com/nvim-telescope/telescope.nvim"},"telescope.nvim")),(0,l.kt)("p",null," Flash Telescope config"),(0,l.kt)(r.Z,{mdxType:"Tabs"},(0,l.kt)(a.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-lua"},'opts = function(_, opts)\n if not LazyVim.has("flash.nvim") then\n return\n end\n local function flash(prompt_bufnr)\n require("flash").jump({\n pattern = "^",\n label = { after = { 0, 0 } },\n search = {\n mode = "search",\n exclude = {\n function(win)\n return vim.bo[vim.api.nvim_win_get_buf(win)].filetype ~= "TelescopeResults"\n end,\n },\n },\n action = function(match)\n local picker = require("telescope.actions.state").get_current_picker(prompt_bufnr)\n picker:set_selection(match.pos[1] - 1)\n end,\n })\n end\n opts.defaults = vim.tbl_deep_extend("force", opts.defaults or {}, {\n mappings = { n = { s = flash }, i = { ["<c-s>"] = flash } },\n })\nend\n'))),(0,l.kt)(a.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "nvim-telescope/telescope.nvim",\n optional = true,\n opts = function(_, opts)\n if not LazyVim.has("flash.nvim") then\n return\n end\n local function flash(prompt_bufnr)\n require("flash").jump({\n pattern = "^",\n label = { after = { 0, 0 } },\n search = {\n mode = "search",\n exclude = {\n function(win)\n return vim.bo[vim.api.nvim_win_get_buf(win)].filetype ~= "TelescopeResults"\n end,\n },\n },\n action = function(match)\n local picker = require("telescope.actions.state").get_current_picker(prompt_bufnr)\n picker:set_selection(match.pos[1] - 1)\n end,\n })\n end\n opts.defaults = vim.tbl_deep_extend("force", opts.defaults or {}, {\n mappings = { n = { s = flash }, i = { ["<c-s>"] = flash } },\n })\n end,\n}\n')))),(0,l.kt)("h2",{id:"telescope-fzf-nativenvim"},(0,l.kt)("a",{parentName:"h2",href:"https://github.com/nvim-telescope/telescope-fzf-native.nvim"},"telescope-fzf-native.nvim")),(0,l.kt)(r.Z,{mdxType:"Tabs"},(0,l.kt)(a.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-lua"},"opts = {}\n"))),(0,l.kt)(a.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "nvim-telescope/telescope-fzf-native.nvim",\n build = (build_cmd ~= "cmake") and "make"\n or "cmake -S. -Bbuild -DCMAKE_BUILD_TYPE=Release && cmake --build build --config Release && cmake --install build --prefix build",\n enabled = build_cmd ~= nil,\n config = function(plugin)\n LazyVim.on_load("telescope.nvim", function()\n local ok, err = pcall(require("telescope").load_extension, "fzf")\n if not ok then\n local lib = plugin.dir .. "/build/libfzf." .. (LazyVim.is_win() and "dll" or "so")\n if not vim.uv.fs_stat(lib) then\n LazyVim.warn("`telescope-fzf-native.nvim` not built. Rebuilding...")\n require("lazy").build({ plugins = { plugin }, show = false }):wait(function()\n LazyVim.info("Rebuilding `telescope-fzf-native.nvim` done.\\nPlease restart Neovim.")\n end)\n else\n LazyVim.error("Failed to load `telescope-fzf-native.nvim`:\\n" .. err)\n end\n end\n end)\n end,\n}\n')))),(0,l.kt)("h2",{id:"nvim-lspconfig"},(0,l.kt)("a",{parentName:"h2",href:"https://github.com/neovim/nvim-lspconfig"},"nvim-lspconfig")),(0,l.kt)(r.Z,{mdxType:"Tabs"},(0,l.kt)(a.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-lua"},'opts = function()\n local Keys = require("lazyvim.plugins.lsp.keymaps").get()\n -- stylua: ignore\n vim.list_extend(Keys, {\n { "gd", function() require("telescope.builtin").lsp_definitions({ reuse_win = true }) end, desc = "Goto Definition", has = "definition" },\n { "gr", "<cmd>Telescope lsp_references<cr>", desc = "References", nowait = true },\n { "gI", function() require("telescope.builtin").lsp_implementations({ reuse_win = true }) end, desc = "Goto Implementation" },\n { "gy", function() require("telescope.builtin").lsp_type_definitions({ reuse_win = true }) end, desc = "Goto T[y]pe Definition" },\n })\nend\n'))),(0,l.kt)(a.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "neovim/nvim-lspconfig",\n opts = function()\n local Keys = require("lazyvim.plugins.lsp.keymaps").get()\n -- stylua: ignore\n vim.list_extend(Keys, {\n { "gd", function() require("telescope.builtin").lsp_definitions({ reuse_win = true }) end, desc = "Goto Definition", has = "definition" },\n { "gr", "<cmd>Telescope lsp_references<cr>", desc = "References", nowait = true },\n { "gI", function() require("telescope.builtin").lsp_implementations({ reuse_win = true }) end, desc = "Goto Implementation" },\n { "gy", function() require("telescope.builtin").lsp_type_definitions({ reuse_win = true }) end, desc = "Goto T[y]pe Definition" },\n })\n end,\n}\n')))))}f.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/935f2afb.0e483e6c.js b/assets/js/935f2afb.0e483e6c.js new file mode 100644 index 0000000000..eb9cb66c19 --- /dev/null +++ b/assets/js/935f2afb.0e483e6c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklazyvim=self.webpackChunklazyvim||[]).push([[53],{1109:e=>{e.exports=JSON.parse('{"pluginId":"default","version":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"tutorialSidebar":[{"type":"link","label":"\ud83d\ude80 Getting Started","href":"/","docId":"intro"},{"type":"link","label":"\ud83d\udee0\ufe0f Installation","href":"/installation","docId":"installation"},{"type":"link","label":"\ud83d\udcf0 What\'s new?","href":"/news","docId":"news"},{"type":"link","label":"\u2328\ufe0f Keymaps","href":"/keymaps","docId":"keymaps"},{"type":"category","label":"\u2699\ufe0f Configuration","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"lazy.nvim","href":"/configuration/lazy.nvim","docId":"configuration/lazy.nvim"},{"type":"link","label":"General Settings","href":"/configuration/general","docId":"configuration/general"},{"type":"link","label":"Plugins","href":"/configuration/plugins","docId":"configuration/plugins"},{"type":"link","label":"Keymaps","href":"/configuration/keymaps","docId":"configuration/keymaps"},{"type":"link","label":"Examples","href":"/configuration/examples","docId":"configuration/examples"},{"type":"link","label":"Recipes","href":"/configuration/recipes","docId":"configuration/recipes"},{"type":"link","label":"Tips","href":"/configuration/tips","docId":"configuration/tips"}],"href":"/configuration/"},{"type":"category","label":"\ud83d\udce6 Plugins","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Coding","href":"/plugins/coding","docId":"plugins/coding"},{"type":"link","label":"Colorscheme","href":"/plugins/colorscheme","docId":"plugins/colorscheme"},{"type":"link","label":"Editor","href":"/plugins/editor","docId":"plugins/editor"},{"type":"link","label":"Formatting","href":"/plugins/formatting","docId":"plugins/formatting"},{"type":"link","label":"Linting","href":"/plugins/linting","docId":"plugins/linting"},{"type":"link","label":"LSP","href":"/plugins/lsp","docId":"plugins/lsp"},{"type":"link","label":"TreeSitter","href":"/plugins/treesitter","docId":"plugins/treesitter"},{"type":"link","label":"UI","href":"/plugins/ui","docId":"plugins/ui"},{"type":"link","label":"Util","href":"/plugins/util","docId":"plugins/util"}],"href":"/plugins/"},{"type":"category","label":"\u2b50 Extras","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"ai","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Avante","href":"/extras/ai/avante","docId":"extras/ai/avante"},{"type":"link","label":"Claudecode","href":"/extras/ai/claudecode","docId":"extras/ai/claudecode"},{"type":"link","label":"Codeium","href":"/extras/ai/codeium","docId":"extras/ai/codeium"},{"type":"link","label":"Copilot-chat","href":"/extras/ai/copilot-chat","docId":"extras/ai/copilot-chat"},{"type":"link","label":"Copilot-native","href":"/extras/ai/copilot-native","docId":"extras/ai/copilot-native"},{"type":"link","label":"Copilot","href":"/extras/ai/copilot","docId":"extras/ai/copilot"},{"type":"link","label":"Sidekick","href":"/extras/ai/sidekick","docId":"extras/ai/sidekick"},{"type":"link","label":"Supermaven","href":"/extras/ai/supermaven","docId":"extras/ai/supermaven"},{"type":"link","label":"Tabnine","href":"/extras/ai/tabnine","docId":"extras/ai/tabnine"}]},{"type":"category","label":"coding","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Blink","href":"/extras/coding/blink","docId":"extras/coding/blink"},{"type":"link","label":"Luasnip","href":"/extras/coding/luasnip","docId":"extras/coding/luasnip"},{"type":"link","label":"Mini-comment","href":"/extras/coding/mini-comment","docId":"extras/coding/mini-comment"},{"type":"link","label":"Mini-snippets","href":"/extras/coding/mini-snippets","docId":"extras/coding/mini-snippets"},{"type":"link","label":"Mini-surround","href":"/extras/coding/mini-surround","docId":"extras/coding/mini-surround"},{"type":"link","label":"Neogen","href":"/extras/coding/neogen","docId":"extras/coding/neogen"},{"type":"link","label":"Nvim-cmp","href":"/extras/coding/nvim-cmp","docId":"extras/coding/nvim-cmp"},{"type":"link","label":"yanky.nvim","href":"/extras/coding/yanky","docId":"extras/coding/yanky"}]},{"type":"category","label":"dap","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"DAP Core","href":"/extras/dap/core","docId":"extras/dap/core"},{"type":"link","label":"DAP Neovim Lua Adapter","href":"/extras/dap/nlua","docId":"extras/dap/nlua"}]},{"type":"category","label":"editor","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Aerial","href":"/extras/editor/aerial","docId":"extras/editor/aerial"},{"type":"link","label":"Dial","href":"/extras/editor/dial","docId":"extras/editor/dial"},{"type":"link","label":"Fzf","href":"/extras/editor/fzf","docId":"extras/editor/fzf"},{"type":"link","label":"Harpoon2","href":"/extras/editor/harpoon2","docId":"extras/editor/harpoon2"},{"type":"link","label":"Illuminate","href":"/extras/editor/illuminate","docId":"extras/editor/illuminate"},{"type":"link","label":"Inc-rename","href":"/extras/editor/inc-rename","docId":"extras/editor/inc-rename"},{"type":"link","label":"Leap","href":"/extras/editor/leap","docId":"extras/editor/leap"},{"type":"link","label":"Mini-diff","href":"/extras/editor/mini-diff","docId":"extras/editor/mini-diff"},{"type":"link","label":"Mini Files","href":"/extras/editor/mini-files","docId":"extras/editor/mini-files"},{"type":"link","label":"Mini-move","href":"/extras/editor/mini-move","docId":"extras/editor/mini-move"},{"type":"link","label":"Navic","href":"/extras/editor/navic","docId":"extras/editor/navic"},{"type":"link","label":"Neo-tree","href":"/extras/editor/neo-tree","docId":"extras/editor/neo-tree"},{"type":"link","label":"Outline","href":"/extras/editor/outline","docId":"extras/editor/outline"},{"type":"link","label":"Overseer","href":"/extras/editor/overseer","docId":"extras/editor/overseer"},{"type":"link","label":"Refactoring","href":"/extras/editor/refactoring","docId":"extras/editor/refactoring"},{"type":"link","label":"Snacks_explorer","href":"/extras/editor/snacks_explorer","docId":"extras/editor/snacks_explorer"},{"type":"link","label":"Snacks_picker","href":"/extras/editor/snacks_picker","docId":"extras/editor/snacks_picker"},{"type":"link","label":"Telescope","href":"/extras/editor/telescope","docId":"extras/editor/telescope"}]},{"type":"category","label":"formatting","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Biome","href":"/extras/formatting/biome","docId":"extras/formatting/biome"},{"type":"link","label":"Black Formatter","href":"/extras/formatting/black","docId":"extras/formatting/black"},{"type":"link","label":"Prettier","href":"/extras/formatting/prettier","docId":"extras/formatting/prettier"}]},{"type":"category","label":"lang","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Angular","href":"/extras/lang/angular","docId":"extras/lang/angular"},{"type":"link","label":"Ansible","href":"/extras/lang/ansible","docId":"extras/lang/ansible"},{"type":"link","label":"Astro","href":"/extras/lang/astro","docId":"extras/lang/astro"},{"type":"link","label":"Clangd","href":"/extras/lang/clangd","docId":"extras/lang/clangd"},{"type":"link","label":"Clojure","href":"/extras/lang/clojure","docId":"extras/lang/clojure"},{"type":"link","label":"CMake","href":"/extras/lang/cmake","docId":"extras/lang/cmake"},{"type":"link","label":"Dart","href":"/extras/lang/dart","docId":"extras/lang/dart"},{"type":"link","label":"Docker","href":"/extras/lang/docker","docId":"extras/lang/docker"},{"type":"link","label":"Dotnet","href":"/extras/lang/dotnet","docId":"extras/lang/dotnet"},{"type":"link","label":"Elixir","href":"/extras/lang/elixir","docId":"extras/lang/elixir"},{"type":"link","label":"Elm","href":"/extras/lang/elm","docId":"extras/lang/elm"},{"type":"link","label":"Ember","href":"/extras/lang/ember","docId":"extras/lang/ember"},{"type":"link","label":"Erlang","href":"/extras/lang/erlang","docId":"extras/lang/erlang"},{"type":"link","label":"Git","href":"/extras/lang/git","docId":"extras/lang/git"},{"type":"link","label":"Gleam","href":"/extras/lang/gleam","docId":"extras/lang/gleam"},{"type":"link","label":"Go","href":"/extras/lang/go","docId":"extras/lang/go"},{"type":"link","label":"Haskell","href":"/extras/lang/haskell","docId":"extras/lang/haskell"},{"type":"link","label":"Helm","href":"/extras/lang/helm","docId":"extras/lang/helm"},{"type":"link","label":"Java","href":"/extras/lang/java","docId":"extras/lang/java"},{"type":"link","label":"JSON","href":"/extras/lang/json","docId":"extras/lang/json"},{"type":"link","label":"Julia","href":"/extras/lang/julia","docId":"extras/lang/julia"},{"type":"link","label":"Kotlin","href":"/extras/lang/kotlin","docId":"extras/lang/kotlin"},{"type":"link","label":"Lean","href":"/extras/lang/lean","docId":"extras/lang/lean"},{"type":"link","label":"Markdown","href":"/extras/lang/markdown","docId":"extras/lang/markdown"},{"type":"link","label":"Nix","href":"/extras/lang/nix","docId":"extras/lang/nix"},{"type":"link","label":"Nushell","href":"/extras/lang/nushell","docId":"extras/lang/nushell"},{"type":"link","label":"Ocaml","href":"/extras/lang/ocaml","docId":"extras/lang/ocaml"},{"type":"link","label":"PHP","href":"/extras/lang/php","docId":"extras/lang/php"},{"type":"link","label":"Prisma","href":"/extras/lang/prisma","docId":"extras/lang/prisma"},{"type":"link","label":"Python","href":"/extras/lang/python","docId":"extras/lang/python"},{"type":"link","label":"R","href":"/extras/lang/r","docId":"extras/lang/r"},{"type":"link","label":"Rego","href":"/extras/lang/rego","docId":"extras/lang/rego"},{"type":"link","label":"Ruby","href":"/extras/lang/ruby","docId":"extras/lang/ruby"},{"type":"link","label":"Rust","href":"/extras/lang/rust","docId":"extras/lang/rust"},{"type":"link","label":"Scala","href":"/extras/lang/scala","docId":"extras/lang/scala"},{"type":"link","label":"Solidity","href":"/extras/lang/solidity","docId":"extras/lang/solidity"},{"type":"link","label":"Sql","href":"/extras/lang/sql","docId":"extras/lang/sql"},{"type":"link","label":"Svelte","href":"/extras/lang/svelte","docId":"extras/lang/svelte"},{"type":"link","label":"Tailwind CSS","href":"/extras/lang/tailwind","docId":"extras/lang/tailwind"},{"type":"link","label":"Terraform","href":"/extras/lang/terraform","docId":"extras/lang/terraform"},{"type":"link","label":"Tex","href":"/extras/lang/tex","docId":"extras/lang/tex"},{"type":"link","label":"Thrift","href":"/extras/lang/thrift","docId":"extras/lang/thrift"},{"type":"link","label":"Toml","href":"/extras/lang/toml","docId":"extras/lang/toml"},{"type":"link","label":"Twig","href":"/extras/lang/twig","docId":"extras/lang/twig"},{"type":"link","label":"Typescript","href":"/extras/lang/typescript","docId":"extras/lang/typescript"},{"type":"link","label":"Typst","href":"/extras/lang/typst","docId":"extras/lang/typst"},{"type":"link","label":"Vue","href":"/extras/lang/vue","docId":"extras/lang/vue"},{"type":"link","label":"YAML","href":"/extras/lang/yaml","docId":"extras/lang/yaml"},{"type":"link","label":"Zig","href":"/extras/lang/zig","docId":"extras/lang/zig"}]},{"type":"category","label":"linting","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Eslint","href":"/extras/linting/eslint","docId":"extras/linting/eslint"}]},{"type":"category","label":"lsp","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Neoconf","href":"/extras/lsp/neoconf","docId":"extras/lsp/neoconf"},{"type":"link","label":"none-ls","href":"/extras/lsp/none-ls","docId":"extras/lsp/none-ls"}]},{"type":"category","label":"test","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Neotest","href":"/extras/test/core","docId":"extras/test/core"}]},{"type":"category","label":"ui","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Alpha","href":"/extras/ui/alpha","docId":"extras/ui/alpha"},{"type":"link","label":"Dashboard-nvim","href":"/extras/ui/dashboard-nvim","docId":"extras/ui/dashboard-nvim"},{"type":"link","label":"edgy.nvim","href":"/extras/ui/edgy","docId":"extras/ui/edgy"},{"type":"link","label":"Indent-blankline","href":"/extras/ui/indent-blankline","docId":"extras/ui/indent-blankline"},{"type":"link","label":"Mini Animate","href":"/extras/ui/mini-animate","docId":"extras/ui/mini-animate"},{"type":"link","label":"Mini-indentscope","href":"/extras/ui/mini-indentscope","docId":"extras/ui/mini-indentscope"},{"type":"link","label":"Mini Starter","href":"/extras/ui/mini-starter","docId":"extras/ui/mini-starter"},{"type":"link","label":"Smear-cursor","href":"/extras/ui/smear-cursor","docId":"extras/ui/smear-cursor"},{"type":"link","label":"Treesitter-context","href":"/extras/ui/treesitter-context","docId":"extras/ui/treesitter-context"}]},{"type":"category","label":"util","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Chezmoi","href":"/extras/util/chezmoi","docId":"extras/util/chezmoi"},{"type":"link","label":"Dot Files","href":"/extras/util/dot","docId":"extras/util/dot"},{"type":"link","label":"Gh","href":"/extras/util/gh","docId":"extras/util/gh"},{"type":"link","label":"Gitui","href":"/extras/util/gitui","docId":"extras/util/gitui"},{"type":"link","label":"Mini Hipatterns","href":"/extras/util/mini-hipatterns","docId":"extras/util/mini-hipatterns"},{"type":"link","label":"Octo","href":"/extras/util/octo","docId":"extras/util/octo"},{"type":"link","label":"Project","href":"/extras/util/project","docId":"extras/util/project"},{"type":"link","label":"Rest","href":"/extras/util/rest","docId":"extras/util/rest"},{"type":"link","label":"Startuptime","href":"/extras/util/startuptime","docId":"extras/util/startuptime"}]},{"type":"link","label":"VS Code","href":"/extras/vscode","docId":"extras/vscode"}],"href":"/extras/"}]},"docs":{"configuration/examples":{"id":"configuration/examples","title":"Examples","description":"","sidebar":"tutorialSidebar"},"configuration/general":{"id":"configuration/general","title":"General Settings","description":"The files autocmds.lua, keymaps.lua, lazy.lua and options.lua under lua/config will be automatically loaded at the appropriate time,","sidebar":"tutorialSidebar"},"configuration/index":{"id":"configuration/index","title":"\u2699\ufe0f Configuration","description":"\ud83d\udcc2 File Structure","sidebar":"tutorialSidebar"},"configuration/keymaps":{"id":"configuration/keymaps","title":"Keymaps","description":"LazyVim provides multiple ways to configure keymaps.","sidebar":"tutorialSidebar"},"configuration/lazy.nvim":{"id":"configuration/lazy.nvim","title":"lazy.nvim","description":"The starter includes a pre-configured lazy.nvim","sidebar":"tutorialSidebar"},"configuration/plugins":{"id":"configuration/plugins","title":"Plugins","description":"Configuring LazyVim plugins is exactly the same as using lazy.nvim to build","sidebar":"tutorialSidebar"},"configuration/recipes":{"id":"configuration/recipes","title":"Recipes","description":"Add a nvim-cmp source","sidebar":"tutorialSidebar"},"configuration/tips":{"id":"configuration/tips","title":"Tips","description":"Navigating around multiple buffers","sidebar":"tutorialSidebar"},"extras/ai/avante":{"id":"extras/ai/avante","title":"Avante","description":"You can enable the extra with the :LazyExtras command.","sidebar":"tutorialSidebar"},"extras/ai/claudecode":{"id":"extras/ai/claudecode","title":"Claudecode","description":"You can enable the extra with the :LazyExtras command.","sidebar":"tutorialSidebar"},"extras/ai/codeium":{"id":"extras/ai/codeium","title":"Codeium","description":"You can enable the extra with the :LazyExtras command.","sidebar":"tutorialSidebar"},"extras/ai/copilot":{"id":"extras/ai/copilot","title":"Copilot","description":"You can enable the extra with the :LazyExtras command.","sidebar":"tutorialSidebar"},"extras/ai/copilot-chat":{"id":"extras/ai/copilot-chat","title":"Copilot-chat","description":"You can enable the extra with the :LazyExtras command.","sidebar":"tutorialSidebar"},"extras/ai/copilot-native":{"id":"extras/ai/copilot-native","title":"Copilot-native","description":"You can enable the extra with the :LazyExtras command.","sidebar":"tutorialSidebar"},"extras/ai/sidekick":{"id":"extras/ai/sidekick","title":"Sidekick","description":"You can enable the extra with the :LazyExtras command.","sidebar":"tutorialSidebar"},"extras/ai/supermaven":{"id":"extras/ai/supermaven","title":"Supermaven","description":"You can enable the extra with the :LazyExtras command.","sidebar":"tutorialSidebar"},"extras/ai/tabnine":{"id":"extras/ai/tabnine","title":"Tabnine","description":"You can enable the extra with the :LazyExtras command.","sidebar":"tutorialSidebar"},"extras/coding/blink":{"id":"extras/coding/blink","title":"Blink","description":"You can enable the extra with the :LazyExtras command.","sidebar":"tutorialSidebar"},"extras/coding/luasnip":{"id":"extras/coding/luasnip","title":"Luasnip","description":"You can enable the extra with the :LazyExtras command.","sidebar":"tutorialSidebar"},"extras/coding/mini-comment":{"id":"extras/coding/mini-comment","title":"Mini-comment","description":"You can enable the extra with the :LazyExtras command.","sidebar":"tutorialSidebar"},"extras/coding/mini-snippets":{"id":"extras/coding/mini-snippets","title":"Mini-snippets","description":"You can enable the extra with the :LazyExtras command.","sidebar":"tutorialSidebar"},"extras/coding/mini-surround":{"id":"extras/coding/mini-surround","title":"Mini-surround","description":"You can enable the extra with the :LazyExtras command.","sidebar":"tutorialSidebar"},"extras/coding/neogen":{"id":"extras/coding/neogen","title":"Neogen","description":"You can enable the extra with the :LazyExtras command.","sidebar":"tutorialSidebar"},"extras/coding/nvim-cmp":{"id":"extras/coding/nvim-cmp","title":"Nvim-cmp","description":"You can enable the extra with the :LazyExtras command.","sidebar":"tutorialSidebar"},"extras/coding/yanky":{"id":"extras/coding/yanky","title":"yanky.nvim","description":"The default LazyVim mappings to cycle yank history are [y and ]y","sidebar":"tutorialSidebar"},"extras/dap/core":{"id":"extras/dap/core","title":"DAP Core","description":"You can enable the extra with the :LazyExtras command.","sidebar":"tutorialSidebar"},"extras/dap/nlua":{"id":"extras/dap/nlua","title":"DAP Neovim Lua Adapter","description":"You can enable the extra with the :LazyExtras command.","sidebar":"tutorialSidebar"},"extras/editor/aerial":{"id":"extras/editor/aerial","title":"Aerial","description":"You can enable the extra with the :LazyExtras command.","sidebar":"tutorialSidebar"},"extras/editor/dial":{"id":"extras/editor/dial","title":"Dial","description":"You can enable the extra with the :LazyExtras command.","sidebar":"tutorialSidebar"},"extras/editor/fzf":{"id":"extras/editor/fzf","title":"Fzf","description":"You can enable the extra with the :LazyExtras command.","sidebar":"tutorialSidebar"},"extras/editor/harpoon2":{"id":"extras/editor/harpoon2","title":"Harpoon2","description":"You can enable the extra with the :LazyExtras command.","sidebar":"tutorialSidebar"},"extras/editor/illuminate":{"id":"extras/editor/illuminate","title":"Illuminate","description":"You can enable the extra with the :LazyExtras command.","sidebar":"tutorialSidebar"},"extras/editor/inc-rename":{"id":"extras/editor/inc-rename","title":"Inc-rename","description":"You can enable the extra with the :LazyExtras command.","sidebar":"tutorialSidebar"},"extras/editor/leap":{"id":"extras/editor/leap","title":"Leap","description":"You can enable the extra with the :LazyExtras command.","sidebar":"tutorialSidebar"},"extras/editor/mini-diff":{"id":"extras/editor/mini-diff","title":"Mini-diff","description":"You can enable the extra with the :LazyExtras command.","sidebar":"tutorialSidebar"},"extras/editor/mini-files":{"id":"extras/editor/mini-files","title":"Mini Files","description":"You can enable the extra with the :LazyExtras command.","sidebar":"tutorialSidebar"},"extras/editor/mini-move":{"id":"extras/editor/mini-move","title":"Mini-move","description":"You can enable the extra with the :LazyExtras command.","sidebar":"tutorialSidebar"},"extras/editor/navic":{"id":"extras/editor/navic","title":"Navic","description":"You can enable the extra with the :LazyExtras command.","sidebar":"tutorialSidebar"},"extras/editor/neo-tree":{"id":"extras/editor/neo-tree","title":"Neo-tree","description":"You can enable the extra with the :LazyExtras command.","sidebar":"tutorialSidebar"},"extras/editor/outline":{"id":"extras/editor/outline","title":"Outline","description":"You can enable the extra with the :LazyExtras command.","sidebar":"tutorialSidebar"},"extras/editor/overseer":{"id":"extras/editor/overseer","title":"Overseer","description":"You can enable the extra with the :LazyExtras command.","sidebar":"tutorialSidebar"},"extras/editor/refactoring":{"id":"extras/editor/refactoring","title":"Refactoring","description":"You can enable the extra with the :LazyExtras command.","sidebar":"tutorialSidebar"},"extras/editor/snacks_explorer":{"id":"extras/editor/snacks_explorer","title":"Snacks_explorer","description":"You can enable the extra with the :LazyExtras command.","sidebar":"tutorialSidebar"},"extras/editor/snacks_picker":{"id":"extras/editor/snacks_picker","title":"Snacks_picker","description":"You can enable the extra with the :LazyExtras command.","sidebar":"tutorialSidebar"},"extras/editor/telescope":{"id":"extras/editor/telescope","title":"Telescope","description":"You can enable the extra with the :LazyExtras command.","sidebar":"tutorialSidebar"},"extras/formatting/biome":{"id":"extras/formatting/biome","title":"Biome","description":"You can enable the extra with the :LazyExtras command.","sidebar":"tutorialSidebar"},"extras/formatting/black":{"id":"extras/formatting/black","title":"Black Formatter","description":"You can enable the extra with the :LazyExtras command.","sidebar":"tutorialSidebar"},"extras/formatting/prettier":{"id":"extras/formatting/prettier","title":"Prettier","description":"You can enable the extra with the :LazyExtras command.","sidebar":"tutorialSidebar"},"extras/index":{"id":"extras/index","title":"Extras","description":"The easiest way to install extras in LazyVim is with the :LazyExtras command.","sidebar":"tutorialSidebar"},"extras/lang/angular":{"id":"extras/lang/angular","title":"Angular","description":"You can enable the extra with the :LazyExtras command.","sidebar":"tutorialSidebar"},"extras/lang/ansible":{"id":"extras/lang/ansible","title":"Ansible","description":"You can enable the extra with the :LazyExtras command.","sidebar":"tutorialSidebar"},"extras/lang/astro":{"id":"extras/lang/astro","title":"Astro","description":"You can enable the extra with the :LazyExtras command.","sidebar":"tutorialSidebar"},"extras/lang/clangd":{"id":"extras/lang/clangd","title":"Clangd","description":"You can enable the extra with the :LazyExtras command.","sidebar":"tutorialSidebar"},"extras/lang/clojure":{"id":"extras/lang/clojure","title":"Clojure","description":"You can enable the extra with the :LazyExtras command.","sidebar":"tutorialSidebar"},"extras/lang/cmake":{"id":"extras/lang/cmake","title":"CMake","description":"You can enable the extra with the :LazyExtras command.","sidebar":"tutorialSidebar"},"extras/lang/dart":{"id":"extras/lang/dart","title":"Dart","description":"You can enable the extra with the :LazyExtras command.","sidebar":"tutorialSidebar"},"extras/lang/docker":{"id":"extras/lang/docker","title":"Docker","description":"You can enable the extra with the :LazyExtras command.","sidebar":"tutorialSidebar"},"extras/lang/dotnet":{"id":"extras/lang/dotnet","title":"Dotnet","description":"You can enable the extra with the :LazyExtras command.","sidebar":"tutorialSidebar"},"extras/lang/elixir":{"id":"extras/lang/elixir","title":"Elixir","description":"You can enable the extra with the :LazyExtras command.","sidebar":"tutorialSidebar"},"extras/lang/elm":{"id":"extras/lang/elm","title":"Elm","description":"You can enable the extra with the :LazyExtras command.","sidebar":"tutorialSidebar"},"extras/lang/ember":{"id":"extras/lang/ember","title":"Ember","description":"You can enable the extra with the :LazyExtras command.","sidebar":"tutorialSidebar"},"extras/lang/erlang":{"id":"extras/lang/erlang","title":"Erlang","description":"You can enable the extra with the :LazyExtras command.","sidebar":"tutorialSidebar"},"extras/lang/git":{"id":"extras/lang/git","title":"Git","description":"You can enable the extra with the :LazyExtras command.","sidebar":"tutorialSidebar"},"extras/lang/gleam":{"id":"extras/lang/gleam","title":"Gleam","description":"You can enable the extra with the :LazyExtras command.","sidebar":"tutorialSidebar"},"extras/lang/go":{"id":"extras/lang/go","title":"Go","description":"You can enable the extra with the :LazyExtras command.","sidebar":"tutorialSidebar"},"extras/lang/haskell":{"id":"extras/lang/haskell","title":"Haskell","description":"You can enable the extra with the :LazyExtras command.","sidebar":"tutorialSidebar"},"extras/lang/helm":{"id":"extras/lang/helm","title":"Helm","description":"You can enable the extra with the :LazyExtras command.","sidebar":"tutorialSidebar"},"extras/lang/java":{"id":"extras/lang/java","title":"Java","description":"You can enable the extra with the :LazyExtras command.","sidebar":"tutorialSidebar"},"extras/lang/json":{"id":"extras/lang/json","title":"JSON","description":"You can enable the extra with the :LazyExtras command.","sidebar":"tutorialSidebar"},"extras/lang/julia":{"id":"extras/lang/julia","title":"Julia","description":"You can enable the extra with the :LazyExtras command.","sidebar":"tutorialSidebar"},"extras/lang/kotlin":{"id":"extras/lang/kotlin","title":"Kotlin","description":"You can enable the extra with the :LazyExtras command.","sidebar":"tutorialSidebar"},"extras/lang/lean":{"id":"extras/lang/lean","title":"Lean","description":"You can enable the extra with the :LazyExtras command.","sidebar":"tutorialSidebar"},"extras/lang/markdown":{"id":"extras/lang/markdown","title":"Markdown","description":"You can enable the extra with the :LazyExtras command.","sidebar":"tutorialSidebar"},"extras/lang/nix":{"id":"extras/lang/nix","title":"Nix","description":"You can enable the extra with the :LazyExtras command.","sidebar":"tutorialSidebar"},"extras/lang/nushell":{"id":"extras/lang/nushell","title":"Nushell","description":"You can enable the extra with the :LazyExtras command.","sidebar":"tutorialSidebar"},"extras/lang/ocaml":{"id":"extras/lang/ocaml","title":"Ocaml","description":"You can enable the extra with the :LazyExtras command.","sidebar":"tutorialSidebar"},"extras/lang/php":{"id":"extras/lang/php","title":"PHP","description":"You can enable the extra with the :LazyExtras command.","sidebar":"tutorialSidebar"},"extras/lang/prisma":{"id":"extras/lang/prisma","title":"Prisma","description":"You can enable the extra with the :LazyExtras command.","sidebar":"tutorialSidebar"},"extras/lang/python":{"id":"extras/lang/python","title":"Python","description":"You can enable the extra with the :LazyExtras command.","sidebar":"tutorialSidebar"},"extras/lang/r":{"id":"extras/lang/r","title":"R","description":"You can enable the extra with the :LazyExtras command.","sidebar":"tutorialSidebar"},"extras/lang/rego":{"id":"extras/lang/rego","title":"Rego","description":"You can enable the extra with the :LazyExtras command.","sidebar":"tutorialSidebar"},"extras/lang/ruby":{"id":"extras/lang/ruby","title":"Ruby","description":"You can enable the extra with the :LazyExtras command.","sidebar":"tutorialSidebar"},"extras/lang/rust":{"id":"extras/lang/rust","title":"Rust","description":"You can enable the extra with the :LazyExtras command.","sidebar":"tutorialSidebar"},"extras/lang/scala":{"id":"extras/lang/scala","title":"Scala","description":"You can enable the extra with the :LazyExtras command.","sidebar":"tutorialSidebar"},"extras/lang/solidity":{"id":"extras/lang/solidity","title":"Solidity","description":"You can enable the extra with the :LazyExtras command.","sidebar":"tutorialSidebar"},"extras/lang/sql":{"id":"extras/lang/sql","title":"Sql","description":"You can enable the extra with the :LazyExtras command.","sidebar":"tutorialSidebar"},"extras/lang/svelte":{"id":"extras/lang/svelte","title":"Svelte","description":"You can enable the extra with the :LazyExtras command.","sidebar":"tutorialSidebar"},"extras/lang/tailwind":{"id":"extras/lang/tailwind","title":"Tailwind CSS","description":"You can enable the extra with the :LazyExtras command.","sidebar":"tutorialSidebar"},"extras/lang/terraform":{"id":"extras/lang/terraform","title":"Terraform","description":"You can enable the extra with the :LazyExtras command.","sidebar":"tutorialSidebar"},"extras/lang/tex":{"id":"extras/lang/tex","title":"Tex","description":"You can enable the extra with the :LazyExtras command.","sidebar":"tutorialSidebar"},"extras/lang/thrift":{"id":"extras/lang/thrift","title":"Thrift","description":"You can enable the extra with the :LazyExtras command.","sidebar":"tutorialSidebar"},"extras/lang/toml":{"id":"extras/lang/toml","title":"Toml","description":"You can enable the extra with the :LazyExtras command.","sidebar":"tutorialSidebar"},"extras/lang/twig":{"id":"extras/lang/twig","title":"Twig","description":"You can enable the extra with the :LazyExtras command.","sidebar":"tutorialSidebar"},"extras/lang/typescript":{"id":"extras/lang/typescript","title":"Typescript","description":"You can enable the extra with the :LazyExtras command.","sidebar":"tutorialSidebar"},"extras/lang/typst":{"id":"extras/lang/typst","title":"Typst","description":"You can enable the extra with the :LazyExtras command.","sidebar":"tutorialSidebar"},"extras/lang/vue":{"id":"extras/lang/vue","title":"Vue","description":"You can enable the extra with the :LazyExtras command.","sidebar":"tutorialSidebar"},"extras/lang/yaml":{"id":"extras/lang/yaml","title":"YAML","description":"You can enable the extra with the :LazyExtras command.","sidebar":"tutorialSidebar"},"extras/lang/zig":{"id":"extras/lang/zig","title":"Zig","description":"You can enable the extra with the :LazyExtras command.","sidebar":"tutorialSidebar"},"extras/linting/eslint":{"id":"extras/linting/eslint","title":"Eslint","description":"You can enable the extra with the :LazyExtras command.","sidebar":"tutorialSidebar"},"extras/lsp/neoconf":{"id":"extras/lsp/neoconf","title":"Neoconf","description":"You can enable the extra with the :LazyExtras command.","sidebar":"tutorialSidebar"},"extras/lsp/none-ls":{"id":"extras/lsp/none-ls","title":"none-ls","description":"You can enable the extra with the :LazyExtras command.","sidebar":"tutorialSidebar"},"extras/test/core":{"id":"extras/test/core","title":"Neotest","description":"Please make sure to read the neotest docs on how to add test adapters.","sidebar":"tutorialSidebar"},"extras/ui/alpha":{"id":"extras/ui/alpha","title":"Alpha","description":"You can enable the extra with the :LazyExtras command.","sidebar":"tutorialSidebar"},"extras/ui/dashboard-nvim":{"id":"extras/ui/dashboard-nvim","title":"Dashboard-nvim","description":"You can enable the extra with the :LazyExtras command.","sidebar":"tutorialSidebar"},"extras/ui/edgy":{"id":"extras/ui/edgy","title":"edgy.nvim","description":"You can enable the extra with the :LazyExtras command.","sidebar":"tutorialSidebar"},"extras/ui/indent-blankline":{"id":"extras/ui/indent-blankline","title":"Indent-blankline","description":"You can enable the extra with the :LazyExtras command.","sidebar":"tutorialSidebar"},"extras/ui/mini-animate":{"id":"extras/ui/mini-animate","title":"Mini Animate","description":"You can enable the extra with the :LazyExtras command.","sidebar":"tutorialSidebar"},"extras/ui/mini-indentscope":{"id":"extras/ui/mini-indentscope","title":"Mini-indentscope","description":"You can enable the extra with the :LazyExtras command.","sidebar":"tutorialSidebar"},"extras/ui/mini-starter":{"id":"extras/ui/mini-starter","title":"Mini Starter","description":"You can enable the extra with the :LazyExtras command.","sidebar":"tutorialSidebar"},"extras/ui/smear-cursor":{"id":"extras/ui/smear-cursor","title":"Smear-cursor","description":"You can enable the extra with the :LazyExtras command.","sidebar":"tutorialSidebar"},"extras/ui/treesitter-context":{"id":"extras/ui/treesitter-context","title":"Treesitter-context","description":"You can enable the extra with the :LazyExtras command.","sidebar":"tutorialSidebar"},"extras/util/chezmoi":{"id":"extras/util/chezmoi","title":"Chezmoi","description":"You can enable the extra with the :LazyExtras command.","sidebar":"tutorialSidebar"},"extras/util/dot":{"id":"extras/util/dot","title":"Dot Files","description":"You can enable the extra with the :LazyExtras command.","sidebar":"tutorialSidebar"},"extras/util/gh":{"id":"extras/util/gh","title":"Gh","description":"You can enable the extra with the :LazyExtras command.","sidebar":"tutorialSidebar"},"extras/util/gitui":{"id":"extras/util/gitui","title":"Gitui","description":"You can enable the extra with the :LazyExtras command.","sidebar":"tutorialSidebar"},"extras/util/mini-hipatterns":{"id":"extras/util/mini-hipatterns","title":"Mini Hipatterns","description":"You can enable the extra with the :LazyExtras command.","sidebar":"tutorialSidebar"},"extras/util/octo":{"id":"extras/util/octo","title":"Octo","description":"You can enable the extra with the :LazyExtras command.","sidebar":"tutorialSidebar"},"extras/util/project":{"id":"extras/util/project","title":"Project","description":"You can enable the extra with the :LazyExtras command.","sidebar":"tutorialSidebar"},"extras/util/rest":{"id":"extras/util/rest","title":"Rest","description":"You can enable the extra with the :LazyExtras command.","sidebar":"tutorialSidebar"},"extras/util/startuptime":{"id":"extras/util/startuptime","title":"Startuptime","description":"You can enable the extra with the :LazyExtras command.","sidebar":"tutorialSidebar"},"extras/vscode":{"id":"extras/vscode","title":"VS Code","description":"This extra will only load when vim.g.vscode is set.","sidebar":"tutorialSidebar"},"installation":{"id":"installation","title":"\ud83d\udee0\ufe0f Installation","description":"You can find a starter template for LazyVim here","sidebar":"tutorialSidebar"},"intro":{"id":"intro","title":"\ud83d\ude80 Getting Started","description":"LazyVim is a Neovim setup powered by \ud83d\udca4 lazy.nvim","sidebar":"tutorialSidebar"},"keymaps":{"id":"keymaps","title":"\u2328\ufe0f Keymaps","description":"LazyVim uses which-key.nvim to help you remember your","sidebar":"tutorialSidebar"},"news":{"id":"news","title":"\ud83d\udcf0 What\'s new?","description":"15.x","sidebar":"tutorialSidebar"},"plugins/coding":{"id":"plugins/coding","title":"Coding","description":"mini.pairs","sidebar":"tutorialSidebar"},"plugins/colorscheme":{"id":"plugins/colorscheme","title":"Colorscheme","description":"Example for changing the colorscheme to Gruvbox:","sidebar":"tutorialSidebar"},"plugins/editor":{"id":"plugins/editor","title":"Editor","description":"grug-far.nvim","sidebar":"tutorialSidebar"},"plugins/formatting":{"id":"plugins/formatting","title":"Formatting","description":"LazyVim uses conform.nvim for formatting.","sidebar":"tutorialSidebar"},"plugins/index":{"id":"plugins/index","title":"Core Plugins","description":"LazyVim provides a set of preconfigured plugins enabled by default.","sidebar":"tutorialSidebar"},"plugins/linting":{"id":"plugins/linting","title":"Linting","description":"nvim-lint","sidebar":"tutorialSidebar"},"plugins/lsp":{"id":"plugins/lsp","title":"LSP","description":"\u2328\ufe0f Customizing LSP Keymaps","sidebar":"tutorialSidebar"},"plugins/treesitter":{"id":"plugins/treesitter","title":"TreeSitter","description":"nvim-treesitter","sidebar":"tutorialSidebar"},"plugins/ui":{"id":"plugins/ui","title":"UI","description":"bufferline.nvim","sidebar":"tutorialSidebar"},"plugins/util":{"id":"plugins/util","title":"Util","description":"snacks.nvim","sidebar":"tutorialSidebar"}}}')}}]); \ No newline at end of file diff --git a/assets/js/94b8409a.5d1a5141.js b/assets/js/94b8409a.5d1a5141.js new file mode 100644 index 0000000000..c46d29dfd0 --- /dev/null +++ b/assets/js/94b8409a.5d1a5141.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklazyvim=self.webpackChunklazyvim||[]).push([[5283],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>f});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function o(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?l(Object(n),!0).forEach((function(t){r(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):l(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function u(e,t){if(null==e)return{};var n,a,r=function(e,t){if(null==e)return{};var n,a,r={},l=Object.keys(e);for(a=0;a<l.length;a++)n=l[a],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a<l.length;a++)n=l[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var s=a.createContext({}),i=function(e){var t=a.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},p=function(e){var t=i(e.components);return a.createElement(s.Provider,{value:t},e.children)},c="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},d=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,l=e.originalType,s=e.parentName,p=u(e,["components","mdxType","originalType","parentName"]),c=i(n),d=r,f=c["".concat(s,".").concat(d)]||c[d]||m[d]||l;return n?a.createElement(f,o(o({ref:t},p),{},{components:n})):a.createElement(f,o({ref:t},p))}));function f(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var l=n.length,o=new Array(l);o[0]=d;var u={};for(var s in t)hasOwnProperty.call(t,s)&&(u[s]=t[s]);u.originalType=e,u[c]="string"==typeof e?e:r,o[1]=u;for(var i=2;i<l;i++)o[i]=n[i];return a.createElement.apply(null,o)}return a.createElement.apply(null,n)}d.displayName="MDXCreateElement"},5162:(e,t,n)=>{n.d(t,{Z:()=>o});var a=n(7294),r=n(6010);const l="tabItem_Ymn6";function o(e){let{children:t,hidden:n,className:o}=e;return a.createElement("div",{role:"tabpanel",className:(0,r.Z)(l,o),hidden:n},t)}},4866:(e,t,n)=>{n.d(t,{Z:()=>N});var a=n(7462),r=n(7294),l=n(6010),o=n(2466),u=n(6550),s=n(1980),i=n(7392),p=n(12);function c(e){return function(e){return r.Children.map(e,(e=>{if(!e||(0,r.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:t,label:n,attributes:a,default:r}}=e;return{value:t,label:n,attributes:a,default:r}}))}function m(e){const{values:t,children:n}=e;return(0,r.useMemo)((()=>{const e=t??c(n);return function(e){const t=(0,i.l)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[t,n])}function d(e){let{value:t,tabValues:n}=e;return n.some((e=>e.value===t))}function f(e){let{queryString:t=!1,groupId:n}=e;const a=(0,u.k6)(),l=function(e){let{queryString:t=!1,groupId:n}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!n)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return n??null}({queryString:t,groupId:n});return[(0,s._X)(l),(0,r.useCallback)((e=>{if(!l)return;const t=new URLSearchParams(a.location.search);t.set(l,e),a.replace({...a.location,search:t.toString()})}),[l,a])]}function g(e){const{defaultValue:t,queryString:n=!1,groupId:a}=e,l=m(e),[o,u]=(0,r.useState)((()=>function(e){let{defaultValue:t,tabValues:n}=e;if(0===n.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(t){if(!d({value:t,tabValues:n}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${n.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const a=n.find((e=>e.default))??n[0];if(!a)throw new Error("Unexpected error: 0 tabValues");return a.value}({defaultValue:t,tabValues:l}))),[s,i]=f({queryString:n,groupId:a}),[c,g]=function(e){let{groupId:t}=e;const n=function(e){return e?`docusaurus.tab.${e}`:null}(t),[a,l]=(0,p.Nk)(n);return[a,(0,r.useCallback)((e=>{n&&l.set(e)}),[n,l])]}({groupId:a}),b=(()=>{const e=s??c;return d({value:e,tabValues:l})?e:null})();(0,r.useLayoutEffect)((()=>{b&&u(b)}),[b]);return{selectedValue:o,selectValue:(0,r.useCallback)((e=>{if(!d({value:e,tabValues:l}))throw new Error(`Can't select invalid tab value=${e}`);u(e),i(e),g(e)}),[i,g,l]),tabValues:l}}var b=n(2389);const h="tabList__CuJ",v="tabItem_LNqP";function k(e){let{className:t,block:n,selectedValue:u,selectValue:s,tabValues:i}=e;const p=[],{blockElementScrollPositionUntilNextRender:c}=(0,o.o5)(),m=e=>{const t=e.currentTarget,n=p.indexOf(t),a=i[n].value;a!==u&&(c(t),s(a))},d=e=>{let t=null;switch(e.key){case"Enter":m(e);break;case"ArrowRight":{const n=p.indexOf(e.currentTarget)+1;t=p[n]??p[0];break}case"ArrowLeft":{const n=p.indexOf(e.currentTarget)-1;t=p[n]??p[p.length-1];break}}t?.focus()};return r.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,l.Z)("tabs",{"tabs--block":n},t)},i.map((e=>{let{value:t,label:n,attributes:o}=e;return r.createElement("li",(0,a.Z)({role:"tab",tabIndex:u===t?0:-1,"aria-selected":u===t,key:t,ref:e=>p.push(e),onKeyDown:d,onClick:m},o,{className:(0,l.Z)("tabs__item",v,o?.className,{"tabs__item--active":u===t})}),n??t)})))}function y(e){let{lazy:t,children:n,selectedValue:a}=e;const l=(Array.isArray(n)?n:[n]).filter(Boolean);if(t){const e=l.find((e=>e.props.value===a));return e?(0,r.cloneElement)(e,{className:"margin-top--md"}):null}return r.createElement("div",{className:"margin-top--md"},l.map(((e,t)=>(0,r.cloneElement)(e,{key:t,hidden:e.props.value!==a}))))}function T(e){const t=g(e);return r.createElement("div",{className:(0,l.Z)("tabs-container",h)},r.createElement(k,(0,a.Z)({},e,t)),r.createElement(y,(0,a.Z)({},e,t)))}function N(e){const t=(0,b.Z)();return r.createElement(T,(0,a.Z)({key:String(t)},e))}},1136:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>s,default:()=>d,frontMatter:()=>u,metadata:()=>i,toc:()=>c});var a=n(7462),r=(n(7294),n(3905)),l=n(4866),o=n(5162);const u={},s="R",i={unversionedId:"extras/lang/r",id:"extras/lang/r",title:"R",description:"You can enable the extra with the :LazyExtras command.",source:"@site/docs/extras/lang/r.md",sourceDirName:"extras/lang",slug:"/extras/lang/r",permalink:"/extras/lang/r",draft:!1,editUrl:"https://github.com/LazyVim/lazyvim.github.io/tree/main/docs/extras/lang/r.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Python",permalink:"/extras/lang/python"},next:{title:"Rego",permalink:"/extras/lang/rego"}},p={},c=[{value:"R.nvim",id:"rnvim",level:2},{value:"cmp-r",id:"cmp-r",level:2},{value:"nvim-treesitter",id:"nvim-treesitter",level:2},{value:"nvim-lspconfig",id:"nvim-lspconfig",level:2},{value:"neotest-testthat",id:"neotest-testthat",level:2},{value:"nvim-cmp <em>(optional)</em>",id:"nvim-cmp-optional",level:2},{value:"neotest <em>(optional)</em>",id:"neotest-optional",level:2}],m={toc:c};function d(e){let{components:t,...n}=e;return(0,r.kt)("wrapper",(0,a.Z)({},m,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"r"},(0,r.kt)("inlineCode",{parentName:"h1"},"R")),(0,r.kt)("admonition",{type:"info"},(0,r.kt)("p",{parentName:"admonition"},"You can enable the extra with the ",(0,r.kt)("inlineCode",{parentName:"p"},":LazyExtras")," command.\nPlugins marked as optional will only be configured if they are installed.")),(0,r.kt)("p",null,"Below you can find a list of included plugins and their default settings."),(0,r.kt)("admonition",{type:"caution"},(0,r.kt)("p",{parentName:"admonition"},"You don't need to copy the default settings to your config.\nThey are only shown here for reference.")),(0,r.kt)("h2",{id:"rnvim"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/R-nvim/R.nvim"},"R.nvim")),(0,r.kt)(l.Z,{mdxType:"Tabs"},(0,r.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = {\n -- Create a table with the options to be passed to setup()\n R_args = { "--quiet", "--no-save" },\n hook = {\n on_filetype = function()\n -- This function will be called at the FileType event\n -- of files supported by R.nvim. This is an\n -- opportunity to create mappings local to buffers.\n vim.keymap.set("n", "<Enter>", "<Plug>RDSendLine", { buffer = true })\n vim.keymap.set("x", "<Enter>", "<Plug>RSendSelection", { buffer = true })\n\n local wk = require("which-key")\n wk.add({\n buffer = true,\n mode = { "n", "x" },\n { "<localleader>a", group = "all" },\n { "<localleader>b", group = "between marks" },\n { "<localleader>c", group = "chunks" },\n { "<localleader>f", group = "functions" },\n { "<localleader>g", group = "goto" },\n { "<localleader>i", group = "install" },\n { "<localleader>k", group = "knit" },\n { "<localleader>p", group = "paragraph" },\n { "<localleader>q", group = "quarto" },\n { "<localleader>r", group = "r general" },\n { "<localleader>s", group = "split or send" },\n { "<localleader>t", group = "terminal" },\n { "<localleader>v", group = "view" },\n })\n end,\n },\n pdfviewer = "",\n}\n'))),(0,r.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "R-nvim/R.nvim",\n lazy = false,\n opts = {\n -- Create a table with the options to be passed to setup()\n R_args = { "--quiet", "--no-save" },\n hook = {\n on_filetype = function()\n -- This function will be called at the FileType event\n -- of files supported by R.nvim. This is an\n -- opportunity to create mappings local to buffers.\n vim.keymap.set("n", "<Enter>", "<Plug>RDSendLine", { buffer = true })\n vim.keymap.set("x", "<Enter>", "<Plug>RSendSelection", { buffer = true })\n\n local wk = require("which-key")\n wk.add({\n buffer = true,\n mode = { "n", "x" },\n { "<localleader>a", group = "all" },\n { "<localleader>b", group = "between marks" },\n { "<localleader>c", group = "chunks" },\n { "<localleader>f", group = "functions" },\n { "<localleader>g", group = "goto" },\n { "<localleader>i", group = "install" },\n { "<localleader>k", group = "knit" },\n { "<localleader>p", group = "paragraph" },\n { "<localleader>q", group = "quarto" },\n { "<localleader>r", group = "r general" },\n { "<localleader>s", group = "split or send" },\n { "<localleader>t", group = "terminal" },\n { "<localleader>v", group = "view" },\n })\n end,\n },\n pdfviewer = "",\n },\n config = function(_, opts)\n vim.g.rout_follow_colorscheme = true\n require("r").setup(opts)\n require("r.pdf.generic").open = vim.ui.open\n end,\n}\n')))),(0,r.kt)("h2",{id:"cmp-r"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/R-nvim/cmp-r"},"cmp-r")),(0,r.kt)(l.Z,{mdxType:"Tabs"},(0,r.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},"opts = nil\n"))),(0,r.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{ "R-nvim/cmp-r" }\n')))),(0,r.kt)("h2",{id:"nvim-treesitter"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/nvim-treesitter/nvim-treesitter"},"nvim-treesitter")),(0,r.kt)(l.Z,{mdxType:"Tabs"},(0,r.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = { ensure_installed = { "r", "rnoweb" } }\n'))),(0,r.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "nvim-treesitter/nvim-treesitter",\n opts = { ensure_installed = { "r", "rnoweb" } },\n}\n')))),(0,r.kt)("h2",{id:"nvim-lspconfig"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/neovim/nvim-lspconfig"},"nvim-lspconfig")),(0,r.kt)(l.Z,{mdxType:"Tabs"},(0,r.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = {\n servers = {\n r_language_server = {\n root_markers = { "DESCRIPTION", "NAMESPACE", ".Rbuildignore" },\n },\n },\n}\n'))),(0,r.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "neovim/nvim-lspconfig",\n opts = {\n servers = {\n r_language_server = {\n root_markers = { "DESCRIPTION", "NAMESPACE", ".Rbuildignore" },\n },\n },\n },\n}\n')))),(0,r.kt)("h2",{id:"neotest-testthat"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/shunsambongi/neotest-testthat"},"neotest-testthat")),(0,r.kt)(l.Z,{mdxType:"Tabs"},(0,r.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},"opts = nil\n"))),(0,r.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "shunsambongi/neotest-testthat",\n}\n')))),(0,r.kt)("h2",{id:"nvim-cmp-optional"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/hrsh7th/nvim-cmp"},"nvim-cmp")," ",(0,r.kt)("em",{parentName:"h2"},"(optional)")),(0,r.kt)(l.Z,{mdxType:"Tabs"},(0,r.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = function(_, opts)\n opts.sources = opts.sources or {}\n table.insert(opts.sources, { name = "cmp_r" })\nend\n'))),(0,r.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "hrsh7th/nvim-cmp",\n optional = true,\n dependencies = { "R-nvim/cmp-r" },\n opts = function(_, opts)\n opts.sources = opts.sources or {}\n table.insert(opts.sources, { name = "cmp_r" })\n end,\n}\n')))),(0,r.kt)("h2",{id:"neotest-optional"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/nvim-neotest/neotest"},"neotest")," ",(0,r.kt)("em",{parentName:"h2"},"(optional)")),(0,r.kt)(l.Z,{mdxType:"Tabs"},(0,r.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = {\n adapters = {\n ["neotest-testthat"] = {},\n },\n}\n'))),(0,r.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "nvim-neotest/neotest",\n optional = true,\n dependencies = {\n "shunsambongi/neotest-testthat",\n },\n opts = {\n adapters = {\n ["neotest-testthat"] = {},\n },\n },\n}\n')))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/959a4fbd.842dbeb3.js b/assets/js/959a4fbd.842dbeb3.js new file mode 100644 index 0000000000..fb1791e96e --- /dev/null +++ b/assets/js/959a4fbd.842dbeb3.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklazyvim=self.webpackChunklazyvim||[]).push([[1155],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>f});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?l(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):l(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function u(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},l=Object.keys(e);for(r=0;r<l.length;r++)n=l[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r<l.length;r++)n=l[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var i=r.createContext({}),s=function(e){var t=r.useContext(i),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},c=function(e){var t=s(e.components);return r.createElement(i.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,l=e.originalType,i=e.parentName,c=u(e,["components","mdxType","originalType","parentName"]),p=s(n),d=a,f=p["".concat(i,".").concat(d)]||p[d]||m[d]||l;return n?r.createElement(f,o(o({ref:t},c),{},{components:n})):r.createElement(f,o({ref:t},c))}));function f(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var l=n.length,o=new Array(l);o[0]=d;var u={};for(var i in t)hasOwnProperty.call(t,i)&&(u[i]=t[i]);u.originalType=e,u[p]="string"==typeof e?e:a,o[1]=u;for(var s=2;s<l;s++)o[s]=n[s];return r.createElement.apply(null,o)}return r.createElement.apply(null,n)}d.displayName="MDXCreateElement"},5162:(e,t,n)=>{n.d(t,{Z:()=>o});var r=n(7294),a=n(6010);const l="tabItem_Ymn6";function o(e){let{children:t,hidden:n,className:o}=e;return r.createElement("div",{role:"tabpanel",className:(0,a.Z)(l,o),hidden:n},t)}},4866:(e,t,n)=>{n.d(t,{Z:()=>x});var r=n(7462),a=n(7294),l=n(6010),o=n(2466),u=n(6550),i=n(1980),s=n(7392),c=n(12);function p(e){return function(e){return a.Children.map(e,(e=>{if(!e||(0,a.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:t,label:n,attributes:r,default:a}}=e;return{value:t,label:n,attributes:r,default:a}}))}function m(e){const{values:t,children:n}=e;return(0,a.useMemo)((()=>{const e=t??p(n);return function(e){const t=(0,s.l)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[t,n])}function d(e){let{value:t,tabValues:n}=e;return n.some((e=>e.value===t))}function f(e){let{queryString:t=!1,groupId:n}=e;const r=(0,u.k6)(),l=function(e){let{queryString:t=!1,groupId:n}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!n)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return n??null}({queryString:t,groupId:n});return[(0,i._X)(l),(0,a.useCallback)((e=>{if(!l)return;const t=new URLSearchParams(r.location.search);t.set(l,e),r.replace({...r.location,search:t.toString()})}),[l,r])]}function b(e){const{defaultValue:t,queryString:n=!1,groupId:r}=e,l=m(e),[o,u]=(0,a.useState)((()=>function(e){let{defaultValue:t,tabValues:n}=e;if(0===n.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(t){if(!d({value:t,tabValues:n}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${n.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const r=n.find((e=>e.default))??n[0];if(!r)throw new Error("Unexpected error: 0 tabValues");return r.value}({defaultValue:t,tabValues:l}))),[i,s]=f({queryString:n,groupId:r}),[p,b]=function(e){let{groupId:t}=e;const n=function(e){return e?`docusaurus.tab.${e}`:null}(t),[r,l]=(0,c.Nk)(n);return[r,(0,a.useCallback)((e=>{n&&l.set(e)}),[n,l])]}({groupId:r}),h=(()=>{const e=i??p;return d({value:e,tabValues:l})?e:null})();(0,a.useLayoutEffect)((()=>{h&&u(h)}),[h]);return{selectedValue:o,selectValue:(0,a.useCallback)((e=>{if(!d({value:e,tabValues:l}))throw new Error(`Can't select invalid tab value=${e}`);u(e),s(e),b(e)}),[s,b,l]),tabValues:l}}var h=n(2389);const v="tabList__CuJ",g="tabItem_LNqP";function y(e){let{className:t,block:n,selectedValue:u,selectValue:i,tabValues:s}=e;const c=[],{blockElementScrollPositionUntilNextRender:p}=(0,o.o5)(),m=e=>{const t=e.currentTarget,n=c.indexOf(t),r=s[n].value;r!==u&&(p(t),i(r))},d=e=>{let t=null;switch(e.key){case"Enter":m(e);break;case"ArrowRight":{const n=c.indexOf(e.currentTarget)+1;t=c[n]??c[0];break}case"ArrowLeft":{const n=c.indexOf(e.currentTarget)-1;t=c[n]??c[c.length-1];break}}t?.focus()};return a.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,l.Z)("tabs",{"tabs--block":n},t)},s.map((e=>{let{value:t,label:n,attributes:o}=e;return a.createElement("li",(0,r.Z)({role:"tab",tabIndex:u===t?0:-1,"aria-selected":u===t,key:t,ref:e=>c.push(e),onKeyDown:d,onClick:m},o,{className:(0,l.Z)("tabs__item",g,o?.className,{"tabs__item--active":u===t})}),n??t)})))}function k(e){let{lazy:t,children:n,selectedValue:r}=e;const l=(Array.isArray(n)?n:[n]).filter(Boolean);if(t){const e=l.find((e=>e.props.value===r));return e?(0,a.cloneElement)(e,{className:"margin-top--md"}):null}return a.createElement("div",{className:"margin-top--md"},l.map(((e,t)=>(0,a.cloneElement)(e,{key:t,hidden:e.props.value!==r}))))}function w(e){const t=b(e);return a.createElement("div",{className:(0,l.Z)("tabs-container",v)},a.createElement(y,(0,r.Z)({},e,t)),a.createElement(k,(0,r.Z)({},e,t)))}function x(e){const t=(0,h.Z)();return a.createElement(w,(0,r.Z)({key:String(t)},e))}},6177:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>d,frontMatter:()=>u,metadata:()=>s,toc:()=>p});var r=n(7462),a=(n(7294),n(3905)),l=n(4866),o=n(5162);const u={},i="Nushell",s={unversionedId:"extras/lang/nushell",id:"extras/lang/nushell",title:"Nushell",description:"You can enable the extra with the :LazyExtras command.",source:"@site/docs/extras/lang/nushell.md",sourceDirName:"extras/lang",slug:"/extras/lang/nushell",permalink:"/extras/lang/nushell",draft:!1,editUrl:"https://github.com/LazyVim/lazyvim.github.io/tree/main/docs/extras/lang/nushell.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Nix",permalink:"/extras/lang/nix"},next:{title:"Ocaml",permalink:"/extras/lang/ocaml"}},c={},p=[{value:"nvim-lspconfig",id:"nvim-lspconfig",level:2},{value:"nvim-treesitter",id:"nvim-treesitter",level:2}],m={toc:p};function d(e){let{components:t,...n}=e;return(0,a.kt)("wrapper",(0,r.Z)({},m,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"nushell"},(0,a.kt)("inlineCode",{parentName:"h1"},"Nushell")),(0,a.kt)("admonition",{type:"info"},(0,a.kt)("p",{parentName:"admonition"},"You can enable the extra with the ",(0,a.kt)("inlineCode",{parentName:"p"},":LazyExtras")," command.\nPlugins marked as optional will only be configured if they are installed.")),(0,a.kt)("p",null,"Below you can find a list of included plugins and their default settings."),(0,a.kt)("admonition",{type:"caution"},(0,a.kt)("p",{parentName:"admonition"},"You don't need to copy the default settings to your config.\nThey are only shown here for reference.")),(0,a.kt)("h2",{id:"nvim-lspconfig"},(0,a.kt)("a",{parentName:"h2",href:"https://github.com/neovim/nvim-lspconfig"},"nvim-lspconfig")),(0,a.kt)(l.Z,{mdxType:"Tabs"},(0,a.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},"opts = {\n servers = {\n nushell = {},\n },\n}\n"))),(0,a.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "neovim/nvim-lspconfig",\n opts = {\n servers = {\n nushell = {},\n },\n },\n}\n')))),(0,a.kt)("h2",{id:"nvim-treesitter"},(0,a.kt)("a",{parentName:"h2",href:"https://github.com/nvim-treesitter/nvim-treesitter"},"nvim-treesitter")),(0,a.kt)(l.Z,{mdxType:"Tabs"},(0,a.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'opts = { ensure_installed = { "nu" } }\n'))),(0,a.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "nvim-treesitter/nvim-treesitter",\n opts = { ensure_installed = { "nu" } },\n}\n')))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/9d14ed18.4272c9d7.js b/assets/js/9d14ed18.4272c9d7.js new file mode 100644 index 0000000000..ce1f069f24 --- /dev/null +++ b/assets/js/9d14ed18.4272c9d7.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklazyvim=self.webpackChunklazyvim||[]).push([[3004],{3905:(e,t,n)=>{n.d(t,{Zo:()=>m,kt:()=>d});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function o(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?l(Object(n),!0).forEach((function(t){r(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):l(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function i(e,t){if(null==e)return{};var n,a,r=function(e,t){if(null==e)return{};var n,a,r={},l=Object.keys(e);for(a=0;a<l.length;a++)n=l[a],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a<l.length;a++)n=l[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var s=a.createContext({}),u=function(e){var t=a.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},m=function(e){var t=u(e.components);return a.createElement(s.Provider,{value:t},e.children)},c="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},f=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,l=e.originalType,s=e.parentName,m=i(e,["components","mdxType","originalType","parentName"]),c=u(n),f=r,d=c["".concat(s,".").concat(f)]||c[f]||p[f]||l;return n?a.createElement(d,o(o({ref:t},m),{},{components:n})):a.createElement(d,o({ref:t},m))}));function d(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var l=n.length,o=new Array(l);o[0]=f;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[c]="string"==typeof e?e:r,o[1]=i;for(var u=2;u<l;u++)o[u]=n[u];return a.createElement.apply(null,o)}return a.createElement.apply(null,n)}f.displayName="MDXCreateElement"},5162:(e,t,n)=>{n.d(t,{Z:()=>o});var a=n(7294),r=n(6010);const l="tabItem_Ymn6";function o(e){let{children:t,hidden:n,className:o}=e;return a.createElement("div",{role:"tabpanel",className:(0,r.Z)(l,o),hidden:n},t)}},4866:(e,t,n)=>{n.d(t,{Z:()=>N});var a=n(7462),r=n(7294),l=n(6010),o=n(2466),i=n(6550),s=n(1980),u=n(7392),m=n(12);function c(e){return function(e){return r.Children.map(e,(e=>{if(!e||(0,r.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:t,label:n,attributes:a,default:r}}=e;return{value:t,label:n,attributes:a,default:r}}))}function p(e){const{values:t,children:n}=e;return(0,r.useMemo)((()=>{const e=t??c(n);return function(e){const t=(0,u.l)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[t,n])}function f(e){let{value:t,tabValues:n}=e;return n.some((e=>e.value===t))}function d(e){let{queryString:t=!1,groupId:n}=e;const a=(0,i.k6)(),l=function(e){let{queryString:t=!1,groupId:n}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!n)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return n??null}({queryString:t,groupId:n});return[(0,s._X)(l),(0,r.useCallback)((e=>{if(!l)return;const t=new URLSearchParams(a.location.search);t.set(l,e),a.replace({...a.location,search:t.toString()})}),[l,a])]}function v(e){const{defaultValue:t,queryString:n=!1,groupId:a}=e,l=p(e),[o,i]=(0,r.useState)((()=>function(e){let{defaultValue:t,tabValues:n}=e;if(0===n.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(t){if(!f({value:t,tabValues:n}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${n.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const a=n.find((e=>e.default))??n[0];if(!a)throw new Error("Unexpected error: 0 tabValues");return a.value}({defaultValue:t,tabValues:l}))),[s,u]=d({queryString:n,groupId:a}),[c,v]=function(e){let{groupId:t}=e;const n=function(e){return e?`docusaurus.tab.${e}`:null}(t),[a,l]=(0,m.Nk)(n);return[a,(0,r.useCallback)((e=>{n&&l.set(e)}),[n,l])]}({groupId:a}),b=(()=>{const e=s??c;return f({value:e,tabValues:l})?e:null})();(0,r.useLayoutEffect)((()=>{b&&i(b)}),[b]);return{selectedValue:o,selectValue:(0,r.useCallback)((e=>{if(!f({value:e,tabValues:l}))throw new Error(`Can't select invalid tab value=${e}`);i(e),u(e),v(e)}),[u,v,l]),tabValues:l}}var b=n(2389);const g="tabList__CuJ",h="tabItem_LNqP";function k(e){let{className:t,block:n,selectedValue:i,selectValue:s,tabValues:u}=e;const m=[],{blockElementScrollPositionUntilNextRender:c}=(0,o.o5)(),p=e=>{const t=e.currentTarget,n=m.indexOf(t),a=u[n].value;a!==i&&(c(t),s(a))},f=e=>{let t=null;switch(e.key){case"Enter":p(e);break;case"ArrowRight":{const n=m.indexOf(e.currentTarget)+1;t=m[n]??m[0];break}case"ArrowLeft":{const n=m.indexOf(e.currentTarget)-1;t=m[n]??m[m.length-1];break}}t?.focus()};return r.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,l.Z)("tabs",{"tabs--block":n},t)},u.map((e=>{let{value:t,label:n,attributes:o}=e;return r.createElement("li",(0,a.Z)({role:"tab",tabIndex:i===t?0:-1,"aria-selected":i===t,key:t,ref:e=>m.push(e),onKeyDown:f,onClick:p},o,{className:(0,l.Z)("tabs__item",h,o?.className,{"tabs__item--active":i===t})}),n??t)})))}function y(e){let{lazy:t,children:n,selectedValue:a}=e;const l=(Array.isArray(n)?n:[n]).filter(Boolean);if(t){const e=l.find((e=>e.props.value===a));return e?(0,r.cloneElement)(e,{className:"margin-top--md"}):null}return r.createElement("div",{className:"margin-top--md"},l.map(((e,t)=>(0,r.cloneElement)(e,{key:t,hidden:e.props.value!==a}))))}function T(e){const t=v(e);return r.createElement("div",{className:(0,l.Z)("tabs-container",g)},r.createElement(k,(0,a.Z)({},e,t)),r.createElement(y,(0,a.Z)({},e,t)))}function N(e){const t=(0,b.Z)();return r.createElement(T,(0,a.Z)({key:String(t)},e))}},817:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>m,contentTitle:()=>s,default:()=>f,frontMatter:()=>i,metadata:()=>u,toc:()=>c});var a=n(7462),r=(n(7294),n(3905)),l=n(4866),o=n(5162);const i={},s="Terraform",u={unversionedId:"extras/lang/terraform",id:"extras/lang/terraform",title:"Terraform",description:"You can enable the extra with the :LazyExtras command.",source:"@site/docs/extras/lang/terraform.md",sourceDirName:"extras/lang",slug:"/extras/lang/terraform",permalink:"/extras/lang/terraform",draft:!1,editUrl:"https://github.com/LazyVim/lazyvim.github.io/tree/main/docs/extras/lang/terraform.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Tailwind CSS",permalink:"/extras/lang/tailwind"},next:{title:"Tex",permalink:"/extras/lang/tex"}},m={},c=[{value:"nvim-treesitter",id:"nvim-treesitter",level:2},{value:"nvim-lspconfig",id:"nvim-lspconfig",level:2},{value:"mason.nvim",id:"masonnvim",level:2},{value:"telescope-terraform-doc.nvim",id:"telescope-terraform-docnvim",level:2},{value:"telescope-terraform.nvim",id:"telescope-terraformnvim",level:2},{value:"none-ls.nvim <em>(optional)</em>",id:"none-lsnvim-optional",level:2},{value:"nvim-lint <em>(optional)</em>",id:"nvim-lint-optional",level:2},{value:"conform.nvim <em>(optional)</em>",id:"conformnvim-optional",level:2},{value:"telescope.nvim <em>(optional)</em>",id:"telescopenvim-optional",level:2}],p={toc:c};function f(e){let{components:t,...n}=e;return(0,r.kt)("wrapper",(0,a.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"terraform"},"Terraform"),(0,r.kt)("admonition",{type:"info"},(0,r.kt)("p",{parentName:"admonition"},"You can enable the extra with the ",(0,r.kt)("inlineCode",{parentName:"p"},":LazyExtras")," command.\nPlugins marked as optional will only be configured if they are installed.")),(0,r.kt)("p",null,"Below you can find a list of included plugins and their default settings."),(0,r.kt)("admonition",{type:"caution"},(0,r.kt)("p",{parentName:"admonition"},"You don't need to copy the default settings to your config.\nThey are only shown here for reference.")),(0,r.kt)("h2",{id:"nvim-treesitter"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/nvim-treesitter/nvim-treesitter"},"nvim-treesitter")),(0,r.kt)(l.Z,{mdxType:"Tabs"},(0,r.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = { ensure_installed = { "terraform", "hcl" } }\n'))),(0,r.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "nvim-treesitter/nvim-treesitter",\n opts = { ensure_installed = { "terraform", "hcl" } },\n}\n')))),(0,r.kt)("h2",{id:"nvim-lspconfig"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/neovim/nvim-lspconfig"},"nvim-lspconfig")),(0,r.kt)(l.Z,{mdxType:"Tabs"},(0,r.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},"opts = {\n servers = {\n terraformls = {},\n },\n}\n"))),(0,r.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "neovim/nvim-lspconfig",\n opts = {\n servers = {\n terraformls = {},\n },\n },\n}\n')))),(0,r.kt)("h2",{id:"masonnvim"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/mason-org/mason.nvim"},"mason.nvim")),(0,r.kt)("p",null," ensure terraform tools are installed"),(0,r.kt)(l.Z,{mdxType:"Tabs"},(0,r.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = { ensure_installed = { "tflint" } }\n'))),(0,r.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "mason-org/mason.nvim",\n opts = { ensure_installed = { "tflint" } },\n}\n')))),(0,r.kt)("h2",{id:"telescope-terraform-docnvim"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/ANGkeith/telescope-terraform-doc.nvim"},"telescope-terraform-doc.nvim")),(0,r.kt)(l.Z,{mdxType:"Tabs"},(0,r.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},"opts = {}\n"))),(0,r.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "ANGkeith/telescope-terraform-doc.nvim",\n ft = { "terraform", "hcl" },\n config = function()\n LazyVim.on_load("telescope.nvim", function()\n require("telescope").load_extension("terraform_doc")\n end)\n end,\n}\n')))),(0,r.kt)("h2",{id:"telescope-terraformnvim"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/cappyzawa/telescope-terraform.nvim"},"telescope-terraform.nvim")),(0,r.kt)(l.Z,{mdxType:"Tabs"},(0,r.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},"opts = {}\n"))),(0,r.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "cappyzawa/telescope-terraform.nvim",\n ft = { "terraform", "hcl" },\n config = function()\n LazyVim.on_load("telescope.nvim", function()\n require("telescope").load_extension("terraform")\n end)\n end,\n}\n')))),(0,r.kt)("h2",{id:"none-lsnvim-optional"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/nvimtools/none-ls.nvim"},"none-ls.nvim")," ",(0,r.kt)("em",{parentName:"h2"},"(optional)")),(0,r.kt)(l.Z,{mdxType:"Tabs"},(0,r.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = function(_, opts)\n local null_ls = require("null-ls")\n opts.sources = vim.list_extend(opts.sources or {}, {\n null_ls.builtins.formatting.packer,\n null_ls.builtins.formatting.terraform_fmt,\n null_ls.builtins.diagnostics.terraform_validate,\n })\nend\n'))),(0,r.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "nvimtools/none-ls.nvim",\n optional = true,\n opts = function(_, opts)\n local null_ls = require("null-ls")\n opts.sources = vim.list_extend(opts.sources or {}, {\n null_ls.builtins.formatting.packer,\n null_ls.builtins.formatting.terraform_fmt,\n null_ls.builtins.diagnostics.terraform_validate,\n })\n end,\n}\n')))),(0,r.kt)("h2",{id:"nvim-lint-optional"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/mfussenegger/nvim-lint"},"nvim-lint")," ",(0,r.kt)("em",{parentName:"h2"},"(optional)")),(0,r.kt)(l.Z,{mdxType:"Tabs"},(0,r.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = {\n linters_by_ft = {\n terraform = { "terraform_validate" },\n tf = { "terraform_validate" },\n },\n}\n'))),(0,r.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "mfussenegger/nvim-lint",\n optional = true,\n opts = {\n linters_by_ft = {\n terraform = { "terraform_validate" },\n tf = { "terraform_validate" },\n },\n },\n}\n')))),(0,r.kt)("h2",{id:"conformnvim-optional"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/stevearc/conform.nvim"},"conform.nvim")," ",(0,r.kt)("em",{parentName:"h2"},"(optional)")),(0,r.kt)(l.Z,{mdxType:"Tabs"},(0,r.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = {\n formatters_by_ft = {\n hcl = { "packer_fmt" },\n terraform = { "terraform_fmt" },\n tf = { "terraform_fmt" },\n ["terraform-vars"] = { "terraform_fmt" },\n },\n}\n'))),(0,r.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "stevearc/conform.nvim",\n optional = true,\n opts = {\n formatters_by_ft = {\n hcl = { "packer_fmt" },\n terraform = { "terraform_fmt" },\n tf = { "terraform_fmt" },\n ["terraform-vars"] = { "terraform_fmt" },\n },\n },\n}\n')))),(0,r.kt)("h2",{id:"telescopenvim-optional"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/nvim-telescope/telescope.nvim"},"telescope.nvim")," ",(0,r.kt)("em",{parentName:"h2"},"(optional)")),(0,r.kt)(l.Z,{mdxType:"Tabs"},(0,r.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},"opts = nil\n"))),(0,r.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "nvim-telescope/telescope.nvim",\n optional = true,\n specs = {\n {\n "ANGkeith/telescope-terraform-doc.nvim",\n ft = { "terraform", "hcl" },\n config = function()\n LazyVim.on_load("telescope.nvim", function()\n require("telescope").load_extension("terraform_doc")\n end)\n end,\n },\n {\n "cappyzawa/telescope-terraform.nvim",\n ft = { "terraform", "hcl" },\n config = function()\n LazyVim.on_load("telescope.nvim", function()\n require("telescope").load_extension("terraform")\n end)\n end,\n },\n },\n}\n')))))}f.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/9dcfab8d.23587718.js b/assets/js/9dcfab8d.23587718.js new file mode 100644 index 0000000000..44c74e9c15 --- /dev/null +++ b/assets/js/9dcfab8d.23587718.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklazyvim=self.webpackChunklazyvim||[]).push([[8116],{3905:(e,n,t)=>{t.d(n,{Zo:()=>u,kt:()=>k});var a=t(7294);function r(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function i(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,a)}return t}function s(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?i(Object(t),!0).forEach((function(n){r(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):i(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function l(e,n){if(null==e)return{};var t,a,r=function(e,n){if(null==e)return{};var t,a,r={},i=Object.keys(e);for(a=0;a<i.length;a++)t=i[a],n.indexOf(t)>=0||(r[t]=e[t]);return r}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a<i.length;a++)t=i[a],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(r[t]=e[t])}return r}var o=a.createContext({}),c=function(e){var n=a.useContext(o),t=n;return e&&(t="function"==typeof e?e(n):s(s({},n),e)),t},u=function(e){var n=c(e.components);return a.createElement(o.Provider,{value:n},e.children)},d="mdxType",p={inlineCode:"code",wrapper:function(e){var n=e.children;return a.createElement(a.Fragment,{},n)}},m=a.forwardRef((function(e,n){var t=e.components,r=e.mdxType,i=e.originalType,o=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),d=c(t),m=r,k=d["".concat(o,".").concat(m)]||d[m]||p[m]||i;return t?a.createElement(k,s(s({ref:n},u),{},{components:t})):a.createElement(k,s({ref:n},u))}));function k(e,n){var t=arguments,r=n&&n.mdxType;if("string"==typeof e||r){var i=t.length,s=new Array(i);s[0]=m;var l={};for(var o in n)hasOwnProperty.call(n,o)&&(l[o]=n[o]);l.originalType=e,l[d]="string"==typeof e?e:r,s[1]=l;for(var c=2;c<i;c++)s[c]=t[c];return a.createElement.apply(null,s)}return a.createElement.apply(null,t)}m.displayName="MDXCreateElement"},5162:(e,n,t)=>{t.d(n,{Z:()=>s});var a=t(7294),r=t(6010);const i="tabItem_Ymn6";function s(e){let{children:n,hidden:t,className:s}=e;return a.createElement("div",{role:"tabpanel",className:(0,r.Z)(i,s),hidden:t},n)}},4866:(e,n,t)=>{t.d(n,{Z:()=>N});var a=t(7462),r=t(7294),i=t(6010),s=t(2466),l=t(6550),o=t(1980),c=t(7392),u=t(12);function d(e){return function(e){return r.Children.map(e,(e=>{if(!e||(0,r.isValidElement)(e)&&function(e){const{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:n,label:t,attributes:a,default:r}}=e;return{value:n,label:t,attributes:a,default:r}}))}function p(e){const{values:n,children:t}=e;return(0,r.useMemo)((()=>{const e=n??d(t);return function(e){const n=(0,c.l)(e,((e,n)=>e.value===n.value));if(n.length>0)throw new Error(`Docusaurus error: Duplicate values "${n.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[n,t])}function m(e){let{value:n,tabValues:t}=e;return t.some((e=>e.value===n))}function k(e){let{queryString:n=!1,groupId:t}=e;const a=(0,l.k6)(),i=function(e){let{queryString:n=!1,groupId:t}=e;if("string"==typeof n)return n;if(!1===n)return null;if(!0===n&&!t)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return t??null}({queryString:n,groupId:t});return[(0,o._X)(i),(0,r.useCallback)((e=>{if(!i)return;const n=new URLSearchParams(a.location.search);n.set(i,e),a.replace({...a.location,search:n.toString()})}),[i,a])]}function f(e){const{defaultValue:n,queryString:t=!1,groupId:a}=e,i=p(e),[s,l]=(0,r.useState)((()=>function(e){let{defaultValue:n,tabValues:t}=e;if(0===t.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(n){if(!m({value:n,tabValues:t}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${n}" but none of its children has the corresponding value. Available values are: ${t.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return n}const a=t.find((e=>e.default))??t[0];if(!a)throw new Error("Unexpected error: 0 tabValues");return a.value}({defaultValue:n,tabValues:i}))),[o,c]=k({queryString:t,groupId:a}),[d,f]=function(e){let{groupId:n}=e;const t=function(e){return e?`docusaurus.tab.${e}`:null}(n),[a,i]=(0,u.Nk)(t);return[a,(0,r.useCallback)((e=>{t&&i.set(e)}),[t,i])]}({groupId:a}),v=(()=>{const e=o??d;return m({value:e,tabValues:i})?e:null})();(0,r.useLayoutEffect)((()=>{v&&l(v)}),[v]);return{selectedValue:s,selectValue:(0,r.useCallback)((e=>{if(!m({value:e,tabValues:i}))throw new Error(`Can't select invalid tab value=${e}`);l(e),c(e),f(e)}),[c,f,i]),tabValues:i}}var v=t(2389);const g="tabList__CuJ",b="tabItem_LNqP";function h(e){let{className:n,block:t,selectedValue:l,selectValue:o,tabValues:c}=e;const u=[],{blockElementScrollPositionUntilNextRender:d}=(0,s.o5)(),p=e=>{const n=e.currentTarget,t=u.indexOf(n),a=c[t].value;a!==l&&(d(n),o(a))},m=e=>{let n=null;switch(e.key){case"Enter":p(e);break;case"ArrowRight":{const t=u.indexOf(e.currentTarget)+1;n=u[t]??u[0];break}case"ArrowLeft":{const t=u.indexOf(e.currentTarget)-1;n=u[t]??u[u.length-1];break}}n?.focus()};return r.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,i.Z)("tabs",{"tabs--block":t},n)},c.map((e=>{let{value:n,label:t,attributes:s}=e;return r.createElement("li",(0,a.Z)({role:"tab",tabIndex:l===n?0:-1,"aria-selected":l===n,key:n,ref:e=>u.push(e),onKeyDown:m,onClick:p},s,{className:(0,i.Z)("tabs__item",b,s?.className,{"tabs__item--active":l===n})}),t??n)})))}function y(e){let{lazy:n,children:t,selectedValue:a}=e;const i=(Array.isArray(t)?t:[t]).filter(Boolean);if(n){const e=i.find((e=>e.props.value===a));return e?(0,r.cloneElement)(e,{className:"margin-top--md"}):null}return r.createElement("div",{className:"margin-top--md"},i.map(((e,n)=>(0,r.cloneElement)(e,{key:n,hidden:e.props.value!==a}))))}function x(e){const n=f(e);return r.createElement("div",{className:(0,i.Z)("tabs-container",g)},r.createElement(h,(0,a.Z)({},e,n)),r.createElement(y,(0,a.Z)({},e,n)))}function N(e){const n=(0,v.Z)();return r.createElement(x,(0,a.Z)({key:String(n)},e))}},7969:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>u,contentTitle:()=>o,default:()=>m,frontMatter:()=>l,metadata:()=>c,toc:()=>d});var a=t(7462),r=(t(7294),t(3905)),i=t(4866),s=t(5162);const l={},o="Sidekick",c={unversionedId:"extras/ai/sidekick",id:"extras/ai/sidekick",title:"Sidekick",description:"You can enable the extra with the :LazyExtras command.",source:"@site/docs/extras/ai/sidekick.md",sourceDirName:"extras/ai",slug:"/extras/ai/sidekick",permalink:"/extras/ai/sidekick",draft:!1,editUrl:"https://github.com/LazyVim/lazyvim.github.io/tree/main/docs/extras/ai/sidekick.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Copilot",permalink:"/extras/ai/copilot"},next:{title:"Supermaven",permalink:"/extras/ai/supermaven"}},u={},d=[{value:"nvim-lspconfig",id:"nvim-lspconfig",level:2},{value:"sidekick.nvim",id:"sidekicknvim",level:2},{value:"lualine.nvim <em>(optional)</em>",id:"lualinenvim-optional",level:2},{value:"snacks.nvim <em>(optional)</em>",id:"snacksnvim-optional",level:2}],p={toc:d};function m(e){let{components:n,...t}=e;return(0,r.kt)("wrapper",(0,a.Z)({},p,t,{components:n,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"sidekick"},(0,r.kt)("inlineCode",{parentName:"h1"},"Sidekick")),(0,r.kt)("admonition",{type:"info"},(0,r.kt)("p",{parentName:"admonition"},"You can enable the extra with the ",(0,r.kt)("inlineCode",{parentName:"p"},":LazyExtras")," command.\nPlugins marked as optional will only be configured if they are installed.")),(0,r.kt)("p",null,"Below you can find a list of included plugins and their default settings."),(0,r.kt)("admonition",{type:"caution"},(0,r.kt)("p",{parentName:"admonition"},"You don't need to copy the default settings to your config.\nThey are only shown here for reference.")),(0,r.kt)("h2",{id:"nvim-lspconfig"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/neovim/nvim-lspconfig"},"nvim-lspconfig")),(0,r.kt)("p",null," copilot-language-server"),(0,r.kt)(i.Z,{mdxType:"Tabs"},(0,r.kt)(s.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = function(_, opts)\n local sk = LazyVim.opts("sidekick.nvim") ---@type sidekick.Config|{}\n if vim.tbl_get(sk, "nes", "enabled") ~= false then\n opts.servers = opts.servers or {}\n opts.servers.copilot = opts.servers.copilot or {}\n end\nend\n'))),(0,r.kt)(s.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "neovim/nvim-lspconfig",\n opts = function(_, opts)\n local sk = LazyVim.opts("sidekick.nvim") ---@type sidekick.Config|{}\n if vim.tbl_get(sk, "nes", "enabled") ~= false then\n opts.servers = opts.servers or {}\n opts.servers.copilot = opts.servers.copilot or {}\n end\n end,\n}\n')))),(0,r.kt)("h2",{id:"sidekicknvim"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/folke/sidekick.nvim"},"sidekick.nvim")),(0,r.kt)(i.Z,{mdxType:"Tabs"},(0,r.kt)(s.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = function()\n -- Accept inline suggestions or next edits\n LazyVim.cmp.actions.ai_nes = function()\n local Nes = require("sidekick.nes")\n if Nes.have() and (Nes.jump() or Nes.apply()) then\n return true\n end\n end\nend\n'))),(0,r.kt)(s.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "folke/sidekick.nvim",\n opts = function()\n -- Accept inline suggestions or next edits\n LazyVim.cmp.actions.ai_nes = function()\n local Nes = require("sidekick.nes")\n if Nes.have() and (Nes.jump() or Nes.apply()) then\n return true\n end\n end\n end,\n -- stylua: ignore\n keys = {\n -- nes is also useful in normal mode\n { "<tab>", LazyVim.cmp.map({ "ai_nes" }, "<tab>"), mode = { "n" }, expr = true },\n { "<leader>a", "", desc = "+ai", mode = { "n", "v" } },\n {\n "<c-.>",\n function() require("sidekick.cli").toggle() end,\n desc = "Sidekick Toggle",\n mode = { "n", "t", "i", "x" },\n },\n {\n "<leader>aa",\n function() require("sidekick.cli").toggle() end,\n desc = "Sidekick Toggle CLI",\n },\n {\n "<leader>as",\n function() require("sidekick.cli").select() end,\n -- Or to select only installed tools:\n -- require("sidekick.cli").select({ filter = { installed = true } })\n desc = "Select CLI",\n },\n {\n "<leader>ad",\n function() require("sidekick.cli").close() end,\n desc = "Detach a CLI Session",\n },\n {\n "<leader>at",\n function() require("sidekick.cli").send({ msg = "{this}" }) end,\n mode = { "x", "n" },\n desc = "Send This",\n },\n {\n "<leader>af",\n function() require("sidekick.cli").send({ msg = "{file}" }) end,\n desc = "Send File",\n },\n {\n "<leader>av",\n function() require("sidekick.cli").send({ msg = "{selection}" }) end,\n mode = { "x" },\n desc = "Send Visual Selection",\n },\n {\n "<leader>ap",\n function() require("sidekick.cli").prompt() end,\n mode = { "n", "x" },\n desc = "Sidekick Select Prompt",\n },\n },\n}\n')))),(0,r.kt)("h2",{id:"lualinenvim-optional"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/nvim-lualine/lualine.nvim"},"lualine.nvim")," ",(0,r.kt)("em",{parentName:"h2"},"(optional)")),(0,r.kt)("p",null," lualine"),(0,r.kt)(i.Z,{mdxType:"Tabs"},(0,r.kt)(s.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = function(_, opts)\n local icons = {\n Error = { "\uf4b9 ", "DiagnosticError" },\n Inactive = { "\uf4b9 ", "MsgArea" },\n Warning = { "\uf4ba ", "DiagnosticWarn" },\n Normal = { LazyVim.config.icons.kinds.Copilot, "Special" },\n }\n table.insert(opts.sections.lualine_x, 2, {\n function()\n local status = require("sidekick.status").get()\n return status and vim.tbl_get(icons, status.kind, 1)\n end,\n cond = function()\n return require("sidekick.status").get() ~= nil\n end,\n color = function()\n local status = require("sidekick.status").get()\n local hl = status and (status.busy and "DiagnosticWarn" or vim.tbl_get(icons, status.kind, 2))\n return { fg = Snacks.util.color(hl) }\n end,\n })\n\n table.insert(opts.sections.lualine_x, 2, {\n function()\n local status = require("sidekick.status").cli()\n return "\uee0d " .. (#status > 1 and #status or "")\n end,\n cond = function()\n return #require("sidekick.status").cli() > 0\n end,\n color = function()\n return { fg = Snacks.util.color("Special") }\n end,\n })\nend\n'))),(0,r.kt)(s.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "nvim-lualine/lualine.nvim",\n optional = true,\n event = "VeryLazy",\n opts = function(_, opts)\n local icons = {\n Error = { "\uf4b9 ", "DiagnosticError" },\n Inactive = { "\uf4b9 ", "MsgArea" },\n Warning = { "\uf4ba ", "DiagnosticWarn" },\n Normal = { LazyVim.config.icons.kinds.Copilot, "Special" },\n }\n table.insert(opts.sections.lualine_x, 2, {\n function()\n local status = require("sidekick.status").get()\n return status and vim.tbl_get(icons, status.kind, 1)\n end,\n cond = function()\n return require("sidekick.status").get() ~= nil\n end,\n color = function()\n local status = require("sidekick.status").get()\n local hl = status and (status.busy and "DiagnosticWarn" or vim.tbl_get(icons, status.kind, 2))\n return { fg = Snacks.util.color(hl) }\n end,\n })\n\n table.insert(opts.sections.lualine_x, 2, {\n function()\n local status = require("sidekick.status").cli()\n return "\uee0d " .. (#status > 1 and #status or "")\n end,\n cond = function()\n return #require("sidekick.status").cli() > 0\n end,\n color = function()\n return { fg = Snacks.util.color("Special") }\n end,\n })\n end,\n}\n')))),(0,r.kt)("h2",{id:"snacksnvim-optional"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/folke/snacks.nvim"},"snacks.nvim")," ",(0,r.kt)("em",{parentName:"h2"},"(optional)")),(0,r.kt)(i.Z,{mdxType:"Tabs"},(0,r.kt)(s.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = {\n picker = {\n actions = {\n sidekick_send = function(...)\n return require("sidekick.cli.picker.snacks").send(...)\n end,\n },\n win = {\n input = {\n keys = {\n ["<a-a>"] = {\n "sidekick_send",\n mode = { "n", "i" },\n },\n },\n },\n },\n },\n}\n'))),(0,r.kt)(s.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "folke/snacks.nvim",\n optional = true,\n opts = {\n picker = {\n actions = {\n sidekick_send = function(...)\n return require("sidekick.cli.picker.snacks").send(...)\n end,\n },\n win = {\n input = {\n keys = {\n ["<a-a>"] = {\n "sidekick_send",\n mode = { "n", "i" },\n },\n },\n },\n },\n },\n },\n}\n')))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/9f78a83b.bdfad638.js b/assets/js/9f78a83b.bdfad638.js new file mode 100644 index 0000000000..46b020e902 --- /dev/null +++ b/assets/js/9f78a83b.bdfad638.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklazyvim=self.webpackChunklazyvim||[]).push([[3747],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>f});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?l(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):l(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function s(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},l=Object.keys(e);for(r=0;r<l.length;r++)n=l[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r<l.length;r++)n=l[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var u=r.createContext({}),i=function(e){var t=r.useContext(u),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},c=function(e){var t=i(e.components);return r.createElement(u.Provider,{value:t},e.children)},d="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,l=e.originalType,u=e.parentName,c=s(e,["components","mdxType","originalType","parentName"]),d=i(n),m=a,f=d["".concat(u,".").concat(m)]||d[m]||p[m]||l;return n?r.createElement(f,o(o({ref:t},c),{},{components:n})):r.createElement(f,o({ref:t},c))}));function f(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var l=n.length,o=new Array(l);o[0]=m;var s={};for(var u in t)hasOwnProperty.call(t,u)&&(s[u]=t[u]);s.originalType=e,s[d]="string"==typeof e?e:a,o[1]=s;for(var i=2;i<l;i++)o[i]=n[i];return r.createElement.apply(null,o)}return r.createElement.apply(null,n)}m.displayName="MDXCreateElement"},5162:(e,t,n)=>{n.d(t,{Z:()=>o});var r=n(7294),a=n(6010);const l="tabItem_Ymn6";function o(e){let{children:t,hidden:n,className:o}=e;return r.createElement("div",{role:"tabpanel",className:(0,a.Z)(l,o),hidden:n},t)}},4866:(e,t,n)=>{n.d(t,{Z:()=>T});var r=n(7462),a=n(7294),l=n(6010),o=n(2466),s=n(6550),u=n(1980),i=n(7392),c=n(12);function d(e){return function(e){return a.Children.map(e,(e=>{if(!e||(0,a.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:t,label:n,attributes:r,default:a}}=e;return{value:t,label:n,attributes:r,default:a}}))}function p(e){const{values:t,children:n}=e;return(0,a.useMemo)((()=>{const e=t??d(n);return function(e){const t=(0,i.l)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[t,n])}function m(e){let{value:t,tabValues:n}=e;return n.some((e=>e.value===t))}function f(e){let{queryString:t=!1,groupId:n}=e;const r=(0,s.k6)(),l=function(e){let{queryString:t=!1,groupId:n}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!n)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return n??null}({queryString:t,groupId:n});return[(0,u._X)(l),(0,a.useCallback)((e=>{if(!l)return;const t=new URLSearchParams(r.location.search);t.set(l,e),r.replace({...r.location,search:t.toString()})}),[l,r])]}function v(e){const{defaultValue:t,queryString:n=!1,groupId:r}=e,l=p(e),[o,s]=(0,a.useState)((()=>function(e){let{defaultValue:t,tabValues:n}=e;if(0===n.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(t){if(!m({value:t,tabValues:n}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${n.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const r=n.find((e=>e.default))??n[0];if(!r)throw new Error("Unexpected error: 0 tabValues");return r.value}({defaultValue:t,tabValues:l}))),[u,i]=f({queryString:n,groupId:r}),[d,v]=function(e){let{groupId:t}=e;const n=function(e){return e?`docusaurus.tab.${e}`:null}(t),[r,l]=(0,c.Nk)(n);return[r,(0,a.useCallback)((e=>{n&&l.set(e)}),[n,l])]}({groupId:r}),b=(()=>{const e=u??d;return m({value:e,tabValues:l})?e:null})();(0,a.useLayoutEffect)((()=>{b&&s(b)}),[b]);return{selectedValue:o,selectValue:(0,a.useCallback)((e=>{if(!m({value:e,tabValues:l}))throw new Error(`Can't select invalid tab value=${e}`);s(e),i(e),v(e)}),[i,v,l]),tabValues:l}}var b=n(2389);const h="tabList__CuJ",y="tabItem_LNqP";function g(e){let{className:t,block:n,selectedValue:s,selectValue:u,tabValues:i}=e;const c=[],{blockElementScrollPositionUntilNextRender:d}=(0,o.o5)(),p=e=>{const t=e.currentTarget,n=c.indexOf(t),r=i[n].value;r!==s&&(d(t),u(r))},m=e=>{let t=null;switch(e.key){case"Enter":p(e);break;case"ArrowRight":{const n=c.indexOf(e.currentTarget)+1;t=c[n]??c[0];break}case"ArrowLeft":{const n=c.indexOf(e.currentTarget)-1;t=c[n]??c[c.length-1];break}}t?.focus()};return a.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,l.Z)("tabs",{"tabs--block":n},t)},i.map((e=>{let{value:t,label:n,attributes:o}=e;return a.createElement("li",(0,r.Z)({role:"tab",tabIndex:s===t?0:-1,"aria-selected":s===t,key:t,ref:e=>c.push(e),onKeyDown:m,onClick:p},o,{className:(0,l.Z)("tabs__item",y,o?.className,{"tabs__item--active":s===t})}),n??t)})))}function k(e){let{lazy:t,children:n,selectedValue:r}=e;const l=(Array.isArray(n)?n:[n]).filter(Boolean);if(t){const e=l.find((e=>e.props.value===r));return e?(0,a.cloneElement)(e,{className:"margin-top--md"}):null}return a.createElement("div",{className:"margin-top--md"},l.map(((e,t)=>(0,a.cloneElement)(e,{key:t,hidden:e.props.value!==r}))))}function w(e){const t=v(e);return a.createElement("div",{className:(0,l.Z)("tabs-container",h)},a.createElement(g,(0,r.Z)({},e,t)),a.createElement(k,(0,r.Z)({},e,t)))}function T(e){const t=(0,b.Z)();return a.createElement(w,(0,r.Z)({key:String(t)},e))}},1513:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>u,default:()=>m,frontMatter:()=>s,metadata:()=>i,toc:()=>d});var r=n(7462),a=(n(7294),n(3905)),l=n(4866),o=n(5162);const s={},u="Util",i={unversionedId:"plugins/util",id:"plugins/util",title:"Util",description:"snacks.nvim",source:"@site/docs/plugins/util.md",sourceDirName:"plugins",slug:"/plugins/util",permalink:"/plugins/util",draft:!1,editUrl:"https://github.com/LazyVim/lazyvim.github.io/tree/main/docs/plugins/util.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"UI",permalink:"/plugins/ui"},next:{title:"Extras",permalink:"/extras/"}},c={},d=[{value:"snacks.nvim",id:"snacksnvim",level:2},{value:"persistence.nvim",id:"persistencenvim",level:2},{value:"plenary.nvim",id:"plenarynvim",level:2}],p={toc:d};function m(e){let{components:t,...n}=e;return(0,a.kt)("wrapper",(0,r.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"util"},"Util"),(0,a.kt)("h2",{id:"snacksnvim"},(0,a.kt)("a",{parentName:"h2",href:"https://github.com/folke/snacks.nvim"},"snacks.nvim")),(0,a.kt)("p",null," Snacks utils"),(0,a.kt)(l.Z,{mdxType:"Tabs"},(0,a.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'opts = {\n bigfile = { enabled = true },\n quickfile = { enabled = true },\n terminal = {\n win = {\n keys = {\n nav_h = { "<C-h>", term_nav("h"), desc = "Go to Left Window", expr = true, mode = "t" },\n nav_j = { "<C-j>", term_nav("j"), desc = "Go to Lower Window", expr = true, mode = "t" },\n nav_k = { "<C-k>", term_nav("k"), desc = "Go to Upper Window", expr = true, mode = "t" },\n nav_l = { "<C-l>", term_nav("l"), desc = "Go to Right Window", expr = true, mode = "t" },\n hide_slash = { "<C-/>", "hide", desc = "Hide Terminal", mode = { "t", "n" } },\n hide_underscore = { "<c-_>", "hide", desc = "which_key_ignore", mode = { "t", "n" } },\n },\n },\n },\n}\n'))),(0,a.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "snacks.nvim",\n opts = {\n bigfile = { enabled = true },\n quickfile = { enabled = true },\n terminal = {\n win = {\n keys = {\n nav_h = { "<C-h>", term_nav("h"), desc = "Go to Left Window", expr = true, mode = "t" },\n nav_j = { "<C-j>", term_nav("j"), desc = "Go to Lower Window", expr = true, mode = "t" },\n nav_k = { "<C-k>", term_nav("k"), desc = "Go to Upper Window", expr = true, mode = "t" },\n nav_l = { "<C-l>", term_nav("l"), desc = "Go to Right Window", expr = true, mode = "t" },\n hide_slash = { "<C-/>", "hide", desc = "Hide Terminal", mode = { "t", "n" } },\n hide_underscore = { "<c-_>", "hide", desc = "which_key_ignore", mode = { "t", "n" } },\n },\n },\n },\n },\n -- stylua: ignore\n keys = {\n { "<leader>.", function() Snacks.scratch() end, desc = "Toggle Scratch Buffer" },\n { "<leader>S", function() Snacks.scratch.select() end, desc = "Select Scratch Buffer" },\n { "<leader>dps", function() Snacks.profiler.scratch() end, desc = "Profiler Scratch Buffer" },\n },\n}\n')))),(0,a.kt)("h2",{id:"persistencenvim"},(0,a.kt)("a",{parentName:"h2",href:"https://github.com/folke/persistence.nvim"},"persistence.nvim")),(0,a.kt)("p",null," Session management. This saves your session in the background,\nkeeping track of open buffers, window arrangement, and more.\nYou can restore sessions when returning through the dashboard."),(0,a.kt)(l.Z,{mdxType:"Tabs"},(0,a.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},"opts = {}\n"))),(0,a.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "folke/persistence.nvim",\n event = "BufReadPre",\n opts = {},\n -- stylua: ignore\n keys = {\n { "<leader>qs", function() require("persistence").load() end, desc = "Restore Session" },\n { "<leader>qS", function() require("persistence").select() end,desc = "Select Session" },\n { "<leader>ql", function() require("persistence").load({ last = true }) end, desc = "Restore Last Session" },\n { "<leader>qd", function() require("persistence").stop() end, desc = "Don\'t Save Current Session" },\n },\n}\n')))),(0,a.kt)("h2",{id:"plenarynvim"},(0,a.kt)("a",{parentName:"h2",href:"https://github.com/nvim-lua/plenary.nvim"},"plenary.nvim")),(0,a.kt)("p",null," library used by other plugins"),(0,a.kt)(l.Z,{mdxType:"Tabs"},(0,a.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},"opts = nil\n"))),(0,a.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'{ "nvim-lua/plenary.nvim", lazy = true }\n')))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/a34fa16d.f5af4759.js b/assets/js/a34fa16d.f5af4759.js new file mode 100644 index 0000000000..6b1f8759cb --- /dev/null +++ b/assets/js/a34fa16d.f5af4759.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklazyvim=self.webpackChunklazyvim||[]).push([[7928],{3905:(e,n,t)=>{t.d(n,{Zo:()=>p,kt:()=>f});var a=t(7294);function s(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function i(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,a)}return t}function o(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?i(Object(t),!0).forEach((function(n){s(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):i(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function r(e,n){if(null==e)return{};var t,a,s=function(e,n){if(null==e)return{};var t,a,s={},i=Object.keys(e);for(a=0;a<i.length;a++)t=i[a],n.indexOf(t)>=0||(s[t]=e[t]);return s}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a<i.length;a++)t=i[a],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(s[t]=e[t])}return s}var l=a.createContext({}),u=function(e){var n=a.useContext(l),t=n;return e&&(t="function"==typeof e?e(n):o(o({},n),e)),t},p=function(e){var n=u(e.components);return a.createElement(l.Provider,{value:n},e.children)},c="mdxType",m={inlineCode:"code",wrapper:function(e){var n=e.children;return a.createElement(a.Fragment,{},n)}},d=a.forwardRef((function(e,n){var t=e.components,s=e.mdxType,i=e.originalType,l=e.parentName,p=r(e,["components","mdxType","originalType","parentName"]),c=u(t),d=s,f=c["".concat(l,".").concat(d)]||c[d]||m[d]||i;return t?a.createElement(f,o(o({ref:n},p),{},{components:t})):a.createElement(f,o({ref:n},p))}));function f(e,n){var t=arguments,s=n&&n.mdxType;if("string"==typeof e||s){var i=t.length,o=new Array(i);o[0]=d;var r={};for(var l in n)hasOwnProperty.call(n,l)&&(r[l]=n[l]);r.originalType=e,r[c]="string"==typeof e?e:s,o[1]=r;for(var u=2;u<i;u++)o[u]=t[u];return a.createElement.apply(null,o)}return a.createElement.apply(null,t)}d.displayName="MDXCreateElement"},5162:(e,n,t)=>{t.d(n,{Z:()=>o});var a=t(7294),s=t(6010);const i="tabItem_Ymn6";function o(e){let{children:n,hidden:t,className:o}=e;return a.createElement("div",{role:"tabpanel",className:(0,s.Z)(i,o),hidden:t},n)}},4866:(e,n,t)=>{t.d(n,{Z:()=>w});var a=t(7462),s=t(7294),i=t(6010),o=t(2466),r=t(6550),l=t(1980),u=t(7392),p=t(12);function c(e){return function(e){return s.Children.map(e,(e=>{if(!e||(0,s.isValidElement)(e)&&function(e){const{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:n,label:t,attributes:a,default:s}}=e;return{value:n,label:t,attributes:a,default:s}}))}function m(e){const{values:n,children:t}=e;return(0,s.useMemo)((()=>{const e=n??c(t);return function(e){const n=(0,u.l)(e,((e,n)=>e.value===n.value));if(n.length>0)throw new Error(`Docusaurus error: Duplicate values "${n.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[n,t])}function d(e){let{value:n,tabValues:t}=e;return t.some((e=>e.value===n))}function f(e){let{queryString:n=!1,groupId:t}=e;const a=(0,r.k6)(),i=function(e){let{queryString:n=!1,groupId:t}=e;if("string"==typeof n)return n;if(!1===n)return null;if(!0===n&&!t)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return t??null}({queryString:n,groupId:t});return[(0,l._X)(i),(0,s.useCallback)((e=>{if(!i)return;const n=new URLSearchParams(a.location.search);n.set(i,e),a.replace({...a.location,search:n.toString()})}),[i,a])]}function v(e){const{defaultValue:n,queryString:t=!1,groupId:a}=e,i=m(e),[o,r]=(0,s.useState)((()=>function(e){let{defaultValue:n,tabValues:t}=e;if(0===t.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(n){if(!d({value:n,tabValues:t}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${n}" but none of its children has the corresponding value. Available values are: ${t.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return n}const a=t.find((e=>e.default))??t[0];if(!a)throw new Error("Unexpected error: 0 tabValues");return a.value}({defaultValue:n,tabValues:i}))),[l,u]=f({queryString:t,groupId:a}),[c,v]=function(e){let{groupId:n}=e;const t=function(e){return e?`docusaurus.tab.${e}`:null}(n),[a,i]=(0,p.Nk)(t);return[a,(0,s.useCallback)((e=>{t&&i.set(e)}),[t,i])]}({groupId:a}),y=(()=>{const e=l??c;return d({value:e,tabValues:i})?e:null})();(0,s.useLayoutEffect)((()=>{y&&r(y)}),[y]);return{selectedValue:o,selectValue:(0,s.useCallback)((e=>{if(!d({value:e,tabValues:i}))throw new Error(`Can't select invalid tab value=${e}`);r(e),u(e),v(e)}),[u,v,i]),tabValues:i}}var y=t(2389);const g="tabList__CuJ",b="tabItem_LNqP";function h(e){let{className:n,block:t,selectedValue:r,selectValue:l,tabValues:u}=e;const p=[],{blockElementScrollPositionUntilNextRender:c}=(0,o.o5)(),m=e=>{const n=e.currentTarget,t=p.indexOf(n),a=u[t].value;a!==r&&(c(n),l(a))},d=e=>{let n=null;switch(e.key){case"Enter":m(e);break;case"ArrowRight":{const t=p.indexOf(e.currentTarget)+1;n=p[t]??p[0];break}case"ArrowLeft":{const t=p.indexOf(e.currentTarget)-1;n=p[t]??p[p.length-1];break}}n?.focus()};return s.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,i.Z)("tabs",{"tabs--block":t},n)},u.map((e=>{let{value:n,label:t,attributes:o}=e;return s.createElement("li",(0,a.Z)({role:"tab",tabIndex:r===n?0:-1,"aria-selected":r===n,key:n,ref:e=>p.push(e),onKeyDown:d,onClick:m},o,{className:(0,i.Z)("tabs__item",b,o?.className,{"tabs__item--active":r===n})}),t??n)})))}function k(e){let{lazy:n,children:t,selectedValue:a}=e;const i=(Array.isArray(t)?t:[t]).filter(Boolean);if(n){const e=i.find((e=>e.props.value===a));return e?(0,s.cloneElement)(e,{className:"margin-top--md"}):null}return s.createElement("div",{className:"margin-top--md"},i.map(((e,n)=>(0,s.cloneElement)(e,{key:n,hidden:e.props.value!==a}))))}function _(e){const n=v(e);return s.createElement("div",{className:(0,i.Z)("tabs-container",g)},s.createElement(h,(0,a.Z)({},e,n)),s.createElement(k,(0,a.Z)({},e,n)))}function w(e){const n=(0,y.Z)();return s.createElement(_,(0,a.Z)({key:String(n)},e))}},965:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>p,contentTitle:()=>l,default:()=>d,frontMatter:()=>r,metadata:()=>u,toc:()=>c});var a=t(7462),s=(t(7294),t(3905)),i=t(4866),o=t(5162);const r={},l="LSP",u={unversionedId:"plugins/lsp",id:"plugins/lsp",title:"LSP",description:"\u2328\ufe0f Customizing LSP Keymaps",source:"@site/docs/plugins/lsp.md",sourceDirName:"plugins",slug:"/plugins/lsp",permalink:"/plugins/lsp",draft:!1,editUrl:"https://github.com/LazyVim/lazyvim.github.io/tree/main/docs/plugins/lsp.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Linting",permalink:"/plugins/linting"},next:{title:"TreeSitter",permalink:"/plugins/treesitter"}},p={},c=[{value:"\u2328\ufe0f Customizing LSP Keymaps",id:"\ufe0f-customizing-lsp-keymaps",level:2},{value:"nvim-lspconfig",id:"nvim-lspconfig",level:2},{value:"mason.nvim",id:"masonnvim",level:2},{value:"mason-lspconfig.nvim",id:"mason-lspconfignvim",level:2},{value:"mason.nvim",id:"masonnvim-1",level:2}],m={toc:c};function d(e){let{components:n,...t}=e;return(0,s.kt)("wrapper",(0,a.Z)({},m,t,{components:n,mdxType:"MDXLayout"}),(0,s.kt)("h1",{id:"lsp"},"LSP"),(0,s.kt)("h2",{id:"\ufe0f-customizing-lsp-keymaps"},"\u2328\ufe0f Customizing ",(0,s.kt)("a",{parentName:"h2",href:"/keymaps#lsp"},"LSP Keymaps")),(0,s.kt)("p",null,"The syntax for adding, deleting and changing ",(0,s.kt)("a",{parentName:"p",href:"/keymaps#lsp"},"LSP Keymaps"),",\nis the same as for ",(0,s.kt)("a",{parentName:"p",href:"/configuration/plugins#%EF%B8%8F-adding--disabling-plugin-keymaps"},"plugin keymaps"),",\nbut you need to configure it using the ",(0,s.kt)("inlineCode",{parentName:"p"},"opts()")," method."),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-lua"},'-- LSP keymaps\n{\n "neovim/nvim-lspconfig",\n opts = function()\n local keys = require("lazyvim.plugins.lsp.keymaps").get()\n -- change a keymap\n keys[#keys + 1] = { "K", "<cmd>echo \'hello\'<cr>" }\n -- disable a keymap\n keys[#keys + 1] = { "K", false }\n -- add a keymap\n keys[#keys + 1] = { "H", "<cmd>echo \'hello\'<cr>" }\n end,\n}\n')),(0,s.kt)("h2",{id:"nvim-lspconfig"},(0,s.kt)("a",{parentName:"h2",href:"https://github.com/neovim/nvim-lspconfig"},"nvim-lspconfig")),(0,s.kt)("p",null," lspconfig"),(0,s.kt)(i.Z,{mdxType:"Tabs"},(0,s.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-lua"},'opts = function()\n ---@class PluginLspOpts\n local ret = {\n -- options for vim.diagnostic.config()\n ---@type vim.diagnostic.Opts\n diagnostics = {\n underline = true,\n update_in_insert = false,\n virtual_text = {\n spacing = 4,\n source = "if_many",\n prefix = "\u25cf",\n -- this will set set the prefix to a function that returns the diagnostics icon based on the severity\n -- prefix = "icons",\n },\n severity_sort = true,\n signs = {\n text = {\n [vim.diagnostic.severity.ERROR] = LazyVim.config.icons.diagnostics.Error,\n [vim.diagnostic.severity.WARN] = LazyVim.config.icons.diagnostics.Warn,\n [vim.diagnostic.severity.HINT] = LazyVim.config.icons.diagnostics.Hint,\n [vim.diagnostic.severity.INFO] = LazyVim.config.icons.diagnostics.Info,\n },\n },\n },\n -- Enable this to enable the builtin LSP inlay hints on Neovim.\n -- Be aware that you also will need to properly configure your LSP server to\n -- provide the inlay hints.\n inlay_hints = {\n enabled = true,\n exclude = { "vue" }, -- filetypes for which you don\'t want to enable inlay hints\n },\n -- Enable this to enable the builtin LSP code lenses on Neovim.\n -- Be aware that you also will need to properly configure your LSP server to\n -- provide the code lenses.\n codelens = {\n enabled = false,\n },\n -- Enable this to enable the builtin LSP folding on Neovim.\n -- Be aware that you also will need to properly configure your LSP server to\n -- provide the folds.\n folds = {\n enabled = true,\n },\n -- add any global capabilities here\n capabilities = {\n workspace = {\n fileOperations = {\n didRename = true,\n willRename = true,\n },\n },\n },\n -- options for vim.lsp.buf.format\n -- `bufnr` and `filter` is handled by the LazyVim formatter,\n -- but can be also overridden when specified\n format = {\n formatting_options = nil,\n timeout_ms = nil,\n },\n -- LSP Server Settings\n ---@alias lazyvim.lsp.Config vim.lsp.Config|{mason?:boolean, enabled?:boolean}\n ---@type table<string, lazyvim.lsp.Config|boolean>\n servers = {\n stylua = { enabled = false },\n lua_ls = {\n -- mason = false, -- set to false if you don\'t want this server to be installed with mason\n -- Use this to add any additional keymaps\n -- for specific lsp servers\n -- ---@type LazyKeysSpec[]\n -- keys = {},\n settings = {\n Lua = {\n workspace = {\n checkThirdParty = false,\n },\n codeLens = {\n enable = true,\n },\n completion = {\n callSnippet = "Replace",\n },\n doc = {\n privateName = { "^_" },\n },\n hint = {\n enable = true,\n setType = false,\n paramType = true,\n paramName = "Disable",\n semicolon = "Disable",\n arrayIndex = "Disable",\n },\n },\n },\n },\n },\n -- you can do any additional lsp server setup here\n -- return true if you don\'t want this server to be setup with lspconfig\n ---@type table<string, fun(server:string, opts: vim.lsp.Config):boolean?>\n setup = {\n -- example to setup with typescript.nvim\n -- tsserver = function(_, opts)\n -- require("typescript").setup({ server = opts })\n -- return true\n -- end,\n -- Specify * to use this function as a fallback for any server\n -- ["*"] = function(server, opts) end,\n },\n }\n return ret\nend\n'))),(0,s.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "neovim/nvim-lspconfig",\n event = "LazyFile",\n dependencies = {\n "mason.nvim",\n { "mason-org/mason-lspconfig.nvim", config = function() end },\n },\n opts = function()\n ---@class PluginLspOpts\n local ret = {\n -- options for vim.diagnostic.config()\n ---@type vim.diagnostic.Opts\n diagnostics = {\n underline = true,\n update_in_insert = false,\n virtual_text = {\n spacing = 4,\n source = "if_many",\n prefix = "\u25cf",\n -- this will set set the prefix to a function that returns the diagnostics icon based on the severity\n -- prefix = "icons",\n },\n severity_sort = true,\n signs = {\n text = {\n [vim.diagnostic.severity.ERROR] = LazyVim.config.icons.diagnostics.Error,\n [vim.diagnostic.severity.WARN] = LazyVim.config.icons.diagnostics.Warn,\n [vim.diagnostic.severity.HINT] = LazyVim.config.icons.diagnostics.Hint,\n [vim.diagnostic.severity.INFO] = LazyVim.config.icons.diagnostics.Info,\n },\n },\n },\n -- Enable this to enable the builtin LSP inlay hints on Neovim.\n -- Be aware that you also will need to properly configure your LSP server to\n -- provide the inlay hints.\n inlay_hints = {\n enabled = true,\n exclude = { "vue" }, -- filetypes for which you don\'t want to enable inlay hints\n },\n -- Enable this to enable the builtin LSP code lenses on Neovim.\n -- Be aware that you also will need to properly configure your LSP server to\n -- provide the code lenses.\n codelens = {\n enabled = false,\n },\n -- Enable this to enable the builtin LSP folding on Neovim.\n -- Be aware that you also will need to properly configure your LSP server to\n -- provide the folds.\n folds = {\n enabled = true,\n },\n -- add any global capabilities here\n capabilities = {\n workspace = {\n fileOperations = {\n didRename = true,\n willRename = true,\n },\n },\n },\n -- options for vim.lsp.buf.format\n -- `bufnr` and `filter` is handled by the LazyVim formatter,\n -- but can be also overridden when specified\n format = {\n formatting_options = nil,\n timeout_ms = nil,\n },\n -- LSP Server Settings\n ---@alias lazyvim.lsp.Config vim.lsp.Config|{mason?:boolean, enabled?:boolean}\n ---@type table<string, lazyvim.lsp.Config|boolean>\n servers = {\n stylua = { enabled = false },\n lua_ls = {\n -- mason = false, -- set to false if you don\'t want this server to be installed with mason\n -- Use this to add any additional keymaps\n -- for specific lsp servers\n -- ---@type LazyKeysSpec[]\n -- keys = {},\n settings = {\n Lua = {\n workspace = {\n checkThirdParty = false,\n },\n codeLens = {\n enable = true,\n },\n completion = {\n callSnippet = "Replace",\n },\n doc = {\n privateName = { "^_" },\n },\n hint = {\n enable = true,\n setType = false,\n paramType = true,\n paramName = "Disable",\n semicolon = "Disable",\n arrayIndex = "Disable",\n },\n },\n },\n },\n },\n -- you can do any additional lsp server setup here\n -- return true if you don\'t want this server to be setup with lspconfig\n ---@type table<string, fun(server:string, opts: vim.lsp.Config):boolean?>\n setup = {\n -- example to setup with typescript.nvim\n -- tsserver = function(_, opts)\n -- require("typescript").setup({ server = opts })\n -- return true\n -- end,\n -- Specify * to use this function as a fallback for any server\n -- ["*"] = function(server, opts) end,\n },\n }\n return ret\n end,\n ---@param opts PluginLspOpts\n config = vim.schedule_wrap(function(_, opts)\n -- setup autoformat\n LazyVim.format.register(LazyVim.lsp.formatter())\n\n -- setup keymaps\n LazyVim.lsp.on_attach(function(client, buffer)\n require("lazyvim.plugins.lsp.keymaps").on_attach(client, buffer)\n end)\n\n LazyVim.lsp.setup()\n LazyVim.lsp.on_dynamic_capability(require("lazyvim.plugins.lsp.keymaps").on_attach)\n\n -- inlay hints\n if opts.inlay_hints.enabled then\n LazyVim.lsp.on_supports_method("textDocument/inlayHint", function(client, buffer)\n if\n vim.api.nvim_buf_is_valid(buffer)\n and vim.bo[buffer].buftype == ""\n and not vim.tbl_contains(opts.inlay_hints.exclude, vim.bo[buffer].filetype)\n then\n vim.lsp.inlay_hint.enable(true, { bufnr = buffer })\n end\n end)\n end\n\n -- folds\n if opts.folds.enabled then\n LazyVim.lsp.on_supports_method("textDocument/foldingRange", function(client, buffer)\n if LazyVim.set_default("foldmethod", "expr") then\n LazyVim.set_default("foldexpr", "v:lua.vim.lsp.foldexpr()")\n end\n end)\n end\n\n -- code lens\n if opts.codelens.enabled and vim.lsp.codelens then\n LazyVim.lsp.on_supports_method("textDocument/codeLens", function(client, buffer)\n vim.lsp.codelens.refresh()\n vim.api.nvim_create_autocmd({ "BufEnter", "CursorHold", "InsertLeave" }, {\n buffer = buffer,\n callback = vim.lsp.codelens.refresh,\n })\n end)\n end\n\n -- diagnostics\n if type(opts.diagnostics.virtual_text) == "table" and opts.diagnostics.virtual_text.prefix == "icons" then\n opts.diagnostics.virtual_text.prefix = function(diagnostic)\n local icons = LazyVim.config.icons.diagnostics\n for d, icon in pairs(icons) do\n if diagnostic.severity == vim.diagnostic.severity[d:upper()] then\n return icon\n end\n end\n return "\u25cf"\n end\n end\n vim.diagnostic.config(vim.deepcopy(opts.diagnostics))\n\n if opts.capabilities then\n vim.lsp.config("*", { capabilities = opts.capabilities })\n end\n\n -- get all the servers that are available through mason-lspconfig\n local have_mason = LazyVim.has("mason-lspconfig.nvim")\n local mason_all = have_mason\n and vim.tbl_keys(require("mason-lspconfig.mappings").get_mason_map().lspconfig_to_package)\n or {} --[[ @as string[] ]]\n local mason_exclude = {} ---@type string[]\n\n ---@return boolean? exclude automatic setup\n local function configure(server)\n local sopts = opts.servers[server]\n sopts = sopts == true and {} or (not sopts) and { enabled = false } or sopts --[[@as lazyvim.lsp.Config]]\n\n if sopts.enabled == false then\n mason_exclude[#mason_exclude + 1] = server\n return\n end\n\n local use_mason = sopts.mason ~= false and vim.tbl_contains(mason_all, server)\n local setup = opts.setup[server] or opts.setup["*"]\n if setup and setup(server, sopts) then\n mason_exclude[#mason_exclude + 1] = server\n else\n vim.lsp.config(server, sopts) -- configure the server\n if not use_mason then\n vim.lsp.enable(server)\n end\n end\n return use_mason\n end\n\n local install = vim.tbl_filter(configure, vim.tbl_keys(opts.servers))\n if have_mason then\n require("mason-lspconfig").setup({\n ensure_installed = vim.list_extend(install, LazyVim.opts("mason-lspconfig.nvim").ensure_installed or {}),\n automatic_enable = { exclude = mason_exclude },\n })\n end\n end),\n}\n')))),(0,s.kt)("h2",{id:"masonnvim"},(0,s.kt)("a",{parentName:"h2",href:"https://github.com/mason-org/mason.nvim"},"mason.nvim")),(0,s.kt)(i.Z,{mdxType:"Tabs"},(0,s.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-lua"},"opts = nil\n"))),(0,s.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "mason.nvim",\n { "mason-org/mason-lspconfig.nvim", config = function() end },\n}\n')))),(0,s.kt)("h2",{id:"mason-lspconfignvim"},(0,s.kt)("a",{parentName:"h2",href:"https://github.com/mason-org/mason-lspconfig.nvim"},"mason-lspconfig.nvim")),(0,s.kt)(i.Z,{mdxType:"Tabs"},(0,s.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-lua"},"opts = {}\n"))),(0,s.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-lua"},'{ "mason-org/mason-lspconfig.nvim", config = function() end }\n')))),(0,s.kt)("h2",{id:"masonnvim-1"},(0,s.kt)("a",{parentName:"h2",href:"https://github.com/mason-org/mason.nvim"},"mason.nvim")),(0,s.kt)("p",null," cmdline tools and lsp servers"),(0,s.kt)(i.Z,{mdxType:"Tabs"},(0,s.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-lua"},'opts = {\n ensure_installed = {\n "stylua",\n "shfmt",\n },\n}\n'))),(0,s.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-lua"},'{\n\n "mason-org/mason.nvim",\n cmd = "Mason",\n keys = { { "<leader>cm", "<cmd>Mason<cr>", desc = "Mason" } },\n build = ":MasonUpdate",\n opts_extend = { "ensure_installed" },\n opts = {\n ensure_installed = {\n "stylua",\n "shfmt",\n },\n },\n ---@param opts MasonSettings | {ensure_installed: string[]}\n config = function(_, opts)\n require("mason").setup(opts)\n local mr = require("mason-registry")\n mr:on("package:install:success", function()\n vim.defer_fn(function()\n -- trigger FileType event to possibly load this newly installed LSP server\n require("lazy.core.handler.event").trigger({\n event = "FileType",\n buf = vim.api.nvim_get_current_buf(),\n })\n end, 100)\n end)\n\n mr.refresh(function()\n for _, tool in ipairs(opts.ensure_installed) do\n local p = mr.get_package(tool)\n if not p:is_installed() then\n p:install()\n end\n end\n end)\n end,\n}\n')))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/a3c0e8b3.eedb6c4f.js b/assets/js/a3c0e8b3.eedb6c4f.js new file mode 100644 index 0000000000..17b380714a --- /dev/null +++ b/assets/js/a3c0e8b3.eedb6c4f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklazyvim=self.webpackChunklazyvim||[]).push([[8769],{3905:(e,n,t)=>{t.d(n,{Zo:()=>u,kt:()=>g});var a=t(7294);function r(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function o(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,a)}return t}function l(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?o(Object(t),!0).forEach((function(n){r(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):o(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function s(e,n){if(null==e)return{};var t,a,r=function(e,n){if(null==e)return{};var t,a,r={},o=Object.keys(e);for(a=0;a<o.length;a++)t=o[a],n.indexOf(t)>=0||(r[t]=e[t]);return r}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)t=o[a],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(r[t]=e[t])}return r}var i=a.createContext({}),c=function(e){var n=a.useContext(i),t=n;return e&&(t="function"==typeof e?e(n):l(l({},n),e)),t},u=function(e){var n=c(e.components);return a.createElement(i.Provider,{value:n},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var n=e.children;return a.createElement(a.Fragment,{},n)}},m=a.forwardRef((function(e,n){var t=e.components,r=e.mdxType,o=e.originalType,i=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),p=c(t),m=r,g=p["".concat(i,".").concat(m)]||p[m]||d[m]||o;return t?a.createElement(g,l(l({ref:n},u),{},{components:t})):a.createElement(g,l({ref:n},u))}));function g(e,n){var t=arguments,r=n&&n.mdxType;if("string"==typeof e||r){var o=t.length,l=new Array(o);l[0]=m;var s={};for(var i in n)hasOwnProperty.call(n,i)&&(s[i]=n[i]);s.originalType=e,s[p]="string"==typeof e?e:r,l[1]=s;for(var c=2;c<o;c++)l[c]=t[c];return a.createElement.apply(null,l)}return a.createElement.apply(null,t)}m.displayName="MDXCreateElement"},5162:(e,n,t)=>{t.d(n,{Z:()=>l});var a=t(7294),r=t(6010);const o="tabItem_Ymn6";function l(e){let{children:n,hidden:t,className:l}=e;return a.createElement("div",{role:"tabpanel",className:(0,r.Z)(o,l),hidden:t},n)}},4866:(e,n,t)=>{t.d(n,{Z:()=>T});var a=t(7462),r=t(7294),o=t(6010),l=t(2466),s=t(6550),i=t(1980),c=t(7392),u=t(12);function p(e){return function(e){return r.Children.map(e,(e=>{if(!e||(0,r.isValidElement)(e)&&function(e){const{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:n,label:t,attributes:a,default:r}}=e;return{value:n,label:t,attributes:a,default:r}}))}function d(e){const{values:n,children:t}=e;return(0,r.useMemo)((()=>{const e=n??p(t);return function(e){const n=(0,c.l)(e,((e,n)=>e.value===n.value));if(n.length>0)throw new Error(`Docusaurus error: Duplicate values "${n.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[n,t])}function m(e){let{value:n,tabValues:t}=e;return t.some((e=>e.value===n))}function g(e){let{queryString:n=!1,groupId:t}=e;const a=(0,s.k6)(),o=function(e){let{queryString:n=!1,groupId:t}=e;if("string"==typeof n)return n;if(!1===n)return null;if(!0===n&&!t)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return t??null}({queryString:n,groupId:t});return[(0,i._X)(o),(0,r.useCallback)((e=>{if(!o)return;const n=new URLSearchParams(a.location.search);n.set(o,e),a.replace({...a.location,search:n.toString()})}),[o,a])]}function f(e){const{defaultValue:n,queryString:t=!1,groupId:a}=e,o=d(e),[l,s]=(0,r.useState)((()=>function(e){let{defaultValue:n,tabValues:t}=e;if(0===t.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(n){if(!m({value:n,tabValues:t}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${n}" but none of its children has the corresponding value. Available values are: ${t.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return n}const a=t.find((e=>e.default))??t[0];if(!a)throw new Error("Unexpected error: 0 tabValues");return a.value}({defaultValue:n,tabValues:o}))),[i,c]=g({queryString:t,groupId:a}),[p,f]=function(e){let{groupId:n}=e;const t=function(e){return e?`docusaurus.tab.${e}`:null}(n),[a,o]=(0,u.Nk)(t);return[a,(0,r.useCallback)((e=>{t&&o.set(e)}),[t,o])]}({groupId:a}),b=(()=>{const e=i??p;return m({value:e,tabValues:o})?e:null})();(0,r.useLayoutEffect)((()=>{b&&s(b)}),[b]);return{selectedValue:l,selectValue:(0,r.useCallback)((e=>{if(!m({value:e,tabValues:o}))throw new Error(`Can't select invalid tab value=${e}`);s(e),c(e),f(e)}),[c,f,o]),tabValues:o}}var b=t(2389);const v="tabList__CuJ",h="tabItem_LNqP";function y(e){let{className:n,block:t,selectedValue:s,selectValue:i,tabValues:c}=e;const u=[],{blockElementScrollPositionUntilNextRender:p}=(0,l.o5)(),d=e=>{const n=e.currentTarget,t=u.indexOf(n),a=c[t].value;a!==s&&(p(n),i(a))},m=e=>{let n=null;switch(e.key){case"Enter":d(e);break;case"ArrowRight":{const t=u.indexOf(e.currentTarget)+1;n=u[t]??u[0];break}case"ArrowLeft":{const t=u.indexOf(e.currentTarget)-1;n=u[t]??u[u.length-1];break}}n?.focus()};return r.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,o.Z)("tabs",{"tabs--block":t},n)},c.map((e=>{let{value:n,label:t,attributes:l}=e;return r.createElement("li",(0,a.Z)({role:"tab",tabIndex:s===n?0:-1,"aria-selected":s===n,key:n,ref:e=>u.push(e),onKeyDown:m,onClick:d},l,{className:(0,o.Z)("tabs__item",h,l?.className,{"tabs__item--active":s===n})}),t??n)})))}function k(e){let{lazy:n,children:t,selectedValue:a}=e;const o=(Array.isArray(t)?t:[t]).filter(Boolean);if(n){const e=o.find((e=>e.props.value===a));return e?(0,r.cloneElement)(e,{className:"margin-top--md"}):null}return r.createElement("div",{className:"margin-top--md"},o.map(((e,n)=>(0,r.cloneElement)(e,{key:n,hidden:e.props.value!==a}))))}function x(e){const n=f(e);return r.createElement("div",{className:(0,o.Z)("tabs-container",v)},r.createElement(y,(0,a.Z)({},e,n)),r.createElement(k,(0,a.Z)({},e,n)))}function T(e){const n=(0,b.Z)();return r.createElement(x,(0,a.Z)({key:String(n)},e))}},1354:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>u,contentTitle:()=>i,default:()=>m,frontMatter:()=>s,metadata:()=>c,toc:()=>p});var a=t(7462),r=(t(7294),t(3905)),o=t(4866),l=t(5162);const s={},i="Clangd",c={unversionedId:"extras/lang/clangd",id:"extras/lang/clangd",title:"Clangd",description:"You can enable the extra with the :LazyExtras command.",source:"@site/docs/extras/lang/clangd.md",sourceDirName:"extras/lang",slug:"/extras/lang/clangd",permalink:"/extras/lang/clangd",draft:!1,editUrl:"https://github.com/LazyVim/lazyvim.github.io/tree/main/docs/extras/lang/clangd.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Astro",permalink:"/extras/lang/astro"},next:{title:"Clojure",permalink:"/extras/lang/clojure"}},u={},p=[{value:"nvim-treesitter",id:"nvim-treesitter",level:2},{value:"clangd_extensions.nvim",id:"clangd_extensionsnvim",level:2},{value:"nvim-lspconfig",id:"nvim-lspconfig",level:2},{value:"nvim-cmp <em>(optional)</em>",id:"nvim-cmp-optional",level:2},{value:"nvim-dap <em>(optional)</em>",id:"nvim-dap-optional",level:2},{value:"mason.nvim <em>(optional)</em>",id:"masonnvim-optional",level:2}],d={toc:p};function m(e){let{components:n,...t}=e;return(0,r.kt)("wrapper",(0,a.Z)({},d,t,{components:n,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"clangd"},"Clangd"),(0,r.kt)("admonition",{type:"info"},(0,r.kt)("p",{parentName:"admonition"},"You can enable the extra with the ",(0,r.kt)("inlineCode",{parentName:"p"},":LazyExtras")," command.\nPlugins marked as optional will only be configured if they are installed.")),(0,r.kt)("p",null,"Below you can find a list of included plugins and their default settings."),(0,r.kt)("admonition",{type:"caution"},(0,r.kt)("p",{parentName:"admonition"},"You don't need to copy the default settings to your config.\nThey are only shown here for reference.")),(0,r.kt)("h2",{id:"nvim-treesitter"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/nvim-treesitter/nvim-treesitter"},"nvim-treesitter")),(0,r.kt)("p",null," Add C/C++ to treesitter"),(0,r.kt)(o.Z,{mdxType:"Tabs"},(0,r.kt)(l.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = { ensure_installed = { "cpp" } }\n'))),(0,r.kt)(l.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "nvim-treesitter/nvim-treesitter",\n opts = { ensure_installed = { "cpp" } },\n}\n')))),(0,r.kt)("h2",{id:"clangd_extensionsnvim"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/p00f/clangd_extensions.nvim"},"clangd_extensions.nvim")),(0,r.kt)(o.Z,{mdxType:"Tabs"},(0,r.kt)(l.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = {\n inlay_hints = {\n inline = false,\n },\n ast = {\n --These require codicons (https://github.com/microsoft/vscode-codicons)\n role_icons = {\n type = "\ueb63",\n declaration = "\uea8c",\n expression = "\uea71",\n specifier = "\ueb86",\n statement = "\uea86",\n ["template argument"] = "\uea92",\n },\n kind_icons = {\n Compound = "\uea8b",\n Recovery = "\uea87",\n TranslationUnit = "\ueae9",\n PackExpansion = "\uea7c",\n TemplateTypeParm = "\uea92",\n TemplateTemplateParm = "\uea92",\n TemplateParamObject = "\uea92",\n },\n },\n}\n'))),(0,r.kt)(l.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "p00f/clangd_extensions.nvim",\n lazy = true,\n config = function() end,\n opts = {\n inlay_hints = {\n inline = false,\n },\n ast = {\n --These require codicons (https://github.com/microsoft/vscode-codicons)\n role_icons = {\n type = "\ueb63",\n declaration = "\uea8c",\n expression = "\uea71",\n specifier = "\ueb86",\n statement = "\uea86",\n ["template argument"] = "\uea92",\n },\n kind_icons = {\n Compound = "\uea8b",\n Recovery = "\uea87",\n TranslationUnit = "\ueae9",\n PackExpansion = "\uea7c",\n TemplateTypeParm = "\uea92",\n TemplateTemplateParm = "\uea92",\n TemplateParamObject = "\uea92",\n },\n },\n },\n}\n')))),(0,r.kt)("h2",{id:"nvim-lspconfig"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/neovim/nvim-lspconfig"},"nvim-lspconfig")),(0,r.kt)("p",null," Correctly setup lspconfig for clangd \ud83d\ude80"),(0,r.kt)(o.Z,{mdxType:"Tabs"},(0,r.kt)(l.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = {\n servers = {\n -- Ensure mason installs the server\n clangd = {\n keys = {\n { "<leader>ch", "<cmd>LspClangdSwitchSourceHeader<cr>", desc = "Switch Source/Header (C/C++)" },\n },\n root_markers = {\n "compile_commands.json",\n "compile_flags.txt",\n "configure.ac", -- AutoTools\n "Makefile",\n "configure.ac",\n "configure.in",\n "config.h.in",\n "meson.build",\n "meson_options.txt",\n "build.ninja",\n ".git",\n },\n capabilities = {\n offsetEncoding = { "utf-16" },\n },\n cmd = {\n "clangd",\n "--background-index",\n "--clang-tidy",\n "--header-insertion=iwyu",\n "--completion-style=detailed",\n "--function-arg-placeholders",\n "--fallback-style=llvm",\n },\n init_options = {\n usePlaceholders = true,\n completeUnimported = true,\n clangdFileStatus = true,\n },\n },\n },\n setup = {\n clangd = function(_, opts)\n local clangd_ext_opts = LazyVim.opts("clangd_extensions.nvim")\n require("clangd_extensions").setup(vim.tbl_deep_extend("force", clangd_ext_opts or {}, { server = opts }))\n return false\n end,\n },\n}\n'))),(0,r.kt)(l.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "neovim/nvim-lspconfig",\n opts = {\n servers = {\n -- Ensure mason installs the server\n clangd = {\n keys = {\n { "<leader>ch", "<cmd>LspClangdSwitchSourceHeader<cr>", desc = "Switch Source/Header (C/C++)" },\n },\n root_markers = {\n "compile_commands.json",\n "compile_flags.txt",\n "configure.ac", -- AutoTools\n "Makefile",\n "configure.ac",\n "configure.in",\n "config.h.in",\n "meson.build",\n "meson_options.txt",\n "build.ninja",\n ".git",\n },\n capabilities = {\n offsetEncoding = { "utf-16" },\n },\n cmd = {\n "clangd",\n "--background-index",\n "--clang-tidy",\n "--header-insertion=iwyu",\n "--completion-style=detailed",\n "--function-arg-placeholders",\n "--fallback-style=llvm",\n },\n init_options = {\n usePlaceholders = true,\n completeUnimported = true,\n clangdFileStatus = true,\n },\n },\n },\n setup = {\n clangd = function(_, opts)\n local clangd_ext_opts = LazyVim.opts("clangd_extensions.nvim")\n require("clangd_extensions").setup(vim.tbl_deep_extend("force", clangd_ext_opts or {}, { server = opts }))\n return false\n end,\n },\n },\n}\n')))),(0,r.kt)("h2",{id:"nvim-cmp-optional"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/hrsh7th/nvim-cmp"},"nvim-cmp")," ",(0,r.kt)("em",{parentName:"h2"},"(optional)")),(0,r.kt)(o.Z,{mdxType:"Tabs"},(0,r.kt)(l.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = function(_, opts)\n opts.sorting = opts.sorting or {}\n opts.sorting.comparators = opts.sorting.comparators or {}\n table.insert(opts.sorting.comparators, 1, require("clangd_extensions.cmp_scores"))\nend\n'))),(0,r.kt)(l.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "hrsh7th/nvim-cmp",\n optional = true,\n opts = function(_, opts)\n opts.sorting = opts.sorting or {}\n opts.sorting.comparators = opts.sorting.comparators or {}\n table.insert(opts.sorting.comparators, 1, require("clangd_extensions.cmp_scores"))\n end,\n}\n')))),(0,r.kt)("h2",{id:"nvim-dap-optional"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/mfussenegger/nvim-dap"},"nvim-dap")," ",(0,r.kt)("em",{parentName:"h2"},"(optional)")),(0,r.kt)(o.Z,{mdxType:"Tabs"},(0,r.kt)(l.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = function()\n local dap = require("dap")\n if not dap.adapters["codelldb"] then\n require("dap").adapters["codelldb"] = {\n type = "server",\n host = "localhost",\n port = "${port}",\n executable = {\n command = "codelldb",\n args = {\n "--port",\n "${port}",\n },\n },\n }\n end\n for _, lang in ipairs({ "c", "cpp" }) do\n dap.configurations[lang] = {\n {\n type = "codelldb",\n request = "launch",\n name = "Launch file",\n program = function()\n return vim.fn.input("Path to executable: ", vim.fn.getcwd() .. "/", "file")\n end,\n cwd = "${workspaceFolder}",\n },\n {\n type = "codelldb",\n request = "attach",\n name = "Attach to process",\n pid = require("dap.utils").pick_process,\n cwd = "${workspaceFolder}",\n },\n }\n end\nend\n'))),(0,r.kt)(l.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "mfussenegger/nvim-dap",\n optional = true,\n dependencies = {\n -- Ensure C/C++ debugger is installed\n "mason-org/mason.nvim",\n optional = true,\n opts = { ensure_installed = { "codelldb" } },\n },\n opts = function()\n local dap = require("dap")\n if not dap.adapters["codelldb"] then\n require("dap").adapters["codelldb"] = {\n type = "server",\n host = "localhost",\n port = "${port}",\n executable = {\n command = "codelldb",\n args = {\n "--port",\n "${port}",\n },\n },\n }\n end\n for _, lang in ipairs({ "c", "cpp" }) do\n dap.configurations[lang] = {\n {\n type = "codelldb",\n request = "launch",\n name = "Launch file",\n program = function()\n return vim.fn.input("Path to executable: ", vim.fn.getcwd() .. "/", "file")\n end,\n cwd = "${workspaceFolder}",\n },\n {\n type = "codelldb",\n request = "attach",\n name = "Attach to process",\n pid = require("dap.utils").pick_process,\n cwd = "${workspaceFolder}",\n },\n }\n end\n end,\n}\n')))),(0,r.kt)("h2",{id:"masonnvim-optional"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/mason-org/mason.nvim"},"mason.nvim")," ",(0,r.kt)("em",{parentName:"h2"},"(optional)")),(0,r.kt)(o.Z,{mdxType:"Tabs"},(0,r.kt)(l.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = { ensure_installed = { "codelldb" } }\n'))),(0,r.kt)(l.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n -- Ensure C/C++ debugger is installed\n "mason-org/mason.nvim",\n optional = true,\n opts = { ensure_installed = { "codelldb" } },\n}\n')))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/a4db065b.f7c013e7.js b/assets/js/a4db065b.f7c013e7.js new file mode 100644 index 0000000000..999492ad76 --- /dev/null +++ b/assets/js/a4db065b.f7c013e7.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklazyvim=self.webpackChunklazyvim||[]).push([[3559],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>f});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function o(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?l(Object(n),!0).forEach((function(t){r(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):l(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function i(e,t){if(null==e)return{};var n,a,r=function(e,t){if(null==e)return{};var n,a,r={},l=Object.keys(e);for(a=0;a<l.length;a++)n=l[a],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a<l.length;a++)n=l[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var s=a.createContext({}),u=function(e){var t=a.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},c=function(e){var t=u(e.components);return a.createElement(s.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},d=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,l=e.originalType,s=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),p=u(n),d=r,f=p["".concat(s,".").concat(d)]||p[d]||m[d]||l;return n?a.createElement(f,o(o({ref:t},c),{},{components:n})):a.createElement(f,o({ref:t},c))}));function f(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var l=n.length,o=new Array(l);o[0]=d;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[p]="string"==typeof e?e:r,o[1]=i;for(var u=2;u<l;u++)o[u]=n[u];return a.createElement.apply(null,o)}return a.createElement.apply(null,n)}d.displayName="MDXCreateElement"},5162:(e,t,n)=>{n.d(t,{Z:()=>o});var a=n(7294),r=n(6010);const l="tabItem_Ymn6";function o(e){let{children:t,hidden:n,className:o}=e;return a.createElement("div",{role:"tabpanel",className:(0,r.Z)(l,o),hidden:n},t)}},4866:(e,t,n)=>{n.d(t,{Z:()=>x});var a=n(7462),r=n(7294),l=n(6010),o=n(2466),i=n(6550),s=n(1980),u=n(7392),c=n(12);function p(e){return function(e){return r.Children.map(e,(e=>{if(!e||(0,r.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:t,label:n,attributes:a,default:r}}=e;return{value:t,label:n,attributes:a,default:r}}))}function m(e){const{values:t,children:n}=e;return(0,r.useMemo)((()=>{const e=t??p(n);return function(e){const t=(0,u.l)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[t,n])}function d(e){let{value:t,tabValues:n}=e;return n.some((e=>e.value===t))}function f(e){let{queryString:t=!1,groupId:n}=e;const a=(0,i.k6)(),l=function(e){let{queryString:t=!1,groupId:n}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!n)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return n??null}({queryString:t,groupId:n});return[(0,s._X)(l),(0,r.useCallback)((e=>{if(!l)return;const t=new URLSearchParams(a.location.search);t.set(l,e),a.replace({...a.location,search:t.toString()})}),[l,a])]}function v(e){const{defaultValue:t,queryString:n=!1,groupId:a}=e,l=m(e),[o,i]=(0,r.useState)((()=>function(e){let{defaultValue:t,tabValues:n}=e;if(0===n.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(t){if(!d({value:t,tabValues:n}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${n.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const a=n.find((e=>e.default))??n[0];if(!a)throw new Error("Unexpected error: 0 tabValues");return a.value}({defaultValue:t,tabValues:l}))),[s,u]=f({queryString:n,groupId:a}),[p,v]=function(e){let{groupId:t}=e;const n=function(e){return e?`docusaurus.tab.${e}`:null}(t),[a,l]=(0,c.Nk)(n);return[a,(0,r.useCallback)((e=>{n&&l.set(e)}),[n,l])]}({groupId:a}),b=(()=>{const e=s??p;return d({value:e,tabValues:l})?e:null})();(0,r.useLayoutEffect)((()=>{b&&i(b)}),[b]);return{selectedValue:o,selectValue:(0,r.useCallback)((e=>{if(!d({value:e,tabValues:l}))throw new Error(`Can't select invalid tab value=${e}`);i(e),u(e),v(e)}),[u,v,l]),tabValues:l}}var b=n(2389);const g="tabList__CuJ",h="tabItem_LNqP";function k(e){let{className:t,block:n,selectedValue:i,selectValue:s,tabValues:u}=e;const c=[],{blockElementScrollPositionUntilNextRender:p}=(0,o.o5)(),m=e=>{const t=e.currentTarget,n=c.indexOf(t),a=u[n].value;a!==i&&(p(t),s(a))},d=e=>{let t=null;switch(e.key){case"Enter":m(e);break;case"ArrowRight":{const n=c.indexOf(e.currentTarget)+1;t=c[n]??c[0];break}case"ArrowLeft":{const n=c.indexOf(e.currentTarget)-1;t=c[n]??c[c.length-1];break}}t?.focus()};return r.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,l.Z)("tabs",{"tabs--block":n},t)},u.map((e=>{let{value:t,label:n,attributes:o}=e;return r.createElement("li",(0,a.Z)({role:"tab",tabIndex:i===t?0:-1,"aria-selected":i===t,key:t,ref:e=>c.push(e),onKeyDown:d,onClick:m},o,{className:(0,l.Z)("tabs__item",h,o?.className,{"tabs__item--active":i===t})}),n??t)})))}function y(e){let{lazy:t,children:n,selectedValue:a}=e;const l=(Array.isArray(n)?n:[n]).filter(Boolean);if(t){const e=l.find((e=>e.props.value===a));return e?(0,r.cloneElement)(e,{className:"margin-top--md"}):null}return r.createElement("div",{className:"margin-top--md"},l.map(((e,t)=>(0,r.cloneElement)(e,{key:t,hidden:e.props.value!==a}))))}function T(e){const t=v(e);return r.createElement("div",{className:(0,l.Z)("tabs-container",g)},r.createElement(k,(0,a.Z)({},e,t)),r.createElement(y,(0,a.Z)({},e,t)))}function x(e){const t=(0,b.Z)();return r.createElement(T,(0,a.Z)({key:String(t)},e))}},294:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>s,default:()=>d,frontMatter:()=>i,metadata:()=>u,toc:()=>p});var a=n(7462),r=(n(7294),n(3905)),l=n(4866),o=n(5162);const i={},s="Docker",u={unversionedId:"extras/lang/docker",id:"extras/lang/docker",title:"Docker",description:"You can enable the extra with the :LazyExtras command.",source:"@site/docs/extras/lang/docker.md",sourceDirName:"extras/lang",slug:"/extras/lang/docker",permalink:"/extras/lang/docker",draft:!1,editUrl:"https://github.com/LazyVim/lazyvim.github.io/tree/main/docs/extras/lang/docker.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Dart",permalink:"/extras/lang/dart"},next:{title:"Dotnet",permalink:"/extras/lang/dotnet"}},c={},p=[{value:"nvim-treesitter",id:"nvim-treesitter",level:2},{value:"mason.nvim",id:"masonnvim",level:2},{value:"nvim-lspconfig",id:"nvim-lspconfig",level:2},{value:"none-ls.nvim <em>(optional)</em>",id:"none-lsnvim-optional",level:2},{value:"nvim-lint <em>(optional)</em>",id:"nvim-lint-optional",level:2}],m={toc:p};function d(e){let{components:t,...n}=e;return(0,r.kt)("wrapper",(0,a.Z)({},m,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"docker"},"Docker"),(0,r.kt)("admonition",{type:"info"},(0,r.kt)("p",{parentName:"admonition"},"You can enable the extra with the ",(0,r.kt)("inlineCode",{parentName:"p"},":LazyExtras")," command.\nPlugins marked as optional will only be configured if they are installed.")),(0,r.kt)("p",null,"Below you can find a list of included plugins and their default settings."),(0,r.kt)("admonition",{type:"caution"},(0,r.kt)("p",{parentName:"admonition"},"You don't need to copy the default settings to your config.\nThey are only shown here for reference.")),(0,r.kt)("h2",{id:"nvim-treesitter"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/nvim-treesitter/nvim-treesitter"},"nvim-treesitter")),(0,r.kt)(l.Z,{mdxType:"Tabs"},(0,r.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = { ensure_installed = { "dockerfile" } }\n'))),(0,r.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "nvim-treesitter/nvim-treesitter",\n opts = { ensure_installed = { "dockerfile" } },\n}\n')))),(0,r.kt)("h2",{id:"masonnvim"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/mason-org/mason.nvim"},"mason.nvim")),(0,r.kt)(l.Z,{mdxType:"Tabs"},(0,r.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = { ensure_installed = { "hadolint" } }\n'))),(0,r.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "mason.nvim",\n opts = { ensure_installed = { "hadolint" } },\n}\n')))),(0,r.kt)("h2",{id:"nvim-lspconfig"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/neovim/nvim-lspconfig"},"nvim-lspconfig")),(0,r.kt)(l.Z,{mdxType:"Tabs"},(0,r.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},"opts = {\n servers = {\n dockerls = {},\n docker_compose_language_service = {},\n },\n}\n"))),(0,r.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "neovim/nvim-lspconfig",\n opts = {\n servers = {\n dockerls = {},\n docker_compose_language_service = {},\n },\n },\n}\n')))),(0,r.kt)("h2",{id:"none-lsnvim-optional"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/nvimtools/none-ls.nvim"},"none-ls.nvim")," ",(0,r.kt)("em",{parentName:"h2"},"(optional)")),(0,r.kt)(l.Z,{mdxType:"Tabs"},(0,r.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = function(_, opts)\n local nls = require("null-ls")\n opts.sources = vim.list_extend(opts.sources or {}, {\n nls.builtins.diagnostics.hadolint,\n })\nend\n'))),(0,r.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "nvimtools/none-ls.nvim",\n optional = true,\n opts = function(_, opts)\n local nls = require("null-ls")\n opts.sources = vim.list_extend(opts.sources or {}, {\n nls.builtins.diagnostics.hadolint,\n })\n end,\n}\n')))),(0,r.kt)("h2",{id:"nvim-lint-optional"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/mfussenegger/nvim-lint"},"nvim-lint")," ",(0,r.kt)("em",{parentName:"h2"},"(optional)")),(0,r.kt)(l.Z,{mdxType:"Tabs"},(0,r.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = {\n linters_by_ft = {\n dockerfile = { "hadolint" },\n },\n}\n'))),(0,r.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "mfussenegger/nvim-lint",\n optional = true,\n opts = {\n linters_by_ft = {\n dockerfile = { "hadolint" },\n },\n },\n}\n')))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/a4dc063a.5b23d305.js b/assets/js/a4dc063a.5b23d305.js new file mode 100644 index 0000000000..46c5d4f162 --- /dev/null +++ b/assets/js/a4dc063a.5b23d305.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklazyvim=self.webpackChunklazyvim||[]).push([[2042],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>m});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function l(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?i(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):i(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function o(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var u=r.createContext({}),s=function(e){var t=r.useContext(u),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},c=function(e){var t=s(e.components);return r.createElement(u.Provider,{value:t},e.children)},p="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,i=e.originalType,u=e.parentName,c=o(e,["components","mdxType","originalType","parentName"]),p=s(n),d=a,m=p["".concat(u,".").concat(d)]||p[d]||h[d]||i;return n?r.createElement(m,l(l({ref:t},c),{},{components:n})):r.createElement(m,l({ref:t},c))}));function m(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=n.length,l=new Array(i);l[0]=d;var o={};for(var u in t)hasOwnProperty.call(t,u)&&(o[u]=t[u]);o.originalType=e,o[p]="string"==typeof e?e:a,l[1]=o;for(var s=2;s<i;s++)l[s]=n[s];return r.createElement.apply(null,l)}return r.createElement.apply(null,n)}d.displayName="MDXCreateElement"},5162:(e,t,n)=>{n.d(t,{Z:()=>l});var r=n(7294),a=n(6010);const i="tabItem_Ymn6";function l(e){let{children:t,hidden:n,className:l}=e;return r.createElement("div",{role:"tabpanel",className:(0,a.Z)(i,l),hidden:n},t)}},4866:(e,t,n)=>{n.d(t,{Z:()=>k});var r=n(7462),a=n(7294),i=n(6010),l=n(2466),o=n(6550),u=n(1980),s=n(7392),c=n(12);function p(e){return function(e){return a.Children.map(e,(e=>{if(!e||(0,a.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:t,label:n,attributes:r,default:a}}=e;return{value:t,label:n,attributes:r,default:a}}))}function h(e){const{values:t,children:n}=e;return(0,a.useMemo)((()=>{const e=t??p(n);return function(e){const t=(0,s.l)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[t,n])}function d(e){let{value:t,tabValues:n}=e;return n.some((e=>e.value===t))}function m(e){let{queryString:t=!1,groupId:n}=e;const r=(0,o.k6)(),i=function(e){let{queryString:t=!1,groupId:n}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!n)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return n??null}({queryString:t,groupId:n});return[(0,u._X)(i),(0,a.useCallback)((e=>{if(!i)return;const t=new URLSearchParams(r.location.search);t.set(i,e),r.replace({...r.location,search:t.toString()})}),[i,r])]}function f(e){const{defaultValue:t,queryString:n=!1,groupId:r}=e,i=h(e),[l,o]=(0,a.useState)((()=>function(e){let{defaultValue:t,tabValues:n}=e;if(0===n.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(t){if(!d({value:t,tabValues:n}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${n.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const r=n.find((e=>e.default))??n[0];if(!r)throw new Error("Unexpected error: 0 tabValues");return r.value}({defaultValue:t,tabValues:i}))),[u,s]=m({queryString:n,groupId:r}),[p,f]=function(e){let{groupId:t}=e;const n=function(e){return e?`docusaurus.tab.${e}`:null}(t),[r,i]=(0,c.Nk)(n);return[r,(0,a.useCallback)((e=>{n&&i.set(e)}),[n,i])]}({groupId:r}),b=(()=>{const e=u??p;return d({value:e,tabValues:i})?e:null})();(0,a.useLayoutEffect)((()=>{b&&o(b)}),[b]);return{selectedValue:l,selectValue:(0,a.useCallback)((e=>{if(!d({value:e,tabValues:i}))throw new Error(`Can't select invalid tab value=${e}`);o(e),s(e),f(e)}),[s,f,i]),tabValues:i}}var b=n(2389);const g="tabList__CuJ",y="tabItem_LNqP";function v(e){let{className:t,block:n,selectedValue:o,selectValue:u,tabValues:s}=e;const c=[],{blockElementScrollPositionUntilNextRender:p}=(0,l.o5)(),h=e=>{const t=e.currentTarget,n=c.indexOf(t),r=s[n].value;r!==o&&(p(t),u(r))},d=e=>{let t=null;switch(e.key){case"Enter":h(e);break;case"ArrowRight":{const n=c.indexOf(e.currentTarget)+1;t=c[n]??c[0];break}case"ArrowLeft":{const n=c.indexOf(e.currentTarget)-1;t=c[n]??c[c.length-1];break}}t?.focus()};return a.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,i.Z)("tabs",{"tabs--block":n},t)},s.map((e=>{let{value:t,label:n,attributes:l}=e;return a.createElement("li",(0,r.Z)({role:"tab",tabIndex:o===t?0:-1,"aria-selected":o===t,key:t,ref:e=>c.push(e),onKeyDown:d,onClick:h},l,{className:(0,i.Z)("tabs__item",y,l?.className,{"tabs__item--active":o===t})}),n??t)})))}function w(e){let{lazy:t,children:n,selectedValue:r}=e;const i=(Array.isArray(n)?n:[n]).filter(Boolean);if(t){const e=i.find((e=>e.props.value===r));return e?(0,a.cloneElement)(e,{className:"margin-top--md"}):null}return a.createElement("div",{className:"margin-top--md"},i.map(((e,t)=>(0,a.cloneElement)(e,{key:t,hidden:e.props.value!==r}))))}function x(e){const t=f(e);return a.createElement("div",{className:(0,i.Z)("tabs-container",g)},a.createElement(v,(0,r.Z)({},e,t)),a.createElement(w,(0,r.Z)({},e,t)))}function k(e){const t=(0,b.Z)();return a.createElement(x,(0,r.Z)({key:String(t)},e))}},3606:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>u,default:()=>d,frontMatter:()=>o,metadata:()=>s,toc:()=>p});var r=n(7462),a=(n(7294),n(3905)),i=n(4866),l=n(5162);const o={},u="Mini Hipatterns",s={unversionedId:"extras/util/mini-hipatterns",id:"extras/util/mini-hipatterns",title:"Mini Hipatterns",description:"You can enable the extra with the :LazyExtras command.",source:"@site/docs/extras/util/mini-hipatterns.md",sourceDirName:"extras/util",slug:"/extras/util/mini-hipatterns",permalink:"/extras/util/mini-hipatterns",draft:!1,editUrl:"https://github.com/LazyVim/lazyvim.github.io/tree/main/docs/extras/util/mini-hipatterns.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Gitui",permalink:"/extras/util/gitui"},next:{title:"Octo",permalink:"/extras/util/octo"}},c={},p=[{value:"mini.hipatterns",id:"minihipatterns",level:2}],h={toc:p};function d(e){let{components:t,...n}=e;return(0,a.kt)("wrapper",(0,r.Z)({},h,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"mini-hipatterns"},"Mini Hipatterns"),(0,a.kt)("admonition",{type:"info"},(0,a.kt)("p",{parentName:"admonition"},"You can enable the extra with the ",(0,a.kt)("inlineCode",{parentName:"p"},":LazyExtras")," command.\nPlugins marked as optional will only be configured if they are installed.")),(0,a.kt)("p",null,"Below you can find a list of included plugins and their default settings."),(0,a.kt)("admonition",{type:"caution"},(0,a.kt)("p",{parentName:"admonition"},"You don't need to copy the default settings to your config.\nThey are only shown here for reference.")),(0,a.kt)("h2",{id:"minihipatterns"},(0,a.kt)("a",{parentName:"h2",href:"https://github.com/nvim-mini/mini.hipatterns"},"mini.hipatterns")),(0,a.kt)(i.Z,{mdxType:"Tabs"},(0,a.kt)(l.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'opts = function()\n local hi = require("mini.hipatterns")\n return {\n -- custom LazyVim option to enable the tailwind integration\n tailwind = {\n enabled = true,\n ft = {\n "astro",\n "css",\n "heex",\n "html",\n "html-eex",\n "javascript",\n "javascriptreact",\n "rust",\n "svelte",\n "typescript",\n "typescriptreact",\n "vue",\n },\n -- full: the whole css class will be highlighted\n -- compact: only the color will be highlighted\n style = "full",\n },\n highlighters = {\n hex_color = hi.gen_highlighter.hex_color({ priority = 2000 }),\n shorthand = {\n pattern = "()#%x%x%x()%f[^%x%w]",\n group = function(_, _, data)\n ---@type string\n local match = data.full_match\n local r, g, b = match:sub(2, 2), match:sub(3, 3), match:sub(4, 4)\n local hex_color = "#" .. r .. r .. g .. g .. b .. b\n\n return MiniHipatterns.compute_hex_color_group(hex_color, "bg")\n end,\n extmark_opts = { priority = 2000 },\n },\n },\n }\nend\n'))),(0,a.kt)(l.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "nvim-mini/mini.hipatterns",\n recommended = true,\n desc = "Highlight colors in your code. Also includes Tailwind CSS support.",\n event = "LazyFile",\n opts = function()\n local hi = require("mini.hipatterns")\n return {\n -- custom LazyVim option to enable the tailwind integration\n tailwind = {\n enabled = true,\n ft = {\n "astro",\n "css",\n "heex",\n "html",\n "html-eex",\n "javascript",\n "javascriptreact",\n "rust",\n "svelte",\n "typescript",\n "typescriptreact",\n "vue",\n },\n -- full: the whole css class will be highlighted\n -- compact: only the color will be highlighted\n style = "full",\n },\n highlighters = {\n hex_color = hi.gen_highlighter.hex_color({ priority = 2000 }),\n shorthand = {\n pattern = "()#%x%x%x()%f[^%x%w]",\n group = function(_, _, data)\n ---@type string\n local match = data.full_match\n local r, g, b = match:sub(2, 2), match:sub(3, 3), match:sub(4, 4)\n local hex_color = "#" .. r .. r .. g .. g .. b .. b\n\n return MiniHipatterns.compute_hex_color_group(hex_color, "bg")\n end,\n extmark_opts = { priority = 2000 },\n },\n },\n }\n end,\n config = function(_, opts)\n if type(opts.tailwind) == "table" and opts.tailwind.enabled then\n -- reset hl groups when colorscheme changes\n vim.api.nvim_create_autocmd("ColorScheme", {\n callback = function()\n M.hl = {}\n end,\n })\n opts.highlighters.tailwind = {\n pattern = function()\n if not vim.tbl_contains(opts.tailwind.ft, vim.bo.filetype) then\n return\n end\n if opts.tailwind.style == "full" then\n return "%f[%w:-]()[%w:-]+%-[a-z%-]+%-%d+()%f[^%w:-]"\n elseif opts.tailwind.style == "compact" then\n return "%f[%w:-][%w:-]+%-()[a-z%-]+%-%d+()%f[^%w:-]"\n end\n end,\n group = function(_, _, m)\n ---@type string\n local match = m.full_match\n ---@type string, number\n local color, shade = match:match("[%w-]+%-([a-z%-]+)%-(%d+)")\n shade = tonumber(shade)\n local bg = vim.tbl_get(M.colors, color, shade)\n if bg then\n local hl = "MiniHipatternsTailwind" .. color .. shade\n if not M.hl[hl] then\n M.hl[hl] = true\n local bg_shade = shade == 500 and 950 or shade < 500 and 900 or 100\n local fg = vim.tbl_get(M.colors, color, bg_shade)\n vim.api.nvim_set_hl(0, hl, { bg = "#" .. bg, fg = "#" .. fg })\n end\n return hl\n end\n end,\n extmark_opts = { priority = 2000 },\n }\n end\n require("mini.hipatterns").setup(opts)\n end,\n}\n')))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/a506056f.c71afc0a.js b/assets/js/a506056f.c71afc0a.js new file mode 100644 index 0000000000..7839f04315 --- /dev/null +++ b/assets/js/a506056f.c71afc0a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklazyvim=self.webpackChunklazyvim||[]).push([[7934],{3905:(e,n,t)=>{t.d(n,{Zo:()=>c,kt:()=>m});var r=t(7294);function i(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function a(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function o(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?a(Object(t),!0).forEach((function(n){i(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):a(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function l(e,n){if(null==e)return{};var t,r,i=function(e,n){if(null==e)return{};var t,r,i={},a=Object.keys(e);for(r=0;r<a.length;r++)t=a[r],n.indexOf(t)>=0||(i[t]=e[t]);return i}(e,n);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)t=a[r],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(i[t]=e[t])}return i}var s=r.createContext({}),u=function(e){var n=r.useContext(s),t=n;return e&&(t="function"==typeof e?e(n):o(o({},n),e)),t},c=function(e){var n=u(e.components);return r.createElement(s.Provider,{value:n},e.children)},d="mdxType",f={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},p=r.forwardRef((function(e,n){var t=e.components,i=e.mdxType,a=e.originalType,s=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),d=u(t),p=i,m=d["".concat(s,".").concat(p)]||d[p]||f[p]||a;return t?r.createElement(m,o(o({ref:n},c),{},{components:t})):r.createElement(m,o({ref:n},c))}));function m(e,n){var t=arguments,i=n&&n.mdxType;if("string"==typeof e||i){var a=t.length,o=new Array(a);o[0]=p;var l={};for(var s in n)hasOwnProperty.call(n,s)&&(l[s]=n[s]);l.originalType=e,l[d]="string"==typeof e?e:i,o[1]=l;for(var u=2;u<a;u++)o[u]=t[u];return r.createElement.apply(null,o)}return r.createElement.apply(null,t)}p.displayName="MDXCreateElement"},5162:(e,n,t)=>{t.d(n,{Z:()=>o});var r=t(7294),i=t(6010);const a="tabItem_Ymn6";function o(e){let{children:n,hidden:t,className:o}=e;return r.createElement("div",{role:"tabpanel",className:(0,i.Z)(a,o),hidden:t},n)}},4866:(e,n,t)=>{t.d(n,{Z:()=>k});var r=t(7462),i=t(7294),a=t(6010),o=t(2466),l=t(6550),s=t(1980),u=t(7392),c=t(12);function d(e){return function(e){return i.Children.map(e,(e=>{if(!e||(0,i.isValidElement)(e)&&function(e){const{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:n,label:t,attributes:r,default:i}}=e;return{value:n,label:t,attributes:r,default:i}}))}function f(e){const{values:n,children:t}=e;return(0,i.useMemo)((()=>{const e=n??d(t);return function(e){const n=(0,u.l)(e,((e,n)=>e.value===n.value));if(n.length>0)throw new Error(`Docusaurus error: Duplicate values "${n.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[n,t])}function p(e){let{value:n,tabValues:t}=e;return t.some((e=>e.value===n))}function m(e){let{queryString:n=!1,groupId:t}=e;const r=(0,l.k6)(),a=function(e){let{queryString:n=!1,groupId:t}=e;if("string"==typeof n)return n;if(!1===n)return null;if(!0===n&&!t)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return t??null}({queryString:n,groupId:t});return[(0,s._X)(a),(0,i.useCallback)((e=>{if(!a)return;const n=new URLSearchParams(r.location.search);n.set(a,e),r.replace({...r.location,search:n.toString()})}),[a,r])]}function b(e){const{defaultValue:n,queryString:t=!1,groupId:r}=e,a=f(e),[o,l]=(0,i.useState)((()=>function(e){let{defaultValue:n,tabValues:t}=e;if(0===t.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(n){if(!p({value:n,tabValues:t}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${n}" but none of its children has the corresponding value. Available values are: ${t.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return n}const r=t.find((e=>e.default))??t[0];if(!r)throw new Error("Unexpected error: 0 tabValues");return r.value}({defaultValue:n,tabValues:a}))),[s,u]=m({queryString:t,groupId:r}),[d,b]=function(e){let{groupId:n}=e;const t=function(e){return e?`docusaurus.tab.${e}`:null}(n),[r,a]=(0,c.Nk)(t);return[r,(0,i.useCallback)((e=>{t&&a.set(e)}),[t,a])]}({groupId:r}),h=(()=>{const e=s??d;return p({value:e,tabValues:a})?e:null})();(0,i.useLayoutEffect)((()=>{h&&l(h)}),[h]);return{selectedValue:o,selectValue:(0,i.useCallback)((e=>{if(!p({value:e,tabValues:a}))throw new Error(`Can't select invalid tab value=${e}`);l(e),u(e),b(e)}),[u,b,a]),tabValues:a}}var h=t(2389);const _="tabList__CuJ",g="tabItem_LNqP";function v(e){let{className:n,block:t,selectedValue:l,selectValue:s,tabValues:u}=e;const c=[],{blockElementScrollPositionUntilNextRender:d}=(0,o.o5)(),f=e=>{const n=e.currentTarget,t=c.indexOf(n),r=u[t].value;r!==l&&(d(n),s(r))},p=e=>{let n=null;switch(e.key){case"Enter":f(e);break;case"ArrowRight":{const t=c.indexOf(e.currentTarget)+1;n=c[t]??c[0];break}case"ArrowLeft":{const t=c.indexOf(e.currentTarget)-1;n=c[t]??c[c.length-1];break}}n?.focus()};return i.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,a.Z)("tabs",{"tabs--block":t},n)},u.map((e=>{let{value:n,label:t,attributes:o}=e;return i.createElement("li",(0,r.Z)({role:"tab",tabIndex:l===n?0:-1,"aria-selected":l===n,key:n,ref:e=>c.push(e),onKeyDown:p,onClick:f},o,{className:(0,a.Z)("tabs__item",g,o?.className,{"tabs__item--active":l===n})}),t??n)})))}function y(e){let{lazy:n,children:t,selectedValue:r}=e;const a=(Array.isArray(t)?t:[t]).filter(Boolean);if(n){const e=a.find((e=>e.props.value===r));return e?(0,i.cloneElement)(e,{className:"margin-top--md"}):null}return i.createElement("div",{className:"margin-top--md"},a.map(((e,n)=>(0,i.cloneElement)(e,{key:n,hidden:e.props.value!==r}))))}function w(e){const n=b(e);return i.createElement("div",{className:(0,a.Z)("tabs-container",_)},i.createElement(v,(0,r.Z)({},e,n)),i.createElement(y,(0,r.Z)({},e,n)))}function k(e){const n=(0,h.Z)();return i.createElement(w,(0,r.Z)({key:String(n)},e))}},6946:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>s,default:()=>p,frontMatter:()=>l,metadata:()=>u,toc:()=>d});var r=t(7462),i=(t(7294),t(3905)),a=t(4866),o=t(5162);const l={},s="Mini Files",u={unversionedId:"extras/editor/mini-files",id:"extras/editor/mini-files",title:"Mini Files",description:"You can enable the extra with the :LazyExtras command.",source:"@site/docs/extras/editor/mini-files.md",sourceDirName:"extras/editor",slug:"/extras/editor/mini-files",permalink:"/extras/editor/mini-files",draft:!1,editUrl:"https://github.com/LazyVim/lazyvim.github.io/tree/main/docs/extras/editor/mini-files.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Mini-diff",permalink:"/extras/editor/mini-diff"},next:{title:"Mini-move",permalink:"/extras/editor/mini-move"}},c={},d=[{value:"mini.files",id:"minifiles",level:2}],f={toc:d};function p(e){let{components:n,...t}=e;return(0,i.kt)("wrapper",(0,r.Z)({},f,t,{components:n,mdxType:"MDXLayout"}),(0,i.kt)("h1",{id:"mini-files"},"Mini Files"),(0,i.kt)("admonition",{type:"info"},(0,i.kt)("p",{parentName:"admonition"},"You can enable the extra with the ",(0,i.kt)("inlineCode",{parentName:"p"},":LazyExtras")," command.\nPlugins marked as optional will only be configured if they are installed.")),(0,i.kt)("p",null,"Below you can find a list of included plugins and their default settings."),(0,i.kt)("admonition",{type:"caution"},(0,i.kt)("p",{parentName:"admonition"},"You don't need to copy the default settings to your config.\nThey are only shown here for reference.")),(0,i.kt)("h2",{id:"minifiles"},(0,i.kt)("a",{parentName:"h2",href:"https://github.com/nvim-mini/mini.files"},"mini.files")),(0,i.kt)(a.Z,{mdxType:"Tabs"},(0,i.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-lua"},"opts = {\n windows = {\n preview = true,\n width_focus = 30,\n width_preview = 30,\n },\n options = {\n -- Whether to use for editing directories\n -- Disabled by default in LazyVim because neo-tree is used for that\n use_as_default_explorer = false,\n },\n}\n"))),(0,i.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "nvim-mini/mini.files",\n opts = {\n windows = {\n preview = true,\n width_focus = 30,\n width_preview = 30,\n },\n options = {\n -- Whether to use for editing directories\n -- Disabled by default in LazyVim because neo-tree is used for that\n use_as_default_explorer = false,\n },\n },\n keys = {\n {\n "<leader>fm",\n function()\n require("mini.files").open(vim.api.nvim_buf_get_name(0), true)\n end,\n desc = "Open mini.files (Directory of Current File)",\n },\n {\n "<leader>fM",\n function()\n require("mini.files").open(vim.uv.cwd(), true)\n end,\n desc = "Open mini.files (cwd)",\n },\n },\n config = function(_, opts)\n require("mini.files").setup(opts)\n\n local show_dotfiles = true\n local filter_show = function(fs_entry)\n return true\n end\n local filter_hide = function(fs_entry)\n return not vim.startswith(fs_entry.name, ".")\n end\n\n local toggle_dotfiles = function()\n show_dotfiles = not show_dotfiles\n local new_filter = show_dotfiles and filter_show or filter_hide\n require("mini.files").refresh({ content = { filter = new_filter } })\n end\n\n local map_split = function(buf_id, lhs, direction, close_on_file)\n local rhs = function()\n local new_target_window\n local cur_target_window = require("mini.files").get_explorer_state().target_window\n if cur_target_window ~= nil then\n vim.api.nvim_win_call(cur_target_window, function()\n vim.cmd("belowright " .. direction .. " split")\n new_target_window = vim.api.nvim_get_current_win()\n end)\n\n require("mini.files").set_target_window(new_target_window)\n require("mini.files").go_in({ close_on_file = close_on_file })\n end\n end\n\n local desc = "Open in " .. direction .. " split"\n if close_on_file then\n desc = desc .. " and close"\n end\n vim.keymap.set("n", lhs, rhs, { buffer = buf_id, desc = desc })\n end\n\n local files_set_cwd = function()\n local cur_entry_path = MiniFiles.get_fs_entry().path\n local cur_directory = vim.fs.dirname(cur_entry_path)\n if cur_directory ~= nil then\n vim.fn.chdir(cur_directory)\n end\n end\n\n vim.api.nvim_create_autocmd("User", {\n pattern = "MiniFilesBufferCreate",\n callback = function(args)\n local buf_id = args.data.buf_id\n\n vim.keymap.set(\n "n",\n opts.mappings and opts.mappings.toggle_hidden or "g.",\n toggle_dotfiles,\n { buffer = buf_id, desc = "Toggle hidden files" }\n )\n\n vim.keymap.set(\n "n",\n opts.mappings and opts.mappings.change_cwd or "gc",\n files_set_cwd,\n { buffer = args.data.buf_id, desc = "Set cwd" }\n )\n\n map_split(buf_id, opts.mappings and opts.mappings.go_in_horizontal or "<C-w>s", "horizontal", false)\n map_split(buf_id, opts.mappings and opts.mappings.go_in_vertical or "<C-w>v", "vertical", false)\n map_split(buf_id, opts.mappings and opts.mappings.go_in_horizontal_plus or "<C-w>S", "horizontal", true)\n map_split(buf_id, opts.mappings and opts.mappings.go_in_vertical_plus or "<C-w>V", "vertical", true)\n end,\n })\n\n vim.api.nvim_create_autocmd("User", {\n pattern = "MiniFilesActionRename",\n callback = function(event)\n Snacks.rename.on_rename_file(event.data.from, event.data.to)\n end,\n })\n end,\n}\n')))))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/aa0b7b62.9725948b.js b/assets/js/aa0b7b62.9725948b.js new file mode 100644 index 0000000000..e3d9f3f96b --- /dev/null +++ b/assets/js/aa0b7b62.9725948b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklazyvim=self.webpackChunklazyvim||[]).push([[966],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>d});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function l(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function u(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var i=r.createContext({}),s=function(e){var t=r.useContext(i),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},c=function(e){var t=s(e.components);return r.createElement(i.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},f=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,i=e.parentName,c=u(e,["components","mdxType","originalType","parentName"]),p=s(n),f=a,d=p["".concat(i,".").concat(f)]||p[f]||m[f]||o;return n?r.createElement(d,l(l({ref:t},c),{},{components:n})):r.createElement(d,l({ref:t},c))}));function d(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,l=new Array(o);l[0]=f;var u={};for(var i in t)hasOwnProperty.call(t,i)&&(u[i]=t[i]);u.originalType=e,u[p]="string"==typeof e?e:a,l[1]=u;for(var s=2;s<o;s++)l[s]=n[s];return r.createElement.apply(null,l)}return r.createElement.apply(null,n)}f.displayName="MDXCreateElement"},5162:(e,t,n)=>{n.d(t,{Z:()=>l});var r=n(7294),a=n(6010);const o="tabItem_Ymn6";function l(e){let{children:t,hidden:n,className:l}=e;return r.createElement("div",{role:"tabpanel",className:(0,a.Z)(o,l),hidden:n},t)}},4866:(e,t,n)=>{n.d(t,{Z:()=>x});var r=n(7462),a=n(7294),o=n(6010),l=n(2466),u=n(6550),i=n(1980),s=n(7392),c=n(12);function p(e){return function(e){return a.Children.map(e,(e=>{if(!e||(0,a.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:t,label:n,attributes:r,default:a}}=e;return{value:t,label:n,attributes:r,default:a}}))}function m(e){const{values:t,children:n}=e;return(0,a.useMemo)((()=>{const e=t??p(n);return function(e){const t=(0,s.l)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[t,n])}function f(e){let{value:t,tabValues:n}=e;return n.some((e=>e.value===t))}function d(e){let{queryString:t=!1,groupId:n}=e;const r=(0,u.k6)(),o=function(e){let{queryString:t=!1,groupId:n}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!n)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return n??null}({queryString:t,groupId:n});return[(0,i._X)(o),(0,a.useCallback)((e=>{if(!o)return;const t=new URLSearchParams(r.location.search);t.set(o,e),r.replace({...r.location,search:t.toString()})}),[o,r])]}function b(e){const{defaultValue:t,queryString:n=!1,groupId:r}=e,o=m(e),[l,u]=(0,a.useState)((()=>function(e){let{defaultValue:t,tabValues:n}=e;if(0===n.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(t){if(!f({value:t,tabValues:n}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${n.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const r=n.find((e=>e.default))??n[0];if(!r)throw new Error("Unexpected error: 0 tabValues");return r.value}({defaultValue:t,tabValues:o}))),[i,s]=d({queryString:n,groupId:r}),[p,b]=function(e){let{groupId:t}=e;const n=function(e){return e?`docusaurus.tab.${e}`:null}(t),[r,o]=(0,c.Nk)(n);return[r,(0,a.useCallback)((e=>{n&&o.set(e)}),[n,o])]}({groupId:r}),v=(()=>{const e=i??p;return f({value:e,tabValues:o})?e:null})();(0,a.useLayoutEffect)((()=>{v&&u(v)}),[v]);return{selectedValue:l,selectValue:(0,a.useCallback)((e=>{if(!f({value:e,tabValues:o}))throw new Error(`Can't select invalid tab value=${e}`);u(e),s(e),b(e)}),[s,b,o]),tabValues:o}}var v=n(2389);const h="tabList__CuJ",y="tabItem_LNqP";function g(e){let{className:t,block:n,selectedValue:u,selectValue:i,tabValues:s}=e;const c=[],{blockElementScrollPositionUntilNextRender:p}=(0,l.o5)(),m=e=>{const t=e.currentTarget,n=c.indexOf(t),r=s[n].value;r!==u&&(p(t),i(r))},f=e=>{let t=null;switch(e.key){case"Enter":m(e);break;case"ArrowRight":{const n=c.indexOf(e.currentTarget)+1;t=c[n]??c[0];break}case"ArrowLeft":{const n=c.indexOf(e.currentTarget)-1;t=c[n]??c[c.length-1];break}}t?.focus()};return a.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,o.Z)("tabs",{"tabs--block":n},t)},s.map((e=>{let{value:t,label:n,attributes:l}=e;return a.createElement("li",(0,r.Z)({role:"tab",tabIndex:u===t?0:-1,"aria-selected":u===t,key:t,ref:e=>c.push(e),onKeyDown:f,onClick:m},l,{className:(0,o.Z)("tabs__item",y,l?.className,{"tabs__item--active":u===t})}),n??t)})))}function k(e){let{lazy:t,children:n,selectedValue:r}=e;const o=(Array.isArray(n)?n:[n]).filter(Boolean);if(t){const e=o.find((e=>e.props.value===r));return e?(0,a.cloneElement)(e,{className:"margin-top--md"}):null}return a.createElement("div",{className:"margin-top--md"},o.map(((e,t)=>(0,a.cloneElement)(e,{key:t,hidden:e.props.value!==r}))))}function w(e){const t=b(e);return a.createElement("div",{className:(0,o.Z)("tabs-container",h)},a.createElement(g,(0,r.Z)({},e,t)),a.createElement(k,(0,r.Z)({},e,t)))}function x(e){const t=(0,v.Z)();return a.createElement(w,(0,r.Z)({key:String(t)},e))}},4823:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>f,frontMatter:()=>u,metadata:()=>s,toc:()=>p});var r=n(7462),a=(n(7294),n(3905)),o=n(4866),l=n(5162);const u={},i="Neoconf",s={unversionedId:"extras/lsp/neoconf",id:"extras/lsp/neoconf",title:"Neoconf",description:"You can enable the extra with the :LazyExtras command.",source:"@site/docs/extras/lsp/neoconf.md",sourceDirName:"extras/lsp",slug:"/extras/lsp/neoconf",permalink:"/extras/lsp/neoconf",draft:!1,editUrl:"https://github.com/LazyVim/lazyvim.github.io/tree/main/docs/extras/lsp/neoconf.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Eslint",permalink:"/extras/linting/eslint"},next:{title:"none-ls",permalink:"/extras/lsp/none-ls"}},c={},p=[{value:"nvim-lspconfig",id:"nvim-lspconfig",level:2},{value:"neoconf.nvim",id:"neoconfnvim",level:2}],m={toc:p};function f(e){let{components:t,...n}=e;return(0,a.kt)("wrapper",(0,r.Z)({},m,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"neoconf"},(0,a.kt)("inlineCode",{parentName:"h1"},"Neoconf")),(0,a.kt)("admonition",{type:"info"},(0,a.kt)("p",{parentName:"admonition"},"You can enable the extra with the ",(0,a.kt)("inlineCode",{parentName:"p"},":LazyExtras")," command.\nPlugins marked as optional will only be configured if they are installed.")),(0,a.kt)("p",null,"Below you can find a list of included plugins and their default settings."),(0,a.kt)("admonition",{type:"caution"},(0,a.kt)("p",{parentName:"admonition"},"You don't need to copy the default settings to your config.\nThey are only shown here for reference.")),(0,a.kt)("h2",{id:"nvim-lspconfig"},(0,a.kt)("a",{parentName:"h2",href:"https://github.com/neovim/nvim-lspconfig"},"nvim-lspconfig")),(0,a.kt)(o.Z,{mdxType:"Tabs"},(0,a.kt)(l.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},"opts = nil\n"))),(0,a.kt)(l.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "neovim/nvim-lspconfig",\n dependencies = {\n {\n "folke/neoconf.nvim",\n cmd = "Neoconf",\n opts = {},\n },\n },\n}\n')))),(0,a.kt)("h2",{id:"neoconfnvim"},(0,a.kt)("a",{parentName:"h2",href:"https://github.com/folke/neoconf.nvim"},"neoconf.nvim")),(0,a.kt)(o.Z,{mdxType:"Tabs"},(0,a.kt)(l.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},"opts = {}\n"))),(0,a.kt)(l.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "folke/neoconf.nvim",\n cmd = "Neoconf",\n opts = {},\n}\n')))))}f.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/aa4a0c26.704c62eb.js b/assets/js/aa4a0c26.704c62eb.js new file mode 100644 index 0000000000..cf9948563f --- /dev/null +++ b/assets/js/aa4a0c26.704c62eb.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklazyvim=self.webpackChunklazyvim||[]).push([[751],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>f});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function o(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?l(Object(n),!0).forEach((function(t){r(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):l(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function i(e,t){if(null==e)return{};var n,a,r=function(e,t){if(null==e)return{};var n,a,r={},l=Object.keys(e);for(a=0;a<l.length;a++)n=l[a],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a<l.length;a++)n=l[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var u=a.createContext({}),s=function(e){var t=a.useContext(u),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},c=function(e){var t=s(e.components);return a.createElement(u.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},d=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,l=e.originalType,u=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),p=s(n),d=r,f=p["".concat(u,".").concat(d)]||p[d]||m[d]||l;return n?a.createElement(f,o(o({ref:t},c),{},{components:n})):a.createElement(f,o({ref:t},c))}));function f(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var l=n.length,o=new Array(l);o[0]=d;var i={};for(var u in t)hasOwnProperty.call(t,u)&&(i[u]=t[u]);i.originalType=e,i[p]="string"==typeof e?e:r,o[1]=i;for(var s=2;s<l;s++)o[s]=n[s];return a.createElement.apply(null,o)}return a.createElement.apply(null,n)}d.displayName="MDXCreateElement"},5162:(e,t,n)=>{n.d(t,{Z:()=>o});var a=n(7294),r=n(6010);const l="tabItem_Ymn6";function o(e){let{children:t,hidden:n,className:o}=e;return a.createElement("div",{role:"tabpanel",className:(0,r.Z)(l,o),hidden:n},t)}},4866:(e,t,n)=>{n.d(t,{Z:()=>T});var a=n(7462),r=n(7294),l=n(6010),o=n(2466),i=n(6550),u=n(1980),s=n(7392),c=n(12);function p(e){return function(e){return r.Children.map(e,(e=>{if(!e||(0,r.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:t,label:n,attributes:a,default:r}}=e;return{value:t,label:n,attributes:a,default:r}}))}function m(e){const{values:t,children:n}=e;return(0,r.useMemo)((()=>{const e=t??p(n);return function(e){const t=(0,s.l)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[t,n])}function d(e){let{value:t,tabValues:n}=e;return n.some((e=>e.value===t))}function f(e){let{queryString:t=!1,groupId:n}=e;const a=(0,i.k6)(),l=function(e){let{queryString:t=!1,groupId:n}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!n)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return n??null}({queryString:t,groupId:n});return[(0,u._X)(l),(0,r.useCallback)((e=>{if(!l)return;const t=new URLSearchParams(a.location.search);t.set(l,e),a.replace({...a.location,search:t.toString()})}),[l,a])]}function b(e){const{defaultValue:t,queryString:n=!1,groupId:a}=e,l=m(e),[o,i]=(0,r.useState)((()=>function(e){let{defaultValue:t,tabValues:n}=e;if(0===n.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(t){if(!d({value:t,tabValues:n}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${n.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const a=n.find((e=>e.default))??n[0];if(!a)throw new Error("Unexpected error: 0 tabValues");return a.value}({defaultValue:t,tabValues:l}))),[u,s]=f({queryString:n,groupId:a}),[p,b]=function(e){let{groupId:t}=e;const n=function(e){return e?`docusaurus.tab.${e}`:null}(t),[a,l]=(0,c.Nk)(n);return[a,(0,r.useCallback)((e=>{n&&l.set(e)}),[n,l])]}({groupId:a}),g=(()=>{const e=u??p;return d({value:e,tabValues:l})?e:null})();(0,r.useLayoutEffect)((()=>{g&&i(g)}),[g]);return{selectedValue:o,selectValue:(0,r.useCallback)((e=>{if(!d({value:e,tabValues:l}))throw new Error(`Can't select invalid tab value=${e}`);i(e),s(e),b(e)}),[s,b,l]),tabValues:l}}var g=n(2389);const v="tabList__CuJ",h="tabItem_LNqP";function y(e){let{className:t,block:n,selectedValue:i,selectValue:u,tabValues:s}=e;const c=[],{blockElementScrollPositionUntilNextRender:p}=(0,o.o5)(),m=e=>{const t=e.currentTarget,n=c.indexOf(t),a=s[n].value;a!==i&&(p(t),u(a))},d=e=>{let t=null;switch(e.key){case"Enter":m(e);break;case"ArrowRight":{const n=c.indexOf(e.currentTarget)+1;t=c[n]??c[0];break}case"ArrowLeft":{const n=c.indexOf(e.currentTarget)-1;t=c[n]??c[c.length-1];break}}t?.focus()};return r.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,l.Z)("tabs",{"tabs--block":n},t)},s.map((e=>{let{value:t,label:n,attributes:o}=e;return r.createElement("li",(0,a.Z)({role:"tab",tabIndex:i===t?0:-1,"aria-selected":i===t,key:t,ref:e=>c.push(e),onKeyDown:d,onClick:m},o,{className:(0,l.Z)("tabs__item",h,o?.className,{"tabs__item--active":i===t})}),n??t)})))}function k(e){let{lazy:t,children:n,selectedValue:a}=e;const l=(Array.isArray(n)?n:[n]).filter(Boolean);if(t){const e=l.find((e=>e.props.value===a));return e?(0,r.cloneElement)(e,{className:"margin-top--md"}):null}return r.createElement("div",{className:"margin-top--md"},l.map(((e,t)=>(0,r.cloneElement)(e,{key:t,hidden:e.props.value!==a}))))}function w(e){const t=b(e);return r.createElement("div",{className:(0,l.Z)("tabs-container",v)},r.createElement(y,(0,a.Z)({},e,t)),r.createElement(k,(0,a.Z)({},e,t)))}function T(e){const t=(0,g.Z)();return r.createElement(w,(0,a.Z)({key:String(t)},e))}},3155:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>u,default:()=>d,frontMatter:()=>i,metadata:()=>s,toc:()=>p});var a=n(7462),r=(n(7294),n(3905)),l=n(4866),o=n(5162);const i={},u="Copilot",s={unversionedId:"extras/ai/copilot",id:"extras/ai/copilot",title:"Copilot",description:"You can enable the extra with the :LazyExtras command.",source:"@site/docs/extras/ai/copilot.md",sourceDirName:"extras/ai",slug:"/extras/ai/copilot",permalink:"/extras/ai/copilot",draft:!1,editUrl:"https://github.com/LazyVim/lazyvim.github.io/tree/main/docs/extras/ai/copilot.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Copilot-native",permalink:"/extras/ai/copilot-native"},next:{title:"Sidekick",permalink:"/extras/ai/sidekick"}},c={},p=[{value:"copilot.lua",id:"copilotlua",level:2},{value:"nvim-lspconfig",id:"nvim-lspconfig",level:2},{value:"copilot.lua",id:"copilotlua-1",level:2},{value:"lualine.nvim <em>(optional)</em>",id:"lualinenvim-optional",level:2}],m={toc:p};function d(e){let{components:t,...n}=e;return(0,r.kt)("wrapper",(0,a.Z)({},m,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"copilot"},(0,r.kt)("inlineCode",{parentName:"h1"},"Copilot")),(0,r.kt)("admonition",{type:"info"},(0,r.kt)("p",{parentName:"admonition"},"You can enable the extra with the ",(0,r.kt)("inlineCode",{parentName:"p"},":LazyExtras")," command.\nPlugins marked as optional will only be configured if they are installed.")),(0,r.kt)("p",null,"Below you can find a list of included plugins and their default settings."),(0,r.kt)("admonition",{type:"caution"},(0,r.kt)("p",{parentName:"admonition"},"You don't need to copy the default settings to your config.\nThey are only shown here for reference.")),(0,r.kt)("h2",{id:"copilotlua"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/zbirenbaum/copilot.lua"},"copilot.lua")),(0,r.kt)("p",null," copilot"),(0,r.kt)(l.Z,{mdxType:"Tabs"},(0,r.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = {\n suggestion = {\n enabled = not vim.g.ai_cmp,\n auto_trigger = true,\n hide_during_completion = vim.g.ai_cmp,\n keymap = {\n accept = false, -- handled by nvim-cmp / blink.cmp\n next = "<M-]>",\n prev = "<M-[>",\n },\n },\n panel = { enabled = false },\n filetypes = {\n markdown = true,\n help = true,\n },\n}\n'))),(0,r.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "zbirenbaum/copilot.lua",\n cmd = "Copilot",\n build = ":Copilot auth",\n event = "BufReadPost",\n opts = {\n suggestion = {\n enabled = not vim.g.ai_cmp,\n auto_trigger = true,\n hide_during_completion = vim.g.ai_cmp,\n keymap = {\n accept = false, -- handled by nvim-cmp / blink.cmp\n next = "<M-]>",\n prev = "<M-[>",\n },\n },\n panel = { enabled = false },\n filetypes = {\n markdown = true,\n help = true,\n },\n },\n}\n')))),(0,r.kt)("h2",{id:"nvim-lspconfig"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/neovim/nvim-lspconfig"},"nvim-lspconfig")),(0,r.kt)("p",null," copilot-language-server"),(0,r.kt)(l.Z,{mdxType:"Tabs"},(0,r.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},"opts = {\n servers = {\n -- copilot.lua only works with its own copilot lsp server\n copilot = { enabled = false },\n },\n}\n"))),(0,r.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "neovim/nvim-lspconfig",\n opts = {\n servers = {\n -- copilot.lua only works with its own copilot lsp server\n copilot = { enabled = false },\n },\n },\n}\n')))),(0,r.kt)("h2",{id:"copilotlua-1"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/zbirenbaum/copilot.lua"},"copilot.lua")),(0,r.kt)("p",null," add ai_accept action"),(0,r.kt)(l.Z,{mdxType:"Tabs"},(0,r.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = function()\n LazyVim.cmp.actions.ai_accept = function()\n if require("copilot.suggestion").is_visible() then\n LazyVim.create_undo()\n require("copilot.suggestion").accept()\n return true\n end\n end\nend\n'))),(0,r.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "zbirenbaum/copilot.lua",\n opts = function()\n LazyVim.cmp.actions.ai_accept = function()\n if require("copilot.suggestion").is_visible() then\n LazyVim.create_undo()\n require("copilot.suggestion").accept()\n return true\n end\n end\n end,\n}\n')))),(0,r.kt)("h2",{id:"lualinenvim-optional"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/nvim-lualine/lualine.nvim"},"lualine.nvim")," ",(0,r.kt)("em",{parentName:"h2"},"(optional)")),(0,r.kt)("p",null," lualine"),(0,r.kt)(l.Z,{mdxType:"Tabs"},(0,r.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = function(_, opts)\n table.insert(\n opts.sections.lualine_x,\n 2,\n LazyVim.lualine.status(LazyVim.config.icons.kinds.Copilot, function()\n local clients = package.loaded["copilot"] and vim.lsp.get_clients({ name = "copilot", bufnr = 0 }) or {}\n if #clients > 0 then\n local status = require("copilot.status").data.status\n return (status == "InProgress" and "pending") or (status == "Warning" and "error") or "ok"\n end\n end)\n )\nend\n'))),(0,r.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "nvim-lualine/lualine.nvim",\n optional = true,\n event = "VeryLazy",\n opts = function(_, opts)\n table.insert(\n opts.sections.lualine_x,\n 2,\n LazyVim.lualine.status(LazyVim.config.icons.kinds.Copilot, function()\n local clients = package.loaded["copilot"] and vim.lsp.get_clients({ name = "copilot", bufnr = 0 }) or {}\n if #clients > 0 then\n local status = require("copilot.status").data.status\n return (status == "InProgress" and "pending") or (status == "Warning" and "error") or "ok"\n end\n end)\n )\n end,\n}\n')))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/abb3b3ca.e0a864ef.js b/assets/js/abb3b3ca.e0a864ef.js new file mode 100644 index 0000000000..ded6913cd6 --- /dev/null +++ b/assets/js/abb3b3ca.e0a864ef.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklazyvim=self.webpackChunklazyvim||[]).push([[5050],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>f});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function l(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function i(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var u=r.createContext({}),s=function(e){var t=r.useContext(u),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},c=function(e){var t=s(e.components);return r.createElement(u.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,u=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),p=s(n),m=a,f=p["".concat(u,".").concat(m)]||p[m]||d[m]||o;return n?r.createElement(f,l(l({ref:t},c),{},{components:n})):r.createElement(f,l({ref:t},c))}));function f(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,l=new Array(o);l[0]=m;var i={};for(var u in t)hasOwnProperty.call(t,u)&&(i[u]=t[u]);i.originalType=e,i[p]="string"==typeof e?e:a,l[1]=i;for(var s=2;s<o;s++)l[s]=n[s];return r.createElement.apply(null,l)}return r.createElement.apply(null,n)}m.displayName="MDXCreateElement"},5162:(e,t,n)=>{n.d(t,{Z:()=>l});var r=n(7294),a=n(6010);const o="tabItem_Ymn6";function l(e){let{children:t,hidden:n,className:l}=e;return r.createElement("div",{role:"tabpanel",className:(0,a.Z)(o,l),hidden:n},t)}},4866:(e,t,n)=>{n.d(t,{Z:()=>E});var r=n(7462),a=n(7294),o=n(6010),l=n(2466),i=n(6550),u=n(1980),s=n(7392),c=n(12);function p(e){return function(e){return a.Children.map(e,(e=>{if(!e||(0,a.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:t,label:n,attributes:r,default:a}}=e;return{value:t,label:n,attributes:r,default:a}}))}function d(e){const{values:t,children:n}=e;return(0,a.useMemo)((()=>{const e=t??p(n);return function(e){const t=(0,s.l)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[t,n])}function m(e){let{value:t,tabValues:n}=e;return n.some((e=>e.value===t))}function f(e){let{queryString:t=!1,groupId:n}=e;const r=(0,i.k6)(),o=function(e){let{queryString:t=!1,groupId:n}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!n)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return n??null}({queryString:t,groupId:n});return[(0,u._X)(o),(0,a.useCallback)((e=>{if(!o)return;const t=new URLSearchParams(r.location.search);t.set(o,e),r.replace({...r.location,search:t.toString()})}),[o,r])]}function h(e){const{defaultValue:t,queryString:n=!1,groupId:r}=e,o=d(e),[l,i]=(0,a.useState)((()=>function(e){let{defaultValue:t,tabValues:n}=e;if(0===n.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(t){if(!m({value:t,tabValues:n}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${n.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const r=n.find((e=>e.default))??n[0];if(!r)throw new Error("Unexpected error: 0 tabValues");return r.value}({defaultValue:t,tabValues:o}))),[u,s]=f({queryString:n,groupId:r}),[p,h]=function(e){let{groupId:t}=e;const n=function(e){return e?`docusaurus.tab.${e}`:null}(t),[r,o]=(0,c.Nk)(n);return[r,(0,a.useCallback)((e=>{n&&o.set(e)}),[n,o])]}({groupId:r}),b=(()=>{const e=u??p;return m({value:e,tabValues:o})?e:null})();(0,a.useLayoutEffect)((()=>{b&&i(b)}),[b]);return{selectedValue:l,selectValue:(0,a.useCallback)((e=>{if(!m({value:e,tabValues:o}))throw new Error(`Can't select invalid tab value=${e}`);i(e),s(e),h(e)}),[s,h,o]),tabValues:o}}var b=n(2389);const y="tabList__CuJ",v="tabItem_LNqP";function g(e){let{className:t,block:n,selectedValue:i,selectValue:u,tabValues:s}=e;const c=[],{blockElementScrollPositionUntilNextRender:p}=(0,l.o5)(),d=e=>{const t=e.currentTarget,n=c.indexOf(t),r=s[n].value;r!==i&&(p(t),u(r))},m=e=>{let t=null;switch(e.key){case"Enter":d(e);break;case"ArrowRight":{const n=c.indexOf(e.currentTarget)+1;t=c[n]??c[0];break}case"ArrowLeft":{const n=c.indexOf(e.currentTarget)-1;t=c[n]??c[c.length-1];break}}t?.focus()};return a.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,o.Z)("tabs",{"tabs--block":n},t)},s.map((e=>{let{value:t,label:n,attributes:l}=e;return a.createElement("li",(0,r.Z)({role:"tab",tabIndex:i===t?0:-1,"aria-selected":i===t,key:t,ref:e=>c.push(e),onKeyDown:m,onClick:d},l,{className:(0,o.Z)("tabs__item",v,l?.className,{"tabs__item--active":i===t})}),n??t)})))}function k(e){let{lazy:t,children:n,selectedValue:r}=e;const o=(Array.isArray(n)?n:[n]).filter(Boolean);if(t){const e=o.find((e=>e.props.value===r));return e?(0,a.cloneElement)(e,{className:"margin-top--md"}):null}return a.createElement("div",{className:"margin-top--md"},o.map(((e,t)=>(0,a.cloneElement)(e,{key:t,hidden:e.props.value!==r}))))}function w(e){const t=h(e);return a.createElement("div",{className:(0,o.Z)("tabs-container",y)},a.createElement(g,(0,r.Z)({},e,t)),a.createElement(k,(0,r.Z)({},e,t)))}function E(e){const t=(0,b.Z)();return a.createElement(w,(0,r.Z)({key:String(t)},e))}},3973:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>u,default:()=>m,frontMatter:()=>i,metadata:()=>s,toc:()=>p});var r=n(7462),a=(n(7294),n(3905)),o=n(4866),l=n(5162);const i={},u="Harpoon2",s={unversionedId:"extras/editor/harpoon2",id:"extras/editor/harpoon2",title:"Harpoon2",description:"You can enable the extra with the :LazyExtras command.",source:"@site/docs/extras/editor/harpoon2.md",sourceDirName:"extras/editor",slug:"/extras/editor/harpoon2",permalink:"/extras/editor/harpoon2",draft:!1,editUrl:"https://github.com/LazyVim/lazyvim.github.io/tree/main/docs/extras/editor/harpoon2.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Fzf",permalink:"/extras/editor/fzf"},next:{title:"Illuminate",permalink:"/extras/editor/illuminate"}},c={},p=[{value:"harpoon",id:"harpoon",level:2}],d={toc:p};function m(e){let{components:t,...n}=e;return(0,a.kt)("wrapper",(0,r.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"harpoon2"},(0,a.kt)("inlineCode",{parentName:"h1"},"Harpoon2")),(0,a.kt)("admonition",{type:"info"},(0,a.kt)("p",{parentName:"admonition"},"You can enable the extra with the ",(0,a.kt)("inlineCode",{parentName:"p"},":LazyExtras")," command.\nPlugins marked as optional will only be configured if they are installed.")),(0,a.kt)("p",null,"Below you can find a list of included plugins and their default settings."),(0,a.kt)("admonition",{type:"caution"},(0,a.kt)("p",{parentName:"admonition"},"You don't need to copy the default settings to your config.\nThey are only shown here for reference.")),(0,a.kt)("h2",{id:"harpoon"},(0,a.kt)("a",{parentName:"h2",href:"https://github.com/ThePrimeagen/harpoon"},"harpoon")),(0,a.kt)(o.Z,{mdxType:"Tabs"},(0,a.kt)(l.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},"opts = {\n menu = {\n width = vim.api.nvim_win_get_width(0) - 4,\n },\n settings = {\n save_on_toggle = true,\n },\n}\n"))),(0,a.kt)(l.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "ThePrimeagen/harpoon",\n branch = "harpoon2",\n opts = {\n menu = {\n width = vim.api.nvim_win_get_width(0) - 4,\n },\n settings = {\n save_on_toggle = true,\n },\n },\n keys = function()\n local keys = {\n {\n "<leader>H",\n function()\n require("harpoon"):list():add()\n end,\n desc = "Harpoon File",\n },\n {\n "<leader>h",\n function()\n local harpoon = require("harpoon")\n harpoon.ui:toggle_quick_menu(harpoon:list())\n end,\n desc = "Harpoon Quick Menu",\n },\n }\n\n for i = 1, 9 do\n table.insert(keys, {\n "<leader>" .. i,\n function()\n require("harpoon"):list():select(i)\n end,\n desc = "Harpoon to File " .. i,\n })\n end\n return keys\n end,\n}\n')))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/ac945390.714ae80f.js b/assets/js/ac945390.714ae80f.js new file mode 100644 index 0000000000..098fd4d0d3 --- /dev/null +++ b/assets/js/ac945390.714ae80f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklazyvim=self.webpackChunklazyvim||[]).push([[1204],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>f});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function l(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function i(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var u=r.createContext({}),s=function(e){var t=r.useContext(u),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},c=function(e){var t=s(e.components);return r.createElement(u.Provider,{value:t},e.children)},d="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,u=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),d=s(n),m=a,f=d["".concat(u,".").concat(m)]||d[m]||p[m]||o;return n?r.createElement(f,l(l({ref:t},c),{},{components:n})):r.createElement(f,l({ref:t},c))}));function f(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,l=new Array(o);l[0]=m;var i={};for(var u in t)hasOwnProperty.call(t,u)&&(i[u]=t[u]);i.originalType=e,i[d]="string"==typeof e?e:a,l[1]=i;for(var s=2;s<o;s++)l[s]=n[s];return r.createElement.apply(null,l)}return r.createElement.apply(null,n)}m.displayName="MDXCreateElement"},5162:(e,t,n)=>{n.d(t,{Z:()=>l});var r=n(7294),a=n(6010);const o="tabItem_Ymn6";function l(e){let{children:t,hidden:n,className:l}=e;return r.createElement("div",{role:"tabpanel",className:(0,a.Z)(o,l),hidden:n},t)}},4866:(e,t,n)=>{n.d(t,{Z:()=>E});var r=n(7462),a=n(7294),o=n(6010),l=n(2466),i=n(6550),u=n(1980),s=n(7392),c=n(12);function d(e){return function(e){return a.Children.map(e,(e=>{if(!e||(0,a.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:t,label:n,attributes:r,default:a}}=e;return{value:t,label:n,attributes:r,default:a}}))}function p(e){const{values:t,children:n}=e;return(0,a.useMemo)((()=>{const e=t??d(n);return function(e){const t=(0,s.l)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[t,n])}function m(e){let{value:t,tabValues:n}=e;return n.some((e=>e.value===t))}function f(e){let{queryString:t=!1,groupId:n}=e;const r=(0,i.k6)(),o=function(e){let{queryString:t=!1,groupId:n}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!n)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return n??null}({queryString:t,groupId:n});return[(0,u._X)(o),(0,a.useCallback)((e=>{if(!o)return;const t=new URLSearchParams(r.location.search);t.set(o,e),r.replace({...r.location,search:t.toString()})}),[o,r])]}function v(e){const{defaultValue:t,queryString:n=!1,groupId:r}=e,o=p(e),[l,i]=(0,a.useState)((()=>function(e){let{defaultValue:t,tabValues:n}=e;if(0===n.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(t){if(!m({value:t,tabValues:n}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${n.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const r=n.find((e=>e.default))??n[0];if(!r)throw new Error("Unexpected error: 0 tabValues");return r.value}({defaultValue:t,tabValues:o}))),[u,s]=f({queryString:n,groupId:r}),[d,v]=function(e){let{groupId:t}=e;const n=function(e){return e?`docusaurus.tab.${e}`:null}(t),[r,o]=(0,c.Nk)(n);return[r,(0,a.useCallback)((e=>{n&&o.set(e)}),[n,o])]}({groupId:r}),b=(()=>{const e=u??d;return m({value:e,tabValues:o})?e:null})();(0,a.useLayoutEffect)((()=>{b&&i(b)}),[b]);return{selectedValue:l,selectValue:(0,a.useCallback)((e=>{if(!m({value:e,tabValues:o}))throw new Error(`Can't select invalid tab value=${e}`);i(e),s(e),v(e)}),[s,v,o]),tabValues:o}}var b=n(2389);const y="tabList__CuJ",h="tabItem_LNqP";function g(e){let{className:t,block:n,selectedValue:i,selectValue:u,tabValues:s}=e;const c=[],{blockElementScrollPositionUntilNextRender:d}=(0,l.o5)(),p=e=>{const t=e.currentTarget,n=c.indexOf(t),r=s[n].value;r!==i&&(d(t),u(r))},m=e=>{let t=null;switch(e.key){case"Enter":p(e);break;case"ArrowRight":{const n=c.indexOf(e.currentTarget)+1;t=c[n]??c[0];break}case"ArrowLeft":{const n=c.indexOf(e.currentTarget)-1;t=c[n]??c[c.length-1];break}}t?.focus()};return a.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,o.Z)("tabs",{"tabs--block":n},t)},s.map((e=>{let{value:t,label:n,attributes:l}=e;return a.createElement("li",(0,r.Z)({role:"tab",tabIndex:i===t?0:-1,"aria-selected":i===t,key:t,ref:e=>c.push(e),onKeyDown:m,onClick:p},l,{className:(0,o.Z)("tabs__item",h,l?.className,{"tabs__item--active":i===t})}),n??t)})))}function k(e){let{lazy:t,children:n,selectedValue:r}=e;const o=(Array.isArray(n)?n:[n]).filter(Boolean);if(t){const e=o.find((e=>e.props.value===r));return e?(0,a.cloneElement)(e,{className:"margin-top--md"}):null}return a.createElement("div",{className:"margin-top--md"},o.map(((e,t)=>(0,a.cloneElement)(e,{key:t,hidden:e.props.value!==r}))))}function w(e){const t=v(e);return a.createElement("div",{className:(0,o.Z)("tabs-container",y)},a.createElement(g,(0,r.Z)({},e,t)),a.createElement(k,(0,r.Z)({},e,t)))}function E(e){const t=(0,b.Z)();return a.createElement(w,(0,r.Z)({key:String(t)},e))}},1349:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>u,contentTitle:()=>l,default:()=>d,frontMatter:()=>o,metadata:()=>i,toc:()=>s});var r=n(7462),a=(n(7294),n(3905));n(4866),n(5162);const o={},l="VS Code",i={unversionedId:"extras/vscode",id:"extras/vscode",title:"VS Code",description:"This extra will only load when vim.g.vscode is set.",source:"@site/docs/extras/vscode.md",sourceDirName:"extras",slug:"/extras/vscode",permalink:"/extras/vscode",draft:!1,editUrl:"https://github.com/LazyVim/lazyvim.github.io/tree/main/docs/extras/vscode.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Startuptime",permalink:"/extras/util/startuptime"}},u={},s=[],c={toc:s};function d(e){let{components:t,...n}=e;return(0,a.kt)("wrapper",(0,r.Z)({},c,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"vs-code"},"VS Code"),(0,a.kt)("p",null,"This extra will only load when ",(0,a.kt)("inlineCode",{parentName:"p"},"vim.g.vscode")," is set."),(0,a.kt)("p",null,"Enabled plugins:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "dial.nvim",\n "flit.nvim",\n "lazy.nvim",\n "leap.nvim",\n "mini.ai",\n "mini.comment",\n "mini.move",\n "mini.pairs",\n "mini.surround",\n "nvim-treesitter",\n "nvim-treesitter-textobjects",\n "nvim-ts-context-commentstring",\n "vim-repeat",\n "yanky.nvim",\n}\n')),(0,a.kt)("p",null,"Some additional keymaps are added similar to the ones in regular LazyVim."),(0,a.kt)("p",null,"If you want to include any additional plugins in ",(0,a.kt)("strong",{parentName:"p"},"vscode"),",\nyou can set ",(0,a.kt)("inlineCode",{parentName:"p"},"vscode=true")," on a plugin spec."),(0,a.kt)("admonition",{type:"info"},(0,a.kt)("p",{parentName:"admonition"},"You can enable the extra with the ",(0,a.kt)("inlineCode",{parentName:"p"},":LazyExtras")," command.\nPlugins marked as optional will only be configured if they are installed.")),(0,a.kt)("p",null,"Below you can find a list of included plugins and their default settings."),(0,a.kt)("admonition",{type:"caution"},(0,a.kt)("p",{parentName:"admonition"},"You don't need to copy the default settings to your config.\nThey are only shown here for reference.")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/ae7dceba.782b1693.js b/assets/js/ae7dceba.782b1693.js new file mode 100644 index 0000000000..332f54543e --- /dev/null +++ b/assets/js/ae7dceba.782b1693.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklazyvim=self.webpackChunklazyvim||[]).push([[5390],{3905:(e,n,t)=>{t.d(n,{Zo:()=>m,kt:()=>k});var a=t(7294);function r(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function o(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,a)}return t}function l(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?o(Object(t),!0).forEach((function(n){r(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):o(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function i(e,n){if(null==e)return{};var t,a,r=function(e,n){if(null==e)return{};var t,a,r={},o=Object.keys(e);for(a=0;a<o.length;a++)t=o[a],n.indexOf(t)>=0||(r[t]=e[t]);return r}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)t=o[a],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(r[t]=e[t])}return r}var s=a.createContext({}),u=function(e){var n=a.useContext(s),t=n;return e&&(t="function"==typeof e?e(n):l(l({},n),e)),t},m=function(e){var n=u(e.components);return a.createElement(s.Provider,{value:n},e.children)},c="mdxType",d={inlineCode:"code",wrapper:function(e){var n=e.children;return a.createElement(a.Fragment,{},n)}},p=a.forwardRef((function(e,n){var t=e.components,r=e.mdxType,o=e.originalType,s=e.parentName,m=i(e,["components","mdxType","originalType","parentName"]),c=u(t),p=r,k=c["".concat(s,".").concat(p)]||c[p]||d[p]||o;return t?a.createElement(k,l(l({ref:n},m),{},{components:t})):a.createElement(k,l({ref:n},m))}));function k(e,n){var t=arguments,r=n&&n.mdxType;if("string"==typeof e||r){var o=t.length,l=new Array(o);l[0]=p;var i={};for(var s in n)hasOwnProperty.call(n,s)&&(i[s]=n[s]);i.originalType=e,i[c]="string"==typeof e?e:r,l[1]=i;for(var u=2;u<o;u++)l[u]=t[u];return a.createElement.apply(null,l)}return a.createElement.apply(null,t)}p.displayName="MDXCreateElement"},5162:(e,n,t)=>{t.d(n,{Z:()=>l});var a=t(7294),r=t(6010);const o="tabItem_Ymn6";function l(e){let{children:n,hidden:t,className:l}=e;return a.createElement("div",{role:"tabpanel",className:(0,r.Z)(o,l),hidden:t},n)}},4866:(e,n,t)=>{t.d(n,{Z:()=>T});var a=t(7462),r=t(7294),o=t(6010),l=t(2466),i=t(6550),s=t(1980),u=t(7392),m=t(12);function c(e){return function(e){return r.Children.map(e,(e=>{if(!e||(0,r.isValidElement)(e)&&function(e){const{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:n,label:t,attributes:a,default:r}}=e;return{value:n,label:t,attributes:a,default:r}}))}function d(e){const{values:n,children:t}=e;return(0,r.useMemo)((()=>{const e=n??c(t);return function(e){const n=(0,u.l)(e,((e,n)=>e.value===n.value));if(n.length>0)throw new Error(`Docusaurus error: Duplicate values "${n.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[n,t])}function p(e){let{value:n,tabValues:t}=e;return t.some((e=>e.value===n))}function k(e){let{queryString:n=!1,groupId:t}=e;const a=(0,i.k6)(),o=function(e){let{queryString:n=!1,groupId:t}=e;if("string"==typeof n)return n;if(!1===n)return null;if(!0===n&&!t)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return t??null}({queryString:n,groupId:t});return[(0,s._X)(o),(0,r.useCallback)((e=>{if(!o)return;const n=new URLSearchParams(a.location.search);n.set(o,e),a.replace({...a.location,search:n.toString()})}),[o,a])]}function v(e){const{defaultValue:n,queryString:t=!1,groupId:a}=e,o=d(e),[l,i]=(0,r.useState)((()=>function(e){let{defaultValue:n,tabValues:t}=e;if(0===t.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(n){if(!p({value:n,tabValues:t}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${n}" but none of its children has the corresponding value. Available values are: ${t.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return n}const a=t.find((e=>e.default))??t[0];if(!a)throw new Error("Unexpected error: 0 tabValues");return a.value}({defaultValue:n,tabValues:o}))),[s,u]=k({queryString:t,groupId:a}),[c,v]=function(e){let{groupId:n}=e;const t=function(e){return e?`docusaurus.tab.${e}`:null}(n),[a,o]=(0,m.Nk)(t);return[a,(0,r.useCallback)((e=>{t&&o.set(e)}),[t,o])]}({groupId:a}),f=(()=>{const e=s??c;return p({value:e,tabValues:o})?e:null})();(0,r.useLayoutEffect)((()=>{f&&i(f)}),[f]);return{selectedValue:l,selectValue:(0,r.useCallback)((e=>{if(!p({value:e,tabValues:o}))throw new Error(`Can't select invalid tab value=${e}`);i(e),u(e),v(e)}),[u,v,o]),tabValues:o}}var f=t(2389);const b="tabList__CuJ",g="tabItem_LNqP";function w(e){let{className:n,block:t,selectedValue:i,selectValue:s,tabValues:u}=e;const m=[],{blockElementScrollPositionUntilNextRender:c}=(0,l.o5)(),d=e=>{const n=e.currentTarget,t=m.indexOf(n),a=u[t].value;a!==i&&(c(n),s(a))},p=e=>{let n=null;switch(e.key){case"Enter":d(e);break;case"ArrowRight":{const t=m.indexOf(e.currentTarget)+1;n=m[t]??m[0];break}case"ArrowLeft":{const t=m.indexOf(e.currentTarget)-1;n=m[t]??m[m.length-1];break}}n?.focus()};return r.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,o.Z)("tabs",{"tabs--block":t},n)},u.map((e=>{let{value:n,label:t,attributes:l}=e;return r.createElement("li",(0,a.Z)({role:"tab",tabIndex:i===n?0:-1,"aria-selected":i===n,key:n,ref:e=>m.push(e),onKeyDown:p,onClick:d},l,{className:(0,o.Z)("tabs__item",g,l?.className,{"tabs__item--active":i===n})}),t??n)})))}function h(e){let{lazy:n,children:t,selectedValue:a}=e;const o=(Array.isArray(t)?t:[t]).filter(Boolean);if(n){const e=o.find((e=>e.props.value===a));return e?(0,r.cloneElement)(e,{className:"margin-top--md"}):null}return r.createElement("div",{className:"margin-top--md"},o.map(((e,n)=>(0,r.cloneElement)(e,{key:n,hidden:e.props.value!==a}))))}function y(e){const n=v(e);return r.createElement("div",{className:(0,o.Z)("tabs-container",b)},r.createElement(w,(0,a.Z)({},e,n)),r.createElement(h,(0,a.Z)({},e,n)))}function T(e){const n=(0,f.Z)();return r.createElement(y,(0,a.Z)({key:String(n)},e))}},6033:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>m,contentTitle:()=>s,default:()=>p,frontMatter:()=>i,metadata:()=>u,toc:()=>c});var a=t(7462),r=(t(7294),t(3905)),o=t(4866),l=t(5162);const i={},s="Markdown",u={unversionedId:"extras/lang/markdown",id:"extras/lang/markdown",title:"Markdown",description:"You can enable the extra with the :LazyExtras command.",source:"@site/docs/extras/lang/markdown.md",sourceDirName:"extras/lang",slug:"/extras/lang/markdown",permalink:"/extras/lang/markdown",draft:!1,editUrl:"https://github.com/LazyVim/lazyvim.github.io/tree/main/docs/extras/lang/markdown.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Lean",permalink:"/extras/lang/lean"},next:{title:"Nix",permalink:"/extras/lang/nix"}},m={},c=[{value:"mason.nvim",id:"masonnvim",level:2},{value:"nvim-lspconfig",id:"nvim-lspconfig",level:2},{value:"markdown-preview.nvim",id:"markdown-previewnvim",level:2},{value:"markdown-preview.nvim",id:"markdown-previewnvim-1",level:2},{value:"render-markdown.nvim",id:"render-markdownnvim",level:2},{value:"conform.nvim <em>(optional)</em>",id:"conformnvim-optional",level:2},{value:"none-ls.nvim <em>(optional)</em>",id:"none-lsnvim-optional",level:2},{value:"nvim-lint <em>(optional)</em>",id:"nvim-lint-optional",level:2}],d={toc:c};function p(e){let{components:n,...t}=e;return(0,r.kt)("wrapper",(0,a.Z)({},d,t,{components:n,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"markdown"},"Markdown"),(0,r.kt)("admonition",{type:"info"},(0,r.kt)("p",{parentName:"admonition"},"You can enable the extra with the ",(0,r.kt)("inlineCode",{parentName:"p"},":LazyExtras")," command.\nPlugins marked as optional will only be configured if they are installed.")),(0,r.kt)("p",null,"Below you can find a list of included plugins and their default settings."),(0,r.kt)("admonition",{type:"caution"},(0,r.kt)("p",{parentName:"admonition"},"You don't need to copy the default settings to your config.\nThey are only shown here for reference.")),(0,r.kt)("h2",{id:"masonnvim"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/mason-org/mason.nvim"},"mason.nvim")),(0,r.kt)(o.Z,{mdxType:"Tabs"},(0,r.kt)(l.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = { ensure_installed = { "markdownlint-cli2", "markdown-toc" } }\n'))),(0,r.kt)(l.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "mason-org/mason.nvim",\n opts = { ensure_installed = { "markdownlint-cli2", "markdown-toc" } },\n}\n')))),(0,r.kt)("h2",{id:"nvim-lspconfig"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/neovim/nvim-lspconfig"},"nvim-lspconfig")),(0,r.kt)(o.Z,{mdxType:"Tabs"},(0,r.kt)(l.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},"opts = {\n servers = {\n marksman = {},\n },\n}\n"))),(0,r.kt)(l.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "neovim/nvim-lspconfig",\n opts = {\n servers = {\n marksman = {},\n },\n },\n}\n')))),(0,r.kt)("h2",{id:"markdown-previewnvim"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/iamcco/markdown-preview.nvim"},"markdown-preview.nvim")),(0,r.kt)("p",null," Markdown preview"),(0,r.kt)(o.Z,{mdxType:"Tabs"},(0,r.kt)(l.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},"opts = {}\n"))),(0,r.kt)(l.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "iamcco/markdown-preview.nvim",\n cmd = { "MarkdownPreviewToggle", "MarkdownPreview", "MarkdownPreviewStop" },\n build = function()\n require("lazy").load({ plugins = { "markdown-preview.nvim" } })\n vim.fn["mkdp#util#install"]()\n end,\n keys = {\n {\n "<leader>cp",\n ft = "markdown",\n "<cmd>MarkdownPreviewToggle<cr>",\n desc = "Markdown Preview",\n },\n },\n config = function()\n vim.cmd([[do FileType]])\n end,\n}\n')))),(0,r.kt)("h2",{id:"markdown-previewnvim-1"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/iamcco/markdown-preview.nvim"},"markdown-preview.nvim")),(0,r.kt)(o.Z,{mdxType:"Tabs"},(0,r.kt)(l.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},"opts = nil\n"))),(0,r.kt)(l.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{ "markdown-preview.nvim" }\n')))),(0,r.kt)("h2",{id:"render-markdownnvim"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/MeanderingProgrammer/render-markdown.nvim"},"render-markdown.nvim")),(0,r.kt)(o.Z,{mdxType:"Tabs"},(0,r.kt)(l.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = {\n code = {\n sign = false,\n width = "block",\n right_pad = 1,\n },\n heading = {\n sign = false,\n icons = {},\n },\n checkbox = {\n enabled = false,\n },\n}\n'))),(0,r.kt)(l.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "MeanderingProgrammer/render-markdown.nvim",\n opts = {\n code = {\n sign = false,\n width = "block",\n right_pad = 1,\n },\n heading = {\n sign = false,\n icons = {},\n },\n checkbox = {\n enabled = false,\n },\n },\n ft = { "markdown", "norg", "rmd", "org", "codecompanion" },\n config = function(_, opts)\n require("render-markdown").setup(opts)\n Snacks.toggle({\n name = "Render Markdown",\n get = require("render-markdown").get,\n set = require("render-markdown").set,\n }):map("<leader>um")\n end,\n}\n')))),(0,r.kt)("h2",{id:"conformnvim-optional"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/stevearc/conform.nvim"},"conform.nvim")," ",(0,r.kt)("em",{parentName:"h2"},"(optional)")),(0,r.kt)(o.Z,{mdxType:"Tabs"},(0,r.kt)(l.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = {\n formatters = {\n ["markdown-toc"] = {\n condition = function(_, ctx)\n for _, line in ipairs(vim.api.nvim_buf_get_lines(ctx.buf, 0, -1, false)) do\n if line:find("<!%-%- toc %-%->") then\n return true\n end\n end\n end,\n },\n ["markdownlint-cli2"] = {\n condition = function(_, ctx)\n local diag = vim.tbl_filter(function(d)\n return d.source == "markdownlint"\n end, vim.diagnostic.get(ctx.buf))\n return #diag > 0\n end,\n },\n },\n formatters_by_ft = {\n ["markdown"] = { "prettier", "markdownlint-cli2", "markdown-toc" },\n ["markdown.mdx"] = { "prettier", "markdownlint-cli2", "markdown-toc" },\n },\n}\n'))),(0,r.kt)(l.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "stevearc/conform.nvim",\n optional = true,\n opts = {\n formatters = {\n ["markdown-toc"] = {\n condition = function(_, ctx)\n for _, line in ipairs(vim.api.nvim_buf_get_lines(ctx.buf, 0, -1, false)) do\n if line:find("<!%-%- toc %-%->") then\n return true\n end\n end\n end,\n },\n ["markdownlint-cli2"] = {\n condition = function(_, ctx)\n local diag = vim.tbl_filter(function(d)\n return d.source == "markdownlint"\n end, vim.diagnostic.get(ctx.buf))\n return #diag > 0\n end,\n },\n },\n formatters_by_ft = {\n ["markdown"] = { "prettier", "markdownlint-cli2", "markdown-toc" },\n ["markdown.mdx"] = { "prettier", "markdownlint-cli2", "markdown-toc" },\n },\n },\n}\n')))),(0,r.kt)("h2",{id:"none-lsnvim-optional"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/nvimtools/none-ls.nvim"},"none-ls.nvim")," ",(0,r.kt)("em",{parentName:"h2"},"(optional)")),(0,r.kt)(o.Z,{mdxType:"Tabs"},(0,r.kt)(l.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = function(_, opts)\n local nls = require("null-ls")\n opts.sources = vim.list_extend(opts.sources or {}, {\n nls.builtins.diagnostics.markdownlint_cli2,\n })\nend\n'))),(0,r.kt)(l.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "nvimtools/none-ls.nvim",\n optional = true,\n opts = function(_, opts)\n local nls = require("null-ls")\n opts.sources = vim.list_extend(opts.sources or {}, {\n nls.builtins.diagnostics.markdownlint_cli2,\n })\n end,\n}\n')))),(0,r.kt)("h2",{id:"nvim-lint-optional"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/mfussenegger/nvim-lint"},"nvim-lint")," ",(0,r.kt)("em",{parentName:"h2"},"(optional)")),(0,r.kt)(o.Z,{mdxType:"Tabs"},(0,r.kt)(l.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = {\n linters_by_ft = {\n markdown = { "markdownlint-cli2" },\n },\n}\n'))),(0,r.kt)(l.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "mfussenegger/nvim-lint",\n optional = true,\n opts = {\n linters_by_ft = {\n markdown = { "markdownlint-cli2" },\n },\n },\n}\n')))))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/af437caf.8b9c1cd7.js b/assets/js/af437caf.8b9c1cd7.js new file mode 100644 index 0000000000..cb9276523b --- /dev/null +++ b/assets/js/af437caf.8b9c1cd7.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklazyvim=self.webpackChunklazyvim||[]).push([[5200],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>f});var a=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function r(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?l(Object(n),!0).forEach((function(t){o(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):l(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function i(e,t){if(null==e)return{};var n,a,o=function(e,t){if(null==e)return{};var n,a,o={},l=Object.keys(e);for(a=0;a<l.length;a++)n=l[a],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a<l.length;a++)n=l[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var s=a.createContext({}),u=function(e){var t=a.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):r(r({},t),e)),n},p=function(e){var t=u(e.components);return a.createElement(s.Provider,{value:t},e.children)},d="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},c=a.forwardRef((function(e,t){var n=e.components,o=e.mdxType,l=e.originalType,s=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),d=u(n),c=o,f=d["".concat(s,".").concat(c)]||d[c]||m[c]||l;return n?a.createElement(f,r(r({ref:t},p),{},{components:n})):a.createElement(f,r({ref:t},p))}));function f(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var l=n.length,r=new Array(l);r[0]=c;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[d]="string"==typeof e?e:o,r[1]=i;for(var u=2;u<l;u++)r[u]=n[u];return a.createElement.apply(null,r)}return a.createElement.apply(null,n)}c.displayName="MDXCreateElement"},5162:(e,t,n)=>{n.d(t,{Z:()=>r});var a=n(7294),o=n(6010);const l="tabItem_Ymn6";function r(e){let{children:t,hidden:n,className:r}=e;return a.createElement("div",{role:"tabpanel",className:(0,o.Z)(l,r),hidden:n},t)}},4866:(e,t,n)=>{n.d(t,{Z:()=>T});var a=n(7462),o=n(7294),l=n(6010),r=n(2466),i=n(6550),s=n(1980),u=n(7392),p=n(12);function d(e){return function(e){return o.Children.map(e,(e=>{if(!e||(0,o.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:t,label:n,attributes:a,default:o}}=e;return{value:t,label:n,attributes:a,default:o}}))}function m(e){const{values:t,children:n}=e;return(0,o.useMemo)((()=>{const e=t??d(n);return function(e){const t=(0,u.l)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[t,n])}function c(e){let{value:t,tabValues:n}=e;return n.some((e=>e.value===t))}function f(e){let{queryString:t=!1,groupId:n}=e;const a=(0,i.k6)(),l=function(e){let{queryString:t=!1,groupId:n}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!n)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return n??null}({queryString:t,groupId:n});return[(0,s._X)(l),(0,o.useCallback)((e=>{if(!l)return;const t=new URLSearchParams(a.location.search);t.set(l,e),a.replace({...a.location,search:t.toString()})}),[l,a])]}function b(e){const{defaultValue:t,queryString:n=!1,groupId:a}=e,l=m(e),[r,i]=(0,o.useState)((()=>function(e){let{defaultValue:t,tabValues:n}=e;if(0===n.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(t){if(!c({value:t,tabValues:n}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${n.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const a=n.find((e=>e.default))??n[0];if(!a)throw new Error("Unexpected error: 0 tabValues");return a.value}({defaultValue:t,tabValues:l}))),[s,u]=f({queryString:n,groupId:a}),[d,b]=function(e){let{groupId:t}=e;const n=function(e){return e?`docusaurus.tab.${e}`:null}(t),[a,l]=(0,p.Nk)(n);return[a,(0,o.useCallback)((e=>{n&&l.set(e)}),[n,l])]}({groupId:a}),v=(()=>{const e=s??d;return c({value:e,tabValues:l})?e:null})();(0,o.useLayoutEffect)((()=>{v&&i(v)}),[v]);return{selectedValue:r,selectValue:(0,o.useCallback)((e=>{if(!c({value:e,tabValues:l}))throw new Error(`Can't select invalid tab value=${e}`);i(e),u(e),b(e)}),[u,b,l]),tabValues:l}}var v=n(2389);const g="tabList__CuJ",h="tabItem_LNqP";function k(e){let{className:t,block:n,selectedValue:i,selectValue:s,tabValues:u}=e;const p=[],{blockElementScrollPositionUntilNextRender:d}=(0,r.o5)(),m=e=>{const t=e.currentTarget,n=p.indexOf(t),a=u[n].value;a!==i&&(d(t),s(a))},c=e=>{let t=null;switch(e.key){case"Enter":m(e);break;case"ArrowRight":{const n=p.indexOf(e.currentTarget)+1;t=p[n]??p[0];break}case"ArrowLeft":{const n=p.indexOf(e.currentTarget)-1;t=p[n]??p[p.length-1];break}}t?.focus()};return o.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,l.Z)("tabs",{"tabs--block":n},t)},u.map((e=>{let{value:t,label:n,attributes:r}=e;return o.createElement("li",(0,a.Z)({role:"tab",tabIndex:i===t?0:-1,"aria-selected":i===t,key:t,ref:e=>p.push(e),onKeyDown:c,onClick:m},r,{className:(0,l.Z)("tabs__item",h,r?.className,{"tabs__item--active":i===t})}),n??t)})))}function y(e){let{lazy:t,children:n,selectedValue:a}=e;const l=(Array.isArray(n)?n:[n]).filter(Boolean);if(t){const e=l.find((e=>e.props.value===a));return e?(0,o.cloneElement)(e,{className:"margin-top--md"}):null}return o.createElement("div",{className:"margin-top--md"},l.map(((e,t)=>(0,o.cloneElement)(e,{key:t,hidden:e.props.value!==a}))))}function _(e){const t=b(e);return o.createElement("div",{className:(0,l.Z)("tabs-container",g)},o.createElement(k,(0,a.Z)({},e,t)),o.createElement(y,(0,a.Z)({},e,t)))}function T(e){const t=(0,v.Z)();return o.createElement(_,(0,a.Z)({key:String(t)},e))}},9043:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>s,default:()=>c,frontMatter:()=>i,metadata:()=>u,toc:()=>d});var a=n(7462),o=(n(7294),n(3905)),l=n(4866),r=n(5162);const i={},s="Sql",u={unversionedId:"extras/lang/sql",id:"extras/lang/sql",title:"Sql",description:"You can enable the extra with the :LazyExtras command.",source:"@site/docs/extras/lang/sql.md",sourceDirName:"extras/lang",slug:"/extras/lang/sql",permalink:"/extras/lang/sql",draft:!1,editUrl:"https://github.com/LazyVim/lazyvim.github.io/tree/main/docs/extras/lang/sql.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Solidity",permalink:"/extras/lang/solidity"},next:{title:"Svelte",permalink:"/extras/lang/svelte"}},p={},d=[{value:"Options",id:"options",level:3},{value:"vim-dadbod",id:"vim-dadbod",level:2},{value:"vim-dadbod-completion",id:"vim-dadbod-completion",level:2},{value:"vim-dadbod-ui",id:"vim-dadbod-ui",level:2},{value:"vim-dadbod-completion",id:"vim-dadbod-completion-1",level:2},{value:"mason.nvim",id:"masonnvim",level:2},{value:"nvim-treesitter <em>(optional)</em>",id:"nvim-treesitter-optional",level:2},{value:"edgy.nvim <em>(optional)</em>",id:"edgynvim-optional",level:2},{value:"blink.cmp <em>(optional)</em>",id:"blinkcmp-optional",level:2},{value:"nvim-lint <em>(optional)</em>",id:"nvim-lint-optional",level:2},{value:"conform.nvim <em>(optional)</em>",id:"conformnvim-optional",level:2}],m={toc:d};function c(e){let{components:t,...n}=e;return(0,o.kt)("wrapper",(0,a.Z)({},m,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"sql"},(0,o.kt)("inlineCode",{parentName:"h1"},"Sql")),(0,o.kt)("admonition",{type:"info"},(0,o.kt)("p",{parentName:"admonition"},"You can enable the extra with the ",(0,o.kt)("inlineCode",{parentName:"p"},":LazyExtras")," command.\nPlugins marked as optional will only be configured if they are installed.")),(0,o.kt)("h3",{id:"options"},"Options"),(0,o.kt)("p",null,"Additional options for this extra can be configured in your ",(0,o.kt)("a",{parentName:"p",href:"/configuration/general#options"},"lua/config/options.lua")," file:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-lua",metastring:'title="lua/config/options.lua"',title:'"lua/config/options.lua"'},'-- The setup below will automatically configure connections without the need for manual input each time.\n\n-- Example configuration using dictionary with keys:\n-- vim.g.dbs = {\n-- dev = "Replace with your database connection URL.",\n-- staging = "Replace with your database connection URL.",\n-- }\n-- or\n-- Example configuration using a list of dictionaries:\n-- vim.g.dbs = {\n-- { name = "dev", url = "Replace with your database connection URL." },\n-- { name = "staging", url = "Replace with your database connection URL." },\n-- }\n\n-- or\n-- Create a `.lazy.lua` file in your project and set your connections like this:\n-- ```lua\n-- vim.g.dbs = {...}\n--\n-- return {}\n-- ```\n\n-- Alternatively, you can also use other methods to inject your environment variables.\n\n-- Finally, please make sure to add `.lazy.lua` to your `.gitignore` file to protect your secrets.\n')),(0,o.kt)("p",null,"Below you can find a list of included plugins and their default settings."),(0,o.kt)("admonition",{type:"caution"},(0,o.kt)("p",{parentName:"admonition"},"You don't need to copy the default settings to your config.\nThey are only shown here for reference.")),(0,o.kt)("h2",{id:"vim-dadbod"},(0,o.kt)("a",{parentName:"h2",href:"https://github.com/tpope/vim-dadbod"},"vim-dadbod")),(0,o.kt)(l.Z,{mdxType:"Tabs"},(0,o.kt)(r.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-lua"},"opts = nil\n"))),(0,o.kt)(r.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "tpope/vim-dadbod",\n cmd = "DB",\n}\n')))),(0,o.kt)("h2",{id:"vim-dadbod-completion"},(0,o.kt)("a",{parentName:"h2",href:"https://github.com/kristijanhusak/vim-dadbod-completion"},"vim-dadbod-completion")),(0,o.kt)(l.Z,{mdxType:"Tabs"},(0,o.kt)(r.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-lua"},"opts = nil\n"))),(0,o.kt)(r.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "kristijanhusak/vim-dadbod-completion",\n dependencies = "vim-dadbod",\n ft = sql_ft,\n init = function()\n vim.api.nvim_create_autocmd("FileType", {\n pattern = sql_ft,\n callback = function()\n if LazyVim.has_extra("coding.nvim-cmp") then\n local cmp = require("cmp")\n\n -- global sources\n ---@param source cmp.SourceConfig\n local sources = vim.tbl_map(function(source)\n return { name = source.name }\n end, cmp.get_config().sources)\n\n -- add vim-dadbod-completion source\n table.insert(sources, { name = "vim-dadbod-completion" })\n\n -- update sources for the current buffer\n cmp.setup.buffer({ sources = sources })\n end\n end,\n })\n end,\n}\n')))),(0,o.kt)("h2",{id:"vim-dadbod-ui"},(0,o.kt)("a",{parentName:"h2",href:"https://github.com/kristijanhusak/vim-dadbod-ui"},"vim-dadbod-ui")),(0,o.kt)(l.Z,{mdxType:"Tabs"},(0,o.kt)(r.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-lua"},"opts = nil\n"))),(0,o.kt)(r.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "kristijanhusak/vim-dadbod-ui",\n cmd = { "DBUI", "DBUIToggle", "DBUIAddConnection", "DBUIFindBuffer" },\n dependencies = "vim-dadbod",\n keys = {\n { "<leader>D", "<cmd>DBUIToggle<CR>", desc = "Toggle DBUI" },\n },\n init = function()\n local data_path = vim.fn.stdpath("data")\n\n vim.g.db_ui_auto_execute_table_helpers = 1\n vim.g.db_ui_save_location = data_path .. "/dadbod_ui"\n vim.g.db_ui_show_database_icon = true\n vim.g.db_ui_tmp_query_location = data_path .. "/dadbod_ui/tmp"\n vim.g.db_ui_use_nerd_fonts = true\n vim.g.db_ui_use_nvim_notify = true\n\n -- NOTE: The default behavior of auto-execution of queries on save is disabled\n -- this is useful when you have a big query that you don\'t want to run every time\n -- you save the file running those queries can crash neovim to run use the\n -- default keymap: <leader>S\n vim.g.db_ui_execute_on_save = false\n end,\n}\n')))),(0,o.kt)("h2",{id:"vim-dadbod-completion-1"},(0,o.kt)("a",{parentName:"h2",href:"https://github.com/kristijanhusak/vim-dadbod-completion"},"vim-dadbod-completion")),(0,o.kt)(l.Z,{mdxType:"Tabs"},(0,o.kt)(r.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-lua"},"opts = nil\n"))),(0,o.kt)(r.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "kristijanhusak/vim-dadbod-completion",\n}\n')))),(0,o.kt)("h2",{id:"masonnvim"},(0,o.kt)("a",{parentName:"h2",href:"https://github.com/mason-org/mason.nvim"},"mason.nvim")),(0,o.kt)("p",null," Linters & formatters"),(0,o.kt)(l.Z,{mdxType:"Tabs"},(0,o.kt)(r.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-lua"},'opts = { ensure_installed = { "sqlfluff" } }\n'))),(0,o.kt)(r.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "mason-org/mason.nvim",\n opts = { ensure_installed = { "sqlfluff" } },\n}\n')))),(0,o.kt)("h2",{id:"nvim-treesitter-optional"},(0,o.kt)("a",{parentName:"h2",href:"https://github.com/nvim-treesitter/nvim-treesitter"},"nvim-treesitter")," ",(0,o.kt)("em",{parentName:"h2"},"(optional)")),(0,o.kt)("p",null," Treesitter"),(0,o.kt)(l.Z,{mdxType:"Tabs"},(0,o.kt)(r.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-lua"},'opts = { ensure_installed = { "sql" } }\n'))),(0,o.kt)(r.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "nvim-treesitter/nvim-treesitter",\n optional = true,\n opts = { ensure_installed = { "sql" } },\n}\n')))),(0,o.kt)("h2",{id:"edgynvim-optional"},(0,o.kt)("a",{parentName:"h2",href:"https://github.com/folke/edgy.nvim"},"edgy.nvim")," ",(0,o.kt)("em",{parentName:"h2"},"(optional)")),(0,o.kt)("p",null," Edgy integration"),(0,o.kt)(l.Z,{mdxType:"Tabs"},(0,o.kt)(r.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-lua"},'opts = function(_, opts)\n opts.right = opts.right or {}\n table.insert(opts.right, {\n title = "Database",\n ft = "dbui",\n pinned = true,\n width = 0.3,\n open = function()\n vim.cmd("DBUI")\n end,\n })\n\n opts.bottom = opts.bottom or {}\n table.insert(opts.bottom, {\n title = "DB Query Result",\n ft = "dbout",\n })\nend\n'))),(0,o.kt)(r.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "folke/edgy.nvim",\n optional = true,\n opts = function(_, opts)\n opts.right = opts.right or {}\n table.insert(opts.right, {\n title = "Database",\n ft = "dbui",\n pinned = true,\n width = 0.3,\n open = function()\n vim.cmd("DBUI")\n end,\n })\n\n opts.bottom = opts.bottom or {}\n table.insert(opts.bottom, {\n title = "DB Query Result",\n ft = "dbout",\n })\n end,\n}\n')))),(0,o.kt)("h2",{id:"blinkcmp-optional"},(0,o.kt)("a",{parentName:"h2",href:"https://github.com/saghen/blink.cmp"},"blink.cmp")," ",(0,o.kt)("em",{parentName:"h2"},"(optional)")),(0,o.kt)("p",null," blink.cmp integration"),(0,o.kt)(l.Z,{mdxType:"Tabs"},(0,o.kt)(r.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-lua"},'opts = {\n sources = {\n default = { "dadbod" },\n providers = {\n dadbod = { name = "Dadbod", module = "vim_dadbod_completion.blink" },\n },\n },\n}\n'))),(0,o.kt)(r.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "saghen/blink.cmp",\n optional = true,\n opts = {\n sources = {\n default = { "dadbod" },\n providers = {\n dadbod = { name = "Dadbod", module = "vim_dadbod_completion.blink" },\n },\n },\n },\n dependencies = {\n "kristijanhusak/vim-dadbod-completion",\n },\n}\n')))),(0,o.kt)("h2",{id:"nvim-lint-optional"},(0,o.kt)("a",{parentName:"h2",href:"https://github.com/mfussenegger/nvim-lint"},"nvim-lint")," ",(0,o.kt)("em",{parentName:"h2"},"(optional)")),(0,o.kt)(l.Z,{mdxType:"Tabs"},(0,o.kt)(r.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-lua"},'opts = function(_, opts)\n for _, ft in ipairs(sql_ft) do\n opts.linters_by_ft[ft] = opts.linters_by_ft[ft] or {}\n table.insert(opts.linters_by_ft[ft], "sqlfluff")\n end\nend\n'))),(0,o.kt)(r.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "mfussenegger/nvim-lint",\n optional = true,\n opts = function(_, opts)\n for _, ft in ipairs(sql_ft) do\n opts.linters_by_ft[ft] = opts.linters_by_ft[ft] or {}\n table.insert(opts.linters_by_ft[ft], "sqlfluff")\n end\n end,\n}\n')))),(0,o.kt)("h2",{id:"conformnvim-optional"},(0,o.kt)("a",{parentName:"h2",href:"https://github.com/stevearc/conform.nvim"},"conform.nvim")," ",(0,o.kt)("em",{parentName:"h2"},"(optional)")),(0,o.kt)(l.Z,{mdxType:"Tabs"},(0,o.kt)(r.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-lua"},'opts = function(_, opts)\n opts.formatters.sqlfluff = {\n args = { "format", "--dialect=ansi", "-" },\n }\n for _, ft in ipairs(sql_ft) do\n opts.formatters_by_ft[ft] = opts.formatters_by_ft[ft] or {}\n table.insert(opts.formatters_by_ft[ft], "sqlfluff")\n end\nend\n'))),(0,o.kt)(r.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "stevearc/conform.nvim",\n optional = true,\n opts = function(_, opts)\n opts.formatters.sqlfluff = {\n args = { "format", "--dialect=ansi", "-" },\n }\n for _, ft in ipairs(sql_ft) do\n opts.formatters_by_ft[ft] = opts.formatters_by_ft[ft] or {}\n table.insert(opts.formatters_by_ft[ft], "sqlfluff")\n end\n end,\n}\n')))))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/af680c62.2d2a3597.js b/assets/js/af680c62.2d2a3597.js new file mode 100644 index 0000000000..1e50e59c32 --- /dev/null +++ b/assets/js/af680c62.2d2a3597.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklazyvim=self.webpackChunklazyvim||[]).push([[5656],{3905:(e,n,t)=>{t.d(n,{Zo:()=>c,kt:()=>b});var a=t(7294);function r(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function i(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,a)}return t}function l(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?i(Object(t),!0).forEach((function(n){r(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):i(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function o(e,n){if(null==e)return{};var t,a,r=function(e,n){if(null==e)return{};var t,a,r={},i=Object.keys(e);for(a=0;a<i.length;a++)t=i[a],n.indexOf(t)>=0||(r[t]=e[t]);return r}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a<i.length;a++)t=i[a],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(r[t]=e[t])}return r}var s=a.createContext({}),u=function(e){var n=a.useContext(s),t=n;return e&&(t="function"==typeof e?e(n):l(l({},n),e)),t},c=function(e){var n=u(e.components);return a.createElement(s.Provider,{value:n},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var n=e.children;return a.createElement(a.Fragment,{},n)}},m=a.forwardRef((function(e,n){var t=e.components,r=e.mdxType,i=e.originalType,s=e.parentName,c=o(e,["components","mdxType","originalType","parentName"]),p=u(t),m=r,b=p["".concat(s,".").concat(m)]||p[m]||d[m]||i;return t?a.createElement(b,l(l({ref:n},c),{},{components:t})):a.createElement(b,l({ref:n},c))}));function b(e,n){var t=arguments,r=n&&n.mdxType;if("string"==typeof e||r){var i=t.length,l=new Array(i);l[0]=m;var o={};for(var s in n)hasOwnProperty.call(n,s)&&(o[s]=n[s]);o.originalType=e,o[p]="string"==typeof e?e:r,l[1]=o;for(var u=2;u<i;u++)l[u]=t[u];return a.createElement.apply(null,l)}return a.createElement.apply(null,t)}m.displayName="MDXCreateElement"},5162:(e,n,t)=>{t.d(n,{Z:()=>l});var a=t(7294),r=t(6010);const i="tabItem_Ymn6";function l(e){let{children:n,hidden:t,className:l}=e;return a.createElement("div",{role:"tabpanel",className:(0,r.Z)(i,l),hidden:t},n)}},4866:(e,n,t)=>{t.d(n,{Z:()=>T});var a=t(7462),r=t(7294),i=t(6010),l=t(2466),o=t(6550),s=t(1980),u=t(7392),c=t(12);function p(e){return function(e){return r.Children.map(e,(e=>{if(!e||(0,r.isValidElement)(e)&&function(e){const{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:n,label:t,attributes:a,default:r}}=e;return{value:n,label:t,attributes:a,default:r}}))}function d(e){const{values:n,children:t}=e;return(0,r.useMemo)((()=>{const e=n??p(t);return function(e){const n=(0,u.l)(e,((e,n)=>e.value===n.value));if(n.length>0)throw new Error(`Docusaurus error: Duplicate values "${n.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[n,t])}function m(e){let{value:n,tabValues:t}=e;return t.some((e=>e.value===n))}function b(e){let{queryString:n=!1,groupId:t}=e;const a=(0,o.k6)(),i=function(e){let{queryString:n=!1,groupId:t}=e;if("string"==typeof n)return n;if(!1===n)return null;if(!0===n&&!t)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return t??null}({queryString:n,groupId:t});return[(0,s._X)(i),(0,r.useCallback)((e=>{if(!i)return;const n=new URLSearchParams(a.location.search);n.set(i,e),a.replace({...a.location,search:n.toString()})}),[i,a])]}function f(e){const{defaultValue:n,queryString:t=!1,groupId:a}=e,i=d(e),[l,o]=(0,r.useState)((()=>function(e){let{defaultValue:n,tabValues:t}=e;if(0===t.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(n){if(!m({value:n,tabValues:t}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${n}" but none of its children has the corresponding value. Available values are: ${t.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return n}const a=t.find((e=>e.default))??t[0];if(!a)throw new Error("Unexpected error: 0 tabValues");return a.value}({defaultValue:n,tabValues:i}))),[s,u]=b({queryString:t,groupId:a}),[p,f]=function(e){let{groupId:n}=e;const t=function(e){return e?`docusaurus.tab.${e}`:null}(n),[a,i]=(0,c.Nk)(t);return[a,(0,r.useCallback)((e=>{t&&i.set(e)}),[t,i])]}({groupId:a}),h=(()=>{const e=s??p;return m({value:e,tabValues:i})?e:null})();(0,r.useLayoutEffect)((()=>{h&&o(h)}),[h]);return{selectedValue:l,selectValue:(0,r.useCallback)((e=>{if(!m({value:e,tabValues:i}))throw new Error(`Can't select invalid tab value=${e}`);o(e),u(e),f(e)}),[u,f,i]),tabValues:i}}var h=t(2389);const v="tabList__CuJ",y="tabItem_LNqP";function k(e){let{className:n,block:t,selectedValue:o,selectValue:s,tabValues:u}=e;const c=[],{blockElementScrollPositionUntilNextRender:p}=(0,l.o5)(),d=e=>{const n=e.currentTarget,t=c.indexOf(n),a=u[t].value;a!==o&&(p(n),s(a))},m=e=>{let n=null;switch(e.key){case"Enter":d(e);break;case"ArrowRight":{const t=c.indexOf(e.currentTarget)+1;n=c[t]??c[0];break}case"ArrowLeft":{const t=c.indexOf(e.currentTarget)-1;n=c[t]??c[c.length-1];break}}n?.focus()};return r.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,i.Z)("tabs",{"tabs--block":t},n)},u.map((e=>{let{value:n,label:t,attributes:l}=e;return r.createElement("li",(0,a.Z)({role:"tab",tabIndex:o===n?0:-1,"aria-selected":o===n,key:n,ref:e=>c.push(e),onKeyDown:m,onClick:d},l,{className:(0,i.Z)("tabs__item",y,l?.className,{"tabs__item--active":o===n})}),t??n)})))}function g(e){let{lazy:n,children:t,selectedValue:a}=e;const i=(Array.isArray(t)?t:[t]).filter(Boolean);if(n){const e=i.find((e=>e.props.value===a));return e?(0,r.cloneElement)(e,{className:"margin-top--md"}):null}return r.createElement("div",{className:"margin-top--md"},i.map(((e,n)=>(0,r.cloneElement)(e,{key:n,hidden:e.props.value!==a}))))}function w(e){const n=f(e);return r.createElement("div",{className:(0,i.Z)("tabs-container",v)},r.createElement(k,(0,a.Z)({},e,n)),r.createElement(g,(0,a.Z)({},e,n)))}function T(e){const n=(0,h.Z)();return r.createElement(w,(0,a.Z)({key:String(n)},e))}},5022:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>s,default:()=>m,frontMatter:()=>o,metadata:()=>u,toc:()=>p});var a=t(7462),r=(t(7294),t(3905)),i=t(4866),l=t(5162);const o={},s="Mini-indentscope",u={unversionedId:"extras/ui/mini-indentscope",id:"extras/ui/mini-indentscope",title:"Mini-indentscope",description:"You can enable the extra with the :LazyExtras command.",source:"@site/docs/extras/ui/mini-indentscope.md",sourceDirName:"extras/ui",slug:"/extras/ui/mini-indentscope",permalink:"/extras/ui/mini-indentscope",draft:!1,editUrl:"https://github.com/LazyVim/lazyvim.github.io/tree/main/docs/extras/ui/mini-indentscope.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Mini Animate",permalink:"/extras/ui/mini-animate"},next:{title:"Mini Starter",permalink:"/extras/ui/mini-starter"}},c={},p=[{value:"mini.indentscope",id:"miniindentscope",level:2},{value:"snacks.nvim",id:"snacksnvim",level:2},{value:"indent-blankline.nvim <em>(optional)</em>",id:"indent-blanklinenvim-optional",level:2}],d={toc:p};function m(e){let{components:n,...t}=e;return(0,r.kt)("wrapper",(0,a.Z)({},d,t,{components:n,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"mini-indentscope"},(0,r.kt)("inlineCode",{parentName:"h1"},"Mini-indentscope")),(0,r.kt)("admonition",{type:"info"},(0,r.kt)("p",{parentName:"admonition"},"You can enable the extra with the ",(0,r.kt)("inlineCode",{parentName:"p"},":LazyExtras")," command.\nPlugins marked as optional will only be configured if they are installed.")),(0,r.kt)("p",null,"Below you can find a list of included plugins and their default settings."),(0,r.kt)("admonition",{type:"caution"},(0,r.kt)("p",{parentName:"admonition"},"You don't need to copy the default settings to your config.\nThey are only shown here for reference.")),(0,r.kt)("h2",{id:"miniindentscope"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/nvim-mini/mini.indentscope"},"mini.indentscope")),(0,r.kt)("p",null," Active indent guide and indent text objects. When you're browsing\ncode, this highlights the current level of indentation, and animates\nthe highlighting."),(0,r.kt)(i.Z,{mdxType:"Tabs"},(0,r.kt)(l.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = {\n -- symbol = "\u258f",\n symbol = "\u2502",\n options = { try_as_border = true },\n}\n'))),(0,r.kt)(l.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "nvim-mini/mini.indentscope",\n version = false, -- wait till new 0.7.0 release to put it back on semver\n event = "LazyFile",\n opts = {\n -- symbol = "\u258f",\n symbol = "\u2502",\n options = { try_as_border = true },\n },\n init = function()\n vim.api.nvim_create_autocmd("FileType", {\n pattern = {\n "Trouble",\n "alpha",\n "dashboard",\n "fzf",\n "help",\n "lazy",\n "mason",\n "neo-tree",\n "notify",\n "sidekick_terminal",\n "snacks_dashboard",\n "snacks_notif",\n "snacks_terminal",\n "snacks_win",\n "toggleterm",\n "trouble",\n },\n callback = function()\n vim.b.miniindentscope_disable = true\n end,\n })\n\n vim.api.nvim_create_autocmd("User", {\n pattern = "SnacksDashboardOpened",\n callback = function(data)\n vim.b[data.buf].miniindentscope_disable = true\n end,\n })\n end,\n}\n')))),(0,r.kt)("h2",{id:"snacksnvim"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/folke/snacks.nvim"},"snacks.nvim")),(0,r.kt)("p",null," disable snacks scroll when mini-indentscope is enabled"),(0,r.kt)(i.Z,{mdxType:"Tabs"},(0,r.kt)(l.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},"opts = {\n indent = {\n scope = { enabled = false },\n },\n}\n"))),(0,r.kt)(l.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "snacks.nvim",\n opts = {\n indent = {\n scope = { enabled = false },\n },\n },\n}\n')))),(0,r.kt)("h2",{id:"indent-blanklinenvim-optional"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/lukas-reineke/indent-blankline.nvim"},"indent-blankline.nvim")," ",(0,r.kt)("em",{parentName:"h2"},"(optional)")),(0,r.kt)("p",null," disable indent-blankline scope when mini-indentscope is enabled"),(0,r.kt)(i.Z,{mdxType:"Tabs"},(0,r.kt)(l.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},"opts = {\n scope = { enabled = false },\n}\n"))),(0,r.kt)(l.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "lukas-reineke/indent-blankline.nvim",\n optional = true,\n event = "LazyFile",\n opts = {\n scope = { enabled = false },\n },\n}\n')))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/b0d9a7a2.35dc499c.js b/assets/js/b0d9a7a2.35dc499c.js new file mode 100644 index 0000000000..b285f57bc1 --- /dev/null +++ b/assets/js/b0d9a7a2.35dc499c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklazyvim=self.webpackChunklazyvim||[]).push([[2374],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>f});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function o(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?l(Object(n),!0).forEach((function(t){r(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):l(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function i(e,t){if(null==e)return{};var n,a,r=function(e,t){if(null==e)return{};var n,a,r={},l=Object.keys(e);for(a=0;a<l.length;a++)n=l[a],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a<l.length;a++)n=l[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var u=a.createContext({}),s=function(e){var t=a.useContext(u),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},c=function(e){var t=s(e.components);return a.createElement(u.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},d=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,l=e.originalType,u=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),p=s(n),d=r,f=p["".concat(u,".").concat(d)]||p[d]||m[d]||l;return n?a.createElement(f,o(o({ref:t},c),{},{components:n})):a.createElement(f,o({ref:t},c))}));function f(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var l=n.length,o=new Array(l);o[0]=d;var i={};for(var u in t)hasOwnProperty.call(t,u)&&(i[u]=t[u]);i.originalType=e,i[p]="string"==typeof e?e:r,o[1]=i;for(var s=2;s<l;s++)o[s]=n[s];return a.createElement.apply(null,o)}return a.createElement.apply(null,n)}d.displayName="MDXCreateElement"},5162:(e,t,n)=>{n.d(t,{Z:()=>o});var a=n(7294),r=n(6010);const l="tabItem_Ymn6";function o(e){let{children:t,hidden:n,className:o}=e;return a.createElement("div",{role:"tabpanel",className:(0,r.Z)(l,o),hidden:n},t)}},4866:(e,t,n)=>{n.d(t,{Z:()=>T});var a=n(7462),r=n(7294),l=n(6010),o=n(2466),i=n(6550),u=n(1980),s=n(7392),c=n(12);function p(e){return function(e){return r.Children.map(e,(e=>{if(!e||(0,r.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:t,label:n,attributes:a,default:r}}=e;return{value:t,label:n,attributes:a,default:r}}))}function m(e){const{values:t,children:n}=e;return(0,r.useMemo)((()=>{const e=t??p(n);return function(e){const t=(0,s.l)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[t,n])}function d(e){let{value:t,tabValues:n}=e;return n.some((e=>e.value===t))}function f(e){let{queryString:t=!1,groupId:n}=e;const a=(0,i.k6)(),l=function(e){let{queryString:t=!1,groupId:n}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!n)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return n??null}({queryString:t,groupId:n});return[(0,u._X)(l),(0,r.useCallback)((e=>{if(!l)return;const t=new URLSearchParams(a.location.search);t.set(l,e),a.replace({...a.location,search:t.toString()})}),[l,a])]}function b(e){const{defaultValue:t,queryString:n=!1,groupId:a}=e,l=m(e),[o,i]=(0,r.useState)((()=>function(e){let{defaultValue:t,tabValues:n}=e;if(0===n.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(t){if(!d({value:t,tabValues:n}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${n.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const a=n.find((e=>e.default))??n[0];if(!a)throw new Error("Unexpected error: 0 tabValues");return a.value}({defaultValue:t,tabValues:l}))),[u,s]=f({queryString:n,groupId:a}),[p,b]=function(e){let{groupId:t}=e;const n=function(e){return e?`docusaurus.tab.${e}`:null}(t),[a,l]=(0,c.Nk)(n);return[a,(0,r.useCallback)((e=>{n&&l.set(e)}),[n,l])]}({groupId:a}),v=(()=>{const e=u??p;return d({value:e,tabValues:l})?e:null})();(0,r.useLayoutEffect)((()=>{v&&i(v)}),[v]);return{selectedValue:o,selectValue:(0,r.useCallback)((e=>{if(!d({value:e,tabValues:l}))throw new Error(`Can't select invalid tab value=${e}`);i(e),s(e),b(e)}),[s,b,l]),tabValues:l}}var v=n(2389);const h="tabList__CuJ",g="tabItem_LNqP";function y(e){let{className:t,block:n,selectedValue:i,selectValue:u,tabValues:s}=e;const c=[],{blockElementScrollPositionUntilNextRender:p}=(0,o.o5)(),m=e=>{const t=e.currentTarget,n=c.indexOf(t),a=s[n].value;a!==i&&(p(t),u(a))},d=e=>{let t=null;switch(e.key){case"Enter":m(e);break;case"ArrowRight":{const n=c.indexOf(e.currentTarget)+1;t=c[n]??c[0];break}case"ArrowLeft":{const n=c.indexOf(e.currentTarget)-1;t=c[n]??c[c.length-1];break}}t?.focus()};return r.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,l.Z)("tabs",{"tabs--block":n},t)},s.map((e=>{let{value:t,label:n,attributes:o}=e;return r.createElement("li",(0,a.Z)({role:"tab",tabIndex:i===t?0:-1,"aria-selected":i===t,key:t,ref:e=>c.push(e),onKeyDown:d,onClick:m},o,{className:(0,l.Z)("tabs__item",g,o?.className,{"tabs__item--active":i===t})}),n??t)})))}function k(e){let{lazy:t,children:n,selectedValue:a}=e;const l=(Array.isArray(n)?n:[n]).filter(Boolean);if(t){const e=l.find((e=>e.props.value===a));return e?(0,r.cloneElement)(e,{className:"margin-top--md"}):null}return r.createElement("div",{className:"margin-top--md"},l.map(((e,t)=>(0,r.cloneElement)(e,{key:t,hidden:e.props.value!==a}))))}function x(e){const t=b(e);return r.createElement("div",{className:(0,l.Z)("tabs-container",h)},r.createElement(y,(0,a.Z)({},e,t)),r.createElement(k,(0,a.Z)({},e,t)))}function T(e){const t=(0,v.Z)();return r.createElement(x,(0,a.Z)({key:String(t)},e))}},8330:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>u,default:()=>d,frontMatter:()=>i,metadata:()=>s,toc:()=>p});var a=n(7462),r=(n(7294),n(3905)),l=n(4866),o=n(5162);const i={},u="Nix",s={unversionedId:"extras/lang/nix",id:"extras/lang/nix",title:"Nix",description:"You can enable the extra with the :LazyExtras command.",source:"@site/docs/extras/lang/nix.md",sourceDirName:"extras/lang",slug:"/extras/lang/nix",permalink:"/extras/lang/nix",draft:!1,editUrl:"https://github.com/LazyVim/lazyvim.github.io/tree/main/docs/extras/lang/nix.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Markdown",permalink:"/extras/lang/markdown"},next:{title:"Nushell",permalink:"/extras/lang/nushell"}},c={},p=[{value:"nvim-treesitter",id:"nvim-treesitter",level:2},{value:"nvim-lspconfig",id:"nvim-lspconfig",level:2},{value:"conform.nvim <em>(optional)</em>",id:"conformnvim-optional",level:2},{value:"nvim-lint <em>(optional)</em>",id:"nvim-lint-optional",level:2}],m={toc:p};function d(e){let{components:t,...n}=e;return(0,r.kt)("wrapper",(0,a.Z)({},m,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"nix"},(0,r.kt)("inlineCode",{parentName:"h1"},"Nix")),(0,r.kt)("admonition",{type:"info"},(0,r.kt)("p",{parentName:"admonition"},"You can enable the extra with the ",(0,r.kt)("inlineCode",{parentName:"p"},":LazyExtras")," command.\nPlugins marked as optional will only be configured if they are installed.")),(0,r.kt)("p",null,"Below you can find a list of included plugins and their default settings."),(0,r.kt)("admonition",{type:"caution"},(0,r.kt)("p",{parentName:"admonition"},"You don't need to copy the default settings to your config.\nThey are only shown here for reference.")),(0,r.kt)("h2",{id:"nvim-treesitter"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/nvim-treesitter/nvim-treesitter"},"nvim-treesitter")),(0,r.kt)(l.Z,{mdxType:"Tabs"},(0,r.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = { ensure_installed = { "nix" } }\n'))),(0,r.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "nvim-treesitter/nvim-treesitter",\n opts = { ensure_installed = { "nix" } },\n}\n')))),(0,r.kt)("h2",{id:"nvim-lspconfig"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/neovim/nvim-lspconfig"},"nvim-lspconfig")),(0,r.kt)(l.Z,{mdxType:"Tabs"},(0,r.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},"opts = {\n servers = {\n nil_ls = {},\n },\n}\n"))),(0,r.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "neovim/nvim-lspconfig",\n opts = {\n servers = {\n nil_ls = {},\n },\n },\n}\n')))),(0,r.kt)("h2",{id:"conformnvim-optional"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/stevearc/conform.nvim"},"conform.nvim")," ",(0,r.kt)("em",{parentName:"h2"},"(optional)")),(0,r.kt)(l.Z,{mdxType:"Tabs"},(0,r.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = {\n formatters_by_ft = {\n nix = { "nixfmt" },\n },\n}\n'))),(0,r.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "stevearc/conform.nvim",\n optional = true,\n opts = {\n formatters_by_ft = {\n nix = { "nixfmt" },\n },\n },\n}\n')))),(0,r.kt)("h2",{id:"nvim-lint-optional"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/mfussenegger/nvim-lint"},"nvim-lint")," ",(0,r.kt)("em",{parentName:"h2"},"(optional)")),(0,r.kt)(l.Z,{mdxType:"Tabs"},(0,r.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = {\n linters_by_ft = {\n nix = { "statix" },\n },\n}\n'))),(0,r.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "mfussenegger/nvim-lint",\n optional = true,\n opts = {\n linters_by_ft = {\n nix = { "statix" },\n },\n },\n}\n')))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/b3dc818c.730974ef.js b/assets/js/b3dc818c.730974ef.js new file mode 100644 index 0000000000..844cca90f0 --- /dev/null +++ b/assets/js/b3dc818c.730974ef.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklazyvim=self.webpackChunklazyvim||[]).push([[2228],{3905:(e,n,t)=>{t.d(n,{Zo:()=>c,kt:()=>b});var a=t(7294);function r(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function o(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,a)}return t}function i(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?o(Object(t),!0).forEach((function(n){r(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):o(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function l(e,n){if(null==e)return{};var t,a,r=function(e,n){if(null==e)return{};var t,a,r={},o=Object.keys(e);for(a=0;a<o.length;a++)t=o[a],n.indexOf(t)>=0||(r[t]=e[t]);return r}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)t=o[a],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(r[t]=e[t])}return r}var s=a.createContext({}),p=function(e){var n=a.useContext(s),t=n;return e&&(t="function"==typeof e?e(n):i(i({},n),e)),t},c=function(e){var n=p(e.components);return a.createElement(s.Provider,{value:n},e.children)},u="mdxType",m={inlineCode:"code",wrapper:function(e){var n=e.children;return a.createElement(a.Fragment,{},n)}},d=a.forwardRef((function(e,n){var t=e.components,r=e.mdxType,o=e.originalType,s=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),u=p(t),d=r,b=u["".concat(s,".").concat(d)]||u[d]||m[d]||o;return t?a.createElement(b,i(i({ref:n},c),{},{components:t})):a.createElement(b,i({ref:n},c))}));function b(e,n){var t=arguments,r=n&&n.mdxType;if("string"==typeof e||r){var o=t.length,i=new Array(o);i[0]=d;var l={};for(var s in n)hasOwnProperty.call(n,s)&&(l[s]=n[s]);l.originalType=e,l[u]="string"==typeof e?e:r,i[1]=l;for(var p=2;p<o;p++)i[p]=t[p];return a.createElement.apply(null,i)}return a.createElement.apply(null,t)}d.displayName="MDXCreateElement"},5162:(e,n,t)=>{t.d(n,{Z:()=>i});var a=t(7294),r=t(6010);const o="tabItem_Ymn6";function i(e){let{children:n,hidden:t,className:i}=e;return a.createElement("div",{role:"tabpanel",className:(0,r.Z)(o,i),hidden:t},n)}},4866:(e,n,t)=>{t.d(n,{Z:()=>x});var a=t(7462),r=t(7294),o=t(6010),i=t(2466),l=t(6550),s=t(1980),p=t(7392),c=t(12);function u(e){return function(e){return r.Children.map(e,(e=>{if(!e||(0,r.isValidElement)(e)&&function(e){const{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:n,label:t,attributes:a,default:r}}=e;return{value:n,label:t,attributes:a,default:r}}))}function m(e){const{values:n,children:t}=e;return(0,r.useMemo)((()=>{const e=n??u(t);return function(e){const n=(0,p.l)(e,((e,n)=>e.value===n.value));if(n.length>0)throw new Error(`Docusaurus error: Duplicate values "${n.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[n,t])}function d(e){let{value:n,tabValues:t}=e;return t.some((e=>e.value===n))}function b(e){let{queryString:n=!1,groupId:t}=e;const a=(0,l.k6)(),o=function(e){let{queryString:n=!1,groupId:t}=e;if("string"==typeof n)return n;if(!1===n)return null;if(!0===n&&!t)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return t??null}({queryString:n,groupId:t});return[(0,s._X)(o),(0,r.useCallback)((e=>{if(!o)return;const n=new URLSearchParams(a.location.search);n.set(o,e),a.replace({...a.location,search:n.toString()})}),[o,a])]}function f(e){const{defaultValue:n,queryString:t=!1,groupId:a}=e,o=m(e),[i,l]=(0,r.useState)((()=>function(e){let{defaultValue:n,tabValues:t}=e;if(0===t.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(n){if(!d({value:n,tabValues:t}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${n}" but none of its children has the corresponding value. Available values are: ${t.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return n}const a=t.find((e=>e.default))??t[0];if(!a)throw new Error("Unexpected error: 0 tabValues");return a.value}({defaultValue:n,tabValues:o}))),[s,p]=b({queryString:t,groupId:a}),[u,f]=function(e){let{groupId:n}=e;const t=function(e){return e?`docusaurus.tab.${e}`:null}(n),[a,o]=(0,c.Nk)(t);return[a,(0,r.useCallback)((e=>{t&&o.set(e)}),[t,o])]}({groupId:a}),k=(()=>{const e=s??u;return d({value:e,tabValues:o})?e:null})();(0,r.useLayoutEffect)((()=>{k&&l(k)}),[k]);return{selectedValue:i,selectValue:(0,r.useCallback)((e=>{if(!d({value:e,tabValues:o}))throw new Error(`Can't select invalid tab value=${e}`);l(e),p(e),f(e)}),[p,f,o]),tabValues:o}}var k=t(2389);const h="tabList__CuJ",g="tabItem_LNqP";function y(e){let{className:n,block:t,selectedValue:l,selectValue:s,tabValues:p}=e;const c=[],{blockElementScrollPositionUntilNextRender:u}=(0,i.o5)(),m=e=>{const n=e.currentTarget,t=c.indexOf(n),a=p[t].value;a!==l&&(u(n),s(a))},d=e=>{let n=null;switch(e.key){case"Enter":m(e);break;case"ArrowRight":{const t=c.indexOf(e.currentTarget)+1;n=c[t]??c[0];break}case"ArrowLeft":{const t=c.indexOf(e.currentTarget)-1;n=c[t]??c[c.length-1];break}}n?.focus()};return r.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,o.Z)("tabs",{"tabs--block":t},n)},p.map((e=>{let{value:n,label:t,attributes:i}=e;return r.createElement("li",(0,a.Z)({role:"tab",tabIndex:l===n?0:-1,"aria-selected":l===n,key:n,ref:e=>c.push(e),onKeyDown:d,onClick:m},i,{className:(0,o.Z)("tabs__item",g,i?.className,{"tabs__item--active":l===n})}),t??n)})))}function v(e){let{lazy:n,children:t,selectedValue:a}=e;const o=(Array.isArray(t)?t:[t]).filter(Boolean);if(n){const e=o.find((e=>e.props.value===a));return e?(0,r.cloneElement)(e,{className:"margin-top--md"}):null}return r.createElement("div",{className:"margin-top--md"},o.map(((e,n)=>(0,r.cloneElement)(e,{key:n,hidden:e.props.value!==a}))))}function _(e){const n=f(e);return r.createElement("div",{className:(0,o.Z)("tabs-container",h)},r.createElement(y,(0,a.Z)({},e,n)),r.createElement(v,(0,a.Z)({},e,n)))}function x(e){const n=(0,k.Z)();return r.createElement(_,(0,a.Z)({key:String(n)},e))}},5478:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>s,default:()=>d,frontMatter:()=>l,metadata:()=>p,toc:()=>u});var a=t(7462),r=(t(7294),t(3905)),o=t(4866),i=t(5162);const l={},s="Blink",p={unversionedId:"extras/coding/blink",id:"extras/coding/blink",title:"Blink",description:"You can enable the extra with the :LazyExtras command.",source:"@site/docs/extras/coding/blink.md",sourceDirName:"extras/coding",slug:"/extras/coding/blink",permalink:"/extras/coding/blink",draft:!1,editUrl:"https://github.com/LazyVim/lazyvim.github.io/tree/main/docs/extras/coding/blink.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Tabnine",permalink:"/extras/ai/tabnine"},next:{title:"Luasnip",permalink:"/extras/coding/luasnip"}},c={},u=[{value:"Options",id:"options",level:3},{value:"blink.cmp",id:"blinkcmp",level:2},{value:"friendly-snippets",id:"friendly-snippets",level:2},{value:"blink.cmp",id:"blinkcmp-1",level:2},{value:"blink.cmp",id:"blinkcmp-2",level:2},{value:"blink.compat <em>(optional)</em>",id:"blinkcompat-optional",level:2},{value:"catppuccin <em>(optional)</em>",id:"catppuccin-optional",level:2}],m={toc:u};function d(e){let{components:n,...t}=e;return(0,r.kt)("wrapper",(0,a.Z)({},m,t,{components:n,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"blink"},(0,r.kt)("inlineCode",{parentName:"h1"},"Blink")),(0,r.kt)("admonition",{type:"info"},(0,r.kt)("p",{parentName:"admonition"},"You can enable the extra with the ",(0,r.kt)("inlineCode",{parentName:"p"},":LazyExtras")," command.\nPlugins marked as optional will only be configured if they are installed.")),(0,r.kt)("h3",{id:"options"},"Options"),(0,r.kt)("p",null,"Additional options for this extra can be configured in your ",(0,r.kt)("a",{parentName:"p",href:"/configuration/general#options"},"lua/config/options.lua")," file:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua",metastring:'title="lua/config/options.lua"',title:'"lua/config/options.lua"'},"-- set to `true` to follow the main branch\n-- you need to have a working rust toolchain to build the plugin\n-- in this case.\nvim.g.lazyvim_blink_main = false\n")),(0,r.kt)("p",null,"Below you can find a list of included plugins and their default settings."),(0,r.kt)("admonition",{type:"caution"},(0,r.kt)("p",{parentName:"admonition"},"You don't need to copy the default settings to your config.\nThey are only shown here for reference.")),(0,r.kt)("h2",{id:"blinkcmp"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/saghen/blink.cmp"},"blink.cmp")),(0,r.kt)(o.Z,{mdxType:"Tabs"},(0,r.kt)(i.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = {\n snippets = {\n preset = "default",\n },\n\n appearance = {\n -- sets the fallback highlight groups to nvim-cmp\'s highlight groups\n -- useful for when your theme doesn\'t support blink.cmp\n -- will be removed in a future release, assuming themes add support\n use_nvim_cmp_as_default = false,\n -- set to \'mono\' for \'Nerd Font Mono\' or \'normal\' for \'Nerd Font\'\n -- adjusts spacing to ensure icons are aligned\n nerd_font_variant = "mono",\n },\n\n completion = {\n accept = {\n -- experimental auto-brackets support\n auto_brackets = {\n enabled = true,\n },\n },\n menu = {\n draw = {\n treesitter = { "lsp" },\n },\n },\n documentation = {\n auto_show = true,\n auto_show_delay_ms = 200,\n },\n ghost_text = {\n enabled = vim.g.ai_cmp,\n },\n },\n\n -- experimental signature help support\n -- signature = { enabled = true },\n\n sources = {\n -- adding any nvim-cmp sources here will enable them\n -- with blink.compat\n compat = {},\n default = { "lsp", "path", "snippets", "buffer" },\n },\n\n cmdline = {\n enabled = true,\n keymap = {\n preset = "cmdline",\n ["<Right>"] = false,\n ["<Left>"] = false,\n },\n completion = {\n list = { selection = { preselect = false } },\n menu = {\n auto_show = function(ctx)\n return vim.fn.getcmdtype() == ":"\n end,\n },\n ghost_text = { enabled = true },\n },\n },\n\n keymap = {\n preset = "enter",\n ["<C-y>"] = { "select_and_accept" },\n },\n}\n'))),(0,r.kt)(i.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "saghen/blink.cmp",\n version = not vim.g.lazyvim_blink_main and "*",\n build = vim.g.lazyvim_blink_main and "cargo build --release",\n opts_extend = {\n "sources.completion.enabled_providers",\n "sources.compat",\n "sources.default",\n },\n dependencies = {\n "rafamadriz/friendly-snippets",\n -- add blink.compat to dependencies\n {\n "saghen/blink.compat",\n optional = true, -- make optional so it\'s only enabled if any extras need it\n opts = {},\n version = not vim.g.lazyvim_blink_main and "*",\n },\n },\n event = { "InsertEnter", "CmdlineEnter" },\n\n ---@module \'blink.cmp\'\n ---@type blink.cmp.Config\n opts = {\n snippets = {\n preset = "default",\n },\n\n appearance = {\n -- sets the fallback highlight groups to nvim-cmp\'s highlight groups\n -- useful for when your theme doesn\'t support blink.cmp\n -- will be removed in a future release, assuming themes add support\n use_nvim_cmp_as_default = false,\n -- set to \'mono\' for \'Nerd Font Mono\' or \'normal\' for \'Nerd Font\'\n -- adjusts spacing to ensure icons are aligned\n nerd_font_variant = "mono",\n },\n\n completion = {\n accept = {\n -- experimental auto-brackets support\n auto_brackets = {\n enabled = true,\n },\n },\n menu = {\n draw = {\n treesitter = { "lsp" },\n },\n },\n documentation = {\n auto_show = true,\n auto_show_delay_ms = 200,\n },\n ghost_text = {\n enabled = vim.g.ai_cmp,\n },\n },\n\n -- experimental signature help support\n -- signature = { enabled = true },\n\n sources = {\n -- adding any nvim-cmp sources here will enable them\n -- with blink.compat\n compat = {},\n default = { "lsp", "path", "snippets", "buffer" },\n },\n\n cmdline = {\n enabled = true,\n keymap = {\n preset = "cmdline",\n ["<Right>"] = false,\n ["<Left>"] = false,\n },\n completion = {\n list = { selection = { preselect = false } },\n menu = {\n auto_show = function(ctx)\n return vim.fn.getcmdtype() == ":"\n end,\n },\n ghost_text = { enabled = true },\n },\n },\n\n keymap = {\n preset = "enter",\n ["<C-y>"] = { "select_and_accept" },\n },\n },\n ---@param opts blink.cmp.Config | { sources: { compat: string[] } }\n config = function(_, opts)\n if opts.snippets and opts.snippets.preset == "default" then\n opts.snippets.expand = LazyVim.cmp.expand\n end\n -- setup compat sources\n local enabled = opts.sources.default\n for _, source in ipairs(opts.sources.compat or {}) do\n opts.sources.providers[source] = vim.tbl_deep_extend(\n "force",\n { name = source, module = "blink.compat.source" },\n opts.sources.providers[source] or {}\n )\n if type(enabled) == "table" and not vim.tbl_contains(enabled, source) then\n table.insert(enabled, source)\n end\n end\n\n -- add ai_accept to <Tab> key\n if not opts.keymap["<Tab>"] then\n if opts.keymap.preset == "super-tab" then -- super-tab\n opts.keymap["<Tab>"] = {\n require("blink.cmp.keymap.presets").get("super-tab")["<Tab>"][1],\n LazyVim.cmp.map({ "snippet_forward", "ai_nes", "ai_accept" }),\n "fallback",\n }\n else -- other presets\n opts.keymap["<Tab>"] = {\n LazyVim.cmp.map({ "snippet_forward", "ai_nes", "ai_accept" }),\n "fallback",\n }\n end\n end\n\n -- Unset custom prop to pass blink.cmp validation\n opts.sources.compat = nil\n\n -- check if we need to override symbol kinds\n for _, provider in pairs(opts.sources.providers or {}) do\n ---@cast provider blink.cmp.SourceProviderConfig|{kind?:string}\n if provider.kind then\n local CompletionItemKind = require("blink.cmp.types").CompletionItemKind\n local kind_idx = #CompletionItemKind + 1\n\n CompletionItemKind[kind_idx] = provider.kind\n ---@diagnostic disable-next-line: no-unknown\n CompletionItemKind[provider.kind] = kind_idx\n\n ---@type fun(ctx: blink.cmp.Context, items: blink.cmp.CompletionItem[]): blink.cmp.CompletionItem[]\n local transform_items = provider.transform_items\n ---@param ctx blink.cmp.Context\n ---@param items blink.cmp.CompletionItem[]\n provider.transform_items = function(ctx, items)\n items = transform_items and transform_items(ctx, items) or items\n for _, item in ipairs(items) do\n item.kind = kind_idx or item.kind\n item.kind_icon = LazyVim.config.icons.kinds[item.kind_name] or item.kind_icon or nil\n end\n return items\n end\n\n -- Unset custom prop to pass blink.cmp validation\n provider.kind = nil\n end\n end\n\n require("blink.cmp").setup(opts)\n end,\n}\n')))),(0,r.kt)("h2",{id:"friendly-snippets"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/rafamadriz/friendly-snippets"},"friendly-snippets")),(0,r.kt)(o.Z,{mdxType:"Tabs"},(0,r.kt)(i.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},"opts = nil\n"))),(0,r.kt)(i.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "rafamadriz/friendly-snippets",\n -- add blink.compat to dependencies\n {\n "saghen/blink.compat",\n optional = true, -- make optional so it\'s only enabled if any extras need it\n opts = {},\n version = not vim.g.lazyvim_blink_main and "*",\n },\n}\n')))),(0,r.kt)("h2",{id:"blinkcmp-1"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/saghen/blink.cmp"},"blink.cmp")),(0,r.kt)("p",null," add icons"),(0,r.kt)(o.Z,{mdxType:"Tabs"},(0,r.kt)(i.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = function(_, opts)\n opts.appearance = opts.appearance or {}\n opts.appearance.kind_icons = vim.tbl_extend("force", opts.appearance.kind_icons or {}, LazyVim.config.icons.kinds)\nend\n'))),(0,r.kt)(i.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "saghen/blink.cmp",\n opts = function(_, opts)\n opts.appearance = opts.appearance or {}\n opts.appearance.kind_icons = vim.tbl_extend("force", opts.appearance.kind_icons or {}, LazyVim.config.icons.kinds)\n end,\n}\n')))),(0,r.kt)("h2",{id:"blinkcmp-2"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/saghen/blink.cmp"},"blink.cmp")),(0,r.kt)("p",null," lazydev"),(0,r.kt)(o.Z,{mdxType:"Tabs"},(0,r.kt)(i.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = {\n sources = {\n per_filetype = {\n lua = { inherit_defaults = true, "lazydev" },\n },\n providers = {\n lazydev = {\n name = "LazyDev",\n module = "lazydev.integrations.blink",\n score_offset = 100, -- show at a higher priority than lsp\n },\n },\n },\n}\n'))),(0,r.kt)(i.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "saghen/blink.cmp",\n opts = {\n sources = {\n per_filetype = {\n lua = { inherit_defaults = true, "lazydev" },\n },\n providers = {\n lazydev = {\n name = "LazyDev",\n module = "lazydev.integrations.blink",\n score_offset = 100, -- show at a higher priority than lsp\n },\n },\n },\n },\n}\n')))),(0,r.kt)("h2",{id:"blinkcompat-optional"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/saghen/blink.compat"},"blink.compat")," ",(0,r.kt)("em",{parentName:"h2"},"(optional)")),(0,r.kt)("p",null," add blink.compat to dependencies"),(0,r.kt)(o.Z,{mdxType:"Tabs"},(0,r.kt)(i.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},"opts = {}\n"))),(0,r.kt)(i.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "saghen/blink.compat",\n optional = true, -- make optional so it\'s only enabled if any extras need it\n opts = {},\n version = not vim.g.lazyvim_blink_main and "*",\n}\n')))),(0,r.kt)("h2",{id:"catppuccin-optional"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/catppuccin/nvim"},"catppuccin")," ",(0,r.kt)("em",{parentName:"h2"},"(optional)")),(0,r.kt)("p",null," catppuccin support"),(0,r.kt)(o.Z,{mdxType:"Tabs"},(0,r.kt)(i.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},"opts = {\n integrations = { blink_cmp = true },\n}\n"))),(0,r.kt)(i.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "catppuccin",\n optional = true,\n opts = {\n integrations = { blink_cmp = true },\n },\n}\n')))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/b3f422e6.b98d139f.js b/assets/js/b3f422e6.b98d139f.js new file mode 100644 index 0000000000..b0d84ef48b --- /dev/null +++ b/assets/js/b3f422e6.b98d139f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklazyvim=self.webpackChunklazyvim||[]).push([[873],{2776:s=>{s.exports=JSON.parse('{"name":"@easyops-cn/docusaurus-search-local","id":"default"}')}}]); \ No newline at end of file diff --git a/assets/js/b51453b7.61d25ca5.js b/assets/js/b51453b7.61d25ca5.js new file mode 100644 index 0000000000..a1b1e9e182 --- /dev/null +++ b/assets/js/b51453b7.61d25ca5.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklazyvim=self.webpackChunklazyvim||[]).push([[2121],{3905:(e,n,t)=>{t.d(n,{Zo:()=>u,kt:()=>p});var r=t(7294);function a(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function i(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function o(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?i(Object(t),!0).forEach((function(n){a(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):i(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function l(e,n){if(null==e)return{};var t,r,a=function(e,n){if(null==e)return{};var t,r,a={},i=Object.keys(e);for(r=0;r<i.length;r++)t=i[r],n.indexOf(t)>=0||(a[t]=e[t]);return a}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)t=i[r],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var s=r.createContext({}),c=function(e){var n=r.useContext(s),t=n;return e&&(t="function"==typeof e?e(n):o(o({},n),e)),t},u=function(e){var n=c(e.components);return r.createElement(s.Provider,{value:n},e.children)},f="mdxType",d={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},m=r.forwardRef((function(e,n){var t=e.components,a=e.mdxType,i=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),f=c(t),m=a,p=f["".concat(s,".").concat(m)]||f[m]||d[m]||i;return t?r.createElement(p,o(o({ref:n},u),{},{components:t})):r.createElement(p,o({ref:n},u))}));function p(e,n){var t=arguments,a=n&&n.mdxType;if("string"==typeof e||a){var i=t.length,o=new Array(i);o[0]=m;var l={};for(var s in n)hasOwnProperty.call(n,s)&&(l[s]=n[s]);l.originalType=e,l[f]="string"==typeof e?e:a,o[1]=l;for(var c=2;c<i;c++)o[c]=t[c];return r.createElement.apply(null,o)}return r.createElement.apply(null,t)}m.displayName="MDXCreateElement"},5162:(e,n,t)=>{t.d(n,{Z:()=>o});var r=t(7294),a=t(6010);const i="tabItem_Ymn6";function o(e){let{children:n,hidden:t,className:o}=e;return r.createElement("div",{role:"tabpanel",className:(0,a.Z)(i,o),hidden:t},n)}},4866:(e,n,t)=>{t.d(n,{Z:()=>w});var r=t(7462),a=t(7294),i=t(6010),o=t(2466),l=t(6550),s=t(1980),c=t(7392),u=t(12);function f(e){return function(e){return a.Children.map(e,(e=>{if(!e||(0,a.isValidElement)(e)&&function(e){const{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:n,label:t,attributes:r,default:a}}=e;return{value:n,label:t,attributes:r,default:a}}))}function d(e){const{values:n,children:t}=e;return(0,a.useMemo)((()=>{const e=n??f(t);return function(e){const n=(0,c.l)(e,((e,n)=>e.value===n.value));if(n.length>0)throw new Error(`Docusaurus error: Duplicate values "${n.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[n,t])}function m(e){let{value:n,tabValues:t}=e;return t.some((e=>e.value===n))}function p(e){let{queryString:n=!1,groupId:t}=e;const r=(0,l.k6)(),i=function(e){let{queryString:n=!1,groupId:t}=e;if("string"==typeof n)return n;if(!1===n)return null;if(!0===n&&!t)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return t??null}({queryString:n,groupId:t});return[(0,s._X)(i),(0,a.useCallback)((e=>{if(!i)return;const n=new URLSearchParams(r.location.search);n.set(i,e),r.replace({...r.location,search:n.toString()})}),[i,r])]}function g(e){const{defaultValue:n,queryString:t=!1,groupId:r}=e,i=d(e),[o,l]=(0,a.useState)((()=>function(e){let{defaultValue:n,tabValues:t}=e;if(0===t.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(n){if(!m({value:n,tabValues:t}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${n}" but none of its children has the corresponding value. Available values are: ${t.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return n}const r=t.find((e=>e.default))??t[0];if(!r)throw new Error("Unexpected error: 0 tabValues");return r.value}({defaultValue:n,tabValues:i}))),[s,c]=p({queryString:t,groupId:r}),[f,g]=function(e){let{groupId:n}=e;const t=function(e){return e?`docusaurus.tab.${e}`:null}(n),[r,i]=(0,u.Nk)(t);return[r,(0,a.useCallback)((e=>{t&&i.set(e)}),[t,i])]}({groupId:r}),h=(()=>{const e=s??f;return m({value:e,tabValues:i})?e:null})();(0,a.useLayoutEffect)((()=>{h&&l(h)}),[h]);return{selectedValue:o,selectValue:(0,a.useCallback)((e=>{if(!m({value:e,tabValues:i}))throw new Error(`Can't select invalid tab value=${e}`);l(e),c(e),g(e)}),[c,g,i]),tabValues:i}}var h=t(2389);const v="tabList__CuJ",b="tabItem_LNqP";function y(e){let{className:n,block:t,selectedValue:l,selectValue:s,tabValues:c}=e;const u=[],{blockElementScrollPositionUntilNextRender:f}=(0,o.o5)(),d=e=>{const n=e.currentTarget,t=u.indexOf(n),r=c[t].value;r!==l&&(f(n),s(r))},m=e=>{let n=null;switch(e.key){case"Enter":d(e);break;case"ArrowRight":{const t=u.indexOf(e.currentTarget)+1;n=u[t]??u[0];break}case"ArrowLeft":{const t=u.indexOf(e.currentTarget)-1;n=u[t]??u[u.length-1];break}}n?.focus()};return a.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,i.Z)("tabs",{"tabs--block":t},n)},c.map((e=>{let{value:n,label:t,attributes:o}=e;return a.createElement("li",(0,r.Z)({role:"tab",tabIndex:l===n?0:-1,"aria-selected":l===n,key:n,ref:e=>u.push(e),onKeyDown:m,onClick:d},o,{className:(0,i.Z)("tabs__item",b,o?.className,{"tabs__item--active":l===n})}),t??n)})))}function _(e){let{lazy:n,children:t,selectedValue:r}=e;const i=(Array.isArray(t)?t:[t]).filter(Boolean);if(n){const e=i.find((e=>e.props.value===r));return e?(0,a.cloneElement)(e,{className:"margin-top--md"}):null}return a.createElement("div",{className:"margin-top--md"},i.map(((e,n)=>(0,a.cloneElement)(e,{key:n,hidden:e.props.value!==r}))))}function z(e){const n=g(e);return a.createElement("div",{className:(0,i.Z)("tabs-container",v)},a.createElement(y,(0,r.Z)({},e,n)),a.createElement(_,(0,r.Z)({},e,n)))}function w(e){const n=(0,h.Z)();return a.createElement(z,(0,r.Z)({key:String(n)},e))}},1733:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>u,contentTitle:()=>s,default:()=>m,frontMatter:()=>l,metadata:()=>c,toc:()=>f});var r=t(7462),a=(t(7294),t(3905)),i=t(4866),o=t(5162);const l={},s="Fzf",c={unversionedId:"extras/editor/fzf",id:"extras/editor/fzf",title:"Fzf",description:"You can enable the extra with the :LazyExtras command.",source:"@site/docs/extras/editor/fzf.md",sourceDirName:"extras/editor",slug:"/extras/editor/fzf",permalink:"/extras/editor/fzf",draft:!1,editUrl:"https://github.com/LazyVim/lazyvim.github.io/tree/main/docs/extras/editor/fzf.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Dial",permalink:"/extras/editor/dial"},next:{title:"Harpoon2",permalink:"/extras/editor/harpoon2"}},u={},f=[{value:"Options",id:"options",level:3},{value:"fzf-lua",id:"fzf-lua",level:2},{value:"fzf-lua",id:"fzf-lua-1",level:2},{value:"nvim-lspconfig",id:"nvim-lspconfig",level:2},{value:"todo-comments.nvim <em>(optional)</em>",id:"todo-commentsnvim-optional",level:2}],d={toc:f};function m(e){let{components:n,...t}=e;return(0,a.kt)("wrapper",(0,r.Z)({},d,t,{components:n,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"fzf"},(0,a.kt)("inlineCode",{parentName:"h1"},"Fzf")),(0,a.kt)("admonition",{type:"info"},(0,a.kt)("p",{parentName:"admonition"},"You can enable the extra with the ",(0,a.kt)("inlineCode",{parentName:"p"},":LazyExtras")," command.\nPlugins marked as optional will only be configured if they are installed.")),(0,a.kt)("h3",{id:"options"},"Options"),(0,a.kt)("p",null,"Additional options for this extra can be configured in your ",(0,a.kt)("a",{parentName:"p",href:"/configuration/general#options"},"lua/config/options.lua")," file:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua",metastring:'title="lua/config/options.lua"',title:'"lua/config/options.lua"'},'-- In case you don\'t want to use `:LazyExtras`,\n-- then you need to set the option below.\nvim.g.lazyvim_picker = "fzf"\n')),(0,a.kt)("p",null,"Below you can find a list of included plugins and their default settings."),(0,a.kt)("admonition",{type:"caution"},(0,a.kt)("p",{parentName:"admonition"},"You don't need to copy the default settings to your config.\nThey are only shown here for reference.")),(0,a.kt)("h2",{id:"fzf-lua"},(0,a.kt)("a",{parentName:"h2",href:"https://github.com/ibhagwan/fzf-lua"},"fzf-lua")),(0,a.kt)(i.Z,{mdxType:"Tabs"},(0,a.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'opts = function(_, opts)\n local fzf = require("fzf-lua")\n local config = fzf.config\n local actions = fzf.actions\n\n -- Quickfix\n config.defaults.keymap.fzf["ctrl-q"] = "select-all+accept"\n config.defaults.keymap.fzf["ctrl-u"] = "half-page-up"\n config.defaults.keymap.fzf["ctrl-d"] = "half-page-down"\n config.defaults.keymap.fzf["ctrl-x"] = "jump"\n config.defaults.keymap.fzf["ctrl-f"] = "preview-page-down"\n config.defaults.keymap.fzf["ctrl-b"] = "preview-page-up"\n config.defaults.keymap.builtin["<c-f>"] = "preview-page-down"\n config.defaults.keymap.builtin["<c-b>"] = "preview-page-up"\n\n -- Trouble\n if LazyVim.has("trouble.nvim") then\n config.defaults.actions.files["ctrl-t"] = require("trouble.sources.fzf").actions.open\n end\n\n -- Toggle root dir / cwd\n config.defaults.actions.files["ctrl-r"] = function(_, ctx)\n local o = vim.deepcopy(ctx.__call_opts)\n o.root = o.root == false\n o.cwd = nil\n o.buf = ctx.__CTX.bufnr\n LazyVim.pick.open(ctx.__INFO.cmd, o)\n end\n config.defaults.actions.files["alt-c"] = config.defaults.actions.files["ctrl-r"]\n config.set_action_helpstr(config.defaults.actions.files["ctrl-r"], "toggle-root-dir")\n\n local img_previewer ---@type string[]?\n for _, v in ipairs({\n { cmd = "ueberzug", args = {} },\n { cmd = "chafa", args = { "{file}", "--format=symbols" } },\n { cmd = "viu", args = { "-b" } },\n }) do\n if vim.fn.executable(v.cmd) == 1 then\n img_previewer = vim.list_extend({ v.cmd }, v.args)\n break\n end\n end\n\n return {\n "default-title",\n fzf_colors = true,\n fzf_opts = {\n ["--no-scrollbar"] = true,\n },\n defaults = {\n -- formatter = "path.filename_first",\n formatter = "path.dirname_first",\n },\n previewers = {\n builtin = {\n extensions = {\n ["png"] = img_previewer,\n ["jpg"] = img_previewer,\n ["jpeg"] = img_previewer,\n ["gif"] = img_previewer,\n ["webp"] = img_previewer,\n },\n ueberzug_scaler = "fit_contain",\n },\n },\n -- Custom LazyVim option to configure vim.ui.select\n ui_select = function(fzf_opts, items)\n return vim.tbl_deep_extend("force", fzf_opts, {\n prompt = "\uf105 ",\n winopts = {\n title = " " .. vim.trim((fzf_opts.prompt or "Select"):gsub("%s*:%s*$", "")) .. " ",\n title_pos = "center",\n },\n }, fzf_opts.kind == "codeaction" and {\n winopts = {\n layout = "vertical",\n -- height is number of items minus 15 lines for the preview, with a max of 80% screen height\n height = math.floor(math.min(vim.o.lines * 0.8 - 16, #items + 4) + 0.5) + 16,\n width = 0.5,\n preview = not vim.tbl_isempty(vim.lsp.get_clients({ bufnr = 0, name = "vtsls" })) and {\n layout = "vertical",\n vertical = "down:15,border-top",\n hidden = "hidden",\n } or {\n layout = "vertical",\n vertical = "down:15,border-top",\n },\n },\n } or {\n winopts = {\n width = 0.5,\n -- height is number of items, with a max of 80% screen height\n height = math.floor(math.min(vim.o.lines * 0.8, #items + 4) + 0.5),\n },\n })\n end,\n winopts = {\n width = 0.8,\n height = 0.8,\n row = 0.5,\n col = 0.5,\n preview = {\n scrollchars = { "\u2503", "" },\n },\n },\n files = {\n cwd_prompt = false,\n actions = {\n ["alt-i"] = { actions.toggle_ignore },\n ["alt-h"] = { actions.toggle_hidden },\n },\n },\n grep = {\n actions = {\n ["alt-i"] = { actions.toggle_ignore },\n ["alt-h"] = { actions.toggle_hidden },\n },\n },\n lsp = {\n symbols = {\n symbol_hl = function(s)\n return "TroubleIcon" .. s\n end,\n symbol_fmt = function(s)\n return s:lower() .. "\\t"\n end,\n child_prefix = false,\n },\n code_actions = {\n previewer = vim.fn.executable("delta") == 1 and "codeaction_native" or nil,\n },\n },\n }\nend\n'))),(0,a.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "ibhagwan/fzf-lua",\n cmd = "FzfLua",\n opts = function(_, opts)\n local fzf = require("fzf-lua")\n local config = fzf.config\n local actions = fzf.actions\n\n -- Quickfix\n config.defaults.keymap.fzf["ctrl-q"] = "select-all+accept"\n config.defaults.keymap.fzf["ctrl-u"] = "half-page-up"\n config.defaults.keymap.fzf["ctrl-d"] = "half-page-down"\n config.defaults.keymap.fzf["ctrl-x"] = "jump"\n config.defaults.keymap.fzf["ctrl-f"] = "preview-page-down"\n config.defaults.keymap.fzf["ctrl-b"] = "preview-page-up"\n config.defaults.keymap.builtin["<c-f>"] = "preview-page-down"\n config.defaults.keymap.builtin["<c-b>"] = "preview-page-up"\n\n -- Trouble\n if LazyVim.has("trouble.nvim") then\n config.defaults.actions.files["ctrl-t"] = require("trouble.sources.fzf").actions.open\n end\n\n -- Toggle root dir / cwd\n config.defaults.actions.files["ctrl-r"] = function(_, ctx)\n local o = vim.deepcopy(ctx.__call_opts)\n o.root = o.root == false\n o.cwd = nil\n o.buf = ctx.__CTX.bufnr\n LazyVim.pick.open(ctx.__INFO.cmd, o)\n end\n config.defaults.actions.files["alt-c"] = config.defaults.actions.files["ctrl-r"]\n config.set_action_helpstr(config.defaults.actions.files["ctrl-r"], "toggle-root-dir")\n\n local img_previewer ---@type string[]?\n for _, v in ipairs({\n { cmd = "ueberzug", args = {} },\n { cmd = "chafa", args = { "{file}", "--format=symbols" } },\n { cmd = "viu", args = { "-b" } },\n }) do\n if vim.fn.executable(v.cmd) == 1 then\n img_previewer = vim.list_extend({ v.cmd }, v.args)\n break\n end\n end\n\n return {\n "default-title",\n fzf_colors = true,\n fzf_opts = {\n ["--no-scrollbar"] = true,\n },\n defaults = {\n -- formatter = "path.filename_first",\n formatter = "path.dirname_first",\n },\n previewers = {\n builtin = {\n extensions = {\n ["png"] = img_previewer,\n ["jpg"] = img_previewer,\n ["jpeg"] = img_previewer,\n ["gif"] = img_previewer,\n ["webp"] = img_previewer,\n },\n ueberzug_scaler = "fit_contain",\n },\n },\n -- Custom LazyVim option to configure vim.ui.select\n ui_select = function(fzf_opts, items)\n return vim.tbl_deep_extend("force", fzf_opts, {\n prompt = "\uf105 ",\n winopts = {\n title = " " .. vim.trim((fzf_opts.prompt or "Select"):gsub("%s*:%s*$", "")) .. " ",\n title_pos = "center",\n },\n }, fzf_opts.kind == "codeaction" and {\n winopts = {\n layout = "vertical",\n -- height is number of items minus 15 lines for the preview, with a max of 80% screen height\n height = math.floor(math.min(vim.o.lines * 0.8 - 16, #items + 4) + 0.5) + 16,\n width = 0.5,\n preview = not vim.tbl_isempty(vim.lsp.get_clients({ bufnr = 0, name = "vtsls" })) and {\n layout = "vertical",\n vertical = "down:15,border-top",\n hidden = "hidden",\n } or {\n layout = "vertical",\n vertical = "down:15,border-top",\n },\n },\n } or {\n winopts = {\n width = 0.5,\n -- height is number of items, with a max of 80% screen height\n height = math.floor(math.min(vim.o.lines * 0.8, #items + 4) + 0.5),\n },\n })\n end,\n winopts = {\n width = 0.8,\n height = 0.8,\n row = 0.5,\n col = 0.5,\n preview = {\n scrollchars = { "\u2503", "" },\n },\n },\n files = {\n cwd_prompt = false,\n actions = {\n ["alt-i"] = { actions.toggle_ignore },\n ["alt-h"] = { actions.toggle_hidden },\n },\n },\n grep = {\n actions = {\n ["alt-i"] = { actions.toggle_ignore },\n ["alt-h"] = { actions.toggle_hidden },\n },\n },\n lsp = {\n symbols = {\n symbol_hl = function(s)\n return "TroubleIcon" .. s\n end,\n symbol_fmt = function(s)\n return s:lower() .. "\\t"\n end,\n child_prefix = false,\n },\n code_actions = {\n previewer = vim.fn.executable("delta") == 1 and "codeaction_native" or nil,\n },\n },\n }\n end,\n config = function(_, opts)\n if opts[1] == "default-title" then\n -- use the same prompt for all pickers for profile `default-title` and\n -- profiles that use `default-title` as base profile\n local function fix(t)\n t.prompt = t.prompt ~= nil and "\uf105 " or nil\n for _, v in pairs(t) do\n if type(v) == "table" then\n fix(v)\n end\n end\n return t\n end\n opts = vim.tbl_deep_extend("force", fix(require("fzf-lua.profiles.default-title")), opts)\n opts[1] = nil\n end\n require("fzf-lua").setup(opts)\n end,\n init = function()\n LazyVim.on_very_lazy(function()\n vim.ui.select = function(...)\n require("lazy").load({ plugins = { "fzf-lua" } })\n local opts = LazyVim.opts("fzf-lua") or {}\n require("fzf-lua").register_ui_select(opts.ui_select or nil)\n return vim.ui.select(...)\n end\n end)\n end,\n keys = {\n { "<c-j>", "<c-j>", ft = "fzf", mode = "t", nowait = true },\n { "<c-k>", "<c-k>", ft = "fzf", mode = "t", nowait = true },\n {\n "<leader>,",\n "<cmd>FzfLua buffers sort_mru=true sort_lastused=true<cr>",\n desc = "Switch Buffer",\n },\n { "<leader>/", LazyVim.pick("live_grep"), desc = "Grep (Root Dir)" },\n { "<leader>:", "<cmd>FzfLua command_history<cr>", desc = "Command History" },\n { "<leader><space>", LazyVim.pick("files"), desc = "Find Files (Root Dir)" },\n -- find\n { "<leader>fb", "<cmd>FzfLua buffers sort_mru=true sort_lastused=true<cr>", desc = "Buffers" },\n { "<leader>fB", "<cmd>FzfLua buffers<cr>", desc = "Buffers (all)" },\n { "<leader>fc", LazyVim.pick.config_files(), desc = "Find Config File" },\n { "<leader>ff", LazyVim.pick("files"), desc = "Find Files (Root Dir)" },\n { "<leader>fF", LazyVim.pick("files", { root = false }), desc = "Find Files (cwd)" },\n { "<leader>fg", "<cmd>FzfLua git_files<cr>", desc = "Find Files (git-files)" },\n { "<leader>fr", "<cmd>FzfLua oldfiles<cr>", desc = "Recent" },\n { "<leader>fR", LazyVim.pick("oldfiles", { cwd = vim.uv.cwd() }), desc = "Recent (cwd)" },\n -- git\n { "<leader>gc", "<cmd>FzfLua git_commits<CR>", desc = "Commits" },\n { "<leader>gd", "<cmd>FzfLua git_diff<cr>", desc = "Git Diff (hunks)" },\n { "<leader>gl", "<cmd>FzfLua git_commits<CR>", desc = "Commits" },\n { "<leader>gs", "<cmd>FzfLua git_status<CR>", desc = "Status" },\n { "<leader>gS", "<cmd>FzfLua git_stash<cr>", desc = "Git Stash" },\n -- search\n { \'<leader>s"\', "<cmd>FzfLua registers<cr>", desc = "Registers" },\n { "<leader>s/", "<cmd>FzfLua search_history<cr>", desc = "Search History" },\n { "<leader>sa", "<cmd>FzfLua autocmds<cr>", desc = "Auto Commands" },\n { "<leader>sb", "<cmd>FzfLua lines<cr>", desc = "Buffer Lines" },\n { "<leader>sc", "<cmd>FzfLua command_history<cr>", desc = "Command History" },\n { "<leader>sC", "<cmd>FzfLua commands<cr>", desc = "Commands" },\n { "<leader>sd", "<cmd>FzfLua diagnostics_workspace<cr>", desc = "Diagnostics" },\n { "<leader>sD", "<cmd>FzfLua diagnostics_document<cr>", desc = "Buffer Diagnostics" },\n { "<leader>sg", LazyVim.pick("live_grep"), desc = "Grep (Root Dir)" },\n { "<leader>sG", LazyVim.pick("live_grep", { root = false }), desc = "Grep (cwd)" },\n { "<leader>sh", "<cmd>FzfLua help_tags<cr>", desc = "Help Pages" },\n { "<leader>sH", "<cmd>FzfLua highlights<cr>", desc = "Search Highlight Groups" },\n { "<leader>sj", "<cmd>FzfLua jumps<cr>", desc = "Jumplist" },\n { "<leader>sk", "<cmd>FzfLua keymaps<cr>", desc = "Key Maps" },\n { "<leader>sl", "<cmd>FzfLua loclist<cr>", desc = "Location List" },\n { "<leader>sM", "<cmd>FzfLua man_pages<cr>", desc = "Man Pages" },\n { "<leader>sm", "<cmd>FzfLua marks<cr>", desc = "Jump to Mark" },\n { "<leader>sR", "<cmd>FzfLua resume<cr>", desc = "Resume" },\n { "<leader>sq", "<cmd>FzfLua quickfix<cr>", desc = "Quickfix List" },\n { "<leader>sw", LazyVim.pick("grep_cword"), desc = "Word (Root Dir)" },\n { "<leader>sW", LazyVim.pick("grep_cword", { root = false }), desc = "Word (cwd)" },\n { "<leader>sw", LazyVim.pick("grep_visual"), mode = "x", desc = "Selection (Root Dir)" },\n { "<leader>sW", LazyVim.pick("grep_visual", { root = false }), mode = "x", desc = "Selection (cwd)" },\n { "<leader>uC", LazyVim.pick("colorschemes"), desc = "Colorscheme with Preview" },\n {\n "<leader>ss",\n function()\n require("fzf-lua").lsp_document_symbols({\n regex_filter = symbols_filter,\n })\n end,\n desc = "Goto Symbol",\n },\n {\n "<leader>sS",\n function()\n require("fzf-lua").lsp_live_workspace_symbols({\n regex_filter = symbols_filter,\n })\n end,\n desc = "Goto Symbol (Workspace)",\n },\n },\n}\n')))),(0,a.kt)("h2",{id:"fzf-lua-1"},(0,a.kt)("a",{parentName:"h2",href:"https://github.com/ibhagwan/fzf-lua"},"fzf-lua")),(0,a.kt)(i.Z,{mdxType:"Tabs"},(0,a.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},"opts = nil\n"))),(0,a.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'{ "fzf-lua" }\n')))),(0,a.kt)("h2",{id:"nvim-lspconfig"},(0,a.kt)("a",{parentName:"h2",href:"https://github.com/neovim/nvim-lspconfig"},"nvim-lspconfig")),(0,a.kt)(i.Z,{mdxType:"Tabs"},(0,a.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'opts = function()\n local Keys = require("lazyvim.plugins.lsp.keymaps").get()\n -- stylua: ignore\n vim.list_extend(Keys, {\n { "gd", "<cmd>FzfLua lsp_definitions jump1=true ignore_current_line=true<cr>", desc = "Goto Definition", has = "definition" },\n { "gr", "<cmd>FzfLua lsp_references jump1=true ignore_current_line=true<cr>", desc = "References", nowait = true },\n { "gI", "<cmd>FzfLua lsp_implementations jump1=true ignore_current_line=true<cr>", desc = "Goto Implementation" },\n { "gy", "<cmd>FzfLua lsp_typedefs jump1=true ignore_current_line=true<cr>", desc = "Goto T[y]pe Definition" },\n })\nend\n'))),(0,a.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "neovim/nvim-lspconfig",\n opts = function()\n local Keys = require("lazyvim.plugins.lsp.keymaps").get()\n -- stylua: ignore\n vim.list_extend(Keys, {\n { "gd", "<cmd>FzfLua lsp_definitions jump1=true ignore_current_line=true<cr>", desc = "Goto Definition", has = "definition" },\n { "gr", "<cmd>FzfLua lsp_references jump1=true ignore_current_line=true<cr>", desc = "References", nowait = true },\n { "gI", "<cmd>FzfLua lsp_implementations jump1=true ignore_current_line=true<cr>", desc = "Goto Implementation" },\n { "gy", "<cmd>FzfLua lsp_typedefs jump1=true ignore_current_line=true<cr>", desc = "Goto T[y]pe Definition" },\n })\n end,\n}\n')))),(0,a.kt)("h2",{id:"todo-commentsnvim-optional"},(0,a.kt)("a",{parentName:"h2",href:"https://github.com/folke/todo-comments.nvim"},"todo-comments.nvim")," ",(0,a.kt)("em",{parentName:"h2"},"(optional)")),(0,a.kt)(i.Z,{mdxType:"Tabs"},(0,a.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},"opts = nil\n"))),(0,a.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "folke/todo-comments.nvim",\n optional = true,\n -- stylua: ignore\n keys = {\n { "<leader>st", function() require("todo-comments.fzf").todo() end, desc = "Todo" },\n { "<leader>sT", function () require("todo-comments.fzf").todo({ keywords = { "TODO", "FIX", "FIXME" } }) end, desc = "Todo/Fix/Fixme" },\n },\n}\n')))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/b844f9a6.1ee215dd.js b/assets/js/b844f9a6.1ee215dd.js new file mode 100644 index 0000000000..34bc6972a9 --- /dev/null +++ b/assets/js/b844f9a6.1ee215dd.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklazyvim=self.webpackChunklazyvim||[]).push([[5149],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>b});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function o(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?l(Object(n),!0).forEach((function(t){r(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):l(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function i(e,t){if(null==e)return{};var n,a,r=function(e,t){if(null==e)return{};var n,a,r={},l=Object.keys(e);for(a=0;a<l.length;a++)n=l[a],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a<l.length;a++)n=l[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var s=a.createContext({}),u=function(e){var t=a.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},c=function(e){var t=u(e.components);return a.createElement(s.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},d=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,l=e.originalType,s=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),p=u(n),d=r,b=p["".concat(s,".").concat(d)]||p[d]||m[d]||l;return n?a.createElement(b,o(o({ref:t},c),{},{components:n})):a.createElement(b,o({ref:t},c))}));function b(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var l=n.length,o=new Array(l);o[0]=d;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[p]="string"==typeof e?e:r,o[1]=i;for(var u=2;u<l;u++)o[u]=n[u];return a.createElement.apply(null,o)}return a.createElement.apply(null,n)}d.displayName="MDXCreateElement"},5162:(e,t,n)=>{n.d(t,{Z:()=>o});var a=n(7294),r=n(6010);const l="tabItem_Ymn6";function o(e){let{children:t,hidden:n,className:o}=e;return a.createElement("div",{role:"tabpanel",className:(0,r.Z)(l,o),hidden:n},t)}},4866:(e,t,n)=>{n.d(t,{Z:()=>w});var a=n(7462),r=n(7294),l=n(6010),o=n(2466),i=n(6550),s=n(1980),u=n(7392),c=n(12);function p(e){return function(e){return r.Children.map(e,(e=>{if(!e||(0,r.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:t,label:n,attributes:a,default:r}}=e;return{value:t,label:n,attributes:a,default:r}}))}function m(e){const{values:t,children:n}=e;return(0,r.useMemo)((()=>{const e=t??p(n);return function(e){const t=(0,u.l)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[t,n])}function d(e){let{value:t,tabValues:n}=e;return n.some((e=>e.value===t))}function b(e){let{queryString:t=!1,groupId:n}=e;const a=(0,i.k6)(),l=function(e){let{queryString:t=!1,groupId:n}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!n)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return n??null}({queryString:t,groupId:n});return[(0,s._X)(l),(0,r.useCallback)((e=>{if(!l)return;const t=new URLSearchParams(a.location.search);t.set(l,e),a.replace({...a.location,search:t.toString()})}),[l,a])]}function f(e){const{defaultValue:t,queryString:n=!1,groupId:a}=e,l=m(e),[o,i]=(0,r.useState)((()=>function(e){let{defaultValue:t,tabValues:n}=e;if(0===n.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(t){if(!d({value:t,tabValues:n}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${n.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const a=n.find((e=>e.default))??n[0];if(!a)throw new Error("Unexpected error: 0 tabValues");return a.value}({defaultValue:t,tabValues:l}))),[s,u]=b({queryString:n,groupId:a}),[p,f]=function(e){let{groupId:t}=e;const n=function(e){return e?`docusaurus.tab.${e}`:null}(t),[a,l]=(0,c.Nk)(n);return[a,(0,r.useCallback)((e=>{n&&l.set(e)}),[n,l])]}({groupId:a}),v=(()=>{const e=s??p;return d({value:e,tabValues:l})?e:null})();(0,r.useLayoutEffect)((()=>{v&&i(v)}),[v]);return{selectedValue:o,selectValue:(0,r.useCallback)((e=>{if(!d({value:e,tabValues:l}))throw new Error(`Can't select invalid tab value=${e}`);i(e),u(e),f(e)}),[u,f,l]),tabValues:l}}var v=n(2389);const g="tabList__CuJ",y="tabItem_LNqP";function h(e){let{className:t,block:n,selectedValue:i,selectValue:s,tabValues:u}=e;const c=[],{blockElementScrollPositionUntilNextRender:p}=(0,o.o5)(),m=e=>{const t=e.currentTarget,n=c.indexOf(t),a=u[n].value;a!==i&&(p(t),s(a))},d=e=>{let t=null;switch(e.key){case"Enter":m(e);break;case"ArrowRight":{const n=c.indexOf(e.currentTarget)+1;t=c[n]??c[0];break}case"ArrowLeft":{const n=c.indexOf(e.currentTarget)-1;t=c[n]??c[c.length-1];break}}t?.focus()};return r.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,l.Z)("tabs",{"tabs--block":n},t)},u.map((e=>{let{value:t,label:n,attributes:o}=e;return r.createElement("li",(0,a.Z)({role:"tab",tabIndex:i===t?0:-1,"aria-selected":i===t,key:t,ref:e=>c.push(e),onKeyDown:d,onClick:m},o,{className:(0,l.Z)("tabs__item",y,o?.className,{"tabs__item--active":i===t})}),n??t)})))}function k(e){let{lazy:t,children:n,selectedValue:a}=e;const l=(Array.isArray(n)?n:[n]).filter(Boolean);if(t){const e=l.find((e=>e.props.value===a));return e?(0,r.cloneElement)(e,{className:"margin-top--md"}):null}return r.createElement("div",{className:"margin-top--md"},l.map(((e,t)=>(0,r.cloneElement)(e,{key:t,hidden:e.props.value!==a}))))}function T(e){const t=f(e);return r.createElement("div",{className:(0,l.Z)("tabs-container",g)},r.createElement(h,(0,a.Z)({},e,t)),r.createElement(k,(0,a.Z)({},e,t)))}function w(e){const t=(0,v.Z)();return r.createElement(T,(0,a.Z)({key:String(t)},e))}},7042:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>s,default:()=>d,frontMatter:()=>i,metadata:()=>u,toc:()=>p});var a=n(7462),r=(n(7294),n(3905)),l=n(4866),o=n(5162);const i={},s="Ansible",u={unversionedId:"extras/lang/ansible",id:"extras/lang/ansible",title:"Ansible",description:"You can enable the extra with the :LazyExtras command.",source:"@site/docs/extras/lang/ansible.md",sourceDirName:"extras/lang",slug:"/extras/lang/ansible",permalink:"/extras/lang/ansible",draft:!1,editUrl:"https://github.com/LazyVim/lazyvim.github.io/tree/main/docs/extras/lang/ansible.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Angular",permalink:"/extras/lang/angular"},next:{title:"Astro",permalink:"/extras/lang/astro"}},c={},p=[{value:"mason.nvim",id:"masonnvim",level:2},{value:"nvim-lspconfig",id:"nvim-lspconfig",level:2},{value:"nvim-ansible",id:"nvim-ansible",level:2}],m={toc:p};function d(e){let{components:t,...n}=e;return(0,r.kt)("wrapper",(0,a.Z)({},m,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"ansible"},(0,r.kt)("inlineCode",{parentName:"h1"},"Ansible")),(0,r.kt)("admonition",{type:"info"},(0,r.kt)("p",{parentName:"admonition"},"You can enable the extra with the ",(0,r.kt)("inlineCode",{parentName:"p"},":LazyExtras")," command.\nPlugins marked as optional will only be configured if they are installed.")),(0,r.kt)("p",null,"Below you can find a list of included plugins and their default settings."),(0,r.kt)("admonition",{type:"caution"},(0,r.kt)("p",{parentName:"admonition"},"You don't need to copy the default settings to your config.\nThey are only shown here for reference.")),(0,r.kt)("h2",{id:"masonnvim"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/mason-org/mason.nvim"},"mason.nvim")),(0,r.kt)(l.Z,{mdxType:"Tabs"},(0,r.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = { ensure_installed = { "ansible-lint" } }\n'))),(0,r.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "mason-org/mason.nvim",\n opts = { ensure_installed = { "ansible-lint" } },\n}\n')))),(0,r.kt)("h2",{id:"nvim-lspconfig"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/neovim/nvim-lspconfig"},"nvim-lspconfig")),(0,r.kt)(l.Z,{mdxType:"Tabs"},(0,r.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},"opts = {\n servers = {\n ansiblels = {},\n },\n}\n"))),(0,r.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "neovim/nvim-lspconfig",\n opts = {\n servers = {\n ansiblels = {},\n },\n },\n}\n')))),(0,r.kt)("h2",{id:"nvim-ansible"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/mfussenegger/nvim-ansible"},"nvim-ansible")),(0,r.kt)(l.Z,{mdxType:"Tabs"},(0,r.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},"opts = nil\n"))),(0,r.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "mfussenegger/nvim-ansible",\n ft = { "yaml" },\n keys = {\n {\n "<leader>ta",\n function()\n require("ansible").run()\n end,\n ft = "yaml.ansible",\n desc = "Ansible Run Playbook/Role",\n silent = true,\n },\n },\n}\n')))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/ba3904a1.3f06a8b2.js b/assets/js/ba3904a1.3f06a8b2.js new file mode 100644 index 0000000000..8ec692f9cb --- /dev/null +++ b/assets/js/ba3904a1.3f06a8b2.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklazyvim=self.webpackChunklazyvim||[]).push([[9603],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>h});var a=n(7294);function l(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function o(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?r(Object(n),!0).forEach((function(t){l(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):r(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function s(e,t){if(null==e)return{};var n,a,l=function(e,t){if(null==e)return{};var n,a,l={},r=Object.keys(e);for(a=0;a<r.length;a++)n=r[a],t.indexOf(n)>=0||(l[n]=e[n]);return l}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a<r.length;a++)n=r[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(l[n]=e[n])}return l}var p=a.createContext({}),i=function(e){var t=a.useContext(p),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},u=function(e){var t=i(e.components);return a.createElement(p.Provider,{value:t},e.children)},c="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},d=a.forwardRef((function(e,t){var n=e.components,l=e.mdxType,r=e.originalType,p=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),c=i(n),d=l,h=c["".concat(p,".").concat(d)]||c[d]||m[d]||r;return n?a.createElement(h,o(o({ref:t},u),{},{components:n})):a.createElement(h,o({ref:t},u))}));function h(e,t){var n=arguments,l=t&&t.mdxType;if("string"==typeof e||l){var r=n.length,o=new Array(r);o[0]=d;var s={};for(var p in t)hasOwnProperty.call(t,p)&&(s[p]=t[p]);s.originalType=e,s[c]="string"==typeof e?e:l,o[1]=s;for(var i=2;i<r;i++)o[i]=n[i];return a.createElement.apply(null,o)}return a.createElement.apply(null,n)}d.displayName="MDXCreateElement"},5162:(e,t,n)=>{n.d(t,{Z:()=>o});var a=n(7294),l=n(6010);const r="tabItem_Ymn6";function o(e){let{children:t,hidden:n,className:o}=e;return a.createElement("div",{role:"tabpanel",className:(0,l.Z)(r,o),hidden:n},t)}},4866:(e,t,n)=>{n.d(t,{Z:()=>N});var a=n(7462),l=n(7294),r=n(6010),o=n(2466),s=n(6550),p=n(1980),i=n(7392),u=n(12);function c(e){return function(e){return l.Children.map(e,(e=>{if(!e||(0,l.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:t,label:n,attributes:a,default:l}}=e;return{value:t,label:n,attributes:a,default:l}}))}function m(e){const{values:t,children:n}=e;return(0,l.useMemo)((()=>{const e=t??c(n);return function(e){const t=(0,i.l)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[t,n])}function d(e){let{value:t,tabValues:n}=e;return n.some((e=>e.value===t))}function h(e){let{queryString:t=!1,groupId:n}=e;const a=(0,s.k6)(),r=function(e){let{queryString:t=!1,groupId:n}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!n)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return n??null}({queryString:t,groupId:n});return[(0,p._X)(r),(0,l.useCallback)((e=>{if(!r)return;const t=new URLSearchParams(a.location.search);t.set(r,e),a.replace({...a.location,search:t.toString()})}),[r,a])]}function b(e){const{defaultValue:t,queryString:n=!1,groupId:a}=e,r=m(e),[o,s]=(0,l.useState)((()=>function(e){let{defaultValue:t,tabValues:n}=e;if(0===n.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(t){if(!d({value:t,tabValues:n}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${n.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const a=n.find((e=>e.default))??n[0];if(!a)throw new Error("Unexpected error: 0 tabValues");return a.value}({defaultValue:t,tabValues:r}))),[p,i]=h({queryString:n,groupId:a}),[c,b]=function(e){let{groupId:t}=e;const n=function(e){return e?`docusaurus.tab.${e}`:null}(t),[a,r]=(0,u.Nk)(n);return[a,(0,l.useCallback)((e=>{n&&r.set(e)}),[n,r])]}({groupId:a}),f=(()=>{const e=p??c;return d({value:e,tabValues:r})?e:null})();(0,l.useLayoutEffect)((()=>{f&&s(f)}),[f]);return{selectedValue:o,selectValue:(0,l.useCallback)((e=>{if(!d({value:e,tabValues:r}))throw new Error(`Can't select invalid tab value=${e}`);s(e),i(e),b(e)}),[i,b,r]),tabValues:r}}var f=n(2389);const v="tabList__CuJ",g="tabItem_LNqP";function k(e){let{className:t,block:n,selectedValue:s,selectValue:p,tabValues:i}=e;const u=[],{blockElementScrollPositionUntilNextRender:c}=(0,o.o5)(),m=e=>{const t=e.currentTarget,n=u.indexOf(t),a=i[n].value;a!==s&&(c(t),p(a))},d=e=>{let t=null;switch(e.key){case"Enter":m(e);break;case"ArrowRight":{const n=u.indexOf(e.currentTarget)+1;t=u[n]??u[0];break}case"ArrowLeft":{const n=u.indexOf(e.currentTarget)-1;t=u[n]??u[u.length-1];break}}t?.focus()};return l.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,r.Z)("tabs",{"tabs--block":n},t)},i.map((e=>{let{value:t,label:n,attributes:o}=e;return l.createElement("li",(0,a.Z)({role:"tab",tabIndex:s===t?0:-1,"aria-selected":s===t,key:t,ref:e=>u.push(e),onKeyDown:d,onClick:m},o,{className:(0,r.Z)("tabs__item",g,o?.className,{"tabs__item--active":s===t})}),n??t)})))}function y(e){let{lazy:t,children:n,selectedValue:a}=e;const r=(Array.isArray(n)?n:[n]).filter(Boolean);if(t){const e=r.find((e=>e.props.value===a));return e?(0,l.cloneElement)(e,{className:"margin-top--md"}):null}return l.createElement("div",{className:"margin-top--md"},r.map(((e,t)=>(0,l.cloneElement)(e,{key:t,hidden:e.props.value!==a}))))}function T(e){const t=b(e);return l.createElement("div",{className:(0,r.Z)("tabs-container",v)},l.createElement(k,(0,a.Z)({},e,t)),l.createElement(y,(0,a.Z)({},e,t)))}function N(e){const t=(0,f.Z)();return l.createElement(T,(0,a.Z)({key:String(t)},e))}},961:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>u,contentTitle:()=>p,default:()=>d,frontMatter:()=>s,metadata:()=>i,toc:()=>c});var a=n(7462),l=(n(7294),n(3905)),r=n(4866),o=n(5162);const s={},p="PHP",i={unversionedId:"extras/lang/php",id:"extras/lang/php",title:"PHP",description:"You can enable the extra with the :LazyExtras command.",source:"@site/docs/extras/lang/php.md",sourceDirName:"extras/lang",slug:"/extras/lang/php",permalink:"/extras/lang/php",draft:!1,editUrl:"https://github.com/LazyVim/lazyvim.github.io/tree/main/docs/extras/lang/php.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Ocaml",permalink:"/extras/lang/ocaml"},next:{title:"Prisma",permalink:"/extras/lang/prisma"}},u={},c=[{value:"Options",id:"options",level:3},{value:"nvim-treesitter",id:"nvim-treesitter",level:2},{value:"nvim-lspconfig",id:"nvim-lspconfig",level:2},{value:"mason.nvim",id:"masonnvim",level:2},{value:"neotest-pest",id:"neotest-pest",level:2},{value:"neotest-phpunit",id:"neotest-phpunit",level:2},{value:"neotest-pest",id:"neotest-pest-1",level:2},{value:"nvim-dap <em>(optional)</em>",id:"nvim-dap-optional",level:2},{value:"none-ls.nvim <em>(optional)</em>",id:"none-lsnvim-optional",level:2},{value:"nvim-lint <em>(optional)</em>",id:"nvim-lint-optional",level:2},{value:"conform.nvim <em>(optional)</em>",id:"conformnvim-optional",level:2},{value:"neotest <em>(optional)</em>",id:"neotest-optional",level:2}],m={toc:c};function d(e){let{components:t,...n}=e;return(0,l.kt)("wrapper",(0,a.Z)({},m,n,{components:t,mdxType:"MDXLayout"}),(0,l.kt)("h1",{id:"php"},(0,l.kt)("inlineCode",{parentName:"h1"},"PHP")),(0,l.kt)("admonition",{type:"info"},(0,l.kt)("p",{parentName:"admonition"},"You can enable the extra with the ",(0,l.kt)("inlineCode",{parentName:"p"},":LazyExtras")," command.\nPlugins marked as optional will only be configured if they are installed.")),(0,l.kt)("h3",{id:"options"},"Options"),(0,l.kt)("p",null,"Additional options for this extra can be configured in your ",(0,l.kt)("a",{parentName:"p",href:"/configuration/general#options"},"lua/config/options.lua")," file:"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-lua",metastring:'title="lua/config/options.lua"',title:'"lua/config/options.lua"'},'-- LSP Server to use for PHP.\n-- Set to "intelephense" to use intelephense instead of phpactor.\nvim.g.lazyvim_php_lsp = "intelephense"\n')),(0,l.kt)("p",null,"Below you can find a list of included plugins and their default settings."),(0,l.kt)("admonition",{type:"caution"},(0,l.kt)("p",{parentName:"admonition"},"You don't need to copy the default settings to your config.\nThey are only shown here for reference.")),(0,l.kt)("h2",{id:"nvim-treesitter"},(0,l.kt)("a",{parentName:"h2",href:"https://github.com/nvim-treesitter/nvim-treesitter"},"nvim-treesitter")),(0,l.kt)(r.Z,{mdxType:"Tabs"},(0,l.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-lua"},'opts = { ensure_installed = { "php" } }\n'))),(0,l.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "nvim-treesitter/nvim-treesitter",\n opts = { ensure_installed = { "php" } },\n}\n')))),(0,l.kt)("h2",{id:"nvim-lspconfig"},(0,l.kt)("a",{parentName:"h2",href:"https://github.com/neovim/nvim-lspconfig"},"nvim-lspconfig")),(0,l.kt)(r.Z,{mdxType:"Tabs"},(0,l.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-lua"},'opts = {\n servers = {\n phpactor = {\n enabled = lsp == "phpactor",\n },\n intelephense = {\n enabled = lsp == "intelephense",\n },\n [lsp] = {\n enabled = true,\n },\n },\n}\n'))),(0,l.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "neovim/nvim-lspconfig",\n opts = {\n servers = {\n phpactor = {\n enabled = lsp == "phpactor",\n },\n intelephense = {\n enabled = lsp == "intelephense",\n },\n [lsp] = {\n enabled = true,\n },\n },\n },\n}\n')))),(0,l.kt)("h2",{id:"masonnvim"},(0,l.kt)("a",{parentName:"h2",href:"https://github.com/mason-org/mason.nvim"},"mason.nvim")),(0,l.kt)(r.Z,{mdxType:"Tabs"},(0,l.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-lua"},'opts = {\n ensure_installed = {\n "phpcs",\n "php-cs-fixer",\n },\n}\n'))),(0,l.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "mason-org/mason.nvim",\n opts = {\n ensure_installed = {\n "phpcs",\n "php-cs-fixer",\n },\n },\n}\n')))),(0,l.kt)("h2",{id:"neotest-pest"},(0,l.kt)("a",{parentName:"h2",href:"https://github.com/V13Axel/neotest-pest"},"neotest-pest")),(0,l.kt)(r.Z,{mdxType:"Tabs"},(0,l.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-lua"},"opts = nil\n"))),(0,l.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "V13Axel/neotest-pest",\n "olimorris/neotest-phpunit",\n}\n')))),(0,l.kt)("h2",{id:"neotest-phpunit"},(0,l.kt)("a",{parentName:"h2",href:"https://github.com/olimorris/neotest-phpunit"},"neotest-phpunit")),(0,l.kt)(r.Z,{mdxType:"Tabs"},(0,l.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-lua"},"opts = nil\n"))),(0,l.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-lua"},'"olimorris/neotest-phpunit"\n')))),(0,l.kt)("h2",{id:"neotest-pest-1"},(0,l.kt)("a",{parentName:"h2",href:"https://github.com/V13Axel/neotest-pest"},"neotest-pest")),(0,l.kt)(r.Z,{mdxType:"Tabs"},(0,l.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-lua"},"opts = nil\n"))),(0,l.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "neotest-pest",\n ["neotest-phpunit"] = {\n root_ignore_files = { "tests/Pest.php" },\n },\n}\n')))),(0,l.kt)("h2",{id:"nvim-dap-optional"},(0,l.kt)("a",{parentName:"h2",href:"https://github.com/mfussenegger/nvim-dap"},"nvim-dap")," ",(0,l.kt)("em",{parentName:"h2"},"(optional)")),(0,l.kt)(r.Z,{mdxType:"Tabs"},(0,l.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-lua"},'opts = function()\n local dap = require("dap")\n dap.adapters.php = {\n type = "executable",\n command = "php-debug-adapter",\n args = {},\n }\nend\n'))),(0,l.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "mfussenegger/nvim-dap",\n optional = true,\n opts = function()\n local dap = require("dap")\n dap.adapters.php = {\n type = "executable",\n command = "php-debug-adapter",\n args = {},\n }\n end,\n}\n')))),(0,l.kt)("h2",{id:"none-lsnvim-optional"},(0,l.kt)("a",{parentName:"h2",href:"https://github.com/nvimtools/none-ls.nvim"},"none-ls.nvim")," ",(0,l.kt)("em",{parentName:"h2"},"(optional)")),(0,l.kt)(r.Z,{mdxType:"Tabs"},(0,l.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-lua"},'opts = function(_, opts)\n local nls = require("null-ls")\n opts.sources = opts.sources or {}\n table.insert(opts.sources, nls.builtins.formatting.phpcsfixer)\n table.insert(opts.sources, nls.builtins.diagnostics.phpcs)\nend\n'))),(0,l.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "nvimtools/none-ls.nvim",\n optional = true,\n opts = function(_, opts)\n local nls = require("null-ls")\n opts.sources = opts.sources or {}\n table.insert(opts.sources, nls.builtins.formatting.phpcsfixer)\n table.insert(opts.sources, nls.builtins.diagnostics.phpcs)\n end,\n}\n')))),(0,l.kt)("h2",{id:"nvim-lint-optional"},(0,l.kt)("a",{parentName:"h2",href:"https://github.com/mfussenegger/nvim-lint"},"nvim-lint")," ",(0,l.kt)("em",{parentName:"h2"},"(optional)")),(0,l.kt)(r.Z,{mdxType:"Tabs"},(0,l.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-lua"},'opts = {\n linters_by_ft = {\n php = { "phpcs" },\n },\n}\n'))),(0,l.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "mfussenegger/nvim-lint",\n optional = true,\n opts = {\n linters_by_ft = {\n php = { "phpcs" },\n },\n },\n}\n')))),(0,l.kt)("h2",{id:"conformnvim-optional"},(0,l.kt)("a",{parentName:"h2",href:"https://github.com/stevearc/conform.nvim"},"conform.nvim")," ",(0,l.kt)("em",{parentName:"h2"},"(optional)")),(0,l.kt)(r.Z,{mdxType:"Tabs"},(0,l.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-lua"},'opts = {\n formatters_by_ft = {\n php = { "php_cs_fixer" },\n },\n}\n'))),(0,l.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "stevearc/conform.nvim",\n optional = true,\n opts = {\n formatters_by_ft = {\n php = { "php_cs_fixer" },\n },\n },\n}\n')))),(0,l.kt)("h2",{id:"neotest-optional"},(0,l.kt)("a",{parentName:"h2",href:"https://github.com/nvim-neotest/neotest"},"neotest")," ",(0,l.kt)("em",{parentName:"h2"},"(optional)")),(0,l.kt)(r.Z,{mdxType:"Tabs"},(0,l.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-lua"},'opts = {\n adapters = {\n "neotest-pest",\n ["neotest-phpunit"] = {\n root_ignore_files = { "tests/Pest.php" },\n },\n },\n}\n'))),(0,l.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "nvim-neotest/neotest",\n optional = true,\n dependencies = {\n "V13Axel/neotest-pest",\n "olimorris/neotest-phpunit",\n },\n opts = {\n adapters = {\n "neotest-pest",\n ["neotest-phpunit"] = {\n root_ignore_files = { "tests/Pest.php" },\n },\n },\n },\n}\n')))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/bb9c283f.4625ad6c.js b/assets/js/bb9c283f.4625ad6c.js new file mode 100644 index 0000000000..1fd586c9db --- /dev/null +++ b/assets/js/bb9c283f.4625ad6c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklazyvim=self.webpackChunklazyvim||[]).push([[7615],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>f});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?l(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):l(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function u(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},l=Object.keys(e);for(r=0;r<l.length;r++)n=l[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r<l.length;r++)n=l[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var i=r.createContext({}),s=function(e){var t=r.useContext(i),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},c=function(e){var t=s(e.components);return r.createElement(i.Provider,{value:t},e.children)},m="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,l=e.originalType,i=e.parentName,c=u(e,["components","mdxType","originalType","parentName"]),m=s(n),d=a,f=m["".concat(i,".").concat(d)]||m[d]||p[d]||l;return n?r.createElement(f,o(o({ref:t},c),{},{components:n})):r.createElement(f,o({ref:t},c))}));function f(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var l=n.length,o=new Array(l);o[0]=d;var u={};for(var i in t)hasOwnProperty.call(t,i)&&(u[i]=t[i]);u.originalType=e,u[m]="string"==typeof e?e:a,o[1]=u;for(var s=2;s<l;s++)o[s]=n[s];return r.createElement.apply(null,o)}return r.createElement.apply(null,n)}d.displayName="MDXCreateElement"},5162:(e,t,n)=>{n.d(t,{Z:()=>o});var r=n(7294),a=n(6010);const l="tabItem_Ymn6";function o(e){let{children:t,hidden:n,className:o}=e;return r.createElement("div",{role:"tabpanel",className:(0,a.Z)(l,o),hidden:n},t)}},4866:(e,t,n)=>{n.d(t,{Z:()=>w});var r=n(7462),a=n(7294),l=n(6010),o=n(2466),u=n(6550),i=n(1980),s=n(7392),c=n(12);function m(e){return function(e){return a.Children.map(e,(e=>{if(!e||(0,a.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:t,label:n,attributes:r,default:a}}=e;return{value:t,label:n,attributes:r,default:a}}))}function p(e){const{values:t,children:n}=e;return(0,a.useMemo)((()=>{const e=t??m(n);return function(e){const t=(0,s.l)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[t,n])}function d(e){let{value:t,tabValues:n}=e;return n.some((e=>e.value===t))}function f(e){let{queryString:t=!1,groupId:n}=e;const r=(0,u.k6)(),l=function(e){let{queryString:t=!1,groupId:n}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!n)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return n??null}({queryString:t,groupId:n});return[(0,i._X)(l),(0,a.useCallback)((e=>{if(!l)return;const t=new URLSearchParams(r.location.search);t.set(l,e),r.replace({...r.location,search:t.toString()})}),[l,r])]}function b(e){const{defaultValue:t,queryString:n=!1,groupId:r}=e,l=p(e),[o,u]=(0,a.useState)((()=>function(e){let{defaultValue:t,tabValues:n}=e;if(0===n.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(t){if(!d({value:t,tabValues:n}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${n.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const r=n.find((e=>e.default))??n[0];if(!r)throw new Error("Unexpected error: 0 tabValues");return r.value}({defaultValue:t,tabValues:l}))),[i,s]=f({queryString:n,groupId:r}),[m,b]=function(e){let{groupId:t}=e;const n=function(e){return e?`docusaurus.tab.${e}`:null}(t),[r,l]=(0,c.Nk)(n);return[r,(0,a.useCallback)((e=>{n&&l.set(e)}),[n,l])]}({groupId:r}),g=(()=>{const e=i??m;return d({value:e,tabValues:l})?e:null})();(0,a.useLayoutEffect)((()=>{g&&u(g)}),[g]);return{selectedValue:o,selectValue:(0,a.useCallback)((e=>{if(!d({value:e,tabValues:l}))throw new Error(`Can't select invalid tab value=${e}`);u(e),s(e),b(e)}),[s,b,l]),tabValues:l}}var g=n(2389);const v="tabList__CuJ",h="tabItem_LNqP";function y(e){let{className:t,block:n,selectedValue:u,selectValue:i,tabValues:s}=e;const c=[],{blockElementScrollPositionUntilNextRender:m}=(0,o.o5)(),p=e=>{const t=e.currentTarget,n=c.indexOf(t),r=s[n].value;r!==u&&(m(t),i(r))},d=e=>{let t=null;switch(e.key){case"Enter":p(e);break;case"ArrowRight":{const n=c.indexOf(e.currentTarget)+1;t=c[n]??c[0];break}case"ArrowLeft":{const n=c.indexOf(e.currentTarget)-1;t=c[n]??c[c.length-1];break}}t?.focus()};return a.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,l.Z)("tabs",{"tabs--block":n},t)},s.map((e=>{let{value:t,label:n,attributes:o}=e;return a.createElement("li",(0,r.Z)({role:"tab",tabIndex:u===t?0:-1,"aria-selected":u===t,key:t,ref:e=>c.push(e),onKeyDown:d,onClick:p},o,{className:(0,l.Z)("tabs__item",h,o?.className,{"tabs__item--active":u===t})}),n??t)})))}function k(e){let{lazy:t,children:n,selectedValue:r}=e;const l=(Array.isArray(n)?n:[n]).filter(Boolean);if(t){const e=l.find((e=>e.props.value===r));return e?(0,a.cloneElement)(e,{className:"margin-top--md"}):null}return a.createElement("div",{className:"margin-top--md"},l.map(((e,t)=>(0,a.cloneElement)(e,{key:t,hidden:e.props.value!==r}))))}function T(e){const t=b(e);return a.createElement("div",{className:(0,l.Z)("tabs-container",v)},a.createElement(y,(0,r.Z)({},e,t)),a.createElement(k,(0,r.Z)({},e,t)))}function w(e){const t=(0,g.Z)();return a.createElement(T,(0,r.Z)({key:String(t)},e))}},8634:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>d,frontMatter:()=>u,metadata:()=>s,toc:()=>m});var r=n(7462),a=(n(7294),n(3905)),l=n(4866),o=n(5162);const u={},i="Gleam",s={unversionedId:"extras/lang/gleam",id:"extras/lang/gleam",title:"Gleam",description:"You can enable the extra with the :LazyExtras command.",source:"@site/docs/extras/lang/gleam.md",sourceDirName:"extras/lang",slug:"/extras/lang/gleam",permalink:"/extras/lang/gleam",draft:!1,editUrl:"https://github.com/LazyVim/lazyvim.github.io/tree/main/docs/extras/lang/gleam.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Git",permalink:"/extras/lang/git"},next:{title:"Go",permalink:"/extras/lang/go"}},c={},m=[{value:"nvim-treesitter",id:"nvim-treesitter",level:2},{value:"nvim-lspconfig",id:"nvim-lspconfig",level:2},{value:"conform.nvim <em>(optional)</em>",id:"conformnvim-optional",level:2}],p={toc:m};function d(e){let{components:t,...n}=e;return(0,a.kt)("wrapper",(0,r.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"gleam"},(0,a.kt)("inlineCode",{parentName:"h1"},"Gleam")),(0,a.kt)("admonition",{type:"info"},(0,a.kt)("p",{parentName:"admonition"},"You can enable the extra with the ",(0,a.kt)("inlineCode",{parentName:"p"},":LazyExtras")," command.\nPlugins marked as optional will only be configured if they are installed.")),(0,a.kt)("p",null,"Below you can find a list of included plugins and their default settings."),(0,a.kt)("admonition",{type:"caution"},(0,a.kt)("p",{parentName:"admonition"},"You don't need to copy the default settings to your config.\nThey are only shown here for reference.")),(0,a.kt)("h2",{id:"nvim-treesitter"},(0,a.kt)("a",{parentName:"h2",href:"https://github.com/nvim-treesitter/nvim-treesitter"},"nvim-treesitter")),(0,a.kt)(l.Z,{mdxType:"Tabs"},(0,a.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'opts = { ensure_installed = { "gleam" } }\n'))),(0,a.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "nvim-treesitter/nvim-treesitter",\n opts = { ensure_installed = { "gleam" } },\n}\n')))),(0,a.kt)("h2",{id:"nvim-lspconfig"},(0,a.kt)("a",{parentName:"h2",href:"https://github.com/neovim/nvim-lspconfig"},"nvim-lspconfig")),(0,a.kt)(l.Z,{mdxType:"Tabs"},(0,a.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},"opts = {\n servers = {\n gleam = {},\n },\n}\n"))),(0,a.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "neovim/nvim-lspconfig",\n opts = {\n servers = {\n gleam = {},\n },\n },\n}\n')))),(0,a.kt)("h2",{id:"conformnvim-optional"},(0,a.kt)("a",{parentName:"h2",href:"https://github.com/stevearc/conform.nvim"},"conform.nvim")," ",(0,a.kt)("em",{parentName:"h2"},"(optional)")),(0,a.kt)(l.Z,{mdxType:"Tabs"},(0,a.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'opts = {\n formatters_by_ft = {\n gleam = { "gleam" },\n },\n}\n'))),(0,a.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "conform.nvim",\n optional = true,\n opts = {\n formatters_by_ft = {\n gleam = { "gleam" },\n },\n },\n}\n')))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/bdfc8fa0.53c5c4d4.js b/assets/js/bdfc8fa0.53c5c4d4.js new file mode 100644 index 0000000000..8eb5206dac --- /dev/null +++ b/assets/js/bdfc8fa0.53c5c4d4.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklazyvim=self.webpackChunklazyvim||[]).push([[1139],{3905:(e,t,r)=>{r.d(t,{Zo:()=>c,kt:()=>f});var n=r(7294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?l(Object(r),!0).forEach((function(t){a(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):l(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function i(e,t){if(null==e)return{};var r,n,a=function(e,t){if(null==e)return{};var r,n,a={},l=Object.keys(e);for(n=0;n<l.length;n++)r=l[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(n=0;n<l.length;n++)r=l[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var s=n.createContext({}),u=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},c=function(e){var t=u(e.components);return n.createElement(s.Provider,{value:t},e.children)},m="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,l=e.originalType,s=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),m=u(r),d=a,f=m["".concat(s,".").concat(d)]||m[d]||p[d]||l;return r?n.createElement(f,o(o({ref:t},c),{},{components:r})):n.createElement(f,o({ref:t},c))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var l=r.length,o=new Array(l);o[0]=d;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[m]="string"==typeof e?e:a,o[1]=i;for(var u=2;u<l;u++)o[u]=r[u];return n.createElement.apply(null,o)}return n.createElement.apply(null,r)}d.displayName="MDXCreateElement"},5162:(e,t,r)=>{r.d(t,{Z:()=>o});var n=r(7294),a=r(6010);const l="tabItem_Ymn6";function o(e){let{children:t,hidden:r,className:o}=e;return n.createElement("div",{role:"tabpanel",className:(0,a.Z)(l,o),hidden:r},t)}},4866:(e,t,r)=>{r.d(t,{Z:()=>w});var n=r(7462),a=r(7294),l=r(6010),o=r(2466),i=r(6550),s=r(1980),u=r(7392),c=r(12);function m(e){return function(e){return a.Children.map(e,(e=>{if(!e||(0,a.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:t,label:r,attributes:n,default:a}}=e;return{value:t,label:r,attributes:n,default:a}}))}function p(e){const{values:t,children:r}=e;return(0,a.useMemo)((()=>{const e=t??m(r);return function(e){const t=(0,u.l)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[t,r])}function d(e){let{value:t,tabValues:r}=e;return r.some((e=>e.value===t))}function f(e){let{queryString:t=!1,groupId:r}=e;const n=(0,i.k6)(),l=function(e){let{queryString:t=!1,groupId:r}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!r)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return r??null}({queryString:t,groupId:r});return[(0,s._X)(l),(0,a.useCallback)((e=>{if(!l)return;const t=new URLSearchParams(n.location.search);t.set(l,e),n.replace({...n.location,search:t.toString()})}),[l,n])]}function b(e){const{defaultValue:t,queryString:r=!1,groupId:n}=e,l=p(e),[o,i]=(0,a.useState)((()=>function(e){let{defaultValue:t,tabValues:r}=e;if(0===r.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(t){if(!d({value:t,tabValues:r}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${r.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const n=r.find((e=>e.default))??r[0];if(!n)throw new Error("Unexpected error: 0 tabValues");return n.value}({defaultValue:t,tabValues:l}))),[s,u]=f({queryString:r,groupId:n}),[m,b]=function(e){let{groupId:t}=e;const r=function(e){return e?`docusaurus.tab.${e}`:null}(t),[n,l]=(0,c.Nk)(r);return[n,(0,a.useCallback)((e=>{r&&l.set(e)}),[r,l])]}({groupId:n}),v=(()=>{const e=s??m;return d({value:e,tabValues:l})?e:null})();(0,a.useLayoutEffect)((()=>{v&&i(v)}),[v]);return{selectedValue:o,selectValue:(0,a.useCallback)((e=>{if(!d({value:e,tabValues:l}))throw new Error(`Can't select invalid tab value=${e}`);i(e),u(e),b(e)}),[u,b,l]),tabValues:l}}var v=r(2389);const g="tabList__CuJ",y="tabItem_LNqP";function h(e){let{className:t,block:r,selectedValue:i,selectValue:s,tabValues:u}=e;const c=[],{blockElementScrollPositionUntilNextRender:m}=(0,o.o5)(),p=e=>{const t=e.currentTarget,r=c.indexOf(t),n=u[r].value;n!==i&&(m(t),s(n))},d=e=>{let t=null;switch(e.key){case"Enter":p(e);break;case"ArrowRight":{const r=c.indexOf(e.currentTarget)+1;t=c[r]??c[0];break}case"ArrowLeft":{const r=c.indexOf(e.currentTarget)-1;t=c[r]??c[c.length-1];break}}t?.focus()};return a.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,l.Z)("tabs",{"tabs--block":r},t)},u.map((e=>{let{value:t,label:r,attributes:o}=e;return a.createElement("li",(0,n.Z)({role:"tab",tabIndex:i===t?0:-1,"aria-selected":i===t,key:t,ref:e=>c.push(e),onKeyDown:d,onClick:p},o,{className:(0,l.Z)("tabs__item",y,o?.className,{"tabs__item--active":i===t})}),r??t)})))}function k(e){let{lazy:t,children:r,selectedValue:n}=e;const l=(Array.isArray(r)?r:[r]).filter(Boolean);if(t){const e=l.find((e=>e.props.value===n));return e?(0,a.cloneElement)(e,{className:"margin-top--md"}):null}return a.createElement("div",{className:"margin-top--md"},l.map(((e,t)=>(0,a.cloneElement)(e,{key:t,hidden:e.props.value!==n}))))}function T(e){const t=b(e);return a.createElement("div",{className:(0,l.Z)("tabs-container",g)},a.createElement(h,(0,n.Z)({},e,t)),a.createElement(k,(0,n.Z)({},e,t)))}function w(e){const t=(0,v.Z)();return a.createElement(T,(0,n.Z)({key:String(t)},e))}},1539:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>s,default:()=>d,frontMatter:()=>i,metadata:()=>u,toc:()=>m});var n=r(7462),a=(r(7294),r(3905)),l=r(4866),o=r(5162);const i={},s="Ember",u={unversionedId:"extras/lang/ember",id:"extras/lang/ember",title:"Ember",description:"You can enable the extra with the :LazyExtras command.",source:"@site/docs/extras/lang/ember.md",sourceDirName:"extras/lang",slug:"/extras/lang/ember",permalink:"/extras/lang/ember",draft:!1,editUrl:"https://github.com/LazyVim/lazyvim.github.io/tree/main/docs/extras/lang/ember.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Elm",permalink:"/extras/lang/elm"},next:{title:"Erlang",permalink:"/extras/lang/erlang"}},c={},m=[{value:"nvim-treesitter",id:"nvim-treesitter",level:2},{value:"nvim-lspconfig",id:"nvim-lspconfig",level:2},{value:"conform.nvim",id:"conformnvim",level:2}],p={toc:m};function d(e){let{components:t,...r}=e;return(0,a.kt)("wrapper",(0,n.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"ember"},(0,a.kt)("inlineCode",{parentName:"h1"},"Ember")),(0,a.kt)("admonition",{type:"info"},(0,a.kt)("p",{parentName:"admonition"},"You can enable the extra with the ",(0,a.kt)("inlineCode",{parentName:"p"},":LazyExtras")," command.\nPlugins marked as optional will only be configured if they are installed.")),(0,a.kt)("p",null,"Below you can find a list of included plugins and their default settings."),(0,a.kt)("admonition",{type:"caution"},(0,a.kt)("p",{parentName:"admonition"},"You don't need to copy the default settings to your config.\nThey are only shown here for reference.")),(0,a.kt)("h2",{id:"nvim-treesitter"},(0,a.kt)("a",{parentName:"h2",href:"https://github.com/nvim-treesitter/nvim-treesitter"},"nvim-treesitter")),(0,a.kt)(l.Z,{mdxType:"Tabs"},(0,a.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'opts = { ensure_installed = { "css", "glimmer", "glimmer_javascript", "glimmer_typescript" } }\n'))),(0,a.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "nvim-treesitter/nvim-treesitter",\n opts = { ensure_installed = { "css", "glimmer", "glimmer_javascript", "glimmer_typescript" } },\n}\n')))),(0,a.kt)("h2",{id:"nvim-lspconfig"},(0,a.kt)("a",{parentName:"h2",href:"https://github.com/neovim/nvim-lspconfig"},"nvim-lspconfig")),(0,a.kt)(l.Z,{mdxType:"Tabs"},(0,a.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},"opts = {\n servers = {\n ember = {},\n },\n}\n"))),(0,a.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "neovim/nvim-lspconfig",\n opts = {\n servers = {\n ember = {},\n },\n },\n}\n')))),(0,a.kt)("h2",{id:"conformnvim"},(0,a.kt)("a",{parentName:"h2",href:"https://github.com/stevearc/conform.nvim"},"conform.nvim")),(0,a.kt)(l.Z,{mdxType:"Tabs"},(0,a.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'opts = function(_, opts)\n if LazyVim.has_extra("formatting.prettier") then\n opts.formatters_by_ft = opts.formatters_by_ft or {}\n opts.formatters_by_ft.glimmer = { "prettier" }\n end\nend\n'))),(0,a.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "conform.nvim",\n opts = function(_, opts)\n if LazyVim.has_extra("formatting.prettier") then\n opts.formatters_by_ft = opts.formatters_by_ft or {}\n opts.formatters_by_ft.glimmer = { "prettier" }\n end\n end,\n}\n')))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/bf13ef1f.d10b3bb0.js b/assets/js/bf13ef1f.d10b3bb0.js new file mode 100644 index 0000000000..f33ed9dca1 --- /dev/null +++ b/assets/js/bf13ef1f.d10b3bb0.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklazyvim=self.webpackChunklazyvim||[]).push([[867],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>f});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?l(Object(n),!0).forEach((function(t){r(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):l(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function o(e,t){if(null==e)return{};var n,a,r=function(e,t){if(null==e)return{};var n,a,r={},l=Object.keys(e);for(a=0;a<l.length;a++)n=l[a],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a<l.length;a++)n=l[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var s=a.createContext({}),u=function(e){var t=a.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},c=function(e){var t=u(e.components);return a.createElement(s.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,l=e.originalType,s=e.parentName,c=o(e,["components","mdxType","originalType","parentName"]),p=u(n),m=r,f=p["".concat(s,".").concat(m)]||p[m]||d[m]||l;return n?a.createElement(f,i(i({ref:t},c),{},{components:n})):a.createElement(f,i({ref:t},c))}));function f(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var l=n.length,i=new Array(l);i[0]=m;var o={};for(var s in t)hasOwnProperty.call(t,s)&&(o[s]=t[s]);o.originalType=e,o[p]="string"==typeof e?e:r,i[1]=o;for(var u=2;u<l;u++)i[u]=n[u];return a.createElement.apply(null,i)}return a.createElement.apply(null,n)}m.displayName="MDXCreateElement"},5162:(e,t,n)=>{n.d(t,{Z:()=>i});var a=n(7294),r=n(6010);const l="tabItem_Ymn6";function i(e){let{children:t,hidden:n,className:i}=e;return a.createElement("div",{role:"tabpanel",className:(0,r.Z)(l,i),hidden:n},t)}},4866:(e,t,n)=>{n.d(t,{Z:()=>x});var a=n(7462),r=n(7294),l=n(6010),i=n(2466),o=n(6550),s=n(1980),u=n(7392),c=n(12);function p(e){return function(e){return r.Children.map(e,(e=>{if(!e||(0,r.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:t,label:n,attributes:a,default:r}}=e;return{value:t,label:n,attributes:a,default:r}}))}function d(e){const{values:t,children:n}=e;return(0,r.useMemo)((()=>{const e=t??p(n);return function(e){const t=(0,u.l)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[t,n])}function m(e){let{value:t,tabValues:n}=e;return n.some((e=>e.value===t))}function f(e){let{queryString:t=!1,groupId:n}=e;const a=(0,o.k6)(),l=function(e){let{queryString:t=!1,groupId:n}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!n)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return n??null}({queryString:t,groupId:n});return[(0,s._X)(l),(0,r.useCallback)((e=>{if(!l)return;const t=new URLSearchParams(a.location.search);t.set(l,e),a.replace({...a.location,search:t.toString()})}),[l,a])]}function y(e){const{defaultValue:t,queryString:n=!1,groupId:a}=e,l=d(e),[i,o]=(0,r.useState)((()=>function(e){let{defaultValue:t,tabValues:n}=e;if(0===n.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(t){if(!m({value:t,tabValues:n}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${n.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const a=n.find((e=>e.default))??n[0];if(!a)throw new Error("Unexpected error: 0 tabValues");return a.value}({defaultValue:t,tabValues:l}))),[s,u]=f({queryString:n,groupId:a}),[p,y]=function(e){let{groupId:t}=e;const n=function(e){return e?`docusaurus.tab.${e}`:null}(t),[a,l]=(0,c.Nk)(n);return[a,(0,r.useCallback)((e=>{n&&l.set(e)}),[n,l])]}({groupId:a}),g=(()=>{const e=s??p;return m({value:e,tabValues:l})?e:null})();(0,r.useLayoutEffect)((()=>{g&&o(g)}),[g]);return{selectedValue:i,selectValue:(0,r.useCallback)((e=>{if(!m({value:e,tabValues:l}))throw new Error(`Can't select invalid tab value=${e}`);o(e),u(e),y(e)}),[u,y,l]),tabValues:l}}var g=n(2389);const h="tabList__CuJ",b="tabItem_LNqP";function v(e){let{className:t,block:n,selectedValue:o,selectValue:s,tabValues:u}=e;const c=[],{blockElementScrollPositionUntilNextRender:p}=(0,i.o5)(),d=e=>{const t=e.currentTarget,n=c.indexOf(t),a=u[n].value;a!==o&&(p(t),s(a))},m=e=>{let t=null;switch(e.key){case"Enter":d(e);break;case"ArrowRight":{const n=c.indexOf(e.currentTarget)+1;t=c[n]??c[0];break}case"ArrowLeft":{const n=c.indexOf(e.currentTarget)-1;t=c[n]??c[c.length-1];break}}t?.focus()};return r.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,l.Z)("tabs",{"tabs--block":n},t)},u.map((e=>{let{value:t,label:n,attributes:i}=e;return r.createElement("li",(0,a.Z)({role:"tab",tabIndex:o===t?0:-1,"aria-selected":o===t,key:t,ref:e=>c.push(e),onKeyDown:m,onClick:d},i,{className:(0,l.Z)("tabs__item",b,i?.className,{"tabs__item--active":o===t})}),n??t)})))}function w(e){let{lazy:t,children:n,selectedValue:a}=e;const l=(Array.isArray(n)?n:[n]).filter(Boolean);if(t){const e=l.find((e=>e.props.value===a));return e?(0,r.cloneElement)(e,{className:"margin-top--md"}):null}return r.createElement("div",{className:"margin-top--md"},l.map(((e,t)=>(0,r.cloneElement)(e,{key:t,hidden:e.props.value!==a}))))}function k(e){const t=y(e);return r.createElement("div",{className:(0,l.Z)("tabs-container",h)},r.createElement(v,(0,a.Z)({},e,t)),r.createElement(w,(0,a.Z)({},e,t)))}function x(e){const t=(0,g.Z)();return r.createElement(k,(0,a.Z)({key:String(t)},e))}},7773:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>s,default:()=>m,frontMatter:()=>o,metadata:()=>u,toc:()=>p});var a=n(7462),r=(n(7294),n(3905)),l=n(4866),i=n(5162);const o={},s="Tailwind CSS",u={unversionedId:"extras/lang/tailwind",id:"extras/lang/tailwind",title:"Tailwind CSS",description:"You can enable the extra with the :LazyExtras command.",source:"@site/docs/extras/lang/tailwind.md",sourceDirName:"extras/lang",slug:"/extras/lang/tailwind",permalink:"/extras/lang/tailwind",draft:!1,editUrl:"https://github.com/LazyVim/lazyvim.github.io/tree/main/docs/extras/lang/tailwind.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Svelte",permalink:"/extras/lang/svelte"},next:{title:"Terraform",permalink:"/extras/lang/terraform"}},c={},p=[{value:"nvim-lspconfig",id:"nvim-lspconfig",level:2},{value:"tailwindcss-colorizer-cmp.nvim",id:"tailwindcss-colorizer-cmpnvim",level:2},{value:"nvim-cmp <em>(optional)</em>",id:"nvim-cmp-optional",level:2}],d={toc:p};function m(e){let{components:t,...n}=e;return(0,r.kt)("wrapper",(0,a.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"tailwind-css"},"Tailwind CSS"),(0,r.kt)("admonition",{type:"info"},(0,r.kt)("p",{parentName:"admonition"},"You can enable the extra with the ",(0,r.kt)("inlineCode",{parentName:"p"},":LazyExtras")," command.\nPlugins marked as optional will only be configured if they are installed.")),(0,r.kt)("p",null,"Below you can find a list of included plugins and their default settings."),(0,r.kt)("admonition",{type:"caution"},(0,r.kt)("p",{parentName:"admonition"},"You don't need to copy the default settings to your config.\nThey are only shown here for reference.")),(0,r.kt)("h2",{id:"nvim-lspconfig"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/neovim/nvim-lspconfig"},"nvim-lspconfig")),(0,r.kt)(l.Z,{mdxType:"Tabs"},(0,r.kt)(i.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = {\n servers = {\n tailwindcss = {\n -- exclude a filetype from the default_config\n filetypes_exclude = { "markdown" },\n -- add additional filetypes to the default_config\n filetypes_include = {},\n -- to fully override the default_config, change the below\n -- filetypes = {}\n\n -- additional settings for the server, e.g:\n -- tailwindCSS = { includeLanguages = { someLang = "html" } }\n -- can be addeded to the settings table and will be merged with\n -- this defaults for Phoenix projects\n settings = {\n tailwindCSS = {\n includeLanguages = {\n elixir = "html-eex",\n eelixir = "html-eex",\n heex = "html-eex",\n },\n },\n },\n },\n },\n setup = {\n tailwindcss = function(_, opts)\n opts.filetypes = opts.filetypes or {}\n\n -- Add default filetypes\n vim.list_extend(opts.filetypes, vim.lsp.config.tailwindcss.filetypes)\n\n -- Remove excluded filetypes\n --- @param ft string\n opts.filetypes = vim.tbl_filter(function(ft)\n return not vim.tbl_contains(opts.filetypes_exclude or {}, ft)\n end, opts.filetypes)\n\n -- Add additional filetypes\n vim.list_extend(opts.filetypes, opts.filetypes_include or {})\n end,\n },\n}\n'))),(0,r.kt)(i.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "neovim/nvim-lspconfig",\n opts = {\n servers = {\n tailwindcss = {\n -- exclude a filetype from the default_config\n filetypes_exclude = { "markdown" },\n -- add additional filetypes to the default_config\n filetypes_include = {},\n -- to fully override the default_config, change the below\n -- filetypes = {}\n\n -- additional settings for the server, e.g:\n -- tailwindCSS = { includeLanguages = { someLang = "html" } }\n -- can be addeded to the settings table and will be merged with\n -- this defaults for Phoenix projects\n settings = {\n tailwindCSS = {\n includeLanguages = {\n elixir = "html-eex",\n eelixir = "html-eex",\n heex = "html-eex",\n },\n },\n },\n },\n },\n setup = {\n tailwindcss = function(_, opts)\n opts.filetypes = opts.filetypes or {}\n\n -- Add default filetypes\n vim.list_extend(opts.filetypes, vim.lsp.config.tailwindcss.filetypes)\n\n -- Remove excluded filetypes\n --- @param ft string\n opts.filetypes = vim.tbl_filter(function(ft)\n return not vim.tbl_contains(opts.filetypes_exclude or {}, ft)\n end, opts.filetypes)\n\n -- Add additional filetypes\n vim.list_extend(opts.filetypes, opts.filetypes_include or {})\n end,\n },\n },\n}\n')))),(0,r.kt)("h2",{id:"tailwindcss-colorizer-cmpnvim"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/roobert/tailwindcss-colorizer-cmp.nvim"},"tailwindcss-colorizer-cmp.nvim")),(0,r.kt)(l.Z,{mdxType:"Tabs"},(0,r.kt)(i.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},"opts = {}\n"))),(0,r.kt)(i.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{ "roobert/tailwindcss-colorizer-cmp.nvim", opts = {} }\n')))),(0,r.kt)("h2",{id:"nvim-cmp-optional"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/hrsh7th/nvim-cmp"},"nvim-cmp")," ",(0,r.kt)("em",{parentName:"h2"},"(optional)")),(0,r.kt)(l.Z,{mdxType:"Tabs"},(0,r.kt)(i.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = function(_, opts)\n -- original LazyVim kind icon formatter\n local format_kinds = opts.formatting.format\n opts.formatting.format = function(entry, item)\n format_kinds(entry, item) -- add icons\n return require("tailwindcss-colorizer-cmp").formatter(entry, item)\n end\nend\n'))),(0,r.kt)(i.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "hrsh7th/nvim-cmp",\n optional = true,\n dependencies = {\n { "roobert/tailwindcss-colorizer-cmp.nvim", opts = {} },\n },\n opts = function(_, opts)\n -- original LazyVim kind icon formatter\n local format_kinds = opts.formatting.format\n opts.formatting.format = function(entry, item)\n format_kinds(entry, item) -- add icons\n return require("tailwindcss-colorizer-cmp").formatter(entry, item)\n end\n end,\n}\n')))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/c10f7a0f.1938c030.js b/assets/js/c10f7a0f.1938c030.js new file mode 100644 index 0000000000..c17461707e --- /dev/null +++ b/assets/js/c10f7a0f.1938c030.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklazyvim=self.webpackChunklazyvim||[]).push([[9876],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>y});var n=r(7294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?i(Object(r),!0).forEach((function(t){a(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):i(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function c(e,t){if(null==e)return{};var r,n,a=function(e,t){if(null==e)return{};var r,n,a={},i=Object.keys(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var s=n.createContext({}),l=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},p=function(e){var t=l(e.components);return n.createElement(s.Provider,{value:t},e.children)},u="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,i=e.originalType,s=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),u=l(r),f=a,y=u["".concat(s,".").concat(f)]||u[f]||m[f]||i;return r?n.createElement(y,o(o({ref:t},p),{},{components:r})):n.createElement(y,o({ref:t},p))}));function y(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=r.length,o=new Array(i);o[0]=f;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[u]="string"==typeof e?e:a,o[1]=c;for(var l=2;l<i;l++)o[l]=r[l];return n.createElement.apply(null,o)}return n.createElement.apply(null,r)}f.displayName="MDXCreateElement"},2112:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>u,frontMatter:()=>i,metadata:()=>c,toc:()=>l});var n=r(7462),a=(r(7294),r(3905));const i={},o="Extras",c={unversionedId:"extras/index",id:"extras/index",title:"Extras",description:"The easiest way to install extras in LazyVim is with the :LazyExtras command.",source:"@site/docs/extras/index.md",sourceDirName:"extras",slug:"/extras/",permalink:"/extras/",draft:!1,editUrl:"https://github.com/LazyVim/lazyvim.github.io/tree/main/docs/extras/index.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Util",permalink:"/plugins/util"},next:{title:"Avante",permalink:"/extras/ai/avante"}},s={},l=[],p={toc:l};function u(e){let{components:t,...r}=e;return(0,a.kt)("wrapper",(0,n.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"extras"},"Extras"),(0,a.kt)("p",null,"The easiest way to install extras in ",(0,a.kt)("strong",{parentName:"p"},"LazyVim")," is with the ",(0,a.kt)("inlineCode",{parentName:"p"},":LazyExtras")," command."),(0,a.kt)("p",null,(0,a.kt)("img",{parentName:"p",src:"https://github.com/LazyVim/lazyvim.github.io/assets/292349/e02f4a72-97bc-46cd-ab30-92127b1bbe4d",alt:"image"})))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/c5292878.dfb6de52.js b/assets/js/c5292878.dfb6de52.js new file mode 100644 index 0000000000..7feed0e69a --- /dev/null +++ b/assets/js/c5292878.dfb6de52.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklazyvim=self.webpackChunklazyvim||[]).push([[9536],{3905:(e,n,t)=>{t.d(n,{Zo:()=>p,kt:()=>m});var r=t(7294);function i(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function o(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function a(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?o(Object(t),!0).forEach((function(n){i(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):o(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function l(e,n){if(null==e)return{};var t,r,i=function(e,n){if(null==e)return{};var t,r,i={},o=Object.keys(e);for(r=0;r<o.length;r++)t=o[r],n.indexOf(t)>=0||(i[t]=e[t]);return i}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)t=o[r],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(i[t]=e[t])}return i}var s=r.createContext({}),u=function(e){var n=r.useContext(s),t=n;return e&&(t="function"==typeof e?e(n):a(a({},n),e)),t},p=function(e){var n=u(e.components);return r.createElement(s.Provider,{value:n},e.children)},c="mdxType",d={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},f=r.forwardRef((function(e,n){var t=e.components,i=e.mdxType,o=e.originalType,s=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),c=u(t),f=i,m=c["".concat(s,".").concat(f)]||c[f]||d[f]||o;return t?r.createElement(m,a(a({ref:n},p),{},{components:t})):r.createElement(m,a({ref:n},p))}));function m(e,n){var t=arguments,i=n&&n.mdxType;if("string"==typeof e||i){var o=t.length,a=new Array(o);a[0]=f;var l={};for(var s in n)hasOwnProperty.call(n,s)&&(l[s]=n[s]);l.originalType=e,l[c]="string"==typeof e?e:i,a[1]=l;for(var u=2;u<o;u++)a[u]=t[u];return r.createElement.apply(null,a)}return r.createElement.apply(null,t)}f.displayName="MDXCreateElement"},5162:(e,n,t)=>{t.d(n,{Z:()=>a});var r=t(7294),i=t(6010);const o="tabItem_Ymn6";function a(e){let{children:n,hidden:t,className:a}=e;return r.createElement("div",{role:"tabpanel",className:(0,i.Z)(o,a),hidden:t},n)}},4866:(e,n,t)=>{t.d(n,{Z:()=>k});var r=t(7462),i=t(7294),o=t(6010),a=t(2466),l=t(6550),s=t(1980),u=t(7392),p=t(12);function c(e){return function(e){return i.Children.map(e,(e=>{if(!e||(0,i.isValidElement)(e)&&function(e){const{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:n,label:t,attributes:r,default:i}}=e;return{value:n,label:t,attributes:r,default:i}}))}function d(e){const{values:n,children:t}=e;return(0,i.useMemo)((()=>{const e=n??c(t);return function(e){const n=(0,u.l)(e,((e,n)=>e.value===n.value));if(n.length>0)throw new Error(`Docusaurus error: Duplicate values "${n.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[n,t])}function f(e){let{value:n,tabValues:t}=e;return t.some((e=>e.value===n))}function m(e){let{queryString:n=!1,groupId:t}=e;const r=(0,l.k6)(),o=function(e){let{queryString:n=!1,groupId:t}=e;if("string"==typeof n)return n;if(!1===n)return null;if(!0===n&&!t)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return t??null}({queryString:n,groupId:t});return[(0,s._X)(o),(0,i.useCallback)((e=>{if(!o)return;const n=new URLSearchParams(r.location.search);n.set(o,e),r.replace({...r.location,search:n.toString()})}),[o,r])]}function b(e){const{defaultValue:n,queryString:t=!1,groupId:r}=e,o=d(e),[a,l]=(0,i.useState)((()=>function(e){let{defaultValue:n,tabValues:t}=e;if(0===t.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(n){if(!f({value:n,tabValues:t}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${n}" but none of its children has the corresponding value. Available values are: ${t.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return n}const r=t.find((e=>e.default))??t[0];if(!r)throw new Error("Unexpected error: 0 tabValues");return r.value}({defaultValue:n,tabValues:o}))),[s,u]=m({queryString:t,groupId:r}),[c,b]=function(e){let{groupId:n}=e;const t=function(e){return e?`docusaurus.tab.${e}`:null}(n),[r,o]=(0,p.Nk)(t);return[r,(0,i.useCallback)((e=>{t&&o.set(e)}),[t,o])]}({groupId:r}),g=(()=>{const e=s??c;return f({value:e,tabValues:o})?e:null})();(0,i.useLayoutEffect)((()=>{g&&l(g)}),[g]);return{selectedValue:a,selectValue:(0,i.useCallback)((e=>{if(!f({value:e,tabValues:o}))throw new Error(`Can't select invalid tab value=${e}`);l(e),u(e),b(e)}),[u,b,o]),tabValues:o}}var g=t(2389);const h="tabList__CuJ",v="tabItem_LNqP";function y(e){let{className:n,block:t,selectedValue:l,selectValue:s,tabValues:u}=e;const p=[],{blockElementScrollPositionUntilNextRender:c}=(0,a.o5)(),d=e=>{const n=e.currentTarget,t=p.indexOf(n),r=u[t].value;r!==l&&(c(n),s(r))},f=e=>{let n=null;switch(e.key){case"Enter":d(e);break;case"ArrowRight":{const t=p.indexOf(e.currentTarget)+1;n=p[t]??p[0];break}case"ArrowLeft":{const t=p.indexOf(e.currentTarget)-1;n=p[t]??p[p.length-1];break}}n?.focus()};return i.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,o.Z)("tabs",{"tabs--block":t},n)},u.map((e=>{let{value:n,label:t,attributes:a}=e;return i.createElement("li",(0,r.Z)({role:"tab",tabIndex:l===n?0:-1,"aria-selected":l===n,key:n,ref:e=>p.push(e),onKeyDown:f,onClick:d},a,{className:(0,o.Z)("tabs__item",v,a?.className,{"tabs__item--active":l===n})}),t??n)})))}function w(e){let{lazy:n,children:t,selectedValue:r}=e;const o=(Array.isArray(t)?t:[t]).filter(Boolean);if(n){const e=o.find((e=>e.props.value===r));return e?(0,i.cloneElement)(e,{className:"margin-top--md"}):null}return i.createElement("div",{className:"margin-top--md"},o.map(((e,n)=>(0,i.cloneElement)(e,{key:n,hidden:e.props.value!==r}))))}function _(e){const n=b(e);return i.createElement("div",{className:(0,o.Z)("tabs-container",h)},i.createElement(y,(0,r.Z)({},e,n)),i.createElement(w,(0,r.Z)({},e,n)))}function k(e){const n=(0,g.Z)();return i.createElement(_,(0,r.Z)({key:String(n)},e))}},623:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>p,contentTitle:()=>s,default:()=>f,frontMatter:()=>l,metadata:()=>u,toc:()=>c});var r=t(7462),i=(t(7294),t(3905)),o=t(4866),a=t(5162);const l={},s="edgy.nvim",u={unversionedId:"extras/ui/edgy",id:"extras/ui/edgy",title:"edgy.nvim",description:"You can enable the extra with the :LazyExtras command.",source:"@site/docs/extras/ui/edgy.md",sourceDirName:"extras/ui",slug:"/extras/ui/edgy",permalink:"/extras/ui/edgy",draft:!1,editUrl:"https://github.com/LazyVim/lazyvim.github.io/tree/main/docs/extras/ui/edgy.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Dashboard-nvim",permalink:"/extras/ui/dashboard-nvim"},next:{title:"Indent-blankline",permalink:"/extras/ui/indent-blankline"}},p={},c=[{value:"edgy.nvim",id:"edgynvim-1",level:2},{value:"telescope.nvim <em>(optional)</em>",id:"telescopenvim-optional",level:2},{value:"neo-tree.nvim <em>(optional)</em>",id:"neo-treenvim-optional",level:2},{value:"bufferline.nvim <em>(optional)</em>",id:"bufferlinenvim-optional",level:2}],d={toc:c};function f(e){let{components:n,...t}=e;return(0,i.kt)("wrapper",(0,r.Z)({},d,t,{components:n,mdxType:"MDXLayout"}),(0,i.kt)("h1",{id:"edgynvim"},"edgy.nvim"),(0,i.kt)("admonition",{type:"info"},(0,i.kt)("p",{parentName:"admonition"},"You can enable the extra with the ",(0,i.kt)("inlineCode",{parentName:"p"},":LazyExtras")," command.\nPlugins marked as optional will only be configured if they are installed.")),(0,i.kt)("p",null,"Below you can find a list of included plugins and their default settings."),(0,i.kt)("admonition",{type:"caution"},(0,i.kt)("p",{parentName:"admonition"},"You don't need to copy the default settings to your config.\nThey are only shown here for reference.")),(0,i.kt)("h2",{id:"edgynvim-1"},(0,i.kt)("a",{parentName:"h2",href:"https://github.com/folke/edgy.nvim"},"edgy.nvim")),(0,i.kt)("p",null," Create and display predefined window layouts."),(0,i.kt)(o.Z,{mdxType:"Tabs"},(0,i.kt)(a.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-lua"},'opts = function()\n local opts = {\n bottom = {\n {\n ft = "toggleterm",\n size = { height = 0.4 },\n filter = function(buf, win)\n return vim.api.nvim_win_get_config(win).relative == ""\n end,\n },\n {\n ft = "noice",\n size = { height = 0.4 },\n filter = function(buf, win)\n return vim.api.nvim_win_get_config(win).relative == ""\n end,\n },\n "Trouble",\n { ft = "qf", title = "QuickFix" },\n {\n ft = "help",\n size = { height = 20 },\n -- don\'t open help files in edgy that we\'re editing\n filter = function(buf)\n return vim.bo[buf].buftype == "help"\n end,\n },\n { title = "Spectre", ft = "spectre_panel", size = { height = 0.4 } },\n { title = "Neotest Output", ft = "neotest-output-panel", size = { height = 15 } },\n },\n left = {\n { title = "Neotest Summary", ft = "neotest-summary" },\n -- "neo-tree",\n },\n right = {\n { title = "Grug Far", ft = "grug-far", size = { width = 0.4 } },\n },\n keys = {\n -- increase width\n ["<c-Right>"] = function(win)\n win:resize("width", 2)\n end,\n -- decrease width\n ["<c-Left>"] = function(win)\n win:resize("width", -2)\n end,\n -- increase height\n ["<c-Up>"] = function(win)\n win:resize("height", 2)\n end,\n -- decrease height\n ["<c-Down>"] = function(win)\n win:resize("height", -2)\n end,\n },\n }\n\n if LazyVim.has("neo-tree.nvim") then\n local pos = {\n filesystem = "left",\n buffers = "top",\n git_status = "right",\n document_symbols = "bottom",\n diagnostics = "bottom",\n }\n local sources = LazyVim.opts("neo-tree.nvim").sources or {}\n for i, v in ipairs(sources) do\n table.insert(opts.left, i, {\n title = "Neo-Tree " .. v:gsub("_", " "):gsub("^%l", string.upper),\n ft = "neo-tree",\n filter = function(buf)\n return vim.b[buf].neo_tree_source == v\n end,\n pinned = true,\n open = function()\n vim.cmd(("Neotree show position=%s %s dir=%s"):format(pos[v] or "bottom", v, LazyVim.root()))\n end,\n })\n end\n end\n\n -- trouble\n for _, pos in ipairs({ "top", "bottom", "left", "right" }) do\n opts[pos] = opts[pos] or {}\n table.insert(opts[pos], {\n ft = "trouble",\n filter = function(_buf, win)\n return vim.w[win].trouble\n and vim.w[win].trouble.position == pos\n and vim.w[win].trouble.type == "split"\n and vim.w[win].trouble.relative == "editor"\n and not vim.w[win].trouble_preview\n end,\n })\n end\n\n -- snacks terminal\n for _, pos in ipairs({ "top", "bottom", "left", "right" }) do\n opts[pos] = opts[pos] or {}\n table.insert(opts[pos], {\n ft = "snacks_terminal",\n size = { height = 0.4 },\n title = "%{b:snacks_terminal.id}: %{b:term_title}",\n filter = function(_buf, win)\n return vim.w[win].snacks_win\n and vim.w[win].snacks_win.position == pos\n and vim.w[win].snacks_win.relative == "editor"\n and not vim.w[win].trouble_preview\n end,\n })\n end\n return opts\nend\n'))),(0,i.kt)(a.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "folke/edgy.nvim",\n event = "VeryLazy",\n keys = {\n {\n "<leader>ue",\n function()\n require("edgy").toggle()\n end,\n desc = "Edgy Toggle",\n },\n -- stylua: ignore\n { "<leader>uE", function() require("edgy").select() end, desc = "Edgy Select Window" },\n },\n opts = function()\n local opts = {\n bottom = {\n {\n ft = "toggleterm",\n size = { height = 0.4 },\n filter = function(buf, win)\n return vim.api.nvim_win_get_config(win).relative == ""\n end,\n },\n {\n ft = "noice",\n size = { height = 0.4 },\n filter = function(buf, win)\n return vim.api.nvim_win_get_config(win).relative == ""\n end,\n },\n "Trouble",\n { ft = "qf", title = "QuickFix" },\n {\n ft = "help",\n size = { height = 20 },\n -- don\'t open help files in edgy that we\'re editing\n filter = function(buf)\n return vim.bo[buf].buftype == "help"\n end,\n },\n { title = "Spectre", ft = "spectre_panel", size = { height = 0.4 } },\n { title = "Neotest Output", ft = "neotest-output-panel", size = { height = 15 } },\n },\n left = {\n { title = "Neotest Summary", ft = "neotest-summary" },\n -- "neo-tree",\n },\n right = {\n { title = "Grug Far", ft = "grug-far", size = { width = 0.4 } },\n },\n keys = {\n -- increase width\n ["<c-Right>"] = function(win)\n win:resize("width", 2)\n end,\n -- decrease width\n ["<c-Left>"] = function(win)\n win:resize("width", -2)\n end,\n -- increase height\n ["<c-Up>"] = function(win)\n win:resize("height", 2)\n end,\n -- decrease height\n ["<c-Down>"] = function(win)\n win:resize("height", -2)\n end,\n },\n }\n\n if LazyVim.has("neo-tree.nvim") then\n local pos = {\n filesystem = "left",\n buffers = "top",\n git_status = "right",\n document_symbols = "bottom",\n diagnostics = "bottom",\n }\n local sources = LazyVim.opts("neo-tree.nvim").sources or {}\n for i, v in ipairs(sources) do\n table.insert(opts.left, i, {\n title = "Neo-Tree " .. v:gsub("_", " "):gsub("^%l", string.upper),\n ft = "neo-tree",\n filter = function(buf)\n return vim.b[buf].neo_tree_source == v\n end,\n pinned = true,\n open = function()\n vim.cmd(("Neotree show position=%s %s dir=%s"):format(pos[v] or "bottom", v, LazyVim.root()))\n end,\n })\n end\n end\n\n -- trouble\n for _, pos in ipairs({ "top", "bottom", "left", "right" }) do\n opts[pos] = opts[pos] or {}\n table.insert(opts[pos], {\n ft = "trouble",\n filter = function(_buf, win)\n return vim.w[win].trouble\n and vim.w[win].trouble.position == pos\n and vim.w[win].trouble.type == "split"\n and vim.w[win].trouble.relative == "editor"\n and not vim.w[win].trouble_preview\n end,\n })\n end\n\n -- snacks terminal\n for _, pos in ipairs({ "top", "bottom", "left", "right" }) do\n opts[pos] = opts[pos] or {}\n table.insert(opts[pos], {\n ft = "snacks_terminal",\n size = { height = 0.4 },\n title = "%{b:snacks_terminal.id}: %{b:term_title}",\n filter = function(_buf, win)\n return vim.w[win].snacks_win\n and vim.w[win].snacks_win.position == pos\n and vim.w[win].snacks_win.relative == "editor"\n and not vim.w[win].trouble_preview\n end,\n })\n end\n return opts\n end,\n}\n')))),(0,i.kt)("h2",{id:"telescopenvim-optional"},(0,i.kt)("a",{parentName:"h2",href:"https://github.com/nvim-telescope/telescope.nvim"},"telescope.nvim")," ",(0,i.kt)("em",{parentName:"h2"},"(optional)")),(0,i.kt)("p",null," use edgy's selection window"),(0,i.kt)(o.Z,{mdxType:"Tabs"},(0,i.kt)(a.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-lua"},'opts = {\n defaults = {\n get_selection_window = function()\n require("edgy").goto_main()\n return 0\n end,\n },\n}\n'))),(0,i.kt)(a.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "nvim-telescope/telescope.nvim",\n optional = true,\n opts = {\n defaults = {\n get_selection_window = function()\n require("edgy").goto_main()\n return 0\n end,\n },\n },\n}\n')))),(0,i.kt)("h2",{id:"neo-treenvim-optional"},(0,i.kt)("a",{parentName:"h2",href:"https://github.com/nvim-neo-tree/neo-tree.nvim"},"neo-tree.nvim")," ",(0,i.kt)("em",{parentName:"h2"},"(optional)")),(0,i.kt)("p",null," prevent neo-tree from opening files in edgy windows"),(0,i.kt)(o.Z,{mdxType:"Tabs"},(0,i.kt)(a.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-lua"},'opts = function(_, opts)\n opts.open_files_do_not_replace_types = opts.open_files_do_not_replace_types\n or { "terminal", "Trouble", "qf", "Outline", "trouble" }\n table.insert(opts.open_files_do_not_replace_types, "edgy")\nend\n'))),(0,i.kt)(a.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "nvim-neo-tree/neo-tree.nvim",\n optional = true,\n opts = function(_, opts)\n opts.open_files_do_not_replace_types = opts.open_files_do_not_replace_types\n or { "terminal", "Trouble", "qf", "Outline", "trouble" }\n table.insert(opts.open_files_do_not_replace_types, "edgy")\n end,\n}\n')))),(0,i.kt)("h2",{id:"bufferlinenvim-optional"},(0,i.kt)("a",{parentName:"h2",href:"https://github.com/akinsho/bufferline.nvim"},"bufferline.nvim")," ",(0,i.kt)("em",{parentName:"h2"},"(optional)")),(0,i.kt)("p",null," Fix bufferline offsets when edgy is loaded"),(0,i.kt)(o.Z,{mdxType:"Tabs"},(0,i.kt)(a.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-lua"},'opts = function()\n local Offset = require("bufferline.offset")\n if not Offset.edgy then\n local get = Offset.get\n Offset.get = function()\n if package.loaded.edgy then\n local old_offset = get()\n local layout = require("edgy.config").layout\n local ret = { left = "", left_size = 0, right = "", right_size = 0 }\n for _, pos in ipairs({ "left", "right" }) do\n local sb = layout[pos]\n local title = " Sidebar" .. string.rep(" ", sb.bounds.width - 8)\n if sb and #sb.wins > 0 then\n ret[pos] = old_offset[pos .. "_size"] > 0 and old_offset[pos]\n or pos == "left" and ("%#Bold#" .. title .. "%*" .. "%#BufferLineOffsetSeparator#\u2502%*")\n or pos == "right" and ("%#BufferLineOffsetSeparator#\u2502%*" .. "%#Bold#" .. title .. "%*")\n ret[pos .. "_size"] = old_offset[pos .. "_size"] > 0 and old_offset[pos .. "_size"] or sb.bounds.width\n end\n end\n ret.total_size = ret.left_size + ret.right_size\n if ret.total_size > 0 then\n return ret\n end\n end\n return get()\n end\n Offset.edgy = true\n end\nend\n'))),(0,i.kt)(a.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "akinsho/bufferline.nvim",\n optional = true,\n opts = function()\n local Offset = require("bufferline.offset")\n if not Offset.edgy then\n local get = Offset.get\n Offset.get = function()\n if package.loaded.edgy then\n local old_offset = get()\n local layout = require("edgy.config").layout\n local ret = { left = "", left_size = 0, right = "", right_size = 0 }\n for _, pos in ipairs({ "left", "right" }) do\n local sb = layout[pos]\n local title = " Sidebar" .. string.rep(" ", sb.bounds.width - 8)\n if sb and #sb.wins > 0 then\n ret[pos] = old_offset[pos .. "_size"] > 0 and old_offset[pos]\n or pos == "left" and ("%#Bold#" .. title .. "%*" .. "%#BufferLineOffsetSeparator#\u2502%*")\n or pos == "right" and ("%#BufferLineOffsetSeparator#\u2502%*" .. "%#Bold#" .. title .. "%*")\n ret[pos .. "_size"] = old_offset[pos .. "_size"] > 0 and old_offset[pos .. "_size"] or sb.bounds.width\n end\n end\n ret.total_size = ret.left_size + ret.right_size\n if ret.total_size > 0 then\n return ret\n end\n end\n return get()\n end\n Offset.edgy = true\n end\n end,\n}\n')))))}f.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/c65f0b57.b90b50a8.js b/assets/js/c65f0b57.b90b50a8.js new file mode 100644 index 0000000000..4e6ec1e267 --- /dev/null +++ b/assets/js/c65f0b57.b90b50a8.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklazyvim=self.webpackChunklazyvim||[]).push([[5443],{3905:(e,n,t)=>{t.d(n,{Zo:()=>p,kt:()=>f});var a=t(7294);function r(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function o(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,a)}return t}function l(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?o(Object(t),!0).forEach((function(n){r(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):o(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function s(e,n){if(null==e)return{};var t,a,r=function(e,n){if(null==e)return{};var t,a,r={},o=Object.keys(e);for(a=0;a<o.length;a++)t=o[a],n.indexOf(t)>=0||(r[t]=e[t]);return r}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)t=o[a],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(r[t]=e[t])}return r}var i=a.createContext({}),u=function(e){var n=a.useContext(i),t=n;return e&&(t="function"==typeof e?e(n):l(l({},n),e)),t},p=function(e){var n=u(e.components);return a.createElement(i.Provider,{value:n},e.children)},c="mdxType",m={inlineCode:"code",wrapper:function(e){var n=e.children;return a.createElement(a.Fragment,{},n)}},d=a.forwardRef((function(e,n){var t=e.components,r=e.mdxType,o=e.originalType,i=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),c=u(t),d=r,f=c["".concat(i,".").concat(d)]||c[d]||m[d]||o;return t?a.createElement(f,l(l({ref:n},p),{},{components:t})):a.createElement(f,l({ref:n},p))}));function f(e,n){var t=arguments,r=n&&n.mdxType;if("string"==typeof e||r){var o=t.length,l=new Array(o);l[0]=d;var s={};for(var i in n)hasOwnProperty.call(n,i)&&(s[i]=n[i]);s.originalType=e,s[c]="string"==typeof e?e:r,l[1]=s;for(var u=2;u<o;u++)l[u]=t[u];return a.createElement.apply(null,l)}return a.createElement.apply(null,t)}d.displayName="MDXCreateElement"},5162:(e,n,t)=>{t.d(n,{Z:()=>l});var a=t(7294),r=t(6010);const o="tabItem_Ymn6";function l(e){let{children:n,hidden:t,className:l}=e;return a.createElement("div",{role:"tabpanel",className:(0,r.Z)(o,l),hidden:t},n)}},4866:(e,n,t)=>{t.d(n,{Z:()=>T});var a=t(7462),r=t(7294),o=t(6010),l=t(2466),s=t(6550),i=t(1980),u=t(7392),p=t(12);function c(e){return function(e){return r.Children.map(e,(e=>{if(!e||(0,r.isValidElement)(e)&&function(e){const{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:n,label:t,attributes:a,default:r}}=e;return{value:n,label:t,attributes:a,default:r}}))}function m(e){const{values:n,children:t}=e;return(0,r.useMemo)((()=>{const e=n??c(t);return function(e){const n=(0,u.l)(e,((e,n)=>e.value===n.value));if(n.length>0)throw new Error(`Docusaurus error: Duplicate values "${n.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[n,t])}function d(e){let{value:n,tabValues:t}=e;return t.some((e=>e.value===n))}function f(e){let{queryString:n=!1,groupId:t}=e;const a=(0,s.k6)(),o=function(e){let{queryString:n=!1,groupId:t}=e;if("string"==typeof n)return n;if(!1===n)return null;if(!0===n&&!t)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return t??null}({queryString:n,groupId:t});return[(0,i._X)(o),(0,r.useCallback)((e=>{if(!o)return;const n=new URLSearchParams(a.location.search);n.set(o,e),a.replace({...a.location,search:n.toString()})}),[o,a])]}function v(e){const{defaultValue:n,queryString:t=!1,groupId:a}=e,o=m(e),[l,s]=(0,r.useState)((()=>function(e){let{defaultValue:n,tabValues:t}=e;if(0===t.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(n){if(!d({value:n,tabValues:t}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${n}" but none of its children has the corresponding value. Available values are: ${t.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return n}const a=t.find((e=>e.default))??t[0];if(!a)throw new Error("Unexpected error: 0 tabValues");return a.value}({defaultValue:n,tabValues:o}))),[i,u]=f({queryString:t,groupId:a}),[c,v]=function(e){let{groupId:n}=e;const t=function(e){return e?`docusaurus.tab.${e}`:null}(n),[a,o]=(0,p.Nk)(t);return[a,(0,r.useCallback)((e=>{t&&o.set(e)}),[t,o])]}({groupId:a}),b=(()=>{const e=i??c;return d({value:e,tabValues:o})?e:null})();(0,r.useLayoutEffect)((()=>{b&&s(b)}),[b]);return{selectedValue:l,selectValue:(0,r.useCallback)((e=>{if(!d({value:e,tabValues:o}))throw new Error(`Can't select invalid tab value=${e}`);s(e),u(e),v(e)}),[u,v,o]),tabValues:o}}var b=t(2389);const h="tabList__CuJ",g="tabItem_LNqP";function k(e){let{className:n,block:t,selectedValue:s,selectValue:i,tabValues:u}=e;const p=[],{blockElementScrollPositionUntilNextRender:c}=(0,l.o5)(),m=e=>{const n=e.currentTarget,t=p.indexOf(n),a=u[t].value;a!==s&&(c(n),i(a))},d=e=>{let n=null;switch(e.key){case"Enter":m(e);break;case"ArrowRight":{const t=p.indexOf(e.currentTarget)+1;n=p[t]??p[0];break}case"ArrowLeft":{const t=p.indexOf(e.currentTarget)-1;n=p[t]??p[p.length-1];break}}n?.focus()};return r.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,o.Z)("tabs",{"tabs--block":t},n)},u.map((e=>{let{value:n,label:t,attributes:l}=e;return r.createElement("li",(0,a.Z)({role:"tab",tabIndex:s===n?0:-1,"aria-selected":s===n,key:n,ref:e=>p.push(e),onKeyDown:d,onClick:m},l,{className:(0,o.Z)("tabs__item",g,l?.className,{"tabs__item--active":s===n})}),t??n)})))}function y(e){let{lazy:n,children:t,selectedValue:a}=e;const o=(Array.isArray(t)?t:[t]).filter(Boolean);if(n){const e=o.find((e=>e.props.value===a));return e?(0,r.cloneElement)(e,{className:"margin-top--md"}):null}return r.createElement("div",{className:"margin-top--md"},o.map(((e,n)=>(0,r.cloneElement)(e,{key:n,hidden:e.props.value!==a}))))}function x(e){const n=v(e);return r.createElement("div",{className:(0,o.Z)("tabs-container",h)},r.createElement(k,(0,a.Z)({},e,n)),r.createElement(y,(0,a.Z)({},e,n)))}function T(e){const n=(0,b.Z)();return r.createElement(x,(0,a.Z)({key:String(n)},e))}},1245:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>p,contentTitle:()=>i,default:()=>d,frontMatter:()=>s,metadata:()=>u,toc:()=>c});var a=t(7462),r=(t(7294),t(3905)),o=t(4866),l=t(5162);const s={},i="Dotnet",u={unversionedId:"extras/lang/dotnet",id:"extras/lang/dotnet",title:"Dotnet",description:"You can enable the extra with the :LazyExtras command.",source:"@site/docs/extras/lang/dotnet.md",sourceDirName:"extras/lang",slug:"/extras/lang/dotnet",permalink:"/extras/lang/dotnet",draft:!1,editUrl:"https://github.com/LazyVim/lazyvim.github.io/tree/main/docs/extras/lang/dotnet.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Docker",permalink:"/extras/lang/docker"},next:{title:"Elixir",permalink:"/extras/lang/elixir"}},p={},c=[{value:"omnisharp-extended-lsp.nvim",id:"omnisharp-extended-lspnvim",level:2},{value:"nvim-treesitter",id:"nvim-treesitter",level:2},{value:"mason.nvim",id:"masonnvim",level:2},{value:"nvim-lspconfig",id:"nvim-lspconfig",level:2},{value:"neotest-vstest",id:"neotest-vstest",level:2},{value:"none-ls.nvim <em>(optional)</em>",id:"none-lsnvim-optional",level:2},{value:"conform.nvim <em>(optional)</em>",id:"conformnvim-optional",level:2},{value:"nvim-dap <em>(optional)</em>",id:"nvim-dap-optional",level:2},{value:"neotest <em>(optional)</em>",id:"neotest-optional",level:2}],m={toc:c};function d(e){let{components:n,...t}=e;return(0,r.kt)("wrapper",(0,a.Z)({},m,t,{components:n,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"dotnet"},(0,r.kt)("inlineCode",{parentName:"h1"},"Dotnet")),(0,r.kt)("admonition",{type:"info"},(0,r.kt)("p",{parentName:"admonition"},"You can enable the extra with the ",(0,r.kt)("inlineCode",{parentName:"p"},":LazyExtras")," command.\nPlugins marked as optional will only be configured if they are installed.")),(0,r.kt)("p",null,"Below you can find a list of included plugins and their default settings."),(0,r.kt)("admonition",{type:"caution"},(0,r.kt)("p",{parentName:"admonition"},"You don't need to copy the default settings to your config.\nThey are only shown here for reference.")),(0,r.kt)("h2",{id:"omnisharp-extended-lspnvim"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/Hoffs/omnisharp-extended-lsp.nvim"},"omnisharp-extended-lsp.nvim")),(0,r.kt)(o.Z,{mdxType:"Tabs"},(0,r.kt)(l.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},"opts = nil\n"))),(0,r.kt)(l.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{ "Hoffs/omnisharp-extended-lsp.nvim", lazy = true }\n')))),(0,r.kt)("h2",{id:"nvim-treesitter"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/nvim-treesitter/nvim-treesitter"},"nvim-treesitter")),(0,r.kt)(o.Z,{mdxType:"Tabs"},(0,r.kt)(l.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = { ensure_installed = { "c_sharp", "fsharp" } }\n'))),(0,r.kt)(l.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "nvim-treesitter/nvim-treesitter",\n opts = { ensure_installed = { "c_sharp", "fsharp" } },\n}\n')))),(0,r.kt)("h2",{id:"masonnvim"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/mason-org/mason.nvim"},"mason.nvim")),(0,r.kt)(o.Z,{mdxType:"Tabs"},(0,r.kt)(l.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = { ensure_installed = { "csharpier", "netcoredbg", "fantomas" } }\n'))),(0,r.kt)(l.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "mason-org/mason.nvim",\n opts = { ensure_installed = { "csharpier", "netcoredbg", "fantomas" } },\n}\n')))),(0,r.kt)("h2",{id:"nvim-lspconfig"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/neovim/nvim-lspconfig"},"nvim-lspconfig")),(0,r.kt)(o.Z,{mdxType:"Tabs"},(0,r.kt)(l.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = {\n servers = {\n fsautocomplete = {},\n omnisharp = {\n handlers = {\n ["textDocument/definition"] = function(...)\n return require("omnisharp_extended").handler(...)\n end,\n },\n keys = {\n {\n "gd",\n LazyVim.has("telescope.nvim") and function()\n require("omnisharp_extended").telescope_lsp_definitions()\n end or function()\n require("omnisharp_extended").lsp_definitions()\n end,\n desc = "Goto Definition",\n },\n },\n enable_roslyn_analyzers = true,\n organize_imports_on_format = true,\n enable_import_completion = true,\n },\n },\n}\n'))),(0,r.kt)(l.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "neovim/nvim-lspconfig",\n opts = {\n servers = {\n fsautocomplete = {},\n omnisharp = {\n handlers = {\n ["textDocument/definition"] = function(...)\n return require("omnisharp_extended").handler(...)\n end,\n },\n keys = {\n {\n "gd",\n LazyVim.has("telescope.nvim") and function()\n require("omnisharp_extended").telescope_lsp_definitions()\n end or function()\n require("omnisharp_extended").lsp_definitions()\n end,\n desc = "Goto Definition",\n },\n },\n enable_roslyn_analyzers = true,\n organize_imports_on_format = true,\n enable_import_completion = true,\n },\n },\n },\n}\n')))),(0,r.kt)("h2",{id:"neotest-vstest"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/Nsidorenco/neotest-vstest"},"neotest-vstest")),(0,r.kt)(o.Z,{mdxType:"Tabs"},(0,r.kt)(l.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},"opts = nil\n"))),(0,r.kt)(l.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "Nsidorenco/neotest-vstest",\n}\n')))),(0,r.kt)("h2",{id:"none-lsnvim-optional"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/nvimtools/none-ls.nvim"},"none-ls.nvim")," ",(0,r.kt)("em",{parentName:"h2"},"(optional)")),(0,r.kt)(o.Z,{mdxType:"Tabs"},(0,r.kt)(l.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = function(_, opts)\n local nls = require("null-ls")\n opts.sources = opts.sources or {}\n table.insert(opts.sources, nls.builtins.formatting.csharpier)\n table.insert(opts.sources, nls.builtins.formatting.fantomas)\nend\n'))),(0,r.kt)(l.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "nvimtools/none-ls.nvim",\n optional = true,\n opts = function(_, opts)\n local nls = require("null-ls")\n opts.sources = opts.sources or {}\n table.insert(opts.sources, nls.builtins.formatting.csharpier)\n table.insert(opts.sources, nls.builtins.formatting.fantomas)\n end,\n}\n')))),(0,r.kt)("h2",{id:"conformnvim-optional"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/stevearc/conform.nvim"},"conform.nvim")," ",(0,r.kt)("em",{parentName:"h2"},"(optional)")),(0,r.kt)(o.Z,{mdxType:"Tabs"},(0,r.kt)(l.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = {\n formatters_by_ft = {\n cs = { "csharpier" },\n fsharp = { "fantomas" },\n },\n}\n'))),(0,r.kt)(l.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "stevearc/conform.nvim",\n optional = true,\n opts = {\n formatters_by_ft = {\n cs = { "csharpier" },\n fsharp = { "fantomas" },\n },\n },\n}\n')))),(0,r.kt)("h2",{id:"nvim-dap-optional"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/mfussenegger/nvim-dap"},"nvim-dap")," ",(0,r.kt)("em",{parentName:"h2"},"(optional)")),(0,r.kt)(o.Z,{mdxType:"Tabs"},(0,r.kt)(l.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = function()\n local dap = require("dap")\n if not dap.adapters["netcoredbg"] then\n require("dap").adapters["netcoredbg"] = {\n type = "executable",\n command = vim.fn.exepath("netcoredbg"),\n args = { "--interpreter=vscode" },\n options = {\n detached = false,\n },\n }\n end\n for _, lang in ipairs({ "cs", "fsharp", "vb" }) do\n if not dap.configurations[lang] then\n dap.configurations[lang] = {\n {\n type = "netcoredbg",\n name = "Launch file",\n request = "launch",\n ---@diagnostic disable-next-line: redundant-parameter\n program = function()\n return vim.fn.input("Path to dll: ", vim.fn.getcwd() .. "/", "file")\n end,\n cwd = "${workspaceFolder}",\n },\n }\n end\n end\nend\n'))),(0,r.kt)(l.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "mfussenegger/nvim-dap",\n optional = true,\n opts = function()\n local dap = require("dap")\n if not dap.adapters["netcoredbg"] then\n require("dap").adapters["netcoredbg"] = {\n type = "executable",\n command = vim.fn.exepath("netcoredbg"),\n args = { "--interpreter=vscode" },\n options = {\n detached = false,\n },\n }\n end\n for _, lang in ipairs({ "cs", "fsharp", "vb" }) do\n if not dap.configurations[lang] then\n dap.configurations[lang] = {\n {\n type = "netcoredbg",\n name = "Launch file",\n request = "launch",\n ---@diagnostic disable-next-line: redundant-parameter\n program = function()\n return vim.fn.input("Path to dll: ", vim.fn.getcwd() .. "/", "file")\n end,\n cwd = "${workspaceFolder}",\n },\n }\n end\n end\n end,\n}\n')))),(0,r.kt)("h2",{id:"neotest-optional"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/nvim-neotest/neotest"},"neotest")," ",(0,r.kt)("em",{parentName:"h2"},"(optional)")),(0,r.kt)(o.Z,{mdxType:"Tabs"},(0,r.kt)(l.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = {\n adapters = {\n ["neotest-vstest"] = {\n -- Here we can set options for neotest-vstest\n },\n },\n}\n'))),(0,r.kt)(l.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "nvim-neotest/neotest",\n optional = true,\n dependencies = {\n "Nsidorenco/neotest-vstest",\n },\n opts = {\n adapters = {\n ["neotest-vstest"] = {\n -- Here we can set options for neotest-vstest\n },\n },\n },\n}\n')))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/cb39b597.6dc60dde.js b/assets/js/cb39b597.6dc60dde.js new file mode 100644 index 0000000000..43d31e3770 --- /dev/null +++ b/assets/js/cb39b597.6dc60dde.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklazyvim=self.webpackChunklazyvim||[]).push([[9787],{3905:(e,n,t)=>{t.d(n,{Zo:()=>c,kt:()=>f});var a=t(7294);function r(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function l(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,a)}return t}function o(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?l(Object(t),!0).forEach((function(n){r(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):l(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function s(e,n){if(null==e)return{};var t,a,r=function(e,n){if(null==e)return{};var t,a,r={},l=Object.keys(e);for(a=0;a<l.length;a++)t=l[a],n.indexOf(t)>=0||(r[t]=e[t]);return r}(e,n);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a<l.length;a++)t=l[a],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(r[t]=e[t])}return r}var i=a.createContext({}),u=function(e){var n=a.useContext(i),t=n;return e&&(t="function"==typeof e?e(n):o(o({},n),e)),t},c=function(e){var n=u(e.components);return a.createElement(i.Provider,{value:n},e.children)},m="mdxType",p={inlineCode:"code",wrapper:function(e){var n=e.children;return a.createElement(a.Fragment,{},n)}},d=a.forwardRef((function(e,n){var t=e.components,r=e.mdxType,l=e.originalType,i=e.parentName,c=s(e,["components","mdxType","originalType","parentName"]),m=u(t),d=r,f=m["".concat(i,".").concat(d)]||m[d]||p[d]||l;return t?a.createElement(f,o(o({ref:n},c),{},{components:t})):a.createElement(f,o({ref:n},c))}));function f(e,n){var t=arguments,r=n&&n.mdxType;if("string"==typeof e||r){var l=t.length,o=new Array(l);o[0]=d;var s={};for(var i in n)hasOwnProperty.call(n,i)&&(s[i]=n[i]);s.originalType=e,s[m]="string"==typeof e?e:r,o[1]=s;for(var u=2;u<l;u++)o[u]=t[u];return a.createElement.apply(null,o)}return a.createElement.apply(null,t)}d.displayName="MDXCreateElement"},5162:(e,n,t)=>{t.d(n,{Z:()=>o});var a=t(7294),r=t(6010);const l="tabItem_Ymn6";function o(e){let{children:n,hidden:t,className:o}=e;return a.createElement("div",{role:"tabpanel",className:(0,r.Z)(l,o),hidden:t},n)}},4866:(e,n,t)=>{t.d(n,{Z:()=>x});var a=t(7462),r=t(7294),l=t(6010),o=t(2466),s=t(6550),i=t(1980),u=t(7392),c=t(12);function m(e){return function(e){return r.Children.map(e,(e=>{if(!e||(0,r.isValidElement)(e)&&function(e){const{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:n,label:t,attributes:a,default:r}}=e;return{value:n,label:t,attributes:a,default:r}}))}function p(e){const{values:n,children:t}=e;return(0,r.useMemo)((()=>{const e=n??m(t);return function(e){const n=(0,u.l)(e,((e,n)=>e.value===n.value));if(n.length>0)throw new Error(`Docusaurus error: Duplicate values "${n.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[n,t])}function d(e){let{value:n,tabValues:t}=e;return t.some((e=>e.value===n))}function f(e){let{queryString:n=!1,groupId:t}=e;const a=(0,s.k6)(),l=function(e){let{queryString:n=!1,groupId:t}=e;if("string"==typeof n)return n;if(!1===n)return null;if(!0===n&&!t)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return t??null}({queryString:n,groupId:t});return[(0,i._X)(l),(0,r.useCallback)((e=>{if(!l)return;const n=new URLSearchParams(a.location.search);n.set(l,e),a.replace({...a.location,search:n.toString()})}),[l,a])]}function h(e){const{defaultValue:n,queryString:t=!1,groupId:a}=e,l=p(e),[o,s]=(0,r.useState)((()=>function(e){let{defaultValue:n,tabValues:t}=e;if(0===t.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(n){if(!d({value:n,tabValues:t}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${n}" but none of its children has the corresponding value. Available values are: ${t.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return n}const a=t.find((e=>e.default))??t[0];if(!a)throw new Error("Unexpected error: 0 tabValues");return a.value}({defaultValue:n,tabValues:l}))),[i,u]=f({queryString:t,groupId:a}),[m,h]=function(e){let{groupId:n}=e;const t=function(e){return e?`docusaurus.tab.${e}`:null}(n),[a,l]=(0,c.Nk)(t);return[a,(0,r.useCallback)((e=>{t&&l.set(e)}),[t,l])]}({groupId:a}),b=(()=>{const e=i??m;return d({value:e,tabValues:l})?e:null})();(0,r.useLayoutEffect)((()=>{b&&s(b)}),[b]);return{selectedValue:o,selectValue:(0,r.useCallback)((e=>{if(!d({value:e,tabValues:l}))throw new Error(`Can't select invalid tab value=${e}`);s(e),u(e),h(e)}),[u,h,l]),tabValues:l}}var b=t(2389);const y="tabList__CuJ",g="tabItem_LNqP";function v(e){let{className:n,block:t,selectedValue:s,selectValue:i,tabValues:u}=e;const c=[],{blockElementScrollPositionUntilNextRender:m}=(0,o.o5)(),p=e=>{const n=e.currentTarget,t=c.indexOf(n),a=u[t].value;a!==s&&(m(n),i(a))},d=e=>{let n=null;switch(e.key){case"Enter":p(e);break;case"ArrowRight":{const t=c.indexOf(e.currentTarget)+1;n=c[t]??c[0];break}case"ArrowLeft":{const t=c.indexOf(e.currentTarget)-1;n=c[t]??c[c.length-1];break}}n?.focus()};return r.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,l.Z)("tabs",{"tabs--block":t},n)},u.map((e=>{let{value:n,label:t,attributes:o}=e;return r.createElement("li",(0,a.Z)({role:"tab",tabIndex:s===n?0:-1,"aria-selected":s===n,key:n,ref:e=>c.push(e),onKeyDown:d,onClick:p},o,{className:(0,l.Z)("tabs__item",g,o?.className,{"tabs__item--active":s===n})}),t??n)})))}function k(e){let{lazy:n,children:t,selectedValue:a}=e;const l=(Array.isArray(t)?t:[t]).filter(Boolean);if(n){const e=l.find((e=>e.props.value===a));return e?(0,r.cloneElement)(e,{className:"margin-top--md"}):null}return r.createElement("div",{className:"margin-top--md"},l.map(((e,n)=>(0,r.cloneElement)(e,{key:n,hidden:e.props.value!==a}))))}function w(e){const n=h(e);return r.createElement("div",{className:(0,l.Z)("tabs-container",y)},r.createElement(v,(0,a.Z)({},e,n)),r.createElement(k,(0,a.Z)({},e,n)))}function x(e){const n=(0,b.Z)();return r.createElement(w,(0,a.Z)({key:String(n)},e))}},1286:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>i,default:()=>d,frontMatter:()=>s,metadata:()=>u,toc:()=>m});var a=t(7462),r=(t(7294),t(3905)),l=t(4866),o=t(5162);const s={},i="YAML",u={unversionedId:"extras/lang/yaml",id:"extras/lang/yaml",title:"YAML",description:"You can enable the extra with the :LazyExtras command.",source:"@site/docs/extras/lang/yaml.md",sourceDirName:"extras/lang",slug:"/extras/lang/yaml",permalink:"/extras/lang/yaml",draft:!1,editUrl:"https://github.com/LazyVim/lazyvim.github.io/tree/main/docs/extras/lang/yaml.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Vue",permalink:"/extras/lang/vue"},next:{title:"Zig",permalink:"/extras/lang/zig"}},c={},m=[{value:"SchemaStore.nvim",id:"schemastorenvim",level:2},{value:"nvim-lspconfig",id:"nvim-lspconfig",level:2}],p={toc:m};function d(e){let{components:n,...t}=e;return(0,r.kt)("wrapper",(0,a.Z)({},p,t,{components:n,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"yaml"},"YAML"),(0,r.kt)("admonition",{type:"info"},(0,r.kt)("p",{parentName:"admonition"},"You can enable the extra with the ",(0,r.kt)("inlineCode",{parentName:"p"},":LazyExtras")," command.\nPlugins marked as optional will only be configured if they are installed.")),(0,r.kt)("p",null,"Below you can find a list of included plugins and their default settings."),(0,r.kt)("admonition",{type:"caution"},(0,r.kt)("p",{parentName:"admonition"},"You don't need to copy the default settings to your config.\nThey are only shown here for reference.")),(0,r.kt)("h2",{id:"schemastorenvim"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/b0o/SchemaStore.nvim"},"SchemaStore.nvim")),(0,r.kt)("p",null," yaml schema support"),(0,r.kt)(l.Z,{mdxType:"Tabs"},(0,r.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},"opts = nil\n"))),(0,r.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "b0o/SchemaStore.nvim",\n lazy = true,\n version = false, -- last release is way too old\n}\n')))),(0,r.kt)("h2",{id:"nvim-lspconfig"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/neovim/nvim-lspconfig"},"nvim-lspconfig")),(0,r.kt)("p",null," correctly setup lspconfig"),(0,r.kt)(l.Z,{mdxType:"Tabs"},(0,r.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = {\n -- make sure mason installs the server\n servers = {\n yamlls = {\n -- Have to add this for yamlls to understand that we support line folding\n capabilities = {\n textDocument = {\n foldingRange = {\n dynamicRegistration = false,\n lineFoldingOnly = true,\n },\n },\n },\n -- lazy-load schemastore when needed\n before_init = function(_, new_config)\n new_config.settings.yaml.schemas = vim.tbl_deep_extend(\n "force",\n new_config.settings.yaml.schemas or {},\n require("schemastore").yaml.schemas()\n )\n end,\n settings = {\n redhat = { telemetry = { enabled = false } },\n yaml = {\n keyOrdering = false,\n format = {\n enable = true,\n },\n validate = true,\n schemaStore = {\n -- Must disable built-in schemaStore support to use\n -- schemas from SchemaStore.nvim plugin\n enable = false,\n -- Avoid TypeError: Cannot read properties of undefined (reading \'length\')\n url = "",\n },\n },\n },\n },\n },\n}\n'))),(0,r.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "neovim/nvim-lspconfig",\n opts = {\n -- make sure mason installs the server\n servers = {\n yamlls = {\n -- Have to add this for yamlls to understand that we support line folding\n capabilities = {\n textDocument = {\n foldingRange = {\n dynamicRegistration = false,\n lineFoldingOnly = true,\n },\n },\n },\n -- lazy-load schemastore when needed\n before_init = function(_, new_config)\n new_config.settings.yaml.schemas = vim.tbl_deep_extend(\n "force",\n new_config.settings.yaml.schemas or {},\n require("schemastore").yaml.schemas()\n )\n end,\n settings = {\n redhat = { telemetry = { enabled = false } },\n yaml = {\n keyOrdering = false,\n format = {\n enable = true,\n },\n validate = true,\n schemaStore = {\n -- Must disable built-in schemaStore support to use\n -- schemas from SchemaStore.nvim plugin\n enable = false,\n -- Avoid TypeError: Cannot read properties of undefined (reading \'length\')\n url = "",\n },\n },\n },\n },\n },\n },\n}\n')))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/cb7b2066.2e0e0dab.js b/assets/js/cb7b2066.2e0e0dab.js new file mode 100644 index 0000000000..a01c8993e6 --- /dev/null +++ b/assets/js/cb7b2066.2e0e0dab.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklazyvim=self.webpackChunklazyvim||[]).push([[3729],{3905:(e,n,t)=>{t.d(n,{Zo:()=>p,kt:()=>f});var a=t(7294);function r(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function l(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,a)}return t}function i(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?l(Object(t),!0).forEach((function(n){r(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):l(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function u(e,n){if(null==e)return{};var t,a,r=function(e,n){if(null==e)return{};var t,a,r={},l=Object.keys(e);for(a=0;a<l.length;a++)t=l[a],n.indexOf(t)>=0||(r[t]=e[t]);return r}(e,n);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a<l.length;a++)t=l[a],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(r[t]=e[t])}return r}var o=a.createContext({}),s=function(e){var n=a.useContext(o),t=n;return e&&(t="function"==typeof e?e(n):i(i({},n),e)),t},p=function(e){var n=s(e.components);return a.createElement(o.Provider,{value:n},e.children)},c="mdxType",d={inlineCode:"code",wrapper:function(e){var n=e.children;return a.createElement(a.Fragment,{},n)}},m=a.forwardRef((function(e,n){var t=e.components,r=e.mdxType,l=e.originalType,o=e.parentName,p=u(e,["components","mdxType","originalType","parentName"]),c=s(t),m=r,f=c["".concat(o,".").concat(m)]||c[m]||d[m]||l;return t?a.createElement(f,i(i({ref:n},p),{},{components:t})):a.createElement(f,i({ref:n},p))}));function f(e,n){var t=arguments,r=n&&n.mdxType;if("string"==typeof e||r){var l=t.length,i=new Array(l);i[0]=m;var u={};for(var o in n)hasOwnProperty.call(n,o)&&(u[o]=n[o]);u.originalType=e,u[c]="string"==typeof e?e:r,i[1]=u;for(var s=2;s<l;s++)i[s]=t[s];return a.createElement.apply(null,i)}return a.createElement.apply(null,t)}m.displayName="MDXCreateElement"},5162:(e,n,t)=>{t.d(n,{Z:()=>i});var a=t(7294),r=t(6010);const l="tabItem_Ymn6";function i(e){let{children:n,hidden:t,className:i}=e;return a.createElement("div",{role:"tabpanel",className:(0,r.Z)(l,i),hidden:t},n)}},4866:(e,n,t)=>{t.d(n,{Z:()=>x});var a=t(7462),r=t(7294),l=t(6010),i=t(2466),u=t(6550),o=t(1980),s=t(7392),p=t(12);function c(e){return function(e){return r.Children.map(e,(e=>{if(!e||(0,r.isValidElement)(e)&&function(e){const{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:n,label:t,attributes:a,default:r}}=e;return{value:n,label:t,attributes:a,default:r}}))}function d(e){const{values:n,children:t}=e;return(0,r.useMemo)((()=>{const e=n??c(t);return function(e){const n=(0,s.l)(e,((e,n)=>e.value===n.value));if(n.length>0)throw new Error(`Docusaurus error: Duplicate values "${n.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[n,t])}function m(e){let{value:n,tabValues:t}=e;return t.some((e=>e.value===n))}function f(e){let{queryString:n=!1,groupId:t}=e;const a=(0,u.k6)(),l=function(e){let{queryString:n=!1,groupId:t}=e;if("string"==typeof n)return n;if(!1===n)return null;if(!0===n&&!t)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return t??null}({queryString:n,groupId:t});return[(0,o._X)(l),(0,r.useCallback)((e=>{if(!l)return;const n=new URLSearchParams(a.location.search);n.set(l,e),a.replace({...a.location,search:n.toString()})}),[l,a])]}function b(e){const{defaultValue:n,queryString:t=!1,groupId:a}=e,l=d(e),[i,u]=(0,r.useState)((()=>function(e){let{defaultValue:n,tabValues:t}=e;if(0===t.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(n){if(!m({value:n,tabValues:t}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${n}" but none of its children has the corresponding value. Available values are: ${t.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return n}const a=t.find((e=>e.default))??t[0];if(!a)throw new Error("Unexpected error: 0 tabValues");return a.value}({defaultValue:n,tabValues:l}))),[o,s]=f({queryString:t,groupId:a}),[c,b]=function(e){let{groupId:n}=e;const t=function(e){return e?`docusaurus.tab.${e}`:null}(n),[a,l]=(0,p.Nk)(t);return[a,(0,r.useCallback)((e=>{t&&l.set(e)}),[t,l])]}({groupId:a}),h=(()=>{const e=o??c;return m({value:e,tabValues:l})?e:null})();(0,r.useLayoutEffect)((()=>{h&&u(h)}),[h]);return{selectedValue:i,selectValue:(0,r.useCallback)((e=>{if(!m({value:e,tabValues:l}))throw new Error(`Can't select invalid tab value=${e}`);u(e),s(e),b(e)}),[s,b,l]),tabValues:l}}var h=t(2389);const y="tabList__CuJ",g="tabItem_LNqP";function k(e){let{className:n,block:t,selectedValue:u,selectValue:o,tabValues:s}=e;const p=[],{blockElementScrollPositionUntilNextRender:c}=(0,i.o5)(),d=e=>{const n=e.currentTarget,t=p.indexOf(n),a=s[t].value;a!==u&&(c(n),o(a))},m=e=>{let n=null;switch(e.key){case"Enter":d(e);break;case"ArrowRight":{const t=p.indexOf(e.currentTarget)+1;n=p[t]??p[0];break}case"ArrowLeft":{const t=p.indexOf(e.currentTarget)-1;n=p[t]??p[p.length-1];break}}n?.focus()};return r.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,l.Z)("tabs",{"tabs--block":t},n)},s.map((e=>{let{value:n,label:t,attributes:i}=e;return r.createElement("li",(0,a.Z)({role:"tab",tabIndex:u===n?0:-1,"aria-selected":u===n,key:n,ref:e=>p.push(e),onKeyDown:m,onClick:d},i,{className:(0,l.Z)("tabs__item",g,i?.className,{"tabs__item--active":u===n})}),t??n)})))}function v(e){let{lazy:n,children:t,selectedValue:a}=e;const l=(Array.isArray(t)?t:[t]).filter(Boolean);if(n){const e=l.find((e=>e.props.value===a));return e?(0,r.cloneElement)(e,{className:"margin-top--md"}):null}return r.createElement("div",{className:"margin-top--md"},l.map(((e,n)=>(0,r.cloneElement)(e,{key:n,hidden:e.props.value!==a}))))}function T(e){const n=b(e);return r.createElement("div",{className:(0,l.Z)("tabs-container",y)},r.createElement(k,(0,a.Z)({},e,n)),r.createElement(v,(0,a.Z)({},e,n)))}function x(e){const n=(0,h.Z)();return r.createElement(T,(0,a.Z)({key:String(n)},e))}},3222:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>p,contentTitle:()=>o,default:()=>m,frontMatter:()=>u,metadata:()=>s,toc:()=>c});var a=t(7462),r=(t(7294),t(3905)),l=t(4866),i=t(5162);const u={},o="Luasnip",s={unversionedId:"extras/coding/luasnip",id:"extras/coding/luasnip",title:"Luasnip",description:"You can enable the extra with the :LazyExtras command.",source:"@site/docs/extras/coding/luasnip.md",sourceDirName:"extras/coding",slug:"/extras/coding/luasnip",permalink:"/extras/coding/luasnip",draft:!1,editUrl:"https://github.com/LazyVim/lazyvim.github.io/tree/main/docs/extras/coding/luasnip.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Blink",permalink:"/extras/coding/blink"},next:{title:"Mini-comment",permalink:"/extras/coding/mini-comment"}},p={},c=[{value:"LuaSnip",id:"luasnip-1",level:2},{value:"friendly-snippets",id:"friendly-snippets",level:2},{value:"LuaSnip",id:"luasnip-2",level:2},{value:"cmp_luasnip",id:"cmp_luasnip",level:2},{value:"nvim-cmp <em>(optional)</em>",id:"nvim-cmp-optional",level:2},{value:"blink.cmp <em>(optional)</em>",id:"blinkcmp-optional",level:2}],d={toc:c};function m(e){let{components:n,...t}=e;return(0,r.kt)("wrapper",(0,a.Z)({},d,t,{components:n,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"luasnip"},(0,r.kt)("inlineCode",{parentName:"h1"},"Luasnip")),(0,r.kt)("admonition",{type:"info"},(0,r.kt)("p",{parentName:"admonition"},"You can enable the extra with the ",(0,r.kt)("inlineCode",{parentName:"p"},":LazyExtras")," command.\nPlugins marked as optional will only be configured if they are installed.")),(0,r.kt)("p",null,"Below you can find a list of included plugins and their default settings."),(0,r.kt)("admonition",{type:"caution"},(0,r.kt)("p",{parentName:"admonition"},"You don't need to copy the default settings to your config.\nThey are only shown here for reference.")),(0,r.kt)("h2",{id:"luasnip-1"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/L3MON4D3/LuaSnip"},"LuaSnip")),(0,r.kt)("p",null," add luasnip"),(0,r.kt)(l.Z,{mdxType:"Tabs"},(0,r.kt)(i.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = {\n history = true,\n delete_check_events = "TextChanged",\n}\n'))),(0,r.kt)(i.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "L3MON4D3/LuaSnip",\n lazy = true,\n build = (not LazyVim.is_win())\n and "echo \'NOTE: jsregexp is optional, so not a big deal if it fails to build\'; make install_jsregexp"\n or nil,\n dependencies = {\n {\n "rafamadriz/friendly-snippets",\n config = function()\n require("luasnip.loaders.from_vscode").lazy_load()\n require("luasnip.loaders.from_vscode").lazy_load({ paths = { vim.fn.stdpath("config") .. "/snippets" } })\n end,\n },\n },\n opts = {\n history = true,\n delete_check_events = "TextChanged",\n },\n}\n')))),(0,r.kt)("h2",{id:"friendly-snippets"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/rafamadriz/friendly-snippets"},"friendly-snippets")),(0,r.kt)(l.Z,{mdxType:"Tabs"},(0,r.kt)(i.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},"opts = {}\n"))),(0,r.kt)(i.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "rafamadriz/friendly-snippets",\n config = function()\n require("luasnip.loaders.from_vscode").lazy_load()\n require("luasnip.loaders.from_vscode").lazy_load({ paths = { vim.fn.stdpath("config") .. "/snippets" } })\n end,\n}\n')))),(0,r.kt)("h2",{id:"luasnip-2"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/L3MON4D3/LuaSnip"},"LuaSnip")),(0,r.kt)("p",null," add snippet_forward action"),(0,r.kt)(l.Z,{mdxType:"Tabs"},(0,r.kt)(i.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = function()\n LazyVim.cmp.actions.snippet_forward = function()\n if require("luasnip").jumpable(1) then\n vim.schedule(function()\n require("luasnip").jump(1)\n end)\n return true\n end\n end\n LazyVim.cmp.actions.snippet_stop = function()\n if require("luasnip").expand_or_jumpable() then -- or just jumpable(1) is fine?\n require("luasnip").unlink_current()\n return true\n end\n end\nend\n'))),(0,r.kt)(i.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "L3MON4D3/LuaSnip",\n opts = function()\n LazyVim.cmp.actions.snippet_forward = function()\n if require("luasnip").jumpable(1) then\n vim.schedule(function()\n require("luasnip").jump(1)\n end)\n return true\n end\n end\n LazyVim.cmp.actions.snippet_stop = function()\n if require("luasnip").expand_or_jumpable() then -- or just jumpable(1) is fine?\n require("luasnip").unlink_current()\n return true\n end\n end\n end,\n}\n')))),(0,r.kt)("h2",{id:"cmp_luasnip"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/saadparwaiz1/cmp_luasnip"},"cmp_luasnip")),(0,r.kt)(l.Z,{mdxType:"Tabs"},(0,r.kt)(i.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},"opts = nil\n"))),(0,r.kt)(i.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{ "saadparwaiz1/cmp_luasnip" }\n')))),(0,r.kt)("h2",{id:"nvim-cmp-optional"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/hrsh7th/nvim-cmp"},"nvim-cmp")," ",(0,r.kt)("em",{parentName:"h2"},"(optional)")),(0,r.kt)("p",null," nvim-cmp integration"),(0,r.kt)(l.Z,{mdxType:"Tabs"},(0,r.kt)(i.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = function(_, opts)\n opts.snippet = {\n expand = function(args)\n require("luasnip").lsp_expand(args.body)\n end,\n }\n table.insert(opts.sources, { name = "luasnip" })\nend\n'))),(0,r.kt)(i.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "hrsh7th/nvim-cmp",\n optional = true,\n dependencies = { "saadparwaiz1/cmp_luasnip" },\n opts = function(_, opts)\n opts.snippet = {\n expand = function(args)\n require("luasnip").lsp_expand(args.body)\n end,\n }\n table.insert(opts.sources, { name = "luasnip" })\n end,\n -- stylua: ignore\n keys = {\n { "<tab>", function() require("luasnip").jump(1) end, mode = "s" },\n { "<s-tab>", function() require("luasnip").jump(-1) end, mode = { "i", "s" } },\n },\n}\n')))),(0,r.kt)("h2",{id:"blinkcmp-optional"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/saghen/blink.cmp"},"blink.cmp")," ",(0,r.kt)("em",{parentName:"h2"},"(optional)")),(0,r.kt)("p",null," blink.cmp integration"),(0,r.kt)(l.Z,{mdxType:"Tabs"},(0,r.kt)(i.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = {\n snippets = {\n preset = "luasnip",\n },\n}\n'))),(0,r.kt)(i.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "saghen/blink.cmp",\n optional = true,\n opts = {\n snippets = {\n preset = "luasnip",\n },\n },\n}\n')))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/ce2c62c8.8ec25b3f.js b/assets/js/ce2c62c8.8ec25b3f.js new file mode 100644 index 0000000000..b3ec309846 --- /dev/null +++ b/assets/js/ce2c62c8.8ec25b3f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklazyvim=self.webpackChunklazyvim||[]).push([[4412],{3905:(e,n,t)=>{t.d(n,{Zo:()=>s,kt:()=>b});var a=t(7294);function r(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function l(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,a)}return t}function i(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?l(Object(t),!0).forEach((function(n){r(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):l(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function o(e,n){if(null==e)return{};var t,a,r=function(e,n){if(null==e)return{};var t,a,r={},l=Object.keys(e);for(a=0;a<l.length;a++)t=l[a],n.indexOf(t)>=0||(r[t]=e[t]);return r}(e,n);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a<l.length;a++)t=l[a],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(r[t]=e[t])}return r}var u=a.createContext({}),c=function(e){var n=a.useContext(u),t=n;return e&&(t="function"==typeof e?e(n):i(i({},n),e)),t},s=function(e){var n=c(e.components);return a.createElement(u.Provider,{value:n},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var n=e.children;return a.createElement(a.Fragment,{},n)}},d=a.forwardRef((function(e,n){var t=e.components,r=e.mdxType,l=e.originalType,u=e.parentName,s=o(e,["components","mdxType","originalType","parentName"]),p=c(t),d=r,b=p["".concat(u,".").concat(d)]||p[d]||m[d]||l;return t?a.createElement(b,i(i({ref:n},s),{},{components:t})):a.createElement(b,i({ref:n},s))}));function b(e,n){var t=arguments,r=n&&n.mdxType;if("string"==typeof e||r){var l=t.length,i=new Array(l);i[0]=d;var o={};for(var u in n)hasOwnProperty.call(n,u)&&(o[u]=n[u]);o.originalType=e,o[p]="string"==typeof e?e:r,i[1]=o;for(var c=2;c<l;c++)i[c]=t[c];return a.createElement.apply(null,i)}return a.createElement.apply(null,t)}d.displayName="MDXCreateElement"},5162:(e,n,t)=>{t.d(n,{Z:()=>i});var a=t(7294),r=t(6010);const l="tabItem_Ymn6";function i(e){let{children:n,hidden:t,className:i}=e;return a.createElement("div",{role:"tabpanel",className:(0,r.Z)(l,i),hidden:t},n)}},4866:(e,n,t)=>{t.d(n,{Z:()=>N});var a=t(7462),r=t(7294),l=t(6010),i=t(2466),o=t(6550),u=t(1980),c=t(7392),s=t(12);function p(e){return function(e){return r.Children.map(e,(e=>{if(!e||(0,r.isValidElement)(e)&&function(e){const{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:n,label:t,attributes:a,default:r}}=e;return{value:n,label:t,attributes:a,default:r}}))}function m(e){const{values:n,children:t}=e;return(0,r.useMemo)((()=>{const e=n??p(t);return function(e){const n=(0,c.l)(e,((e,n)=>e.value===n.value));if(n.length>0)throw new Error(`Docusaurus error: Duplicate values "${n.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[n,t])}function d(e){let{value:n,tabValues:t}=e;return t.some((e=>e.value===n))}function b(e){let{queryString:n=!1,groupId:t}=e;const a=(0,o.k6)(),l=function(e){let{queryString:n=!1,groupId:t}=e;if("string"==typeof n)return n;if(!1===n)return null;if(!0===n&&!t)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return t??null}({queryString:n,groupId:t});return[(0,u._X)(l),(0,r.useCallback)((e=>{if(!l)return;const n=new URLSearchParams(a.location.search);n.set(l,e),a.replace({...a.location,search:n.toString()})}),[l,a])]}function f(e){const{defaultValue:n,queryString:t=!1,groupId:a}=e,l=m(e),[i,o]=(0,r.useState)((()=>function(e){let{defaultValue:n,tabValues:t}=e;if(0===t.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(n){if(!d({value:n,tabValues:t}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${n}" but none of its children has the corresponding value. Available values are: ${t.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return n}const a=t.find((e=>e.default))??t[0];if(!a)throw new Error("Unexpected error: 0 tabValues");return a.value}({defaultValue:n,tabValues:l}))),[u,c]=b({queryString:t,groupId:a}),[p,f]=function(e){let{groupId:n}=e;const t=function(e){return e?`docusaurus.tab.${e}`:null}(n),[a,l]=(0,s.Nk)(t);return[a,(0,r.useCallback)((e=>{t&&l.set(e)}),[t,l])]}({groupId:a}),h=(()=>{const e=u??p;return d({value:e,tabValues:l})?e:null})();(0,r.useLayoutEffect)((()=>{h&&o(h)}),[h]);return{selectedValue:i,selectValue:(0,r.useCallback)((e=>{if(!d({value:e,tabValues:l}))throw new Error(`Can't select invalid tab value=${e}`);o(e),c(e),f(e)}),[c,f,l]),tabValues:l}}var h=t(2389);const k="tabList__CuJ",g="tabItem_LNqP";function y(e){let{className:n,block:t,selectedValue:o,selectValue:u,tabValues:c}=e;const s=[],{blockElementScrollPositionUntilNextRender:p}=(0,i.o5)(),m=e=>{const n=e.currentTarget,t=s.indexOf(n),a=c[t].value;a!==o&&(p(n),u(a))},d=e=>{let n=null;switch(e.key){case"Enter":m(e);break;case"ArrowRight":{const t=s.indexOf(e.currentTarget)+1;n=s[t]??s[0];break}case"ArrowLeft":{const t=s.indexOf(e.currentTarget)-1;n=s[t]??s[s.length-1];break}}n?.focus()};return r.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,l.Z)("tabs",{"tabs--block":t},n)},c.map((e=>{let{value:n,label:t,attributes:i}=e;return r.createElement("li",(0,a.Z)({role:"tab",tabIndex:o===n?0:-1,"aria-selected":o===n,key:n,ref:e=>s.push(e),onKeyDown:d,onClick:m},i,{className:(0,l.Z)("tabs__item",g,i?.className,{"tabs__item--active":o===n})}),t??n)})))}function v(e){let{lazy:n,children:t,selectedValue:a}=e;const l=(Array.isArray(t)?t:[t]).filter(Boolean);if(n){const e=l.find((e=>e.props.value===a));return e?(0,r.cloneElement)(e,{className:"margin-top--md"}):null}return r.createElement("div",{className:"margin-top--md"},l.map(((e,n)=>(0,r.cloneElement)(e,{key:n,hidden:e.props.value!==a}))))}function T(e){const n=f(e);return r.createElement("div",{className:(0,l.Z)("tabs-container",k)},r.createElement(y,(0,a.Z)({},e,n)),r.createElement(v,(0,a.Z)({},e,n)))}function N(e){const n=(0,h.Z)();return r.createElement(T,(0,a.Z)({key:String(n)},e))}},2651:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>s,contentTitle:()=>u,default:()=>d,frontMatter:()=>o,metadata:()=>c,toc:()=>p});var a=t(7462),r=(t(7294),t(3905)),l=t(4866),i=t(5162);const o={},u="Tabnine",c={unversionedId:"extras/ai/tabnine",id:"extras/ai/tabnine",title:"Tabnine",description:"You can enable the extra with the :LazyExtras command.",source:"@site/docs/extras/ai/tabnine.md",sourceDirName:"extras/ai",slug:"/extras/ai/tabnine",permalink:"/extras/ai/tabnine",draft:!1,editUrl:"https://github.com/LazyVim/lazyvim.github.io/tree/main/docs/extras/ai/tabnine.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Supermaven",permalink:"/extras/ai/supermaven"},next:{title:"Blink",permalink:"/extras/coding/blink"}},s={},p=[{value:"cmp-tabnine",id:"cmp-tabnine",level:2},{value:"cmp-tabnine",id:"cmp-tabnine-1",level:2},{value:"cmp-tabnine",id:"cmp-tabnine-2",level:2},{value:"blink.compat",id:"blinkcompat",level:2},{value:"nvim-cmp <em>(optional)</em>",id:"nvim-cmp-optional",level:2},{value:"blink.cmp <em>(optional)</em>",id:"blinkcmp-optional",level:2},{value:"lualine.nvim <em>(optional)</em>",id:"lualinenvim-optional",level:2}],m={toc:p};function d(e){let{components:n,...t}=e;return(0,r.kt)("wrapper",(0,a.Z)({},m,t,{components:n,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"tabnine"},(0,r.kt)("inlineCode",{parentName:"h1"},"Tabnine")),(0,r.kt)("admonition",{type:"info"},(0,r.kt)("p",{parentName:"admonition"},"You can enable the extra with the ",(0,r.kt)("inlineCode",{parentName:"p"},":LazyExtras")," command.\nPlugins marked as optional will only be configured if they are installed.")),(0,r.kt)("p",null,"Below you can find a list of included plugins and their default settings."),(0,r.kt)("admonition",{type:"caution"},(0,r.kt)("p",{parentName:"admonition"},"You don't need to copy the default settings to your config.\nThey are only shown here for reference.")),(0,r.kt)("h2",{id:"cmp-tabnine"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/tzachar/cmp-tabnine"},"cmp-tabnine")),(0,r.kt)("p",null," Tabnine cmp source"),(0,r.kt)(l.Z,{mdxType:"Tabs"},(0,r.kt)(i.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},"opts = {\n max_lines = 1000,\n max_num_results = 3,\n sort = true,\n}\n"))),(0,r.kt)(i.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "tzachar/cmp-tabnine",\n build = LazyVim.is_win() and "pwsh -noni .\\\\install.ps1" or "./install.sh",\n opts = {\n max_lines = 1000,\n max_num_results = 3,\n sort = true,\n },\n config = function(_, opts)\n require("cmp_tabnine.config"):setup(opts)\n end,\n}\n')))),(0,r.kt)("h2",{id:"cmp-tabnine-1"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/tzachar/cmp-tabnine"},"cmp-tabnine")),(0,r.kt)(l.Z,{mdxType:"Tabs"},(0,r.kt)(i.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},"opts = nil\n"))),(0,r.kt)(i.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{ "tzachar/cmp-tabnine" }\n')))),(0,r.kt)("h2",{id:"cmp-tabnine-2"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/tzachar/cmp-tabnine"},"cmp-tabnine")),(0,r.kt)(l.Z,{mdxType:"Tabs"},(0,r.kt)(i.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},"opts = nil\n"))),(0,r.kt)(i.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{ "tzachar/cmp-tabnine", "saghen/blink.compat" }\n')))),(0,r.kt)("h2",{id:"blinkcompat"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/saghen/blink.compat"},"blink.compat")),(0,r.kt)(l.Z,{mdxType:"Tabs"},(0,r.kt)(i.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},"opts = nil\n"))),(0,r.kt)(i.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'"saghen/blink.compat"\n')))),(0,r.kt)("h2",{id:"nvim-cmp-optional"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/hrsh7th/nvim-cmp"},"nvim-cmp")," ",(0,r.kt)("em",{parentName:"h2"},"(optional)")),(0,r.kt)(l.Z,{mdxType:"Tabs"},(0,r.kt)(i.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = function(_, opts)\n table.insert(opts.sources, 1, {\n name = "cmp_tabnine",\n group_index = 1,\n priority = 100,\n })\n\n opts.formatting.format = LazyVim.inject.args(opts.formatting.format, function(entry, item)\n -- Hide percentage in the menu\n if entry.source.name == "cmp_tabnine" then\n item.menu = ""\n end\n end)\nend\n'))),(0,r.kt)(i.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "hrsh7th/nvim-cmp",\n optional = true,\n dependencies = { "tzachar/cmp-tabnine" },\n ---@param opts cmp.ConfigSchema\n opts = function(_, opts)\n table.insert(opts.sources, 1, {\n name = "cmp_tabnine",\n group_index = 1,\n priority = 100,\n })\n\n opts.formatting.format = LazyVim.inject.args(opts.formatting.format, function(entry, item)\n -- Hide percentage in the menu\n if entry.source.name == "cmp_tabnine" then\n item.menu = ""\n end\n end)\n end,\n}\n')))),(0,r.kt)("h2",{id:"blinkcmp-optional"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/saghen/blink.cmp"},"blink.cmp")," ",(0,r.kt)("em",{parentName:"h2"},"(optional)")),(0,r.kt)(l.Z,{mdxType:"Tabs"},(0,r.kt)(i.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = {\n sources = {\n compat = { "cmp_tabnine" },\n providers = {\n cmp_tabnine = {\n kind = "TabNine",\n score_offset = 100,\n async = true,\n },\n },\n },\n}\n'))),(0,r.kt)(i.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "saghen/blink.cmp",\n optional = true,\n dependencies = { "tzachar/cmp-tabnine", "saghen/blink.compat" },\n opts = {\n sources = {\n compat = { "cmp_tabnine" },\n providers = {\n cmp_tabnine = {\n kind = "TabNine",\n score_offset = 100,\n async = true,\n },\n },\n },\n },\n}\n')))),(0,r.kt)("h2",{id:"lualinenvim-optional"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/nvim-lualine/lualine.nvim"},"lualine.nvim")," ",(0,r.kt)("em",{parentName:"h2"},"(optional)")),(0,r.kt)("p",null," Show TabNine status in lualine"),(0,r.kt)(l.Z,{mdxType:"Tabs"},(0,r.kt)(i.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = function(_, opts)\n local icon = LazyVim.config.icons.kinds.TabNine\n table.insert(opts.sections.lualine_x, 2, LazyVim.lualine.cmp_source("cmp_tabnine", icon))\nend\n'))),(0,r.kt)(i.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "nvim-lualine/lualine.nvim",\n optional = true,\n event = "VeryLazy",\n opts = function(_, opts)\n local icon = LazyVim.config.icons.kinds.TabNine\n table.insert(opts.sections.lualine_x, 2, LazyVim.lualine.cmp_source("cmp_tabnine", icon))\n end,\n}\n')))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/d2c17782.451045e3.js b/assets/js/d2c17782.451045e3.js new file mode 100644 index 0000000000..0f11ad27d8 --- /dev/null +++ b/assets/js/d2c17782.451045e3.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklazyvim=self.webpackChunklazyvim||[]).push([[5831],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>f});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?l(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):l(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function i(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},l=Object.keys(e);for(r=0;r<l.length;r++)n=l[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r<l.length;r++)n=l[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var u=r.createContext({}),s=function(e){var t=r.useContext(u),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},c=function(e){var t=s(e.components);return r.createElement(u.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,l=e.originalType,u=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),p=s(n),d=a,f=p["".concat(u,".").concat(d)]||p[d]||m[d]||l;return n?r.createElement(f,o(o({ref:t},c),{},{components:n})):r.createElement(f,o({ref:t},c))}));function f(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var l=n.length,o=new Array(l);o[0]=d;var i={};for(var u in t)hasOwnProperty.call(t,u)&&(i[u]=t[u]);i.originalType=e,i[p]="string"==typeof e?e:a,o[1]=i;for(var s=2;s<l;s++)o[s]=n[s];return r.createElement.apply(null,o)}return r.createElement.apply(null,n)}d.displayName="MDXCreateElement"},5162:(e,t,n)=>{n.d(t,{Z:()=>o});var r=n(7294),a=n(6010);const l="tabItem_Ymn6";function o(e){let{children:t,hidden:n,className:o}=e;return r.createElement("div",{role:"tabpanel",className:(0,a.Z)(l,o),hidden:n},t)}},4866:(e,t,n)=>{n.d(t,{Z:()=>E});var r=n(7462),a=n(7294),l=n(6010),o=n(2466),i=n(6550),u=n(1980),s=n(7392),c=n(12);function p(e){return function(e){return a.Children.map(e,(e=>{if(!e||(0,a.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:t,label:n,attributes:r,default:a}}=e;return{value:t,label:n,attributes:r,default:a}}))}function m(e){const{values:t,children:n}=e;return(0,a.useMemo)((()=>{const e=t??p(n);return function(e){const t=(0,s.l)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[t,n])}function d(e){let{value:t,tabValues:n}=e;return n.some((e=>e.value===t))}function f(e){let{queryString:t=!1,groupId:n}=e;const r=(0,i.k6)(),l=function(e){let{queryString:t=!1,groupId:n}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!n)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return n??null}({queryString:t,groupId:n});return[(0,u._X)(l),(0,a.useCallback)((e=>{if(!l)return;const t=new URLSearchParams(r.location.search);t.set(l,e),r.replace({...r.location,search:t.toString()})}),[l,r])]}function b(e){const{defaultValue:t,queryString:n=!1,groupId:r}=e,l=m(e),[o,i]=(0,a.useState)((()=>function(e){let{defaultValue:t,tabValues:n}=e;if(0===n.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(t){if(!d({value:t,tabValues:n}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${n.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const r=n.find((e=>e.default))??n[0];if(!r)throw new Error("Unexpected error: 0 tabValues");return r.value}({defaultValue:t,tabValues:l}))),[u,s]=f({queryString:n,groupId:r}),[p,b]=function(e){let{groupId:t}=e;const n=function(e){return e?`docusaurus.tab.${e}`:null}(t),[r,l]=(0,c.Nk)(n);return[r,(0,a.useCallback)((e=>{n&&l.set(e)}),[n,l])]}({groupId:r}),y=(()=>{const e=u??p;return d({value:e,tabValues:l})?e:null})();(0,a.useLayoutEffect)((()=>{y&&i(y)}),[y]);return{selectedValue:o,selectValue:(0,a.useCallback)((e=>{if(!d({value:e,tabValues:l}))throw new Error(`Can't select invalid tab value=${e}`);i(e),s(e),b(e)}),[s,b,l]),tabValues:l}}var y=n(2389);const g="tabList__CuJ",h="tabItem_LNqP";function v(e){let{className:t,block:n,selectedValue:i,selectValue:u,tabValues:s}=e;const c=[],{blockElementScrollPositionUntilNextRender:p}=(0,o.o5)(),m=e=>{const t=e.currentTarget,n=c.indexOf(t),r=s[n].value;r!==i&&(p(t),u(r))},d=e=>{let t=null;switch(e.key){case"Enter":m(e);break;case"ArrowRight":{const n=c.indexOf(e.currentTarget)+1;t=c[n]??c[0];break}case"ArrowLeft":{const n=c.indexOf(e.currentTarget)-1;t=c[n]??c[c.length-1];break}}t?.focus()};return a.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,l.Z)("tabs",{"tabs--block":n},t)},s.map((e=>{let{value:t,label:n,attributes:o}=e;return a.createElement("li",(0,r.Z)({role:"tab",tabIndex:i===t?0:-1,"aria-selected":i===t,key:t,ref:e=>c.push(e),onKeyDown:d,onClick:m},o,{className:(0,l.Z)("tabs__item",h,o?.className,{"tabs__item--active":i===t})}),n??t)})))}function k(e){let{lazy:t,children:n,selectedValue:r}=e;const l=(Array.isArray(n)?n:[n]).filter(Boolean);if(t){const e=l.find((e=>e.props.value===r));return e?(0,a.cloneElement)(e,{className:"margin-top--md"}):null}return a.createElement("div",{className:"margin-top--md"},l.map(((e,t)=>(0,a.cloneElement)(e,{key:t,hidden:e.props.value!==r}))))}function w(e){const t=b(e);return a.createElement("div",{className:(0,l.Z)("tabs-container",g)},a.createElement(v,(0,r.Z)({},e,t)),a.createElement(k,(0,r.Z)({},e,t)))}function E(e){const t=(0,y.Z)();return a.createElement(w,(0,r.Z)({key:String(t)},e))}},946:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>u,default:()=>d,frontMatter:()=>i,metadata:()=>s,toc:()=>p});var r=n(7462),a=(n(7294),n(3905)),l=n(4866),o=n(5162);const i={},u="Gitui",s={unversionedId:"extras/util/gitui",id:"extras/util/gitui",title:"Gitui",description:"You can enable the extra with the :LazyExtras command.",source:"@site/docs/extras/util/gitui.md",sourceDirName:"extras/util",slug:"/extras/util/gitui",permalink:"/extras/util/gitui",draft:!1,editUrl:"https://github.com/LazyVim/lazyvim.github.io/tree/main/docs/extras/util/gitui.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Gh",permalink:"/extras/util/gh"},next:{title:"Mini Hipatterns",permalink:"/extras/util/mini-hipatterns"}},c={},p=[{value:"mason.nvim",id:"masonnvim",level:2}],m={toc:p};function d(e){let{components:t,...n}=e;return(0,a.kt)("wrapper",(0,r.Z)({},m,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"gitui"},(0,a.kt)("inlineCode",{parentName:"h1"},"Gitui")),(0,a.kt)("admonition",{type:"info"},(0,a.kt)("p",{parentName:"admonition"},"You can enable the extra with the ",(0,a.kt)("inlineCode",{parentName:"p"},":LazyExtras")," command.\nPlugins marked as optional will only be configured if they are installed.")),(0,a.kt)("p",null,"Below you can find a list of included plugins and their default settings."),(0,a.kt)("admonition",{type:"caution"},(0,a.kt)("p",{parentName:"admonition"},"You don't need to copy the default settings to your config.\nThey are only shown here for reference.")),(0,a.kt)("h2",{id:"masonnvim"},(0,a.kt)("a",{parentName:"h2",href:"https://github.com/mason-org/mason.nvim"},"mason.nvim")),(0,a.kt)("p",null," Ensure GitUI tool is installed"),(0,a.kt)(l.Z,{mdxType:"Tabs"},(0,a.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'opts = { ensure_installed = { "gitui" } }\n'))),(0,a.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "mason-org/mason.nvim",\n opts = { ensure_installed = { "gitui" } },\n keys = {\n {\n "<leader>gG",\n function()\n Snacks.terminal({ "gitui" })\n end,\n desc = "GitUi (cwd)",\n },\n {\n "<leader>gg",\n function()\n Snacks.terminal({ "gitui" }, { cwd = LazyVim.root.get() })\n end,\n desc = "GitUi (Root Dir)",\n },\n },\n init = function()\n -- delete lazygit keymap for file history\n vim.api.nvim_create_autocmd("User", {\n pattern = "LazyVimKeymaps",\n once = true,\n callback = function()\n pcall(vim.keymap.del, "n", "<leader>gf")\n pcall(vim.keymap.del, "n", "<leader>gl")\n end,\n })\n end,\n}\n')))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/d5ec2c0d.7b42fb71.js b/assets/js/d5ec2c0d.7b42fb71.js new file mode 100644 index 0000000000..be744a8906 --- /dev/null +++ b/assets/js/d5ec2c0d.7b42fb71.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklazyvim=self.webpackChunklazyvim||[]).push([[3503],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>d});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function l(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function i(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var s=r.createContext({}),u=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},c=function(e){var t=u(e.components);return r.createElement(s.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},f=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,s=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),p=u(n),f=a,d=p["".concat(s,".").concat(f)]||p[f]||m[f]||o;return n?r.createElement(d,l(l({ref:t},c),{},{components:n})):r.createElement(d,l({ref:t},c))}));function d(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,l=new Array(o);l[0]=f;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[p]="string"==typeof e?e:a,l[1]=i;for(var u=2;u<o;u++)l[u]=n[u];return r.createElement.apply(null,l)}return r.createElement.apply(null,n)}f.displayName="MDXCreateElement"},5162:(e,t,n)=>{n.d(t,{Z:()=>l});var r=n(7294),a=n(6010);const o="tabItem_Ymn6";function l(e){let{children:t,hidden:n,className:l}=e;return r.createElement("div",{role:"tabpanel",className:(0,a.Z)(o,l),hidden:n},t)}},4866:(e,t,n)=>{n.d(t,{Z:()=>x});var r=n(7462),a=n(7294),o=n(6010),l=n(2466),i=n(6550),s=n(1980),u=n(7392),c=n(12);function p(e){return function(e){return a.Children.map(e,(e=>{if(!e||(0,a.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:t,label:n,attributes:r,default:a}}=e;return{value:t,label:n,attributes:r,default:a}}))}function m(e){const{values:t,children:n}=e;return(0,a.useMemo)((()=>{const e=t??p(n);return function(e){const t=(0,u.l)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[t,n])}function f(e){let{value:t,tabValues:n}=e;return n.some((e=>e.value===t))}function d(e){let{queryString:t=!1,groupId:n}=e;const r=(0,i.k6)(),o=function(e){let{queryString:t=!1,groupId:n}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!n)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return n??null}({queryString:t,groupId:n});return[(0,s._X)(o),(0,a.useCallback)((e=>{if(!o)return;const t=new URLSearchParams(r.location.search);t.set(o,e),r.replace({...r.location,search:t.toString()})}),[o,r])]}function b(e){const{defaultValue:t,queryString:n=!1,groupId:r}=e,o=m(e),[l,i]=(0,a.useState)((()=>function(e){let{defaultValue:t,tabValues:n}=e;if(0===n.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(t){if(!f({value:t,tabValues:n}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${n.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const r=n.find((e=>e.default))??n[0];if(!r)throw new Error("Unexpected error: 0 tabValues");return r.value}({defaultValue:t,tabValues:o}))),[s,u]=d({queryString:n,groupId:r}),[p,b]=function(e){let{groupId:t}=e;const n=function(e){return e?`docusaurus.tab.${e}`:null}(t),[r,o]=(0,c.Nk)(n);return[r,(0,a.useCallback)((e=>{n&&o.set(e)}),[n,o])]}({groupId:r}),v=(()=>{const e=s??p;return f({value:e,tabValues:o})?e:null})();(0,a.useLayoutEffect)((()=>{v&&i(v)}),[v]);return{selectedValue:l,selectValue:(0,a.useCallback)((e=>{if(!f({value:e,tabValues:o}))throw new Error(`Can't select invalid tab value=${e}`);i(e),u(e),b(e)}),[u,b,o]),tabValues:o}}var v=n(2389);const g="tabList__CuJ",y="tabItem_LNqP";function h(e){let{className:t,block:n,selectedValue:i,selectValue:s,tabValues:u}=e;const c=[],{blockElementScrollPositionUntilNextRender:p}=(0,l.o5)(),m=e=>{const t=e.currentTarget,n=c.indexOf(t),r=u[n].value;r!==i&&(p(t),s(r))},f=e=>{let t=null;switch(e.key){case"Enter":m(e);break;case"ArrowRight":{const n=c.indexOf(e.currentTarget)+1;t=c[n]??c[0];break}case"ArrowLeft":{const n=c.indexOf(e.currentTarget)-1;t=c[n]??c[c.length-1];break}}t?.focus()};return a.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,o.Z)("tabs",{"tabs--block":n},t)},u.map((e=>{let{value:t,label:n,attributes:l}=e;return a.createElement("li",(0,r.Z)({role:"tab",tabIndex:i===t?0:-1,"aria-selected":i===t,key:t,ref:e=>c.push(e),onKeyDown:f,onClick:m},l,{className:(0,o.Z)("tabs__item",y,l?.className,{"tabs__item--active":i===t})}),n??t)})))}function k(e){let{lazy:t,children:n,selectedValue:r}=e;const o=(Array.isArray(n)?n:[n]).filter(Boolean);if(t){const e=o.find((e=>e.props.value===r));return e?(0,a.cloneElement)(e,{className:"margin-top--md"}):null}return a.createElement("div",{className:"margin-top--md"},o.map(((e,t)=>(0,a.cloneElement)(e,{key:t,hidden:e.props.value!==r}))))}function _(e){const t=b(e);return a.createElement("div",{className:(0,o.Z)("tabs-container",g)},a.createElement(h,(0,r.Z)({},e,t)),a.createElement(k,(0,r.Z)({},e,t)))}function x(e){const t=(0,v.Z)();return a.createElement(_,(0,r.Z)({key:String(t)},e))}},7632:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>s,default:()=>f,frontMatter:()=>i,metadata:()=>u,toc:()=>p});var r=n(7462),a=(n(7294),n(3905)),o=n(4866),l=n(5162);const i={},s="Prettier",u={unversionedId:"extras/formatting/prettier",id:"extras/formatting/prettier",title:"Prettier",description:"You can enable the extra with the :LazyExtras command.",source:"@site/docs/extras/formatting/prettier.md",sourceDirName:"extras/formatting",slug:"/extras/formatting/prettier",permalink:"/extras/formatting/prettier",draft:!1,editUrl:"https://github.com/LazyVim/lazyvim.github.io/tree/main/docs/extras/formatting/prettier.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Black Formatter",permalink:"/extras/formatting/black"},next:{title:"Angular",permalink:"/extras/lang/angular"}},c={},p=[{value:"Options",id:"options",level:3},{value:"mason.nvim",id:"masonnvim",level:2},{value:"conform.nvim <em>(optional)</em>",id:"conformnvim-optional",level:2},{value:"none-ls.nvim <em>(optional)</em>",id:"none-lsnvim-optional",level:2}],m={toc:p};function f(e){let{components:t,...n}=e;return(0,a.kt)("wrapper",(0,r.Z)({},m,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"prettier"},"Prettier"),(0,a.kt)("admonition",{type:"info"},(0,a.kt)("p",{parentName:"admonition"},"You can enable the extra with the ",(0,a.kt)("inlineCode",{parentName:"p"},":LazyExtras")," command.\nPlugins marked as optional will only be configured if they are installed.")),(0,a.kt)("h3",{id:"options"},"Options"),(0,a.kt)("p",null,"Additional options for this extra can be configured in your ",(0,a.kt)("a",{parentName:"p",href:"/configuration/general#options"},"lua/config/options.lua")," file:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua",metastring:'title="lua/config/options.lua"',title:'"lua/config/options.lua"'},"-- Enable the option to require a Prettier config file\n-- If no prettier config file is found, the formatter will not be used\nvim.g.lazyvim_prettier_needs_config = false\n")),(0,a.kt)("p",null,"Below you can find a list of included plugins and their default settings."),(0,a.kt)("admonition",{type:"caution"},(0,a.kt)("p",{parentName:"admonition"},"You don't need to copy the default settings to your config.\nThey are only shown here for reference.")),(0,a.kt)("h2",{id:"masonnvim"},(0,a.kt)("a",{parentName:"h2",href:"https://github.com/mason-org/mason.nvim"},"mason.nvim")),(0,a.kt)(o.Z,{mdxType:"Tabs"},(0,a.kt)(l.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'opts = { ensure_installed = { "prettier" } }\n'))),(0,a.kt)(l.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "mason-org/mason.nvim",\n opts = { ensure_installed = { "prettier" } },\n}\n')))),(0,a.kt)("h2",{id:"conformnvim-optional"},(0,a.kt)("a",{parentName:"h2",href:"https://github.com/stevearc/conform.nvim"},"conform.nvim")," ",(0,a.kt)("em",{parentName:"h2"},"(optional)")),(0,a.kt)("p",null," conform"),(0,a.kt)(o.Z,{mdxType:"Tabs"},(0,a.kt)(l.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'opts = function(_, opts)\n opts.formatters_by_ft = opts.formatters_by_ft or {}\n for _, ft in ipairs(supported) do\n opts.formatters_by_ft[ft] = opts.formatters_by_ft[ft] or {}\n table.insert(opts.formatters_by_ft[ft], "prettier")\n end\n\n opts.formatters = opts.formatters or {}\n opts.formatters.prettier = {\n condition = function(_, ctx)\n return M.has_parser(ctx) and (vim.g.lazyvim_prettier_needs_config ~= true or M.has_config(ctx))\n end,\n }\nend\n'))),(0,a.kt)(l.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "stevearc/conform.nvim",\n optional = true,\n ---@param opts ConformOpts\n opts = function(_, opts)\n opts.formatters_by_ft = opts.formatters_by_ft or {}\n for _, ft in ipairs(supported) do\n opts.formatters_by_ft[ft] = opts.formatters_by_ft[ft] or {}\n table.insert(opts.formatters_by_ft[ft], "prettier")\n end\n\n opts.formatters = opts.formatters or {}\n opts.formatters.prettier = {\n condition = function(_, ctx)\n return M.has_parser(ctx) and (vim.g.lazyvim_prettier_needs_config ~= true or M.has_config(ctx))\n end,\n }\n end,\n}\n')))),(0,a.kt)("h2",{id:"none-lsnvim-optional"},(0,a.kt)("a",{parentName:"h2",href:"https://github.com/nvimtools/none-ls.nvim"},"none-ls.nvim")," ",(0,a.kt)("em",{parentName:"h2"},"(optional)")),(0,a.kt)("p",null," none-ls support"),(0,a.kt)(o.Z,{mdxType:"Tabs"},(0,a.kt)(l.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'opts = function(_, opts)\n local nls = require("null-ls")\n opts.sources = opts.sources or {}\n table.insert(opts.sources, nls.builtins.formatting.prettier)\nend\n'))),(0,a.kt)(l.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "nvimtools/none-ls.nvim",\n optional = true,\n opts = function(_, opts)\n local nls = require("null-ls")\n opts.sources = opts.sources or {}\n table.insert(opts.sources, nls.builtins.formatting.prettier)\n end,\n}\n')))))}f.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/d662f31a.96cfee31.js b/assets/js/d662f31a.96cfee31.js new file mode 100644 index 0000000000..5ab51a60ce --- /dev/null +++ b/assets/js/d662f31a.96cfee31.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklazyvim=self.webpackChunklazyvim||[]).push([[277],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>d});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function o(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?i(Object(n),!0).forEach((function(t){r(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):i(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function l(e,t){if(null==e)return{};var n,a,r=function(e,t){if(null==e)return{};var n,a,r={},i=Object.keys(e);for(a=0;a<i.length;a++)n=i[a],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a<i.length;a++)n=i[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var s=a.createContext({}),p=function(e){var t=a.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},u=function(e){var t=p(e.components);return a.createElement(s.Provider,{value:t},e.children)},m="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},y=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,i=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),m=p(n),y=r,d=m["".concat(s,".").concat(y)]||m[y]||c[y]||i;return n?a.createElement(d,o(o({ref:t},u),{},{components:n})):a.createElement(d,o({ref:t},u))}));function d(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=n.length,o=new Array(i);o[0]=y;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[m]="string"==typeof e?e:r,o[1]=l;for(var p=2;p<i;p++)o[p]=n[p];return a.createElement.apply(null,o)}return a.createElement.apply(null,n)}y.displayName="MDXCreateElement"},6214:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>m,frontMatter:()=>i,metadata:()=>l,toc:()=>p});var a=n(7462),r=(n(7294),n(3905));const i={sidebar_position:1},o="lazy.nvim",l={unversionedId:"configuration/lazy.nvim",id:"configuration/lazy.nvim",title:"lazy.nvim",description:"The starter includes a pre-configured lazy.nvim",source:"@site/docs/configuration/lazy.nvim.md",sourceDirName:"configuration",slug:"/configuration/lazy.nvim",permalink:"/configuration/lazy.nvim",draft:!1,editUrl:"https://github.com/LazyVim/lazyvim.github.io/tree/main/docs/configuration/lazy.nvim.md",tags:[],version:"current",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"tutorialSidebar",previous:{title:"\u2699\ufe0f Configuration",permalink:"/configuration/"},next:{title:"General Settings",permalink:"/configuration/general"}},s={},p=[],u={toc:p};function m(e){let{components:t,...n}=e;return(0,r.kt)("wrapper",(0,a.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"lazynvim"},"lazy.nvim"),(0,r.kt)("p",null,"The ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/LazyVim/starter"},"starter")," includes a pre-configured ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/folke/lazy.nvim"},"lazy.nvim"),"\nsetup that installs the ",(0,r.kt)("strong",{parentName:"p"},"LazyVim")," plugin and imports its plugins."),(0,r.kt)("admonition",{type:"tip"},(0,r.kt)("p",{parentName:"admonition"},"The version for ",(0,r.kt)("strong",{parentName:"p"},"lazy.nvim")," and ",(0,r.kt)("strong",{parentName:"p"},"LazyVim")," will default to the latest\nstable release."),(0,r.kt)("p",{parentName:"admonition"},"If you'd rather use the latest development version, add the code below\nto your specs:"),(0,r.kt)("pre",{parentName:"admonition"},(0,r.kt)("code",{parentName:"pre",className:"language-lua",metastring:'title="lua/plugins/core.lua"',title:'"lua/plugins/core.lua"'},'return {\n { "folke/lazy.nvim", version = false },\n { "LazyVim/LazyVim", version = false },\n}\n'))),(0,r.kt)("admonition",{type:"caution"},(0,r.kt)("p",{parentName:"admonition"},(0,r.kt)("strong",{parentName:"p"},"lazy.nvim")," can be configured to always try to use the latest stable version\nof a plugin, if a plugin has releases."),(0,r.kt)("p",{parentName:"admonition"},"However, it's recommended to leave ",(0,r.kt)("inlineCode",{parentName:"p"},"version=false")," for now, since a lot\nthe plugins that support versioning, have outdated releases, which may break\nyour Neovim install."),(0,r.kt)("p",{parentName:"admonition"},"If you still want to try using the latest stable releases, you can set\n",(0,r.kt)("inlineCode",{parentName:"p"},'config.defaults.version = "*"')),(0,r.kt)("p",{parentName:"admonition"},"Some plugins that are known to break with their outdated release will still\nbe forced to install the latest development version. To override that, specify\n",(0,r.kt)("inlineCode",{parentName:"p"},'version="*"')," for those plugins. (see the ",(0,r.kt)("strong",{parentName:"p"},"LazyVim")," code)")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua",metastring:'title="lua/config/lazy.lua"',title:'"lua/config/lazy.lua"'},'local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"\nif not (vim.uv or vim.loop).fs_stat(lazypath) then\n local lazyrepo = "https://github.com/folke/lazy.nvim.git"\n local out = vim.fn.system({ "git", "clone", "--filter=blob:none", "--branch=stable", lazyrepo, lazypath })\n if vim.v.shell_error ~= 0 then\n vim.api.nvim_echo({\n { "Failed to clone lazy.nvim:\\n", "ErrorMsg" },\n { out, "WarningMsg" },\n { "\\nPress any key to exit..." },\n }, true, {})\n vim.fn.getchar()\n os.exit(1)\n end\nend\nvim.opt.rtp:prepend(lazypath)\n\nrequire("lazy").setup({\n spec = {\n -- add LazyVim and import its plugins\n { "LazyVim/LazyVim", import = "lazyvim.plugins" },\n -- import/override with your plugins\n { import = "plugins" },\n },\n defaults = {\n -- By default, only LazyVim plugins will be lazy-loaded. Your custom plugins will load during startup.\n -- If you know what you\'re doing, you can set this to `true` to have all your custom plugins lazy-loaded by default.\n lazy = false,\n -- It\'s recommended to leave version=false for now, since a lot the plugin that support versioning,\n -- have outdated releases, which may break your Neovim install.\n version = false, -- always use the latest git commit\n -- version = "*", -- try installing the latest stable version for plugins that support semver\n },\n install = { colorscheme = { "tokyonight", "habamax" } },\n checker = {\n enabled = true, -- check for plugin updates periodically\n notify = false, -- notify on update\n }, -- automatically check for plugin updates\n performance = {\n rtp = {\n -- disable some rtp plugins\n disabled_plugins = {\n "gzip",\n -- "matchit",\n -- "matchparen",\n -- "netrwPlugin",\n "tarPlugin",\n "tohtml",\n "tutor",\n "zipPlugin",\n },\n },\n },\n})\n\n')))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/d71b907f.8f04eb9e.js b/assets/js/d71b907f.8f04eb9e.js new file mode 100644 index 0000000000..717b57c55d --- /dev/null +++ b/assets/js/d71b907f.8f04eb9e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklazyvim=self.webpackChunklazyvim||[]).push([[1334],{3905:(e,n,t)=>{t.d(n,{Zo:()=>s,kt:()=>f});var r=t(7294);function a(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function l(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function u(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?l(Object(t),!0).forEach((function(n){a(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):l(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function o(e,n){if(null==e)return{};var t,r,a=function(e,n){if(null==e)return{};var t,r,a={},l=Object.keys(e);for(r=0;r<l.length;r++)t=l[r],n.indexOf(t)>=0||(a[t]=e[t]);return a}(e,n);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r<l.length;r++)t=l[r],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var i=r.createContext({}),c=function(e){var n=r.useContext(i),t=n;return e&&(t="function"==typeof e?e(n):u(u({},n),e)),t},s=function(e){var n=c(e.components);return r.createElement(i.Provider,{value:n},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},d=r.forwardRef((function(e,n){var t=e.components,a=e.mdxType,l=e.originalType,i=e.parentName,s=o(e,["components","mdxType","originalType","parentName"]),p=c(t),d=a,f=p["".concat(i,".").concat(d)]||p[d]||m[d]||l;return t?r.createElement(f,u(u({ref:n},s),{},{components:t})):r.createElement(f,u({ref:n},s))}));function f(e,n){var t=arguments,a=n&&n.mdxType;if("string"==typeof e||a){var l=t.length,u=new Array(l);u[0]=d;var o={};for(var i in n)hasOwnProperty.call(n,i)&&(o[i]=n[i]);o.originalType=e,o[p]="string"==typeof e?e:a,u[1]=o;for(var c=2;c<l;c++)u[c]=t[c];return r.createElement.apply(null,u)}return r.createElement.apply(null,t)}d.displayName="MDXCreateElement"},5162:(e,n,t)=>{t.d(n,{Z:()=>u});var r=t(7294),a=t(6010);const l="tabItem_Ymn6";function u(e){let{children:n,hidden:t,className:u}=e;return r.createElement("div",{role:"tabpanel",className:(0,a.Z)(l,u),hidden:t},n)}},4866:(e,n,t)=>{t.d(n,{Z:()=>w});var r=t(7462),a=t(7294),l=t(6010),u=t(2466),o=t(6550),i=t(1980),c=t(7392),s=t(12);function p(e){return function(e){return a.Children.map(e,(e=>{if(!e||(0,a.isValidElement)(e)&&function(e){const{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:n,label:t,attributes:r,default:a}}=e;return{value:n,label:t,attributes:r,default:a}}))}function m(e){const{values:n,children:t}=e;return(0,a.useMemo)((()=>{const e=n??p(t);return function(e){const n=(0,c.l)(e,((e,n)=>e.value===n.value));if(n.length>0)throw new Error(`Docusaurus error: Duplicate values "${n.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[n,t])}function d(e){let{value:n,tabValues:t}=e;return t.some((e=>e.value===n))}function f(e){let{queryString:n=!1,groupId:t}=e;const r=(0,o.k6)(),l=function(e){let{queryString:n=!1,groupId:t}=e;if("string"==typeof n)return n;if(!1===n)return null;if(!0===n&&!t)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return t??null}({queryString:n,groupId:t});return[(0,i._X)(l),(0,a.useCallback)((e=>{if(!l)return;const n=new URLSearchParams(r.location.search);n.set(l,e),r.replace({...r.location,search:n.toString()})}),[l,r])]}function h(e){const{defaultValue:n,queryString:t=!1,groupId:r}=e,l=m(e),[u,o]=(0,a.useState)((()=>function(e){let{defaultValue:n,tabValues:t}=e;if(0===t.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(n){if(!d({value:n,tabValues:t}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${n}" but none of its children has the corresponding value. Available values are: ${t.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return n}const r=t.find((e=>e.default))??t[0];if(!r)throw new Error("Unexpected error: 0 tabValues");return r.value}({defaultValue:n,tabValues:l}))),[i,c]=f({queryString:t,groupId:r}),[p,h]=function(e){let{groupId:n}=e;const t=function(e){return e?`docusaurus.tab.${e}`:null}(n),[r,l]=(0,s.Nk)(t);return[r,(0,a.useCallback)((e=>{t&&l.set(e)}),[t,l])]}({groupId:r}),b=(()=>{const e=i??p;return d({value:e,tabValues:l})?e:null})();(0,a.useLayoutEffect)((()=>{b&&o(b)}),[b]);return{selectedValue:u,selectValue:(0,a.useCallback)((e=>{if(!d({value:e,tabValues:l}))throw new Error(`Can't select invalid tab value=${e}`);o(e),c(e),h(e)}),[c,h,l]),tabValues:l}}var b=t(2389);const g="tabList__CuJ",v="tabItem_LNqP";function y(e){let{className:n,block:t,selectedValue:o,selectValue:i,tabValues:c}=e;const s=[],{blockElementScrollPositionUntilNextRender:p}=(0,u.o5)(),m=e=>{const n=e.currentTarget,t=s.indexOf(n),r=c[t].value;r!==o&&(p(n),i(r))},d=e=>{let n=null;switch(e.key){case"Enter":m(e);break;case"ArrowRight":{const t=s.indexOf(e.currentTarget)+1;n=s[t]??s[0];break}case"ArrowLeft":{const t=s.indexOf(e.currentTarget)-1;n=s[t]??s[s.length-1];break}}n?.focus()};return a.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,l.Z)("tabs",{"tabs--block":t},n)},c.map((e=>{let{value:n,label:t,attributes:u}=e;return a.createElement("li",(0,r.Z)({role:"tab",tabIndex:o===n?0:-1,"aria-selected":o===n,key:n,ref:e=>s.push(e),onKeyDown:d,onClick:m},u,{className:(0,l.Z)("tabs__item",v,u?.className,{"tabs__item--active":o===n})}),t??n)})))}function k(e){let{lazy:n,children:t,selectedValue:r}=e;const l=(Array.isArray(t)?t:[t]).filter(Boolean);if(n){const e=l.find((e=>e.props.value===r));return e?(0,a.cloneElement)(e,{className:"margin-top--md"}):null}return a.createElement("div",{className:"margin-top--md"},l.map(((e,n)=>(0,a.cloneElement)(e,{key:n,hidden:e.props.value!==r}))))}function T(e){const n=h(e);return a.createElement("div",{className:(0,l.Z)("tabs-container",g)},a.createElement(y,(0,r.Z)({},e,n)),a.createElement(k,(0,r.Z)({},e,n)))}function w(e){const n=(0,b.Z)();return a.createElement(T,(0,r.Z)({key:String(n)},e))}},6309:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>s,contentTitle:()=>i,default:()=>d,frontMatter:()=>o,metadata:()=>c,toc:()=>p});var r=t(7462),a=(t(7294),t(3905)),l=t(4866),u=t(5162);const o={},i="Colorscheme",c={unversionedId:"plugins/colorscheme",id:"plugins/colorscheme",title:"Colorscheme",description:"Example for changing the colorscheme to Gruvbox:",source:"@site/docs/plugins/colorscheme.md",sourceDirName:"plugins",slug:"/plugins/colorscheme",permalink:"/plugins/colorscheme",draft:!1,editUrl:"https://github.com/LazyVim/lazyvim.github.io/tree/main/docs/plugins/colorscheme.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Coding",permalink:"/plugins/coding"},next:{title:"Editor",permalink:"/plugins/editor"}},s={},p=[{value:"tokyonight.nvim",id:"tokyonightnvim",level:2},{value:"catppuccin",id:"catppuccin",level:2},{value:"bufferline.nvim <em>(optional)</em>",id:"bufferlinenvim-optional",level:2}],m={toc:p};function d(e){let{components:n,...t}=e;return(0,a.kt)("wrapper",(0,r.Z)({},m,t,{components:n,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"colorscheme"},"Colorscheme"),(0,a.kt)("p",null,"Example for changing the colorscheme to ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/ellisonleao/gruvbox.nvim"},"Gruvbox"),":"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua",metastring:'title="lua/plugins/colorscheme.lua" {2,8}',title:'"lua/plugins/colorscheme.lua"',"{2,8}":!0},'return {\n -- add gruvbox\n { "ellisonleao/gruvbox.nvim" },\n\n -- Configure LazyVim to load gruvbox\n {\n "LazyVim/LazyVim",\n opts = {\n colorscheme = "gruvbox",\n },\n }\n}\n')),(0,a.kt)("h2",{id:"tokyonightnvim"},(0,a.kt)("a",{parentName:"h2",href:"https://github.com/folke/tokyonight.nvim"},"tokyonight.nvim")),(0,a.kt)("p",null," tokyonight"),(0,a.kt)(l.Z,{mdxType:"Tabs"},(0,a.kt)(u.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'opts = { style = "moon" }\n'))),(0,a.kt)(u.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "folke/tokyonight.nvim",\n lazy = true,\n opts = { style = "moon" },\n}\n')))),(0,a.kt)("h2",{id:"catppuccin"},(0,a.kt)("a",{parentName:"h2",href:"https://github.com/catppuccin/nvim"},"catppuccin")),(0,a.kt)("p",null," catppuccin"),(0,a.kt)(l.Z,{mdxType:"Tabs"},(0,a.kt)(u.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'opts = {\n lsp_styles = {\n underlines = {\n errors = { "undercurl" },\n hints = { "undercurl" },\n warnings = { "undercurl" },\n information = { "undercurl" },\n },\n },\n integrations = {\n aerial = true,\n alpha = true,\n cmp = true,\n dashboard = true,\n flash = true,\n fzf = true,\n grug_far = true,\n gitsigns = true,\n headlines = true,\n illuminate = true,\n indent_blankline = { enabled = true },\n leap = true,\n lsp_trouble = true,\n mason = true,\n mini = true,\n navic = { enabled = true, custom_bg = "lualine" },\n neotest = true,\n neotree = true,\n noice = true,\n notify = true,\n snacks = true,\n telescope = true,\n treesitter_context = true,\n which_key = true,\n },\n}\n'))),(0,a.kt)(u.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "catppuccin/nvim",\n lazy = true,\n name = "catppuccin",\n opts = {\n lsp_styles = {\n underlines = {\n errors = { "undercurl" },\n hints = { "undercurl" },\n warnings = { "undercurl" },\n information = { "undercurl" },\n },\n },\n integrations = {\n aerial = true,\n alpha = true,\n cmp = true,\n dashboard = true,\n flash = true,\n fzf = true,\n grug_far = true,\n gitsigns = true,\n headlines = true,\n illuminate = true,\n indent_blankline = { enabled = true },\n leap = true,\n lsp_trouble = true,\n mason = true,\n mini = true,\n navic = { enabled = true, custom_bg = "lualine" },\n neotest = true,\n neotree = true,\n noice = true,\n notify = true,\n snacks = true,\n telescope = true,\n treesitter_context = true,\n which_key = true,\n },\n },\n specs = {\n {\n "akinsho/bufferline.nvim",\n optional = true,\n opts = function(_, opts)\n if (vim.g.colors_name or ""):find("catppuccin") then\n opts.highlights = require("catppuccin.special.bufferline").get_theme()\n end\n end,\n },\n },\n}\n')))),(0,a.kt)("h2",{id:"bufferlinenvim-optional"},(0,a.kt)("a",{parentName:"h2",href:"https://github.com/akinsho/bufferline.nvim"},"bufferline.nvim")," ",(0,a.kt)("em",{parentName:"h2"},"(optional)")),(0,a.kt)(l.Z,{mdxType:"Tabs"},(0,a.kt)(u.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'opts = function(_, opts)\n if (vim.g.colors_name or ""):find("catppuccin") then\n opts.highlights = require("catppuccin.special.bufferline").get_theme()\n end\nend\n'))),(0,a.kt)(u.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "akinsho/bufferline.nvim",\n optional = true,\n opts = function(_, opts)\n if (vim.g.colors_name or ""):find("catppuccin") then\n opts.highlights = require("catppuccin.special.bufferline").get_theme()\n end\n end,\n}\n')))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/d7a63d69.c1651b02.js b/assets/js/d7a63d69.c1651b02.js new file mode 100644 index 0000000000..c864056222 --- /dev/null +++ b/assets/js/d7a63d69.c1651b02.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklazyvim=self.webpackChunklazyvim||[]).push([[1676],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>f});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?l(Object(n),!0).forEach((function(t){r(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):l(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function o(e,t){if(null==e)return{};var n,a,r=function(e,t){if(null==e)return{};var n,a,r={},l=Object.keys(e);for(a=0;a<l.length;a++)n=l[a],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a<l.length;a++)n=l[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var s=a.createContext({}),u=function(e){var t=a.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},c=function(e){var t=u(e.components);return a.createElement(s.Provider,{value:t},e.children)},m="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},d=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,l=e.originalType,s=e.parentName,c=o(e,["components","mdxType","originalType","parentName"]),m=u(n),d=r,f=m["".concat(s,".").concat(d)]||m[d]||p[d]||l;return n?a.createElement(f,i(i({ref:t},c),{},{components:n})):a.createElement(f,i({ref:t},c))}));function f(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var l=n.length,i=new Array(l);i[0]=d;var o={};for(var s in t)hasOwnProperty.call(t,s)&&(o[s]=t[s]);o.originalType=e,o[m]="string"==typeof e?e:r,i[1]=o;for(var u=2;u<l;u++)i[u]=n[u];return a.createElement.apply(null,i)}return a.createElement.apply(null,n)}d.displayName="MDXCreateElement"},5162:(e,t,n)=>{n.d(t,{Z:()=>i});var a=n(7294),r=n(6010);const l="tabItem_Ymn6";function i(e){let{children:t,hidden:n,className:i}=e;return a.createElement("div",{role:"tabpanel",className:(0,r.Z)(l,i),hidden:n},t)}},4866:(e,t,n)=>{n.d(t,{Z:()=>w});var a=n(7462),r=n(7294),l=n(6010),i=n(2466),o=n(6550),s=n(1980),u=n(7392),c=n(12);function m(e){return function(e){return r.Children.map(e,(e=>{if(!e||(0,r.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:t,label:n,attributes:a,default:r}}=e;return{value:t,label:n,attributes:a,default:r}}))}function p(e){const{values:t,children:n}=e;return(0,r.useMemo)((()=>{const e=t??m(n);return function(e){const t=(0,u.l)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[t,n])}function d(e){let{value:t,tabValues:n}=e;return n.some((e=>e.value===t))}function f(e){let{queryString:t=!1,groupId:n}=e;const a=(0,o.k6)(),l=function(e){let{queryString:t=!1,groupId:n}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!n)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return n??null}({queryString:t,groupId:n});return[(0,s._X)(l),(0,r.useCallback)((e=>{if(!l)return;const t=new URLSearchParams(a.location.search);t.set(l,e),a.replace({...a.location,search:t.toString()})}),[l,a])]}function y(e){const{defaultValue:t,queryString:n=!1,groupId:a}=e,l=p(e),[i,o]=(0,r.useState)((()=>function(e){let{defaultValue:t,tabValues:n}=e;if(0===n.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(t){if(!d({value:t,tabValues:n}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${n.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const a=n.find((e=>e.default))??n[0];if(!a)throw new Error("Unexpected error: 0 tabValues");return a.value}({defaultValue:t,tabValues:l}))),[s,u]=f({queryString:n,groupId:a}),[m,y]=function(e){let{groupId:t}=e;const n=function(e){return e?`docusaurus.tab.${e}`:null}(t),[a,l]=(0,c.Nk)(n);return[a,(0,r.useCallback)((e=>{n&&l.set(e)}),[n,l])]}({groupId:a}),v=(()=>{const e=s??m;return d({value:e,tabValues:l})?e:null})();(0,r.useLayoutEffect)((()=>{v&&o(v)}),[v]);return{selectedValue:i,selectValue:(0,r.useCallback)((e=>{if(!d({value:e,tabValues:l}))throw new Error(`Can't select invalid tab value=${e}`);o(e),u(e),y(e)}),[u,y,l]),tabValues:l}}var v=n(2389);const b="tabList__CuJ",g="tabItem_LNqP";function h(e){let{className:t,block:n,selectedValue:o,selectValue:s,tabValues:u}=e;const c=[],{blockElementScrollPositionUntilNextRender:m}=(0,i.o5)(),p=e=>{const t=e.currentTarget,n=c.indexOf(t),a=u[n].value;a!==o&&(m(t),s(a))},d=e=>{let t=null;switch(e.key){case"Enter":p(e);break;case"ArrowRight":{const n=c.indexOf(e.currentTarget)+1;t=c[n]??c[0];break}case"ArrowLeft":{const n=c.indexOf(e.currentTarget)-1;t=c[n]??c[c.length-1];break}}t?.focus()};return r.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,l.Z)("tabs",{"tabs--block":n},t)},u.map((e=>{let{value:t,label:n,attributes:i}=e;return r.createElement("li",(0,a.Z)({role:"tab",tabIndex:o===t?0:-1,"aria-selected":o===t,key:t,ref:e=>c.push(e),onKeyDown:d,onClick:p},i,{className:(0,l.Z)("tabs__item",g,i?.className,{"tabs__item--active":o===t})}),n??t)})))}function k(e){let{lazy:t,children:n,selectedValue:a}=e;const l=(Array.isArray(n)?n:[n]).filter(Boolean);if(t){const e=l.find((e=>e.props.value===a));return e?(0,r.cloneElement)(e,{className:"margin-top--md"}):null}return r.createElement("div",{className:"margin-top--md"},l.map(((e,t)=>(0,r.cloneElement)(e,{key:t,hidden:e.props.value!==a}))))}function T(e){const t=y(e);return r.createElement("div",{className:(0,l.Z)("tabs-container",b)},r.createElement(h,(0,a.Z)({},e,t)),r.createElement(k,(0,a.Z)({},e,t)))}function w(e){const t=(0,v.Z)();return r.createElement(T,(0,a.Z)({key:String(t)},e))}},8206:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>s,default:()=>d,frontMatter:()=>o,metadata:()=>u,toc:()=>m});var a=n(7462),r=(n(7294),n(3905)),l=n(4866),i=n(5162);const o={},s="Typst",u={unversionedId:"extras/lang/typst",id:"extras/lang/typst",title:"Typst",description:"You can enable the extra with the :LazyExtras command.",source:"@site/docs/extras/lang/typst.md",sourceDirName:"extras/lang",slug:"/extras/lang/typst",permalink:"/extras/lang/typst",draft:!1,editUrl:"https://github.com/LazyVim/lazyvim.github.io/tree/main/docs/extras/lang/typst.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Typescript",permalink:"/extras/lang/typescript"},next:{title:"Vue",permalink:"/extras/lang/vue"}},c={},m=[{value:"nvim-treesitter",id:"nvim-treesitter",level:2},{value:"nvim-lspconfig",id:"nvim-lspconfig",level:2},{value:"typst-preview.nvim",id:"typst-previewnvim",level:2},{value:"ts-comments.nvim",id:"ts-commentsnvim",level:2},{value:"conform.nvim <em>(optional)</em>",id:"conformnvim-optional",level:2}],p={toc:m};function d(e){let{components:t,...n}=e;return(0,r.kt)("wrapper",(0,a.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"typst"},(0,r.kt)("inlineCode",{parentName:"h1"},"Typst")),(0,r.kt)("admonition",{type:"info"},(0,r.kt)("p",{parentName:"admonition"},"You can enable the extra with the ",(0,r.kt)("inlineCode",{parentName:"p"},":LazyExtras")," command.\nPlugins marked as optional will only be configured if they are installed.")),(0,r.kt)("p",null,"Below you can find a list of included plugins and their default settings."),(0,r.kt)("admonition",{type:"caution"},(0,r.kt)("p",{parentName:"admonition"},"You don't need to copy the default settings to your config.\nThey are only shown here for reference.")),(0,r.kt)("h2",{id:"nvim-treesitter"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/nvim-treesitter/nvim-treesitter"},"nvim-treesitter")),(0,r.kt)(l.Z,{mdxType:"Tabs"},(0,r.kt)(i.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = {\n ensure_installed = { "typst" },\n}\n'))),(0,r.kt)(i.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "nvim-treesitter/nvim-treesitter",\n opts = {\n ensure_installed = { "typst" },\n },\n}\n')))),(0,r.kt)("h2",{id:"nvim-lspconfig"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/neovim/nvim-lspconfig"},"nvim-lspconfig")),(0,r.kt)(l.Z,{mdxType:"Tabs"},(0,r.kt)(i.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = {\n servers = {\n tinymist = {\n keys = {\n {\n "<leader>cP",\n function()\n local buf_name = vim.api.nvim_buf_get_name(0)\n local file_name = vim.fn.fnamemodify(buf_name, ":t")\n LazyVim.lsp.execute({\n command = "tinymist.pinMain",\n arguments = { buf_name },\n })\n LazyVim.info("Tinymist: Pinned " .. file_name)\n end,\n desc = "Pin main file",\n },\n },\n single_file_support = true, -- Fixes LSP attachment in non-Git directories\n settings = {\n formatterMode = "typstyle",\n },\n },\n },\n}\n'))),(0,r.kt)(i.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "neovim/nvim-lspconfig",\n opts = {\n servers = {\n tinymist = {\n keys = {\n {\n "<leader>cP",\n function()\n local buf_name = vim.api.nvim_buf_get_name(0)\n local file_name = vim.fn.fnamemodify(buf_name, ":t")\n LazyVim.lsp.execute({\n command = "tinymist.pinMain",\n arguments = { buf_name },\n })\n LazyVim.info("Tinymist: Pinned " .. file_name)\n end,\n desc = "Pin main file",\n },\n },\n single_file_support = true, -- Fixes LSP attachment in non-Git directories\n settings = {\n formatterMode = "typstyle",\n },\n },\n },\n },\n}\n')))),(0,r.kt)("h2",{id:"typst-previewnvim"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/chomosuke/typst-preview.nvim"},"typst-preview.nvim")),(0,r.kt)(l.Z,{mdxType:"Tabs"},(0,r.kt)(i.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = {\n dependencies_bin = {\n tinymist = "tinymist",\n },\n}\n'))),(0,r.kt)(i.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "chomosuke/typst-preview.nvim",\n cmd = { "TypstPreview", "TypstPreviewToggle", "TypstPreviewUpdate" },\n keys = {\n {\n "<leader>cp",\n ft = "typst",\n "<cmd>TypstPreviewToggle<cr>",\n desc = "Toggle Typst Preview",\n },\n },\n opts = {\n dependencies_bin = {\n tinymist = "tinymist",\n },\n },\n}\n')))),(0,r.kt)("h2",{id:"ts-commentsnvim"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/folke/ts-comments.nvim"},"ts-comments.nvim")),(0,r.kt)(l.Z,{mdxType:"Tabs"},(0,r.kt)(i.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = {\n lang = {\n typst = { "// %s", "/* %s */" },\n },\n}\n'))),(0,r.kt)(i.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "folke/ts-comments.nvim",\n opts = {\n lang = {\n typst = { "// %s", "/* %s */" },\n },\n },\n}\n')))),(0,r.kt)("h2",{id:"conformnvim-optional"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/stevearc/conform.nvim"},"conform.nvim")," ",(0,r.kt)("em",{parentName:"h2"},"(optional)")),(0,r.kt)(l.Z,{mdxType:"Tabs"},(0,r.kt)(i.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = {\n formatters_by_ft = {\n typst = { "typstyle", lsp_format = "prefer" },\n },\n}\n'))),(0,r.kt)(i.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "stevearc/conform.nvim",\n optional = true,\n opts = {\n formatters_by_ft = {\n typst = { "typstyle", lsp_format = "prefer" },\n },\n },\n}\n')))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/d82605b2.fe2f4bb7.js b/assets/js/d82605b2.fe2f4bb7.js new file mode 100644 index 0000000000..162891cea5 --- /dev/null +++ b/assets/js/d82605b2.fe2f4bb7.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklazyvim=self.webpackChunklazyvim||[]).push([[6859],{3905:(e,t,n)=>{n.d(t,{Zo:()=>m,kt:()=>v});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?l(Object(n),!0).forEach((function(t){r(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):l(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function o(e,t){if(null==e)return{};var n,a,r=function(e,t){if(null==e)return{};var n,a,r={},l=Object.keys(e);for(a=0;a<l.length;a++)n=l[a],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a<l.length;a++)n=l[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var u=a.createContext({}),c=function(e){var t=a.useContext(u),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},m=function(e){var t=c(e.components);return a.createElement(u.Provider,{value:t},e.children)},s="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},d=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,l=e.originalType,u=e.parentName,m=o(e,["components","mdxType","originalType","parentName"]),s=c(n),d=r,v=s["".concat(u,".").concat(d)]||s[d]||p[d]||l;return n?a.createElement(v,i(i({ref:t},m),{},{components:n})):a.createElement(v,i({ref:t},m))}));function v(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var l=n.length,i=new Array(l);i[0]=d;var o={};for(var u in t)hasOwnProperty.call(t,u)&&(o[u]=t[u]);o.originalType=e,o[s]="string"==typeof e?e:r,i[1]=o;for(var c=2;c<l;c++)i[c]=n[c];return a.createElement.apply(null,i)}return a.createElement.apply(null,n)}d.displayName="MDXCreateElement"},5162:(e,t,n)=>{n.d(t,{Z:()=>i});var a=n(7294),r=n(6010);const l="tabItem_Ymn6";function i(e){let{children:t,hidden:n,className:i}=e;return a.createElement("div",{role:"tabpanel",className:(0,r.Z)(l,i),hidden:n},t)}},4866:(e,t,n)=>{n.d(t,{Z:()=>T});var a=n(7462),r=n(7294),l=n(6010),i=n(2466),o=n(6550),u=n(1980),c=n(7392),m=n(12);function s(e){return function(e){return r.Children.map(e,(e=>{if(!e||(0,r.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:t,label:n,attributes:a,default:r}}=e;return{value:t,label:n,attributes:a,default:r}}))}function p(e){const{values:t,children:n}=e;return(0,r.useMemo)((()=>{const e=t??s(n);return function(e){const t=(0,c.l)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[t,n])}function d(e){let{value:t,tabValues:n}=e;return n.some((e=>e.value===t))}function v(e){let{queryString:t=!1,groupId:n}=e;const a=(0,o.k6)(),l=function(e){let{queryString:t=!1,groupId:n}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!n)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return n??null}({queryString:t,groupId:n});return[(0,u._X)(l),(0,r.useCallback)((e=>{if(!l)return;const t=new URLSearchParams(a.location.search);t.set(l,e),a.replace({...a.location,search:t.toString()})}),[l,a])]}function b(e){const{defaultValue:t,queryString:n=!1,groupId:a}=e,l=p(e),[i,o]=(0,r.useState)((()=>function(e){let{defaultValue:t,tabValues:n}=e;if(0===n.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(t){if(!d({value:t,tabValues:n}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${n.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const a=n.find((e=>e.default))??n[0];if(!a)throw new Error("Unexpected error: 0 tabValues");return a.value}({defaultValue:t,tabValues:l}))),[u,c]=v({queryString:n,groupId:a}),[s,b]=function(e){let{groupId:t}=e;const n=function(e){return e?`docusaurus.tab.${e}`:null}(t),[a,l]=(0,m.Nk)(n);return[a,(0,r.useCallback)((e=>{n&&l.set(e)}),[n,l])]}({groupId:a}),f=(()=>{const e=u??s;return d({value:e,tabValues:l})?e:null})();(0,r.useLayoutEffect)((()=>{f&&o(f)}),[f]);return{selectedValue:i,selectValue:(0,r.useCallback)((e=>{if(!d({value:e,tabValues:l}))throw new Error(`Can't select invalid tab value=${e}`);o(e),c(e),b(e)}),[c,b,l]),tabValues:l}}var f=n(2389);const h="tabList__CuJ",y="tabItem_LNqP";function k(e){let{className:t,block:n,selectedValue:o,selectValue:u,tabValues:c}=e;const m=[],{blockElementScrollPositionUntilNextRender:s}=(0,i.o5)(),p=e=>{const t=e.currentTarget,n=m.indexOf(t),a=c[n].value;a!==o&&(s(t),u(a))},d=e=>{let t=null;switch(e.key){case"Enter":p(e);break;case"ArrowRight":{const n=m.indexOf(e.currentTarget)+1;t=m[n]??m[0];break}case"ArrowLeft":{const n=m.indexOf(e.currentTarget)-1;t=m[n]??m[m.length-1];break}}t?.focus()};return r.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,l.Z)("tabs",{"tabs--block":n},t)},c.map((e=>{let{value:t,label:n,attributes:i}=e;return r.createElement("li",(0,a.Z)({role:"tab",tabIndex:o===t?0:-1,"aria-selected":o===t,key:t,ref:e=>m.push(e),onKeyDown:d,onClick:p},i,{className:(0,l.Z)("tabs__item",y,i?.className,{"tabs__item--active":o===t})}),n??t)})))}function g(e){let{lazy:t,children:n,selectedValue:a}=e;const l=(Array.isArray(n)?n:[n]).filter(Boolean);if(t){const e=l.find((e=>e.props.value===a));return e?(0,r.cloneElement)(e,{className:"margin-top--md"}):null}return r.createElement("div",{className:"margin-top--md"},l.map(((e,t)=>(0,r.cloneElement)(e,{key:t,hidden:e.props.value!==a}))))}function x(e){const t=b(e);return r.createElement("div",{className:(0,l.Z)("tabs-container",h)},r.createElement(k,(0,a.Z)({},e,t)),r.createElement(g,(0,a.Z)({},e,t)))}function T(e){const t=(0,f.Z)();return r.createElement(x,(0,a.Z)({key:String(t)},e))}},4032:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>m,contentTitle:()=>u,default:()=>d,frontMatter:()=>o,metadata:()=>c,toc:()=>s});var a=n(7462),r=(n(7294),n(3905)),l=n(4866),i=n(5162);const o={},u="Codeium",c={unversionedId:"extras/ai/codeium",id:"extras/ai/codeium",title:"Codeium",description:"You can enable the extra with the :LazyExtras command.",source:"@site/docs/extras/ai/codeium.md",sourceDirName:"extras/ai",slug:"/extras/ai/codeium",permalink:"/extras/ai/codeium",draft:!1,editUrl:"https://github.com/LazyVim/lazyvim.github.io/tree/main/docs/extras/ai/codeium.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Claudecode",permalink:"/extras/ai/claudecode"},next:{title:"Copilot-chat",permalink:"/extras/ai/copilot-chat"}},m={},s=[{value:"codeium.nvim",id:"codeiumnvim",level:2},{value:"codeium.nvim",id:"codeiumnvim-1",level:2},{value:"codeium.nvim",id:"codeiumnvim-2",level:2},{value:"codeium.nvim",id:"codeiumnvim-3",level:2},{value:"nvim-cmp <em>(optional)</em>",id:"nvim-cmp-optional",level:2},{value:"lualine.nvim <em>(optional)</em>",id:"lualinenvim-optional",level:2}],p={toc:s};function d(e){let{components:t,...n}=e;return(0,r.kt)("wrapper",(0,a.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"codeium"},(0,r.kt)("inlineCode",{parentName:"h1"},"Codeium")),(0,r.kt)("admonition",{type:"info"},(0,r.kt)("p",{parentName:"admonition"},"You can enable the extra with the ",(0,r.kt)("inlineCode",{parentName:"p"},":LazyExtras")," command.\nPlugins marked as optional will only be configured if they are installed.")),(0,r.kt)("p",null,"Below you can find a list of included plugins and their default settings."),(0,r.kt)("admonition",{type:"caution"},(0,r.kt)("p",{parentName:"admonition"},"You don't need to copy the default settings to your config.\nThey are only shown here for reference.")),(0,r.kt)("h2",{id:"codeiumnvim"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/Exafunction/codeium.nvim"},"codeium.nvim")),(0,r.kt)("p",null," codeium"),(0,r.kt)(l.Z,{mdxType:"Tabs"},(0,r.kt)(i.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = {\n enable_cmp_source = vim.g.ai_cmp,\n virtual_text = {\n enabled = not vim.g.ai_cmp,\n key_bindings = {\n accept = false, -- handled by nvim-cmp / blink.cmp\n next = "<M-]>",\n prev = "<M-[>",\n },\n },\n}\n'))),(0,r.kt)(i.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "Exafunction/codeium.nvim",\n cmd = "Codeium",\n event = "InsertEnter",\n build = ":Codeium Auth",\n opts = {\n enable_cmp_source = vim.g.ai_cmp,\n virtual_text = {\n enabled = not vim.g.ai_cmp,\n key_bindings = {\n accept = false, -- handled by nvim-cmp / blink.cmp\n next = "<M-]>",\n prev = "<M-[>",\n },\n },\n },\n}\n')))),(0,r.kt)("h2",{id:"codeiumnvim-1"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/Exafunction/codeium.nvim"},"codeium.nvim")),(0,r.kt)("p",null," add ai_accept action"),(0,r.kt)(l.Z,{mdxType:"Tabs"},(0,r.kt)(i.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = function()\n LazyVim.cmp.actions.ai_accept = function()\n if require("codeium.virtual_text").get_current_completion_item() then\n LazyVim.create_undo()\n vim.api.nvim_input(require("codeium.virtual_text").accept())\n return true\n end\n end\nend\n'))),(0,r.kt)(i.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "Exafunction/codeium.nvim",\n opts = function()\n LazyVim.cmp.actions.ai_accept = function()\n if require("codeium.virtual_text").get_current_completion_item() then\n LazyVim.create_undo()\n vim.api.nvim_input(require("codeium.virtual_text").accept())\n return true\n end\n end\n end,\n}\n')))),(0,r.kt)("h2",{id:"codeiumnvim-2"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/Exafunction/codeium.nvim"},"codeium.nvim")),(0,r.kt)(l.Z,{mdxType:"Tabs"},(0,r.kt)(i.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},"opts = nil\n"))),(0,r.kt)(i.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{ "codeium.nvim" }\n')))),(0,r.kt)("h2",{id:"codeiumnvim-3"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/Exafunction/codeium.nvim"},"codeium.nvim")),(0,r.kt)(l.Z,{mdxType:"Tabs"},(0,r.kt)(i.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},"opts = nil\n"))),(0,r.kt)(i.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{ "codeium.nvim", "saghen/blink.compat" }\n')))),(0,r.kt)("h2",{id:"nvim-cmp-optional"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/hrsh7th/nvim-cmp"},"nvim-cmp")," ",(0,r.kt)("em",{parentName:"h2"},"(optional)")),(0,r.kt)("p",null," codeium cmp source"),(0,r.kt)(l.Z,{mdxType:"Tabs"},(0,r.kt)(i.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = function(_, opts)\n table.insert(opts.sources, 1, {\n name = "codeium",\n group_index = 1,\n priority = 100,\n })\nend\n'))),(0,r.kt)(i.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "hrsh7th/nvim-cmp",\n optional = true,\n dependencies = { "codeium.nvim" },\n opts = function(_, opts)\n table.insert(opts.sources, 1, {\n name = "codeium",\n group_index = 1,\n priority = 100,\n })\n end,\n}\n')))),(0,r.kt)("h2",{id:"lualinenvim-optional"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/nvim-lualine/lualine.nvim"},"lualine.nvim")," ",(0,r.kt)("em",{parentName:"h2"},"(optional)")),(0,r.kt)(l.Z,{mdxType:"Tabs"},(0,r.kt)(i.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = function(_, opts)\n table.insert(opts.sections.lualine_x, 2, LazyVim.lualine.cmp_source("codeium"))\nend\n'))),(0,r.kt)(i.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "nvim-lualine/lualine.nvim",\n optional = true,\n event = "VeryLazy",\n opts = function(_, opts)\n table.insert(opts.sections.lualine_x, 2, LazyVim.lualine.cmp_source("codeium"))\n end,\n}\n')))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/dc4714d3.2cff019c.js b/assets/js/dc4714d3.2cff019c.js new file mode 100644 index 0000000000..765e2730c5 --- /dev/null +++ b/assets/js/dc4714d3.2cff019c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklazyvim=self.webpackChunklazyvim||[]).push([[7570],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>f});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function o(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?l(Object(n),!0).forEach((function(t){r(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):l(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function s(e,t){if(null==e)return{};var n,a,r=function(e,t){if(null==e)return{};var n,a,r={},l=Object.keys(e);for(a=0;a<l.length;a++)n=l[a],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a<l.length;a++)n=l[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var u=a.createContext({}),i=function(e){var t=a.useContext(u),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},c=function(e){var t=i(e.components);return a.createElement(u.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},d=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,l=e.originalType,u=e.parentName,c=s(e,["components","mdxType","originalType","parentName"]),p=i(n),d=r,f=p["".concat(u,".").concat(d)]||p[d]||m[d]||l;return n?a.createElement(f,o(o({ref:t},c),{},{components:n})):a.createElement(f,o({ref:t},c))}));function f(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var l=n.length,o=new Array(l);o[0]=d;var s={};for(var u in t)hasOwnProperty.call(t,u)&&(s[u]=t[u]);s.originalType=e,s[p]="string"==typeof e?e:r,o[1]=s;for(var i=2;i<l;i++)o[i]=n[i];return a.createElement.apply(null,o)}return a.createElement.apply(null,n)}d.displayName="MDXCreateElement"},5162:(e,t,n)=>{n.d(t,{Z:()=>o});var a=n(7294),r=n(6010);const l="tabItem_Ymn6";function o(e){let{children:t,hidden:n,className:o}=e;return a.createElement("div",{role:"tabpanel",className:(0,r.Z)(l,o),hidden:n},t)}},4866:(e,t,n)=>{n.d(t,{Z:()=>N});var a=n(7462),r=n(7294),l=n(6010),o=n(2466),s=n(6550),u=n(1980),i=n(7392),c=n(12);function p(e){return function(e){return r.Children.map(e,(e=>{if(!e||(0,r.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:t,label:n,attributes:a,default:r}}=e;return{value:t,label:n,attributes:a,default:r}}))}function m(e){const{values:t,children:n}=e;return(0,r.useMemo)((()=>{const e=t??p(n);return function(e){const t=(0,i.l)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[t,n])}function d(e){let{value:t,tabValues:n}=e;return n.some((e=>e.value===t))}function f(e){let{queryString:t=!1,groupId:n}=e;const a=(0,s.k6)(),l=function(e){let{queryString:t=!1,groupId:n}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!n)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return n??null}({queryString:t,groupId:n});return[(0,u._X)(l),(0,r.useCallback)((e=>{if(!l)return;const t=new URLSearchParams(a.location.search);t.set(l,e),a.replace({...a.location,search:t.toString()})}),[l,a])]}function b(e){const{defaultValue:t,queryString:n=!1,groupId:a}=e,l=m(e),[o,s]=(0,r.useState)((()=>function(e){let{defaultValue:t,tabValues:n}=e;if(0===n.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(t){if(!d({value:t,tabValues:n}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${n.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const a=n.find((e=>e.default))??n[0];if(!a)throw new Error("Unexpected error: 0 tabValues");return a.value}({defaultValue:t,tabValues:l}))),[u,i]=f({queryString:n,groupId:a}),[p,b]=function(e){let{groupId:t}=e;const n=function(e){return e?`docusaurus.tab.${e}`:null}(t),[a,l]=(0,c.Nk)(n);return[a,(0,r.useCallback)((e=>{n&&l.set(e)}),[n,l])]}({groupId:a}),v=(()=>{const e=u??p;return d({value:e,tabValues:l})?e:null})();(0,r.useLayoutEffect)((()=>{v&&s(v)}),[v]);return{selectedValue:o,selectValue:(0,r.useCallback)((e=>{if(!d({value:e,tabValues:l}))throw new Error(`Can't select invalid tab value=${e}`);s(e),i(e),b(e)}),[i,b,l]),tabValues:l}}var v=n(2389);const h="tabList__CuJ",g="tabItem_LNqP";function y(e){let{className:t,block:n,selectedValue:s,selectValue:u,tabValues:i}=e;const c=[],{blockElementScrollPositionUntilNextRender:p}=(0,o.o5)(),m=e=>{const t=e.currentTarget,n=c.indexOf(t),a=i[n].value;a!==s&&(p(t),u(a))},d=e=>{let t=null;switch(e.key){case"Enter":m(e);break;case"ArrowRight":{const n=c.indexOf(e.currentTarget)+1;t=c[n]??c[0];break}case"ArrowLeft":{const n=c.indexOf(e.currentTarget)-1;t=c[n]??c[c.length-1];break}}t?.focus()};return r.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,l.Z)("tabs",{"tabs--block":n},t)},i.map((e=>{let{value:t,label:n,attributes:o}=e;return r.createElement("li",(0,a.Z)({role:"tab",tabIndex:s===t?0:-1,"aria-selected":s===t,key:t,ref:e=>c.push(e),onKeyDown:d,onClick:m},o,{className:(0,l.Z)("tabs__item",g,o?.className,{"tabs__item--active":s===t})}),n??t)})))}function k(e){let{lazy:t,children:n,selectedValue:a}=e;const l=(Array.isArray(n)?n:[n]).filter(Boolean);if(t){const e=l.find((e=>e.props.value===a));return e?(0,r.cloneElement)(e,{className:"margin-top--md"}):null}return r.createElement("div",{className:"margin-top--md"},l.map(((e,t)=>(0,r.cloneElement)(e,{key:t,hidden:e.props.value!==a}))))}function T(e){const t=b(e);return r.createElement("div",{className:(0,l.Z)("tabs-container",h)},r.createElement(y,(0,a.Z)({},e,t)),r.createElement(k,(0,a.Z)({},e,t)))}function N(e){const t=(0,v.Z)();return r.createElement(T,(0,a.Z)({key:String(t)},e))}},8490:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>u,default:()=>d,frontMatter:()=>s,metadata:()=>i,toc:()=>p});var a=n(7462),r=(n(7294),n(3905)),l=n(4866),o=n(5162);const s={},u="Dart",i={unversionedId:"extras/lang/dart",id:"extras/lang/dart",title:"Dart",description:"You can enable the extra with the :LazyExtras command.",source:"@site/docs/extras/lang/dart.md",sourceDirName:"extras/lang",slug:"/extras/lang/dart",permalink:"/extras/lang/dart",draft:!1,editUrl:"https://github.com/LazyVim/lazyvim.github.io/tree/main/docs/extras/lang/dart.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"CMake",permalink:"/extras/lang/cmake"},next:{title:"Docker",permalink:"/extras/lang/docker"}},c={},p=[{value:"nvim-lspconfig",id:"nvim-lspconfig",level:2},{value:"nvim-treesitter",id:"nvim-treesitter",level:2},{value:"conform.nvim",id:"conformnvim",level:2},{value:"neotest-dart",id:"neotest-dart",level:2},{value:"neotest <em>(optional)</em>",id:"neotest-optional",level:2}],m={toc:p};function d(e){let{components:t,...n}=e;return(0,r.kt)("wrapper",(0,a.Z)({},m,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"dart"},(0,r.kt)("inlineCode",{parentName:"h1"},"Dart")),(0,r.kt)("admonition",{type:"info"},(0,r.kt)("p",{parentName:"admonition"},"You can enable the extra with the ",(0,r.kt)("inlineCode",{parentName:"p"},":LazyExtras")," command.\nPlugins marked as optional will only be configured if they are installed.")),(0,r.kt)("p",null,"Below you can find a list of included plugins and their default settings."),(0,r.kt)("admonition",{type:"caution"},(0,r.kt)("p",{parentName:"admonition"},"You don't need to copy the default settings to your config.\nThey are only shown here for reference.")),(0,r.kt)("h2",{id:"nvim-lspconfig"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/neovim/nvim-lspconfig"},"nvim-lspconfig")),(0,r.kt)(l.Z,{mdxType:"Tabs"},(0,r.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},"opts = {\n servers = {\n dartls = {},\n },\n}\n"))),(0,r.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "neovim/nvim-lspconfig",\n opts = {\n servers = {\n dartls = {},\n },\n },\n}\n')))),(0,r.kt)("h2",{id:"nvim-treesitter"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/nvim-treesitter/nvim-treesitter"},"nvim-treesitter")),(0,r.kt)(l.Z,{mdxType:"Tabs"},(0,r.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = { ensure_installed = { "dart" } }\n'))),(0,r.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "nvim-treesitter/nvim-treesitter",\n opts = { ensure_installed = { "dart" } },\n}\n')))),(0,r.kt)("h2",{id:"conformnvim"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/stevearc/conform.nvim"},"conform.nvim")),(0,r.kt)(l.Z,{mdxType:"Tabs"},(0,r.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = {\n formatters_by_ft = {\n dart = { "dart_format" },\n },\n}\n'))),(0,r.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "stevearc/conform.nvim",\n opts = {\n formatters_by_ft = {\n dart = { "dart_format" },\n },\n },\n}\n')))),(0,r.kt)("h2",{id:"neotest-dart"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/sidlatau/neotest-dart"},"neotest-dart")),(0,r.kt)(l.Z,{mdxType:"Tabs"},(0,r.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},"opts = nil\n"))),(0,r.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "sidlatau/neotest-dart",\n}\n')))),(0,r.kt)("h2",{id:"neotest-optional"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/nvim-neotest/neotest"},"neotest")," ",(0,r.kt)("em",{parentName:"h2"},"(optional)")),(0,r.kt)(l.Z,{mdxType:"Tabs"},(0,r.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = {\n adapters = {\n ["neotest-dart"] = {},\n },\n}\n'))),(0,r.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "nvim-neotest/neotest",\n optional = true,\n dependencies = {\n "sidlatau/neotest-dart",\n },\n opts = {\n adapters = {\n ["neotest-dart"] = {},\n },\n },\n}\n')))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/dfa76d84.da44ec5d.js b/assets/js/dfa76d84.da44ec5d.js new file mode 100644 index 0000000000..1e060f1996 --- /dev/null +++ b/assets/js/dfa76d84.da44ec5d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklazyvim=self.webpackChunklazyvim||[]).push([[125],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>f});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function l(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function i(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var u=r.createContext({}),s=function(e){var t=r.useContext(u),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},c=function(e){var t=s(e.components);return r.createElement(u.Provider,{value:t},e.children)},d="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,u=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),d=s(n),m=a,f=d["".concat(u,".").concat(m)]||d[m]||p[m]||o;return n?r.createElement(f,l(l({ref:t},c),{},{components:n})):r.createElement(f,l({ref:t},c))}));function f(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,l=new Array(o);l[0]=m;var i={};for(var u in t)hasOwnProperty.call(t,u)&&(i[u]=t[u]);i.originalType=e,i[d]="string"==typeof e?e:a,l[1]=i;for(var s=2;s<o;s++)l[s]=n[s];return r.createElement.apply(null,l)}return r.createElement.apply(null,n)}m.displayName="MDXCreateElement"},5162:(e,t,n)=>{n.d(t,{Z:()=>l});var r=n(7294),a=n(6010);const o="tabItem_Ymn6";function l(e){let{children:t,hidden:n,className:l}=e;return r.createElement("div",{role:"tabpanel",className:(0,a.Z)(o,l),hidden:n},t)}},4866:(e,t,n)=>{n.d(t,{Z:()=>w});var r=n(7462),a=n(7294),o=n(6010),l=n(2466),i=n(6550),u=n(1980),s=n(7392),c=n(12);function d(e){return function(e){return a.Children.map(e,(e=>{if(!e||(0,a.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:t,label:n,attributes:r,default:a}}=e;return{value:t,label:n,attributes:r,default:a}}))}function p(e){const{values:t,children:n}=e;return(0,a.useMemo)((()=>{const e=t??d(n);return function(e){const t=(0,s.l)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[t,n])}function m(e){let{value:t,tabValues:n}=e;return n.some((e=>e.value===t))}function f(e){let{queryString:t=!1,groupId:n}=e;const r=(0,i.k6)(),o=function(e){let{queryString:t=!1,groupId:n}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!n)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return n??null}({queryString:t,groupId:n});return[(0,u._X)(o),(0,a.useCallback)((e=>{if(!o)return;const t=new URLSearchParams(r.location.search);t.set(o,e),r.replace({...r.location,search:t.toString()})}),[o,r])]}function y(e){const{defaultValue:t,queryString:n=!1,groupId:r}=e,o=p(e),[l,i]=(0,a.useState)((()=>function(e){let{defaultValue:t,tabValues:n}=e;if(0===n.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(t){if(!m({value:t,tabValues:n}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${n.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const r=n.find((e=>e.default))??n[0];if(!r)throw new Error("Unexpected error: 0 tabValues");return r.value}({defaultValue:t,tabValues:o}))),[u,s]=f({queryString:n,groupId:r}),[d,y]=function(e){let{groupId:t}=e;const n=function(e){return e?`docusaurus.tab.${e}`:null}(t),[r,o]=(0,c.Nk)(n);return[r,(0,a.useCallback)((e=>{n&&o.set(e)}),[n,o])]}({groupId:r}),b=(()=>{const e=u??d;return m({value:e,tabValues:o})?e:null})();(0,a.useLayoutEffect)((()=>{b&&i(b)}),[b]);return{selectedValue:l,selectValue:(0,a.useCallback)((e=>{if(!m({value:e,tabValues:o}))throw new Error(`Can't select invalid tab value=${e}`);i(e),s(e),y(e)}),[s,y,o]),tabValues:o}}var b=n(2389);const h="tabList__CuJ",g="tabItem_LNqP";function v(e){let{className:t,block:n,selectedValue:i,selectValue:u,tabValues:s}=e;const c=[],{blockElementScrollPositionUntilNextRender:d}=(0,l.o5)(),p=e=>{const t=e.currentTarget,n=c.indexOf(t),r=s[n].value;r!==i&&(d(t),u(r))},m=e=>{let t=null;switch(e.key){case"Enter":p(e);break;case"ArrowRight":{const n=c.indexOf(e.currentTarget)+1;t=c[n]??c[0];break}case"ArrowLeft":{const n=c.indexOf(e.currentTarget)-1;t=c[n]??c[c.length-1];break}}t?.focus()};return a.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,o.Z)("tabs",{"tabs--block":n},t)},s.map((e=>{let{value:t,label:n,attributes:l}=e;return a.createElement("li",(0,r.Z)({role:"tab",tabIndex:i===t?0:-1,"aria-selected":i===t,key:t,ref:e=>c.push(e),onKeyDown:m,onClick:p},l,{className:(0,o.Z)("tabs__item",g,l?.className,{"tabs__item--active":i===t})}),n??t)})))}function k(e){let{lazy:t,children:n,selectedValue:r}=e;const o=(Array.isArray(n)?n:[n]).filter(Boolean);if(t){const e=o.find((e=>e.props.value===r));return e?(0,a.cloneElement)(e,{className:"margin-top--md"}):null}return a.createElement("div",{className:"margin-top--md"},o.map(((e,t)=>(0,a.cloneElement)(e,{key:t,hidden:e.props.value!==r}))))}function x(e){const t=y(e);return a.createElement("div",{className:(0,o.Z)("tabs-container",h)},a.createElement(v,(0,r.Z)({},e,t)),a.createElement(k,(0,r.Z)({},e,t)))}function w(e){const t=(0,b.Z)();return a.createElement(x,(0,r.Z)({key:String(t)},e))}},2323:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>u,default:()=>m,frontMatter:()=>i,metadata:()=>s,toc:()=>d});var r=n(7462),a=(n(7294),n(3905)),o=n(4866),l=n(5162);const i={},u="Outline",s={unversionedId:"extras/editor/outline",id:"extras/editor/outline",title:"Outline",description:"You can enable the extra with the :LazyExtras command.",source:"@site/docs/extras/editor/outline.md",sourceDirName:"extras/editor",slug:"/extras/editor/outline",permalink:"/extras/editor/outline",draft:!1,editUrl:"https://github.com/LazyVim/lazyvim.github.io/tree/main/docs/extras/editor/outline.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Neo-tree",permalink:"/extras/editor/neo-tree"},next:{title:"Overseer",permalink:"/extras/editor/overseer"}},c={},d=[{value:"outline.nvim",id:"outlinenvim",level:2},{value:"trouble.nvim <em>(optional)</em>",id:"troublenvim-optional",level:2},{value:"edgy.nvim <em>(optional)</em>",id:"edgynvim-optional",level:2}],p={toc:d};function m(e){let{components:t,...n}=e;return(0,a.kt)("wrapper",(0,r.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"outline"},(0,a.kt)("inlineCode",{parentName:"h1"},"Outline")),(0,a.kt)("admonition",{type:"info"},(0,a.kt)("p",{parentName:"admonition"},"You can enable the extra with the ",(0,a.kt)("inlineCode",{parentName:"p"},":LazyExtras")," command.\nPlugins marked as optional will only be configured if they are installed.")),(0,a.kt)("p",null,"Below you can find a list of included plugins and their default settings."),(0,a.kt)("admonition",{type:"caution"},(0,a.kt)("p",{parentName:"admonition"},"You don't need to copy the default settings to your config.\nThey are only shown here for reference.")),(0,a.kt)("h2",{id:"outlinenvim"},(0,a.kt)("a",{parentName:"h2",href:"https://github.com/hedyhli/outline.nvim"},"outline.nvim")),(0,a.kt)(o.Z,{mdxType:"Tabs"},(0,a.kt)(l.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'opts = function()\n local defaults = require("outline.config").defaults\n local opts = {\n symbols = {\n icons = {},\n filter = vim.deepcopy(LazyVim.config.kind_filter),\n },\n keymaps = {\n up_and_jump = "<up>",\n down_and_jump = "<down>",\n },\n }\n\n for kind, symbol in pairs(defaults.symbols.icons) do\n opts.symbols.icons[kind] = {\n icon = LazyVim.config.icons.kinds[kind] or symbol.icon,\n hl = symbol.hl,\n }\n end\n return opts\nend\n'))),(0,a.kt)(l.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "hedyhli/outline.nvim",\n keys = { { "<leader>cs", "<cmd>Outline<cr>", desc = "Toggle Outline" } },\n cmd = "Outline",\n opts = function()\n local defaults = require("outline.config").defaults\n local opts = {\n symbols = {\n icons = {},\n filter = vim.deepcopy(LazyVim.config.kind_filter),\n },\n keymaps = {\n up_and_jump = "<up>",\n down_and_jump = "<down>",\n },\n }\n\n for kind, symbol in pairs(defaults.symbols.icons) do\n opts.symbols.icons[kind] = {\n icon = LazyVim.config.icons.kinds[kind] or symbol.icon,\n hl = symbol.hl,\n }\n end\n return opts\n end,\n}\n')))),(0,a.kt)("h2",{id:"troublenvim-optional"},(0,a.kt)("a",{parentName:"h2",href:"https://github.com/folke/trouble.nvim"},"trouble.nvim")," ",(0,a.kt)("em",{parentName:"h2"},"(optional)")),(0,a.kt)("p",null," Disable ",(0,a.kt)("inlineCode",{parentName:"p"},"<leader>cs")," keymap so it doesn't conflict with ",(0,a.kt)("inlineCode",{parentName:"p"},"outline.nvim")),(0,a.kt)(o.Z,{mdxType:"Tabs"},(0,a.kt)(l.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},"opts = nil\n"))),(0,a.kt)(l.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "folke/trouble.nvim",\n optional = true,\n keys = {\n { "<leader>cs", false },\n },\n}\n')))),(0,a.kt)("h2",{id:"edgynvim-optional"},(0,a.kt)("a",{parentName:"h2",href:"https://github.com/folke/edgy.nvim"},"edgy.nvim")," ",(0,a.kt)("em",{parentName:"h2"},"(optional)")),(0,a.kt)("p",null," edgy integration"),(0,a.kt)(o.Z,{mdxType:"Tabs"},(0,a.kt)(l.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'opts = function(_, opts)\n local edgy_idx = LazyVim.plugin.extra_idx("ui.edgy")\n local symbols_idx = LazyVim.plugin.extra_idx("editor.outline")\n\n if edgy_idx and edgy_idx > symbols_idx then\n LazyVim.warn(\n "The `edgy.nvim` extra must be **imported** before the `outline.nvim` extra to work properly.",\n { title = "LazyVim" }\n )\n end\n\n opts.right = opts.right or {}\n table.insert(opts.right, {\n title = "Outline",\n ft = "Outline",\n pinned = true,\n open = "Outline",\n })\nend\n'))),(0,a.kt)(l.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "folke/edgy.nvim",\n optional = true,\n opts = function(_, opts)\n local edgy_idx = LazyVim.plugin.extra_idx("ui.edgy")\n local symbols_idx = LazyVim.plugin.extra_idx("editor.outline")\n\n if edgy_idx and edgy_idx > symbols_idx then\n LazyVim.warn(\n "The `edgy.nvim` extra must be **imported** before the `outline.nvim` extra to work properly.",\n { title = "LazyVim" }\n )\n end\n\n opts.right = opts.right or {}\n table.insert(opts.right, {\n title = "Outline",\n ft = "Outline",\n pinned = true,\n open = "Outline",\n })\n end,\n}\n')))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/e01fff5b.7e229204.js b/assets/js/e01fff5b.7e229204.js new file mode 100644 index 0000000000..12ab6fd54d --- /dev/null +++ b/assets/js/e01fff5b.7e229204.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklazyvim=self.webpackChunklazyvim||[]).push([[2],{3905:(e,t,r)=>{r.d(t,{Zo:()=>c,kt:()=>f});var a=r(7294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function u(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?l(Object(r),!0).forEach((function(t){n(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):l(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function o(e,t){if(null==e)return{};var r,a,n=function(e,t){if(null==e)return{};var r,a,n={},l=Object.keys(e);for(a=0;a<l.length;a++)r=l[a],t.indexOf(r)>=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a<l.length;a++)r=l[a],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var s=a.createContext({}),i=function(e){var t=a.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):u(u({},t),e)),r},c=function(e){var t=i(e.components);return a.createElement(s.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,l=e.originalType,s=e.parentName,c=o(e,["components","mdxType","originalType","parentName"]),p=i(r),m=n,f=p["".concat(s,".").concat(m)]||p[m]||d[m]||l;return r?a.createElement(f,u(u({ref:t},c),{},{components:r})):a.createElement(f,u({ref:t},c))}));function f(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var l=r.length,u=new Array(l);u[0]=m;var o={};for(var s in t)hasOwnProperty.call(t,s)&&(o[s]=t[s]);o.originalType=e,o[p]="string"==typeof e?e:n,u[1]=o;for(var i=2;i<l;i++)u[i]=r[i];return a.createElement.apply(null,u)}return a.createElement.apply(null,r)}m.displayName="MDXCreateElement"},5162:(e,t,r)=>{r.d(t,{Z:()=>u});var a=r(7294),n=r(6010);const l="tabItem_Ymn6";function u(e){let{children:t,hidden:r,className:u}=e;return a.createElement("div",{role:"tabpanel",className:(0,n.Z)(l,u),hidden:r},t)}},4866:(e,t,r)=>{r.d(t,{Z:()=>x});var a=r(7462),n=r(7294),l=r(6010),u=r(2466),o=r(6550),s=r(1980),i=r(7392),c=r(12);function p(e){return function(e){return n.Children.map(e,(e=>{if(!e||(0,n.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:t,label:r,attributes:a,default:n}}=e;return{value:t,label:r,attributes:a,default:n}}))}function d(e){const{values:t,children:r}=e;return(0,n.useMemo)((()=>{const e=t??p(r);return function(e){const t=(0,i.l)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[t,r])}function m(e){let{value:t,tabValues:r}=e;return r.some((e=>e.value===t))}function f(e){let{queryString:t=!1,groupId:r}=e;const a=(0,o.k6)(),l=function(e){let{queryString:t=!1,groupId:r}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!r)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return r??null}({queryString:t,groupId:r});return[(0,s._X)(l),(0,n.useCallback)((e=>{if(!l)return;const t=new URLSearchParams(a.location.search);t.set(l,e),a.replace({...a.location,search:t.toString()})}),[l,a])]}function h(e){const{defaultValue:t,queryString:r=!1,groupId:a}=e,l=d(e),[u,o]=(0,n.useState)((()=>function(e){let{defaultValue:t,tabValues:r}=e;if(0===r.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(t){if(!m({value:t,tabValues:r}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${r.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const a=r.find((e=>e.default))??r[0];if(!a)throw new Error("Unexpected error: 0 tabValues");return a.value}({defaultValue:t,tabValues:l}))),[s,i]=f({queryString:r,groupId:a}),[p,h]=function(e){let{groupId:t}=e;const r=function(e){return e?`docusaurus.tab.${e}`:null}(t),[a,l]=(0,c.Nk)(r);return[a,(0,n.useCallback)((e=>{r&&l.set(e)}),[r,l])]}({groupId:a}),b=(()=>{const e=s??p;return m({value:e,tabValues:l})?e:null})();(0,n.useLayoutEffect)((()=>{b&&o(b)}),[b]);return{selectedValue:u,selectValue:(0,n.useCallback)((e=>{if(!m({value:e,tabValues:l}))throw new Error(`Can't select invalid tab value=${e}`);o(e),i(e),h(e)}),[i,h,l]),tabValues:l}}var b=r(2389);const v="tabList__CuJ",y="tabItem_LNqP";function g(e){let{className:t,block:r,selectedValue:o,selectValue:s,tabValues:i}=e;const c=[],{blockElementScrollPositionUntilNextRender:p}=(0,u.o5)(),d=e=>{const t=e.currentTarget,r=c.indexOf(t),a=i[r].value;a!==o&&(p(t),s(a))},m=e=>{let t=null;switch(e.key){case"Enter":d(e);break;case"ArrowRight":{const r=c.indexOf(e.currentTarget)+1;t=c[r]??c[0];break}case"ArrowLeft":{const r=c.indexOf(e.currentTarget)-1;t=c[r]??c[c.length-1];break}}t?.focus()};return n.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,l.Z)("tabs",{"tabs--block":r},t)},i.map((e=>{let{value:t,label:r,attributes:u}=e;return n.createElement("li",(0,a.Z)({role:"tab",tabIndex:o===t?0:-1,"aria-selected":o===t,key:t,ref:e=>c.push(e),onKeyDown:m,onClick:d},u,{className:(0,l.Z)("tabs__item",y,u?.className,{"tabs__item--active":o===t})}),r??t)})))}function k(e){let{lazy:t,children:r,selectedValue:a}=e;const l=(Array.isArray(r)?r:[r]).filter(Boolean);if(t){const e=l.find((e=>e.props.value===a));return e?(0,n.cloneElement)(e,{className:"margin-top--md"}):null}return n.createElement("div",{className:"margin-top--md"},l.map(((e,t)=>(0,n.cloneElement)(e,{key:t,hidden:e.props.value!==a}))))}function w(e){const t=h(e);return n.createElement("div",{className:(0,l.Z)("tabs-container",v)},n.createElement(g,(0,a.Z)({},e,t)),n.createElement(k,(0,a.Z)({},e,t)))}function x(e){const t=(0,b.Z)();return n.createElement(w,(0,a.Z)({key:String(t)},e))}},5758:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>s,default:()=>m,frontMatter:()=>o,metadata:()=>i,toc:()=>p});var a=r(7462),n=(r(7294),r(3905)),l=r(4866),u=r(5162);const o={},s="Rest",i={unversionedId:"extras/util/rest",id:"extras/util/rest",title:"Rest",description:"You can enable the extra with the :LazyExtras command.",source:"@site/docs/extras/util/rest.md",sourceDirName:"extras/util",slug:"/extras/util/rest",permalink:"/extras/util/rest",draft:!1,editUrl:"https://github.com/LazyVim/lazyvim.github.io/tree/main/docs/extras/util/rest.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Project",permalink:"/extras/util/project"},next:{title:"Startuptime",permalink:"/extras/util/startuptime"}},c={},p=[{value:"kulala.nvim",id:"kulalanvim",level:2},{value:"nvim-treesitter",id:"nvim-treesitter",level:2}],d={toc:p};function m(e){let{components:t,...r}=e;return(0,n.kt)("wrapper",(0,a.Z)({},d,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h1",{id:"rest"},(0,n.kt)("inlineCode",{parentName:"h1"},"Rest")),(0,n.kt)("admonition",{type:"info"},(0,n.kt)("p",{parentName:"admonition"},"You can enable the extra with the ",(0,n.kt)("inlineCode",{parentName:"p"},":LazyExtras")," command.\nPlugins marked as optional will only be configured if they are installed.")),(0,n.kt)("p",null,"Below you can find a list of included plugins and their default settings."),(0,n.kt)("admonition",{type:"caution"},(0,n.kt)("p",{parentName:"admonition"},"You don't need to copy the default settings to your config.\nThey are only shown here for reference.")),(0,n.kt)("h2",{id:"kulalanvim"},(0,n.kt)("a",{parentName:"h2",href:"https://github.com/mistweaverco/kulala.nvim"},"kulala.nvim")),(0,n.kt)(l.Z,{mdxType:"Tabs"},(0,n.kt)(u.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-lua"},"opts = {}\n"))),(0,n.kt)(u.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "mistweaverco/kulala.nvim",\n ft = "http",\n keys = {\n { "<leader>R", "", desc = "+Rest" },\n { "<leader>Rb", "<cmd>lua require(\'kulala\').scratchpad()<cr>", desc = "Open scratchpad" },\n { "<leader>Rc", "<cmd>lua require(\'kulala\').copy()<cr>", desc = "Copy as cURL", ft = "http" },\n { "<leader>RC", "<cmd>lua require(\'kulala\').from_curl()<cr>", desc = "Paste from curl", ft = "http" },\n { "<leader>Re", "<cmd>lua require(\'kulala\').set_selected_env()<cr>", desc = "Set environment", ft = "http" },\n {\n "<leader>Rg",\n "<cmd>lua require(\'kulala\').download_graphql_schema()<cr>",\n desc = "Download GraphQL schema",\n ft = "http",\n },\n { "<leader>Ri", "<cmd>lua require(\'kulala\').inspect()<cr>", desc = "Inspect current request", ft = "http" },\n { "<leader>Rn", "<cmd>lua require(\'kulala\').jump_next()<cr>", desc = "Jump to next request", ft = "http" },\n { "<leader>Rp", "<cmd>lua require(\'kulala\').jump_prev()<cr>", desc = "Jump to previous request", ft = "http" },\n { "<leader>Rq", "<cmd>lua require(\'kulala\').close()<cr>", desc = "Close window", ft = "http" },\n { "<leader>Rr", "<cmd>lua require(\'kulala\').replay()<cr>", desc = "Replay the last request" },\n { "<leader>Rs", "<cmd>lua require(\'kulala\').run()<cr>", desc = "Send the request", ft = "http" },\n { "<leader>RS", "<cmd>lua require(\'kulala\').show_stats()<cr>", desc = "Show stats", ft = "http" },\n { "<leader>Rt", "<cmd>lua require(\'kulala\').toggle_view()<cr>", desc = "Toggle headers/body", ft = "http" },\n },\n opts = {},\n}\n')))),(0,n.kt)("h2",{id:"nvim-treesitter"},(0,n.kt)("a",{parentName:"h2",href:"https://github.com/nvim-treesitter/nvim-treesitter"},"nvim-treesitter")),(0,n.kt)(l.Z,{mdxType:"Tabs"},(0,n.kt)(u.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-lua"},'opts = {\n ensure_installed = { "http", "graphql" },\n}\n'))),(0,n.kt)(u.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "nvim-treesitter/nvim-treesitter",\n opts = {\n ensure_installed = { "http", "graphql" },\n },\n}\n')))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/e2039070.0b4bd68a.js b/assets/js/e2039070.0b4bd68a.js new file mode 100644 index 0000000000..fe0ad767aa --- /dev/null +++ b/assets/js/e2039070.0b4bd68a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklazyvim=self.webpackChunklazyvim||[]).push([[3251],{3905:(e,n,t)=>{t.d(n,{Zo:()=>c,kt:()=>m});var r=t(7294);function a(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function o(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function l(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?o(Object(t),!0).forEach((function(n){a(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):o(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function i(e,n){if(null==e)return{};var t,r,a=function(e,n){if(null==e)return{};var t,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)t=o[r],n.indexOf(t)>=0||(a[t]=e[t]);return a}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)t=o[r],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var u=r.createContext({}),s=function(e){var n=r.useContext(u),t=n;return e&&(t="function"==typeof e?e(n):l(l({},n),e)),t},c=function(e){var n=s(e.components);return r.createElement(u.Provider,{value:n},e.children)},d="mdxType",p={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},f=r.forwardRef((function(e,n){var t=e.components,a=e.mdxType,o=e.originalType,u=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),d=s(t),f=a,m=d["".concat(u,".").concat(f)]||d[f]||p[f]||o;return t?r.createElement(m,l(l({ref:n},c),{},{components:t})):r.createElement(m,l({ref:n},c))}));function m(e,n){var t=arguments,a=n&&n.mdxType;if("string"==typeof e||a){var o=t.length,l=new Array(o);l[0]=f;var i={};for(var u in n)hasOwnProperty.call(n,u)&&(i[u]=n[u]);i.originalType=e,i[d]="string"==typeof e?e:a,l[1]=i;for(var s=2;s<o;s++)l[s]=t[s];return r.createElement.apply(null,l)}return r.createElement.apply(null,t)}f.displayName="MDXCreateElement"},5162:(e,n,t)=>{t.d(n,{Z:()=>l});var r=t(7294),a=t(6010);const o="tabItem_Ymn6";function l(e){let{children:n,hidden:t,className:l}=e;return r.createElement("div",{role:"tabpanel",className:(0,a.Z)(o,l),hidden:t},n)}},4866:(e,n,t)=>{t.d(n,{Z:()=>x});var r=t(7462),a=t(7294),o=t(6010),l=t(2466),i=t(6550),u=t(1980),s=t(7392),c=t(12);function d(e){return function(e){return a.Children.map(e,(e=>{if(!e||(0,a.isValidElement)(e)&&function(e){const{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:n,label:t,attributes:r,default:a}}=e;return{value:n,label:t,attributes:r,default:a}}))}function p(e){const{values:n,children:t}=e;return(0,a.useMemo)((()=>{const e=n??d(t);return function(e){const n=(0,s.l)(e,((e,n)=>e.value===n.value));if(n.length>0)throw new Error(`Docusaurus error: Duplicate values "${n.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[n,t])}function f(e){let{value:n,tabValues:t}=e;return t.some((e=>e.value===n))}function m(e){let{queryString:n=!1,groupId:t}=e;const r=(0,i.k6)(),o=function(e){let{queryString:n=!1,groupId:t}=e;if("string"==typeof n)return n;if(!1===n)return null;if(!0===n&&!t)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return t??null}({queryString:n,groupId:t});return[(0,u._X)(o),(0,a.useCallback)((e=>{if(!o)return;const n=new URLSearchParams(r.location.search);n.set(o,e),r.replace({...r.location,search:n.toString()})}),[o,r])]}function b(e){const{defaultValue:n,queryString:t=!1,groupId:r}=e,o=p(e),[l,i]=(0,a.useState)((()=>function(e){let{defaultValue:n,tabValues:t}=e;if(0===t.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(n){if(!f({value:n,tabValues:t}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${n}" but none of its children has the corresponding value. Available values are: ${t.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return n}const r=t.find((e=>e.default))??t[0];if(!r)throw new Error("Unexpected error: 0 tabValues");return r.value}({defaultValue:n,tabValues:o}))),[u,s]=m({queryString:t,groupId:r}),[d,b]=function(e){let{groupId:n}=e;const t=function(e){return e?`docusaurus.tab.${e}`:null}(n),[r,o]=(0,c.Nk)(t);return[r,(0,a.useCallback)((e=>{t&&o.set(e)}),[t,o])]}({groupId:r}),g=(()=>{const e=u??d;return f({value:e,tabValues:o})?e:null})();(0,a.useLayoutEffect)((()=>{g&&i(g)}),[g]);return{selectedValue:l,selectValue:(0,a.useCallback)((e=>{if(!f({value:e,tabValues:o}))throw new Error(`Can't select invalid tab value=${e}`);i(e),s(e),b(e)}),[s,b,o]),tabValues:o}}var g=t(2389);const v="tabList__CuJ",h="tabItem_LNqP";function y(e){let{className:n,block:t,selectedValue:i,selectValue:u,tabValues:s}=e;const c=[],{blockElementScrollPositionUntilNextRender:d}=(0,l.o5)(),p=e=>{const n=e.currentTarget,t=c.indexOf(n),r=s[t].value;r!==i&&(d(n),u(r))},f=e=>{let n=null;switch(e.key){case"Enter":p(e);break;case"ArrowRight":{const t=c.indexOf(e.currentTarget)+1;n=c[t]??c[0];break}case"ArrowLeft":{const t=c.indexOf(e.currentTarget)-1;n=c[t]??c[c.length-1];break}}n?.focus()};return a.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,o.Z)("tabs",{"tabs--block":t},n)},s.map((e=>{let{value:n,label:t,attributes:l}=e;return a.createElement("li",(0,r.Z)({role:"tab",tabIndex:i===n?0:-1,"aria-selected":i===n,key:n,ref:e=>c.push(e),onKeyDown:f,onClick:p},l,{className:(0,o.Z)("tabs__item",h,l?.className,{"tabs__item--active":i===n})}),t??n)})))}function _(e){let{lazy:n,children:t,selectedValue:r}=e;const o=(Array.isArray(t)?t:[t]).filter(Boolean);if(n){const e=o.find((e=>e.props.value===r));return e?(0,a.cloneElement)(e,{className:"margin-top--md"}):null}return a.createElement("div",{className:"margin-top--md"},o.map(((e,n)=>(0,a.cloneElement)(e,{key:n,hidden:e.props.value!==r}))))}function w(e){const n=b(e);return a.createElement("div",{className:(0,o.Z)("tabs-container",v)},a.createElement(y,(0,r.Z)({},e,n)),a.createElement(_,(0,r.Z)({},e,n)))}function x(e){const n=(0,g.Z)();return a.createElement(w,(0,r.Z)({key:String(n)},e))}},1658:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>u,default:()=>f,frontMatter:()=>i,metadata:()=>s,toc:()=>d});var r=t(7462),a=(t(7294),t(3905)),o=t(4866),l=t(5162);const i={},u="Neo-tree",s={unversionedId:"extras/editor/neo-tree",id:"extras/editor/neo-tree",title:"Neo-tree",description:"You can enable the extra with the :LazyExtras command.",source:"@site/docs/extras/editor/neo-tree.md",sourceDirName:"extras/editor",slug:"/extras/editor/neo-tree",permalink:"/extras/editor/neo-tree",draft:!1,editUrl:"https://github.com/LazyVim/lazyvim.github.io/tree/main/docs/extras/editor/neo-tree.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Navic",permalink:"/extras/editor/navic"},next:{title:"Outline",permalink:"/extras/editor/outline"}},c={},d=[{value:"neo-tree.nvim",id:"neo-treenvim",level:2}],p={toc:d};function f(e){let{components:n,...t}=e;return(0,a.kt)("wrapper",(0,r.Z)({},p,t,{components:n,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"neo-tree"},(0,a.kt)("inlineCode",{parentName:"h1"},"Neo-tree")),(0,a.kt)("admonition",{type:"info"},(0,a.kt)("p",{parentName:"admonition"},"You can enable the extra with the ",(0,a.kt)("inlineCode",{parentName:"p"},":LazyExtras")," command.\nPlugins marked as optional will only be configured if they are installed.")),(0,a.kt)("p",null,"Below you can find a list of included plugins and their default settings."),(0,a.kt)("admonition",{type:"caution"},(0,a.kt)("p",{parentName:"admonition"},"You don't need to copy the default settings to your config.\nThey are only shown here for reference.")),(0,a.kt)("h2",{id:"neo-treenvim"},(0,a.kt)("a",{parentName:"h2",href:"https://github.com/nvim-neo-tree/neo-tree.nvim"},"neo-tree.nvim")),(0,a.kt)("p",null," file explorer"),(0,a.kt)(o.Z,{mdxType:"Tabs"},(0,a.kt)(l.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'opts = {\n sources = { "filesystem", "buffers", "git_status" },\n open_files_do_not_replace_types = { "terminal", "Trouble", "trouble", "qf", "Outline" },\n filesystem = {\n bind_to_cwd = false,\n follow_current_file = { enabled = true },\n use_libuv_file_watcher = true,\n },\n window = {\n mappings = {\n ["l"] = "open",\n ["h"] = "close_node",\n ["<space>"] = "none",\n ["Y"] = {\n function(state)\n local node = state.tree:get_node()\n local path = node:get_id()\n vim.fn.setreg("+", path, "c")\n end,\n desc = "Copy Path to Clipboard",\n },\n ["O"] = {\n function(state)\n require("lazy.util").open(state.tree:get_node().path, { system = true })\n end,\n desc = "Open with System Application",\n },\n ["P"] = { "toggle_preview", config = { use_float = false } },\n },\n },\n default_component_configs = {\n indent = {\n with_expanders = true, -- if nil and file nesting is enabled, will enable expanders\n expander_collapsed = "\uf460",\n expander_expanded = "\uf47c",\n expander_highlight = "NeoTreeExpander",\n },\n git_status = {\n symbols = {\n unstaged = "\udb80\udd31",\n staged = "\udb83\udc52",\n },\n },\n },\n}\n'))),(0,a.kt)(l.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "nvim-neo-tree/neo-tree.nvim",\n cmd = "Neotree",\n keys = {\n {\n "<leader>fe",\n function()\n require("neo-tree.command").execute({ toggle = true, dir = LazyVim.root() })\n end,\n desc = "Explorer NeoTree (Root Dir)",\n },\n {\n "<leader>fE",\n function()\n require("neo-tree.command").execute({ toggle = true, dir = vim.uv.cwd() })\n end,\n desc = "Explorer NeoTree (cwd)",\n },\n { "<leader>e", "<leader>fe", desc = "Explorer NeoTree (Root Dir)", remap = true },\n { "<leader>E", "<leader>fE", desc = "Explorer NeoTree (cwd)", remap = true },\n {\n "<leader>ge",\n function()\n require("neo-tree.command").execute({ source = "git_status", toggle = true })\n end,\n desc = "Git Explorer",\n },\n {\n "<leader>be",\n function()\n require("neo-tree.command").execute({ source = "buffers", toggle = true })\n end,\n desc = "Buffer Explorer",\n },\n },\n deactivate = function()\n vim.cmd([[Neotree close]])\n end,\n init = function()\n -- FIX: use `autocmd` for lazy-loading neo-tree instead of directly requiring it,\n -- because `cwd` is not set up properly.\n vim.api.nvim_create_autocmd("BufEnter", {\n group = vim.api.nvim_create_augroup("Neotree_start_directory", { clear = true }),\n desc = "Start Neo-tree with directory",\n once = true,\n callback = function()\n if package.loaded["neo-tree"] then\n return\n else\n local stats = vim.uv.fs_stat(vim.fn.argv(0))\n if stats and stats.type == "directory" then\n require("neo-tree")\n end\n end\n end,\n })\n end,\n opts = {\n sources = { "filesystem", "buffers", "git_status" },\n open_files_do_not_replace_types = { "terminal", "Trouble", "trouble", "qf", "Outline" },\n filesystem = {\n bind_to_cwd = false,\n follow_current_file = { enabled = true },\n use_libuv_file_watcher = true,\n },\n window = {\n mappings = {\n ["l"] = "open",\n ["h"] = "close_node",\n ["<space>"] = "none",\n ["Y"] = {\n function(state)\n local node = state.tree:get_node()\n local path = node:get_id()\n vim.fn.setreg("+", path, "c")\n end,\n desc = "Copy Path to Clipboard",\n },\n ["O"] = {\n function(state)\n require("lazy.util").open(state.tree:get_node().path, { system = true })\n end,\n desc = "Open with System Application",\n },\n ["P"] = { "toggle_preview", config = { use_float = false } },\n },\n },\n default_component_configs = {\n indent = {\n with_expanders = true, -- if nil and file nesting is enabled, will enable expanders\n expander_collapsed = "\uf460",\n expander_expanded = "\uf47c",\n expander_highlight = "NeoTreeExpander",\n },\n git_status = {\n symbols = {\n unstaged = "\udb80\udd31",\n staged = "\udb83\udc52",\n },\n },\n },\n },\n config = function(_, opts)\n local function on_move(data)\n Snacks.rename.on_rename_file(data.source, data.destination)\n end\n\n local events = require("neo-tree.events")\n opts.event_handlers = opts.event_handlers or {}\n vim.list_extend(opts.event_handlers, {\n { event = events.FILE_MOVED, handler = on_move },\n { event = events.FILE_RENAMED, handler = on_move },\n })\n require("neo-tree").setup(opts)\n vim.api.nvim_create_autocmd("TermClose", {\n pattern = "*lazygit",\n callback = function()\n if package.loaded["neo-tree.sources.git_status"] then\n require("neo-tree.sources.git_status").refresh()\n end\n end,\n })\n end,\n}\n')))))}f.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/e21da259.82ff0bbf.js b/assets/js/e21da259.82ff0bbf.js new file mode 100644 index 0000000000..6378dd2498 --- /dev/null +++ b/assets/js/e21da259.82ff0bbf.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklazyvim=self.webpackChunklazyvim||[]).push([[9501],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>f});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function s(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){r(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function l(e,t){if(null==e)return{};var n,a,r=function(e,t){if(null==e)return{};var n,a,r={},o=Object.keys(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var i=a.createContext({}),u=function(e){var t=a.useContext(i),n=t;return e&&(n="function"==typeof e?e(t):s(s({},t),e)),n},c=function(e){var t=u(e.components);return a.createElement(i.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,o=e.originalType,i=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),p=u(n),m=r,f=p["".concat(i,".").concat(m)]||p[m]||d[m]||o;return n?a.createElement(f,s(s({ref:t},c),{},{components:n})):a.createElement(f,s({ref:t},c))}));function f(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=n.length,s=new Array(o);s[0]=m;var l={};for(var i in t)hasOwnProperty.call(t,i)&&(l[i]=t[i]);l.originalType=e,l[p]="string"==typeof e?e:r,s[1]=l;for(var u=2;u<o;u++)s[u]=n[u];return a.createElement.apply(null,s)}return a.createElement.apply(null,n)}m.displayName="MDXCreateElement"},5162:(e,t,n)=>{n.d(t,{Z:()=>s});var a=n(7294),r=n(6010);const o="tabItem_Ymn6";function s(e){let{children:t,hidden:n,className:s}=e;return a.createElement("div",{role:"tabpanel",className:(0,r.Z)(o,s),hidden:n},t)}},4866:(e,t,n)=>{n.d(t,{Z:()=>N});var a=n(7462),r=n(7294),o=n(6010),s=n(2466),l=n(6550),i=n(1980),u=n(7392),c=n(12);function p(e){return function(e){return r.Children.map(e,(e=>{if(!e||(0,r.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:t,label:n,attributes:a,default:r}}=e;return{value:t,label:n,attributes:a,default:r}}))}function d(e){const{values:t,children:n}=e;return(0,r.useMemo)((()=>{const e=t??p(n);return function(e){const t=(0,u.l)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[t,n])}function m(e){let{value:t,tabValues:n}=e;return n.some((e=>e.value===t))}function f(e){let{queryString:t=!1,groupId:n}=e;const a=(0,l.k6)(),o=function(e){let{queryString:t=!1,groupId:n}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!n)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return n??null}({queryString:t,groupId:n});return[(0,i._X)(o),(0,r.useCallback)((e=>{if(!o)return;const t=new URLSearchParams(a.location.search);t.set(o,e),a.replace({...a.location,search:t.toString()})}),[o,a])]}function g(e){const{defaultValue:t,queryString:n=!1,groupId:a}=e,o=d(e),[s,l]=(0,r.useState)((()=>function(e){let{defaultValue:t,tabValues:n}=e;if(0===n.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(t){if(!m({value:t,tabValues:n}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${n.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const a=n.find((e=>e.default))??n[0];if(!a)throw new Error("Unexpected error: 0 tabValues");return a.value}({defaultValue:t,tabValues:o}))),[i,u]=f({queryString:n,groupId:a}),[p,g]=function(e){let{groupId:t}=e;const n=function(e){return e?`docusaurus.tab.${e}`:null}(t),[a,o]=(0,c.Nk)(n);return[a,(0,r.useCallback)((e=>{n&&o.set(e)}),[n,o])]}({groupId:a}),b=(()=>{const e=i??p;return m({value:e,tabValues:o})?e:null})();(0,r.useLayoutEffect)((()=>{b&&l(b)}),[b]);return{selectedValue:s,selectValue:(0,r.useCallback)((e=>{if(!m({value:e,tabValues:o}))throw new Error(`Can't select invalid tab value=${e}`);l(e),u(e),g(e)}),[u,g,o]),tabValues:o}}var b=n(2389);const h="tabList__CuJ",v="tabItem_LNqP";function y(e){let{className:t,block:n,selectedValue:l,selectValue:i,tabValues:u}=e;const c=[],{blockElementScrollPositionUntilNextRender:p}=(0,s.o5)(),d=e=>{const t=e.currentTarget,n=c.indexOf(t),a=u[n].value;a!==l&&(p(t),i(a))},m=e=>{let t=null;switch(e.key){case"Enter":d(e);break;case"ArrowRight":{const n=c.indexOf(e.currentTarget)+1;t=c[n]??c[0];break}case"ArrowLeft":{const n=c.indexOf(e.currentTarget)-1;t=c[n]??c[c.length-1];break}}t?.focus()};return r.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,o.Z)("tabs",{"tabs--block":n},t)},u.map((e=>{let{value:t,label:n,attributes:s}=e;return r.createElement("li",(0,a.Z)({role:"tab",tabIndex:l===t?0:-1,"aria-selected":l===t,key:t,ref:e=>c.push(e),onKeyDown:m,onClick:d},s,{className:(0,o.Z)("tabs__item",v,s?.className,{"tabs__item--active":l===t})}),n??t)})))}function k(e){let{lazy:t,children:n,selectedValue:a}=e;const o=(Array.isArray(n)?n:[n]).filter(Boolean);if(t){const e=o.find((e=>e.props.value===a));return e?(0,r.cloneElement)(e,{className:"margin-top--md"}):null}return r.createElement("div",{className:"margin-top--md"},o.map(((e,t)=>(0,r.cloneElement)(e,{key:t,hidden:e.props.value!==a}))))}function w(e){const t=g(e);return r.createElement("div",{className:(0,o.Z)("tabs-container",h)},r.createElement(y,(0,a.Z)({},e,t)),r.createElement(k,(0,a.Z)({},e,t)))}function N(e){const t=(0,b.Z)();return r.createElement(w,(0,a.Z)({key:String(t)},e))}},2126:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>m,frontMatter:()=>l,metadata:()=>u,toc:()=>p});var a=n(7462),r=(n(7294),n(3905)),o=n(4866),s=n(5162);const l={},i="Neotest",u={unversionedId:"extras/test/core",id:"extras/test/core",title:"Neotest",description:"Please make sure to read the neotest docs on how to add test adapters.",source:"@site/docs/extras/test/core.md",sourceDirName:"extras/test",slug:"/extras/test/core",permalink:"/extras/test/core",draft:!1,editUrl:"https://github.com/LazyVim/lazyvim.github.io/tree/main/docs/extras/test/core.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"none-ls",permalink:"/extras/lsp/none-ls"},next:{title:"Alpha",permalink:"/extras/ui/alpha"}},c={},p=[{value:"neotest",id:"neotest-1",level:2},{value:"nvim-nio",id:"nvim-nio",level:2},{value:"nvim-dap <em>(optional)</em>",id:"nvim-dap-optional",level:2}],d={toc:p};function m(e){let{components:t,...n}=e;return(0,r.kt)("wrapper",(0,a.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"neotest"},"Neotest"),(0,r.kt)("p",null,"Please make sure to read the ",(0,r.kt)("strong",{parentName:"p"},"neotest")," docs on how to add test adapters."),(0,r.kt)("p",null,"Example on adding the plenary test adapter:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua",metastring:'title="~/.config/nvim/lua/plugins/test.lua"',title:'"~/.config/nvim/lua/plugins/test.lua"'},'return {\n { "nvim-neotest/neotest-plenary" },\n {\n "nvim-neotest/neotest",\n opts = { adapters = { "neotest-plenary" } },\n },\n}\n')),(0,r.kt)("admonition",{type:"info"},(0,r.kt)("p",{parentName:"admonition"},"You can enable the extra with the ",(0,r.kt)("inlineCode",{parentName:"p"},":LazyExtras")," command.\nPlugins marked as optional will only be configured if they are installed.")),(0,r.kt)("p",null,"Below you can find a list of included plugins and their default settings."),(0,r.kt)("admonition",{type:"caution"},(0,r.kt)("p",{parentName:"admonition"},"You don't need to copy the default settings to your config.\nThey are only shown here for reference.")),(0,r.kt)("h2",{id:"neotest-1"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/nvim-neotest/neotest"},"neotest")),(0,r.kt)(o.Z,{mdxType:"Tabs"},(0,r.kt)(s.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = {\n -- Can be a list of adapters like what neotest expects,\n -- or a list of adapter names,\n -- or a table of adapter names, mapped to adapter configs.\n -- The adapter will then be automatically loaded with the config.\n adapters = {},\n -- Example for loading neotest-golang with a custom config\n -- adapters = {\n -- ["neotest-golang"] = {\n -- go_test_args = { "-v", "-race", "-count=1", "-timeout=60s" },\n -- dap_go_enabled = true,\n -- },\n -- },\n status = { virtual_text = true },\n output = { open_on_run = true },\n quickfix = {\n open = function()\n if LazyVim.has("trouble.nvim") then\n require("trouble").open({ mode = "quickfix", focus = false })\n else\n vim.cmd("copen")\n end\n end,\n },\n}\n'))),(0,r.kt)(s.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "nvim-neotest/neotest",\n dependencies = { "nvim-neotest/nvim-nio" },\n opts = {\n -- Can be a list of adapters like what neotest expects,\n -- or a list of adapter names,\n -- or a table of adapter names, mapped to adapter configs.\n -- The adapter will then be automatically loaded with the config.\n adapters = {},\n -- Example for loading neotest-golang with a custom config\n -- adapters = {\n -- ["neotest-golang"] = {\n -- go_test_args = { "-v", "-race", "-count=1", "-timeout=60s" },\n -- dap_go_enabled = true,\n -- },\n -- },\n status = { virtual_text = true },\n output = { open_on_run = true },\n quickfix = {\n open = function()\n if LazyVim.has("trouble.nvim") then\n require("trouble").open({ mode = "quickfix", focus = false })\n else\n vim.cmd("copen")\n end\n end,\n },\n },\n config = function(_, opts)\n local neotest_ns = vim.api.nvim_create_namespace("neotest")\n vim.diagnostic.config({\n virtual_text = {\n format = function(diagnostic)\n -- Replace newline and tab characters with space for more compact diagnostics\n local message = diagnostic.message:gsub("\\n", " "):gsub("\\t", " "):gsub("%s+", " "):gsub("^%s+", "")\n return message\n end,\n },\n }, neotest_ns)\n\n if LazyVim.has("trouble.nvim") then\n opts.consumers = opts.consumers or {}\n -- Refresh and auto close trouble after running tests\n ---@type neotest.Consumer\n opts.consumers.trouble = function(client)\n client.listeners.results = function(adapter_id, results, partial)\n if partial then\n return\n end\n local tree = assert(client:get_position(nil, { adapter = adapter_id }))\n\n local failed = 0\n for pos_id, result in pairs(results) do\n if result.status == "failed" and tree:get_key(pos_id) then\n failed = failed + 1\n end\n end\n vim.schedule(function()\n local trouble = require("trouble")\n if trouble.is_open() then\n trouble.refresh()\n if failed == 0 then\n trouble.close()\n end\n end\n end)\n return {}\n end\n end\n end\n\n if opts.adapters then\n local adapters = {}\n for name, config in pairs(opts.adapters or {}) do\n if type(name) == "number" then\n if type(config) == "string" then\n config = require(config)\n end\n adapters[#adapters + 1] = config\n elseif config ~= false then\n local adapter = require(name)\n if type(config) == "table" and not vim.tbl_isempty(config) then\n local meta = getmetatable(adapter)\n if adapter.setup then\n adapter.setup(config)\n elseif adapter.adapter then\n adapter.adapter(config)\n adapter = adapter.adapter\n elseif meta and meta.__call then\n adapter = adapter(config)\n else\n error("Adapter " .. name .. " does not support setup")\n end\n end\n adapters[#adapters + 1] = adapter\n end\n end\n opts.adapters = adapters\n end\n\n require("neotest").setup(opts)\n end,\n -- stylua: ignore\n keys = {\n {"<leader>t", "", desc = "+test"},\n { "<leader>ta", function() require("neotest").run.attach() end, desc = "Attach to Test (Neotest)" },\n { "<leader>tt", function() require("neotest").run.run(vim.fn.expand("%")) end, desc = "Run File (Neotest)" },\n { "<leader>tT", function() require("neotest").run.run(vim.uv.cwd()) end, desc = "Run All Test Files (Neotest)" },\n { "<leader>tr", function() require("neotest").run.run() end, desc = "Run Nearest (Neotest)" },\n { "<leader>tl", function() require("neotest").run.run_last() end, desc = "Run Last (Neotest)" },\n { "<leader>ts", function() require("neotest").summary.toggle() end, desc = "Toggle Summary (Neotest)" },\n { "<leader>to", function() require("neotest").output.open({ enter = true, auto_close = true }) end, desc = "Show Output (Neotest)" },\n { "<leader>tO", function() require("neotest").output_panel.toggle() end, desc = "Toggle Output Panel (Neotest)" },\n { "<leader>tS", function() require("neotest").run.stop() end, desc = "Stop (Neotest)" },\n { "<leader>tw", function() require("neotest").watch.toggle(vim.fn.expand("%")) end, desc = "Toggle Watch (Neotest)" },\n },\n}\n')))),(0,r.kt)("h2",{id:"nvim-nio"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/nvim-neotest/nvim-nio"},"nvim-nio")),(0,r.kt)(o.Z,{mdxType:"Tabs"},(0,r.kt)(s.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},"opts = nil\n"))),(0,r.kt)(s.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{ "nvim-neotest/nvim-nio" }\n')))),(0,r.kt)("h2",{id:"nvim-dap-optional"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/mfussenegger/nvim-dap"},"nvim-dap")," ",(0,r.kt)("em",{parentName:"h2"},"(optional)")),(0,r.kt)(o.Z,{mdxType:"Tabs"},(0,r.kt)(s.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},"opts = nil\n"))),(0,r.kt)(s.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "mfussenegger/nvim-dap",\n optional = true,\n -- stylua: ignore\n keys = {\n { "<leader>td", function() require("neotest").run.run({strategy = "dap"}) end, desc = "Debug Nearest" },\n },\n}\n')))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/e297f6d7.136a3813.js b/assets/js/e297f6d7.136a3813.js new file mode 100644 index 0000000000..7abe08b8e1 --- /dev/null +++ b/assets/js/e297f6d7.136a3813.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklazyvim=self.webpackChunklazyvim||[]).push([[8227],{3905:(e,n,t)=>{t.d(n,{Zo:()=>c,kt:()=>v});var r=t(7294);function a(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function o(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function l(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?o(Object(t),!0).forEach((function(n){a(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):o(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function s(e,n){if(null==e)return{};var t,r,a=function(e,n){if(null==e)return{};var t,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)t=o[r],n.indexOf(t)>=0||(a[t]=e[t]);return a}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)t=o[r],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var i=r.createContext({}),u=function(e){var n=r.useContext(i),t=n;return e&&(t="function"==typeof e?e(n):l(l({},n),e)),t},c=function(e){var n=u(e.components);return r.createElement(i.Provider,{value:n},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},d=r.forwardRef((function(e,n){var t=e.components,a=e.mdxType,o=e.originalType,i=e.parentName,c=s(e,["components","mdxType","originalType","parentName"]),p=u(t),d=a,v=p["".concat(i,".").concat(d)]||p[d]||m[d]||o;return t?r.createElement(v,l(l({ref:n},c),{},{components:t})):r.createElement(v,l({ref:n},c))}));function v(e,n){var t=arguments,a=n&&n.mdxType;if("string"==typeof e||a){var o=t.length,l=new Array(o);l[0]=d;var s={};for(var i in n)hasOwnProperty.call(n,i)&&(s[i]=n[i]);s.originalType=e,s[p]="string"==typeof e?e:a,l[1]=s;for(var u=2;u<o;u++)l[u]=t[u];return r.createElement.apply(null,l)}return r.createElement.apply(null,t)}d.displayName="MDXCreateElement"},5162:(e,n,t)=>{t.d(n,{Z:()=>l});var r=t(7294),a=t(6010);const o="tabItem_Ymn6";function l(e){let{children:n,hidden:t,className:l}=e;return r.createElement("div",{role:"tabpanel",className:(0,a.Z)(o,l),hidden:t},n)}},4866:(e,n,t)=>{t.d(n,{Z:()=>O});var r=t(7462),a=t(7294),o=t(6010),l=t(2466),s=t(6550),i=t(1980),u=t(7392),c=t(12);function p(e){return function(e){return a.Children.map(e,(e=>{if(!e||(0,a.isValidElement)(e)&&function(e){const{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:n,label:t,attributes:r,default:a}}=e;return{value:n,label:t,attributes:r,default:a}}))}function m(e){const{values:n,children:t}=e;return(0,a.useMemo)((()=>{const e=n??p(t);return function(e){const n=(0,u.l)(e,((e,n)=>e.value===n.value));if(n.length>0)throw new Error(`Docusaurus error: Duplicate values "${n.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[n,t])}function d(e){let{value:n,tabValues:t}=e;return t.some((e=>e.value===n))}function v(e){let{queryString:n=!1,groupId:t}=e;const r=(0,s.k6)(),o=function(e){let{queryString:n=!1,groupId:t}=e;if("string"==typeof n)return n;if(!1===n)return null;if(!0===n&&!t)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return t??null}({queryString:n,groupId:t});return[(0,i._X)(o),(0,a.useCallback)((e=>{if(!o)return;const n=new URLSearchParams(r.location.search);n.set(o,e),r.replace({...r.location,search:n.toString()})}),[o,r])]}function f(e){const{defaultValue:n,queryString:t=!1,groupId:r}=e,o=m(e),[l,s]=(0,a.useState)((()=>function(e){let{defaultValue:n,tabValues:t}=e;if(0===t.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(n){if(!d({value:n,tabValues:t}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${n}" but none of its children has the corresponding value. Available values are: ${t.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return n}const r=t.find((e=>e.default))??t[0];if(!r)throw new Error("Unexpected error: 0 tabValues");return r.value}({defaultValue:n,tabValues:o}))),[i,u]=v({queryString:t,groupId:r}),[p,f]=function(e){let{groupId:n}=e;const t=function(e){return e?`docusaurus.tab.${e}`:null}(n),[r,o]=(0,c.Nk)(t);return[r,(0,a.useCallback)((e=>{t&&o.set(e)}),[t,o])]}({groupId:r}),b=(()=>{const e=i??p;return d({value:e,tabValues:o})?e:null})();(0,a.useLayoutEffect)((()=>{b&&s(b)}),[b]);return{selectedValue:l,selectValue:(0,a.useCallback)((e=>{if(!d({value:e,tabValues:o}))throw new Error(`Can't select invalid tab value=${e}`);s(e),u(e),f(e)}),[u,f,o]),tabValues:o}}var b=t(2389);const h="tabList__CuJ",k="tabItem_LNqP";function g(e){let{className:n,block:t,selectedValue:s,selectValue:i,tabValues:u}=e;const c=[],{blockElementScrollPositionUntilNextRender:p}=(0,l.o5)(),m=e=>{const n=e.currentTarget,t=c.indexOf(n),r=u[t].value;r!==s&&(p(n),i(r))},d=e=>{let n=null;switch(e.key){case"Enter":m(e);break;case"ArrowRight":{const t=c.indexOf(e.currentTarget)+1;n=c[t]??c[0];break}case"ArrowLeft":{const t=c.indexOf(e.currentTarget)-1;n=c[t]??c[c.length-1];break}}n?.focus()};return a.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,o.Z)("tabs",{"tabs--block":t},n)},u.map((e=>{let{value:n,label:t,attributes:l}=e;return a.createElement("li",(0,r.Z)({role:"tab",tabIndex:s===n?0:-1,"aria-selected":s===n,key:n,ref:e=>c.push(e),onKeyDown:d,onClick:m},l,{className:(0,o.Z)("tabs__item",k,l?.className,{"tabs__item--active":s===n})}),t??n)})))}function y(e){let{lazy:n,children:t,selectedValue:r}=e;const o=(Array.isArray(t)?t:[t]).filter(Boolean);if(n){const e=o.find((e=>e.props.value===r));return e?(0,a.cloneElement)(e,{className:"margin-top--md"}):null}return a.createElement("div",{className:"margin-top--md"},o.map(((e,n)=>(0,a.cloneElement)(e,{key:n,hidden:e.props.value!==r}))))}function T(e){const n=f(e);return a.createElement("div",{className:(0,o.Z)("tabs-container",h)},a.createElement(g,(0,r.Z)({},e,n)),a.createElement(y,(0,r.Z)({},e,n)))}function O(e){const n=(0,b.Z)();return a.createElement(T,(0,r.Z)({key:String(n)},e))}},7362:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>i,default:()=>d,frontMatter:()=>s,metadata:()=>u,toc:()=>p});var r=t(7462),a=(t(7294),t(3905)),o=t(4866),l=t(5162);const s={},i="Overseer",u={unversionedId:"extras/editor/overseer",id:"extras/editor/overseer",title:"Overseer",description:"You can enable the extra with the :LazyExtras command.",source:"@site/docs/extras/editor/overseer.md",sourceDirName:"extras/editor",slug:"/extras/editor/overseer",permalink:"/extras/editor/overseer",draft:!1,editUrl:"https://github.com/LazyVim/lazyvim.github.io/tree/main/docs/extras/editor/overseer.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Outline",permalink:"/extras/editor/outline"},next:{title:"Refactoring",permalink:"/extras/editor/refactoring"}},c={},p=[{value:"overseer.nvim",id:"overseernvim",level:2},{value:"catppuccin <em>(optional)</em>",id:"catppuccin-optional",level:2},{value:"which-key.nvim <em>(optional)</em>",id:"which-keynvim-optional",level:2},{value:"edgy.nvim <em>(optional)</em>",id:"edgynvim-optional",level:2},{value:"neotest <em>(optional)</em>",id:"neotest-optional",level:2},{value:"nvim-dap <em>(optional)</em>",id:"nvim-dap-optional",level:2}],m={toc:p};function d(e){let{components:n,...t}=e;return(0,a.kt)("wrapper",(0,r.Z)({},m,t,{components:n,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"overseer"},(0,a.kt)("inlineCode",{parentName:"h1"},"Overseer")),(0,a.kt)("admonition",{type:"info"},(0,a.kt)("p",{parentName:"admonition"},"You can enable the extra with the ",(0,a.kt)("inlineCode",{parentName:"p"},":LazyExtras")," command.\nPlugins marked as optional will only be configured if they are installed.")),(0,a.kt)("p",null,"Below you can find a list of included plugins and their default settings."),(0,a.kt)("admonition",{type:"caution"},(0,a.kt)("p",{parentName:"admonition"},"You don't need to copy the default settings to your config.\nThey are only shown here for reference.")),(0,a.kt)("h2",{id:"overseernvim"},(0,a.kt)("a",{parentName:"h2",href:"https://github.com/stevearc/overseer.nvim"},"overseer.nvim")),(0,a.kt)(o.Z,{mdxType:"Tabs"},(0,a.kt)(l.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'opts = {\n dap = false,\n task_list = {\n bindings = {\n ["<C-h>"] = false,\n ["<C-j>"] = false,\n ["<C-k>"] = false,\n ["<C-l>"] = false,\n },\n },\n form = {\n win_opts = {\n winblend = 0,\n },\n },\n confirm = {\n win_opts = {\n winblend = 0,\n },\n },\n task_win = {\n win_opts = {\n winblend = 0,\n },\n },\n}\n'))),(0,a.kt)(l.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "stevearc/overseer.nvim",\n cmd = {\n "OverseerOpen",\n "OverseerClose",\n "OverseerToggle",\n "OverseerSaveBundle",\n "OverseerLoadBundle",\n "OverseerDeleteBundle",\n "OverseerRunCmd",\n "OverseerRun",\n "OverseerInfo",\n "OverseerBuild",\n "OverseerQuickAction",\n "OverseerTaskAction",\n "OverseerClearCache",\n },\n opts = {\n dap = false,\n task_list = {\n bindings = {\n ["<C-h>"] = false,\n ["<C-j>"] = false,\n ["<C-k>"] = false,\n ["<C-l>"] = false,\n },\n },\n form = {\n win_opts = {\n winblend = 0,\n },\n },\n confirm = {\n win_opts = {\n winblend = 0,\n },\n },\n task_win = {\n win_opts = {\n winblend = 0,\n },\n },\n },\n -- stylua: ignore\n keys = {\n { "<leader>ow", "<cmd>OverseerToggle<cr>", desc = "Task list" },\n { "<leader>oo", "<cmd>OverseerRun<cr>", desc = "Run task" },\n { "<leader>oq", "<cmd>OverseerQuickAction<cr>", desc = "Action recent task" },\n { "<leader>oi", "<cmd>OverseerInfo<cr>", desc = "Overseer Info" },\n { "<leader>ob", "<cmd>OverseerBuild<cr>", desc = "Task builder" },\n { "<leader>ot", "<cmd>OverseerTaskAction<cr>", desc = "Task action" },\n { "<leader>oc", "<cmd>OverseerClearCache<cr>", desc = "Clear cache" },\n },\n}\n')))),(0,a.kt)("h2",{id:"catppuccin-optional"},(0,a.kt)("a",{parentName:"h2",href:"https://github.com/catppuccin/nvim"},"catppuccin")," ",(0,a.kt)("em",{parentName:"h2"},"(optional)")),(0,a.kt)(o.Z,{mdxType:"Tabs"},(0,a.kt)(l.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},"opts = {\n integrations = { overseer = true },\n}\n"))),(0,a.kt)(l.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "catppuccin",\n optional = true,\n opts = {\n integrations = { overseer = true },\n },\n}\n')))),(0,a.kt)("h2",{id:"which-keynvim-optional"},(0,a.kt)("a",{parentName:"h2",href:"https://github.com/folke/which-key.nvim"},"which-key.nvim")," ",(0,a.kt)("em",{parentName:"h2"},"(optional)")),(0,a.kt)(o.Z,{mdxType:"Tabs"},(0,a.kt)(l.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'opts = {\n spec = {\n { "<leader>o", group = "overseer" },\n },\n}\n'))),(0,a.kt)(l.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "folke/which-key.nvim",\n optional = true,\n opts = {\n spec = {\n { "<leader>o", group = "overseer" },\n },\n },\n}\n')))),(0,a.kt)("h2",{id:"edgynvim-optional"},(0,a.kt)("a",{parentName:"h2",href:"https://github.com/folke/edgy.nvim"},"edgy.nvim")," ",(0,a.kt)("em",{parentName:"h2"},"(optional)")),(0,a.kt)(o.Z,{mdxType:"Tabs"},(0,a.kt)(l.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'opts = function(_, opts)\n opts.right = opts.right or {}\n table.insert(opts.right, {\n title = "Overseer",\n ft = "OverseerList",\n open = function()\n require("overseer").open()\n end,\n })\nend\n'))),(0,a.kt)(l.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "folke/edgy.nvim",\n optional = true,\n opts = function(_, opts)\n opts.right = opts.right or {}\n table.insert(opts.right, {\n title = "Overseer",\n ft = "OverseerList",\n open = function()\n require("overseer").open()\n end,\n })\n end,\n}\n')))),(0,a.kt)("h2",{id:"neotest-optional"},(0,a.kt)("a",{parentName:"h2",href:"https://github.com/nvim-neotest/neotest"},"neotest")," ",(0,a.kt)("em",{parentName:"h2"},"(optional)")),(0,a.kt)(o.Z,{mdxType:"Tabs"},(0,a.kt)(l.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'opts = function(_, opts)\n opts = opts or {}\n opts.consumers = opts.consumers or {}\n opts.consumers.overseer = require("neotest.consumers.overseer")\nend\n'))),(0,a.kt)(l.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "nvim-neotest/neotest",\n optional = true,\n opts = function(_, opts)\n opts = opts or {}\n opts.consumers = opts.consumers or {}\n opts.consumers.overseer = require("neotest.consumers.overseer")\n end,\n}\n')))),(0,a.kt)("h2",{id:"nvim-dap-optional"},(0,a.kt)("a",{parentName:"h2",href:"https://github.com/mfussenegger/nvim-dap"},"nvim-dap")," ",(0,a.kt)("em",{parentName:"h2"},"(optional)")),(0,a.kt)(o.Z,{mdxType:"Tabs"},(0,a.kt)(l.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'opts = function()\n require("overseer").enable_dap()\nend\n'))),(0,a.kt)(l.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "mfussenegger/nvim-dap",\n optional = true,\n opts = function()\n require("overseer").enable_dap()\n end,\n}\n')))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/e99c3aef.1669315f.js b/assets/js/e99c3aef.1669315f.js new file mode 100644 index 0000000000..61080fb55c --- /dev/null +++ b/assets/js/e99c3aef.1669315f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklazyvim=self.webpackChunklazyvim||[]).push([[5150],{3905:(e,n,t)=>{t.d(n,{Zo:()=>c,kt:()=>g});var r=t(7294);function a(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function l(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function i(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?l(Object(t),!0).forEach((function(n){a(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):l(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function o(e,n){if(null==e)return{};var t,r,a=function(e,n){if(null==e)return{};var t,r,a={},l=Object.keys(e);for(r=0;r<l.length;r++)t=l[r],n.indexOf(t)>=0||(a[t]=e[t]);return a}(e,n);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r<l.length;r++)t=l[r],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var s=r.createContext({}),u=function(e){var n=r.useContext(s),t=n;return e&&(t="function"==typeof e?e(n):i(i({},n),e)),t},c=function(e){var n=u(e.components);return r.createElement(s.Provider,{value:n},e.children)},d="mdxType",p={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},m=r.forwardRef((function(e,n){var t=e.components,a=e.mdxType,l=e.originalType,s=e.parentName,c=o(e,["components","mdxType","originalType","parentName"]),d=u(t),m=a,g=d["".concat(s,".").concat(m)]||d[m]||p[m]||l;return t?r.createElement(g,i(i({ref:n},c),{},{components:t})):r.createElement(g,i({ref:n},c))}));function g(e,n){var t=arguments,a=n&&n.mdxType;if("string"==typeof e||a){var l=t.length,i=new Array(l);i[0]=m;var o={};for(var s in n)hasOwnProperty.call(n,s)&&(o[s]=n[s]);o.originalType=e,o[d]="string"==typeof e?e:a,i[1]=o;for(var u=2;u<l;u++)i[u]=t[u];return r.createElement.apply(null,i)}return r.createElement.apply(null,t)}m.displayName="MDXCreateElement"},5162:(e,n,t)=>{t.d(n,{Z:()=>i});var r=t(7294),a=t(6010);const l="tabItem_Ymn6";function i(e){let{children:n,hidden:t,className:i}=e;return r.createElement("div",{role:"tabpanel",className:(0,a.Z)(l,i),hidden:t},n)}},4866:(e,n,t)=>{t.d(n,{Z:()=>T});var r=t(7462),a=t(7294),l=t(6010),i=t(2466),o=t(6550),s=t(1980),u=t(7392),c=t(12);function d(e){return function(e){return a.Children.map(e,(e=>{if(!e||(0,a.isValidElement)(e)&&function(e){const{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:n,label:t,attributes:r,default:a}}=e;return{value:n,label:t,attributes:r,default:a}}))}function p(e){const{values:n,children:t}=e;return(0,a.useMemo)((()=>{const e=n??d(t);return function(e){const n=(0,u.l)(e,((e,n)=>e.value===n.value));if(n.length>0)throw new Error(`Docusaurus error: Duplicate values "${n.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[n,t])}function m(e){let{value:n,tabValues:t}=e;return t.some((e=>e.value===n))}function g(e){let{queryString:n=!1,groupId:t}=e;const r=(0,o.k6)(),l=function(e){let{queryString:n=!1,groupId:t}=e;if("string"==typeof n)return n;if(!1===n)return null;if(!0===n&&!t)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return t??null}({queryString:n,groupId:t});return[(0,s._X)(l),(0,a.useCallback)((e=>{if(!l)return;const n=new URLSearchParams(r.location.search);n.set(l,e),r.replace({...r.location,search:n.toString()})}),[l,r])]}function f(e){const{defaultValue:n,queryString:t=!1,groupId:r}=e,l=p(e),[i,o]=(0,a.useState)((()=>function(e){let{defaultValue:n,tabValues:t}=e;if(0===t.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(n){if(!m({value:n,tabValues:t}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${n}" but none of its children has the corresponding value. Available values are: ${t.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return n}const r=t.find((e=>e.default))??t[0];if(!r)throw new Error("Unexpected error: 0 tabValues");return r.value}({defaultValue:n,tabValues:l}))),[s,u]=g({queryString:t,groupId:r}),[d,f]=function(e){let{groupId:n}=e;const t=function(e){return e?`docusaurus.tab.${e}`:null}(n),[r,l]=(0,c.Nk)(t);return[r,(0,a.useCallback)((e=>{t&&l.set(e)}),[t,l])]}({groupId:r}),h=(()=>{const e=s??d;return m({value:e,tabValues:l})?e:null})();(0,a.useLayoutEffect)((()=>{h&&o(h)}),[h]);return{selectedValue:i,selectValue:(0,a.useCallback)((e=>{if(!m({value:e,tabValues:l}))throw new Error(`Can't select invalid tab value=${e}`);o(e),u(e),f(e)}),[u,f,l]),tabValues:l}}var h=t(2389);const b="tabList__CuJ",k="tabItem_LNqP";function v(e){let{className:n,block:t,selectedValue:o,selectValue:s,tabValues:u}=e;const c=[],{blockElementScrollPositionUntilNextRender:d}=(0,i.o5)(),p=e=>{const n=e.currentTarget,t=c.indexOf(n),r=u[t].value;r!==o&&(d(n),s(r))},m=e=>{let n=null;switch(e.key){case"Enter":p(e);break;case"ArrowRight":{const t=c.indexOf(e.currentTarget)+1;n=c[t]??c[0];break}case"ArrowLeft":{const t=c.indexOf(e.currentTarget)-1;n=c[t]??c[c.length-1];break}}n?.focus()};return a.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,l.Z)("tabs",{"tabs--block":t},n)},u.map((e=>{let{value:n,label:t,attributes:i}=e;return a.createElement("li",(0,r.Z)({role:"tab",tabIndex:o===n?0:-1,"aria-selected":o===n,key:n,ref:e=>c.push(e),onKeyDown:m,onClick:p},i,{className:(0,l.Z)("tabs__item",k,i?.className,{"tabs__item--active":o===n})}),t??n)})))}function y(e){let{lazy:n,children:t,selectedValue:r}=e;const l=(Array.isArray(t)?t:[t]).filter(Boolean);if(n){const e=l.find((e=>e.props.value===r));return e?(0,a.cloneElement)(e,{className:"margin-top--md"}):null}return a.createElement("div",{className:"margin-top--md"},l.map(((e,n)=>(0,a.cloneElement)(e,{key:n,hidden:e.props.value!==r}))))}function x(e){const n=f(e);return a.createElement("div",{className:(0,l.Z)("tabs-container",b)},a.createElement(v,(0,r.Z)({},e,n)),a.createElement(y,(0,r.Z)({},e,n)))}function T(e){const n=(0,h.Z)();return a.createElement(x,(0,r.Z)({key:String(n)},e))}},6897:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>s,default:()=>m,frontMatter:()=>o,metadata:()=>u,toc:()=>d});var r=t(7462),a=(t(7294),t(3905)),l=t(4866),i=t(5162);const o={},s="Editor",u={unversionedId:"plugins/editor",id:"plugins/editor",title:"Editor",description:"grug-far.nvim",source:"@site/docs/plugins/editor.md",sourceDirName:"plugins",slug:"/plugins/editor",permalink:"/plugins/editor",draft:!1,editUrl:"https://github.com/LazyVim/lazyvim.github.io/tree/main/docs/plugins/editor.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Colorscheme",permalink:"/plugins/colorscheme"},next:{title:"Formatting",permalink:"/plugins/formatting"}},c={},d=[{value:"grug-far.nvim",id:"grug-farnvim",level:2},{value:"flash.nvim",id:"flashnvim",level:2},{value:"which-key.nvim",id:"which-keynvim",level:2},{value:"gitsigns.nvim",id:"gitsignsnvim",level:2},{value:"gitsigns.nvim",id:"gitsignsnvim-1",level:2},{value:"trouble.nvim",id:"troublenvim",level:2},{value:"todo-comments.nvim",id:"todo-commentsnvim",level:2}],p={toc:d};function m(e){let{components:n,...t}=e;return(0,a.kt)("wrapper",(0,r.Z)({},p,t,{components:n,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"editor"},"Editor"),(0,a.kt)("h2",{id:"grug-farnvim"},(0,a.kt)("a",{parentName:"h2",href:"https://github.com/MagicDuck/grug-far.nvim"},"grug-far.nvim")),(0,a.kt)("p",null," search/replace in multiple files"),(0,a.kt)(l.Z,{mdxType:"Tabs"},(0,a.kt)(i.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},"opts = { headerMaxWidth = 80 }\n"))),(0,a.kt)(i.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "MagicDuck/grug-far.nvim",\n opts = { headerMaxWidth = 80 },\n cmd = { "GrugFar", "GrugFarWithin" },\n keys = {\n {\n "<leader>sr",\n function()\n local grug = require("grug-far")\n local ext = vim.bo.buftype == "" and vim.fn.expand("%:e")\n grug.open({\n transient = true,\n prefills = {\n filesFilter = ext and ext ~= "" and "*." .. ext or nil,\n },\n })\n end,\n mode = { "n", "x" },\n desc = "Search and Replace",\n },\n },\n}\n')))),(0,a.kt)("h2",{id:"flashnvim"},(0,a.kt)("a",{parentName:"h2",href:"https://github.com/folke/flash.nvim"},"flash.nvim")),(0,a.kt)("p",null," Flash enhances the built-in search functionality by showing labels\nat the end of each match, letting you quickly jump to a specific\nlocation."),(0,a.kt)(l.Z,{mdxType:"Tabs"},(0,a.kt)(i.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},"opts = {}\n"))),(0,a.kt)(i.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "folke/flash.nvim",\n event = "VeryLazy",\n vscode = true,\n ---@type Flash.Config\n opts = {},\n -- stylua: ignore\n keys = {\n { "s", mode = { "n", "x", "o" }, function() require("flash").jump() end, desc = "Flash" },\n { "S", mode = { "n", "o", "x" }, function() require("flash").treesitter() end, desc = "Flash Treesitter" },\n { "r", mode = "o", function() require("flash").remote() end, desc = "Remote Flash" },\n { "R", mode = { "o", "x" }, function() require("flash").treesitter_search() end, desc = "Treesitter Search" },\n { "<c-s>", mode = { "c" }, function() require("flash").toggle() end, desc = "Toggle Flash Search" },\n -- Simulate nvim-treesitter incremental selection\n { "<c-space>", mode = { "n", "o", "x" },\n function()\n require("flash").treesitter({\n actions = {\n ["<c-space>"] = "next",\n ["<BS>"] = "prev"\n }\n }) \n end, desc = "Treesitter Incremental Selection" },\n },\n}\n')))),(0,a.kt)("h2",{id:"which-keynvim"},(0,a.kt)("a",{parentName:"h2",href:"https://github.com/folke/which-key.nvim"},"which-key.nvim")),(0,a.kt)("p",null," which-key helps you remember key bindings by showing a popup\nwith the active keybindings of the command you started typing."),(0,a.kt)(l.Z,{mdxType:"Tabs"},(0,a.kt)(i.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'opts = {\n preset = "helix",\n defaults = {},\n spec = {\n {\n mode = { "n", "x" },\n { "<leader><tab>", group = "tabs" },\n { "<leader>c", group = "code" },\n { "<leader>d", group = "debug" },\n { "<leader>dp", group = "profiler" },\n { "<leader>f", group = "file/find" },\n { "<leader>g", group = "git" },\n { "<leader>gh", group = "hunks" },\n { "<leader>q", group = "quit/session" },\n { "<leader>s", group = "search" },\n { "<leader>u", group = "ui" },\n { "<leader>x", group = "diagnostics/quickfix" },\n { "[", group = "prev" },\n { "]", group = "next" },\n { "g", group = "goto" },\n { "gs", group = "surround" },\n { "z", group = "fold" },\n {\n "<leader>b",\n group = "buffer",\n expand = function()\n return require("which-key.extras").expand.buf()\n end,\n },\n {\n "<leader>w",\n group = "windows",\n proxy = "<c-w>",\n expand = function()\n return require("which-key.extras").expand.win()\n end,\n },\n -- better descriptions\n { "gx", desc = "Open with system app" },\n },\n },\n}\n'))),(0,a.kt)(i.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "folke/which-key.nvim",\n event = "VeryLazy",\n opts_extend = { "spec" },\n opts = {\n preset = "helix",\n defaults = {},\n spec = {\n {\n mode = { "n", "x" },\n { "<leader><tab>", group = "tabs" },\n { "<leader>c", group = "code" },\n { "<leader>d", group = "debug" },\n { "<leader>dp", group = "profiler" },\n { "<leader>f", group = "file/find" },\n { "<leader>g", group = "git" },\n { "<leader>gh", group = "hunks" },\n { "<leader>q", group = "quit/session" },\n { "<leader>s", group = "search" },\n { "<leader>u", group = "ui" },\n { "<leader>x", group = "diagnostics/quickfix" },\n { "[", group = "prev" },\n { "]", group = "next" },\n { "g", group = "goto" },\n { "gs", group = "surround" },\n { "z", group = "fold" },\n {\n "<leader>b",\n group = "buffer",\n expand = function()\n return require("which-key.extras").expand.buf()\n end,\n },\n {\n "<leader>w",\n group = "windows",\n proxy = "<c-w>",\n expand = function()\n return require("which-key.extras").expand.win()\n end,\n },\n -- better descriptions\n { "gx", desc = "Open with system app" },\n },\n },\n },\n keys = {\n {\n "<leader>?",\n function()\n require("which-key").show({ global = false })\n end,\n desc = "Buffer Keymaps (which-key)",\n },\n {\n "<c-w><space>",\n function()\n require("which-key").show({ keys = "<c-w>", loop = true })\n end,\n desc = "Window Hydra Mode (which-key)",\n },\n },\n config = function(_, opts)\n local wk = require("which-key")\n wk.setup(opts)\n if not vim.tbl_isempty(opts.defaults) then\n LazyVim.warn("which-key: opts.defaults is deprecated. Please use opts.spec instead.")\n wk.register(opts.defaults)\n end\n end,\n}\n')))),(0,a.kt)("h2",{id:"gitsignsnvim"},(0,a.kt)("a",{parentName:"h2",href:"https://github.com/lewis6991/gitsigns.nvim"},"gitsigns.nvim")),(0,a.kt)("p",null," git signs highlights text that has changed since the list\ngit commit, and also lets you interactively stage & unstage\nhunks in a commit."),(0,a.kt)(l.Z,{mdxType:"Tabs"},(0,a.kt)(i.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'opts = {\n signs = {\n add = { text = "\u258e" },\n change = { text = "\u258e" },\n delete = { text = "\uf0da" },\n topdelete = { text = "\uf0da" },\n changedelete = { text = "\u258e" },\n untracked = { text = "\u258e" },\n },\n signs_staged = {\n add = { text = "\u258e" },\n change = { text = "\u258e" },\n delete = { text = "\uf0da" },\n topdelete = { text = "\uf0da" },\n changedelete = { text = "\u258e" },\n },\n on_attach = function(buffer)\n local gs = package.loaded.gitsigns\n\n local function map(mode, l, r, desc)\n vim.keymap.set(mode, l, r, { buffer = buffer, desc = desc, silent = true })\n end\n\n -- stylua: ignore start\n map("n", "]h", function()\n if vim.wo.diff then\n vim.cmd.normal({ "]c", bang = true })\n else\n gs.nav_hunk("next")\n end\n end, "Next Hunk")\n map("n", "[h", function()\n if vim.wo.diff then\n vim.cmd.normal({ "[c", bang = true })\n else\n gs.nav_hunk("prev")\n end\n end, "Prev Hunk")\n map("n", "]H", function() gs.nav_hunk("last") end, "Last Hunk")\n map("n", "[H", function() gs.nav_hunk("first") end, "First Hunk")\n map({ "n", "x" }, "<leader>ghs", ":Gitsigns stage_hunk<CR>", "Stage Hunk")\n map({ "n", "x" }, "<leader>ghr", ":Gitsigns reset_hunk<CR>", "Reset Hunk")\n map("n", "<leader>ghS", gs.stage_buffer, "Stage Buffer")\n map("n", "<leader>ghu", gs.undo_stage_hunk, "Undo Stage Hunk")\n map("n", "<leader>ghR", gs.reset_buffer, "Reset Buffer")\n map("n", "<leader>ghp", gs.preview_hunk_inline, "Preview Hunk Inline")\n map("n", "<leader>ghb", function() gs.blame_line({ full = true }) end, "Blame Line")\n map("n", "<leader>ghB", function() gs.blame() end, "Blame Buffer")\n map("n", "<leader>ghd", gs.diffthis, "Diff This")\n map("n", "<leader>ghD", function() gs.diffthis("~") end, "Diff This ~")\n map({ "o", "x" }, "ih", ":<C-U>Gitsigns select_hunk<CR>", "GitSigns Select Hunk")\n end,\n}\n'))),(0,a.kt)(i.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "lewis6991/gitsigns.nvim",\n event = "LazyFile",\n opts = {\n signs = {\n add = { text = "\u258e" },\n change = { text = "\u258e" },\n delete = { text = "\uf0da" },\n topdelete = { text = "\uf0da" },\n changedelete = { text = "\u258e" },\n untracked = { text = "\u258e" },\n },\n signs_staged = {\n add = { text = "\u258e" },\n change = { text = "\u258e" },\n delete = { text = "\uf0da" },\n topdelete = { text = "\uf0da" },\n changedelete = { text = "\u258e" },\n },\n on_attach = function(buffer)\n local gs = package.loaded.gitsigns\n\n local function map(mode, l, r, desc)\n vim.keymap.set(mode, l, r, { buffer = buffer, desc = desc, silent = true })\n end\n\n -- stylua: ignore start\n map("n", "]h", function()\n if vim.wo.diff then\n vim.cmd.normal({ "]c", bang = true })\n else\n gs.nav_hunk("next")\n end\n end, "Next Hunk")\n map("n", "[h", function()\n if vim.wo.diff then\n vim.cmd.normal({ "[c", bang = true })\n else\n gs.nav_hunk("prev")\n end\n end, "Prev Hunk")\n map("n", "]H", function() gs.nav_hunk("last") end, "Last Hunk")\n map("n", "[H", function() gs.nav_hunk("first") end, "First Hunk")\n map({ "n", "x" }, "<leader>ghs", ":Gitsigns stage_hunk<CR>", "Stage Hunk")\n map({ "n", "x" }, "<leader>ghr", ":Gitsigns reset_hunk<CR>", "Reset Hunk")\n map("n", "<leader>ghS", gs.stage_buffer, "Stage Buffer")\n map("n", "<leader>ghu", gs.undo_stage_hunk, "Undo Stage Hunk")\n map("n", "<leader>ghR", gs.reset_buffer, "Reset Buffer")\n map("n", "<leader>ghp", gs.preview_hunk_inline, "Preview Hunk Inline")\n map("n", "<leader>ghb", function() gs.blame_line({ full = true }) end, "Blame Line")\n map("n", "<leader>ghB", function() gs.blame() end, "Blame Buffer")\n map("n", "<leader>ghd", gs.diffthis, "Diff This")\n map("n", "<leader>ghD", function() gs.diffthis("~") end, "Diff This ~")\n map({ "o", "x" }, "ih", ":<C-U>Gitsigns select_hunk<CR>", "GitSigns Select Hunk")\n end,\n },\n}\n')))),(0,a.kt)("h2",{id:"gitsignsnvim-1"},(0,a.kt)("a",{parentName:"h2",href:"https://github.com/lewis6991/gitsigns.nvim"},"gitsigns.nvim")),(0,a.kt)(l.Z,{mdxType:"Tabs"},(0,a.kt)(i.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'opts = function()\n Snacks.toggle({\n name = "Git Signs",\n get = function()\n return require("gitsigns.config").config.signcolumn\n end,\n set = function(state)\n require("gitsigns").toggle_signs(state)\n end,\n }):map("<leader>uG")\nend\n'))),(0,a.kt)(i.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "gitsigns.nvim",\n opts = function()\n Snacks.toggle({\n name = "Git Signs",\n get = function()\n return require("gitsigns.config").config.signcolumn\n end,\n set = function(state)\n require("gitsigns").toggle_signs(state)\n end,\n }):map("<leader>uG")\n end,\n}\n')))),(0,a.kt)("h2",{id:"troublenvim"},(0,a.kt)("a",{parentName:"h2",href:"https://github.com/folke/trouble.nvim"},"trouble.nvim")),(0,a.kt)("p",null," better diagnostics list and others"),(0,a.kt)(l.Z,{mdxType:"Tabs"},(0,a.kt)(i.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'opts = {\n modes = {\n lsp = {\n win = { position = "right" },\n },\n },\n}\n'))),(0,a.kt)(i.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "folke/trouble.nvim",\n cmd = { "Trouble" },\n opts = {\n modes = {\n lsp = {\n win = { position = "right" },\n },\n },\n },\n keys = {\n { "<leader>xx", "<cmd>Trouble diagnostics toggle<cr>", desc = "Diagnostics (Trouble)" },\n { "<leader>xX", "<cmd>Trouble diagnostics toggle filter.buf=0<cr>", desc = "Buffer Diagnostics (Trouble)" },\n { "<leader>cs", "<cmd>Trouble symbols toggle<cr>", desc = "Symbols (Trouble)" },\n { "<leader>cS", "<cmd>Trouble lsp toggle<cr>", desc = "LSP references/definitions/... (Trouble)" },\n { "<leader>xL", "<cmd>Trouble loclist toggle<cr>", desc = "Location List (Trouble)" },\n { "<leader>xQ", "<cmd>Trouble qflist toggle<cr>", desc = "Quickfix List (Trouble)" },\n {\n "[q",\n function()\n if require("trouble").is_open() then\n require("trouble").prev({ skip_groups = true, jump = true })\n else\n local ok, err = pcall(vim.cmd.cprev)\n if not ok then\n vim.notify(err, vim.log.levels.ERROR)\n end\n end\n end,\n desc = "Previous Trouble/Quickfix Item",\n },\n {\n "]q",\n function()\n if require("trouble").is_open() then\n require("trouble").next({ skip_groups = true, jump = true })\n else\n local ok, err = pcall(vim.cmd.cnext)\n if not ok then\n vim.notify(err, vim.log.levels.ERROR)\n end\n end\n end,\n desc = "Next Trouble/Quickfix Item",\n },\n },\n}\n')))),(0,a.kt)("h2",{id:"todo-commentsnvim"},(0,a.kt)("a",{parentName:"h2",href:"https://github.com/folke/todo-comments.nvim"},"todo-comments.nvim")),(0,a.kt)("p",null," Finds and lists all of the TODO, HACK, BUG, etc comment\nin your project and loads them into a browsable list."),(0,a.kt)(l.Z,{mdxType:"Tabs"},(0,a.kt)(i.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},"opts = {}\n"))),(0,a.kt)(i.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "folke/todo-comments.nvim",\n cmd = { "TodoTrouble", "TodoTelescope" },\n event = "LazyFile",\n opts = {},\n -- stylua: ignore\n keys = {\n { "]t", function() require("todo-comments").jump_next() end, desc = "Next Todo Comment" },\n { "[t", function() require("todo-comments").jump_prev() end, desc = "Previous Todo Comment" },\n { "<leader>xt", "<cmd>Trouble todo toggle<cr>", desc = "Todo (Trouble)" },\n { "<leader>xT", "<cmd>Trouble todo toggle filter = {tag = {TODO,FIX,FIXME}}<cr>", desc = "Todo/Fix/Fixme (Trouble)" },\n { "<leader>st", "<cmd>TodoTelescope<cr>", desc = "Todo" },\n { "<leader>sT", "<cmd>TodoTelescope keywords=TODO,FIX,FIXME<cr>", desc = "Todo/Fix/Fixme" },\n },\n}\n')))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/ed7583a2.7979adfc.js b/assets/js/ed7583a2.7979adfc.js new file mode 100644 index 0000000000..126c48dfe6 --- /dev/null +++ b/assets/js/ed7583a2.7979adfc.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklazyvim=self.webpackChunklazyvim||[]).push([[1993],{3905:(e,n,t)=>{t.d(n,{Zo:()=>d,kt:()=>f});var a=t(7294);function r(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function o(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,a)}return t}function l(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?o(Object(t),!0).forEach((function(n){r(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):o(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function s(e,n){if(null==e)return{};var t,a,r=function(e,n){if(null==e)return{};var t,a,r={},o=Object.keys(e);for(a=0;a<o.length;a++)t=o[a],n.indexOf(t)>=0||(r[t]=e[t]);return r}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)t=o[a],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(r[t]=e[t])}return r}var i=a.createContext({}),c=function(e){var n=a.useContext(i),t=n;return e&&(t="function"==typeof e?e(n):l(l({},n),e)),t},d=function(e){var n=c(e.components);return a.createElement(i.Provider,{value:n},e.children)},u="mdxType",m={inlineCode:"code",wrapper:function(e){var n=e.children;return a.createElement(a.Fragment,{},n)}},p=a.forwardRef((function(e,n){var t=e.components,r=e.mdxType,o=e.originalType,i=e.parentName,d=s(e,["components","mdxType","originalType","parentName"]),u=c(t),p=r,f=u["".concat(i,".").concat(p)]||u[p]||m[p]||o;return t?a.createElement(f,l(l({ref:n},d),{},{components:t})):a.createElement(f,l({ref:n},d))}));function f(e,n){var t=arguments,r=n&&n.mdxType;if("string"==typeof e||r){var o=t.length,l=new Array(o);l[0]=p;var s={};for(var i in n)hasOwnProperty.call(n,i)&&(s[i]=n[i]);s.originalType=e,s[u]="string"==typeof e?e:r,l[1]=s;for(var c=2;c<o;c++)l[c]=t[c];return a.createElement.apply(null,l)}return a.createElement.apply(null,t)}p.displayName="MDXCreateElement"},5162:(e,n,t)=>{t.d(n,{Z:()=>l});var a=t(7294),r=t(6010);const o="tabItem_Ymn6";function l(e){let{children:n,hidden:t,className:l}=e;return a.createElement("div",{role:"tabpanel",className:(0,r.Z)(o,l),hidden:t},n)}},4866:(e,n,t)=>{t.d(n,{Z:()=>k});var a=t(7462),r=t(7294),o=t(6010),l=t(2466),s=t(6550),i=t(1980),c=t(7392),d=t(12);function u(e){return function(e){return r.Children.map(e,(e=>{if(!e||(0,r.isValidElement)(e)&&function(e){const{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:n,label:t,attributes:a,default:r}}=e;return{value:n,label:t,attributes:a,default:r}}))}function m(e){const{values:n,children:t}=e;return(0,r.useMemo)((()=>{const e=n??u(t);return function(e){const n=(0,c.l)(e,((e,n)=>e.value===n.value));if(n.length>0)throw new Error(`Docusaurus error: Duplicate values "${n.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[n,t])}function p(e){let{value:n,tabValues:t}=e;return t.some((e=>e.value===n))}function f(e){let{queryString:n=!1,groupId:t}=e;const a=(0,s.k6)(),o=function(e){let{queryString:n=!1,groupId:t}=e;if("string"==typeof n)return n;if(!1===n)return null;if(!0===n&&!t)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return t??null}({queryString:n,groupId:t});return[(0,i._X)(o),(0,r.useCallback)((e=>{if(!o)return;const n=new URLSearchParams(a.location.search);n.set(o,e),a.replace({...a.location,search:n.toString()})}),[o,a])]}function v(e){const{defaultValue:n,queryString:t=!1,groupId:a}=e,o=m(e),[l,s]=(0,r.useState)((()=>function(e){let{defaultValue:n,tabValues:t}=e;if(0===t.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(n){if(!p({value:n,tabValues:t}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${n}" but none of its children has the corresponding value. Available values are: ${t.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return n}const a=t.find((e=>e.default))??t[0];if(!a)throw new Error("Unexpected error: 0 tabValues");return a.value}({defaultValue:n,tabValues:o}))),[i,c]=f({queryString:t,groupId:a}),[u,v]=function(e){let{groupId:n}=e;const t=function(e){return e?`docusaurus.tab.${e}`:null}(n),[a,o]=(0,d.Nk)(t);return[a,(0,r.useCallback)((e=>{t&&o.set(e)}),[t,o])]}({groupId:a}),h=(()=>{const e=i??u;return p({value:e,tabValues:o})?e:null})();(0,r.useLayoutEffect)((()=>{h&&s(h)}),[h]);return{selectedValue:l,selectValue:(0,r.useCallback)((e=>{if(!p({value:e,tabValues:o}))throw new Error(`Can't select invalid tab value=${e}`);s(e),c(e),v(e)}),[c,v,o]),tabValues:o}}var h=t(2389);const g="tabList__CuJ",b="tabItem_LNqP";function j(e){let{className:n,block:t,selectedValue:s,selectValue:i,tabValues:c}=e;const d=[],{blockElementScrollPositionUntilNextRender:u}=(0,l.o5)(),m=e=>{const n=e.currentTarget,t=d.indexOf(n),a=c[t].value;a!==s&&(u(n),i(a))},p=e=>{let n=null;switch(e.key){case"Enter":m(e);break;case"ArrowRight":{const t=d.indexOf(e.currentTarget)+1;n=d[t]??d[0];break}case"ArrowLeft":{const t=d.indexOf(e.currentTarget)-1;n=d[t]??d[d.length-1];break}}n?.focus()};return r.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,o.Z)("tabs",{"tabs--block":t},n)},c.map((e=>{let{value:n,label:t,attributes:l}=e;return r.createElement("li",(0,a.Z)({role:"tab",tabIndex:s===n?0:-1,"aria-selected":s===n,key:n,ref:e=>d.push(e),onKeyDown:p,onClick:m},l,{className:(0,o.Z)("tabs__item",b,l?.className,{"tabs__item--active":s===n})}),t??n)})))}function _(e){let{lazy:n,children:t,selectedValue:a}=e;const o=(Array.isArray(t)?t:[t]).filter(Boolean);if(n){const e=o.find((e=>e.props.value===a));return e?(0,r.cloneElement)(e,{className:"margin-top--md"}):null}return r.createElement("div",{className:"margin-top--md"},o.map(((e,n)=>(0,r.cloneElement)(e,{key:n,hidden:e.props.value!==a}))))}function y(e){const n=v(e);return r.createElement("div",{className:(0,o.Z)("tabs-container",g)},r.createElement(j,(0,a.Z)({},e,n)),r.createElement(_,(0,a.Z)({},e,n)))}function k(e){const n=(0,h.Z)();return r.createElement(y,(0,a.Z)({key:String(n)},e))}},9482:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>d,contentTitle:()=>i,default:()=>p,frontMatter:()=>s,metadata:()=>c,toc:()=>u});var a=t(7462),r=(t(7294),t(3905)),o=t(4866),l=t(5162);const s={},i="Java",c={unversionedId:"extras/lang/java",id:"extras/lang/java",title:"Java",description:"You can enable the extra with the :LazyExtras command.",source:"@site/docs/extras/lang/java.md",sourceDirName:"extras/lang",slug:"/extras/lang/java",permalink:"/extras/lang/java",draft:!1,editUrl:"https://github.com/LazyVim/lazyvim.github.io/tree/main/docs/extras/lang/java.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Helm",permalink:"/extras/lang/helm"},next:{title:"JSON",permalink:"/extras/lang/json"}},d={},u=[{value:"nvim-treesitter",id:"nvim-treesitter",level:2},{value:"mason.nvim",id:"masonnvim",level:2},{value:"nvim-lspconfig",id:"nvim-lspconfig",level:2},{value:"nvim-jdtls",id:"nvim-jdtls",level:2},{value:"which-key.nvim",id:"which-keynvim",level:2},{value:"nvim-dap <em>(optional)</em>",id:"nvim-dap-optional",level:2}],m={toc:u};function p(e){let{components:n,...t}=e;return(0,r.kt)("wrapper",(0,a.Z)({},m,t,{components:n,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"java"},"Java"),(0,r.kt)("admonition",{type:"info"},(0,r.kt)("p",{parentName:"admonition"},"You can enable the extra with the ",(0,r.kt)("inlineCode",{parentName:"p"},":LazyExtras")," command.\nPlugins marked as optional will only be configured if they are installed.")),(0,r.kt)("p",null,"Below you can find a list of included plugins and their default settings."),(0,r.kt)("admonition",{type:"caution"},(0,r.kt)("p",{parentName:"admonition"},"You don't need to copy the default settings to your config.\nThey are only shown here for reference.")),(0,r.kt)("h2",{id:"nvim-treesitter"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/nvim-treesitter/nvim-treesitter"},"nvim-treesitter")),(0,r.kt)("p",null," Add java to treesitter."),(0,r.kt)(o.Z,{mdxType:"Tabs"},(0,r.kt)(l.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = { ensure_installed = { "java" } }\n'))),(0,r.kt)(l.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "nvim-treesitter/nvim-treesitter",\n opts = { ensure_installed = { "java" } },\n}\n')))),(0,r.kt)("h2",{id:"masonnvim"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/mason-org/mason.nvim"},"mason.nvim")),(0,r.kt)(o.Z,{mdxType:"Tabs"},(0,r.kt)(l.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = { ensure_installed = { "java-debug-adapter", "java-test" } }\n'))),(0,r.kt)(l.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "mason-org/mason.nvim",\n opts = { ensure_installed = { "java-debug-adapter", "java-test" } },\n}\n')))),(0,r.kt)("h2",{id:"nvim-lspconfig"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/neovim/nvim-lspconfig"},"nvim-lspconfig")),(0,r.kt)("p",null," Configure nvim-lspconfig to install the server automatically via mason, but\ndefer actually starting it to our configuration of nvim-jtdls below."),(0,r.kt)(o.Z,{mdxType:"Tabs"},(0,r.kt)(l.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},"opts = {\n -- make sure mason installs the server\n servers = {\n jdtls = {},\n },\n setup = {\n jdtls = function()\n return true -- avoid duplicate servers\n end,\n },\n}\n"))),(0,r.kt)(l.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "neovim/nvim-lspconfig",\n opts = {\n -- make sure mason installs the server\n servers = {\n jdtls = {},\n },\n setup = {\n jdtls = function()\n return true -- avoid duplicate servers\n end,\n },\n },\n}\n')))),(0,r.kt)("h2",{id:"nvim-jdtls"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/mfussenegger/nvim-jdtls"},"nvim-jdtls")),(0,r.kt)("p",null," Set up nvim-jdtls to attach to java files."),(0,r.kt)(o.Z,{mdxType:"Tabs"},(0,r.kt)(l.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = function()\n local cmd = { vim.fn.exepath("jdtls") }\n if LazyVim.has("mason.nvim") then\n local lombok_jar = vim.fn.expand("$MASON/share/jdtls/lombok.jar")\n table.insert(cmd, string.format("--jvm-arg=-javaagent:%s", lombok_jar))\n end\n return {\n root_dir = function(path)\n return vim.fs.root(path, vim.lsp.config.jdtls.root_markers)\n end,\n\n -- How to find the project name for a given root dir.\n project_name = function(root_dir)\n return root_dir and vim.fs.basename(root_dir)\n end,\n\n -- Where are the config and workspace dirs for a project?\n jdtls_config_dir = function(project_name)\n return vim.fn.stdpath("cache") .. "/jdtls/" .. project_name .. "/config"\n end,\n jdtls_workspace_dir = function(project_name)\n return vim.fn.stdpath("cache") .. "/jdtls/" .. project_name .. "/workspace"\n end,\n\n -- How to run jdtls. This can be overridden to a full java command-line\n -- if the Python wrapper script doesn\'t suffice.\n cmd = cmd,\n full_cmd = function(opts)\n local fname = vim.api.nvim_buf_get_name(0)\n local root_dir = opts.root_dir(fname)\n local project_name = opts.project_name(root_dir)\n local cmd = vim.deepcopy(opts.cmd)\n if project_name then\n vim.list_extend(cmd, {\n "-configuration",\n opts.jdtls_config_dir(project_name),\n "-data",\n opts.jdtls_workspace_dir(project_name),\n })\n end\n return cmd\n end,\n\n -- These depend on nvim-dap, but can additionally be disabled by setting false here.\n dap = { hotcodereplace = "auto", config_overrides = {} },\n -- Can set this to false to disable main class scan, which is a performance killer for large project\n dap_main = {},\n test = true,\n settings = {\n java = {\n inlayHints = {\n parameterNames = {\n enabled = "all",\n },\n },\n },\n },\n }\nend\n'))),(0,r.kt)(l.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "mfussenegger/nvim-jdtls",\n dependencies = { "folke/which-key.nvim" },\n ft = java_filetypes,\n opts = function()\n local cmd = { vim.fn.exepath("jdtls") }\n if LazyVim.has("mason.nvim") then\n local lombok_jar = vim.fn.expand("$MASON/share/jdtls/lombok.jar")\n table.insert(cmd, string.format("--jvm-arg=-javaagent:%s", lombok_jar))\n end\n return {\n root_dir = function(path)\n return vim.fs.root(path, vim.lsp.config.jdtls.root_markers)\n end,\n\n -- How to find the project name for a given root dir.\n project_name = function(root_dir)\n return root_dir and vim.fs.basename(root_dir)\n end,\n\n -- Where are the config and workspace dirs for a project?\n jdtls_config_dir = function(project_name)\n return vim.fn.stdpath("cache") .. "/jdtls/" .. project_name .. "/config"\n end,\n jdtls_workspace_dir = function(project_name)\n return vim.fn.stdpath("cache") .. "/jdtls/" .. project_name .. "/workspace"\n end,\n\n -- How to run jdtls. This can be overridden to a full java command-line\n -- if the Python wrapper script doesn\'t suffice.\n cmd = cmd,\n full_cmd = function(opts)\n local fname = vim.api.nvim_buf_get_name(0)\n local root_dir = opts.root_dir(fname)\n local project_name = opts.project_name(root_dir)\n local cmd = vim.deepcopy(opts.cmd)\n if project_name then\n vim.list_extend(cmd, {\n "-configuration",\n opts.jdtls_config_dir(project_name),\n "-data",\n opts.jdtls_workspace_dir(project_name),\n })\n end\n return cmd\n end,\n\n -- These depend on nvim-dap, but can additionally be disabled by setting false here.\n dap = { hotcodereplace = "auto", config_overrides = {} },\n -- Can set this to false to disable main class scan, which is a performance killer for large project\n dap_main = {},\n test = true,\n settings = {\n java = {\n inlayHints = {\n parameterNames = {\n enabled = "all",\n },\n },\n },\n },\n }\n end,\n config = function(_, opts)\n -- Find the extra bundles that should be passed on the jdtls command-line\n -- if nvim-dap is enabled with java debug/test.\n local bundles = {} ---@type string[]\n if LazyVim.has("mason.nvim") then\n local mason_registry = require("mason-registry")\n if opts.dap and LazyVim.has("nvim-dap") and mason_registry.is_installed("java-debug-adapter") then\n bundles = vim.fn.glob("$MASON/share/java-debug-adapter/com.microsoft.java.debug.plugin-*jar", false, true)\n -- java-test also depends on java-debug-adapter.\n if opts.test and mason_registry.is_installed("java-test") then\n vim.list_extend(bundles, vim.fn.glob("$MASON/share/java-test/*.jar", false, true))\n end\n end\n end\n local function attach_jdtls()\n local fname = vim.api.nvim_buf_get_name(0)\n\n -- Configuration can be augmented and overridden by opts.jdtls\n local config = extend_or_override({\n cmd = opts.full_cmd(opts),\n root_dir = opts.root_dir(fname),\n init_options = {\n bundles = bundles,\n },\n settings = opts.settings,\n -- enable CMP capabilities\n capabilities = LazyVim.has("blink.cmp") and require("blink.cmp").get_lsp_capabilities() or LazyVim.has(\n "cmp-nvim-lsp"\n ) and require("cmp_nvim_lsp").default_capabilities() or nil,\n }, opts.jdtls)\n\n -- Existing server will be reused if the root_dir matches.\n require("jdtls").start_or_attach(config)\n -- not need to require("jdtls.setup").add_commands(), start automatically adds commands\n end\n\n -- Attach the jdtls for each java buffer. HOWEVER, this plugin loads\n -- depending on filetype, so this autocmd doesn\'t run for the first file.\n -- For that, we call directly below.\n vim.api.nvim_create_autocmd("FileType", {\n pattern = java_filetypes,\n callback = attach_jdtls,\n })\n\n -- Setup keymap and dap after the lsp is fully attached.\n -- https://github.com/mfussenegger/nvim-jdtls#nvim-dap-configuration\n -- https://neovim.io/doc/user/lsp.html#LspAttach\n vim.api.nvim_create_autocmd("LspAttach", {\n callback = function(args)\n local client = vim.lsp.get_client_by_id(args.data.client_id)\n if client and client.name == "jdtls" then\n local wk = require("which-key")\n wk.add({\n {\n mode = "n",\n buffer = args.buf,\n { "<leader>cx", group = "extract" },\n { "<leader>cxv", require("jdtls").extract_variable_all, desc = "Extract Variable" },\n { "<leader>cxc", require("jdtls").extract_constant, desc = "Extract Constant" },\n { "<leader>cgs", require("jdtls").super_implementation, desc = "Goto Super" },\n { "<leader>cgS", require("jdtls.tests").goto_subjects, desc = "Goto Subjects" },\n { "<leader>co", require("jdtls").organize_imports, desc = "Organize Imports" },\n },\n })\n wk.add({\n {\n mode = "x",\n buffer = args.buf,\n { "<leader>cx", group = "extract" },\n {\n "<leader>cxm",\n [[<ESC><CMD>lua require(\'jdtls\').extract_method(true)<CR>]],\n desc = "Extract Method",\n },\n {\n "<leader>cxv",\n [[<ESC><CMD>lua require(\'jdtls\').extract_variable_all(true)<CR>]],\n desc = "Extract Variable",\n },\n {\n "<leader>cxc",\n [[<ESC><CMD>lua require(\'jdtls\').extract_constant(true)<CR>]],\n desc = "Extract Constant",\n },\n },\n })\n\n if LazyVim.has("mason.nvim") then\n local mason_registry = require("mason-registry")\n if opts.dap and LazyVim.has("nvim-dap") and mason_registry.is_installed("java-debug-adapter") then\n -- custom init for Java debugger\n require("jdtls").setup_dap(opts.dap)\n if opts.dap_main then\n require("jdtls.dap").setup_dap_main_class_configs(opts.dap_main)\n end\n\n -- Java Test require Java debugger to work\n if opts.test and mason_registry.is_installed("java-test") then\n -- custom keymaps for Java test runner (not yet compatible with neotest)\n wk.add({\n {\n mode = "n",\n buffer = args.buf,\n { "<leader>t", group = "test" },\n {\n "<leader>tt",\n function()\n require("jdtls.dap").test_class({\n config_overrides = type(opts.test) ~= "boolean" and opts.test.config_overrides or nil,\n })\n end,\n desc = "Run All Test",\n },\n {\n "<leader>tr",\n function()\n require("jdtls.dap").test_nearest_method({\n config_overrides = type(opts.test) ~= "boolean" and opts.test.config_overrides or nil,\n })\n end,\n desc = "Run Nearest Test",\n },\n { "<leader>tT", require("jdtls.dap").pick_test, desc = "Run Test" },\n },\n })\n end\n end\n end\n\n -- User can set additional keymaps in opts.on_attach\n if opts.on_attach then\n opts.on_attach(args)\n end\n end\n end,\n })\n\n -- Avoid race condition by calling attach the first time, since the autocmd won\'t fire.\n attach_jdtls()\n end,\n}\n')))),(0,r.kt)("h2",{id:"which-keynvim"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/folke/which-key.nvim"},"which-key.nvim")),(0,r.kt)(o.Z,{mdxType:"Tabs"},(0,r.kt)(l.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},"opts = nil\n"))),(0,r.kt)(l.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{ "folke/which-key.nvim" }\n')))),(0,r.kt)("h2",{id:"nvim-dap-optional"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/mfussenegger/nvim-dap"},"nvim-dap")," ",(0,r.kt)("em",{parentName:"h2"},"(optional)")),(0,r.kt)("p",null," Ensure java debugger and test packages are installed."),(0,r.kt)(o.Z,{mdxType:"Tabs"},(0,r.kt)(l.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = function()\n -- Simple configuration to attach to remote java debug process\n -- Taken directly from https://github.com/mfussenegger/nvim-dap/wiki/Java\n local dap = require("dap")\n dap.configurations.java = {\n {\n type = "java",\n request = "attach",\n name = "Debug (Attach) - Remote",\n hostName = "127.0.0.1",\n port = 5005,\n },\n }\nend\n'))),(0,r.kt)(l.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "mfussenegger/nvim-dap",\n optional = true,\n opts = function()\n -- Simple configuration to attach to remote java debug process\n -- Taken directly from https://github.com/mfussenegger/nvim-dap/wiki/Java\n local dap = require("dap")\n dap.configurations.java = {\n {\n type = "java",\n request = "attach",\n name = "Debug (Attach) - Remote",\n hostName = "127.0.0.1",\n port = 5005,\n },\n }\n end,\n dependencies = {\n {\n "mason-org/mason.nvim",\n opts = { ensure_installed = { "java-debug-adapter", "java-test" } },\n },\n },\n}\n')))))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/edecbfbe.b8ea0afb.js b/assets/js/edecbfbe.b8ea0afb.js new file mode 100644 index 0000000000..6f74304612 --- /dev/null +++ b/assets/js/edecbfbe.b8ea0afb.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklazyvim=self.webpackChunklazyvim||[]).push([[9454],{3905:(n,e,t)=>{t.d(e,{Zo:()=>c,kt:()=>f});var i=t(7294);function a(n,e,t){return e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}function r(n,e){var t=Object.keys(n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(n);e&&(i=i.filter((function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),t.push.apply(t,i)}return t}function o(n){for(var e=1;e<arguments.length;e++){var t=null!=arguments[e]?arguments[e]:{};e%2?r(Object(t),!0).forEach((function(e){a(n,e,t[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):r(Object(t)).forEach((function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(t,e))}))}return n}function s(n,e){if(null==n)return{};var t,i,a=function(n,e){if(null==n)return{};var t,i,a={},r=Object.keys(n);for(i=0;i<r.length;i++)t=r[i],e.indexOf(t)>=0||(a[t]=n[t]);return a}(n,e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(n);for(i=0;i<r.length;i++)t=r[i],e.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(n,t)&&(a[t]=n[t])}return a}var l=i.createContext({}),u=function(n){var e=i.useContext(l),t=e;return n&&(t="function"==typeof n?n(e):o(o({},e),n)),t},c=function(n){var e=u(n.components);return i.createElement(l.Provider,{value:e},n.children)},d="mdxType",m={inlineCode:"code",wrapper:function(n){var e=n.children;return i.createElement(i.Fragment,{},e)}},p=i.forwardRef((function(n,e){var t=n.components,a=n.mdxType,r=n.originalType,l=n.parentName,c=s(n,["components","mdxType","originalType","parentName"]),d=u(t),p=a,f=d["".concat(l,".").concat(p)]||d[p]||m[p]||r;return t?i.createElement(f,o(o({ref:e},c),{},{components:t})):i.createElement(f,o({ref:e},c))}));function f(n,e){var t=arguments,a=e&&e.mdxType;if("string"==typeof n||a){var r=t.length,o=new Array(r);o[0]=p;var s={};for(var l in e)hasOwnProperty.call(e,l)&&(s[l]=e[l]);s.originalType=n,s[d]="string"==typeof n?n:a,o[1]=s;for(var u=2;u<r;u++)o[u]=t[u];return i.createElement.apply(null,o)}return i.createElement.apply(null,t)}p.displayName="MDXCreateElement"},5162:(n,e,t)=>{t.d(e,{Z:()=>o});var i=t(7294),a=t(6010);const r="tabItem_Ymn6";function o(n){let{children:e,hidden:t,className:o}=n;return i.createElement("div",{role:"tabpanel",className:(0,a.Z)(r,o),hidden:t},e)}},4866:(n,e,t)=>{t.d(e,{Z:()=>w});var i=t(7462),a=t(7294),r=t(6010),o=t(2466),s=t(6550),l=t(1980),u=t(7392),c=t(12);function d(n){return function(n){return a.Children.map(n,(n=>{if(!n||(0,a.isValidElement)(n)&&function(n){const{props:e}=n;return!!e&&"object"==typeof e&&"value"in e}(n))return n;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof n.type?n.type:n.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(n).map((n=>{let{props:{value:e,label:t,attributes:i,default:a}}=n;return{value:e,label:t,attributes:i,default:a}}))}function m(n){const{values:e,children:t}=n;return(0,a.useMemo)((()=>{const n=e??d(t);return function(n){const e=(0,u.l)(n,((n,e)=>n.value===e.value));if(e.length>0)throw new Error(`Docusaurus error: Duplicate values "${e.map((n=>n.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(n),n}),[e,t])}function p(n){let{value:e,tabValues:t}=n;return t.some((n=>n.value===e))}function f(n){let{queryString:e=!1,groupId:t}=n;const i=(0,s.k6)(),r=function(n){let{queryString:e=!1,groupId:t}=n;if("string"==typeof e)return e;if(!1===e)return null;if(!0===e&&!t)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return t??null}({queryString:e,groupId:t});return[(0,l._X)(r),(0,a.useCallback)((n=>{if(!r)return;const e=new URLSearchParams(i.location.search);e.set(r,n),i.replace({...i.location,search:e.toString()})}),[r,i])]}function g(n){const{defaultValue:e,queryString:t=!1,groupId:i}=n,r=m(n),[o,s]=(0,a.useState)((()=>function(n){let{defaultValue:e,tabValues:t}=n;if(0===t.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(e){if(!p({value:e,tabValues:t}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${e}" but none of its children has the corresponding value. Available values are: ${t.map((n=>n.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return e}const i=t.find((n=>n.default))??t[0];if(!i)throw new Error("Unexpected error: 0 tabValues");return i.value}({defaultValue:e,tabValues:r}))),[l,u]=f({queryString:t,groupId:i}),[d,g]=function(n){let{groupId:e}=n;const t=function(n){return n?`docusaurus.tab.${n}`:null}(e),[i,r]=(0,c.Nk)(t);return[i,(0,a.useCallback)((n=>{t&&r.set(n)}),[t,r])]}({groupId:i}),b=(()=>{const n=l??d;return p({value:n,tabValues:r})?n:null})();(0,a.useLayoutEffect)((()=>{b&&s(b)}),[b]);return{selectedValue:o,selectValue:(0,a.useCallback)((n=>{if(!p({value:n,tabValues:r}))throw new Error(`Can't select invalid tab value=${n}`);s(n),u(n),g(n)}),[u,g,r]),tabValues:r}}var b=t(2389);const y="tabList__CuJ",h="tabItem_LNqP";function v(n){let{className:e,block:t,selectedValue:s,selectValue:l,tabValues:u}=n;const c=[],{blockElementScrollPositionUntilNextRender:d}=(0,o.o5)(),m=n=>{const e=n.currentTarget,t=c.indexOf(e),i=u[t].value;i!==s&&(d(e),l(i))},p=n=>{let e=null;switch(n.key){case"Enter":m(n);break;case"ArrowRight":{const t=c.indexOf(n.currentTarget)+1;e=c[t]??c[0];break}case"ArrowLeft":{const t=c.indexOf(n.currentTarget)-1;e=c[t]??c[c.length-1];break}}e?.focus()};return a.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,r.Z)("tabs",{"tabs--block":t},e)},u.map((n=>{let{value:e,label:t,attributes:o}=n;return a.createElement("li",(0,i.Z)({role:"tab",tabIndex:s===e?0:-1,"aria-selected":s===e,key:e,ref:n=>c.push(n),onKeyDown:p,onClick:m},o,{className:(0,r.Z)("tabs__item",h,o?.className,{"tabs__item--active":s===e})}),t??e)})))}function k(n){let{lazy:e,children:t,selectedValue:i}=n;const r=(Array.isArray(t)?t:[t]).filter(Boolean);if(e){const n=r.find((n=>n.props.value===i));return n?(0,a.cloneElement)(n,{className:"margin-top--md"}):null}return a.createElement("div",{className:"margin-top--md"},r.map(((n,e)=>(0,a.cloneElement)(n,{key:e,hidden:n.props.value!==i}))))}function _(n){const e=g(n);return a.createElement("div",{className:(0,r.Z)("tabs-container",y)},a.createElement(v,(0,i.Z)({},n,e)),a.createElement(k,(0,i.Z)({},n,e)))}function w(n){const e=(0,b.Z)();return a.createElement(_,(0,i.Z)({key:String(e)},n))}},2385:(n,e,t)=>{t.r(e),t.d(e,{assets:()=>c,contentTitle:()=>l,default:()=>p,frontMatter:()=>s,metadata:()=>u,toc:()=>d});var i=t(7462),a=(t(7294),t(3905)),r=t(4866),o=t(5162);const s={},l="UI",u={unversionedId:"plugins/ui",id:"plugins/ui",title:"UI",description:"bufferline.nvim",source:"@site/docs/plugins/ui.md",sourceDirName:"plugins",slug:"/plugins/ui",permalink:"/plugins/ui",draft:!1,editUrl:"https://github.com/LazyVim/lazyvim.github.io/tree/main/docs/plugins/ui.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"TreeSitter",permalink:"/plugins/treesitter"},next:{title:"Util",permalink:"/plugins/util"}},c={},d=[{value:"bufferline.nvim",id:"bufferlinenvim",level:2},{value:"lualine.nvim",id:"lualinenvim",level:2},{value:"noice.nvim",id:"noicenvim",level:2},{value:"mini.icons",id:"miniicons",level:2},{value:"nui.nvim",id:"nuinvim",level:2},{value:"snacks.nvim",id:"snacksnvim",level:2},{value:"snacks.nvim",id:"snacksnvim-1",level:2}],m={toc:d};function p(n){let{components:e,...t}=n;return(0,a.kt)("wrapper",(0,i.Z)({},m,t,{components:e,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"ui"},"UI"),(0,a.kt)("h2",{id:"bufferlinenvim"},(0,a.kt)("a",{parentName:"h2",href:"https://github.com/akinsho/bufferline.nvim"},"bufferline.nvim")),(0,a.kt)("p",null," This is what powers LazyVim's fancy-looking\ntabs, which include filetype icons and close buttons."),(0,a.kt)(r.Z,{mdxType:"Tabs"},(0,a.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'opts = {\n options = {\n -- stylua: ignore\n close_command = function(n) Snacks.bufdelete(n) end,\n -- stylua: ignore\n right_mouse_command = function(n) Snacks.bufdelete(n) end,\n diagnostics = "nvim_lsp",\n always_show_bufferline = false,\n diagnostics_indicator = function(_, _, diag)\n local icons = LazyVim.config.icons.diagnostics\n local ret = (diag.error and icons.Error .. diag.error .. " " or "")\n .. (diag.warning and icons.Warn .. diag.warning or "")\n return vim.trim(ret)\n end,\n offsets = {\n {\n filetype = "neo-tree",\n text = "Neo-tree",\n highlight = "Directory",\n text_align = "left",\n },\n {\n filetype = "snacks_layout_box",\n },\n },\n ---@param opts bufferline.IconFetcherOpts\n get_element_icon = function(opts)\n return LazyVim.config.icons.ft[opts.filetype]\n end,\n },\n}\n'))),(0,a.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "akinsho/bufferline.nvim",\n event = "VeryLazy",\n keys = {\n { "<leader>bp", "<Cmd>BufferLineTogglePin<CR>", desc = "Toggle Pin" },\n { "<leader>bP", "<Cmd>BufferLineGroupClose ungrouped<CR>", desc = "Delete Non-Pinned Buffers" },\n { "<leader>br", "<Cmd>BufferLineCloseRight<CR>", desc = "Delete Buffers to the Right" },\n { "<leader>bl", "<Cmd>BufferLineCloseLeft<CR>", desc = "Delete Buffers to the Left" },\n { "<S-h>", "<cmd>BufferLineCyclePrev<cr>", desc = "Prev Buffer" },\n { "<S-l>", "<cmd>BufferLineCycleNext<cr>", desc = "Next Buffer" },\n { "[b", "<cmd>BufferLineCyclePrev<cr>", desc = "Prev Buffer" },\n { "]b", "<cmd>BufferLineCycleNext<cr>", desc = "Next Buffer" },\n { "[B", "<cmd>BufferLineMovePrev<cr>", desc = "Move buffer prev" },\n { "]B", "<cmd>BufferLineMoveNext<cr>", desc = "Move buffer next" },\n },\n opts = {\n options = {\n -- stylua: ignore\n close_command = function(n) Snacks.bufdelete(n) end,\n -- stylua: ignore\n right_mouse_command = function(n) Snacks.bufdelete(n) end,\n diagnostics = "nvim_lsp",\n always_show_bufferline = false,\n diagnostics_indicator = function(_, _, diag)\n local icons = LazyVim.config.icons.diagnostics\n local ret = (diag.error and icons.Error .. diag.error .. " " or "")\n .. (diag.warning and icons.Warn .. diag.warning or "")\n return vim.trim(ret)\n end,\n offsets = {\n {\n filetype = "neo-tree",\n text = "Neo-tree",\n highlight = "Directory",\n text_align = "left",\n },\n {\n filetype = "snacks_layout_box",\n },\n },\n ---@param opts bufferline.IconFetcherOpts\n get_element_icon = function(opts)\n return LazyVim.config.icons.ft[opts.filetype]\n end,\n },\n },\n config = function(_, opts)\n require("bufferline").setup(opts)\n -- Fix bufferline when restoring a session\n vim.api.nvim_create_autocmd({ "BufAdd", "BufDelete" }, {\n callback = function()\n vim.schedule(function()\n pcall(nvim_bufferline)\n end)\n end,\n })\n end,\n}\n')))),(0,a.kt)("h2",{id:"lualinenvim"},(0,a.kt)("a",{parentName:"h2",href:"https://github.com/nvim-lualine/lualine.nvim"},"lualine.nvim")),(0,a.kt)("p",null," Displays a fancy status line with git status,\nLSP diagnostics, filetype information, and more."),(0,a.kt)(r.Z,{mdxType:"Tabs"},(0,a.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'opts = function()\n -- PERF: we don\'t need this lualine require madness \ud83e\udd37\n local lualine_require = require("lualine_require")\n lualine_require.require = require\n\n local icons = LazyVim.config.icons\n\n vim.o.laststatus = vim.g.lualine_laststatus\n\n local opts = {\n options = {\n theme = "auto",\n globalstatus = vim.o.laststatus == 3,\n disabled_filetypes = { statusline = { "dashboard", "alpha", "ministarter", "snacks_dashboard" } },\n },\n sections = {\n lualine_a = { "mode" },\n lualine_b = { "branch" },\n\n lualine_c = {\n LazyVim.lualine.root_dir(),\n {\n "diagnostics",\n symbols = {\n error = icons.diagnostics.Error,\n warn = icons.diagnostics.Warn,\n info = icons.diagnostics.Info,\n hint = icons.diagnostics.Hint,\n },\n },\n { "filetype", icon_only = true, separator = "", padding = { left = 1, right = 0 } },\n { LazyVim.lualine.pretty_path() },\n },\n lualine_x = {\n Snacks.profiler.status(),\n -- stylua: ignore\n {\n function() return require("noice").api.status.command.get() end,\n cond = function() return package.loaded["noice"] and require("noice").api.status.command.has() end,\n color = function() return { fg = Snacks.util.color("Statement") } end,\n },\n -- stylua: ignore\n {\n function() return require("noice").api.status.mode.get() end,\n cond = function() return package.loaded["noice"] and require("noice").api.status.mode.has() end,\n color = function() return { fg = Snacks.util.color("Constant") } end,\n },\n -- stylua: ignore\n {\n function() return "\uf46f " .. require("dap").status() end,\n cond = function() return package.loaded["dap"] and require("dap").status() ~= "" end,\n color = function() return { fg = Snacks.util.color("Debug") } end,\n },\n -- stylua: ignore\n {\n require("lazy.status").updates,\n cond = require("lazy.status").has_updates,\n color = function() return { fg = Snacks.util.color("Special") } end,\n },\n {\n "diff",\n symbols = {\n added = icons.git.added,\n modified = icons.git.modified,\n removed = icons.git.removed,\n },\n source = function()\n local gitsigns = vim.b.gitsigns_status_dict\n if gitsigns then\n return {\n added = gitsigns.added,\n modified = gitsigns.changed,\n removed = gitsigns.removed,\n }\n end\n end,\n },\n },\n lualine_y = {\n { "progress", separator = " ", padding = { left = 1, right = 0 } },\n { "location", padding = { left = 0, right = 1 } },\n },\n lualine_z = {\n function()\n return "\uf43a " .. os.date("%R")\n end,\n },\n },\n extensions = { "neo-tree", "lazy", "fzf" },\n }\n\n -- do not add trouble symbols if aerial is enabled\n -- And allow it to be overriden for some buffer types (see autocmds)\n if vim.g.trouble_lualine and LazyVim.has("trouble.nvim") then\n local trouble = require("trouble")\n local symbols = trouble.statusline({\n mode = "symbols",\n groups = {},\n title = false,\n filter = { range = true },\n format = "{kind_icon}{symbol.name:Normal}",\n hl_group = "lualine_c_normal",\n })\n table.insert(opts.sections.lualine_c, {\n symbols and symbols.get,\n cond = function()\n return vim.b.trouble_lualine ~= false and symbols.has()\n end,\n })\n end\n\n return opts\nend\n'))),(0,a.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "nvim-lualine/lualine.nvim",\n event = "VeryLazy",\n init = function()\n vim.g.lualine_laststatus = vim.o.laststatus\n if vim.fn.argc(-1) > 0 then\n -- set an empty statusline till lualine loads\n vim.o.statusline = " "\n else\n -- hide the statusline on the starter page\n vim.o.laststatus = 0\n end\n end,\n opts = function()\n -- PERF: we don\'t need this lualine require madness \ud83e\udd37\n local lualine_require = require("lualine_require")\n lualine_require.require = require\n\n local icons = LazyVim.config.icons\n\n vim.o.laststatus = vim.g.lualine_laststatus\n\n local opts = {\n options = {\n theme = "auto",\n globalstatus = vim.o.laststatus == 3,\n disabled_filetypes = { statusline = { "dashboard", "alpha", "ministarter", "snacks_dashboard" } },\n },\n sections = {\n lualine_a = { "mode" },\n lualine_b = { "branch" },\n\n lualine_c = {\n LazyVim.lualine.root_dir(),\n {\n "diagnostics",\n symbols = {\n error = icons.diagnostics.Error,\n warn = icons.diagnostics.Warn,\n info = icons.diagnostics.Info,\n hint = icons.diagnostics.Hint,\n },\n },\n { "filetype", icon_only = true, separator = "", padding = { left = 1, right = 0 } },\n { LazyVim.lualine.pretty_path() },\n },\n lualine_x = {\n Snacks.profiler.status(),\n -- stylua: ignore\n {\n function() return require("noice").api.status.command.get() end,\n cond = function() return package.loaded["noice"] and require("noice").api.status.command.has() end,\n color = function() return { fg = Snacks.util.color("Statement") } end,\n },\n -- stylua: ignore\n {\n function() return require("noice").api.status.mode.get() end,\n cond = function() return package.loaded["noice"] and require("noice").api.status.mode.has() end,\n color = function() return { fg = Snacks.util.color("Constant") } end,\n },\n -- stylua: ignore\n {\n function() return "\uf46f " .. require("dap").status() end,\n cond = function() return package.loaded["dap"] and require("dap").status() ~= "" end,\n color = function() return { fg = Snacks.util.color("Debug") } end,\n },\n -- stylua: ignore\n {\n require("lazy.status").updates,\n cond = require("lazy.status").has_updates,\n color = function() return { fg = Snacks.util.color("Special") } end,\n },\n {\n "diff",\n symbols = {\n added = icons.git.added,\n modified = icons.git.modified,\n removed = icons.git.removed,\n },\n source = function()\n local gitsigns = vim.b.gitsigns_status_dict\n if gitsigns then\n return {\n added = gitsigns.added,\n modified = gitsigns.changed,\n removed = gitsigns.removed,\n }\n end\n end,\n },\n },\n lualine_y = {\n { "progress", separator = " ", padding = { left = 1, right = 0 } },\n { "location", padding = { left = 0, right = 1 } },\n },\n lualine_z = {\n function()\n return "\uf43a " .. os.date("%R")\n end,\n },\n },\n extensions = { "neo-tree", "lazy", "fzf" },\n }\n\n -- do not add trouble symbols if aerial is enabled\n -- And allow it to be overriden for some buffer types (see autocmds)\n if vim.g.trouble_lualine and LazyVim.has("trouble.nvim") then\n local trouble = require("trouble")\n local symbols = trouble.statusline({\n mode = "symbols",\n groups = {},\n title = false,\n filter = { range = true },\n format = "{kind_icon}{symbol.name:Normal}",\n hl_group = "lualine_c_normal",\n })\n table.insert(opts.sections.lualine_c, {\n symbols and symbols.get,\n cond = function()\n return vim.b.trouble_lualine ~= false and symbols.has()\n end,\n })\n end\n\n return opts\n end,\n}\n')))),(0,a.kt)("h2",{id:"noicenvim"},(0,a.kt)("a",{parentName:"h2",href:"https://github.com/folke/noice.nvim"},"noice.nvim")),(0,a.kt)("p",null," Highly experimental plugin that completely replaces the UI for messages, cmdline and the popupmenu."),(0,a.kt)(r.Z,{mdxType:"Tabs"},(0,a.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'opts = {\n lsp = {\n override = {\n ["vim.lsp.util.convert_input_to_markdown_lines"] = true,\n ["vim.lsp.util.stylize_markdown"] = true,\n ["cmp.entry.get_documentation"] = true,\n },\n },\n routes = {\n {\n filter = {\n event = "msg_show",\n any = {\n { find = "%d+L, %d+B" },\n { find = "; after #%d+" },\n { find = "; before #%d+" },\n },\n },\n view = "mini",\n },\n },\n presets = {\n bottom_search = true,\n command_palette = true,\n long_message_to_split = true,\n },\n}\n'))),(0,a.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "folke/noice.nvim",\n event = "VeryLazy",\n opts = {\n lsp = {\n override = {\n ["vim.lsp.util.convert_input_to_markdown_lines"] = true,\n ["vim.lsp.util.stylize_markdown"] = true,\n ["cmp.entry.get_documentation"] = true,\n },\n },\n routes = {\n {\n filter = {\n event = "msg_show",\n any = {\n { find = "%d+L, %d+B" },\n { find = "; after #%d+" },\n { find = "; before #%d+" },\n },\n },\n view = "mini",\n },\n },\n presets = {\n bottom_search = true,\n command_palette = true,\n long_message_to_split = true,\n },\n },\n -- stylua: ignore\n keys = {\n { "<leader>sn", "", desc = "+noice"},\n { "<S-Enter>", function() require("noice").redirect(vim.fn.getcmdline()) end, mode = "c", desc = "Redirect Cmdline" },\n { "<leader>snl", function() require("noice").cmd("last") end, desc = "Noice Last Message" },\n { "<leader>snh", function() require("noice").cmd("history") end, desc = "Noice History" },\n { "<leader>sna", function() require("noice").cmd("all") end, desc = "Noice All" },\n { "<leader>snd", function() require("noice").cmd("dismiss") end, desc = "Dismiss All" },\n { "<leader>snt", function() require("noice").cmd("pick") end, desc = "Noice Picker (Telescope/FzfLua)" },\n { "<c-f>", function() if not require("noice.lsp").scroll(4) then return "<c-f>" end end, silent = true, expr = true, desc = "Scroll Forward", mode = {"i", "n", "s"} },\n { "<c-b>", function() if not require("noice.lsp").scroll(-4) then return "<c-b>" end end, silent = true, expr = true, desc = "Scroll Backward", mode = {"i", "n", "s"}},\n },\n config = function(_, opts)\n -- HACK: noice shows messages from before it was enabled,\n -- but this is not ideal when Lazy is installing plugins,\n -- so clear the messages in this case.\n if vim.o.filetype == "lazy" then\n vim.cmd([[messages clear]])\n end\n require("noice").setup(opts)\n end,\n}\n')))),(0,a.kt)("h2",{id:"miniicons"},(0,a.kt)("a",{parentName:"h2",href:"https://github.com/nvim-mini/mini.icons"},"mini.icons")),(0,a.kt)("p",null," icons"),(0,a.kt)(r.Z,{mdxType:"Tabs"},(0,a.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'opts = {\n file = {\n [".keep"] = { glyph = "\udb80\udea2", hl = "MiniIconsGrey" },\n ["devcontainer.json"] = { glyph = "\uf4b7", hl = "MiniIconsAzure" },\n },\n filetype = {\n dotenv = { glyph = "\ueb52", hl = "MiniIconsYellow" },\n },\n}\n'))),(0,a.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "nvim-mini/mini.icons",\n lazy = true,\n opts = {\n file = {\n [".keep"] = { glyph = "\udb80\udea2", hl = "MiniIconsGrey" },\n ["devcontainer.json"] = { glyph = "\uf4b7", hl = "MiniIconsAzure" },\n },\n filetype = {\n dotenv = { glyph = "\ueb52", hl = "MiniIconsYellow" },\n },\n },\n init = function()\n package.preload["nvim-web-devicons"] = function()\n require("mini.icons").mock_nvim_web_devicons()\n return package.loaded["nvim-web-devicons"]\n end\n end,\n}\n')))),(0,a.kt)("h2",{id:"nuinvim"},(0,a.kt)("a",{parentName:"h2",href:"https://github.com/MunifTanjim/nui.nvim"},"nui.nvim")),(0,a.kt)("p",null," ui components"),(0,a.kt)(r.Z,{mdxType:"Tabs"},(0,a.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},"opts = nil\n"))),(0,a.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'{ "MunifTanjim/nui.nvim", lazy = true }\n')))),(0,a.kt)("h2",{id:"snacksnvim"},(0,a.kt)("a",{parentName:"h2",href:"https://github.com/folke/snacks.nvim"},"snacks.nvim")),(0,a.kt)(r.Z,{mdxType:"Tabs"},(0,a.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},"opts = {\n indent = { enabled = true },\n input = { enabled = true },\n notifier = { enabled = true },\n scope = { enabled = true },\n scroll = { enabled = true },\n statuscolumn = { enabled = false }, -- we set this in options.lua\n toggle = { map = LazyVim.safe_keymap_set },\n words = { enabled = true },\n}\n"))),(0,a.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "snacks.nvim",\n opts = {\n indent = { enabled = true },\n input = { enabled = true },\n notifier = { enabled = true },\n scope = { enabled = true },\n scroll = { enabled = true },\n statuscolumn = { enabled = false }, -- we set this in options.lua\n toggle = { map = LazyVim.safe_keymap_set },\n words = { enabled = true },\n },\n -- stylua: ignore\n keys = {\n { "<leader>n", function()\n if Snacks.config.picker and Snacks.config.picker.enabled then\n Snacks.picker.notifications()\n else\n Snacks.notifier.show_history()\n end\n end, desc = "Notification History" },\n { "<leader>un", function() Snacks.notifier.hide() end, desc = "Dismiss All Notifications" },\n },\n}\n')))),(0,a.kt)("h2",{id:"snacksnvim-1"},(0,a.kt)("a",{parentName:"h2",href:"https://github.com/folke/snacks.nvim"},"snacks.nvim")),(0,a.kt)(r.Z,{mdxType:"Tabs"},(0,a.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'opts = {\n dashboard = {\n preset = {\n pick = function(cmd, opts)\n return LazyVim.pick(cmd, opts)()\n end,\n header = [[\n \u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557\u2588\u2588\u2557 \u2588\u2588\u2557\u2588\u2588\u2557 \u2588\u2588\u2557\u2588\u2588\u2557\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2557 Z\n \u2588\u2588\u2551 \u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557\u255a\u2550\u2550\u2588\u2588\u2588\u2554\u255d\u255a\u2588\u2588\u2557 \u2588\u2588\u2554\u255d\u2588\u2588\u2551 \u2588\u2588\u2551\u2588\u2588\u2551\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2551 Z \n \u2588\u2588\u2551 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2551 \u2588\u2588\u2588\u2554\u255d \u255a\u2588\u2588\u2588\u2588\u2554\u255d \u2588\u2588\u2551 \u2588\u2588\u2551\u2588\u2588\u2551\u2588\u2588\u2554\u2588\u2588\u2588\u2588\u2554\u2588\u2588\u2551 z \n \u2588\u2588\u2551 \u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2551 \u2588\u2588\u2588\u2554\u255d \u255a\u2588\u2588\u2554\u255d \u255a\u2588\u2588\u2557 \u2588\u2588\u2554\u255d\u2588\u2588\u2551\u2588\u2588\u2551\u255a\u2588\u2588\u2554\u255d\u2588\u2588\u2551 z \n \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557\u2588\u2588\u2551 \u2588\u2588\u2551\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2551 \u255a\u2588\u2588\u2588\u2588\u2554\u255d \u2588\u2588\u2551\u2588\u2588\u2551 \u255a\u2550\u255d \u2588\u2588\u2551 \n \u255a\u2550\u2550\u2550\u2550\u2550\u2550\u255d\u255a\u2550\u255d \u255a\u2550\u255d\u255a\u2550\u2550\u2550\u2550\u2550\u2550\u255d \u255a\u2550\u255d \u255a\u2550\u2550\u2550\u255d \u255a\u2550\u255d\u255a\u2550\u255d \u255a\u2550\u255d \n]],\n -- stylua: ignore\n ---@type snacks.dashboard.Item[]\n keys = {\n { icon = "\uf002 ", key = "f", desc = "Find File", action = ":lua Snacks.dashboard.pick(\'files\')" },\n { icon = "\uf15b ", key = "n", desc = "New File", action = ":ene | startinsert" },\n { icon = "\uf022 ", key = "g", desc = "Find Text", action = ":lua Snacks.dashboard.pick(\'live_grep\')" },\n { icon = "\uf0c5 ", key = "r", desc = "Recent Files", action = ":lua Snacks.dashboard.pick(\'oldfiles\')" },\n { icon = "\uf423 ", key = "c", desc = "Config", action = ":lua Snacks.dashboard.pick(\'files\', {cwd = vim.fn.stdpath(\'config\')})" },\n { icon = "\ue348 ", key = "s", desc = "Restore Session", section = "session" },\n { icon = "\uea8c ", key = "x", desc = "Lazy Extras", action = ":LazyExtras" },\n { icon = "\udb81\udcb2 ", key = "l", desc = "Lazy", action = ":Lazy" },\n { icon = "\uf426 ", key = "q", desc = "Quit", action = ":qa" },\n },\n },\n },\n }\n'))),(0,a.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "snacks.nvim",\n opts = {\n dashboard = {\n preset = {\n pick = function(cmd, opts)\n return LazyVim.pick(cmd, opts)()\n end,\n header = [[\n \u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557\u2588\u2588\u2557 \u2588\u2588\u2557\u2588\u2588\u2557 \u2588\u2588\u2557\u2588\u2588\u2557\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2557 Z\n \u2588\u2588\u2551 \u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557\u255a\u2550\u2550\u2588\u2588\u2588\u2554\u255d\u255a\u2588\u2588\u2557 \u2588\u2588\u2554\u255d\u2588\u2588\u2551 \u2588\u2588\u2551\u2588\u2588\u2551\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2551 Z \n \u2588\u2588\u2551 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2551 \u2588\u2588\u2588\u2554\u255d \u255a\u2588\u2588\u2588\u2588\u2554\u255d \u2588\u2588\u2551 \u2588\u2588\u2551\u2588\u2588\u2551\u2588\u2588\u2554\u2588\u2588\u2588\u2588\u2554\u2588\u2588\u2551 z \n \u2588\u2588\u2551 \u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2551 \u2588\u2588\u2588\u2554\u255d \u255a\u2588\u2588\u2554\u255d \u255a\u2588\u2588\u2557 \u2588\u2588\u2554\u255d\u2588\u2588\u2551\u2588\u2588\u2551\u255a\u2588\u2588\u2554\u255d\u2588\u2588\u2551 z \n \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557\u2588\u2588\u2551 \u2588\u2588\u2551\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2551 \u255a\u2588\u2588\u2588\u2588\u2554\u255d \u2588\u2588\u2551\u2588\u2588\u2551 \u255a\u2550\u255d \u2588\u2588\u2551 \n \u255a\u2550\u2550\u2550\u2550\u2550\u2550\u255d\u255a\u2550\u255d \u255a\u2550\u255d\u255a\u2550\u2550\u2550\u2550\u2550\u2550\u255d \u255a\u2550\u255d \u255a\u2550\u2550\u2550\u255d \u255a\u2550\u255d\u255a\u2550\u255d \u255a\u2550\u255d \n ]],\n -- stylua: ignore\n ---@type snacks.dashboard.Item[]\n keys = {\n { icon = "\uf002 ", key = "f", desc = "Find File", action = ":lua Snacks.dashboard.pick(\'files\')" },\n { icon = "\uf15b ", key = "n", desc = "New File", action = ":ene | startinsert" },\n { icon = "\uf022 ", key = "g", desc = "Find Text", action = ":lua Snacks.dashboard.pick(\'live_grep\')" },\n { icon = "\uf0c5 ", key = "r", desc = "Recent Files", action = ":lua Snacks.dashboard.pick(\'oldfiles\')" },\n { icon = "\uf423 ", key = "c", desc = "Config", action = ":lua Snacks.dashboard.pick(\'files\', {cwd = vim.fn.stdpath(\'config\')})" },\n { icon = "\ue348 ", key = "s", desc = "Restore Session", section = "session" },\n { icon = "\uea8c ", key = "x", desc = "Lazy Extras", action = ":LazyExtras" },\n { icon = "\udb81\udcb2 ", key = "l", desc = "Lazy", action = ":Lazy" },\n { icon = "\uf426 ", key = "q", desc = "Quit", action = ":qa" },\n },\n },\n },\n },\n}\n')))))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/ee0aead6.2ceb90a5.js b/assets/js/ee0aead6.2ceb90a5.js new file mode 100644 index 0000000000..6e2b983c53 --- /dev/null +++ b/assets/js/ee0aead6.2ceb90a5.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklazyvim=self.webpackChunklazyvim||[]).push([[543],{3905:(e,n,t)=>{t.d(n,{Zo:()=>p,kt:()=>v});var a=t(7294);function r(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function i(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,a)}return t}function l(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?i(Object(t),!0).forEach((function(n){r(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):i(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function u(e,n){if(null==e)return{};var t,a,r=function(e,n){if(null==e)return{};var t,a,r={},i=Object.keys(e);for(a=0;a<i.length;a++)t=i[a],n.indexOf(t)>=0||(r[t]=e[t]);return r}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a<i.length;a++)t=i[a],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(r[t]=e[t])}return r}var o=a.createContext({}),s=function(e){var n=a.useContext(o),t=n;return e&&(t="function"==typeof e?e(n):l(l({},n),e)),t},p=function(e){var n=s(e.components);return a.createElement(o.Provider,{value:n},e.children)},c="mdxType",m={inlineCode:"code",wrapper:function(e){var n=e.children;return a.createElement(a.Fragment,{},n)}},d=a.forwardRef((function(e,n){var t=e.components,r=e.mdxType,i=e.originalType,o=e.parentName,p=u(e,["components","mdxType","originalType","parentName"]),c=s(t),d=r,v=c["".concat(o,".").concat(d)]||c[d]||m[d]||i;return t?a.createElement(v,l(l({ref:n},p),{},{components:t})):a.createElement(v,l({ref:n},p))}));function v(e,n){var t=arguments,r=n&&n.mdxType;if("string"==typeof e||r){var i=t.length,l=new Array(i);l[0]=d;var u={};for(var o in n)hasOwnProperty.call(n,o)&&(u[o]=n[o]);u.originalType=e,u[c]="string"==typeof e?e:r,l[1]=u;for(var s=2;s<i;s++)l[s]=t[s];return a.createElement.apply(null,l)}return a.createElement.apply(null,t)}d.displayName="MDXCreateElement"},5162:(e,n,t)=>{t.d(n,{Z:()=>l});var a=t(7294),r=t(6010);const i="tabItem_Ymn6";function l(e){let{children:n,hidden:t,className:l}=e;return a.createElement("div",{role:"tabpanel",className:(0,r.Z)(i,l),hidden:t},n)}},4866:(e,n,t)=>{t.d(n,{Z:()=>x});var a=t(7462),r=t(7294),i=t(6010),l=t(2466),u=t(6550),o=t(1980),s=t(7392),p=t(12);function c(e){return function(e){return r.Children.map(e,(e=>{if(!e||(0,r.isValidElement)(e)&&function(e){const{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:n,label:t,attributes:a,default:r}}=e;return{value:n,label:t,attributes:a,default:r}}))}function m(e){const{values:n,children:t}=e;return(0,r.useMemo)((()=>{const e=n??c(t);return function(e){const n=(0,s.l)(e,((e,n)=>e.value===n.value));if(n.length>0)throw new Error(`Docusaurus error: Duplicate values "${n.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[n,t])}function d(e){let{value:n,tabValues:t}=e;return t.some((e=>e.value===n))}function v(e){let{queryString:n=!1,groupId:t}=e;const a=(0,u.k6)(),i=function(e){let{queryString:n=!1,groupId:t}=e;if("string"==typeof n)return n;if(!1===n)return null;if(!0===n&&!t)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return t??null}({queryString:n,groupId:t});return[(0,o._X)(i),(0,r.useCallback)((e=>{if(!i)return;const n=new URLSearchParams(a.location.search);n.set(i,e),a.replace({...a.location,search:n.toString()})}),[i,a])]}function f(e){const{defaultValue:n,queryString:t=!1,groupId:a}=e,i=m(e),[l,u]=(0,r.useState)((()=>function(e){let{defaultValue:n,tabValues:t}=e;if(0===t.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(n){if(!d({value:n,tabValues:t}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${n}" but none of its children has the corresponding value. Available values are: ${t.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return n}const a=t.find((e=>e.default))??t[0];if(!a)throw new Error("Unexpected error: 0 tabValues");return a.value}({defaultValue:n,tabValues:i}))),[o,s]=v({queryString:t,groupId:a}),[c,f]=function(e){let{groupId:n}=e;const t=function(e){return e?`docusaurus.tab.${e}`:null}(n),[a,i]=(0,p.Nk)(t);return[a,(0,r.useCallback)((e=>{t&&i.set(e)}),[t,i])]}({groupId:a}),b=(()=>{const e=o??c;return d({value:e,tabValues:i})?e:null})();(0,r.useLayoutEffect)((()=>{b&&u(b)}),[b]);return{selectedValue:l,selectValue:(0,r.useCallback)((e=>{if(!d({value:e,tabValues:i}))throw new Error(`Can't select invalid tab value=${e}`);u(e),s(e),f(e)}),[s,f,i]),tabValues:i}}var b=t(2389);const g="tabList__CuJ",h="tabItem_LNqP";function y(e){let{className:n,block:t,selectedValue:u,selectValue:o,tabValues:s}=e;const p=[],{blockElementScrollPositionUntilNextRender:c}=(0,l.o5)(),m=e=>{const n=e.currentTarget,t=p.indexOf(n),a=s[t].value;a!==u&&(c(n),o(a))},d=e=>{let n=null;switch(e.key){case"Enter":m(e);break;case"ArrowRight":{const t=p.indexOf(e.currentTarget)+1;n=p[t]??p[0];break}case"ArrowLeft":{const t=p.indexOf(e.currentTarget)-1;n=p[t]??p[p.length-1];break}}n?.focus()};return r.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,i.Z)("tabs",{"tabs--block":t},n)},s.map((e=>{let{value:n,label:t,attributes:l}=e;return r.createElement("li",(0,a.Z)({role:"tab",tabIndex:u===n?0:-1,"aria-selected":u===n,key:n,ref:e=>p.push(e),onKeyDown:d,onClick:m},l,{className:(0,i.Z)("tabs__item",h,l?.className,{"tabs__item--active":u===n})}),t??n)})))}function k(e){let{lazy:n,children:t,selectedValue:a}=e;const i=(Array.isArray(t)?t:[t]).filter(Boolean);if(n){const e=i.find((e=>e.props.value===a));return e?(0,r.cloneElement)(e,{className:"margin-top--md"}):null}return r.createElement("div",{className:"margin-top--md"},i.map(((e,n)=>(0,r.cloneElement)(e,{key:n,hidden:e.props.value!==a}))))}function T(e){const n=f(e);return r.createElement("div",{className:(0,i.Z)("tabs-container",g)},r.createElement(y,(0,a.Z)({},e,n)),r.createElement(k,(0,a.Z)({},e,n)))}function x(e){const n=(0,b.Z)();return r.createElement(T,(0,a.Z)({key:String(n)},e))}},6281:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>p,contentTitle:()=>o,default:()=>d,frontMatter:()=>u,metadata:()=>s,toc:()=>c});var a=t(7462),r=(t(7294),t(3905)),i=t(4866),l=t(5162);const u={},o="Supermaven",s={unversionedId:"extras/ai/supermaven",id:"extras/ai/supermaven",title:"Supermaven",description:"You can enable the extra with the :LazyExtras command.",source:"@site/docs/extras/ai/supermaven.md",sourceDirName:"extras/ai",slug:"/extras/ai/supermaven",permalink:"/extras/ai/supermaven",draft:!1,editUrl:"https://github.com/LazyVim/lazyvim.github.io/tree/main/docs/extras/ai/supermaven.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Sidekick",permalink:"/extras/ai/sidekick"},next:{title:"Tabnine",permalink:"/extras/ai/tabnine"}},p={},c=[{value:"supermaven-nvim",id:"supermaven-nvim",level:2},{value:"supermaven-nvim",id:"supermaven-nvim-1",level:2},{value:"supermaven-nvim",id:"supermaven-nvim-2",level:2},{value:"supermaven-nvim",id:"supermaven-nvim-3",level:2},{value:"nvim-cmp <em>(optional)</em>",id:"nvim-cmp-optional",level:2}],m={toc:c};function d(e){let{components:n,...t}=e;return(0,r.kt)("wrapper",(0,a.Z)({},m,t,{components:n,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"supermaven"},(0,r.kt)("inlineCode",{parentName:"h1"},"Supermaven")),(0,r.kt)("admonition",{type:"info"},(0,r.kt)("p",{parentName:"admonition"},"You can enable the extra with the ",(0,r.kt)("inlineCode",{parentName:"p"},":LazyExtras")," command.\nPlugins marked as optional will only be configured if they are installed.")),(0,r.kt)("p",null,"Below you can find a list of included plugins and their default settings."),(0,r.kt)("admonition",{type:"caution"},(0,r.kt)("p",{parentName:"admonition"},"You don't need to copy the default settings to your config.\nThey are only shown here for reference.")),(0,r.kt)("h2",{id:"supermaven-nvim"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/supermaven-inc/supermaven-nvim"},"supermaven-nvim")),(0,r.kt)(i.Z,{mdxType:"Tabs"},(0,r.kt)(l.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = {\n keymaps = {\n accept_suggestion = nil, -- handled by nvim-cmp / blink.cmp\n },\n disable_inline_completion = vim.g.ai_cmp,\n ignore_filetypes = { "bigfile", "snacks_input", "snacks_notif" },\n}\n'))),(0,r.kt)(l.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "supermaven-inc/supermaven-nvim",\n event = "InsertEnter",\n cmd = {\n "SupermavenUseFree",\n "SupermavenUsePro",\n },\n opts = {\n keymaps = {\n accept_suggestion = nil, -- handled by nvim-cmp / blink.cmp\n },\n disable_inline_completion = vim.g.ai_cmp,\n ignore_filetypes = { "bigfile", "snacks_input", "snacks_notif" },\n },\n}\n')))),(0,r.kt)("h2",{id:"supermaven-nvim-1"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/supermaven-inc/supermaven-nvim"},"supermaven-nvim")),(0,r.kt)("p",null," add ai_accept action"),(0,r.kt)(i.Z,{mdxType:"Tabs"},(0,r.kt)(l.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = function()\n require("supermaven-nvim.completion_preview").suggestion_group = "SupermavenSuggestion"\n LazyVim.cmp.actions.ai_accept = function()\n local suggestion = require("supermaven-nvim.completion_preview")\n if suggestion.has_suggestion() then\n LazyVim.create_undo()\n vim.schedule(function()\n suggestion.on_accept_suggestion()\n end)\n return true\n end\n end\nend\n'))),(0,r.kt)(l.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "supermaven-inc/supermaven-nvim",\n opts = function()\n require("supermaven-nvim.completion_preview").suggestion_group = "SupermavenSuggestion"\n LazyVim.cmp.actions.ai_accept = function()\n local suggestion = require("supermaven-nvim.completion_preview")\n if suggestion.has_suggestion() then\n LazyVim.create_undo()\n vim.schedule(function()\n suggestion.on_accept_suggestion()\n end)\n return true\n end\n end\n end,\n}\n')))),(0,r.kt)("h2",{id:"supermaven-nvim-2"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/supermaven-inc/supermaven-nvim"},"supermaven-nvim")),(0,r.kt)(i.Z,{mdxType:"Tabs"},(0,r.kt)(l.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},"opts = nil\n"))),(0,r.kt)(l.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{ "supermaven-nvim" }\n')))),(0,r.kt)("h2",{id:"supermaven-nvim-3"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/supermaven-inc/supermaven-nvim"},"supermaven-nvim")),(0,r.kt)(i.Z,{mdxType:"Tabs"},(0,r.kt)(l.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},"opts = nil\n"))),(0,r.kt)(l.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{ "supermaven-nvim", "saghen/blink.compat" }\n')))),(0,r.kt)("h2",{id:"nvim-cmp-optional"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/hrsh7th/nvim-cmp"},"nvim-cmp")," ",(0,r.kt)("em",{parentName:"h2"},"(optional)")),(0,r.kt)("p",null," cmp integration"),(0,r.kt)(i.Z,{mdxType:"Tabs"},(0,r.kt)(l.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = function(_, opts)\n if vim.g.ai_cmp then\n table.insert(opts.sources, 1, {\n name = "supermaven",\n group_index = 1,\n priority = 100,\n })\n end\nend\n'))),(0,r.kt)(l.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "hrsh7th/nvim-cmp",\n optional = true,\n dependencies = { "supermaven-nvim" },\n opts = function(_, opts)\n if vim.g.ai_cmp then\n table.insert(opts.sources, 1, {\n name = "supermaven",\n group_index = 1,\n priority = 100,\n })\n end\n end,\n}\n')))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/f3921946.0255f065.js b/assets/js/f3921946.0255f065.js new file mode 100644 index 0000000000..7f30b51d7d --- /dev/null +++ b/assets/js/f3921946.0255f065.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklazyvim=self.webpackChunklazyvim||[]).push([[5897],{3905:(e,t,r)=>{r.d(t,{Zo:()=>c,kt:()=>f});var n=r(7294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?o(Object(r),!0).forEach((function(t){a(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):o(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function u(e,t){if(null==e)return{};var r,n,a=function(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var i=n.createContext({}),s=function(e){var t=n.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},c=function(e){var t=s(e.components);return n.createElement(i.Provider,{value:t},e.children)},m="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,i=e.parentName,c=u(e,["components","mdxType","originalType","parentName"]),m=s(r),d=a,f=m["".concat(i,".").concat(d)]||m[d]||p[d]||o;return r?n.createElement(f,l(l({ref:t},c),{},{components:r})):n.createElement(f,l({ref:t},c))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,l=new Array(o);l[0]=d;var u={};for(var i in t)hasOwnProperty.call(t,i)&&(u[i]=t[i]);u.originalType=e,u[m]="string"==typeof e?e:a,l[1]=u;for(var s=2;s<o;s++)l[s]=r[s];return n.createElement.apply(null,l)}return n.createElement.apply(null,r)}d.displayName="MDXCreateElement"},5162:(e,t,r)=>{r.d(t,{Z:()=>l});var n=r(7294),a=r(6010);const o="tabItem_Ymn6";function l(e){let{children:t,hidden:r,className:l}=e;return n.createElement("div",{role:"tabpanel",className:(0,a.Z)(o,l),hidden:r},t)}},4866:(e,t,r)=>{r.d(t,{Z:()=>x});var n=r(7462),a=r(7294),o=r(6010),l=r(2466),u=r(6550),i=r(1980),s=r(7392),c=r(12);function m(e){return function(e){return a.Children.map(e,(e=>{if(!e||(0,a.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:t,label:r,attributes:n,default:a}}=e;return{value:t,label:r,attributes:n,default:a}}))}function p(e){const{values:t,children:r}=e;return(0,a.useMemo)((()=>{const e=t??m(r);return function(e){const t=(0,s.l)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[t,r])}function d(e){let{value:t,tabValues:r}=e;return r.some((e=>e.value===t))}function f(e){let{queryString:t=!1,groupId:r}=e;const n=(0,u.k6)(),o=function(e){let{queryString:t=!1,groupId:r}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!r)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return r??null}({queryString:t,groupId:r});return[(0,i._X)(o),(0,a.useCallback)((e=>{if(!o)return;const t=new URLSearchParams(n.location.search);t.set(o,e),n.replace({...n.location,search:t.toString()})}),[o,n])]}function b(e){const{defaultValue:t,queryString:r=!1,groupId:n}=e,o=p(e),[l,u]=(0,a.useState)((()=>function(e){let{defaultValue:t,tabValues:r}=e;if(0===r.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(t){if(!d({value:t,tabValues:r}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${r.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const n=r.find((e=>e.default))??r[0];if(!n)throw new Error("Unexpected error: 0 tabValues");return n.value}({defaultValue:t,tabValues:o}))),[i,s]=f({queryString:r,groupId:n}),[m,b]=function(e){let{groupId:t}=e;const r=function(e){return e?`docusaurus.tab.${e}`:null}(t),[n,o]=(0,c.Nk)(r);return[n,(0,a.useCallback)((e=>{r&&o.set(e)}),[r,o])]}({groupId:n}),h=(()=>{const e=i??m;return d({value:e,tabValues:o})?e:null})();(0,a.useLayoutEffect)((()=>{h&&u(h)}),[h]);return{selectedValue:l,selectValue:(0,a.useCallback)((e=>{if(!d({value:e,tabValues:o}))throw new Error(`Can't select invalid tab value=${e}`);u(e),s(e),b(e)}),[s,b,o]),tabValues:o}}var h=r(2389);const v="tabList__CuJ",y="tabItem_LNqP";function g(e){let{className:t,block:r,selectedValue:u,selectValue:i,tabValues:s}=e;const c=[],{blockElementScrollPositionUntilNextRender:m}=(0,l.o5)(),p=e=>{const t=e.currentTarget,r=c.indexOf(t),n=s[r].value;n!==u&&(m(t),i(n))},d=e=>{let t=null;switch(e.key){case"Enter":p(e);break;case"ArrowRight":{const r=c.indexOf(e.currentTarget)+1;t=c[r]??c[0];break}case"ArrowLeft":{const r=c.indexOf(e.currentTarget)-1;t=c[r]??c[c.length-1];break}}t?.focus()};return a.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,o.Z)("tabs",{"tabs--block":r},t)},s.map((e=>{let{value:t,label:r,attributes:l}=e;return a.createElement("li",(0,n.Z)({role:"tab",tabIndex:u===t?0:-1,"aria-selected":u===t,key:t,ref:e=>c.push(e),onKeyDown:d,onClick:p},l,{className:(0,o.Z)("tabs__item",y,l?.className,{"tabs__item--active":u===t})}),r??t)})))}function k(e){let{lazy:t,children:r,selectedValue:n}=e;const o=(Array.isArray(r)?r:[r]).filter(Boolean);if(t){const e=o.find((e=>e.props.value===n));return e?(0,a.cloneElement)(e,{className:"margin-top--md"}):null}return a.createElement("div",{className:"margin-top--md"},o.map(((e,t)=>(0,a.cloneElement)(e,{key:t,hidden:e.props.value!==n}))))}function w(e){const t=b(e);return a.createElement("div",{className:(0,o.Z)("tabs-container",v)},a.createElement(g,(0,n.Z)({},e,t)),a.createElement(k,(0,n.Z)({},e,t)))}function x(e){const t=(0,h.Z)();return a.createElement(w,(0,n.Z)({key:String(t)},e))}},1759:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>d,frontMatter:()=>u,metadata:()=>s,toc:()=>m});var n=r(7462),a=(r(7294),r(3905)),o=r(4866),l=r(5162);const u={},i="Smear-cursor",s={unversionedId:"extras/ui/smear-cursor",id:"extras/ui/smear-cursor",title:"Smear-cursor",description:"You can enable the extra with the :LazyExtras command.",source:"@site/docs/extras/ui/smear-cursor.md",sourceDirName:"extras/ui",slug:"/extras/ui/smear-cursor",permalink:"/extras/ui/smear-cursor",draft:!1,editUrl:"https://github.com/LazyVim/lazyvim.github.io/tree/main/docs/extras/ui/smear-cursor.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Mini Starter",permalink:"/extras/ui/mini-starter"},next:{title:"Treesitter-context",permalink:"/extras/ui/treesitter-context"}},c={},m=[{value:"smear-cursor.nvim",id:"smear-cursornvim",level:2},{value:"mini.animate <em>(optional)</em>",id:"minianimate-optional",level:2}],p={toc:m};function d(e){let{components:t,...r}=e;return(0,a.kt)("wrapper",(0,n.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"smear-cursor"},(0,a.kt)("inlineCode",{parentName:"h1"},"Smear-cursor")),(0,a.kt)("admonition",{type:"info"},(0,a.kt)("p",{parentName:"admonition"},"You can enable the extra with the ",(0,a.kt)("inlineCode",{parentName:"p"},":LazyExtras")," command.\nPlugins marked as optional will only be configured if they are installed.")),(0,a.kt)("p",null,"Below you can find a list of included plugins and their default settings."),(0,a.kt)("admonition",{type:"caution"},(0,a.kt)("p",{parentName:"admonition"},"You don't need to copy the default settings to your config.\nThey are only shown here for reference.")),(0,a.kt)("h2",{id:"smear-cursornvim"},(0,a.kt)("a",{parentName:"h2",href:"https://github.com/sphamba/smear-cursor.nvim"},"smear-cursor.nvim")),(0,a.kt)(o.Z,{mdxType:"Tabs"},(0,a.kt)(l.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'opts = {\n hide_target_hack = true,\n cursor_color = "none",\n}\n'))),(0,a.kt)(l.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "sphamba/smear-cursor.nvim",\n event = "VeryLazy",\n cond = vim.g.neovide == nil,\n opts = {\n hide_target_hack = true,\n cursor_color = "none",\n },\n specs = {\n -- disable mini.animate cursor\n {\n "nvim-mini/mini.animate",\n optional = true,\n opts = {\n cursor = { enable = false },\n },\n },\n },\n}\n')))),(0,a.kt)("h2",{id:"minianimate-optional"},(0,a.kt)("a",{parentName:"h2",href:"https://github.com/nvim-mini/mini.animate"},"mini.animate")," ",(0,a.kt)("em",{parentName:"h2"},"(optional)")),(0,a.kt)("p",null," disable mini.animate cursor"),(0,a.kt)(o.Z,{mdxType:"Tabs"},(0,a.kt)(l.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},"opts = {\n cursor = { enable = false },\n}\n"))),(0,a.kt)(l.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "nvim-mini/mini.animate",\n optional = true,\n opts = {\n cursor = { enable = false },\n },\n}\n')))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/f439c73a.30a3d1bb.js b/assets/js/f439c73a.30a3d1bb.js new file mode 100644 index 0000000000..ba441ab0bf --- /dev/null +++ b/assets/js/f439c73a.30a3d1bb.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklazyvim=self.webpackChunklazyvim||[]).push([[1478],{3905:(e,n,t)=>{t.d(n,{Zo:()=>m,kt:()=>g});var a=t(7294);function l(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function o(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,a)}return t}function r(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?o(Object(t),!0).forEach((function(n){l(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):o(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function s(e,n){if(null==e)return{};var t,a,l=function(e,n){if(null==e)return{};var t,a,l={},o=Object.keys(e);for(a=0;a<o.length;a++)t=o[a],n.indexOf(t)>=0||(l[t]=e[t]);return l}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)t=o[a],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(l[t]=e[t])}return l}var i=a.createContext({}),u=function(e){var n=a.useContext(i),t=n;return e&&(t="function"==typeof e?e(n):r(r({},n),e)),t},m=function(e){var n=u(e.components);return a.createElement(i.Provider,{value:n},e.children)},p="mdxType",c={inlineCode:"code",wrapper:function(e){var n=e.children;return a.createElement(a.Fragment,{},n)}},d=a.forwardRef((function(e,n){var t=e.components,l=e.mdxType,o=e.originalType,i=e.parentName,m=s(e,["components","mdxType","originalType","parentName"]),p=u(t),d=l,g=p["".concat(i,".").concat(d)]||p[d]||c[d]||o;return t?a.createElement(g,r(r({ref:n},m),{},{components:t})):a.createElement(g,r({ref:n},m))}));function g(e,n){var t=arguments,l=n&&n.mdxType;if("string"==typeof e||l){var o=t.length,r=new Array(o);r[0]=d;var s={};for(var i in n)hasOwnProperty.call(n,i)&&(s[i]=n[i]);s.originalType=e,s[p]="string"==typeof e?e:l,r[1]=s;for(var u=2;u<o;u++)r[u]=t[u];return a.createElement.apply(null,r)}return a.createElement.apply(null,t)}d.displayName="MDXCreateElement"},5162:(e,n,t)=>{t.d(n,{Z:()=>r});var a=t(7294),l=t(6010);const o="tabItem_Ymn6";function r(e){let{children:n,hidden:t,className:r}=e;return a.createElement("div",{role:"tabpanel",className:(0,l.Z)(o,r),hidden:t},n)}},4866:(e,n,t)=>{t.d(n,{Z:()=>N});var a=t(7462),l=t(7294),o=t(6010),r=t(2466),s=t(6550),i=t(1980),u=t(7392),m=t(12);function p(e){return function(e){return l.Children.map(e,(e=>{if(!e||(0,l.isValidElement)(e)&&function(e){const{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:n,label:t,attributes:a,default:l}}=e;return{value:n,label:t,attributes:a,default:l}}))}function c(e){const{values:n,children:t}=e;return(0,l.useMemo)((()=>{const e=n??p(t);return function(e){const n=(0,u.l)(e,((e,n)=>e.value===n.value));if(n.length>0)throw new Error(`Docusaurus error: Duplicate values "${n.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[n,t])}function d(e){let{value:n,tabValues:t}=e;return t.some((e=>e.value===n))}function g(e){let{queryString:n=!1,groupId:t}=e;const a=(0,s.k6)(),o=function(e){let{queryString:n=!1,groupId:t}=e;if("string"==typeof n)return n;if(!1===n)return null;if(!0===n&&!t)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return t??null}({queryString:n,groupId:t});return[(0,i._X)(o),(0,l.useCallback)((e=>{if(!o)return;const n=new URLSearchParams(a.location.search);n.set(o,e),a.replace({...a.location,search:n.toString()})}),[o,a])]}function v(e){const{defaultValue:n,queryString:t=!1,groupId:a}=e,o=c(e),[r,s]=(0,l.useState)((()=>function(e){let{defaultValue:n,tabValues:t}=e;if(0===t.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(n){if(!d({value:n,tabValues:t}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${n}" but none of its children has the corresponding value. Available values are: ${t.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return n}const a=t.find((e=>e.default))??t[0];if(!a)throw new Error("Unexpected error: 0 tabValues");return a.value}({defaultValue:n,tabValues:o}))),[i,u]=g({queryString:t,groupId:a}),[p,v]=function(e){let{groupId:n}=e;const t=function(e){return e?`docusaurus.tab.${e}`:null}(n),[a,o]=(0,m.Nk)(t);return[a,(0,l.useCallback)((e=>{t&&o.set(e)}),[t,o])]}({groupId:a}),k=(()=>{const e=i??p;return d({value:e,tabValues:o})?e:null})();(0,l.useLayoutEffect)((()=>{k&&s(k)}),[k]);return{selectedValue:r,selectValue:(0,l.useCallback)((e=>{if(!d({value:e,tabValues:o}))throw new Error(`Can't select invalid tab value=${e}`);s(e),u(e),v(e)}),[u,v,o]),tabValues:o}}var k=t(2389);const f="tabList__CuJ",b="tabItem_LNqP";function h(e){let{className:n,block:t,selectedValue:s,selectValue:i,tabValues:u}=e;const m=[],{blockElementScrollPositionUntilNextRender:p}=(0,r.o5)(),c=e=>{const n=e.currentTarget,t=m.indexOf(n),a=u[t].value;a!==s&&(p(n),i(a))},d=e=>{let n=null;switch(e.key){case"Enter":c(e);break;case"ArrowRight":{const t=m.indexOf(e.currentTarget)+1;n=m[t]??m[0];break}case"ArrowLeft":{const t=m.indexOf(e.currentTarget)-1;n=m[t]??m[m.length-1];break}}n?.focus()};return l.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,o.Z)("tabs",{"tabs--block":t},n)},u.map((e=>{let{value:n,label:t,attributes:r}=e;return l.createElement("li",(0,a.Z)({role:"tab",tabIndex:s===n?0:-1,"aria-selected":s===n,key:n,ref:e=>m.push(e),onKeyDown:d,onClick:c},r,{className:(0,o.Z)("tabs__item",b,r?.className,{"tabs__item--active":s===n})}),t??n)})))}function y(e){let{lazy:n,children:t,selectedValue:a}=e;const o=(Array.isArray(t)?t:[t]).filter(Boolean);if(n){const e=o.find((e=>e.props.value===a));return e?(0,l.cloneElement)(e,{className:"margin-top--md"}):null}return l.createElement("div",{className:"margin-top--md"},o.map(((e,n)=>(0,l.cloneElement)(e,{key:n,hidden:e.props.value!==a}))))}function T(e){const n=v(e);return l.createElement("div",{className:(0,o.Z)("tabs-container",f)},l.createElement(h,(0,a.Z)({},e,n)),l.createElement(y,(0,a.Z)({},e,n)))}function N(e){const n=(0,k.Z)();return l.createElement(T,(0,a.Z)({key:String(n)},e))}},6947:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>m,contentTitle:()=>i,default:()=>d,frontMatter:()=>s,metadata:()=>u,toc:()=>p});var a=t(7462),l=(t(7294),t(3905)),o=t(4866),r=t(5162);const s={},i="Go",u={unversionedId:"extras/lang/go",id:"extras/lang/go",title:"Go",description:"You can enable the extra with the :LazyExtras command.",source:"@site/docs/extras/lang/go.md",sourceDirName:"extras/lang",slug:"/extras/lang/go",permalink:"/extras/lang/go",draft:!1,editUrl:"https://github.com/LazyVim/lazyvim.github.io/tree/main/docs/extras/lang/go.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Gleam",permalink:"/extras/lang/gleam"},next:{title:"Haskell",permalink:"/extras/lang/haskell"}},m={},p=[{value:"nvim-treesitter",id:"nvim-treesitter",level:2},{value:"nvim-lspconfig",id:"nvim-lspconfig",level:2},{value:"mason.nvim",id:"masonnvim",level:2},{value:"mason.nvim",id:"masonnvim-1",level:2},{value:"mason.nvim",id:"masonnvim-2",level:2},{value:"mason.nvim",id:"masonnvim-3",level:2},{value:"nvim-dap-go",id:"nvim-dap-go",level:2},{value:"neotest-golang",id:"neotest-golang",level:2},{value:"mini.icons",id:"miniicons",level:2},{value:"none-ls.nvim <em>(optional)</em>",id:"none-lsnvim-optional",level:2},{value:"nvim-lint <em>(optional)</em>",id:"nvim-lint-optional",level:2},{value:"conform.nvim <em>(optional)</em>",id:"conformnvim-optional",level:2},{value:"nvim-dap <em>(optional)</em>",id:"nvim-dap-optional",level:2},{value:"neotest <em>(optional)</em>",id:"neotest-optional",level:2}],c={toc:p};function d(e){let{components:n,...t}=e;return(0,l.kt)("wrapper",(0,a.Z)({},c,t,{components:n,mdxType:"MDXLayout"}),(0,l.kt)("h1",{id:"go"},"Go"),(0,l.kt)("admonition",{type:"info"},(0,l.kt)("p",{parentName:"admonition"},"You can enable the extra with the ",(0,l.kt)("inlineCode",{parentName:"p"},":LazyExtras")," command.\nPlugins marked as optional will only be configured if they are installed.")),(0,l.kt)("p",null,"Below you can find a list of included plugins and their default settings."),(0,l.kt)("admonition",{type:"caution"},(0,l.kt)("p",{parentName:"admonition"},"You don't need to copy the default settings to your config.\nThey are only shown here for reference.")),(0,l.kt)("h2",{id:"nvim-treesitter"},(0,l.kt)("a",{parentName:"h2",href:"https://github.com/nvim-treesitter/nvim-treesitter"},"nvim-treesitter")),(0,l.kt)(o.Z,{mdxType:"Tabs"},(0,l.kt)(r.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-lua"},'opts = { ensure_installed = { "go", "gomod", "gowork", "gosum" } }\n'))),(0,l.kt)(r.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "nvim-treesitter/nvim-treesitter",\n opts = { ensure_installed = { "go", "gomod", "gowork", "gosum" } },\n}\n')))),(0,l.kt)("h2",{id:"nvim-lspconfig"},(0,l.kt)("a",{parentName:"h2",href:"https://github.com/neovim/nvim-lspconfig"},"nvim-lspconfig")),(0,l.kt)(o.Z,{mdxType:"Tabs"},(0,l.kt)(r.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-lua"},'opts = {\n servers = {\n gopls = {\n settings = {\n gopls = {\n gofumpt = true,\n codelenses = {\n gc_details = false,\n generate = true,\n regenerate_cgo = true,\n run_govulncheck = true,\n test = true,\n tidy = true,\n upgrade_dependency = true,\n vendor = true,\n },\n hints = {\n assignVariableTypes = true,\n compositeLiteralFields = true,\n compositeLiteralTypes = true,\n constantValues = true,\n functionTypeParameters = true,\n parameterNames = true,\n rangeVariableTypes = true,\n },\n analyses = {\n nilness = true,\n unusedparams = true,\n unusedwrite = true,\n useany = true,\n },\n usePlaceholders = true,\n completeUnimported = true,\n staticcheck = true,\n directoryFilters = { "-.git", "-.vscode", "-.idea", "-.vscode-test", "-node_modules" },\n semanticTokens = true,\n },\n },\n },\n },\n setup = {\n gopls = function(_, opts)\n -- workaround for gopls not supporting semanticTokensProvider\n -- https://github.com/golang/go/issues/54531#issuecomment-1464982242\n LazyVim.lsp.on_attach(function(client, _)\n if not client.server_capabilities.semanticTokensProvider then\n local semantic = client.config.capabilities.textDocument.semanticTokens\n client.server_capabilities.semanticTokensProvider = {\n full = true,\n legend = {\n tokenTypes = semantic.tokenTypes,\n tokenModifiers = semantic.tokenModifiers,\n },\n range = true,\n }\n end\n end, "gopls")\n -- end workaround\n end,\n },\n}\n'))),(0,l.kt)(r.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "neovim/nvim-lspconfig",\n opts = {\n servers = {\n gopls = {\n settings = {\n gopls = {\n gofumpt = true,\n codelenses = {\n gc_details = false,\n generate = true,\n regenerate_cgo = true,\n run_govulncheck = true,\n test = true,\n tidy = true,\n upgrade_dependency = true,\n vendor = true,\n },\n hints = {\n assignVariableTypes = true,\n compositeLiteralFields = true,\n compositeLiteralTypes = true,\n constantValues = true,\n functionTypeParameters = true,\n parameterNames = true,\n rangeVariableTypes = true,\n },\n analyses = {\n nilness = true,\n unusedparams = true,\n unusedwrite = true,\n useany = true,\n },\n usePlaceholders = true,\n completeUnimported = true,\n staticcheck = true,\n directoryFilters = { "-.git", "-.vscode", "-.idea", "-.vscode-test", "-node_modules" },\n semanticTokens = true,\n },\n },\n },\n },\n setup = {\n gopls = function(_, opts)\n -- workaround for gopls not supporting semanticTokensProvider\n -- https://github.com/golang/go/issues/54531#issuecomment-1464982242\n LazyVim.lsp.on_attach(function(client, _)\n if not client.server_capabilities.semanticTokensProvider then\n local semantic = client.config.capabilities.textDocument.semanticTokens\n client.server_capabilities.semanticTokensProvider = {\n full = true,\n legend = {\n tokenTypes = semantic.tokenTypes,\n tokenModifiers = semantic.tokenModifiers,\n },\n range = true,\n }\n end\n end, "gopls")\n -- end workaround\n end,\n },\n },\n}\n')))),(0,l.kt)("h2",{id:"masonnvim"},(0,l.kt)("a",{parentName:"h2",href:"https://github.com/mason-org/mason.nvim"},"mason.nvim")),(0,l.kt)("p",null," Ensure Go tools are installed"),(0,l.kt)(o.Z,{mdxType:"Tabs"},(0,l.kt)(r.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-lua"},'opts = { ensure_installed = { "goimports", "gofumpt" } }\n'))),(0,l.kt)(r.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "mason-org/mason.nvim",\n opts = { ensure_installed = { "goimports", "gofumpt" } },\n}\n')))),(0,l.kt)("h2",{id:"masonnvim-1"},(0,l.kt)("a",{parentName:"h2",href:"https://github.com/mason-org/mason.nvim"},"mason.nvim")),(0,l.kt)(o.Z,{mdxType:"Tabs"},(0,l.kt)(r.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-lua"},'opts = { ensure_installed = { "gomodifytags", "impl" } }\n'))),(0,l.kt)(r.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "mason-org/mason.nvim",\n opts = { ensure_installed = { "gomodifytags", "impl" } },\n}\n')))),(0,l.kt)("h2",{id:"masonnvim-2"},(0,l.kt)("a",{parentName:"h2",href:"https://github.com/mason-org/mason.nvim"},"mason.nvim")),(0,l.kt)(o.Z,{mdxType:"Tabs"},(0,l.kt)(r.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-lua"},'opts = { ensure_installed = { "golangci-lint" } }\n'))),(0,l.kt)(r.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "mason-org/mason.nvim",\n opts = { ensure_installed = { "golangci-lint" } },\n}\n')))),(0,l.kt)("h2",{id:"masonnvim-3"},(0,l.kt)("a",{parentName:"h2",href:"https://github.com/mason-org/mason.nvim"},"mason.nvim")),(0,l.kt)(o.Z,{mdxType:"Tabs"},(0,l.kt)(r.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-lua"},'opts = { ensure_installed = { "delve" } }\n'))),(0,l.kt)(r.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "mason-org/mason.nvim",\n opts = { ensure_installed = { "delve" } },\n}\n')))),(0,l.kt)("h2",{id:"nvim-dap-go"},(0,l.kt)("a",{parentName:"h2",href:"https://github.com/leoluz/nvim-dap-go"},"nvim-dap-go")),(0,l.kt)(o.Z,{mdxType:"Tabs"},(0,l.kt)(r.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-lua"},"opts = {}\n"))),(0,l.kt)(r.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "leoluz/nvim-dap-go",\n opts = {},\n}\n')))),(0,l.kt)("h2",{id:"neotest-golang"},(0,l.kt)("a",{parentName:"h2",href:"https://github.com/fredrikaverpil/neotest-golang"},"neotest-golang")),(0,l.kt)(o.Z,{mdxType:"Tabs"},(0,l.kt)(r.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-lua"},"opts = nil\n"))),(0,l.kt)(r.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "fredrikaverpil/neotest-golang",\n}\n')))),(0,l.kt)("h2",{id:"miniicons"},(0,l.kt)("a",{parentName:"h2",href:"https://github.com/nvim-mini/mini.icons"},"mini.icons")),(0,l.kt)("p",null," Filetype icons"),(0,l.kt)(o.Z,{mdxType:"Tabs"},(0,l.kt)(r.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-lua"},'opts = {\n file = {\n [".go-version"] = { glyph = "\ue627", hl = "MiniIconsBlue" },\n },\n filetype = {\n gotmpl = { glyph = "\udb81\udfd3", hl = "MiniIconsGrey" },\n },\n}\n'))),(0,l.kt)(r.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "nvim-mini/mini.icons",\n opts = {\n file = {\n [".go-version"] = { glyph = "\ue627", hl = "MiniIconsBlue" },\n },\n filetype = {\n gotmpl = { glyph = "\udb81\udfd3", hl = "MiniIconsGrey" },\n },\n },\n}\n')))),(0,l.kt)("h2",{id:"none-lsnvim-optional"},(0,l.kt)("a",{parentName:"h2",href:"https://github.com/nvimtools/none-ls.nvim"},"none-ls.nvim")," ",(0,l.kt)("em",{parentName:"h2"},"(optional)")),(0,l.kt)(o.Z,{mdxType:"Tabs"},(0,l.kt)(r.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-lua"},'opts = function(_, opts)\n local nls = require("null-ls")\n opts.sources = vim.list_extend(opts.sources or {}, {\n nls.builtins.code_actions.gomodifytags,\n nls.builtins.code_actions.impl,\n nls.builtins.formatting.goimports,\n nls.builtins.formatting.gofumpt,\n })\nend\n'))),(0,l.kt)(r.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "nvimtools/none-ls.nvim",\n optional = true,\n dependencies = {\n {\n "mason-org/mason.nvim",\n opts = { ensure_installed = { "gomodifytags", "impl" } },\n },\n },\n opts = function(_, opts)\n local nls = require("null-ls")\n opts.sources = vim.list_extend(opts.sources or {}, {\n nls.builtins.code_actions.gomodifytags,\n nls.builtins.code_actions.impl,\n nls.builtins.formatting.goimports,\n nls.builtins.formatting.gofumpt,\n })\n end,\n}\n')))),(0,l.kt)("h2",{id:"nvim-lint-optional"},(0,l.kt)("a",{parentName:"h2",href:"https://github.com/mfussenegger/nvim-lint"},"nvim-lint")," ",(0,l.kt)("em",{parentName:"h2"},"(optional)")),(0,l.kt)("p",null," Add linting"),(0,l.kt)(o.Z,{mdxType:"Tabs"},(0,l.kt)(r.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-lua"},'opts = {\n linters_by_ft = {\n go = { "golangcilint" },\n },\n}\n'))),(0,l.kt)(r.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "mfussenegger/nvim-lint",\n optional = true,\n dependencies = {\n {\n "mason-org/mason.nvim",\n opts = { ensure_installed = { "golangci-lint" } },\n },\n },\n opts = {\n linters_by_ft = {\n go = { "golangcilint" },\n },\n },\n}\n')))),(0,l.kt)("h2",{id:"conformnvim-optional"},(0,l.kt)("a",{parentName:"h2",href:"https://github.com/stevearc/conform.nvim"},"conform.nvim")," ",(0,l.kt)("em",{parentName:"h2"},"(optional)")),(0,l.kt)(o.Z,{mdxType:"Tabs"},(0,l.kt)(r.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-lua"},'opts = {\n formatters_by_ft = {\n go = { "goimports", "gofumpt" },\n },\n}\n'))),(0,l.kt)(r.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "stevearc/conform.nvim",\n optional = true,\n opts = {\n formatters_by_ft = {\n go = { "goimports", "gofumpt" },\n },\n },\n}\n')))),(0,l.kt)("h2",{id:"nvim-dap-optional"},(0,l.kt)("a",{parentName:"h2",href:"https://github.com/mfussenegger/nvim-dap"},"nvim-dap")," ",(0,l.kt)("em",{parentName:"h2"},"(optional)")),(0,l.kt)(o.Z,{mdxType:"Tabs"},(0,l.kt)(r.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-lua"},"opts = nil\n"))),(0,l.kt)(r.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "mfussenegger/nvim-dap",\n optional = true,\n dependencies = {\n {\n "mason-org/mason.nvim",\n opts = { ensure_installed = { "delve" } },\n },\n {\n "leoluz/nvim-dap-go",\n opts = {},\n },\n },\n}\n')))),(0,l.kt)("h2",{id:"neotest-optional"},(0,l.kt)("a",{parentName:"h2",href:"https://github.com/nvim-neotest/neotest"},"neotest")," ",(0,l.kt)("em",{parentName:"h2"},"(optional)")),(0,l.kt)(o.Z,{mdxType:"Tabs"},(0,l.kt)(r.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-lua"},'opts = {\n adapters = {\n ["neotest-golang"] = {\n -- Here we can set options for neotest-golang, e.g.\n -- go_test_args = { "-v", "-race", "-count=1", "-timeout=60s" },\n dap_go_enabled = true, -- requires leoluz/nvim-dap-go\n },\n },\n}\n'))),(0,l.kt)(r.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "nvim-neotest/neotest",\n optional = true,\n dependencies = {\n "fredrikaverpil/neotest-golang",\n },\n opts = {\n adapters = {\n ["neotest-golang"] = {\n -- Here we can set options for neotest-golang, e.g.\n -- go_test_args = { "-v", "-race", "-count=1", "-timeout=60s" },\n dap_go_enabled = true, -- requires leoluz/nvim-dap-go\n },\n },\n },\n}\n')))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/f4d155c3.91772195.js b/assets/js/f4d155c3.91772195.js new file mode 100644 index 0000000000..f2ebe1a3ea --- /dev/null +++ b/assets/js/f4d155c3.91772195.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklazyvim=self.webpackChunklazyvim||[]).push([[43],{3905:(e,n,t)=>{t.d(n,{Zo:()=>c,kt:()=>d});var r=t(7294);function a(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function o(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function i(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?o(Object(t),!0).forEach((function(n){a(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):o(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function l(e,n){if(null==e)return{};var t,r,a=function(e,n){if(null==e)return{};var t,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)t=o[r],n.indexOf(t)>=0||(a[t]=e[t]);return a}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)t=o[r],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var s=r.createContext({}),u=function(e){var n=r.useContext(s),t=n;return e&&(t="function"==typeof e?e(n):i(i({},n),e)),t},c=function(e){var n=u(e.components);return r.createElement(s.Provider,{value:n},e.children)},m="mdxType",f={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},p=r.forwardRef((function(e,n){var t=e.components,a=e.mdxType,o=e.originalType,s=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),m=u(t),p=a,d=m["".concat(s,".").concat(p)]||m[p]||f[p]||o;return t?r.createElement(d,i(i({ref:n},c),{},{components:t})):r.createElement(d,i({ref:n},c))}));function d(e,n){var t=arguments,a=n&&n.mdxType;if("string"==typeof e||a){var o=t.length,i=new Array(o);i[0]=p;var l={};for(var s in n)hasOwnProperty.call(n,s)&&(l[s]=n[s]);l.originalType=e,l[m]="string"==typeof e?e:a,i[1]=l;for(var u=2;u<o;u++)i[u]=t[u];return r.createElement.apply(null,i)}return r.createElement.apply(null,t)}p.displayName="MDXCreateElement"},5162:(e,n,t)=>{t.d(n,{Z:()=>i});var r=t(7294),a=t(6010);const o="tabItem_Ymn6";function i(e){let{children:n,hidden:t,className:i}=e;return r.createElement("div",{role:"tabpanel",className:(0,a.Z)(o,i),hidden:t},n)}},4866:(e,n,t)=>{t.d(n,{Z:()=>N});var r=t(7462),a=t(7294),o=t(6010),i=t(2466),l=t(6550),s=t(1980),u=t(7392),c=t(12);function m(e){return function(e){return a.Children.map(e,(e=>{if(!e||(0,a.isValidElement)(e)&&function(e){const{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:n,label:t,attributes:r,default:a}}=e;return{value:n,label:t,attributes:r,default:a}}))}function f(e){const{values:n,children:t}=e;return(0,a.useMemo)((()=>{const e=n??m(t);return function(e){const n=(0,u.l)(e,((e,n)=>e.value===n.value));if(n.length>0)throw new Error(`Docusaurus error: Duplicate values "${n.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[n,t])}function p(e){let{value:n,tabValues:t}=e;return t.some((e=>e.value===n))}function d(e){let{queryString:n=!1,groupId:t}=e;const r=(0,l.k6)(),o=function(e){let{queryString:n=!1,groupId:t}=e;if("string"==typeof n)return n;if(!1===n)return null;if(!0===n&&!t)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return t??null}({queryString:n,groupId:t});return[(0,s._X)(o),(0,a.useCallback)((e=>{if(!o)return;const n=new URLSearchParams(r.location.search);n.set(o,e),r.replace({...r.location,search:n.toString()})}),[o,r])]}function g(e){const{defaultValue:n,queryString:t=!1,groupId:r}=e,o=f(e),[i,l]=(0,a.useState)((()=>function(e){let{defaultValue:n,tabValues:t}=e;if(0===t.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(n){if(!p({value:n,tabValues:t}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${n}" but none of its children has the corresponding value. Available values are: ${t.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return n}const r=t.find((e=>e.default))??t[0];if(!r)throw new Error("Unexpected error: 0 tabValues");return r.value}({defaultValue:n,tabValues:o}))),[s,u]=d({queryString:t,groupId:r}),[m,g]=function(e){let{groupId:n}=e;const t=function(e){return e?`docusaurus.tab.${e}`:null}(n),[r,o]=(0,c.Nk)(t);return[r,(0,a.useCallback)((e=>{t&&o.set(e)}),[t,o])]}({groupId:r}),b=(()=>{const e=s??m;return p({value:e,tabValues:o})?e:null})();(0,a.useLayoutEffect)((()=>{b&&l(b)}),[b]);return{selectedValue:i,selectValue:(0,a.useCallback)((e=>{if(!p({value:e,tabValues:o}))throw new Error(`Can't select invalid tab value=${e}`);l(e),u(e),g(e)}),[u,g,o]),tabValues:o}}var b=t(2389);const h="tabList__CuJ",y="tabItem_LNqP";function v(e){let{className:n,block:t,selectedValue:l,selectValue:s,tabValues:u}=e;const c=[],{blockElementScrollPositionUntilNextRender:m}=(0,i.o5)(),f=e=>{const n=e.currentTarget,t=c.indexOf(n),r=u[t].value;r!==l&&(m(n),s(r))},p=e=>{let n=null;switch(e.key){case"Enter":f(e);break;case"ArrowRight":{const t=c.indexOf(e.currentTarget)+1;n=c[t]??c[0];break}case"ArrowLeft":{const t=c.indexOf(e.currentTarget)-1;n=c[t]??c[c.length-1];break}}n?.focus()};return a.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,o.Z)("tabs",{"tabs--block":t},n)},u.map((e=>{let{value:n,label:t,attributes:i}=e;return a.createElement("li",(0,r.Z)({role:"tab",tabIndex:l===n?0:-1,"aria-selected":l===n,key:n,ref:e=>c.push(e),onKeyDown:p,onClick:f},i,{className:(0,o.Z)("tabs__item",y,i?.className,{"tabs__item--active":l===n})}),t??n)})))}function k(e){let{lazy:n,children:t,selectedValue:r}=e;const o=(Array.isArray(t)?t:[t]).filter(Boolean);if(n){const e=o.find((e=>e.props.value===r));return e?(0,a.cloneElement)(e,{className:"margin-top--md"}):null}return a.createElement("div",{className:"margin-top--md"},o.map(((e,n)=>(0,a.cloneElement)(e,{key:n,hidden:e.props.value!==r}))))}function w(e){const n=g(e);return a.createElement("div",{className:(0,o.Z)("tabs-container",h)},a.createElement(v,(0,r.Z)({},e,n)),a.createElement(k,(0,r.Z)({},e,n)))}function N(e){const n=(0,b.Z)();return a.createElement(w,(0,r.Z)({key:String(n)},e))}},2740:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>s,default:()=>p,frontMatter:()=>l,metadata:()=>u,toc:()=>m});var r=t(7462),a=(t(7294),t(3905)),o=t(4866),i=t(5162);const l={},s="Formatting",u={unversionedId:"plugins/formatting",id:"plugins/formatting",title:"Formatting",description:"LazyVim uses conform.nvim for formatting.",source:"@site/docs/plugins/formatting.md",sourceDirName:"plugins",slug:"/plugins/formatting",permalink:"/plugins/formatting",draft:!1,editUrl:"https://github.com/LazyVim/lazyvim.github.io/tree/main/docs/plugins/formatting.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Editor",permalink:"/plugins/editor"},next:{title:"Linting",permalink:"/plugins/linting"}},c={},m=[{value:"conform.nvim",id:"conformnvim",level:2},{value:"mason.nvim",id:"masonnvim",level:2}],f={toc:m};function p(e){let{components:n,...t}=e;return(0,a.kt)("wrapper",(0,r.Z)({},f,t,{components:n,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"formatting"},"Formatting"),(0,a.kt)("p",null,(0,a.kt)("strong",{parentName:"p"},"LazyVim")," uses ",(0,a.kt)("inlineCode",{parentName:"p"},"conform.nvim")," for formatting."),(0,a.kt)("p",null,"Configuring ",(0,a.kt)("inlineCode",{parentName:"p"},"conform.nvim"),":"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"opts.format"),": extra options passed to ",(0,a.kt)("inlineCode",{parentName:"li"},'require("conform").format(options)')),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"opts.formatters"),": options will be merged with builtin formatters, or you can specify a new formatter."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"opts.formatters[NAME].prepend_args"),": extra arguments passed to the formatter command.\nIf you want to fully override the ",(0,a.kt)("inlineCode",{parentName:"li"},"args"),", just use ",(0,a.kt)("inlineCode",{parentName:"li"},"args")," instead of ",(0,a.kt)("inlineCode",{parentName:"li"},"prepend_args"),"."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"opts.formatters_by_ft"),": specify which formatters to use for each filetype.")),(0,a.kt)("admonition",{type:"caution"},(0,a.kt)("p",{parentName:"admonition"},"Don't override ",(0,a.kt)("inlineCode",{parentName:"p"},"plugin.config")," directly, since this ",(0,a.kt)("strong",{parentName:"p"},"will")," break LazyVim formatting.")),(0,a.kt)("h2",{id:"conformnvim"},(0,a.kt)("a",{parentName:"h2",href:"https://github.com/stevearc/conform.nvim"},"conform.nvim")),(0,a.kt)(o.Z,{mdxType:"Tabs"},(0,a.kt)(i.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'opts = function()\n local plugin = require("lazy.core.config").plugins["conform.nvim"]\n if plugin.config ~= M.setup then\n LazyVim.error({\n "Don\'t set `plugin.config` for `conform.nvim`.\\n",\n "This will break **LazyVim** formatting.\\n",\n "Please refer to the docs at https://www.lazyvim.org/plugins/formatting",\n }, { title = "LazyVim" })\n end\n ---@type conform.setupOpts\n local opts = {\n default_format_opts = {\n timeout_ms = 3000,\n async = false, -- not recommended to change\n quiet = false, -- not recommended to change\n lsp_format = "fallback", -- not recommended to change\n },\n formatters_by_ft = {\n lua = { "stylua" },\n fish = { "fish_indent" },\n sh = { "shfmt" },\n },\n -- The options you set here will be merged with the builtin formatters.\n -- You can also define any custom formatters here.\n ---@type table<string, conform.FormatterConfigOverride|fun(bufnr: integer): nil|conform.FormatterConfigOverride>\n formatters = {\n injected = { options = { ignore_errors = true } },\n -- # Example of using dprint only when a dprint.json file is present\n -- dprint = {\n -- condition = function(ctx)\n -- return vim.fs.find({ "dprint.json" }, { path = ctx.filename, upward = true })[1]\n -- end,\n -- },\n --\n -- # Example of using shfmt with extra args\n -- shfmt = {\n -- prepend_args = { "-i", "2", "-ci" },\n -- },\n },\n }\n return opts\nend\n'))),(0,a.kt)(i.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "stevearc/conform.nvim",\n dependencies = { "mason.nvim" },\n lazy = true,\n cmd = "ConformInfo",\n keys = {\n {\n "<leader>cF",\n function()\n require("conform").format({ formatters = { "injected" }, timeout_ms = 3000 })\n end,\n mode = { "n", "x" },\n desc = "Format Injected Langs",\n },\n },\n init = function()\n -- Install the conform formatter on VeryLazy\n LazyVim.on_very_lazy(function()\n LazyVim.format.register({\n name = "conform.nvim",\n priority = 100,\n primary = true,\n format = function(buf)\n require("conform").format({ bufnr = buf })\n end,\n sources = function(buf)\n local ret = require("conform").list_formatters(buf)\n ---@param v conform.FormatterInfo\n return vim.tbl_map(function(v)\n return v.name\n end, ret)\n end,\n })\n end)\n end,\n opts = function()\n local plugin = require("lazy.core.config").plugins["conform.nvim"]\n if plugin.config ~= M.setup then\n LazyVim.error({\n "Don\'t set `plugin.config` for `conform.nvim`.\\n",\n "This will break **LazyVim** formatting.\\n",\n "Please refer to the docs at https://www.lazyvim.org/plugins/formatting",\n }, { title = "LazyVim" })\n end\n ---@type conform.setupOpts\n local opts = {\n default_format_opts = {\n timeout_ms = 3000,\n async = false, -- not recommended to change\n quiet = false, -- not recommended to change\n lsp_format = "fallback", -- not recommended to change\n },\n formatters_by_ft = {\n lua = { "stylua" },\n fish = { "fish_indent" },\n sh = { "shfmt" },\n },\n -- The options you set here will be merged with the builtin formatters.\n -- You can also define any custom formatters here.\n ---@type table<string, conform.FormatterConfigOverride|fun(bufnr: integer): nil|conform.FormatterConfigOverride>\n formatters = {\n injected = { options = { ignore_errors = true } },\n -- # Example of using dprint only when a dprint.json file is present\n -- dprint = {\n -- condition = function(ctx)\n -- return vim.fs.find({ "dprint.json" }, { path = ctx.filename, upward = true })[1]\n -- end,\n -- },\n --\n -- # Example of using shfmt with extra args\n -- shfmt = {\n -- prepend_args = { "-i", "2", "-ci" },\n -- },\n },\n }\n return opts\n end,\n config = M.setup,\n}\n')))),(0,a.kt)("h2",{id:"masonnvim"},(0,a.kt)("a",{parentName:"h2",href:"https://github.com/mason-org/mason.nvim"},"mason.nvim")),(0,a.kt)(o.Z,{mdxType:"Tabs"},(0,a.kt)(i.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},"opts = nil\n"))),(0,a.kt)(i.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua"},'{ "mason.nvim" }\n')))))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/f6d78023.2aae8dcd.js b/assets/js/f6d78023.2aae8dcd.js new file mode 100644 index 0000000000..01bbc3247a --- /dev/null +++ b/assets/js/f6d78023.2aae8dcd.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklazyvim=self.webpackChunklazyvim||[]).push([[9016],{3905:(n,e,t)=>{t.d(e,{Zo:()=>s,kt:()=>d});var r=t(7294);function o(n,e,t){return e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}function a(n,e){var t=Object.keys(n);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(n);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),t.push.apply(t,r)}return t}function i(n){for(var e=1;e<arguments.length;e++){var t=null!=arguments[e]?arguments[e]:{};e%2?a(Object(t),!0).forEach((function(e){o(n,e,t[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):a(Object(t)).forEach((function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(t,e))}))}return n}function l(n,e){if(null==n)return{};var t,r,o=function(n,e){if(null==n)return{};var t,r,o={},a=Object.keys(n);for(r=0;r<a.length;r++)t=a[r],e.indexOf(t)>=0||(o[t]=n[t]);return o}(n,e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(n);for(r=0;r<a.length;r++)t=a[r],e.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(n,t)&&(o[t]=n[t])}return o}var c=r.createContext({}),u=function(n){var e=r.useContext(c),t=e;return n&&(t="function"==typeof n?n(e):i(i({},e),n)),t},s=function(n){var e=u(n.components);return r.createElement(c.Provider,{value:e},n.children)},p="mdxType",m={inlineCode:"code",wrapper:function(n){var e=n.children;return r.createElement(r.Fragment,{},e)}},f=r.forwardRef((function(n,e){var t=n.components,o=n.mdxType,a=n.originalType,c=n.parentName,s=l(n,["components","mdxType","originalType","parentName"]),p=u(t),f=o,d=p["".concat(c,".").concat(f)]||p[f]||m[f]||a;return t?r.createElement(d,i(i({ref:e},s),{},{components:t})):r.createElement(d,i({ref:e},s))}));function d(n,e){var t=arguments,o=e&&e.mdxType;if("string"==typeof n||o){var a=t.length,i=new Array(a);i[0]=f;var l={};for(var c in e)hasOwnProperty.call(e,c)&&(l[c]=e[c]);l.originalType=n,l[p]="string"==typeof n?n:o,i[1]=l;for(var u=2;u<a;u++)i[u]=t[u];return r.createElement.apply(null,i)}return r.createElement.apply(null,t)}f.displayName="MDXCreateElement"},6926:(n,e,t)=>{t.r(e),t.d(e,{assets:()=>c,contentTitle:()=>i,default:()=>p,frontMatter:()=>a,metadata:()=>l,toc:()=>u});var r=t(7462),o=(t(7294),t(3905));const a={},i="\u2699\ufe0f Configuration",l={unversionedId:"configuration/index",id:"configuration/index",title:"\u2699\ufe0f Configuration",description:"\ud83d\udcc2 File Structure",source:"@site/docs/configuration/index.md",sourceDirName:"configuration",slug:"/configuration/",permalink:"/configuration/",draft:!1,editUrl:"https://github.com/LazyVim/lazyvim.github.io/tree/main/docs/configuration/index.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"\u2328\ufe0f Keymaps",permalink:"/keymaps"},next:{title:"lazy.nvim",permalink:"/configuration/lazy.nvim"}},c={},u=[{value:"\ud83d\udcc2 File Structure",id:"-file-structure",level:2},{value:"Icons & Colorscheme",id:"icons--colorscheme",level:2},{value:"Default Settings",id:"default-settings",level:3}],s={toc:u};function p(n){let{components:e,...t}=n;return(0,o.kt)("wrapper",(0,r.Z)({},s,t,{components:e,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"\ufe0f-configuration"},"\u2699\ufe0f Configuration"),(0,o.kt)("h2",{id:"-file-structure"},"\ud83d\udcc2 File Structure"),(0,o.kt)("p",null,"The files under config will be automatically loaded at the appropriate time,\nso you don't need to require those files manually. For more information, see ",(0,o.kt)("a",{parentName:"p",href:"./configuration/general"},"general settings"),"."),(0,o.kt)("p",null,"You can add your custom plugin specs under ",(0,o.kt)("inlineCode",{parentName:"p"},"lua/plugins/"),". All files there\nwill be automatically loaded by ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/folke/lazy.nvim"},"lazy.nvim"),".\nFor more information, see ",(0,o.kt)("a",{parentName:"p",href:"/configuration/plugins"},"configuring plugins"),"."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-text",metastring:"{4-7,9-11}","{4-7,9-11}":!0},"~/.config/nvim\n\u251c\u2500\u2500 lua\n\u2502\xa0\xa0 \u251c\u2500\u2500 config\n\u2502\xa0\xa0 \u2502\xa0\xa0 \u251c\u2500\u2500 autocmds.lua\n\u2502\xa0\xa0 \u2502\xa0\xa0 \u251c\u2500\u2500 keymaps.lua\n\u2502\xa0\xa0 \u2502\xa0\xa0 \u251c\u2500\u2500 lazy.lua\n\u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 options.lua\n\u2502\xa0\xa0 \u2514\u2500\u2500 plugins\n\u2502\xa0\xa0 \u251c\u2500\u2500 spec1.lua\n\u2502\xa0\xa0 \u251c\u2500\u2500 **\n\u2502\xa0\xa0 \u2514\u2500\u2500 spec2.lua\n\u2514\u2500\u2500 init.lua\n")),(0,o.kt)("h2",{id:"icons--colorscheme"},"Icons & Colorscheme"),(0,o.kt)("p",null,"Icons & colorscheme can be configured as options for the ",(0,o.kt)("strong",{parentName:"p"},"LazyVim")," plugin."),(0,o.kt)("p",null,"For example in ",(0,o.kt)("inlineCode",{parentName:"p"},"lua/plugins/core.lua")),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-lua"},'return {\n {\n "LazyVim/LazyVim",\n opts = {\n colorscheme = "catppuccin",\n }\n }\n}\n')),(0,o.kt)("h3",{id:"default-settings"},"Default Settings"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-lua"},'{\n -- colorscheme can be a string like `catppuccin` or a function that will load the colorscheme\n ---@type string|fun()\n colorscheme = function()\n require("tokyonight").load()\n end,\n -- load the default settings\n defaults = {\n autocmds = true, -- lazyvim.config.autocmds\n keymaps = true, -- lazyvim.config.keymaps\n -- lazyvim.config.options can\'t be configured here since that\'s loaded before lazyvim setup\n -- if you want to disable loading options, add `package.loaded["lazyvim.config.options"] = true` to the top of your init.lua\n },\n news = {\n -- When enabled, NEWS.md will be shown when changed.\n -- This only contains big new features and breaking changes.\n lazyvim = true,\n -- Same but for Neovim\'s news.txt\n neovim = false,\n },\n -- icons used by other plugins\n icons = {\n misc = {\n dots = "\udb80\uddd8",\n },\n ft = {\n octo = "\uf408",\n },\n dap = {\n Stopped = { "\udb80\udc55 ", "DiagnosticWarn", "DapStoppedLine" },\n Breakpoint = "\uf192 ",\n BreakpointCondition = "\uf059 ",\n BreakpointRejected = { "\uf06a ", "DiagnosticError" },\n LogPoint = ".>",\n },\n diagnostics = {\n Error = "\uf057 ",\n Warn = "\uf071 ",\n Hint = "\uf0eb ",\n Info = "\uf05a ",\n },\n git = {\n added = "\uf0fe ",\n modified = "\uf14b ",\n removed = "\uf146 ",\n },\n kinds = {\n Array = "\uea8a ",\n Boolean = "\udb82\ude19 ",\n Class = "\ueb5b ",\n Codeium = "\udb81\ude26 ",\n Color = "\ueb5c ",\n Control = "\uea68 ",\n Collapsed = "\uf460 ",\n Constant = "\udb80\udfff ",\n Constructor = "\uf423 ",\n Copilot = "\uf4b8 ",\n Enum = "\uf15d ",\n EnumMember = "\uf15d ",\n Event = "\uea86 ",\n Field = "\uf02b ",\n File = "\uea7b ",\n Folder = "\ue5ff ",\n Function = "\udb80\ude95 ",\n Interface = "\uf0e8 ",\n Key = "\uea93 ",\n Keyword = "\ueb62 ",\n Method = "\udb80\ude95 ",\n Module = "\uf487 ",\n Namespace = "\udb82\uddae ",\n Null = "\ue299 ",\n Number = "\udb80\udfa0 ",\n Object = "\uea8b ",\n Operator = "\ueb64 ",\n Package = "\uf487 ",\n Property = "\uf02b ",\n Reference = "\ueb36 ",\n Snippet = "\udb84\udd3d ",\n String = "\ueab1 ",\n Struct = "\udb80\uddbc ",\n Supermaven = "\uf005 ",\n TabNine = "\udb80\udfda ",\n Text = "\uea93 ",\n TypeParameter = "\uea92 ",\n Unit = "\uea96 ",\n Value = "\uea93 ",\n Variable = "\udb80\udc2b ",\n },\n },\n ---@type table<string, string[]|boolean>?\n kind_filter = {\n default = {\n "Class",\n "Constructor",\n "Enum",\n "Field",\n "Function",\n "Interface",\n "Method",\n "Module",\n "Namespace",\n "Package",\n "Property",\n "Struct",\n "Trait",\n },\n markdown = false,\n help = false,\n -- you can specify a different filter for each filetype\n lua = {\n "Class",\n "Constructor",\n "Enum",\n "Field",\n "Function",\n "Interface",\n "Method",\n "Module",\n "Namespace",\n -- "Package", -- remove package since luals uses it for control flow structures\n "Property",\n "Struct",\n "Trait",\n },\n },\n}\n')))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/f7be6569.860322b1.js b/assets/js/f7be6569.860322b1.js new file mode 100644 index 0000000000..d53c0bf102 --- /dev/null +++ b/assets/js/f7be6569.860322b1.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklazyvim=self.webpackChunklazyvim||[]).push([[432],{3905:(e,n,t)=>{t.d(n,{Zo:()=>p,kt:()=>f});var a=t(7294);function r(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function l(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,a)}return t}function o(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?l(Object(t),!0).forEach((function(n){r(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):l(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function i(e,n){if(null==e)return{};var t,a,r=function(e,n){if(null==e)return{};var t,a,r={},l=Object.keys(e);for(a=0;a<l.length;a++)t=l[a],n.indexOf(t)>=0||(r[t]=e[t]);return r}(e,n);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a<l.length;a++)t=l[a],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(r[t]=e[t])}return r}var s=a.createContext({}),u=function(e){var n=a.useContext(s),t=n;return e&&(t="function"==typeof e?e(n):o(o({},n),e)),t},p=function(e){var n=u(e.components);return a.createElement(s.Provider,{value:n},e.children)},c="mdxType",m={inlineCode:"code",wrapper:function(e){var n=e.children;return a.createElement(a.Fragment,{},n)}},d=a.forwardRef((function(e,n){var t=e.components,r=e.mdxType,l=e.originalType,s=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),c=u(t),d=r,f=c["".concat(s,".").concat(d)]||c[d]||m[d]||l;return t?a.createElement(f,o(o({ref:n},p),{},{components:t})):a.createElement(f,o({ref:n},p))}));function f(e,n){var t=arguments,r=n&&n.mdxType;if("string"==typeof e||r){var l=t.length,o=new Array(l);o[0]=d;var i={};for(var s in n)hasOwnProperty.call(n,s)&&(i[s]=n[s]);i.originalType=e,i[c]="string"==typeof e?e:r,o[1]=i;for(var u=2;u<l;u++)o[u]=t[u];return a.createElement.apply(null,o)}return a.createElement.apply(null,t)}d.displayName="MDXCreateElement"},5162:(e,n,t)=>{t.d(n,{Z:()=>o});var a=t(7294),r=t(6010);const l="tabItem_Ymn6";function o(e){let{children:n,hidden:t,className:o}=e;return a.createElement("div",{role:"tabpanel",className:(0,r.Z)(l,o),hidden:t},n)}},4866:(e,n,t)=>{t.d(n,{Z:()=>T});var a=t(7462),r=t(7294),l=t(6010),o=t(2466),i=t(6550),s=t(1980),u=t(7392),p=t(12);function c(e){return function(e){return r.Children.map(e,(e=>{if(!e||(0,r.isValidElement)(e)&&function(e){const{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:n,label:t,attributes:a,default:r}}=e;return{value:n,label:t,attributes:a,default:r}}))}function m(e){const{values:n,children:t}=e;return(0,r.useMemo)((()=>{const e=n??c(t);return function(e){const n=(0,u.l)(e,((e,n)=>e.value===n.value));if(n.length>0)throw new Error(`Docusaurus error: Duplicate values "${n.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[n,t])}function d(e){let{value:n,tabValues:t}=e;return t.some((e=>e.value===n))}function f(e){let{queryString:n=!1,groupId:t}=e;const a=(0,i.k6)(),l=function(e){let{queryString:n=!1,groupId:t}=e;if("string"==typeof n)return n;if(!1===n)return null;if(!0===n&&!t)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return t??null}({queryString:n,groupId:t});return[(0,s._X)(l),(0,r.useCallback)((e=>{if(!l)return;const n=new URLSearchParams(a.location.search);n.set(l,e),a.replace({...a.location,search:n.toString()})}),[l,a])]}function v(e){const{defaultValue:n,queryString:t=!1,groupId:a}=e,l=m(e),[o,i]=(0,r.useState)((()=>function(e){let{defaultValue:n,tabValues:t}=e;if(0===t.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(n){if(!d({value:n,tabValues:t}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${n}" but none of its children has the corresponding value. Available values are: ${t.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return n}const a=t.find((e=>e.default))??t[0];if(!a)throw new Error("Unexpected error: 0 tabValues");return a.value}({defaultValue:n,tabValues:l}))),[s,u]=f({queryString:t,groupId:a}),[c,v]=function(e){let{groupId:n}=e;const t=function(e){return e?`docusaurus.tab.${e}`:null}(n),[a,l]=(0,p.Nk)(t);return[a,(0,r.useCallback)((e=>{t&&l.set(e)}),[t,l])]}({groupId:a}),b=(()=>{const e=s??c;return d({value:e,tabValues:l})?e:null})();(0,r.useLayoutEffect)((()=>{b&&i(b)}),[b]);return{selectedValue:o,selectValue:(0,r.useCallback)((e=>{if(!d({value:e,tabValues:l}))throw new Error(`Can't select invalid tab value=${e}`);i(e),u(e),v(e)}),[u,v,l]),tabValues:l}}var b=t(2389);const g="tabList__CuJ",h="tabItem_LNqP";function k(e){let{className:n,block:t,selectedValue:i,selectValue:s,tabValues:u}=e;const p=[],{blockElementScrollPositionUntilNextRender:c}=(0,o.o5)(),m=e=>{const n=e.currentTarget,t=p.indexOf(n),a=u[t].value;a!==i&&(c(n),s(a))},d=e=>{let n=null;switch(e.key){case"Enter":m(e);break;case"ArrowRight":{const t=p.indexOf(e.currentTarget)+1;n=p[t]??p[0];break}case"ArrowLeft":{const t=p.indexOf(e.currentTarget)-1;n=p[t]??p[p.length-1];break}}n?.focus()};return r.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,l.Z)("tabs",{"tabs--block":t},n)},u.map((e=>{let{value:n,label:t,attributes:o}=e;return r.createElement("li",(0,a.Z)({role:"tab",tabIndex:i===n?0:-1,"aria-selected":i===n,key:n,ref:e=>p.push(e),onKeyDown:d,onClick:m},o,{className:(0,l.Z)("tabs__item",h,o?.className,{"tabs__item--active":i===n})}),t??n)})))}function y(e){let{lazy:n,children:t,selectedValue:a}=e;const l=(Array.isArray(t)?t:[t]).filter(Boolean);if(n){const e=l.find((e=>e.props.value===a));return e?(0,r.cloneElement)(e,{className:"margin-top--md"}):null}return r.createElement("div",{className:"margin-top--md"},l.map(((e,n)=>(0,r.cloneElement)(e,{key:n,hidden:e.props.value!==a}))))}function x(e){const n=v(e);return r.createElement("div",{className:(0,l.Z)("tabs-container",g)},r.createElement(k,(0,a.Z)({},e,n)),r.createElement(y,(0,a.Z)({},e,n)))}function T(e){const n=(0,b.Z)();return r.createElement(x,(0,a.Z)({key:String(n)},e))}},8346:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>p,contentTitle:()=>s,default:()=>d,frontMatter:()=>i,metadata:()=>u,toc:()=>c});var a=t(7462),r=(t(7294),t(3905)),l=t(4866),o=t(5162);const i={},s="Elixir",u={unversionedId:"extras/lang/elixir",id:"extras/lang/elixir",title:"Elixir",description:"You can enable the extra with the :LazyExtras command.",source:"@site/docs/extras/lang/elixir.md",sourceDirName:"extras/lang",slug:"/extras/lang/elixir",permalink:"/extras/lang/elixir",draft:!1,editUrl:"https://github.com/LazyVim/lazyvim.github.io/tree/main/docs/extras/lang/elixir.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Dotnet",permalink:"/extras/lang/dotnet"},next:{title:"Elm",permalink:"/extras/lang/elm"}},p={},c=[{value:"nvim-lspconfig",id:"nvim-lspconfig",level:2},{value:"nvim-treesitter",id:"nvim-treesitter",level:2},{value:"neotest-elixir",id:"neotest-elixir",level:2},{value:"neotest <em>(optional)</em>",id:"neotest-optional",level:2},{value:"none-ls.nvim <em>(optional)</em>",id:"none-lsnvim-optional",level:2},{value:"nvim-lint <em>(optional)</em>",id:"nvim-lint-optional",level:2},{value:"render-markdown.nvim <em>(optional)</em>",id:"render-markdownnvim-optional",level:2}],m={toc:c};function d(e){let{components:n,...t}=e;return(0,r.kt)("wrapper",(0,a.Z)({},m,t,{components:n,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"elixir"},"Elixir"),(0,r.kt)("admonition",{type:"info"},(0,r.kt)("p",{parentName:"admonition"},"You can enable the extra with the ",(0,r.kt)("inlineCode",{parentName:"p"},":LazyExtras")," command.\nPlugins marked as optional will only be configured if they are installed.")),(0,r.kt)("p",null,"Below you can find a list of included plugins and their default settings."),(0,r.kt)("admonition",{type:"caution"},(0,r.kt)("p",{parentName:"admonition"},"You don't need to copy the default settings to your config.\nThey are only shown here for reference.")),(0,r.kt)("h2",{id:"nvim-lspconfig"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/neovim/nvim-lspconfig"},"nvim-lspconfig")),(0,r.kt)(l.Z,{mdxType:"Tabs"},(0,r.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = {\n servers = {\n elixirls = {\n keys = {\n {\n "<leader>cp",\n function()\n local params = vim.lsp.util.make_position_params()\n LazyVim.lsp.execute({\n command = "manipulatePipes:serverid",\n arguments = { "toPipe", params.textDocument.uri, params.position.line, params.position.character },\n })\n end,\n desc = "To Pipe",\n },\n {\n "<leader>cP",\n function()\n local params = vim.lsp.util.make_position_params()\n LazyVim.lsp.execute({\n command = "manipulatePipes:serverid",\n arguments = { "fromPipe", params.textDocument.uri, params.position.line, params.position.character },\n })\n end,\n desc = "From Pipe",\n },\n },\n },\n },\n}\n'))),(0,r.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "neovim/nvim-lspconfig",\n opts = {\n servers = {\n elixirls = {\n keys = {\n {\n "<leader>cp",\n function()\n local params = vim.lsp.util.make_position_params()\n LazyVim.lsp.execute({\n command = "manipulatePipes:serverid",\n arguments = { "toPipe", params.textDocument.uri, params.position.line, params.position.character },\n })\n end,\n desc = "To Pipe",\n },\n {\n "<leader>cP",\n function()\n local params = vim.lsp.util.make_position_params()\n LazyVim.lsp.execute({\n command = "manipulatePipes:serverid",\n arguments = { "fromPipe", params.textDocument.uri, params.position.line, params.position.character },\n })\n end,\n desc = "From Pipe",\n },\n },\n },\n },\n },\n}\n')))),(0,r.kt)("h2",{id:"nvim-treesitter"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/nvim-treesitter/nvim-treesitter"},"nvim-treesitter")),(0,r.kt)(l.Z,{mdxType:"Tabs"},(0,r.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = function(_, opts)\n opts.ensure_installed = opts.ensure_installed or {}\n vim.list_extend(opts.ensure_installed, { "elixir", "heex", "eex" })\n vim.treesitter.language.register("markdown", "livebook")\nend\n'))),(0,r.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "nvim-treesitter/nvim-treesitter",\n opts = function(_, opts)\n opts.ensure_installed = opts.ensure_installed or {}\n vim.list_extend(opts.ensure_installed, { "elixir", "heex", "eex" })\n vim.treesitter.language.register("markdown", "livebook")\n end,\n}\n')))),(0,r.kt)("h2",{id:"neotest-elixir"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/jfpedroza/neotest-elixir"},"neotest-elixir")),(0,r.kt)(l.Z,{mdxType:"Tabs"},(0,r.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},"opts = nil\n"))),(0,r.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "jfpedroza/neotest-elixir",\n}\n')))),(0,r.kt)("h2",{id:"neotest-optional"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/nvim-neotest/neotest"},"neotest")," ",(0,r.kt)("em",{parentName:"h2"},"(optional)")),(0,r.kt)(l.Z,{mdxType:"Tabs"},(0,r.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = {\n adapters = {\n ["neotest-elixir"] = {},\n },\n}\n'))),(0,r.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "nvim-neotest/neotest",\n optional = true,\n dependencies = {\n "jfpedroza/neotest-elixir",\n },\n opts = {\n adapters = {\n ["neotest-elixir"] = {},\n },\n },\n}\n')))),(0,r.kt)("h2",{id:"none-lsnvim-optional"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/nvimtools/none-ls.nvim"},"none-ls.nvim")," ",(0,r.kt)("em",{parentName:"h2"},"(optional)")),(0,r.kt)(l.Z,{mdxType:"Tabs"},(0,r.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = function(_, opts)\n local nls = require("null-ls")\n opts.sources = vim.list_extend(opts.sources or {}, {\n nls.builtins.diagnostics.credo.with({\n condition = function(utils)\n return utils.root_has_file(".credo.exs")\n end,\n }),\n })\nend\n'))),(0,r.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "nvimtools/none-ls.nvim",\n optional = true,\n opts = function(_, opts)\n local nls = require("null-ls")\n opts.sources = vim.list_extend(opts.sources or {}, {\n nls.builtins.diagnostics.credo.with({\n condition = function(utils)\n return utils.root_has_file(".credo.exs")\n end,\n }),\n })\n end,\n}\n')))),(0,r.kt)("h2",{id:"nvim-lint-optional"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/mfussenegger/nvim-lint"},"nvim-lint")," ",(0,r.kt)("em",{parentName:"h2"},"(optional)")),(0,r.kt)(l.Z,{mdxType:"Tabs"},(0,r.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = function(_, opts)\n opts.linters_by_ft = {\n elixir = { "credo" },\n }\n\n opts.linters = {\n credo = {\n condition = function(ctx)\n return vim.fs.find({ ".credo.exs" }, { path = ctx.filename, upward = true })[1]\n end,\n },\n }\nend\n'))),(0,r.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "mfussenegger/nvim-lint",\n optional = true,\n opts = function(_, opts)\n opts.linters_by_ft = {\n elixir = { "credo" },\n }\n\n opts.linters = {\n credo = {\n condition = function(ctx)\n return vim.fs.find({ ".credo.exs" }, { path = ctx.filename, upward = true })[1]\n end,\n },\n }\n end,\n}\n')))),(0,r.kt)("h2",{id:"render-markdownnvim-optional"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/MeanderingProgrammer/render-markdown.nvim"},"render-markdown.nvim")," ",(0,r.kt)("em",{parentName:"h2"},"(optional)")),(0,r.kt)(l.Z,{mdxType:"Tabs"},(0,r.kt)(o.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},"opts = nil\n"))),(0,r.kt)(o.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "MeanderingProgrammer/render-markdown.nvim",\n optional = true,\n ft = function(_, ft)\n vim.list_extend(ft, { "livebook" })\n end,\n}\n')))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/fba121fb.601fc1f3.js b/assets/js/fba121fb.601fc1f3.js new file mode 100644 index 0000000000..d4acdf4239 --- /dev/null +++ b/assets/js/fba121fb.601fc1f3.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklazyvim=self.webpackChunklazyvim||[]).push([[9213],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>d});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?i(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):i(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function l(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var u=r.createContext({}),f=function(e){var t=r.useContext(u),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},p=function(e){var t=f(e.components);return r.createElement(u.Provider,{value:t},e.children)},s="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,i=e.originalType,u=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),s=f(n),m=a,d=s["".concat(u,".").concat(m)]||s[m]||c[m]||i;return n?r.createElement(d,o(o({ref:t},p),{},{components:n})):r.createElement(d,o({ref:t},p))}));function d(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=n.length,o=new Array(i);o[0]=m;var l={};for(var u in t)hasOwnProperty.call(t,u)&&(l[u]=t[u]);l.originalType=e,l[s]="string"==typeof e?e:a,o[1]=l;for(var f=2;f<i;f++)o[f]=n[f];return r.createElement.apply(null,o)}return r.createElement.apply(null,n)}m.displayName="MDXCreateElement"},8089:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>u,contentTitle:()=>o,default:()=>s,frontMatter:()=>i,metadata:()=>l,toc:()=>f});var r=n(7462),a=(n(7294),n(3905));const i={sidebar_position:7},o="Tips",l={unversionedId:"configuration/tips",id:"configuration/tips",title:"Tips",description:"Navigating around multiple buffers",source:"@site/docs/configuration/tips.md",sourceDirName:"configuration",slug:"/configuration/tips",permalink:"/configuration/tips",draft:!1,editUrl:"https://github.com/LazyVim/lazyvim.github.io/tree/main/docs/configuration/tips.md",tags:[],version:"current",sidebarPosition:7,frontMatter:{sidebar_position:7},sidebar:"tutorialSidebar",previous:{title:"Recipes",permalink:"/configuration/recipes"},next:{title:"Core Plugins",permalink:"/plugins/"}},u={},f=[{value:"Navigating around multiple buffers",id:"navigating-around-multiple-buffers",level:2},{value:"Disable autoformat for some buffers",id:"disable-autoformat-for-some-buffers",level:2}],p={toc:f};function s(e){let{components:t,...n}=e;return(0,a.kt)("wrapper",(0,r.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"tips"},"Tips"),(0,a.kt)("h2",{id:"navigating-around-multiple-buffers"},"Navigating around multiple buffers"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Use ",(0,a.kt)("inlineCode",{parentName:"li"},"H")," and ",(0,a.kt)("inlineCode",{parentName:"li"},"L")," if the buffer you want to go to is visually close to where you are"),(0,a.kt)("li",{parentName:"ul"},"Otherwise, if the buffer is open, use ",(0,a.kt)("inlineCode",{parentName:"li"},"<leader>,")),(0,a.kt)("li",{parentName:"ul"},"For other files, use ",(0,a.kt)("inlineCode",{parentName:"li"},"<leader><space>")),(0,a.kt)("li",{parentName:"ul"},"Close buffers you no longer need with ",(0,a.kt)("inlineCode",{parentName:"li"},"<leader>bd")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"<leader>ss")," to quickly jump to a function in the buffer you're on"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"<c-o>"),", ",(0,a.kt)("inlineCode",{parentName:"li"},"<c-i>")," and ",(0,a.kt)("inlineCode",{parentName:"li"},"gd")," to navigate the code"),(0,a.kt)("li",{parentName:"ul"},"You can pin buffers with ",(0,a.kt)("inlineCode",{parentName:"li"},"<leader>bp")," and delete all non pinned buffers with ",(0,a.kt)("inlineCode",{parentName:"li"},"<leader>bP")),(0,a.kt)("li",{parentName:"ul"},"Add ",(0,a.kt)("inlineCode",{parentName:"li"},"TODO"),"s in files you want to work on in future but don't need now and delete their buffers, git will track them")),(0,a.kt)("h2",{id:"disable-autoformat-for-some-buffers"},"Disable autoformat for some buffers"),(0,a.kt)("p",null,"If you want to disable autoformat for a certain buffer, then\nset ",(0,a.kt)("inlineCode",{parentName:"p"},"vim.b.autoformat = false")," for that buffer."),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-lua",metastring:"title=lua/config/autocmds.lua",title:"lua/config/autocmds.lua"},'-- Disable autoformat for lua files\nvim.api.nvim_create_autocmd({ "FileType" }, {\n pattern = { "lua" },\n callback = function()\n vim.b.autoformat = false\n end,\n})\n')),(0,a.kt)("p",null,"If you change your mind you can do ",(0,a.kt)("inlineCode",{parentName:"p"},"<leader>uf")," to enable autoformat\nanyway for that buffer."))}s.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/ff0044c8.86bcb045.js b/assets/js/ff0044c8.86bcb045.js new file mode 100644 index 0000000000..abdfdede0c --- /dev/null +++ b/assets/js/ff0044c8.86bcb045.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklazyvim=self.webpackChunklazyvim||[]).push([[645],{3905:(e,n,t)=>{t.d(n,{Zo:()=>c,kt:()=>p});var a=t(7294);function r(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function i(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,a)}return t}function l(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?i(Object(t),!0).forEach((function(n){r(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):i(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function o(e,n){if(null==e)return{};var t,a,r=function(e,n){if(null==e)return{};var t,a,r={},i=Object.keys(e);for(a=0;a<i.length;a++)t=i[a],n.indexOf(t)>=0||(r[t]=e[t]);return r}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a<i.length;a++)t=i[a],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(r[t]=e[t])}return r}var u=a.createContext({}),s=function(e){var n=a.useContext(u),t=n;return e&&(t="function"==typeof e?e(n):l(l({},n),e)),t},c=function(e){var n=s(e.components);return a.createElement(u.Provider,{value:n},e.children)},d="mdxType",m={inlineCode:"code",wrapper:function(e){var n=e.children;return a.createElement(a.Fragment,{},n)}},f=a.forwardRef((function(e,n){var t=e.components,r=e.mdxType,i=e.originalType,u=e.parentName,c=o(e,["components","mdxType","originalType","parentName"]),d=s(t),f=r,p=d["".concat(u,".").concat(f)]||d[f]||m[f]||i;return t?a.createElement(p,l(l({ref:n},c),{},{components:t})):a.createElement(p,l({ref:n},c))}));function p(e,n){var t=arguments,r=n&&n.mdxType;if("string"==typeof e||r){var i=t.length,l=new Array(i);l[0]=f;var o={};for(var u in n)hasOwnProperty.call(n,u)&&(o[u]=n[u]);o.originalType=e,o[d]="string"==typeof e?e:r,l[1]=o;for(var s=2;s<i;s++)l[s]=t[s];return a.createElement.apply(null,l)}return a.createElement.apply(null,t)}f.displayName="MDXCreateElement"},5162:(e,n,t)=>{t.d(n,{Z:()=>l});var a=t(7294),r=t(6010);const i="tabItem_Ymn6";function l(e){let{children:n,hidden:t,className:l}=e;return a.createElement("div",{role:"tabpanel",className:(0,r.Z)(i,l),hidden:t},n)}},4866:(e,n,t)=>{t.d(n,{Z:()=>x});var a=t(7462),r=t(7294),i=t(6010),l=t(2466),o=t(6550),u=t(1980),s=t(7392),c=t(12);function d(e){return function(e){return r.Children.map(e,(e=>{if(!e||(0,r.isValidElement)(e)&&function(e){const{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:n,label:t,attributes:a,default:r}}=e;return{value:n,label:t,attributes:a,default:r}}))}function m(e){const{values:n,children:t}=e;return(0,r.useMemo)((()=>{const e=n??d(t);return function(e){const n=(0,s.l)(e,((e,n)=>e.value===n.value));if(n.length>0)throw new Error(`Docusaurus error: Duplicate values "${n.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[n,t])}function f(e){let{value:n,tabValues:t}=e;return t.some((e=>e.value===n))}function p(e){let{queryString:n=!1,groupId:t}=e;const a=(0,o.k6)(),i=function(e){let{queryString:n=!1,groupId:t}=e;if("string"==typeof n)return n;if(!1===n)return null;if(!0===n&&!t)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return t??null}({queryString:n,groupId:t});return[(0,u._X)(i),(0,r.useCallback)((e=>{if(!i)return;const n=new URLSearchParams(a.location.search);n.set(i,e),a.replace({...a.location,search:n.toString()})}),[i,a])]}function b(e){const{defaultValue:n,queryString:t=!1,groupId:a}=e,i=m(e),[l,o]=(0,r.useState)((()=>function(e){let{defaultValue:n,tabValues:t}=e;if(0===t.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(n){if(!f({value:n,tabValues:t}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${n}" but none of its children has the corresponding value. Available values are: ${t.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return n}const a=t.find((e=>e.default))??t[0];if(!a)throw new Error("Unexpected error: 0 tabValues");return a.value}({defaultValue:n,tabValues:i}))),[u,s]=p({queryString:t,groupId:a}),[d,b]=function(e){let{groupId:n}=e;const t=function(e){return e?`docusaurus.tab.${e}`:null}(n),[a,i]=(0,c.Nk)(t);return[a,(0,r.useCallback)((e=>{t&&i.set(e)}),[t,i])]}({groupId:a}),v=(()=>{const e=u??d;return f({value:e,tabValues:i})?e:null})();(0,r.useLayoutEffect)((()=>{v&&o(v)}),[v]);return{selectedValue:l,selectValue:(0,r.useCallback)((e=>{if(!f({value:e,tabValues:i}))throw new Error(`Can't select invalid tab value=${e}`);o(e),s(e),b(e)}),[s,b,i]),tabValues:i}}var v=t(2389);const y="tabList__CuJ",g="tabItem_LNqP";function h(e){let{className:n,block:t,selectedValue:o,selectValue:u,tabValues:s}=e;const c=[],{blockElementScrollPositionUntilNextRender:d}=(0,l.o5)(),m=e=>{const n=e.currentTarget,t=c.indexOf(n),a=s[t].value;a!==o&&(d(n),u(a))},f=e=>{let n=null;switch(e.key){case"Enter":m(e);break;case"ArrowRight":{const t=c.indexOf(e.currentTarget)+1;n=c[t]??c[0];break}case"ArrowLeft":{const t=c.indexOf(e.currentTarget)-1;n=c[t]??c[c.length-1];break}}n?.focus()};return r.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,i.Z)("tabs",{"tabs--block":t},n)},s.map((e=>{let{value:n,label:t,attributes:l}=e;return r.createElement("li",(0,a.Z)({role:"tab",tabIndex:o===n?0:-1,"aria-selected":o===n,key:n,ref:e=>c.push(e),onKeyDown:f,onClick:m},l,{className:(0,i.Z)("tabs__item",g,l?.className,{"tabs__item--active":o===n})}),t??n)})))}function k(e){let{lazy:n,children:t,selectedValue:a}=e;const i=(Array.isArray(t)?t:[t]).filter(Boolean);if(n){const e=i.find((e=>e.props.value===a));return e?(0,r.cloneElement)(e,{className:"margin-top--md"}):null}return r.createElement("div",{className:"margin-top--md"},i.map(((e,n)=>(0,r.cloneElement)(e,{key:n,hidden:e.props.value!==a}))))}function w(e){const n=b(e);return r.createElement("div",{className:(0,i.Z)("tabs-container",y)},r.createElement(h,(0,a.Z)({},e,n)),r.createElement(k,(0,a.Z)({},e,n)))}function x(e){const n=(0,v.Z)();return r.createElement(w,(0,a.Z)({key:String(n)},e))}},2284:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>u,default:()=>f,frontMatter:()=>o,metadata:()=>s,toc:()=>d});var a=t(7462),r=(t(7294),t(3905)),i=t(4866),l=t(5162);const o={},u="Mini-diff",s={unversionedId:"extras/editor/mini-diff",id:"extras/editor/mini-diff",title:"Mini-diff",description:"You can enable the extra with the :LazyExtras command.",source:"@site/docs/extras/editor/mini-diff.md",sourceDirName:"extras/editor",slug:"/extras/editor/mini-diff",permalink:"/extras/editor/mini-diff",draft:!1,editUrl:"https://github.com/LazyVim/lazyvim.github.io/tree/main/docs/extras/editor/mini-diff.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Leap",permalink:"/extras/editor/leap"},next:{title:"Mini Files",permalink:"/extras/editor/mini-files"}},c={},d=[{value:"mini.diff",id:"minidiff",level:2},{value:"mini.diff",id:"minidiff-1",level:2},{value:"lualine.nvim",id:"lualinenvim",level:2}],m={toc:d};function f(e){let{components:n,...t}=e;return(0,r.kt)("wrapper",(0,a.Z)({},m,t,{components:n,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"mini-diff"},(0,r.kt)("inlineCode",{parentName:"h1"},"Mini-diff")),(0,r.kt)("admonition",{type:"info"},(0,r.kt)("p",{parentName:"admonition"},"You can enable the extra with the ",(0,r.kt)("inlineCode",{parentName:"p"},":LazyExtras")," command.\nPlugins marked as optional will only be configured if they are installed.")),(0,r.kt)("p",null,"Below you can find a list of included plugins and their default settings."),(0,r.kt)("admonition",{type:"caution"},(0,r.kt)("p",{parentName:"admonition"},"You don't need to copy the default settings to your config.\nThey are only shown here for reference.")),(0,r.kt)("h2",{id:"minidiff"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/nvim-mini/mini.diff"},"mini.diff")),(0,r.kt)("p",null," setup mini.diff"),(0,r.kt)(i.Z,{mdxType:"Tabs"},(0,r.kt)(l.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = {\n view = {\n style = "sign",\n signs = {\n add = "\u258e",\n change = "\u258e",\n delete = "\uf0da",\n },\n },\n}\n'))),(0,r.kt)(l.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "nvim-mini/mini.diff",\n event = "VeryLazy",\n keys = {\n {\n "<leader>go",\n function()\n require("mini.diff").toggle_overlay(0)\n end,\n desc = "Toggle mini.diff overlay",\n },\n },\n opts = {\n view = {\n style = "sign",\n signs = {\n add = "\u258e",\n change = "\u258e",\n delete = "\uf0da",\n },\n },\n },\n}\n')))),(0,r.kt)("h2",{id:"minidiff-1"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/nvim-mini/mini.diff"},"mini.diff")),(0,r.kt)(i.Z,{mdxType:"Tabs"},(0,r.kt)(l.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = function()\n Snacks.toggle({\n name = "Mini Diff Signs",\n get = function()\n return vim.g.minidiff_disable ~= true\n end,\n set = function(state)\n vim.g.minidiff_disable = not state\n if state then\n require("mini.diff").enable(0)\n else\n require("mini.diff").disable(0)\n end\n -- HACK: redraw to update the signs\n vim.defer_fn(function()\n vim.cmd([[redraw!]])\n end, 200)\n end,\n }):map("<leader>uG")\nend\n'))),(0,r.kt)(l.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "mini.diff",\n opts = function()\n Snacks.toggle({\n name = "Mini Diff Signs",\n get = function()\n return vim.g.minidiff_disable ~= true\n end,\n set = function(state)\n vim.g.minidiff_disable = not state\n if state then\n require("mini.diff").enable(0)\n else\n require("mini.diff").disable(0)\n end\n -- HACK: redraw to update the signs\n vim.defer_fn(function()\n vim.cmd([[redraw!]])\n end, 200)\n end,\n }):map("<leader>uG")\n end,\n}\n')))),(0,r.kt)("h2",{id:"lualinenvim"},(0,r.kt)("a",{parentName:"h2",href:"https://github.com/nvim-lualine/lualine.nvim"},"lualine.nvim")),(0,r.kt)("p",null," lualine integration"),(0,r.kt)(i.Z,{mdxType:"Tabs"},(0,r.kt)(l.Z,{value:"opts",label:"Options",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'opts = function(_, opts)\n local x = opts.sections.lualine_x\n for _, comp in ipairs(x) do\n if comp[1] == "diff" then\n comp.source = function()\n local summary = vim.b.minidiff_summary\n return summary\n and {\n added = summary.add,\n modified = summary.change,\n removed = summary.delete,\n }\n end\n break\n end\n end\nend\n'))),(0,r.kt)(l.Z,{value:"code",label:"Full Spec",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-lua"},'{\n "nvim-lualine/lualine.nvim",\n opts = function(_, opts)\n local x = opts.sections.lualine_x\n for _, comp in ipairs(x) do\n if comp[1] == "diff" then\n comp.source = function()\n local summary = vim.b.minidiff_summary\n return summary\n and {\n added = summary.add,\n modified = summary.change,\n removed = summary.delete,\n }\n end\n break\n end\n end\n end,\n}\n')))))}f.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/main.e4c7918d.js b/assets/js/main.e4c7918d.js new file mode 100644 index 0000000000..cfbd00bfa0 --- /dev/null +++ b/assets/js/main.e4c7918d.js @@ -0,0 +1,2 @@ +/*! For license information please see main.e4c7918d.js.LICENSE.txt */ +(self.webpackChunklazyvim=self.webpackChunklazyvim||[]).push([[179],{723:(e,t,n)=>{"use strict";n.d(t,{Z:()=>f});var r=n(7294),a=n(7462),i=n(8356),o=n.n(i),s=n(6887);const l={"0002c181":[()=>Promise.all([n.e(532),n.e(5227)]).then(n.bind(n,1060)),"@site/docs/extras/lang/svelte.md",1060],"00f37bb3":[()=>Promise.all([n.e(532),n.e(1576)]).then(n.bind(n,4714)),"@site/docs/configuration/general.md",4714],"01db27bc":[()=>Promise.all([n.e(532),n.e(4206)]).then(n.bind(n,1295)),"@site/docs/extras/ai/copilot-native.md",1295],"02335ff3":[()=>n.e(530).then(n.bind(n,2332)),"@site/docs/plugins/index.md",2332],"030829cf":[()=>Promise.all([n.e(532),n.e(7293)]).then(n.bind(n,8682)),"@site/docs/extras/ui/indent-blankline.md",8682],"043ad997":[()=>Promise.all([n.e(532),n.e(4580)]).then(n.bind(n,6693)),"@site/docs/extras/lang/kotlin.md",6693],"054d3884":[()=>Promise.all([n.e(532),n.e(1330)]).then(n.bind(n,8030)),"@site/docs/extras/lang/ruby.md",8030],"086c1b3d":[()=>Promise.all([n.e(532),n.e(2201)]).then(n.bind(n,2042)),"@site/docs/extras/lang/thrift.md",2042],"0b960a6d":[()=>Promise.all([n.e(532),n.e(6694)]).then(n.bind(n,4520)),"@site/docs/extras/lang/helm.md",4520],"0ba19029":[()=>Promise.all([n.e(532),n.e(1236)]).then(n.bind(n,6081)),"@site/docs/extras/lang/haskell.md",6081],"0ceb8aa7":[()=>Promise.all([n.e(532),n.e(1058)]).then(n.bind(n,8957)),"@site/docs/extras/coding/yanky.md",8957],"0cfaa859":[()=>Promise.all([n.e(532),n.e(7993)]).then(n.bind(n,2070)),"@site/docs/extras/lang/zig.md",2070],"0dd98372":[()=>Promise.all([n.e(532),n.e(4517)]).then(n.bind(n,1616)),"@site/docs/extras/lang/rego.md",1616],"0e384e19":[()=>n.e(9671).then(n.bind(n,5941)),"@site/docs/intro.md",5941],"0fafd334":[()=>n.e(1087).then(n.bind(n,6530)),"@site/docs/news.md",6530],"1421d519":[()=>n.e(5496).then(n.bind(n,8835)),"@site/docs/configuration/examples.md",8835],"14e32279":[()=>Promise.all([n.e(532),n.e(8335)]).then(n.bind(n,7207)),"@site/docs/extras/coding/mini-snippets.md",7207],17896441:[()=>Promise.all([n.e(532),n.e(7918)]).then(n.bind(n,4700)),"@theme/DocItem",4700],"1a4e3797":[()=>Promise.all([n.e(532),n.e(7920)]).then(n.bind(n,2027)),"@theme/SearchPage",2027],"1be78505":[()=>Promise.all([n.e(532),n.e(9514)]).then(n.bind(n,9963)),"@theme/DocPage",9963],"1e89ac9b":[()=>Promise.all([n.e(532),n.e(58)]).then(n.bind(n,3554)),"@site/docs/extras/ai/claudecode.md",3554],"1ebe7096":[()=>Promise.all([n.e(532),n.e(1740)]).then(n.bind(n,6853)),"@site/docs/extras/lang/julia.md",6853],"203eebe1":[()=>Promise.all([n.e(532),n.e(3363)]).then(n.bind(n,2939)),"@site/docs/extras/util/gh.md",2939],"269621ab":[()=>Promise.all([n.e(532),n.e(768)]).then(n.bind(n,9890)),"@site/docs/extras/util/chezmoi.md",9890],"2b0bb072":[()=>Promise.all([n.e(532),n.e(7053)]).then(n.bind(n,4249)),"@site/docs/extras/lang/clojure.md",4249],"2d285e41":[()=>Promise.all([n.e(532),n.e(7704)]).then(n.bind(n,6660)),"@site/docs/plugins/linting.md",6660],"2df97b47":[()=>Promise.all([n.e(532),n.e(1086)]).then(n.bind(n,1531)),"@site/docs/extras/lang/prisma.md",1531],"2f0824eb":[()=>Promise.all([n.e(532),n.e(3764)]).then(n.bind(n,3682)),"@site/docs/extras/lang/lean.md",3682],"2f41730a":[()=>Promise.all([n.e(532),n.e(2404)]).then(n.bind(n,5662)),"@site/docs/extras/lang/git.md",5662],"30f42c63":[()=>Promise.all([n.e(532),n.e(8186)]).then(n.bind(n,7176)),"@site/docs/extras/ui/mini-starter.md",7176],"317b1847":[()=>Promise.all([n.e(532),n.e(2555)]).then(n.bind(n,7394)),"@site/docs/extras/editor/dial.md",7394],"34c7b1b3":[()=>n.e(2781).then(n.bind(n,9744)),"@site/docs/keymaps.md",9744],"36e7d211":[()=>Promise.all([n.e(532),n.e(7532)]).then(n.bind(n,1315)),"@site/docs/extras/coding/mini-comment.md",1315],"3726a5f7":[()=>Promise.all([n.e(532),n.e(7448)]).then(n.bind(n,6053)),"@site/docs/extras/editor/inc-rename.md",6053],"3b8c55ea":[()=>Promise.all([n.e(532),n.e(3217)]).then(n.bind(n,9803)),"@site/docs/installation.md",9803],"3bc80f43":[()=>Promise.all([n.e(532),n.e(7875)]).then(n.bind(n,8653)),"@site/docs/extras/dap/nlua.md",8653],"3d779113":[()=>Promise.all([n.e(532),n.e(7374)]).then(n.bind(n,9095)),"@site/docs/extras/editor/mini-move.md",9095],"3e5dfa0f":[()=>Promise.all([n.e(532),n.e(6609)]).then(n.bind(n,6045)),"@site/docs/extras/editor/snacks_picker.md",6045],"420dc8cc":[()=>Promise.all([n.e(532),n.e(3719)]).then(n.bind(n,4806)),"@site/docs/extras/editor/navic.md",4806],"468753df":[()=>Promise.all([n.e(532),n.e(9898)]).then(n.bind(n,5025)),"@site/docs/extras/editor/snacks_explorer.md",5025],"49928ac3":[()=>Promise.all([n.e(532),n.e(2147)]).then(n.bind(n,5564)),"@site/docs/extras/lang/ocaml.md",5564],"49dfcdce":[()=>Promise.all([n.e(532),n.e(1220)]).then(n.bind(n,6128)),"@site/docs/extras/formatting/biome.md",6128],"49e39c69":[()=>Promise.all([n.e(532),n.e(2393)]).then(n.bind(n,3391)),"@site/docs/extras/lang/cmake.md",3391],"4a588e30":[()=>n.e(767).then(n.bind(n,4998)),"@site/docs/configuration/plugins.md",4998],"4b6e5af7":[()=>Promise.all([n.e(532),n.e(7780)]).then(n.bind(n,7331)),"@site/docs/extras/dap/core.md",7331],"4e954c8e":[()=>Promise.all([n.e(532),n.e(4747)]).then(n.bind(n,4175)),"@site/docs/extras/ui/alpha.md",4175],"5160bd2b":[()=>Promise.all([n.e(532),n.e(4974)]).then(n.bind(n,3196)),"@site/docs/extras/ai/copilot-chat.md",3196],"524b705f":[()=>Promise.all([n.e(532),n.e(3247)]).then(n.bind(n,4597)),"@site/docs/extras/lang/tex.md",4597],"53c65431":[()=>Promise.all([n.e(532),n.e(1494)]).then(n.bind(n,225)),"@site/docs/extras/util/project.md",225],"5566dcf8":[()=>Promise.all([n.e(532),n.e(3213)]).then(n.bind(n,5133)),"@site/docs/extras/formatting/black.md",5133],"595ac6db":[()=>Promise.all([n.e(532),n.e(6598)]).then(n.bind(n,9361)),"@site/docs/extras/lang/vue.md",9361],"59876f77":[()=>Promise.all([n.e(532),n.e(4136)]).then(n.bind(n,6568)),"@site/docs/extras/lsp/none-ls.md",6568],"59b8077e":[()=>Promise.all([n.e(532),n.e(6592)]).then(n.bind(n,5790)),"@site/docs/extras/coding/nvim-cmp.md",5790],"5a36f5e4":[()=>n.e(6553).then(n.t.bind(n,3769,19)),"/home/runner/work/lazyvim.github.io/lazyvim.github.io/.docusaurus/docusaurus-plugin-content-docs/default/plugin-route-context-module-100.json",3769],"5c89b5ec":[()=>Promise.all([n.e(532),n.e(284)]).then(n.bind(n,5859)),"@site/docs/extras/lang/astro.md",5859],"5d2425ed":[()=>Promise.all([n.e(532),n.e(3607)]).then(n.bind(n,4481)),"@site/docs/extras/util/dot.md",4481],"5dd77795":[()=>Promise.all([n.e(532),n.e(8656)]).then(n.bind(n,6348)),"@site/docs/extras/lang/json.md",6348],"5e1fbf1d":[()=>Promise.all([n.e(532),n.e(9983)]).then(n.bind(n,4965)),"@site/docs/plugins/treesitter.md",4965],"5ef416c9":[()=>n.e(1159).then(n.bind(n,1864)),"@site/docs/configuration/recipes.md",1864],"60620e7a":[()=>Promise.all([n.e(532),n.e(5892)]).then(n.bind(n,6933)),"@site/docs/extras/coding/mini-surround.md",6933],"60f466ed":[()=>Promise.all([n.e(532),n.e(190)]).then(n.bind(n,9380)),"@site/docs/extras/editor/refactoring.md",9380],"63e110b2":[()=>Promise.all([n.e(532),n.e(2364)]).then(n.bind(n,5996)),"@site/docs/extras/lang/toml.md",5996],"668a8ee6":[()=>Promise.all([n.e(532),n.e(513)]).then(n.bind(n,5877)),"@site/docs/extras/editor/aerial.md",5877],"6752c00e":[()=>Promise.all([n.e(532),n.e(1654)]).then(n.bind(n,4527)),"@site/docs/extras/coding/neogen.md",4527],"67dd85c5":[()=>Promise.all([n.e(532),n.e(7897)]).then(n.bind(n,5293)),"@site/docs/plugins/coding.md",5293],"692732b7":[()=>Promise.all([n.e(532),n.e(2298)]).then(n.bind(n,4381)),"@site/docs/extras/lang/twig.md",4381],"6ad48da5":[()=>Promise.all([n.e(532),n.e(2886)]).then(n.bind(n,773)),"@site/docs/extras/lang/erlang.md",773],"6b133371":[()=>Promise.all([n.e(532),n.e(4869)]).then(n.bind(n,7386)),"@site/docs/extras/ai/avante.md",7386],"7454edaa":[()=>Promise.all([n.e(532),n.e(3054)]).then(n.bind(n,6335)),"@site/docs/extras/lang/scala.md",6335],"74c5fc19":[()=>Promise.all([n.e(532),n.e(8612)]).then(n.bind(n,7007)),"@site/docs/extras/lang/typescript.md",7007],"769b26d9":[()=>Promise.all([n.e(532),n.e(1969)]).then(n.bind(n,1452)),"@site/docs/extras/lang/rust.md",1452],"77467bf2":[()=>Promise.all([n.e(532),n.e(5169)]).then(n.bind(n,474)),"@site/docs/extras/lang/solidity.md",474],77762066:[()=>n.e(1358).then(n.bind(n,7536)),"@site/docs/configuration/keymaps.md",7536],"77eac538":[()=>Promise.all([n.e(532),n.e(4467)]).then(n.bind(n,7245)),"@site/docs/extras/lang/elm.md",7245],"7bd194f7":[()=>Promise.all([n.e(532),n.e(2293)]).then(n.bind(n,4153)),"@site/docs/extras/lang/angular.md",4153],"7d779db9":[()=>Promise.all([n.e(532),n.e(5521)]).then(n.bind(n,1482)),"@site/docs/extras/lang/python.md",1482],"7e44cc6a":[()=>Promise.all([n.e(532),n.e(7152)]).then(n.bind(n,2395)),"@site/docs/extras/util/startuptime.md",2395],"8001b023":[()=>Promise.all([n.e(532),n.e(6857)]).then(n.bind(n,7382)),"@site/docs/extras/editor/illuminate.md",7382],"835d9726":[()=>Promise.all([n.e(532),n.e(6265)]).then(n.bind(n,8004)),"@site/docs/extras/ui/mini-animate.md",8004],"840ee53e":[()=>Promise.all([n.e(532),n.e(1432)]).then(n.bind(n,5179)),"@site/docs/extras/ui/dashboard-nvim.md",5179],"8599c685":[()=>Promise.all([n.e(532),n.e(5819)]).then(n.bind(n,3549)),"@site/docs/extras/linting/eslint.md",3549],"8b3d7d9d":[()=>Promise.all([n.e(532),n.e(2171)]).then(n.bind(n,1601)),"@site/docs/extras/ui/treesitter-context.md",1601],"8b52b704":[()=>Promise.all([n.e(532),n.e(5341)]).then(n.bind(n,6705)),"@site/docs/extras/util/octo.md",6705],"8e97e177":[()=>Promise.all([n.e(532),n.e(7441)]).then(n.bind(n,339)),"@site/docs/extras/editor/leap.md",339],"8fb7ed7a":[()=>Promise.all([n.e(532),n.e(8497)]).then(n.bind(n,2523)),"@site/docs/extras/editor/telescope.md",2523],"935f2afb":[()=>n.e(53).then(n.t.bind(n,1109,19)),"~docs/default/version-current-metadata-prop-751.json",1109],"94b8409a":[()=>Promise.all([n.e(532),n.e(5283)]).then(n.bind(n,1136)),"@site/docs/extras/lang/r.md",1136],"959a4fbd":[()=>Promise.all([n.e(532),n.e(1155)]).then(n.bind(n,6177)),"@site/docs/extras/lang/nushell.md",6177],"9d14ed18":[()=>Promise.all([n.e(532),n.e(3004)]).then(n.bind(n,817)),"@site/docs/extras/lang/terraform.md",817],"9dcfab8d":[()=>Promise.all([n.e(532),n.e(8116)]).then(n.bind(n,7969)),"@site/docs/extras/ai/sidekick.md",7969],"9f78a83b":[()=>Promise.all([n.e(532),n.e(3747)]).then(n.bind(n,1513)),"@site/docs/plugins/util.md",1513],a34fa16d:[()=>Promise.all([n.e(532),n.e(7928)]).then(n.bind(n,965)),"@site/docs/plugins/lsp.md",965],a3c0e8b3:[()=>Promise.all([n.e(532),n.e(8769)]).then(n.bind(n,1354)),"@site/docs/extras/lang/clangd.md",1354],a4db065b:[()=>Promise.all([n.e(532),n.e(3559)]).then(n.bind(n,294)),"@site/docs/extras/lang/docker.md",294],a4dc063a:[()=>Promise.all([n.e(532),n.e(2042)]).then(n.bind(n,3606)),"@site/docs/extras/util/mini-hipatterns.md",3606],a506056f:[()=>Promise.all([n.e(532),n.e(7934)]).then(n.bind(n,6946)),"@site/docs/extras/editor/mini-files.md",6946],aa0b7b62:[()=>Promise.all([n.e(532),n.e(966)]).then(n.bind(n,4823)),"@site/docs/extras/lsp/neoconf.md",4823],aa4a0c26:[()=>Promise.all([n.e(532),n.e(751)]).then(n.bind(n,3155)),"@site/docs/extras/ai/copilot.md",3155],abb3b3ca:[()=>Promise.all([n.e(532),n.e(5050)]).then(n.bind(n,3973)),"@site/docs/extras/editor/harpoon2.md",3973],ac945390:[()=>Promise.all([n.e(532),n.e(1204)]).then(n.bind(n,1349)),"@site/docs/extras/vscode.md",1349],ae7dceba:[()=>Promise.all([n.e(532),n.e(5390)]).then(n.bind(n,6033)),"@site/docs/extras/lang/markdown.md",6033],af437caf:[()=>Promise.all([n.e(532),n.e(5200)]).then(n.bind(n,9043)),"@site/docs/extras/lang/sql.md",9043],af680c62:[()=>Promise.all([n.e(532),n.e(5656)]).then(n.bind(n,5022)),"@site/docs/extras/ui/mini-indentscope.md",5022],b0d9a7a2:[()=>Promise.all([n.e(532),n.e(2374)]).then(n.bind(n,8330)),"@site/docs/extras/lang/nix.md",8330],b3dc818c:[()=>Promise.all([n.e(532),n.e(2228)]).then(n.bind(n,5478)),"@site/docs/extras/coding/blink.md",5478],b3f422e6:[()=>n.e(873).then(n.t.bind(n,2776,19)),"/home/runner/work/lazyvim.github.io/lazyvim.github.io/.docusaurus/@easyops-cn/docusaurus-search-local/default/plugin-route-context-module-100.json",2776],b51453b7:[()=>Promise.all([n.e(532),n.e(2121)]).then(n.bind(n,1733)),"@site/docs/extras/editor/fzf.md",1733],b844f9a6:[()=>Promise.all([n.e(532),n.e(5149)]).then(n.bind(n,7042)),"@site/docs/extras/lang/ansible.md",7042],ba3904a1:[()=>Promise.all([n.e(532),n.e(9603)]).then(n.bind(n,961)),"@site/docs/extras/lang/php.md",961],bb9c283f:[()=>Promise.all([n.e(532),n.e(7615)]).then(n.bind(n,8634)),"@site/docs/extras/lang/gleam.md",8634],bdfc8fa0:[()=>Promise.all([n.e(532),n.e(1139)]).then(n.bind(n,1539)),"@site/docs/extras/lang/ember.md",1539],bf13ef1f:[()=>Promise.all([n.e(532),n.e(867)]).then(n.bind(n,7773)),"@site/docs/extras/lang/tailwind.md",7773],c10f7a0f:[()=>n.e(9876).then(n.bind(n,2112)),"@site/docs/extras/index.md",2112],c5292878:[()=>Promise.all([n.e(532),n.e(9536)]).then(n.bind(n,623)),"@site/docs/extras/ui/edgy.md",623],c65f0b57:[()=>Promise.all([n.e(532),n.e(5443)]).then(n.bind(n,1245)),"@site/docs/extras/lang/dotnet.md",1245],cb39b597:[()=>Promise.all([n.e(532),n.e(9787)]).then(n.bind(n,1286)),"@site/docs/extras/lang/yaml.md",1286],cb7b2066:[()=>Promise.all([n.e(532),n.e(3729)]).then(n.bind(n,3222)),"@site/docs/extras/coding/luasnip.md",3222],ce2c62c8:[()=>Promise.all([n.e(532),n.e(4412)]).then(n.bind(n,2651)),"@site/docs/extras/ai/tabnine.md",2651],d2c17782:[()=>Promise.all([n.e(532),n.e(5831)]).then(n.bind(n,946)),"@site/docs/extras/util/gitui.md",946],d5ec2c0d:[()=>Promise.all([n.e(532),n.e(3503)]).then(n.bind(n,7632)),"@site/docs/extras/formatting/prettier.md",7632],d662f31a:[()=>n.e(277).then(n.bind(n,6214)),"@site/docs/configuration/lazy.nvim.md",6214],d71b907f:[()=>Promise.all([n.e(532),n.e(1334)]).then(n.bind(n,6309)),"@site/docs/plugins/colorscheme.md",6309],d7a63d69:[()=>Promise.all([n.e(532),n.e(1676)]).then(n.bind(n,8206)),"@site/docs/extras/lang/typst.md",8206],d82605b2:[()=>Promise.all([n.e(532),n.e(6859)]).then(n.bind(n,4032)),"@site/docs/extras/ai/codeium.md",4032],dc4714d3:[()=>Promise.all([n.e(532),n.e(7570)]).then(n.bind(n,8490)),"@site/docs/extras/lang/dart.md",8490],dfa76d84:[()=>Promise.all([n.e(532),n.e(125)]).then(n.bind(n,2323)),"@site/docs/extras/editor/outline.md",2323],e01fff5b:[()=>Promise.all([n.e(532),n.e(2)]).then(n.bind(n,5758)),"@site/docs/extras/util/rest.md",5758],e2039070:[()=>Promise.all([n.e(532),n.e(3251)]).then(n.bind(n,1658)),"@site/docs/extras/editor/neo-tree.md",1658],e21da259:[()=>Promise.all([n.e(532),n.e(9501)]).then(n.bind(n,2126)),"@site/docs/extras/test/core.md",2126],e297f6d7:[()=>Promise.all([n.e(532),n.e(8227)]).then(n.bind(n,7362)),"@site/docs/extras/editor/overseer.md",7362],e99c3aef:[()=>Promise.all([n.e(532),n.e(5150)]).then(n.bind(n,6897)),"@site/docs/plugins/editor.md",6897],ed7583a2:[()=>Promise.all([n.e(532),n.e(1993)]).then(n.bind(n,9482)),"@site/docs/extras/lang/java.md",9482],edecbfbe:[()=>Promise.all([n.e(532),n.e(9454)]).then(n.bind(n,2385)),"@site/docs/plugins/ui.md",2385],ee0aead6:[()=>Promise.all([n.e(532),n.e(543)]).then(n.bind(n,6281)),"@site/docs/extras/ai/supermaven.md",6281],f3921946:[()=>Promise.all([n.e(532),n.e(5897)]).then(n.bind(n,1759)),"@site/docs/extras/ui/smear-cursor.md",1759],f439c73a:[()=>Promise.all([n.e(532),n.e(1478)]).then(n.bind(n,6947)),"@site/docs/extras/lang/go.md",6947],f4d155c3:[()=>Promise.all([n.e(532),n.e(43)]).then(n.bind(n,2740)),"@site/docs/plugins/formatting.md",2740],f6d78023:[()=>n.e(9016).then(n.bind(n,6926)),"@site/docs/configuration/index.md",6926],f7be6569:[()=>Promise.all([n.e(532),n.e(432)]).then(n.bind(n,8346)),"@site/docs/extras/lang/elixir.md",8346],fba121fb:[()=>n.e(9213).then(n.bind(n,8089)),"@site/docs/configuration/tips.md",8089],ff0044c8:[()=>Promise.all([n.e(532),n.e(645)]).then(n.bind(n,2284)),"@site/docs/extras/editor/mini-diff.md",2284]};function u(e){let{error:t,retry:n,pastDelay:a}=e;return t?r.createElement("div",{style:{textAlign:"center",color:"#fff",backgroundColor:"#fa383e",borderColor:"#fa383e",borderStyle:"solid",borderRadius:"0.25rem",borderWidth:"1px",boxSizing:"border-box",display:"block",padding:"1rem",flex:"0 0 50%",marginLeft:"25%",marginRight:"25%",marginTop:"5rem",maxWidth:"50%",width:"100%"}},r.createElement("p",null,String(t)),r.createElement("div",null,r.createElement("button",{type:"button",onClick:n},"Retry"))):a?r.createElement("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",height:"100vh"}},r.createElement("svg",{id:"loader",style:{width:128,height:110,position:"absolute",top:"calc(100vh - 64%)"},viewBox:"0 0 45 45",xmlns:"http://www.w3.org/2000/svg",stroke:"#61dafb"},r.createElement("g",{fill:"none",fillRule:"evenodd",transform:"translate(1 1)",strokeWidth:"2"},r.createElement("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0"},r.createElement("animate",{attributeName:"r",begin:"1.5s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-opacity",begin:"1.5s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-width",begin:"1.5s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})),r.createElement("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0"},r.createElement("animate",{attributeName:"r",begin:"3s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-opacity",begin:"3s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-width",begin:"3s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})),r.createElement("circle",{cx:"22",cy:"22",r:"8"},r.createElement("animate",{attributeName:"r",begin:"0s",dur:"1.5s",values:"6;1;2;3;4;5;6",calcMode:"linear",repeatCount:"indefinite"}))))):null}var c=n(9670),d=n(226);function p(e,t){if("*"===e)return o()({loading:u,loader:()=>n.e(4972).then(n.bind(n,4972)),modules:["@theme/NotFound"],webpack:()=>[4972],render(e,t){const n=e.default;return r.createElement(d.z,{value:{plugin:{name:"native",id:"default"}}},r.createElement(n,t))}});const i=s[`${e}-${t}`],p={},f=[],m=[],h=(0,c.Z)(i);return Object.entries(h).forEach((e=>{let[t,n]=e;const r=l[n];r&&(p[t]=r[0],f.push(r[1]),m.push(r[2]))})),o().Map({loading:u,loader:p,modules:f,webpack:()=>m,render(t,n){const o=JSON.parse(JSON.stringify(i));Object.entries(t).forEach((t=>{let[n,r]=t;const a=r.default;if(!a)throw new Error(`The page component at ${e} doesn't have a default export. This makes it impossible to render anything. Consider default-exporting a React component.`);"object"!=typeof a&&"function"!=typeof a||Object.keys(r).filter((e=>"default"!==e)).forEach((e=>{a[e]=r[e]}));let i=o;const s=n.split(".");s.slice(0,-1).forEach((e=>{i=i[e]})),i[s[s.length-1]]=a}));const s=o.__comp;delete o.__comp;const l=o.__context;return delete o.__context,r.createElement(d.z,{value:l},r.createElement(s,(0,a.Z)({},o,n)))}})}const f=[{path:"/search",component:p("/search","3ae"),exact:!0},{path:"/",component:p("/","af1"),routes:[{path:"/",component:p("/","96c"),exact:!0,sidebar:"tutorialSidebar"},{path:"/configuration",component:p("/configuration","a05"),exact:!0,sidebar:"tutorialSidebar"},{path:"/configuration/examples",component:p("/configuration/examples","f5e"),exact:!0,sidebar:"tutorialSidebar"},{path:"/configuration/general",component:p("/configuration/general","60c"),exact:!0,sidebar:"tutorialSidebar"},{path:"/configuration/keymaps",component:p("/configuration/keymaps","282"),exact:!0,sidebar:"tutorialSidebar"},{path:"/configuration/lazy.nvim",component:p("/configuration/lazy.nvim","5f1"),exact:!0,sidebar:"tutorialSidebar"},{path:"/configuration/plugins",component:p("/configuration/plugins","18b"),exact:!0,sidebar:"tutorialSidebar"},{path:"/configuration/recipes",component:p("/configuration/recipes","b46"),exact:!0,sidebar:"tutorialSidebar"},{path:"/configuration/tips",component:p("/configuration/tips","67c"),exact:!0,sidebar:"tutorialSidebar"},{path:"/extras",component:p("/extras","d7c"),exact:!0,sidebar:"tutorialSidebar"},{path:"/extras/ai/avante",component:p("/extras/ai/avante","880"),exact:!0,sidebar:"tutorialSidebar"},{path:"/extras/ai/claudecode",component:p("/extras/ai/claudecode","661"),exact:!0,sidebar:"tutorialSidebar"},{path:"/extras/ai/codeium",component:p("/extras/ai/codeium","fda"),exact:!0,sidebar:"tutorialSidebar"},{path:"/extras/ai/copilot",component:p("/extras/ai/copilot","9c8"),exact:!0,sidebar:"tutorialSidebar"},{path:"/extras/ai/copilot-chat",component:p("/extras/ai/copilot-chat","5d4"),exact:!0,sidebar:"tutorialSidebar"},{path:"/extras/ai/copilot-native",component:p("/extras/ai/copilot-native","74a"),exact:!0,sidebar:"tutorialSidebar"},{path:"/extras/ai/sidekick",component:p("/extras/ai/sidekick","eed"),exact:!0,sidebar:"tutorialSidebar"},{path:"/extras/ai/supermaven",component:p("/extras/ai/supermaven","a7c"),exact:!0,sidebar:"tutorialSidebar"},{path:"/extras/ai/tabnine",component:p("/extras/ai/tabnine","781"),exact:!0,sidebar:"tutorialSidebar"},{path:"/extras/coding/blink",component:p("/extras/coding/blink","6d1"),exact:!0,sidebar:"tutorialSidebar"},{path:"/extras/coding/luasnip",component:p("/extras/coding/luasnip","9e6"),exact:!0,sidebar:"tutorialSidebar"},{path:"/extras/coding/mini-comment",component:p("/extras/coding/mini-comment","6c7"),exact:!0,sidebar:"tutorialSidebar"},{path:"/extras/coding/mini-snippets",component:p("/extras/coding/mini-snippets","c69"),exact:!0,sidebar:"tutorialSidebar"},{path:"/extras/coding/mini-surround",component:p("/extras/coding/mini-surround","c11"),exact:!0,sidebar:"tutorialSidebar"},{path:"/extras/coding/neogen",component:p("/extras/coding/neogen","340"),exact:!0,sidebar:"tutorialSidebar"},{path:"/extras/coding/nvim-cmp",component:p("/extras/coding/nvim-cmp","d86"),exact:!0,sidebar:"tutorialSidebar"},{path:"/extras/coding/yanky",component:p("/extras/coding/yanky","e61"),exact:!0,sidebar:"tutorialSidebar"},{path:"/extras/dap/core",component:p("/extras/dap/core","1cf"),exact:!0,sidebar:"tutorialSidebar"},{path:"/extras/dap/nlua",component:p("/extras/dap/nlua","acf"),exact:!0,sidebar:"tutorialSidebar"},{path:"/extras/editor/aerial",component:p("/extras/editor/aerial","7a1"),exact:!0,sidebar:"tutorialSidebar"},{path:"/extras/editor/dial",component:p("/extras/editor/dial","6e2"),exact:!0,sidebar:"tutorialSidebar"},{path:"/extras/editor/fzf",component:p("/extras/editor/fzf","b62"),exact:!0,sidebar:"tutorialSidebar"},{path:"/extras/editor/harpoon2",component:p("/extras/editor/harpoon2","ca0"),exact:!0,sidebar:"tutorialSidebar"},{path:"/extras/editor/illuminate",component:p("/extras/editor/illuminate","8c2"),exact:!0,sidebar:"tutorialSidebar"},{path:"/extras/editor/inc-rename",component:p("/extras/editor/inc-rename","5b3"),exact:!0,sidebar:"tutorialSidebar"},{path:"/extras/editor/leap",component:p("/extras/editor/leap","816"),exact:!0,sidebar:"tutorialSidebar"},{path:"/extras/editor/mini-diff",component:p("/extras/editor/mini-diff","79c"),exact:!0,sidebar:"tutorialSidebar"},{path:"/extras/editor/mini-files",component:p("/extras/editor/mini-files","900"),exact:!0,sidebar:"tutorialSidebar"},{path:"/extras/editor/mini-move",component:p("/extras/editor/mini-move","56d"),exact:!0,sidebar:"tutorialSidebar"},{path:"/extras/editor/navic",component:p("/extras/editor/navic","71d"),exact:!0,sidebar:"tutorialSidebar"},{path:"/extras/editor/neo-tree",component:p("/extras/editor/neo-tree","a11"),exact:!0,sidebar:"tutorialSidebar"},{path:"/extras/editor/outline",component:p("/extras/editor/outline","efb"),exact:!0,sidebar:"tutorialSidebar"},{path:"/extras/editor/overseer",component:p("/extras/editor/overseer","dbb"),exact:!0,sidebar:"tutorialSidebar"},{path:"/extras/editor/refactoring",component:p("/extras/editor/refactoring","413"),exact:!0,sidebar:"tutorialSidebar"},{path:"/extras/editor/snacks_explorer",component:p("/extras/editor/snacks_explorer","3dd"),exact:!0,sidebar:"tutorialSidebar"},{path:"/extras/editor/snacks_picker",component:p("/extras/editor/snacks_picker","666"),exact:!0,sidebar:"tutorialSidebar"},{path:"/extras/editor/telescope",component:p("/extras/editor/telescope","68f"),exact:!0,sidebar:"tutorialSidebar"},{path:"/extras/formatting/biome",component:p("/extras/formatting/biome","2de"),exact:!0,sidebar:"tutorialSidebar"},{path:"/extras/formatting/black",component:p("/extras/formatting/black","6d1"),exact:!0,sidebar:"tutorialSidebar"},{path:"/extras/formatting/prettier",component:p("/extras/formatting/prettier","aee"),exact:!0,sidebar:"tutorialSidebar"},{path:"/extras/lang/angular",component:p("/extras/lang/angular","aa9"),exact:!0,sidebar:"tutorialSidebar"},{path:"/extras/lang/ansible",component:p("/extras/lang/ansible","9b0"),exact:!0,sidebar:"tutorialSidebar"},{path:"/extras/lang/astro",component:p("/extras/lang/astro","5cd"),exact:!0,sidebar:"tutorialSidebar"},{path:"/extras/lang/clangd",component:p("/extras/lang/clangd","6c1"),exact:!0,sidebar:"tutorialSidebar"},{path:"/extras/lang/clojure",component:p("/extras/lang/clojure","7d1"),exact:!0,sidebar:"tutorialSidebar"},{path:"/extras/lang/cmake",component:p("/extras/lang/cmake","ada"),exact:!0,sidebar:"tutorialSidebar"},{path:"/extras/lang/dart",component:p("/extras/lang/dart","224"),exact:!0,sidebar:"tutorialSidebar"},{path:"/extras/lang/docker",component:p("/extras/lang/docker","214"),exact:!0,sidebar:"tutorialSidebar"},{path:"/extras/lang/dotnet",component:p("/extras/lang/dotnet","631"),exact:!0,sidebar:"tutorialSidebar"},{path:"/extras/lang/elixir",component:p("/extras/lang/elixir","9e3"),exact:!0,sidebar:"tutorialSidebar"},{path:"/extras/lang/elm",component:p("/extras/lang/elm","1d0"),exact:!0,sidebar:"tutorialSidebar"},{path:"/extras/lang/ember",component:p("/extras/lang/ember","0f8"),exact:!0,sidebar:"tutorialSidebar"},{path:"/extras/lang/erlang",component:p("/extras/lang/erlang","3fe"),exact:!0,sidebar:"tutorialSidebar"},{path:"/extras/lang/git",component:p("/extras/lang/git","2bd"),exact:!0,sidebar:"tutorialSidebar"},{path:"/extras/lang/gleam",component:p("/extras/lang/gleam","402"),exact:!0,sidebar:"tutorialSidebar"},{path:"/extras/lang/go",component:p("/extras/lang/go","4f2"),exact:!0,sidebar:"tutorialSidebar"},{path:"/extras/lang/haskell",component:p("/extras/lang/haskell","050"),exact:!0,sidebar:"tutorialSidebar"},{path:"/extras/lang/helm",component:p("/extras/lang/helm","7a0"),exact:!0,sidebar:"tutorialSidebar"},{path:"/extras/lang/java",component:p("/extras/lang/java","9fd"),exact:!0,sidebar:"tutorialSidebar"},{path:"/extras/lang/json",component:p("/extras/lang/json","04d"),exact:!0,sidebar:"tutorialSidebar"},{path:"/extras/lang/julia",component:p("/extras/lang/julia","645"),exact:!0,sidebar:"tutorialSidebar"},{path:"/extras/lang/kotlin",component:p("/extras/lang/kotlin","464"),exact:!0,sidebar:"tutorialSidebar"},{path:"/extras/lang/lean",component:p("/extras/lang/lean","6c8"),exact:!0,sidebar:"tutorialSidebar"},{path:"/extras/lang/markdown",component:p("/extras/lang/markdown","a6f"),exact:!0,sidebar:"tutorialSidebar"},{path:"/extras/lang/nix",component:p("/extras/lang/nix","9a3"),exact:!0,sidebar:"tutorialSidebar"},{path:"/extras/lang/nushell",component:p("/extras/lang/nushell","bfc"),exact:!0,sidebar:"tutorialSidebar"},{path:"/extras/lang/ocaml",component:p("/extras/lang/ocaml","565"),exact:!0,sidebar:"tutorialSidebar"},{path:"/extras/lang/php",component:p("/extras/lang/php","d4c"),exact:!0,sidebar:"tutorialSidebar"},{path:"/extras/lang/prisma",component:p("/extras/lang/prisma","3b9"),exact:!0,sidebar:"tutorialSidebar"},{path:"/extras/lang/python",component:p("/extras/lang/python","bed"),exact:!0,sidebar:"tutorialSidebar"},{path:"/extras/lang/r",component:p("/extras/lang/r","524"),exact:!0,sidebar:"tutorialSidebar"},{path:"/extras/lang/rego",component:p("/extras/lang/rego","87f"),exact:!0,sidebar:"tutorialSidebar"},{path:"/extras/lang/ruby",component:p("/extras/lang/ruby","154"),exact:!0,sidebar:"tutorialSidebar"},{path:"/extras/lang/rust",component:p("/extras/lang/rust","dca"),exact:!0,sidebar:"tutorialSidebar"},{path:"/extras/lang/scala",component:p("/extras/lang/scala","a65"),exact:!0,sidebar:"tutorialSidebar"},{path:"/extras/lang/solidity",component:p("/extras/lang/solidity","3f6"),exact:!0,sidebar:"tutorialSidebar"},{path:"/extras/lang/sql",component:p("/extras/lang/sql","b43"),exact:!0,sidebar:"tutorialSidebar"},{path:"/extras/lang/svelte",component:p("/extras/lang/svelte","cb6"),exact:!0,sidebar:"tutorialSidebar"},{path:"/extras/lang/tailwind",component:p("/extras/lang/tailwind","58c"),exact:!0,sidebar:"tutorialSidebar"},{path:"/extras/lang/terraform",component:p("/extras/lang/terraform","dc1"),exact:!0,sidebar:"tutorialSidebar"},{path:"/extras/lang/tex",component:p("/extras/lang/tex","a78"),exact:!0,sidebar:"tutorialSidebar"},{path:"/extras/lang/thrift",component:p("/extras/lang/thrift","605"),exact:!0,sidebar:"tutorialSidebar"},{path:"/extras/lang/toml",component:p("/extras/lang/toml","f3f"),exact:!0,sidebar:"tutorialSidebar"},{path:"/extras/lang/twig",component:p("/extras/lang/twig","673"),exact:!0,sidebar:"tutorialSidebar"},{path:"/extras/lang/typescript",component:p("/extras/lang/typescript","39e"),exact:!0,sidebar:"tutorialSidebar"},{path:"/extras/lang/typst",component:p("/extras/lang/typst","aff"),exact:!0,sidebar:"tutorialSidebar"},{path:"/extras/lang/vue",component:p("/extras/lang/vue","321"),exact:!0,sidebar:"tutorialSidebar"},{path:"/extras/lang/yaml",component:p("/extras/lang/yaml","8a4"),exact:!0,sidebar:"tutorialSidebar"},{path:"/extras/lang/zig",component:p("/extras/lang/zig","66c"),exact:!0,sidebar:"tutorialSidebar"},{path:"/extras/linting/eslint",component:p("/extras/linting/eslint","055"),exact:!0,sidebar:"tutorialSidebar"},{path:"/extras/lsp/neoconf",component:p("/extras/lsp/neoconf","0c3"),exact:!0,sidebar:"tutorialSidebar"},{path:"/extras/lsp/none-ls",component:p("/extras/lsp/none-ls","b95"),exact:!0,sidebar:"tutorialSidebar"},{path:"/extras/test/core",component:p("/extras/test/core","894"),exact:!0,sidebar:"tutorialSidebar"},{path:"/extras/ui/alpha",component:p("/extras/ui/alpha","9db"),exact:!0,sidebar:"tutorialSidebar"},{path:"/extras/ui/dashboard-nvim",component:p("/extras/ui/dashboard-nvim","f92"),exact:!0,sidebar:"tutorialSidebar"},{path:"/extras/ui/edgy",component:p("/extras/ui/edgy","0e0"),exact:!0,sidebar:"tutorialSidebar"},{path:"/extras/ui/indent-blankline",component:p("/extras/ui/indent-blankline","3c5"),exact:!0,sidebar:"tutorialSidebar"},{path:"/extras/ui/mini-animate",component:p("/extras/ui/mini-animate","fca"),exact:!0,sidebar:"tutorialSidebar"},{path:"/extras/ui/mini-indentscope",component:p("/extras/ui/mini-indentscope","e32"),exact:!0,sidebar:"tutorialSidebar"},{path:"/extras/ui/mini-starter",component:p("/extras/ui/mini-starter","d44"),exact:!0,sidebar:"tutorialSidebar"},{path:"/extras/ui/smear-cursor",component:p("/extras/ui/smear-cursor","ec0"),exact:!0,sidebar:"tutorialSidebar"},{path:"/extras/ui/treesitter-context",component:p("/extras/ui/treesitter-context","192"),exact:!0,sidebar:"tutorialSidebar"},{path:"/extras/util/chezmoi",component:p("/extras/util/chezmoi","fed"),exact:!0,sidebar:"tutorialSidebar"},{path:"/extras/util/dot",component:p("/extras/util/dot","727"),exact:!0,sidebar:"tutorialSidebar"},{path:"/extras/util/gh",component:p("/extras/util/gh","96f"),exact:!0,sidebar:"tutorialSidebar"},{path:"/extras/util/gitui",component:p("/extras/util/gitui","400"),exact:!0,sidebar:"tutorialSidebar"},{path:"/extras/util/mini-hipatterns",component:p("/extras/util/mini-hipatterns","012"),exact:!0,sidebar:"tutorialSidebar"},{path:"/extras/util/octo",component:p("/extras/util/octo","594"),exact:!0,sidebar:"tutorialSidebar"},{path:"/extras/util/project",component:p("/extras/util/project","be1"),exact:!0,sidebar:"tutorialSidebar"},{path:"/extras/util/rest",component:p("/extras/util/rest","7d1"),exact:!0,sidebar:"tutorialSidebar"},{path:"/extras/util/startuptime",component:p("/extras/util/startuptime","a3e"),exact:!0,sidebar:"tutorialSidebar"},{path:"/extras/vscode",component:p("/extras/vscode","5af"),exact:!0,sidebar:"tutorialSidebar"},{path:"/installation",component:p("/installation","2e7"),exact:!0,sidebar:"tutorialSidebar"},{path:"/keymaps",component:p("/keymaps","8f1"),exact:!0,sidebar:"tutorialSidebar"},{path:"/news",component:p("/news","a0e"),exact:!0,sidebar:"tutorialSidebar"},{path:"/plugins",component:p("/plugins","da4"),exact:!0,sidebar:"tutorialSidebar"},{path:"/plugins/coding",component:p("/plugins/coding","c3a"),exact:!0,sidebar:"tutorialSidebar"},{path:"/plugins/colorscheme",component:p("/plugins/colorscheme","c90"),exact:!0,sidebar:"tutorialSidebar"},{path:"/plugins/editor",component:p("/plugins/editor","f88"),exact:!0,sidebar:"tutorialSidebar"},{path:"/plugins/formatting",component:p("/plugins/formatting","978"),exact:!0,sidebar:"tutorialSidebar"},{path:"/plugins/linting",component:p("/plugins/linting","61f"),exact:!0,sidebar:"tutorialSidebar"},{path:"/plugins/lsp",component:p("/plugins/lsp","3c7"),exact:!0,sidebar:"tutorialSidebar"},{path:"/plugins/treesitter",component:p("/plugins/treesitter","2d6"),exact:!0,sidebar:"tutorialSidebar"},{path:"/plugins/ui",component:p("/plugins/ui","dae"),exact:!0,sidebar:"tutorialSidebar"},{path:"/plugins/util",component:p("/plugins/util","f36"),exact:!0,sidebar:"tutorialSidebar"}]},{path:"*",component:p("*")}]},8934:(e,t,n)=>{"use strict";n.d(t,{_:()=>a,t:()=>i});var r=n(7294);const a=r.createContext(!1);function i(e){let{children:t}=e;const[n,i]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{i(!0)}),[]),r.createElement(a.Provider,{value:n},t)}},7221:(e,t,n)=>{"use strict";var r=n(7294),a=n(3935),i=n(3727),o=n(405),s=n(412);const l=[n(2497),n(3310),n(8320),n(2295)];var u=n(723),c=n(6550),d=n(8790);function p(e){let{children:t}=e;return r.createElement(r.Fragment,null,t)}var f=n(7462),m=n(5742),h=n(2263),g=n(4996),b=n(6668),v=n(1944),y=n(4711),x=n(9727),w=n(3320),k=n(8780),S=n(197);function E(){const{i18n:{defaultLocale:e,localeConfigs:t}}=(0,h.Z)(),n=(0,y.l)();return r.createElement(m.Z,null,Object.entries(t).map((e=>{let[t,{htmlLang:a}]=e;return r.createElement("link",{key:t,rel:"alternate",href:n.createUrl({locale:t,fullyQualified:!0}),hrefLang:a})})),r.createElement("link",{rel:"alternate",href:n.createUrl({locale:e,fullyQualified:!0}),hrefLang:"x-default"}))}function _(e){let{permalink:t}=e;const{siteConfig:{url:n}}=(0,h.Z)(),a=function(){const{siteConfig:{url:e,baseUrl:t,trailingSlash:n}}=(0,h.Z)(),{pathname:r}=(0,c.TH)();return e+(0,k.applyTrailingSlash)((0,g.Z)(r),{trailingSlash:n,baseUrl:t})}(),i=t?`${n}${t}`:a;return r.createElement(m.Z,null,r.createElement("meta",{property:"og:url",content:i}),r.createElement("link",{rel:"canonical",href:i}))}function C(){const{i18n:{currentLocale:e}}=(0,h.Z)(),{metadata:t,image:n}=(0,b.L)();return r.createElement(r.Fragment,null,r.createElement(m.Z,null,r.createElement("meta",{name:"twitter:card",content:"summary_large_image"}),r.createElement("body",{className:x.h})),n&&r.createElement(v.d,{image:n}),r.createElement(_,null),r.createElement(E,null),r.createElement(S.Z,{tag:w.HX,locale:e}),r.createElement(m.Z,null,t.map(((e,t)=>r.createElement("meta",(0,f.Z)({key:t},e))))))}const T=new Map;function P(e){if(T.has(e.pathname))return{...e,pathname:T.get(e.pathname)};if((0,d.f)(u.Z,e.pathname).some((e=>{let{route:t}=e;return!0===t.exact})))return T.set(e.pathname,e.pathname),e;const t=e.pathname.trim().replace(/(?:\/index)?\.html$/,"")||"/";return T.set(e.pathname,t),{...e,pathname:t}}var L=n(8934),O=n(8940);function A(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];const a=l.map((t=>(t.default?.[e]??t[e])?.(...n)));return()=>a.forEach((e=>e?.()))}const N=function(e){let{children:t,location:n,previousLocation:a}=e;return(0,r.useLayoutEffect)((()=>{a!==n&&(!function(e){let{location:t,previousLocation:n}=e;if(!n)return;const r=t.pathname===n.pathname,a=t.hash===n.hash,i=t.search===n.search;if(r&&a&&!i)return;const{hash:o}=t;if(o){const e=decodeURIComponent(o.substring(1));document.getElementById(e)?.scrollIntoView()}else window.scrollTo(0,0)}({location:n,previousLocation:a}),A("onRouteDidUpdate",{previousLocation:a,location:n}))}),[a,n]),t};function I(e){const t=Array.from(new Set([e,decodeURI(e)])).map((e=>(0,d.f)(u.Z,e))).flat();return Promise.all(t.map((e=>e.route.component.preload?.())))}class R extends r.Component{previousLocation;routeUpdateCleanupCb;constructor(e){super(e),this.previousLocation=null,this.routeUpdateCleanupCb=s.Z.canUseDOM?A("onRouteUpdate",{previousLocation:null,location:this.props.location}):()=>{},this.state={nextRouteHasLoaded:!0}}shouldComponentUpdate(e,t){if(e.location===this.props.location)return t.nextRouteHasLoaded;const n=e.location;return this.previousLocation=this.props.location,this.setState({nextRouteHasLoaded:!1}),this.routeUpdateCleanupCb=A("onRouteUpdate",{previousLocation:this.previousLocation,location:n}),I(n.pathname).then((()=>{this.routeUpdateCleanupCb(),this.setState({nextRouteHasLoaded:!0})})).catch((e=>{console.warn(e),window.location.reload()})),!1}render(){const{children:e,location:t}=this.props;return r.createElement(N,{previousLocation:this.previousLocation,location:t},r.createElement(c.AW,{location:t,render:()=>e}))}}const D=R,M="__docusaurus-base-url-issue-banner-container",F="__docusaurus-base-url-issue-banner-suggestion-container",B="__DOCUSAURUS_INSERT_BASEURL_BANNER";function z(e){return`\nwindow['${B}'] = true;\n\ndocument.addEventListener('DOMContentLoaded', maybeInsertBanner);\n\nfunction maybeInsertBanner() {\n var shouldInsert = window['${B}'];\n shouldInsert && insertBanner();\n}\n\nfunction insertBanner() {\n var bannerContainer = document.getElementById('${M}');\n if (!bannerContainer) {\n return;\n }\n var bannerHtml = ${JSON.stringify(function(e){return`\n<div id="__docusaurus-base-url-issue-banner" style="border: thick solid red; background-color: rgb(255, 230, 179); margin: 20px; padding: 20px; font-size: 20px;">\n <p style="font-weight: bold; font-size: 30px;">Your Docusaurus site did not load properly.</p>\n <p>A very common reason is a wrong site <a href="https://docusaurus.io/docs/docusaurus.config.js/#baseUrl" style="font-weight: bold;">baseUrl configuration</a>.</p>\n <p>Current configured baseUrl = <span style="font-weight: bold; color: red;">${e}</span> ${"/"===e?" (default value)":""}</p>\n <p>We suggest trying baseUrl = <span id="${F}" style="font-weight: bold; color: green;"></span></p>\n</div>\n`}(e)).replace(/</g,"\\<")};\n bannerContainer.innerHTML = bannerHtml;\n var suggestionContainer = document.getElementById('${F}');\n var actualHomePagePath = window.location.pathname;\n var suggestedBaseUrl = actualHomePagePath.substr(-1) === '/'\n ? actualHomePagePath\n : actualHomePagePath + '/';\n suggestionContainer.innerHTML = suggestedBaseUrl;\n}\n`}function $(){const{siteConfig:{baseUrl:e}}=(0,h.Z)();return(0,r.useLayoutEffect)((()=>{window[B]=!1}),[]),r.createElement(r.Fragment,null,!s.Z.canUseDOM&&r.createElement(m.Z,null,r.createElement("script",null,z(e))),r.createElement("div",{id:M}))}function j(){const{siteConfig:{baseUrl:e,baseUrlIssueBanner:t}}=(0,h.Z)(),{pathname:n}=(0,c.TH)();return t&&n===e?r.createElement($,null):null}function U(){const{siteConfig:{favicon:e,title:t,noIndex:n},i18n:{currentLocale:a,localeConfigs:i}}=(0,h.Z)(),o=(0,g.Z)(e),{htmlLang:s,direction:l}=i[a];return r.createElement(m.Z,null,r.createElement("html",{lang:s,dir:l}),r.createElement("title",null,t),r.createElement("meta",{property:"og:title",content:t}),r.createElement("meta",{name:"viewport",content:"width=device-width, initial-scale=1.0"}),n&&r.createElement("meta",{name:"robots",content:"noindex, nofollow"}),e&&r.createElement("link",{rel:"icon",href:o}))}var H=n(4763),Z=n(2389);function V(){const e=(0,Z.Z)();return r.createElement(m.Z,null,r.createElement("html",{"data-has-hydrated":e}))}function Q(){const e=(0,d.H)(u.Z),t=(0,c.TH)();return r.createElement(H.Z,null,r.createElement(O.M,null,r.createElement(L.t,null,r.createElement(p,null,r.createElement(U,null),r.createElement(C,null),r.createElement(j,null),r.createElement(D,{location:P(t)},e)),r.createElement(V,null))))}var G=n(6887);const W=function(e){try{return document.createElement("link").relList.supports(e)}catch{return!1}}("prefetch")?function(e){return new Promise(((t,n)=>{if("undefined"==typeof document)return void n();const r=document.createElement("link");r.setAttribute("rel","prefetch"),r.setAttribute("href",e),r.onload=()=>t(),r.onerror=()=>n();(document.getElementsByTagName("head")[0]??document.getElementsByName("script")[0]?.parentNode)?.appendChild(r)}))}:function(e){return new Promise(((t,n)=>{const r=new XMLHttpRequest;r.open("GET",e,!0),r.withCredentials=!0,r.onload=()=>{200===r.status?t():n()},r.send(null)}))};var q=n(9670);const Y=new Set,K=new Set,X=()=>navigator.connection?.effectiveType.includes("2g")||navigator.connection?.saveData,J={prefetch(e){if(!(e=>!X()&&!K.has(e)&&!Y.has(e))(e))return!1;Y.add(e);const t=(0,d.f)(u.Z,e).flatMap((e=>{return t=e.route.path,Object.entries(G).filter((e=>{let[n]=e;return n.replace(/-[^-]+$/,"")===t})).flatMap((e=>{let[,t]=e;return Object.values((0,q.Z)(t))}));var t}));return Promise.all(t.map((e=>{const t=n.gca(e);return t&&!t.includes("undefined")?W(t).catch((()=>{})):Promise.resolve()})))},preload:e=>!!(e=>!X()&&!K.has(e))(e)&&(K.add(e),I(e))},ee=Object.freeze(J);if(s.Z.canUseDOM){window.docusaurus=ee;const e=a.hydrate;I(window.location.pathname).then((()=>{e(r.createElement(o.B6,null,r.createElement(i.VK,null,r.createElement(Q,null))),document.getElementById("__docusaurus"))}))}},8940:(e,t,n)=>{"use strict";n.d(t,{_:()=>c,M:()=>d});var r=n(7294),a=n(6809);const i=JSON.parse('{"docusaurus-plugin-content-docs":{"default":{"path":"/","versions":[{"name":"current","label":"Next","isLast":true,"path":"/","mainDocId":"intro","docs":[{"id":"configuration/examples","path":"/configuration/examples","sidebar":"tutorialSidebar"},{"id":"configuration/general","path":"/configuration/general","sidebar":"tutorialSidebar"},{"id":"configuration/index","path":"/configuration/","sidebar":"tutorialSidebar"},{"id":"configuration/keymaps","path":"/configuration/keymaps","sidebar":"tutorialSidebar"},{"id":"configuration/lazy.nvim","path":"/configuration/lazy.nvim","sidebar":"tutorialSidebar"},{"id":"configuration/plugins","path":"/configuration/plugins","sidebar":"tutorialSidebar"},{"id":"configuration/recipes","path":"/configuration/recipes","sidebar":"tutorialSidebar"},{"id":"configuration/tips","path":"/configuration/tips","sidebar":"tutorialSidebar"},{"id":"extras/ai/avante","path":"/extras/ai/avante","sidebar":"tutorialSidebar"},{"id":"extras/ai/claudecode","path":"/extras/ai/claudecode","sidebar":"tutorialSidebar"},{"id":"extras/ai/codeium","path":"/extras/ai/codeium","sidebar":"tutorialSidebar"},{"id":"extras/ai/copilot","path":"/extras/ai/copilot","sidebar":"tutorialSidebar"},{"id":"extras/ai/copilot-chat","path":"/extras/ai/copilot-chat","sidebar":"tutorialSidebar"},{"id":"extras/ai/copilot-native","path":"/extras/ai/copilot-native","sidebar":"tutorialSidebar"},{"id":"extras/ai/sidekick","path":"/extras/ai/sidekick","sidebar":"tutorialSidebar"},{"id":"extras/ai/supermaven","path":"/extras/ai/supermaven","sidebar":"tutorialSidebar"},{"id":"extras/ai/tabnine","path":"/extras/ai/tabnine","sidebar":"tutorialSidebar"},{"id":"extras/coding/blink","path":"/extras/coding/blink","sidebar":"tutorialSidebar"},{"id":"extras/coding/luasnip","path":"/extras/coding/luasnip","sidebar":"tutorialSidebar"},{"id":"extras/coding/mini-comment","path":"/extras/coding/mini-comment","sidebar":"tutorialSidebar"},{"id":"extras/coding/mini-snippets","path":"/extras/coding/mini-snippets","sidebar":"tutorialSidebar"},{"id":"extras/coding/mini-surround","path":"/extras/coding/mini-surround","sidebar":"tutorialSidebar"},{"id":"extras/coding/neogen","path":"/extras/coding/neogen","sidebar":"tutorialSidebar"},{"id":"extras/coding/nvim-cmp","path":"/extras/coding/nvim-cmp","sidebar":"tutorialSidebar"},{"id":"extras/coding/yanky","path":"/extras/coding/yanky","sidebar":"tutorialSidebar"},{"id":"extras/dap/core","path":"/extras/dap/core","sidebar":"tutorialSidebar"},{"id":"extras/dap/nlua","path":"/extras/dap/nlua","sidebar":"tutorialSidebar"},{"id":"extras/editor/aerial","path":"/extras/editor/aerial","sidebar":"tutorialSidebar"},{"id":"extras/editor/dial","path":"/extras/editor/dial","sidebar":"tutorialSidebar"},{"id":"extras/editor/fzf","path":"/extras/editor/fzf","sidebar":"tutorialSidebar"},{"id":"extras/editor/harpoon2","path":"/extras/editor/harpoon2","sidebar":"tutorialSidebar"},{"id":"extras/editor/illuminate","path":"/extras/editor/illuminate","sidebar":"tutorialSidebar"},{"id":"extras/editor/inc-rename","path":"/extras/editor/inc-rename","sidebar":"tutorialSidebar"},{"id":"extras/editor/leap","path":"/extras/editor/leap","sidebar":"tutorialSidebar"},{"id":"extras/editor/mini-diff","path":"/extras/editor/mini-diff","sidebar":"tutorialSidebar"},{"id":"extras/editor/mini-files","path":"/extras/editor/mini-files","sidebar":"tutorialSidebar"},{"id":"extras/editor/mini-move","path":"/extras/editor/mini-move","sidebar":"tutorialSidebar"},{"id":"extras/editor/navic","path":"/extras/editor/navic","sidebar":"tutorialSidebar"},{"id":"extras/editor/neo-tree","path":"/extras/editor/neo-tree","sidebar":"tutorialSidebar"},{"id":"extras/editor/outline","path":"/extras/editor/outline","sidebar":"tutorialSidebar"},{"id":"extras/editor/overseer","path":"/extras/editor/overseer","sidebar":"tutorialSidebar"},{"id":"extras/editor/refactoring","path":"/extras/editor/refactoring","sidebar":"tutorialSidebar"},{"id":"extras/editor/snacks_explorer","path":"/extras/editor/snacks_explorer","sidebar":"tutorialSidebar"},{"id":"extras/editor/snacks_picker","path":"/extras/editor/snacks_picker","sidebar":"tutorialSidebar"},{"id":"extras/editor/telescope","path":"/extras/editor/telescope","sidebar":"tutorialSidebar"},{"id":"extras/formatting/biome","path":"/extras/formatting/biome","sidebar":"tutorialSidebar"},{"id":"extras/formatting/black","path":"/extras/formatting/black","sidebar":"tutorialSidebar"},{"id":"extras/formatting/prettier","path":"/extras/formatting/prettier","sidebar":"tutorialSidebar"},{"id":"extras/index","path":"/extras/","sidebar":"tutorialSidebar"},{"id":"extras/lang/angular","path":"/extras/lang/angular","sidebar":"tutorialSidebar"},{"id":"extras/lang/ansible","path":"/extras/lang/ansible","sidebar":"tutorialSidebar"},{"id":"extras/lang/astro","path":"/extras/lang/astro","sidebar":"tutorialSidebar"},{"id":"extras/lang/clangd","path":"/extras/lang/clangd","sidebar":"tutorialSidebar"},{"id":"extras/lang/clojure","path":"/extras/lang/clojure","sidebar":"tutorialSidebar"},{"id":"extras/lang/cmake","path":"/extras/lang/cmake","sidebar":"tutorialSidebar"},{"id":"extras/lang/dart","path":"/extras/lang/dart","sidebar":"tutorialSidebar"},{"id":"extras/lang/docker","path":"/extras/lang/docker","sidebar":"tutorialSidebar"},{"id":"extras/lang/dotnet","path":"/extras/lang/dotnet","sidebar":"tutorialSidebar"},{"id":"extras/lang/elixir","path":"/extras/lang/elixir","sidebar":"tutorialSidebar"},{"id":"extras/lang/elm","path":"/extras/lang/elm","sidebar":"tutorialSidebar"},{"id":"extras/lang/ember","path":"/extras/lang/ember","sidebar":"tutorialSidebar"},{"id":"extras/lang/erlang","path":"/extras/lang/erlang","sidebar":"tutorialSidebar"},{"id":"extras/lang/git","path":"/extras/lang/git","sidebar":"tutorialSidebar"},{"id":"extras/lang/gleam","path":"/extras/lang/gleam","sidebar":"tutorialSidebar"},{"id":"extras/lang/go","path":"/extras/lang/go","sidebar":"tutorialSidebar"},{"id":"extras/lang/haskell","path":"/extras/lang/haskell","sidebar":"tutorialSidebar"},{"id":"extras/lang/helm","path":"/extras/lang/helm","sidebar":"tutorialSidebar"},{"id":"extras/lang/java","path":"/extras/lang/java","sidebar":"tutorialSidebar"},{"id":"extras/lang/json","path":"/extras/lang/json","sidebar":"tutorialSidebar"},{"id":"extras/lang/julia","path":"/extras/lang/julia","sidebar":"tutorialSidebar"},{"id":"extras/lang/kotlin","path":"/extras/lang/kotlin","sidebar":"tutorialSidebar"},{"id":"extras/lang/lean","path":"/extras/lang/lean","sidebar":"tutorialSidebar"},{"id":"extras/lang/markdown","path":"/extras/lang/markdown","sidebar":"tutorialSidebar"},{"id":"extras/lang/nix","path":"/extras/lang/nix","sidebar":"tutorialSidebar"},{"id":"extras/lang/nushell","path":"/extras/lang/nushell","sidebar":"tutorialSidebar"},{"id":"extras/lang/ocaml","path":"/extras/lang/ocaml","sidebar":"tutorialSidebar"},{"id":"extras/lang/php","path":"/extras/lang/php","sidebar":"tutorialSidebar"},{"id":"extras/lang/prisma","path":"/extras/lang/prisma","sidebar":"tutorialSidebar"},{"id":"extras/lang/python","path":"/extras/lang/python","sidebar":"tutorialSidebar"},{"id":"extras/lang/r","path":"/extras/lang/r","sidebar":"tutorialSidebar"},{"id":"extras/lang/rego","path":"/extras/lang/rego","sidebar":"tutorialSidebar"},{"id":"extras/lang/ruby","path":"/extras/lang/ruby","sidebar":"tutorialSidebar"},{"id":"extras/lang/rust","path":"/extras/lang/rust","sidebar":"tutorialSidebar"},{"id":"extras/lang/scala","path":"/extras/lang/scala","sidebar":"tutorialSidebar"},{"id":"extras/lang/solidity","path":"/extras/lang/solidity","sidebar":"tutorialSidebar"},{"id":"extras/lang/sql","path":"/extras/lang/sql","sidebar":"tutorialSidebar"},{"id":"extras/lang/svelte","path":"/extras/lang/svelte","sidebar":"tutorialSidebar"},{"id":"extras/lang/tailwind","path":"/extras/lang/tailwind","sidebar":"tutorialSidebar"},{"id":"extras/lang/terraform","path":"/extras/lang/terraform","sidebar":"tutorialSidebar"},{"id":"extras/lang/tex","path":"/extras/lang/tex","sidebar":"tutorialSidebar"},{"id":"extras/lang/thrift","path":"/extras/lang/thrift","sidebar":"tutorialSidebar"},{"id":"extras/lang/toml","path":"/extras/lang/toml","sidebar":"tutorialSidebar"},{"id":"extras/lang/twig","path":"/extras/lang/twig","sidebar":"tutorialSidebar"},{"id":"extras/lang/typescript","path":"/extras/lang/typescript","sidebar":"tutorialSidebar"},{"id":"extras/lang/typst","path":"/extras/lang/typst","sidebar":"tutorialSidebar"},{"id":"extras/lang/vue","path":"/extras/lang/vue","sidebar":"tutorialSidebar"},{"id":"extras/lang/yaml","path":"/extras/lang/yaml","sidebar":"tutorialSidebar"},{"id":"extras/lang/zig","path":"/extras/lang/zig","sidebar":"tutorialSidebar"},{"id":"extras/linting/eslint","path":"/extras/linting/eslint","sidebar":"tutorialSidebar"},{"id":"extras/lsp/neoconf","path":"/extras/lsp/neoconf","sidebar":"tutorialSidebar"},{"id":"extras/lsp/none-ls","path":"/extras/lsp/none-ls","sidebar":"tutorialSidebar"},{"id":"extras/test/core","path":"/extras/test/core","sidebar":"tutorialSidebar"},{"id":"extras/ui/alpha","path":"/extras/ui/alpha","sidebar":"tutorialSidebar"},{"id":"extras/ui/dashboard-nvim","path":"/extras/ui/dashboard-nvim","sidebar":"tutorialSidebar"},{"id":"extras/ui/edgy","path":"/extras/ui/edgy","sidebar":"tutorialSidebar"},{"id":"extras/ui/indent-blankline","path":"/extras/ui/indent-blankline","sidebar":"tutorialSidebar"},{"id":"extras/ui/mini-animate","path":"/extras/ui/mini-animate","sidebar":"tutorialSidebar"},{"id":"extras/ui/mini-indentscope","path":"/extras/ui/mini-indentscope","sidebar":"tutorialSidebar"},{"id":"extras/ui/mini-starter","path":"/extras/ui/mini-starter","sidebar":"tutorialSidebar"},{"id":"extras/ui/smear-cursor","path":"/extras/ui/smear-cursor","sidebar":"tutorialSidebar"},{"id":"extras/ui/treesitter-context","path":"/extras/ui/treesitter-context","sidebar":"tutorialSidebar"},{"id":"extras/util/chezmoi","path":"/extras/util/chezmoi","sidebar":"tutorialSidebar"},{"id":"extras/util/dot","path":"/extras/util/dot","sidebar":"tutorialSidebar"},{"id":"extras/util/gh","path":"/extras/util/gh","sidebar":"tutorialSidebar"},{"id":"extras/util/gitui","path":"/extras/util/gitui","sidebar":"tutorialSidebar"},{"id":"extras/util/mini-hipatterns","path":"/extras/util/mini-hipatterns","sidebar":"tutorialSidebar"},{"id":"extras/util/octo","path":"/extras/util/octo","sidebar":"tutorialSidebar"},{"id":"extras/util/project","path":"/extras/util/project","sidebar":"tutorialSidebar"},{"id":"extras/util/rest","path":"/extras/util/rest","sidebar":"tutorialSidebar"},{"id":"extras/util/startuptime","path":"/extras/util/startuptime","sidebar":"tutorialSidebar"},{"id":"extras/vscode","path":"/extras/vscode","sidebar":"tutorialSidebar"},{"id":"installation","path":"/installation","sidebar":"tutorialSidebar"},{"id":"intro","path":"/","sidebar":"tutorialSidebar"},{"id":"keymaps","path":"/keymaps","sidebar":"tutorialSidebar"},{"id":"news","path":"/news","sidebar":"tutorialSidebar"},{"id":"plugins/coding","path":"/plugins/coding","sidebar":"tutorialSidebar"},{"id":"plugins/colorscheme","path":"/plugins/colorscheme","sidebar":"tutorialSidebar"},{"id":"plugins/editor","path":"/plugins/editor","sidebar":"tutorialSidebar"},{"id":"plugins/formatting","path":"/plugins/formatting","sidebar":"tutorialSidebar"},{"id":"plugins/index","path":"/plugins/","sidebar":"tutorialSidebar"},{"id":"plugins/linting","path":"/plugins/linting","sidebar":"tutorialSidebar"},{"id":"plugins/lsp","path":"/plugins/lsp","sidebar":"tutorialSidebar"},{"id":"plugins/treesitter","path":"/plugins/treesitter","sidebar":"tutorialSidebar"},{"id":"plugins/ui","path":"/plugins/ui","sidebar":"tutorialSidebar"},{"id":"plugins/util","path":"/plugins/util","sidebar":"tutorialSidebar"}],"draftIds":[],"sidebars":{"tutorialSidebar":{"link":{"path":"/","label":"intro"}}}}],"breadcrumbs":true}}}'),o=JSON.parse('{"defaultLocale":"en","locales":["en"],"path":"i18n","currentLocale":"en","localeConfigs":{"en":{"label":"English","direction":"ltr","htmlLang":"en","calendar":"gregory","path":"en"}}}');var s=n(7529);const l=JSON.parse('{"docusaurusVersion":"2.4.3","siteVersion":"0.0.0","pluginVersions":{"docusaurus-plugin-content-docs":{"type":"package","name":"@docusaurus/plugin-content-docs","version":"2.4.3"},"docusaurus-plugin-content-pages":{"type":"package","name":"@docusaurus/plugin-content-pages","version":"2.4.3"},"docusaurus-plugin-sitemap":{"type":"package","name":"@docusaurus/plugin-sitemap","version":"2.4.3"},"docusaurus-theme-classic":{"type":"package","name":"@docusaurus/theme-classic","version":"2.4.3"},"@easyops-cn/docusaurus-search-local":{"type":"package","name":"@easyops-cn/docusaurus-search-local","version":"0.33.6"}}}'),u={siteConfig:a.Z,siteMetadata:l,globalData:i,i18n:o,codeTranslations:s},c=r.createContext(u);function d(e){let{children:t}=e;return r.createElement(c.Provider,{value:u},t)}},4763:(e,t,n)=>{"use strict";n.d(t,{Z:()=>p});var r=n(7294),a=n(412),i=n(5742),o=n(8780),s=n(5924);function l(e){let{error:t,tryAgain:n}=e;return r.createElement("div",{style:{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"flex-start",minHeight:"100vh",width:"100%",maxWidth:"80ch",fontSize:"20px",margin:"0 auto",padding:"1rem"}},r.createElement("h1",{style:{fontSize:"3rem"}},"This page crashed"),r.createElement("button",{type:"button",onClick:n,style:{margin:"1rem 0",fontSize:"2rem",cursor:"pointer",borderRadius:20,padding:"1rem"}},"Try again"),r.createElement(u,{error:t}))}function u(e){let{error:t}=e;const n=(0,o.getErrorCausalChain)(t).map((e=>e.message)).join("\n\nCause:\n");return r.createElement("p",{style:{whiteSpace:"pre-wrap"}},n)}function c(e){let{error:t,tryAgain:n}=e;return r.createElement(p,{fallback:()=>r.createElement(l,{error:t,tryAgain:n})},r.createElement(i.Z,null,r.createElement("title",null,"Page Error")),r.createElement(s.Z,null,r.createElement(l,{error:t,tryAgain:n})))}const d=e=>r.createElement(c,e);class p extends r.Component{constructor(e){super(e),this.state={error:null}}componentDidCatch(e){a.Z.canUseDOM&&this.setState({error:e})}render(){const{children:e}=this.props,{error:t}=this.state;if(t){const e={error:t,tryAgain:()=>this.setState({error:null})};return(this.props.fallback??d)(e)}return e??null}}},412:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});const r="undefined"!=typeof window&&"document"in window&&"createElement"in window.document,a={canUseDOM:r,canUseEventListeners:r&&("addEventListener"in window||"attachEvent"in window),canUseIntersectionObserver:r&&"IntersectionObserver"in window,canUseViewport:r&&"screen"in window}},5742:(e,t,n)=>{"use strict";n.d(t,{Z:()=>i});var r=n(7294),a=n(405);function i(e){return r.createElement(a.ql,e)}},9960:(e,t,n)=>{"use strict";n.d(t,{Z:()=>f});var r=n(7462),a=n(7294),i=n(3727),o=n(8780),s=n(2263),l=n(3919),u=n(412);const c=a.createContext({collectLink:()=>{}});var d=n(4996);function p(e,t){let{isNavLink:n,to:p,href:f,activeClassName:m,isActive:h,"data-noBrokenLinkCheck":g,autoAddBaseUrl:b=!0,...v}=e;const{siteConfig:{trailingSlash:y,baseUrl:x}}=(0,s.Z)(),{withBaseUrl:w}=(0,d.C)(),k=(0,a.useContext)(c),S=(0,a.useRef)(null);(0,a.useImperativeHandle)(t,(()=>S.current));const E=p||f;const _=(0,l.Z)(E),C=E?.replace("pathname://","");let T=void 0!==C?(P=C,b&&(e=>e.startsWith("/"))(P)?w(P):P):void 0;var P;T&&_&&(T=(0,o.applyTrailingSlash)(T,{trailingSlash:y,baseUrl:x}));const L=(0,a.useRef)(!1),O=n?i.OL:i.rU,A=u.Z.canUseIntersectionObserver,N=(0,a.useRef)(),I=()=>{L.current||null==T||(window.docusaurus.preload(T),L.current=!0)};(0,a.useEffect)((()=>(!A&&_&&null!=T&&window.docusaurus.prefetch(T),()=>{A&&N.current&&N.current.disconnect()})),[N,T,A,_]);const R=T?.startsWith("#")??!1,D=!T||!_||R;return D||g||k.collectLink(T),D?a.createElement("a",(0,r.Z)({ref:S,href:T},E&&!_&&{target:"_blank",rel:"noopener noreferrer"},v)):a.createElement(O,(0,r.Z)({},v,{onMouseEnter:I,onTouchStart:I,innerRef:e=>{S.current=e,A&&e&&_&&(N.current=new window.IntersectionObserver((t=>{t.forEach((t=>{e===t.target&&(t.isIntersecting||t.intersectionRatio>0)&&(N.current.unobserve(e),N.current.disconnect(),null!=T&&window.docusaurus.prefetch(T))}))})),N.current.observe(e))},to:T},n&&{isActive:h,activeClassName:m}))}const f=a.forwardRef(p)},5999:(e,t,n)=>{"use strict";n.d(t,{Z:()=>l,I:()=>s});var r=n(7294);function a(e,t){const n=e.split(/(\{\w+\})/).map(((e,n)=>{if(n%2==1){const n=t?.[e.slice(1,-1)];if(void 0!==n)return n}return e}));return n.some((e=>(0,r.isValidElement)(e)))?n.map(((e,t)=>(0,r.isValidElement)(e)?r.cloneElement(e,{key:t}):e)).filter((e=>""!==e)):n.join("")}var i=n(7529);function o(e){let{id:t,message:n}=e;if(void 0===t&&void 0===n)throw new Error("Docusaurus translation declarations must have at least a translation id or a default translation message");return i[t??n]??n??t}function s(e,t){let{message:n,id:r}=e;return a(o({message:n,id:r}),t)}function l(e){let{children:t,id:n,values:i}=e;if(t&&"string"!=typeof t)throw console.warn("Illegal <Translate> children",t),new Error("The Docusaurus <Translate> component only accept simple string values");const s=o({message:t,id:n});return r.createElement(r.Fragment,null,a(s,i))}},9935:(e,t,n)=>{"use strict";n.d(t,{m:()=>r});const r="default"},3919:(e,t,n)=>{"use strict";function r(e){return/^(?:\w*:|\/\/)/.test(e)}function a(e){return void 0!==e&&!r(e)}n.d(t,{Z:()=>a,b:()=>r})},4996:(e,t,n)=>{"use strict";n.d(t,{C:()=>o,Z:()=>s});var r=n(7294),a=n(2263),i=n(3919);function o(){const{siteConfig:{baseUrl:e,url:t}}=(0,a.Z)(),n=(0,r.useCallback)(((n,r)=>function(e,t,n,r){let{forcePrependBaseUrl:a=!1,absolute:o=!1}=void 0===r?{}:r;if(!n||n.startsWith("#")||(0,i.b)(n))return n;if(a)return t+n.replace(/^\//,"");if(n===t.replace(/\/$/,""))return t;const s=n.startsWith(t)?n:t+n.replace(/^\//,"");return o?e+s:s}(t,e,n,r)),[t,e]);return{withBaseUrl:n}}function s(e,t){void 0===t&&(t={});const{withBaseUrl:n}=o();return n(e,t)}},2263:(e,t,n)=>{"use strict";n.d(t,{Z:()=>i});var r=n(7294),a=n(8940);function i(){return(0,r.useContext)(a._)}},8084:(e,t,n)=>{"use strict";n.d(t,{OD:()=>i,eZ:()=>o});var r=n(2263),a=n(9935);function i(e,t){void 0===t&&(t={});const n=function(){const{globalData:e}=(0,r.Z)();return e}()[e];if(!n&&t.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin.`);return n}function o(e,t,n){void 0===t&&(t=a.m),void 0===n&&(n={});const r=i(e)?.[t];if(!r&&n.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin with id "${t}".`);return r}},2389:(e,t,n)=>{"use strict";n.d(t,{Z:()=>i});var r=n(7294),a=n(8934);function i(){return(0,r.useContext)(a._)}},9670:(e,t,n)=>{"use strict";n.d(t,{Z:()=>r});function r(e){const t={};return function e(n,r){Object.entries(n).forEach((n=>{let[a,i]=n;const o=r?`${r}.${a}`:a;var s;"object"==typeof(s=i)&&s&&Object.keys(s).length>0?e(i,o):t[o]=i}))}(e),t}},226:(e,t,n)=>{"use strict";n.d(t,{_:()=>a,z:()=>i});var r=n(7294);const a=r.createContext(null);function i(e){let{children:t,value:n}=e;const i=r.useContext(a),o=(0,r.useMemo)((()=>function(e){let{parent:t,value:n}=e;if(!t){if(!n)throw new Error("Unexpected: no Docusaurus route context found");if(!("plugin"in n))throw new Error("Unexpected: Docusaurus topmost route context has no `plugin` attribute");return n}const r={...t.data,...n?.data};return{plugin:t.plugin,data:r}}({parent:i,value:n})),[i,n]);return r.createElement(a.Provider,{value:o},t)}},4104:(e,t,n)=>{"use strict";n.d(t,{Iw:()=>f,gA:()=>c,_r:()=>l,Jo:()=>m,zh:()=>u,yW:()=>p,gB:()=>d});var r=n(6550),a=n(8084);const i=e=>e.versions.find((e=>e.isLast));function o(e,t){const n=function(e,t){const n=i(e);return[...e.versions.filter((e=>e!==n)),n].find((e=>!!(0,r.LX)(t,{path:e.path,exact:!1,strict:!1})))}(e,t),a=n?.docs.find((e=>!!(0,r.LX)(t,{path:e.path,exact:!0,strict:!1})));return{activeVersion:n,activeDoc:a,alternateDocVersions:a?function(t){const n={};return e.versions.forEach((e=>{e.docs.forEach((r=>{r.id===t&&(n[e.name]=r)}))})),n}(a.id):{}}}const s={},l=()=>(0,a.OD)("docusaurus-plugin-content-docs")??s,u=e=>(0,a.eZ)("docusaurus-plugin-content-docs",e,{failfast:!0});function c(e){void 0===e&&(e={});const t=l(),{pathname:n}=(0,r.TH)();return function(e,t,n){void 0===n&&(n={});const a=Object.entries(e).sort(((e,t)=>t[1].path.localeCompare(e[1].path))).find((e=>{let[,n]=e;return!!(0,r.LX)(t,{path:n.path,exact:!1,strict:!1})})),i=a?{pluginId:a[0],pluginData:a[1]}:void 0;if(!i&&n.failfast)throw new Error(`Can't find active docs plugin for "${t}" pathname, while it was expected to be found. Maybe you tried to use a docs feature that can only be used on a docs-related page? Existing docs plugin paths are: ${Object.values(e).map((e=>e.path)).join(", ")}`);return i}(t,n,e)}function d(e){return u(e).versions}function p(e){const t=u(e);return i(t)}function f(e){const t=u(e),{pathname:n}=(0,r.TH)();return o(t,n)}function m(e){const t=u(e),{pathname:n}=(0,r.TH)();return function(e,t){const n=i(e);return{latestDocSuggestion:o(e,t).alternateDocVersions[n.name],latestVersionSuggestion:n}}(t,n)}},8320:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i});var r=n(4865),a=n.n(r);a().configure({showSpinner:!1});const i={onRouteUpdate(e){let{location:t,previousLocation:n}=e;if(n&&t.pathname!==n.pathname){const e=window.setTimeout((()=>{a().start()}),200);return()=>window.clearTimeout(e)}},onRouteDidUpdate(){a().done()}}},3310:(e,t,n)=>{"use strict";n.r(t);var r=n(7410),a=n(6809);!function(e){const{themeConfig:{prism:t}}=a.Z,{additionalLanguages:r}=t;globalThis.Prism=e,r.forEach((e=>{n(9132)(`./prism-${e}`)})),delete globalThis.Prism}(r.Z)},9471:(e,t,n)=>{"use strict";n.d(t,{Z:()=>i});var r=n(7294);const a="iconExternalLink_nPIU";function i(e){let{width:t=13.5,height:n=13.5}=e;return r.createElement("svg",{width:t,height:n,"aria-hidden":"true",viewBox:"0 0 24 24",className:a},r.createElement("path",{fill:"currentColor",d:"M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"}))}},5924:(e,t,n)=>{"use strict";n.d(t,{Z:()=>nn});var r=n(7294),a=n(6010),i=n(4763),o=n(1944),s=n(7462),l=n(6550),u=n(5999),c=n(5936);const d="__docusaurus_skipToContent_fallback";function p(e){e.setAttribute("tabindex","-1"),e.focus(),e.removeAttribute("tabindex")}function f(){const e=(0,r.useRef)(null),{action:t}=(0,l.k6)(),n=(0,r.useCallback)((e=>{e.preventDefault();const t=document.querySelector("main:first-of-type")??document.getElementById(d);t&&p(t)}),[]);return(0,c.S)((n=>{let{location:r}=n;e.current&&!r.hash&&"PUSH"===t&&p(e.current)})),{containerRef:e,onClick:n}}const m=(0,u.I)({id:"theme.common.skipToMainContent",description:"The skip to content label used for accessibility, allowing to rapidly navigate to main content with keyboard tab/enter navigation",message:"Skip to main content"});function h(e){const t=e.children??m,{containerRef:n,onClick:a}=f();return r.createElement("div",{ref:n,role:"region","aria-label":m},r.createElement("a",(0,s.Z)({},e,{href:`#${d}`,onClick:a}),t))}var g=n(5281),b=n(9727);const v="skipToContent_fXgn";function y(){return r.createElement(h,{className:v})}var x=n(6668),w=n(9689);function k(e){let{width:t=21,height:n=21,color:a="currentColor",strokeWidth:i=1.2,className:o,...l}=e;return r.createElement("svg",(0,s.Z)({viewBox:"0 0 15 15",width:t,height:n},l),r.createElement("g",{stroke:a,strokeWidth:i},r.createElement("path",{d:"M.75.75l13.5 13.5M14.25.75L.75 14.25"})))}const S="closeButton_CVFx";function E(e){return r.createElement("button",(0,s.Z)({type:"button","aria-label":(0,u.I)({id:"theme.AnnouncementBar.closeButtonAriaLabel",message:"Close",description:"The ARIA label for close button of announcement bar"})},e,{className:(0,a.Z)("clean-btn close",S,e.className)}),r.createElement(k,{width:14,height:14,strokeWidth:3.1}))}const _="content_knG7";function C(e){const{announcementBar:t}=(0,x.L)(),{content:n}=t;return r.createElement("div",(0,s.Z)({},e,{className:(0,a.Z)(_,e.className),dangerouslySetInnerHTML:{__html:n}}))}const T="announcementBar_mb4j",P="announcementBarPlaceholder_vyr4",L="announcementBarClose_gvF7",O="announcementBarContent_xLdY";function A(){const{announcementBar:e}=(0,x.L)(),{isActive:t,close:n}=(0,w.nT)();if(!t)return null;const{backgroundColor:a,textColor:i,isCloseable:o}=e;return r.createElement("div",{className:T,style:{backgroundColor:a,color:i},role:"banner"},o&&r.createElement("div",{className:P}),r.createElement(C,{className:O}),o&&r.createElement(E,{onClick:n,className:L}))}var N=n(3163),I=n(2466);var R=n(902),D=n(3102);const M=r.createContext(null);function F(e){let{children:t}=e;const n=function(){const e=(0,N.e)(),t=(0,D.HY)(),[n,a]=(0,r.useState)(!1),i=null!==t.component,o=(0,R.D9)(i);return(0,r.useEffect)((()=>{i&&!o&&a(!0)}),[i,o]),(0,r.useEffect)((()=>{i?e.shown||a(!0):a(!1)}),[e.shown,i]),(0,r.useMemo)((()=>[n,a]),[n])}();return r.createElement(M.Provider,{value:n},t)}function B(e){if(e.component){const t=e.component;return r.createElement(t,e.props)}}function z(){const e=(0,r.useContext)(M);if(!e)throw new R.i6("NavbarSecondaryMenuDisplayProvider");const[t,n]=e,a=(0,r.useCallback)((()=>n(!1)),[n]),i=(0,D.HY)();return(0,r.useMemo)((()=>({shown:t,hide:a,content:B(i)})),[a,i,t])}function $(e){let{header:t,primaryMenu:n,secondaryMenu:i}=e;const{shown:o}=z();return r.createElement("div",{className:"navbar-sidebar"},t,r.createElement("div",{className:(0,a.Z)("navbar-sidebar__items",{"navbar-sidebar__items--show-secondary":o})},r.createElement("div",{className:"navbar-sidebar__item menu"},n),r.createElement("div",{className:"navbar-sidebar__item menu"},i)))}var j=n(2949),U=n(2389);function H(e){return r.createElement("svg",(0,s.Z)({viewBox:"0 0 24 24",width:24,height:24},e),r.createElement("path",{fill:"currentColor",d:"M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"}))}function Z(e){return r.createElement("svg",(0,s.Z)({viewBox:"0 0 24 24",width:24,height:24},e),r.createElement("path",{fill:"currentColor",d:"M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"}))}const V={toggle:"toggle_vylO",toggleButton:"toggleButton_gllP",darkToggleIcon:"darkToggleIcon_wfgR",lightToggleIcon:"lightToggleIcon_pyhR",toggleButtonDisabled:"toggleButtonDisabled_aARS"};function Q(e){let{className:t,buttonClassName:n,value:i,onChange:o}=e;const s=(0,U.Z)(),l=(0,u.I)({message:"Switch between dark and light mode (currently {mode})",id:"theme.colorToggle.ariaLabel",description:"The ARIA label for the navbar color mode toggle"},{mode:"dark"===i?(0,u.I)({message:"dark mode",id:"theme.colorToggle.ariaLabel.mode.dark",description:"The name for the dark color mode"}):(0,u.I)({message:"light mode",id:"theme.colorToggle.ariaLabel.mode.light",description:"The name for the light color mode"})});return r.createElement("div",{className:(0,a.Z)(V.toggle,t)},r.createElement("button",{className:(0,a.Z)("clean-btn",V.toggleButton,!s&&V.toggleButtonDisabled,n),type:"button",onClick:()=>o("dark"===i?"light":"dark"),disabled:!s,title:l,"aria-label":l,"aria-live":"polite"},r.createElement(H,{className:(0,a.Z)(V.toggleIcon,V.lightToggleIcon)}),r.createElement(Z,{className:(0,a.Z)(V.toggleIcon,V.darkToggleIcon)})))}const G=r.memo(Q),W="darkNavbarColorModeToggle_X3D1";function q(e){let{className:t}=e;const n=(0,x.L)().navbar.style,a=(0,x.L)().colorMode.disableSwitch,{colorMode:i,setColorMode:o}=(0,j.I)();return a?null:r.createElement(G,{className:t,buttonClassName:"dark"===n?W:void 0,value:i,onChange:o})}var Y=n(1327);function K(){return r.createElement(Y.Z,{className:"navbar__brand",imageClassName:"navbar__logo",titleClassName:"navbar__title text--truncate"})}function X(){const e=(0,N.e)();return r.createElement("button",{type:"button","aria-label":(0,u.I)({id:"theme.docs.sidebar.closeSidebarButtonAriaLabel",message:"Close navigation bar",description:"The ARIA label for close button of mobile sidebar"}),className:"clean-btn navbar-sidebar__close",onClick:()=>e.toggle()},r.createElement(k,{color:"var(--ifm-color-emphasis-600)"}))}function J(){return r.createElement("div",{className:"navbar-sidebar__brand"},r.createElement(K,null),r.createElement(q,{className:"margin-right--md"}),r.createElement(X,null))}var ee=n(9960),te=n(4996),ne=n(3919);function re(e,t){return void 0!==e&&void 0!==t&&new RegExp(e,"gi").test(t)}var ae=n(9471);function ie(e){let{activeBasePath:t,activeBaseRegex:n,to:a,href:i,label:o,html:l,isDropdownLink:u,prependBaseUrlToHref:c,...d}=e;const p=(0,te.Z)(a),f=(0,te.Z)(t),m=(0,te.Z)(i,{forcePrependBaseUrl:!0}),h=o&&i&&!(0,ne.Z)(i),g=l?{dangerouslySetInnerHTML:{__html:l}}:{children:r.createElement(r.Fragment,null,o,h&&r.createElement(ae.Z,u&&{width:12,height:12}))};return i?r.createElement(ee.Z,(0,s.Z)({href:c?m:i},d,g)):r.createElement(ee.Z,(0,s.Z)({to:p,isNavLink:!0},(t||n)&&{isActive:(e,t)=>n?re(n,t.pathname):t.pathname.startsWith(f)},d,g))}function oe(e){let{className:t,isDropdownItem:n=!1,...i}=e;const o=r.createElement(ie,(0,s.Z)({className:(0,a.Z)(n?"dropdown__link":"navbar__item navbar__link",t),isDropdownLink:n},i));return n?r.createElement("li",null,o):o}function se(e){let{className:t,isDropdownItem:n,...i}=e;return r.createElement("li",{className:"menu__list-item"},r.createElement(ie,(0,s.Z)({className:(0,a.Z)("menu__link",t)},i)))}function le(e){let{mobile:t=!1,position:n,...a}=e;const i=t?se:oe;return r.createElement(i,(0,s.Z)({},a,{activeClassName:a.activeClassName??(t?"menu__link--active":"navbar__link--active")}))}var ue=n(6043),ce=n(8596),de=n(2263);function pe(e,t){return e.some((e=>function(e,t){return!!(0,ce.Mg)(e.to,t)||!!re(e.activeBaseRegex,t)||!(!e.activeBasePath||!t.startsWith(e.activeBasePath))}(e,t)))}function fe(e){let{items:t,position:n,className:i,onClick:o,...l}=e;const u=(0,r.useRef)(null),[c,d]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{const e=e=>{u.current&&!u.current.contains(e.target)&&d(!1)};return document.addEventListener("mousedown",e),document.addEventListener("touchstart",e),document.addEventListener("focusin",e),()=>{document.removeEventListener("mousedown",e),document.removeEventListener("touchstart",e),document.removeEventListener("focusin",e)}}),[u]),r.createElement("div",{ref:u,className:(0,a.Z)("navbar__item","dropdown","dropdown--hoverable",{"dropdown--right":"right"===n,"dropdown--show":c})},r.createElement(ie,(0,s.Z)({"aria-haspopup":"true","aria-expanded":c,role:"button",href:l.to?void 0:"#",className:(0,a.Z)("navbar__link",i)},l,{onClick:l.to?void 0:e=>e.preventDefault(),onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),d(!c))}}),l.children??l.label),r.createElement("ul",{className:"dropdown__menu"},t.map(((e,t)=>r.createElement(ht,(0,s.Z)({isDropdownItem:!0,activeClassName:"dropdown__link--active"},e,{key:t}))))))}function me(e){let{items:t,className:n,position:i,onClick:o,...u}=e;const c=function(){const{siteConfig:{baseUrl:e}}=(0,de.Z)(),{pathname:t}=(0,l.TH)();return t.replace(e,"/")}(),d=pe(t,c),{collapsed:p,toggleCollapsed:f,setCollapsed:m}=(0,ue.u)({initialState:()=>!d});return(0,r.useEffect)((()=>{d&&m(!d)}),[c,d,m]),r.createElement("li",{className:(0,a.Z)("menu__list-item",{"menu__list-item--collapsed":p})},r.createElement(ie,(0,s.Z)({role:"button",className:(0,a.Z)("menu__link menu__link--sublist menu__link--sublist-caret",n)},u,{onClick:e=>{e.preventDefault(),f()}}),u.children??u.label),r.createElement(ue.z,{lazy:!0,as:"ul",className:"menu__list",collapsed:p},t.map(((e,t)=>r.createElement(ht,(0,s.Z)({mobile:!0,isDropdownItem:!0,onClick:o,activeClassName:"menu__link--active"},e,{key:t}))))))}function he(e){let{mobile:t=!1,...n}=e;const a=t?me:fe;return r.createElement(a,n)}var ge=n(4711);function be(e){let{width:t=20,height:n=20,...a}=e;return r.createElement("svg",(0,s.Z)({viewBox:"0 0 24 24",width:t,height:n,"aria-hidden":!0},a),r.createElement("path",{fill:"currentColor",d:"M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"}))}const ve="iconLanguage_nlXk";var ye=n(1029),xe=n(412),we=n(373),ke=n(8084);const Se={};function Ee(e){void 0===e&&(e={});const t=(0,ke.OD)("docusaurus-plugin-content-docs")??Se,{pathname:n}=(0,l.TH)();return function(e,t,n){void 0===n&&(n={});const r=Object.entries(e).sort(((e,t)=>t[1].path.localeCompare(e[1].path))).find((e=>{let[,n]=e;return!!(0,l.LX)(t,{path:n.path,exact:!1,strict:!1})})),a=r?{pluginId:r[0],pluginData:r[1]}:void 0;if(!a&&n.failfast)throw new Error(`Can't find active docs plugin for "${t}" pathname, while it was expected to be found. Maybe you tried to use a docs feature that can only be used on a docs-related page? Existing docs plugin paths are: ${Object.values(e).map((e=>e.path)).join(", ")}`);return a}(t,n,e)}var _e=n(22),Ce=n(8202),Te=n(3926),Pe=n(1073),Le=n(2539),Oe=n(726);const Ae="searchBar_RVTs",Ne="dropdownMenu_qbY6",Ie="searchBarLeft_MXDe",Re="suggestion_fB_2",De="cursor_eG29",Me="hitTree_kk6K",Fe="hitIcon_a7Zy",Be="hitPath_ieM4",ze="noResultsIcon_EBY5",$e="hitFooter_E9YW",je="hitWrapper_sAK8",Ue="hitTitle_vyVt",He="hitAction_NqkB",Ze="noResults_l6Q3",Ve="searchBarContainer_NW3z",Qe="searchBarLoadingRing_YnHq",Ge="searchClearButton_qk4g",We="searchIndexLoading_EJ1f",qe="searchHintContainer_Pkmr",Ye="searchHint_iIMx",Ke="focused_OWtg",Xe="input_FOTf",Je="hint_URu1",et="suggestions_X8XU",tt="dataset_QiCy",nt="empty_eITn";function rt(e){let{document:t,type:n,page:r,metadata:a,tokens:i,isInterOfTree:o,isLastOfTree:s}=e;const l=0===n,u=1===n,c=[];o?c.push('<svg viewBox="0 0 24 54"><g stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"><path d="M8 6v42M20 27H8.3"></path></g></svg>'):s&&c.push('<svg viewBox="0 0 24 54"><g stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"><path d="M8 6v21M20 27H8.3"></path></g></svg>');const d=c.map((e=>`<span class="${Me}">${e}</span>`)),p=`<span class="${Fe}">${l?'<svg width="20" height="20" viewBox="0 0 20 20"><path d="M17 6v12c0 .52-.2 1-1 1H4c-.7 0-1-.33-1-1V2c0-.55.42-1 1-1h8l5 5zM14 8h-3.13c-.51 0-.87-.34-.87-.87V4" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linejoin="round"></path></svg>':u?'<svg width="20" height="20" viewBox="0 0 20 20"><path d="M13 13h4-4V8H7v5h6v4-4H7V8H3h4V3v5h6V3v5h4-4v5zm-6 0v4-4H3h4z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg>':'<svg width="20" height="20" viewBox="0 0 20 20"><path d="M17 5H3h14zm0 5H3h14zm0 5H3h14z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linejoin="round"></path></svg>'}</span>`,f=[`<span class="${Ue}">${(0,Oe.o)(t.t,(0,Pe.m)(a,"t"),i)}</span>`];if(!o&&!s&&ye.H6){const e=r?(r.b??[]).concat(r.t).concat(t.s&&t.s!==r.t?t.s:[]):t.b;f.push(`<span class="${Be}">${(0,Te.e)(e??[])}</span>`)}else l||f.push(`<span class="${Be}">${(0,Le.C)(r.t||(t.u.startsWith("/docs/api-reference/")?"API Reference":""),i)}</span>`);const m=`<span class="${He}"><svg width="20" height="20" viewBox="0 0 20 20"><g stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"><path d="M18 3v4c0 2-2 4-4 4H2"></path><path d="M8 17l-6-6 6-6"></path></g></svg></span>`;return[...d,p,`<span class="${je}">`,...f,"</span>",m].join("")}function at(){return`<span class="${Ze}"><span class="${ze}"><svg width="40" height="40" viewBox="0 0 20 20" fill="none" fill-rule="evenodd" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"><path d="M15.5 4.8c2 3 1.7 7-1 9.7h0l4.3 4.3-4.3-4.3a7.8 7.8 0 01-9.8 1m-2.2-2.2A7.8 7.8 0 0113.2 2.4M2 18L18 2"></path></svg></span><span>${(0,u.I)({id:"theme.SearchBar.noResultsText",message:"No results"})}</span></span>`}var it=n(311);async function ot(){const e=await Promise.all([n.e(8443),n.e(5525)]).then(n.t.bind(n,8443,23)),t=e.default;return t.noConflict?t.noConflict():e.noConflict&&e.noConflict(),t}const st="_highlight";const lt=function(e){let{handleSearchBarToggle:t}=e;const{siteConfig:{baseUrl:n}}=(0,de.Z)(),i=Ee();let o=n;try{const{preferredVersion:e}=(0,we.J)(i?.pluginId??ye.gQ);e&&!e.isLast&&(o=e.path+"/")}catch(D){if(ye.l9&&!(D instanceof R.i6))throw D}const s=(0,l.k6)(),c=(0,l.TH)(),d=(0,r.useRef)(null),p=(0,r.useRef)(new Map),f=(0,r.useRef)(!1),[m,h]=(0,r.useState)(!1),[g,b]=(0,r.useState)(!1),[v,y]=(0,r.useState)(""),x=(0,r.useRef)(null),w=(0,r.useRef)(""),[k,S]=(0,r.useState)("");(0,r.useEffect)((()=>{if(!Array.isArray(ye.Kc))return;let e="";if(c.pathname.startsWith(o)){const t=c.pathname.substring(o.length),n=ye.Kc.find((e=>t===e||t.startsWith(`${e}/`)));n&&(e=n)}w.current!==e&&(p.current.delete(e),w.current=e),S(e)}),[c.pathname,o]);const E=!!ye.hG&&Array.isArray(ye.Kc)&&""===k,_=(0,r.useCallback)((async()=>{if(E||p.current.get(k))return;p.current.set(k,"loading"),x.current?.autocomplete.destroy(),h(!0);const[{wrappedIndexes:e,zhDictionary:t},r]=await Promise.all([(0,_e.w)(o,k),ot()]);if(x.current=r(d.current,{hint:!1,autoselect:!0,openOnFocus:!0,cssClasses:{root:(0,a.Z)(Ae,{[Ie]:"left"===ye.pu}),noPrefix:!0,dropdownMenu:Ne,input:Xe,hint:Je,suggestions:et,suggestion:Re,cursor:De,dataset:tt,empty:nt}},[{source:(0,Ce.v)(e,t,ye.qo),templates:{suggestion:rt,empty:at,footer:e=>{let{query:t,isEmpty:r}=e;if(r)return;const a=document.createElement("a"),i=new URLSearchParams;if(i.set("q",t),Array.isArray(ye.Kc)&&i.set("ctx",k),o!==n){if(!o.startsWith(n))throw new Error(`Version url '${o}' does not start with base url '${n}', this is a bug of \`@easyops-cn/docusaurus-search-local\`, please report it.`);i.set("version",o.substring(n.length))}const l=`${n}search?${i.toString()}`;a.href=l,a.textContent=(0,u.I)({id:"theme.SearchBar.seeAll",message:"See all results"}),a.addEventListener("click",(e=>{e.ctrlKey||e.metaKey||(e.preventDefault(),x.current?.autocomplete.close(),s.push(l))}));const c=document.createElement("div");return c.className=$e,c.appendChild(a),c}}}]).on("autocomplete:selected",(function(e,t){let{document:{u:n,h:r},tokens:a}=t;d.current?.blur();let i=n;if(ye.vc&&a.length>0){const e=new URLSearchParams;for(const t of a)e.append(st,t);i+=`?${e.toString()}`}r&&(i+=r),s.push(i)})).on("autocomplete:closed",(()=>{d.current?.blur()})),p.current.set(k,"done"),h(!1),f.current){const e=d.current;e.value&&x.current?.autocomplete.open(),e.focus()}}),[E,k,o,n,s]);(0,r.useEffect)((()=>{if(!ye.vc)return;const e=xe.Z.canUseDOM?new URLSearchParams(c.search).getAll(st):[];setTimeout((()=>{const t=document.querySelector("article");if(!t)return;const n=new ye.vc(t);n.unmark(),0!==e.length&&n.mark(e),y(e.join(" ")),x.current?.autocomplete.setVal(e.join(" "))}))}),[c.search,c.pathname]);const[C,T]=(0,r.useState)(!1),P=(0,r.useCallback)((()=>{f.current=!0,_(),T(!0),t?.(!0)}),[t,_]),L=(0,r.useCallback)((()=>{T(!1),t?.(!1)}),[t]),O=(0,r.useCallback)((()=>{_()}),[_]),A=(0,r.useCallback)((e=>{y(e.target.value),e.target.value&&b(!0)}),[]),N=!!xe.Z.canUseDOM&&/mac/i.test(navigator.userAgentData?.platform??navigator.platform);(0,r.useEffect)((()=>{if(!ye.AY)return;const e=e=>{!(N?e.metaKey:e.ctrlKey)||"k"!==e.key&&"K"!==e.key||(e.preventDefault(),d.current?.focus(),P())};return document.addEventListener("keydown",e),()=>{document.removeEventListener("keydown",e)}}),[N,P]);const I=(0,r.useCallback)((()=>{const e=new URLSearchParams(c.search);e.delete(st);const t=e.toString(),n=c.pathname+(""!=t?`?${t}`:"")+c.hash;n!=c.pathname+c.search+c.hash&&s.push(n),y(""),x.current?.autocomplete.setVal("")}),[c.pathname,c.search,c.hash,s]);return r.createElement("div",{className:(0,a.Z)("navbar__search",Ve,{[We]:m&&g,[Ke]:C}),hidden:E},r.createElement("input",{placeholder:(0,u.I)({id:"theme.SearchBar.label",message:"Search",description:"The ARIA label and placeholder for search button"}),"aria-label":"Search",className:"navbar__search-input",onMouseEnter:O,onFocus:P,onBlur:L,onChange:A,ref:d,value:v}),r.createElement(it.Z,{className:Qe}),ye.AY&&ye.t_&&(""!==v?r.createElement("button",{className:Ge,onClick:I},"\u2715"):xe.Z.canUseDOM&&r.createElement("div",{className:qe},r.createElement("kbd",{className:Ye},N?"\u2318":"ctrl"),r.createElement("kbd",{className:Ye},"K"))))},ut="searchBox_ZlJk";function ct(e){let{children:t,className:n}=e;return r.createElement("div",{className:(0,a.Z)(n,ut)},t)}var dt=n(4104),pt=n(3438);const ft=e=>e.docs.find((t=>t.id===e.mainDocId));const mt={default:le,localeDropdown:function(e){let{mobile:t,dropdownItemsBefore:n,dropdownItemsAfter:a,...i}=e;const{i18n:{currentLocale:o,locales:c,localeConfigs:d}}=(0,de.Z)(),p=(0,ge.l)(),{search:f,hash:m}=(0,l.TH)(),h=[...n,...c.map((e=>{const n=`${`pathname://${p.createUrl({locale:e,fullyQualified:!1})}`}${f}${m}`;return{label:d[e].label,lang:d[e].htmlLang,to:n,target:"_self",autoAddBaseUrl:!1,className:e===o?t?"menu__link--active":"dropdown__link--active":""}})),...a],g=t?(0,u.I)({message:"Languages",id:"theme.navbar.mobileLanguageDropdown.label",description:"The label for the mobile language switcher dropdown"}):d[o].label;return r.createElement(he,(0,s.Z)({},i,{mobile:t,label:r.createElement(r.Fragment,null,r.createElement(be,{className:ve}),g),items:h}))},search:function(e){let{mobile:t,className:n}=e;return t?null:r.createElement(ct,{className:n},r.createElement(lt,null))},dropdown:he,html:function(e){let{value:t,className:n,mobile:i=!1,isDropdownItem:o=!1}=e;const s=o?"li":"div";return r.createElement(s,{className:(0,a.Z)({navbar__item:!i&&!o,"menu__list-item":i},n),dangerouslySetInnerHTML:{__html:t}})},doc:function(e){let{docId:t,label:n,docsPluginId:a,...i}=e;const{activeDoc:o}=(0,dt.Iw)(a),l=(0,pt.vY)(t,a);return null===l?null:r.createElement(le,(0,s.Z)({exact:!0},i,{isActive:()=>o?.path===l.path||!!o?.sidebar&&o.sidebar===l.sidebar,label:n??l.id,to:l.path}))},docSidebar:function(e){let{sidebarId:t,label:n,docsPluginId:a,...i}=e;const{activeDoc:o}=(0,dt.Iw)(a),l=(0,pt.oz)(t,a).link;if(!l)throw new Error(`DocSidebarNavbarItem: Sidebar with ID "${t}" doesn't have anything to be linked to.`);return r.createElement(le,(0,s.Z)({exact:!0},i,{isActive:()=>o?.sidebar===t,label:n??l.label,to:l.path}))},docsVersion:function(e){let{label:t,to:n,docsPluginId:a,...i}=e;const o=(0,pt.lO)(a)[0],l=t??o.label,u=n??(e=>e.docs.find((t=>t.id===e.mainDocId)))(o).path;return r.createElement(le,(0,s.Z)({},i,{label:l,to:u}))},docsVersionDropdown:function(e){let{mobile:t,docsPluginId:n,dropdownActiveClassDisabled:a,dropdownItemsBefore:i,dropdownItemsAfter:o,...c}=e;const{search:d,hash:p}=(0,l.TH)(),f=(0,dt.Iw)(n),m=(0,dt.gB)(n),{savePreferredVersionName:h}=(0,we.J)(n),g=[...i,...m.map((e=>{const t=f.alternateDocVersions[e.name]??ft(e);return{label:e.label,to:`${t.path}${d}${p}`,isActive:()=>e===f.activeVersion,onClick:()=>h(e.name)}})),...o],b=(0,pt.lO)(n)[0],v=t&&g.length>1?(0,u.I)({id:"theme.navbar.mobileVersionsDropdown.label",message:"Versions",description:"The label for the navbar versions dropdown on mobile view"}):b.label,y=t&&g.length>1?void 0:ft(b).path;return g.length<=1?r.createElement(le,(0,s.Z)({},c,{mobile:t,label:v,to:y,isActive:a?()=>!1:void 0})):r.createElement(he,(0,s.Z)({},c,{mobile:t,label:v,to:y,items:g,isActive:a?()=>!1:void 0}))}};function ht(e){let{type:t,...n}=e;const a=function(e,t){return e&&"default"!==e?e:"items"in t?"dropdown":"default"}(t,n),i=mt[a];if(!i)throw new Error(`No NavbarItem component found for type "${t}".`);return r.createElement(i,n)}function gt(){const e=(0,N.e)(),t=(0,x.L)().navbar.items;return r.createElement("ul",{className:"menu__list"},t.map(((t,n)=>r.createElement(ht,(0,s.Z)({mobile:!0},t,{onClick:()=>e.toggle(),key:n})))))}function bt(e){return r.createElement("button",(0,s.Z)({},e,{type:"button",className:"clean-btn navbar-sidebar__back"}),r.createElement(u.Z,{id:"theme.navbar.mobileSidebarSecondaryMenu.backButtonLabel",description:"The label of the back button to return to main menu, inside the mobile navbar sidebar secondary menu (notably used to display the docs sidebar)"},"\u2190 Back to main menu"))}function vt(){const e=0===(0,x.L)().navbar.items.length,t=z();return r.createElement(r.Fragment,null,!e&&r.createElement(bt,{onClick:()=>t.hide()}),t.content)}function yt(){const e=(0,N.e)();var t;return void 0===(t=e.shown)&&(t=!0),(0,r.useEffect)((()=>(document.body.style.overflow=t?"hidden":"visible",()=>{document.body.style.overflow="visible"})),[t]),e.shouldRender?r.createElement($,{header:r.createElement(J,null),primaryMenu:r.createElement(gt,null),secondaryMenu:r.createElement(vt,null)}):null}const xt="navbarHideable_m1mJ",wt="navbarHidden_jGov";function kt(e){return r.createElement("div",(0,s.Z)({role:"presentation"},e,{className:(0,a.Z)("navbar-sidebar__backdrop",e.className)}))}function St(e){let{children:t}=e;const{navbar:{hideOnScroll:n,style:i}}=(0,x.L)(),o=(0,N.e)(),{navbarRef:s,isNavbarVisible:l}=function(e){const[t,n]=(0,r.useState)(e),a=(0,r.useRef)(!1),i=(0,r.useRef)(0),o=(0,r.useCallback)((e=>{null!==e&&(i.current=e.getBoundingClientRect().height)}),[]);return(0,I.RF)(((t,r)=>{let{scrollY:o}=t;if(!e)return;if(o<i.current)return void n(!0);if(a.current)return void(a.current=!1);const s=r?.scrollY,l=document.documentElement.scrollHeight-i.current,u=window.innerHeight;s&&o>=s?n(!1):o+u<l&&n(!0)})),(0,c.S)((t=>{if(!e)return;const r=t.location.hash;if(r?document.getElementById(r.substring(1)):void 0)return a.current=!0,void n(!1);n(!0)})),{navbarRef:o,isNavbarVisible:t}}(n);return r.createElement("nav",{ref:s,"aria-label":(0,u.I)({id:"theme.NavBar.navAriaLabel",message:"Main",description:"The ARIA label for the main navigation"}),className:(0,a.Z)("navbar","navbar--fixed-top",n&&[xt,!l&&wt],{"navbar--dark":"dark"===i,"navbar--primary":"primary"===i,"navbar-sidebar--show":o.shown})},t,r.createElement(kt,{onClick:o.toggle}),r.createElement(yt,null))}var Et=n(8780);const _t="errorBoundaryError_a6uf";function Ct(e){return r.createElement("button",(0,s.Z)({type:"button"},e),r.createElement(u.Z,{id:"theme.ErrorPageContent.tryAgain",description:"The label of the button to try again rendering when the React error boundary captures an error"},"Try again"))}function Tt(e){let{error:t}=e;const n=(0,Et.getErrorCausalChain)(t).map((e=>e.message)).join("\n\nCause:\n");return r.createElement("p",{className:_t},n)}class Pt extends r.Component{componentDidCatch(e,t){throw this.props.onError(e,t)}render(){return this.props.children}}function Lt(e){let{width:t=30,height:n=30,className:a,...i}=e;return r.createElement("svg",(0,s.Z)({className:a,width:t,height:n,viewBox:"0 0 30 30","aria-hidden":"true"},i),r.createElement("path",{stroke:"currentColor",strokeLinecap:"round",strokeMiterlimit:"10",strokeWidth:"2",d:"M4 7h22M4 15h22M4 23h22"}))}function Ot(){const{toggle:e,shown:t}=(0,N.e)();return r.createElement("button",{onClick:e,"aria-label":(0,u.I)({id:"theme.docs.sidebar.toggleSidebarButtonAriaLabel",message:"Toggle navigation bar",description:"The ARIA label for hamburger menu button of mobile navigation"}),"aria-expanded":t,className:"navbar__toggle clean-btn",type:"button"},r.createElement(Lt,null))}const At="colorModeToggle_DEke";function Nt(e){let{items:t}=e;return r.createElement(r.Fragment,null,t.map(((e,t)=>r.createElement(Pt,{key:t,onError:t=>new Error(`A theme navbar item failed to render.\nPlease double-check the following navbar item (themeConfig.navbar.items) of your Docusaurus config:\n${JSON.stringify(e,null,2)}`,{cause:t})},r.createElement(ht,e)))))}function It(e){let{left:t,right:n}=e;return r.createElement("div",{className:"navbar__inner"},r.createElement("div",{className:"navbar__items"},t),r.createElement("div",{className:"navbar__items navbar__items--right"},n))}function Rt(){const e=(0,N.e)(),t=(0,x.L)().navbar.items,[n,a]=function(e){function t(e){return"left"===(e.position??"right")}return[e.filter(t),e.filter((e=>!t(e)))]}(t),i=t.find((e=>"search"===e.type));return r.createElement(It,{left:r.createElement(r.Fragment,null,!e.disabled&&r.createElement(Ot,null),r.createElement(K,null),r.createElement(Nt,{items:n})),right:r.createElement(r.Fragment,null,r.createElement(Nt,{items:a}),r.createElement(q,{className:At}),!i&&r.createElement(ct,null,r.createElement(lt,null)))})}function Dt(){return r.createElement(St,null,r.createElement(Rt,null))}function Mt(e){let{item:t}=e;const{to:n,href:a,label:i,prependBaseUrlToHref:o,...l}=t,u=(0,te.Z)(n),c=(0,te.Z)(a,{forcePrependBaseUrl:!0});return r.createElement(ee.Z,(0,s.Z)({className:"footer__link-item"},a?{href:o?c:a}:{to:u},l),i,a&&!(0,ne.Z)(a)&&r.createElement(ae.Z,null))}function Ft(e){let{item:t}=e;return t.html?r.createElement("li",{className:"footer__item",dangerouslySetInnerHTML:{__html:t.html}}):r.createElement("li",{key:t.href??t.to,className:"footer__item"},r.createElement(Mt,{item:t}))}function Bt(e){let{column:t}=e;return r.createElement("div",{className:"col footer__col"},r.createElement("div",{className:"footer__title"},t.title),r.createElement("ul",{className:"footer__items clean-list"},t.items.map(((e,t)=>r.createElement(Ft,{key:t,item:e})))))}function zt(e){let{columns:t}=e;return r.createElement("div",{className:"row footer__links"},t.map(((e,t)=>r.createElement(Bt,{key:t,column:e}))))}function $t(){return r.createElement("span",{className:"footer__link-separator"},"\xb7")}function jt(e){let{item:t}=e;return t.html?r.createElement("span",{className:"footer__link-item",dangerouslySetInnerHTML:{__html:t.html}}):r.createElement(Mt,{item:t})}function Ut(e){let{links:t}=e;return r.createElement("div",{className:"footer__links text--center"},r.createElement("div",{className:"footer__links"},t.map(((e,n)=>r.createElement(r.Fragment,{key:n},r.createElement(jt,{item:e}),t.length!==n+1&&r.createElement($t,null))))))}function Ht(e){let{links:t}=e;return function(e){return"title"in e[0]}(t)?r.createElement(zt,{columns:t}):r.createElement(Ut,{links:t})}var Zt=n(941);const Vt="footerLogoLink_BH7S";function Qt(e){let{logo:t}=e;const{withBaseUrl:n}=(0,te.C)(),i={light:n(t.src),dark:n(t.srcDark??t.src)};return r.createElement(Zt.Z,{className:(0,a.Z)("footer__logo",t.className),alt:t.alt,sources:i,width:t.width,height:t.height,style:t.style})}function Gt(e){let{logo:t}=e;return t.href?r.createElement(ee.Z,{href:t.href,className:Vt,target:t.target},r.createElement(Qt,{logo:t})):r.createElement(Qt,{logo:t})}function Wt(e){let{copyright:t}=e;return r.createElement("div",{className:"footer__copyright",dangerouslySetInnerHTML:{__html:t}})}function qt(e){let{style:t,links:n,logo:i,copyright:o}=e;return r.createElement("footer",{className:(0,a.Z)("footer",{"footer--dark":"dark"===t})},r.createElement("div",{className:"container container-fluid"},n,(i||o)&&r.createElement("div",{className:"footer__bottom text--center"},i&&r.createElement("div",{className:"margin-bottom--sm"},i),o)))}function Yt(){const{footer:e}=(0,x.L)();if(!e)return null;const{copyright:t,links:n,logo:a,style:i}=e;return r.createElement(qt,{style:i,links:n&&n.length>0&&r.createElement(Ht,{links:n}),logo:a&&r.createElement(Gt,{logo:a}),copyright:t&&r.createElement(Wt,{copyright:t})})}const Kt=r.memo(Yt),Xt=(0,R.Qc)([j.S,w.pl,I.OC,we.L5,o.VC,function(e){let{children:t}=e;return r.createElement(D.n2,null,r.createElement(N.M,null,r.createElement(F,null,t)))}]);function Jt(e){let{children:t}=e;return r.createElement(Xt,null,t)}function en(e){let{error:t,tryAgain:n}=e;return r.createElement("main",{className:"container margin-vert--xl"},r.createElement("div",{className:"row"},r.createElement("div",{className:"col col--6 col--offset-3"},r.createElement("h1",{className:"hero__title"},r.createElement(u.Z,{id:"theme.ErrorPageContent.title",description:"The title of the fallback page when the page crashed"},"This page crashed.")),r.createElement("div",{className:"margin-vert--lg"},r.createElement(Ct,{onClick:n,className:"button button--primary shadow--lw"})),r.createElement("hr",null),r.createElement("div",{className:"margin-vert--md"},r.createElement(Tt,{error:t})))))}const tn="mainWrapper_z2l0";function nn(e){const{children:t,noFooter:n,wrapperClassName:s,title:l,description:u}=e;return(0,b.t)(),r.createElement(Jt,null,r.createElement(o.d,{title:l,description:u}),r.createElement(y,null),r.createElement(A,null),r.createElement(Dt,null),r.createElement("div",{id:d,className:(0,a.Z)(g.k.wrapper.main,tn,s)},r.createElement(i.Z,{fallback:e=>r.createElement(en,e)},t)),!n&&r.createElement(Kt,null))}},1327:(e,t,n)=>{"use strict";n.d(t,{Z:()=>d});var r=n(7462),a=n(7294),i=n(9960),o=n(4996),s=n(2263),l=n(6668),u=n(941);function c(e){let{logo:t,alt:n,imageClassName:r}=e;const i={light:(0,o.Z)(t.src),dark:(0,o.Z)(t.srcDark||t.src)},s=a.createElement(u.Z,{className:t.className,sources:i,height:t.height,width:t.width,alt:n,style:t.style});return r?a.createElement("div",{className:r},s):s}function d(e){const{siteConfig:{title:t}}=(0,s.Z)(),{navbar:{title:n,logo:u}}=(0,l.L)(),{imageClassName:d,titleClassName:p,...f}=e,m=(0,o.Z)(u?.href||"/"),h=n?"":t,g=u?.alt??h;return a.createElement(i.Z,(0,r.Z)({to:m},f,u?.target&&{target:u.target}),u&&a.createElement(c,{logo:u,alt:g,imageClassName:d}),null!=n&&a.createElement("b",{className:p},n))}},197:(e,t,n)=>{"use strict";n.d(t,{Z:()=>i});var r=n(7294),a=n(5742);function i(e){let{locale:t,version:n,tag:i}=e;const o=t;return r.createElement(a.Z,null,t&&r.createElement("meta",{name:"docusaurus_locale",content:t}),n&&r.createElement("meta",{name:"docusaurus_version",content:n}),i&&r.createElement("meta",{name:"docusaurus_tag",content:i}),o&&r.createElement("meta",{name:"docsearch:language",content:o}),n&&r.createElement("meta",{name:"docsearch:version",content:n}),i&&r.createElement("meta",{name:"docsearch:docusaurus_tag",content:i}))}},941:(e,t,n)=>{"use strict";n.d(t,{Z:()=>u});var r=n(7462),a=n(7294),i=n(6010),o=n(2389),s=n(2949);const l={themedImage:"themedImage_ToTc","themedImage--light":"themedImage--light_HNdA","themedImage--dark":"themedImage--dark_i4oU"};function u(e){const t=(0,o.Z)(),{colorMode:n}=(0,s.I)(),{sources:u,className:c,alt:d,...p}=e,f=t?"dark"===n?["dark"]:["light"]:["light","dark"];return a.createElement(a.Fragment,null,f.map((e=>a.createElement("img",(0,r.Z)({key:e,src:u[e],alt:d,className:(0,i.Z)(l.themedImage,l[`themedImage--${e}`],c)},p)))))}},6043:(e,t,n)=>{"use strict";n.d(t,{u:()=>s,z:()=>h});var r=n(7462),a=n(7294),i=n(412),o=n(1442);function s(e){let{initialState:t}=e;const[n,r]=(0,a.useState)(t??!1),i=(0,a.useCallback)((()=>{r((e=>!e))}),[]);return{collapsed:n,setCollapsed:r,toggleCollapsed:i}}const l={display:"none",overflow:"hidden",height:"0px"},u={display:"block",overflow:"visible",height:"auto"};function c(e,t){const n=t?l:u;e.style.display=n.display,e.style.overflow=n.overflow,e.style.height=n.height}function d(e){let{collapsibleRef:t,collapsed:n,animation:r}=e;const i=(0,a.useRef)(!1);(0,a.useEffect)((()=>{const e=t.current;function a(){const t=e.scrollHeight,n=r?.duration??function(e){if((0,o.n)())return 1;const t=e/36;return Math.round(10*(4+15*t**.25+t/5))}(t);return{transition:`height ${n}ms ${r?.easing??"ease-in-out"}`,height:`${t}px`}}function s(){const t=a();e.style.transition=t.transition,e.style.height=t.height}if(!i.current)return c(e,n),void(i.current=!0);return e.style.willChange="height",function(){const t=requestAnimationFrame((()=>{n?(s(),requestAnimationFrame((()=>{e.style.height=l.height,e.style.overflow=l.overflow}))):(e.style.display="block",requestAnimationFrame((()=>{s()})))}));return()=>cancelAnimationFrame(t)}()}),[t,n,r])}function p(e){if(!i.Z.canUseDOM)return e?l:u}function f(e){let{as:t="div",collapsed:n,children:r,animation:i,onCollapseTransitionEnd:o,className:s,disableSSRStyle:l}=e;const u=(0,a.useRef)(null);return d({collapsibleRef:u,collapsed:n,animation:i}),a.createElement(t,{ref:u,style:l?void 0:p(n),onTransitionEnd:e=>{"height"===e.propertyName&&(c(u.current,n),o?.(n))},className:s},r)}function m(e){let{collapsed:t,...n}=e;const[i,o]=(0,a.useState)(!t),[s,l]=(0,a.useState)(t);return(0,a.useLayoutEffect)((()=>{t||o(!0)}),[t]),(0,a.useLayoutEffect)((()=>{i&&l(t)}),[i,t]),i?a.createElement(f,(0,r.Z)({},n,{collapsed:s})):null}function h(e){let{lazy:t,...n}=e;const r=t?m:f;return a.createElement(r,n)}},9689:(e,t,n)=>{"use strict";n.d(t,{nT:()=>m,pl:()=>f});var r=n(7294),a=n(2389),i=n(12),o=n(902),s=n(6668);const l=(0,i.WA)("docusaurus.announcement.dismiss"),u=(0,i.WA)("docusaurus.announcement.id"),c=()=>"true"===l.get(),d=e=>l.set(String(e)),p=r.createContext(null);function f(e){let{children:t}=e;const n=function(){const{announcementBar:e}=(0,s.L)(),t=(0,a.Z)(),[n,i]=(0,r.useState)((()=>!!t&&c()));(0,r.useEffect)((()=>{i(c())}),[]);const o=(0,r.useCallback)((()=>{d(!0),i(!0)}),[]);return(0,r.useEffect)((()=>{if(!e)return;const{id:t}=e;let n=u.get();"annoucement-bar"===n&&(n="announcement-bar");const r=t!==n;u.set(t),r&&d(!1),!r&&c()||i(!1)}),[e]),(0,r.useMemo)((()=>({isActive:!!e&&!n,close:o})),[e,n,o])}();return r.createElement(p.Provider,{value:n},t)}function m(){const e=(0,r.useContext)(p);if(!e)throw new o.i6("AnnouncementBarProvider");return e}},2949:(e,t,n)=>{"use strict";n.d(t,{I:()=>g,S:()=>h});var r=n(7294),a=n(412),i=n(902),o=n(12),s=n(6668);const l=r.createContext(void 0),u="theme",c=(0,o.WA)(u),d="light",p="dark",f=e=>e===p?p:d;function m(){const{colorMode:{defaultMode:e,disableSwitch:t,respectPrefersColorScheme:n}}=(0,s.L)(),[i,o]=(0,r.useState)((e=>a.Z.canUseDOM?f(document.documentElement.getAttribute("data-theme")):f(e))(e));(0,r.useEffect)((()=>{t&&c.del()}),[t]);const l=(0,r.useCallback)((function(t,r){void 0===r&&(r={});const{persist:a=!0}=r;t?(o(t),a&&(e=>{c.set(f(e))})(t)):(o(n?window.matchMedia("(prefers-color-scheme: dark)").matches?p:d:e),c.del())}),[n,e]);(0,r.useEffect)((()=>{document.documentElement.setAttribute("data-theme",f(i))}),[i]),(0,r.useEffect)((()=>{if(t)return;const e=e=>{if(e.key!==u)return;const t=c.get();null!==t&&l(f(t))};return window.addEventListener("storage",e),()=>window.removeEventListener("storage",e)}),[t,l]);const m=(0,r.useRef)(!1);return(0,r.useEffect)((()=>{if(t&&!n)return;const e=window.matchMedia("(prefers-color-scheme: dark)"),r=()=>{window.matchMedia("print").matches||m.current?m.current=window.matchMedia("print").matches:l(null)};return e.addListener(r),()=>e.removeListener(r)}),[l,t,n]),(0,r.useMemo)((()=>({colorMode:i,setColorMode:l,get isDarkTheme(){return i===p},setLightTheme(){l(d)},setDarkTheme(){l(p)}})),[i,l])}function h(e){let{children:t}=e;const n=m();return r.createElement(l.Provider,{value:n},t)}function g(){const e=(0,r.useContext)(l);if(null==e)throw new i.i6("ColorModeProvider","Please see https://docusaurus.io/docs/api/themes/configuration#use-color-mode.");return e}},373:(e,t,n)=>{"use strict";n.d(t,{J:()=>y,L5:()=>b});var r=n(7294),a=n(4104),i=n(9935),o=n(6668),s=n(3438),l=n(902),u=n(12);const c=e=>`docs-preferred-version-${e}`,d=(e,t,n)=>{(0,u.WA)(c(e),{persistence:t}).set(n)},p=(e,t)=>(0,u.WA)(c(e),{persistence:t}).get(),f=(e,t)=>{(0,u.WA)(c(e),{persistence:t}).del()};const m=r.createContext(null);function h(){const e=(0,a._r)(),t=(0,o.L)().docs.versionPersistence,n=(0,r.useMemo)((()=>Object.keys(e)),[e]),[i,s]=(0,r.useState)((()=>(e=>Object.fromEntries(e.map((e=>[e,{preferredVersionName:null}]))))(n)));(0,r.useEffect)((()=>{s(function(e){let{pluginIds:t,versionPersistence:n,allDocsData:r}=e;function a(e){const t=p(e,n);return r[e].versions.some((e=>e.name===t))?{preferredVersionName:t}:(f(e,n),{preferredVersionName:null})}return Object.fromEntries(t.map((e=>[e,a(e)])))}({allDocsData:e,versionPersistence:t,pluginIds:n}))}),[e,t,n]);return[i,(0,r.useMemo)((()=>({savePreferredVersion:function(e,n){d(e,t,n),s((t=>({...t,[e]:{preferredVersionName:n}})))}})),[t])]}function g(e){let{children:t}=e;const n=h();return r.createElement(m.Provider,{value:n},t)}function b(e){let{children:t}=e;return s.cE?r.createElement(g,null,t):r.createElement(r.Fragment,null,t)}function v(){const e=(0,r.useContext)(m);if(!e)throw new l.i6("DocsPreferredVersionContextProvider");return e}function y(e){void 0===e&&(e=i.m);const t=(0,a.zh)(e),[n,o]=v(),{preferredVersionName:s}=n[e];return{preferredVersion:t.versions.find((e=>e.name===s))??null,savePreferredVersionName:(0,r.useCallback)((t=>{o.savePreferredVersion(e,t)}),[o,e])}}},1116:(e,t,n)=>{"use strict";n.d(t,{V:()=>l,b:()=>s});var r=n(7294),a=n(902);const i=Symbol("EmptyContext"),o=r.createContext(i);function s(e){let{children:t,name:n,items:a}=e;const i=(0,r.useMemo)((()=>n&&a?{name:n,items:a}:null),[n,a]);return r.createElement(o.Provider,{value:i},t)}function l(){const e=(0,r.useContext)(o);if(e===i)throw new a.i6("DocsSidebarProvider");return e}},3163:(e,t,n)=>{"use strict";n.d(t,{M:()=>d,e:()=>p});var r=n(7294),a=n(3102),i=n(7524),o=n(1980),s=n(6668),l=n(902);const u=r.createContext(void 0);function c(){const e=function(){const e=(0,a.HY)(),{items:t}=(0,s.L)().navbar;return 0===t.length&&!e.component}(),t=(0,i.i)(),n=!e&&"mobile"===t,[l,u]=(0,r.useState)(!1);(0,o.Rb)((()=>{if(l)return u(!1),!1}));const c=(0,r.useCallback)((()=>{u((e=>!e))}),[]);return(0,r.useEffect)((()=>{"desktop"===t&&u(!1)}),[t]),(0,r.useMemo)((()=>({disabled:e,shouldRender:n,toggle:c,shown:l})),[e,n,c,l])}function d(e){let{children:t}=e;const n=c();return r.createElement(u.Provider,{value:n},t)}function p(){const e=r.useContext(u);if(void 0===e)throw new l.i6("NavbarMobileSidebarProvider");return e}},3102:(e,t,n)=>{"use strict";n.d(t,{HY:()=>s,Zo:()=>l,n2:()=>o});var r=n(7294),a=n(902);const i=r.createContext(null);function o(e){let{children:t}=e;const n=(0,r.useState)({component:null,props:null});return r.createElement(i.Provider,{value:n},t)}function s(){const e=(0,r.useContext)(i);if(!e)throw new a.i6("NavbarSecondaryMenuContentProvider");return e[0]}function l(e){let{component:t,props:n}=e;const o=(0,r.useContext)(i);if(!o)throw new a.i6("NavbarSecondaryMenuContentProvider");const[,s]=o,l=(0,a.Ql)(n);return(0,r.useEffect)((()=>{s({component:t,props:l})}),[s,t,l]),(0,r.useEffect)((()=>()=>s({component:null,props:null})),[s]),null}},9727:(e,t,n)=>{"use strict";n.d(t,{h:()=>a,t:()=>i});var r=n(7294);const a="navigation-with-keyboard";function i(){(0,r.useEffect)((()=>{function e(e){"keydown"===e.type&&"Tab"===e.key&&document.body.classList.add(a),"mousedown"===e.type&&document.body.classList.remove(a)}return document.addEventListener("keydown",e),document.addEventListener("mousedown",e),()=>{document.body.classList.remove(a),document.removeEventListener("keydown",e),document.removeEventListener("mousedown",e)}}),[])}},7524:(e,t,n)=>{"use strict";n.d(t,{i:()=>u});var r=n(7294),a=n(412);const i="desktop",o="mobile",s="ssr";function l(){return a.Z.canUseDOM?window.innerWidth>996?i:o:s}function u(){const[e,t]=(0,r.useState)((()=>l()));return(0,r.useEffect)((()=>{function e(){t(l())}return window.addEventListener("resize",e),()=>{window.removeEventListener("resize",e),clearTimeout(undefined)}}),[]),e}},5281:(e,t,n)=>{"use strict";n.d(t,{k:()=>r});const r={page:{blogListPage:"blog-list-page",blogPostPage:"blog-post-page",blogTagsListPage:"blog-tags-list-page",blogTagPostListPage:"blog-tags-post-list-page",docsDocPage:"docs-doc-page",docsTagsListPage:"docs-tags-list-page",docsTagDocListPage:"docs-tags-doc-list-page",mdxPage:"mdx-page"},wrapper:{main:"main-wrapper",blogPages:"blog-wrapper",docsPages:"docs-wrapper",mdxPages:"mdx-wrapper"},common:{editThisPage:"theme-edit-this-page",lastUpdated:"theme-last-updated",backToTopButton:"theme-back-to-top-button",codeBlock:"theme-code-block",admonition:"theme-admonition",admonitionType:e=>`theme-admonition-${e}`},layout:{},docs:{docVersionBanner:"theme-doc-version-banner",docVersionBadge:"theme-doc-version-badge",docBreadcrumbs:"theme-doc-breadcrumbs",docMarkdown:"theme-doc-markdown",docTocMobile:"theme-doc-toc-mobile",docTocDesktop:"theme-doc-toc-desktop",docFooter:"theme-doc-footer",docFooterTagsRow:"theme-doc-footer-tags-row",docFooterEditMetaRow:"theme-doc-footer-edit-meta-row",docSidebarContainer:"theme-doc-sidebar-container",docSidebarMenu:"theme-doc-sidebar-menu",docSidebarItemCategory:"theme-doc-sidebar-item-category",docSidebarItemLink:"theme-doc-sidebar-item-link",docSidebarItemCategoryLevel:e=>`theme-doc-sidebar-item-category-level-${e}`,docSidebarItemLinkLevel:e=>`theme-doc-sidebar-item-link-level-${e}`},blog:{}}},1442:(e,t,n)=>{"use strict";function r(){return window.matchMedia("(prefers-reduced-motion: reduce)").matches}n.d(t,{n:()=>r})},3438:(e,t,n)=>{"use strict";n.d(t,{Wl:()=>p,_F:()=>m,cE:()=>d,hI:()=>x,lO:()=>b,oz:()=>v,s1:()=>g,vY:()=>y});var r=n(7294),a=n(6550),i=n(8790),o=n(4104),s=n(373),l=n(1116),u=n(7392),c=n(8596);const d=!!o._r;function p(e){if(e.href)return e.href;for(const t of e.items){if("link"===t.type)return t.href;if("category"===t.type){const e=p(t);if(e)return e}}}const f=(e,t)=>void 0!==e&&(0,c.Mg)(e,t);function m(e,t){return"link"===e.type?f(e.href,t):"category"===e.type&&(f(e.href,t)||((e,t)=>e.some((e=>m(e,t))))(e.items,t))}function h(e){let{sidebarItems:t,pathname:n,onlyCategories:r=!1}=e;const a=[];return function e(t){for(const i of t)if("category"===i.type&&((0,c.Mg)(i.href,n)||e(i.items))||"link"===i.type&&(0,c.Mg)(i.href,n)){return r&&"category"!==i.type||a.unshift(i),!0}return!1}(t),a}function g(){const e=(0,l.V)(),{pathname:t}=(0,a.TH)(),n=(0,o.gA)()?.pluginData.breadcrumbs;return!1!==n&&e?h({sidebarItems:e.items,pathname:t}):null}function b(e){const{activeVersion:t}=(0,o.Iw)(e),{preferredVersion:n}=(0,s.J)(e),a=(0,o.yW)(e);return(0,r.useMemo)((()=>(0,u.j)([t,n,a].filter(Boolean))),[t,n,a])}function v(e,t){const n=b(t);return(0,r.useMemo)((()=>{const t=n.flatMap((e=>e.sidebars?Object.entries(e.sidebars):[])),r=t.find((t=>t[0]===e));if(!r)throw new Error(`Can't find any sidebar with id "${e}" in version${n.length>1?"s":""} ${n.map((e=>e.name)).join(", ")}".\nAvailable sidebar ids are:\n- ${t.map((e=>e[0])).join("\n- ")}`);return r[1]}),[e,n])}function y(e,t){const n=b(t);return(0,r.useMemo)((()=>{const t=n.flatMap((e=>e.docs)),r=t.find((t=>t.id===e));if(!r){if(n.flatMap((e=>e.draftIds)).includes(e))return null;throw new Error(`Couldn't find any doc with id "${e}" in version${n.length>1?"s":""} "${n.map((e=>e.name)).join(", ")}".\nAvailable doc ids are:\n- ${(0,u.j)(t.map((e=>e.id))).join("\n- ")}`)}return r}),[e,n])}function x(e){let{route:t,versionMetadata:n}=e;const r=(0,a.TH)(),o=t.routes,s=o.find((e=>(0,a.LX)(r.pathname,e)));if(!s)return null;const l=s.sidebar,u=l?n.docsSidebars[l]:void 0;return{docElement:(0,i.H)(o),sidebarName:l,sidebarItems:u}}},1980:(e,t,n)=>{"use strict";n.d(t,{Rb:()=>s,_X:()=>l});var r=n(7294),a=n(6550),i=n(1688),o=n(902);function s(e){!function(e){const t=(0,a.k6)(),n=(0,o.zX)(e);(0,r.useEffect)((()=>t.block(((e,t)=>n(e,t)))),[t,n])}(((t,n)=>{if("POP"===n)return e(t,n)}))}function l(e){return function(e){const t=(0,a.k6)();return(0,i.useSyncExternalStore)(t.listen,(()=>e(t)),(()=>e(t)))}((t=>null===e?null:new URLSearchParams(t.location.search).get(e)))}},7392:(e,t,n)=>{"use strict";function r(e,t){return void 0===t&&(t=(e,t)=>e===t),e.filter(((n,r)=>e.findIndex((e=>t(e,n)))!==r))}function a(e){return Array.from(new Set(e))}n.d(t,{j:()=>a,l:()=>r})},1944:(e,t,n)=>{"use strict";n.d(t,{FG:()=>p,d:()=>c,VC:()=>f});var r=n(7294),a=n(6010),i=n(5742),o=n(226);function s(){const e=r.useContext(o._);if(!e)throw new Error("Unexpected: no Docusaurus route context found");return e}var l=n(4996),u=n(2263);function c(e){let{title:t,description:n,keywords:a,image:o,children:s}=e;const c=function(e){const{siteConfig:t}=(0,u.Z)(),{title:n,titleDelimiter:r}=t;return e?.trim().length?`${e.trim()} ${r} ${n}`:n}(t),{withBaseUrl:d}=(0,l.C)(),p=o?d(o,{absolute:!0}):void 0;return r.createElement(i.Z,null,t&&r.createElement("title",null,c),t&&r.createElement("meta",{property:"og:title",content:c}),n&&r.createElement("meta",{name:"description",content:n}),n&&r.createElement("meta",{property:"og:description",content:n}),a&&r.createElement("meta",{name:"keywords",content:Array.isArray(a)?a.join(","):a}),p&&r.createElement("meta",{property:"og:image",content:p}),p&&r.createElement("meta",{name:"twitter:image",content:p}),s)}const d=r.createContext(void 0);function p(e){let{className:t,children:n}=e;const o=r.useContext(d),s=(0,a.Z)(o,t);return r.createElement(d.Provider,{value:s},r.createElement(i.Z,null,r.createElement("html",{className:s})),n)}function f(e){let{children:t}=e;const n=s(),i=`plugin-${n.plugin.name.replace(/docusaurus-(?:plugin|theme)-(?:content-)?/gi,"")}`;const o=`plugin-id-${n.plugin.id}`;return r.createElement(p,{className:(0,a.Z)(i,o)},t)}},902:(e,t,n)=>{"use strict";n.d(t,{D9:()=>o,Qc:()=>u,Ql:()=>l,i6:()=>s,zX:()=>i});var r=n(7294);const a=n(412).Z.canUseDOM?r.useLayoutEffect:r.useEffect;function i(e){const t=(0,r.useRef)(e);return a((()=>{t.current=e}),[e]),(0,r.useCallback)((function(){return t.current(...arguments)}),[])}function o(e){const t=(0,r.useRef)();return a((()=>{t.current=e})),t.current}class s extends Error{constructor(e,t){super(),this.name="ReactContextError",this.message=`Hook ${this.stack?.split("\n")[1]?.match(/at (?:\w+\.)?(?<name>\w+)/)?.groups.name??""} is called outside the <${e}>. ${t??""}`}}function l(e){const t=Object.entries(e);return t.sort(((e,t)=>e[0].localeCompare(t[0]))),(0,r.useMemo)((()=>e),t.flat())}function u(e){return t=>{let{children:n}=t;return r.createElement(r.Fragment,null,e.reduceRight(((e,t)=>r.createElement(t,null,e)),n))}}},8596:(e,t,n)=>{"use strict";n.d(t,{Mg:()=>o,Ns:()=>s});var r=n(7294),a=n(723),i=n(2263);function o(e,t){const n=e=>(!e||e.endsWith("/")?e:`${e}/`)?.toLowerCase();return n(e)===n(t)}function s(){const{baseUrl:e}=(0,i.Z)().siteConfig;return(0,r.useMemo)((()=>function(e){let{baseUrl:t,routes:n}=e;function r(e){return e.path===t&&!0===e.exact}function a(e){return e.path===t&&!e.exact}return function e(t){if(0===t.length)return;return t.find(r)||e(t.filter(a).flatMap((e=>e.routes??[])))}(n)}({routes:a.Z,baseUrl:e})),[e])}},2466:(e,t,n)=>{"use strict";n.d(t,{Ct:()=>f,OC:()=>l,RF:()=>d,o5:()=>p});var r=n(7294),a=n(412),i=n(2389),o=n(902);const s=r.createContext(void 0);function l(e){let{children:t}=e;const n=function(){const e=(0,r.useRef)(!0);return(0,r.useMemo)((()=>({scrollEventsEnabledRef:e,enableScrollEvents:()=>{e.current=!0},disableScrollEvents:()=>{e.current=!1}})),[])}();return r.createElement(s.Provider,{value:n},t)}function u(){const e=(0,r.useContext)(s);if(null==e)throw new o.i6("ScrollControllerProvider");return e}const c=()=>a.Z.canUseDOM?{scrollX:window.pageXOffset,scrollY:window.pageYOffset}:null;function d(e,t){void 0===t&&(t=[]);const{scrollEventsEnabledRef:n}=u(),a=(0,r.useRef)(c()),i=(0,o.zX)(e);(0,r.useEffect)((()=>{const e=()=>{if(!n.current)return;const e=c();i(e,a.current),a.current=e},t={passive:!0};return e(),window.addEventListener("scroll",e,t),()=>window.removeEventListener("scroll",e,t)}),[i,n,...t])}function p(){const e=u(),t=function(){const e=(0,r.useRef)({elem:null,top:0}),t=(0,r.useCallback)((t=>{e.current={elem:t,top:t.getBoundingClientRect().top}}),[]),n=(0,r.useCallback)((()=>{const{current:{elem:t,top:n}}=e;if(!t)return{restored:!1};const r=t.getBoundingClientRect().top-n;return r&&window.scrollBy({left:0,top:r}),e.current={elem:null,top:0},{restored:0!==r}}),[]);return(0,r.useMemo)((()=>({save:t,restore:n})),[n,t])}(),n=(0,r.useRef)(void 0),a=(0,r.useCallback)((r=>{t.save(r),e.disableScrollEvents(),n.current=()=>{const{restored:r}=t.restore();if(n.current=void 0,r){const t=()=>{e.enableScrollEvents(),window.removeEventListener("scroll",t)};window.addEventListener("scroll",t)}else e.enableScrollEvents()}}),[e,t]);return(0,r.useLayoutEffect)((()=>{queueMicrotask((()=>n.current?.()))})),{blockElementScrollPositionUntilNextRender:a}}function f(){const e=(0,r.useRef)(null),t=(0,i.Z)()&&"smooth"===getComputedStyle(document.documentElement).scrollBehavior;return{startScroll:n=>{e.current=t?function(e){return window.scrollTo({top:e,behavior:"smooth"}),()=>{}}(n):function(e){let t=null;const n=document.documentElement.scrollTop>e;return function r(){const a=document.documentElement.scrollTop;(n&&a>e||!n&&a<e)&&(t=requestAnimationFrame(r),window.scrollTo(0,Math.floor(.85*(a-e))+e))}(),()=>t&&cancelAnimationFrame(t)}(n)},cancelScroll:()=>e.current?.()}}},3320:(e,t,n)=>{"use strict";n.d(t,{HX:()=>r,os:()=>a});n(2263);const r="default";function a(e,t){return`docs-${e}-${t}`}},12:(e,t,n)=>{"use strict";n.d(t,{Nk:()=>d,WA:()=>c});var r=n(7294),a=n(1688);const i="localStorage";function o(e){let{key:t,oldValue:n,newValue:r,storage:a}=e;if(n===r)return;const i=document.createEvent("StorageEvent");i.initStorageEvent("storage",!1,!1,t,n,r,window.location.href,a),window.dispatchEvent(i)}function s(e){if(void 0===e&&(e=i),"undefined"==typeof window)throw new Error("Browser storage is not available on Node.js/Docusaurus SSR process.");if("none"===e)return null;try{return window[e]}catch(n){return t=n,l||(console.warn("Docusaurus browser storage is not available.\nPossible reasons: running Docusaurus in an iframe, in an incognito browser session, or using too strict browser privacy settings.",t),l=!0),null}var t}let l=!1;const u={get:()=>null,set:()=>{},del:()=>{},listen:()=>()=>{}};function c(e,t){if("undefined"==typeof window)return function(e){function t(){throw new Error(`Illegal storage API usage for storage key "${e}".\nDocusaurus storage APIs are not supposed to be called on the server-rendering process.\nPlease only call storage APIs in effects and event handlers.`)}return{get:t,set:t,del:t,listen:t}}(e);const n=s(t?.persistence);return null===n?u:{get:()=>{try{return n.getItem(e)}catch(t){return console.error(`Docusaurus storage error, can't get key=${e}`,t),null}},set:t=>{try{const r=n.getItem(e);n.setItem(e,t),o({key:e,oldValue:r,newValue:t,storage:n})}catch(r){console.error(`Docusaurus storage error, can't set ${e}=${t}`,r)}},del:()=>{try{const t=n.getItem(e);n.removeItem(e),o({key:e,oldValue:t,newValue:null,storage:n})}catch(t){console.error(`Docusaurus storage error, can't delete key=${e}`,t)}},listen:t=>{try{const r=r=>{r.storageArea===n&&r.key===e&&t(r)};return window.addEventListener("storage",r),()=>window.removeEventListener("storage",r)}catch(r){return console.error(`Docusaurus storage error, can't listen for changes of key=${e}`,r),()=>{}}}}}function d(e,t){const n=(0,r.useRef)((()=>null===e?u:c(e,t))).current(),i=(0,r.useCallback)((e=>"undefined"==typeof window?()=>{}:n.listen(e)),[n]);return[(0,a.useSyncExternalStore)(i,(()=>"undefined"==typeof window?null:n.get()),(()=>null)),n]}},4711:(e,t,n)=>{"use strict";n.d(t,{l:()=>o});var r=n(2263),a=n(6550),i=n(8780);function o(){const{siteConfig:{baseUrl:e,url:t,trailingSlash:n},i18n:{defaultLocale:o,currentLocale:s}}=(0,r.Z)(),{pathname:l}=(0,a.TH)(),u=(0,i.applyTrailingSlash)(l,{trailingSlash:n,baseUrl:e}),c=s===o?e:e.replace(`/${s}/`,"/"),d=u.replace(e,"");return{createUrl:function(e){let{locale:n,fullyQualified:r}=e;return`${r?t:""}${function(e){return e===o?`${c}`:`${c}${e}/`}(n)}${d}`}}}},5936:(e,t,n)=>{"use strict";n.d(t,{S:()=>o});var r=n(7294),a=n(6550),i=n(902);function o(e){const t=(0,a.TH)(),n=(0,i.D9)(t),o=(0,i.zX)(e);(0,r.useEffect)((()=>{n&&t!==n&&o({location:t,previousLocation:n})}),[o,t,n])}},6668:(e,t,n)=>{"use strict";n.d(t,{L:()=>a});var r=n(2263);function a(){return(0,r.Z)().siteConfig.themeConfig}},8802:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){const{trailingSlash:n,baseUrl:r}=t;if(e.startsWith("#"))return e;if(void 0===n)return e;const[a]=e.split(/[#?]/),i="/"===a||a===r?a:(o=a,n?function(e){return e.endsWith("/")?e:`${e}/`}(o):function(e){return e.endsWith("/")?e.slice(0,-1):e}(o));var o;return e.replace(a,i)}},4143:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getErrorCausalChain=void 0,t.getErrorCausalChain=function e(t){return t.cause?[t,...e(t.cause)]:[t]}},8780:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.getErrorCausalChain=t.applyTrailingSlash=t.blogPostContainerID=void 0,t.blogPostContainerID="__blog-post-container";var a=n(8802);Object.defineProperty(t,"applyTrailingSlash",{enumerable:!0,get:function(){return r(a).default}});var i=n(4143);Object.defineProperty(t,"getErrorCausalChain",{enumerable:!0,get:function(){return i.getErrorCausalChain}})},311:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=n(7294),a=n(6010);const i="loadingRing_RJI3";function o(e){let{className:t}=e;return r.createElement("div",{className:(0,a.Z)(i,t)},r.createElement("div",null),r.createElement("div",null),r.createElement("div",null),r.createElement("div",null))}},22:(e,t,n)=>{"use strict";n.d(t,{w:()=>s});var r=n(1336),a=n.n(r),i=n(1029);const o=new Map;function s(e,t){const n=`${e}${t}`;let r=o.get(n);return r||(r=async function(e,t){{const n=`${e}${i.J.replace("{dir}",t?`-${t.replace(/\//g,"-")}`:"")}`;if(new URL(n,location.origin).origin!==location.origin)throw new Error("Unexpected version url");const r=await(await fetch(n)).json(),o=r.map(((e,t)=>{let{documents:n,index:r}=e;return{type:t,documents:n,index:a().Index.load(r)}})),s=r.reduce(((e,t)=>{for(const n of t.index.invertedIndex)/\p{Unified_Ideograph}/u.test(n[0][0])&&e.add(n[0]);return e}),new Set);return{wrappedIndexes:o,zhDictionary:Array.from(s)}}return{wrappedIndexes:[],zhDictionary:[]}}(e,t),o.set(n,r)),r}},8202:(e,t,n)=>{"use strict";n.d(t,{v:()=>l});var r=n(1336),a=n.n(r);var i=n(1029);function o(e){return s(e).concat(s(e.filter((e=>{const t=e[e.length-1];return!t.trailing&&t.maybeTyping})),!0))}function s(e,t){return e.map((e=>({tokens:e.map((e=>e.value)),term:e.map((e=>({value:e.value,presence:a().Query.presence.REQUIRED,wildcard:(t?e.trailing||e.maybeTyping:e.trailing)?a().Query.wildcard.TRAILING:a().Query.wildcard.NONE})))})))}function l(e,t,n){return function(r,s){const l=function(e,t){if(1===t.length&&["ja","jp","th"].includes(t[0]))return a()[t[0]].tokenizer(e).map((e=>e.toString()));let n=/[^-\s]+/g;return t.includes("zh")&&(n=/\w+|\p{Unified_Ideograph}+/gu),e.toLowerCase().match(n)||[]}(r,i.dK);if(0===l.length)return void s([]);const u=function(e,t){const n=function(e,t){const n=[];return function e(r,a){if(0===r.length)return void n.push(a);const i=r[0];if(/\p{Unified_Ideograph}/u.test(i)){const n=function(e,t){const n=[];return function e(r,a){let i=0,o=!1;for(const s of t)if(r.substr(0,s.length)===s){const t={missed:a.missed,term:a.term.concat({value:s})};r.length>s.length?e(r.substr(s.length),t):n.push(t),o=!0}else for(let t=s.length-1;t>i;t-=1){const l=s.substr(0,t);if(r.substr(0,t)===l){i=t;const s={missed:a.missed,term:a.term.concat({value:l,trailing:!0})};r.length>t?e(r.substr(t),s):n.push(s),o=!0;break}}o||(r.length>0?e(r.substr(1),{missed:a.missed+1,term:a.term}):a.term.length>0&&n.push(a))}(e,{missed:0,term:[]}),n.sort(((e,t)=>{const n=e.missed>0?1:0,r=t.missed>0?1:0;return n!==r?n-r:e.term.length-t.term.length})).map((e=>e.term))}(i,t);for(const t of n){const n=a.concat(...t);e(r.slice(1),n)}}else{const t=a.concat({value:i});e(r.slice(1),t)}}(e,[]),n}(e,t);if(0===n.length)return[{tokens:e,term:e.map((e=>({value:e,presence:a().Query.presence.REQUIRED,wildcard:a().Query.wildcard.LEADING|a().Query.wildcard.TRAILING})))}];for(const a of n)a[a.length-1].maybeTyping=!0;const r=[];for(const o of i.dK)if("en"===o)i._k||r.unshift(a().stopWordFilter);else{const e=a()[o];e.stopWordFilter&&r.unshift(e.stopWordFilter)}let s;if(r.length>0){const e=e=>r.reduce(((e,t)=>e.filter((e=>t(e.value)))),e);s=[];const t=[];for(const r of n){const n=e(r);s.push(n),n.length<r.length&&n.length>0&&t.push(n)}n.push(...t)}else s=n.slice();const l=[];for(const a of s)if(a.length>2)for(let e=a.length-1;e>=0;e-=1)l.push(a.slice(0,e).concat(a.slice(e+1)));return o(n).concat(o(l))}(l,t),c=[];e:for(const{term:t,tokens:a}of u)for(const{documents:r,index:i,type:o}of e)if(c.push(...i.query((e=>{for(const n of t)e.term(n.value,{wildcard:n.wildcard,presence:n.presence})})).slice(0,n).filter((e=>!c.some((t=>t.document.i.toString()===e.ref)))).slice(0,n-c.length).map((t=>{const n=r.find((e=>e.i.toString()===t.ref));return{document:n,type:o,page:0!==o&&e[0].documents.find((e=>e.i===n.p)),metadata:t.matchData.metadata,tokens:a,score:t.score}}))),c.length>=n)break e;!function(e){e.forEach(((e,t)=>{e.index=t})),e.sort(((t,n)=>{let r=t.type>0&&t.page?e.findIndex((e=>e.document===t.page)):t.index,a=n.type>0&&n.page?e.findIndex((e=>e.document===n.page)):n.index;return-1===r&&(r=t.index),-1===a&&(a=n.index),r===a?0===t.type?-1:0===n.type?1:t.index-n.index:r-a}))}(c),function(e){e.forEach(((t,n)=>{n>0&&t.page&&e.some((e=>e.document===t.page))&&(n<e.length-1&&e[n+1].page===t.page?t.isInterOfTree=!0:t.isLastOfTree=!0)}))}(c),s(c)}}},3926:(e,t,n)=>{"use strict";function r(e){return e.join(" \u203a ")}n.d(t,{e:()=>r})},1690:(e,t,n)=>{"use strict";function r(e){return e.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}n.d(t,{X:()=>r})},1073:(e,t,n)=>{"use strict";function r(e,t){const n=[];for(const r of Object.values(e))r[t]&&n.push(...r[t].position);return n.sort(((e,t)=>e[0]-t[0]||t[1]-e[1]))}n.d(t,{m:()=>r})},2539:(e,t,n)=>{"use strict";n.d(t,{C:()=>a});var r=n(1690);function a(e,t,n){const i=[];for(const o of t){const n=e.toLowerCase().indexOf(o);if(n>=0){n>0&&i.push(a(e.substr(0,n),t)),i.push(`<mark>${(0,r.X)(e.substr(n,o.length))}</mark>`);const s=n+o.length;s<e.length&&i.push(a(e.substr(s),t));break}}return 0===i.length?n?`<mark>${(0,r.X)(e)}</mark>`:(0,r.X)(e):i.join("")}},726:(e,t,n)=>{"use strict";n.d(t,{o:()=>l});var r=n(1690),a=n(2539);const i=/\w+|\p{Unified_Ideograph}/u;function o(e){const t=[];let n=0,r=e;for(;r.length>0;){const a=r.match(i);if(!a){t.push(r);break}a.index>0&&t.push(r.substring(0,a.index)),t.push(a[0]),n+=a.index+a[0].length,r=e.substring(n)}return t}var s=n(1029);function l(e,t,n,i){void 0===i&&(i=s.Hk);const{chunkIndex:l,chunks:u}=function(e,t,n){const i=[];let s=0,l=0,u=-1;for(;s<t.length;){const[c,d]=t[s];if(s+=1,!(c<l)){if(c>l){const t=o(e.substring(l,c)).map((e=>({html:(0,r.X)(e),textLength:e.length})));for(const e of t)i.push(e)}-1===u&&(u=i.length),l=c+d,i.push({html:(0,a.C)(e.substring(c,l),n,!0),textLength:d})}}if(l<e.length){const t=o(e.substring(l)).map((e=>({html:(0,r.X)(e),textLength:e.length})));for(const e of t)i.push(e)}return{chunkIndex:u,chunks:i}}(e,t,n),c=u.slice(0,l),d=u[l],p=[d.html],f=u.slice(l+1);let m=d.textLength,h=0,g=0,b=!1,v=!1;for(;m<i;)if((h<=g||0===f.length)&&c.length>0){const e=c.pop();m+e.textLength<=i?(p.unshift(e.html),h+=e.textLength,m+=e.textLength):(b=!0,c.length=0)}else{if(!(f.length>0))break;{const e=f.shift();m+e.textLength<=i?(p.push(e.html),g+=e.textLength,m+=e.textLength):(v=!0,f.length=0)}}return(b||c.length>0)&&p.unshift("\u2026"),(v||f.length>0)&&p.push("\u2026"),p.join("")}},1029:(e,t,n)=>{"use strict";n.d(t,{vc:()=>i,gQ:()=>f,H6:()=>u,hG:()=>g,l9:()=>m,dK:()=>r,_k:()=>a,pu:()=>p,AY:()=>c,t_:()=>d,Kc:()=>h,J:()=>o,Hk:()=>l,qo:()=>s});n(1336);const r=["en"],a=!1,i=null,o="search-index{dir}.json?_=94b1e82d",s=8,l=50,u=!1,c=!0,d=!1,p="right",f=void 0,m=!0,h=null,g=!1},6010:(e,t,n)=>{"use strict";function r(e){var t,n,a="";if("string"==typeof e||"number"==typeof e)a+=e;else if("object"==typeof e)if(Array.isArray(e))for(t=0;t<e.length;t++)e[t]&&(n=r(e[t]))&&(a&&(a+=" "),a+=n);else for(t in e)e[t]&&(a&&(a+=" "),a+=t);return a}n.d(t,{Z:()=>a});const a=function(){for(var e,t,n=0,a="";n<arguments.length;)(e=arguments[n++])&&(t=r(e))&&(a&&(a+=" "),a+=t);return a}},9318:(e,t,n)=>{"use strict";n.d(t,{lX:()=>x,q_:()=>C,ob:()=>f,PP:()=>P,Ep:()=>p});var r=n(7462);function a(e){return"/"===e.charAt(0)}function i(e,t){for(var n=t,r=n+1,a=e.length;r<a;n+=1,r+=1)e[n]=e[r];e.pop()}const o=function(e,t){void 0===t&&(t="");var n,r=e&&e.split("/")||[],o=t&&t.split("/")||[],s=e&&a(e),l=t&&a(t),u=s||l;if(e&&a(e)?o=r:r.length&&(o.pop(),o=o.concat(r)),!o.length)return"/";if(o.length){var c=o[o.length-1];n="."===c||".."===c||""===c}else n=!1;for(var d=0,p=o.length;p>=0;p--){var f=o[p];"."===f?i(o,p):".."===f?(i(o,p),d++):d&&(i(o,p),d--)}if(!u)for(;d--;d)o.unshift("..");!u||""===o[0]||o[0]&&a(o[0])||o.unshift("");var m=o.join("/");return n&&"/"!==m.substr(-1)&&(m+="/"),m};var s=n(8776);function l(e){return"/"===e.charAt(0)?e:"/"+e}function u(e){return"/"===e.charAt(0)?e.substr(1):e}function c(e,t){return function(e,t){return 0===e.toLowerCase().indexOf(t.toLowerCase())&&-1!=="/?#".indexOf(e.charAt(t.length))}(e,t)?e.substr(t.length):e}function d(e){return"/"===e.charAt(e.length-1)?e.slice(0,-1):e}function p(e){var t=e.pathname,n=e.search,r=e.hash,a=t||"/";return n&&"?"!==n&&(a+="?"===n.charAt(0)?n:"?"+n),r&&"#"!==r&&(a+="#"===r.charAt(0)?r:"#"+r),a}function f(e,t,n,a){var i;"string"==typeof e?(i=function(e){var t=e||"/",n="",r="",a=t.indexOf("#");-1!==a&&(r=t.substr(a),t=t.substr(0,a));var i=t.indexOf("?");return-1!==i&&(n=t.substr(i),t=t.substr(0,i)),{pathname:t,search:"?"===n?"":n,hash:"#"===r?"":r}}(e),i.state=t):(void 0===(i=(0,r.Z)({},e)).pathname&&(i.pathname=""),i.search?"?"!==i.search.charAt(0)&&(i.search="?"+i.search):i.search="",i.hash?"#"!==i.hash.charAt(0)&&(i.hash="#"+i.hash):i.hash="",void 0!==t&&void 0===i.state&&(i.state=t));try{i.pathname=decodeURI(i.pathname)}catch(s){throw s instanceof URIError?new URIError('Pathname "'+i.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.'):s}return n&&(i.key=n),a?i.pathname?"/"!==i.pathname.charAt(0)&&(i.pathname=o(i.pathname,a.pathname)):i.pathname=a.pathname:i.pathname||(i.pathname="/"),i}function m(){var e=null;var t=[];return{setPrompt:function(t){return e=t,function(){e===t&&(e=null)}},confirmTransitionTo:function(t,n,r,a){if(null!=e){var i="function"==typeof e?e(t,n):e;"string"==typeof i?"function"==typeof r?r(i,a):a(!0):a(!1!==i)}else a(!0)},appendListener:function(e){var n=!0;function r(){n&&e.apply(void 0,arguments)}return t.push(r),function(){n=!1,t=t.filter((function(e){return e!==r}))}},notifyListeners:function(){for(var e=arguments.length,n=new Array(e),r=0;r<e;r++)n[r]=arguments[r];t.forEach((function(e){return e.apply(void 0,n)}))}}}var h=!("undefined"==typeof window||!window.document||!window.document.createElement);function g(e,t){t(window.confirm(e))}var b="popstate",v="hashchange";function y(){try{return window.history.state||{}}catch(e){return{}}}function x(e){void 0===e&&(e={}),h||(0,s.Z)(!1);var t,n=window.history,a=(-1===(t=window.navigator.userAgent).indexOf("Android 2.")&&-1===t.indexOf("Android 4.0")||-1===t.indexOf("Mobile Safari")||-1!==t.indexOf("Chrome")||-1!==t.indexOf("Windows Phone"))&&window.history&&"pushState"in window.history,i=!(-1===window.navigator.userAgent.indexOf("Trident")),o=e,u=o.forceRefresh,x=void 0!==u&&u,w=o.getUserConfirmation,k=void 0===w?g:w,S=o.keyLength,E=void 0===S?6:S,_=e.basename?d(l(e.basename)):"";function C(e){var t=e||{},n=t.key,r=t.state,a=window.location,i=a.pathname+a.search+a.hash;return _&&(i=c(i,_)),f(i,r,n)}function T(){return Math.random().toString(36).substr(2,E)}var P=m();function L(e){(0,r.Z)(j,e),j.length=n.length,P.notifyListeners(j.location,j.action)}function O(e){(function(e){return void 0===e.state&&-1===navigator.userAgent.indexOf("CriOS")})(e)||I(C(e.state))}function A(){I(C(y()))}var N=!1;function I(e){if(N)N=!1,L();else{P.confirmTransitionTo(e,"POP",k,(function(t){t?L({action:"POP",location:e}):function(e){var t=j.location,n=D.indexOf(t.key);-1===n&&(n=0);var r=D.indexOf(e.key);-1===r&&(r=0);var a=n-r;a&&(N=!0,F(a))}(e)}))}}var R=C(y()),D=[R.key];function M(e){return _+p(e)}function F(e){n.go(e)}var B=0;function z(e){1===(B+=e)&&1===e?(window.addEventListener(b,O),i&&window.addEventListener(v,A)):0===B&&(window.removeEventListener(b,O),i&&window.removeEventListener(v,A))}var $=!1;var j={length:n.length,action:"POP",location:R,createHref:M,push:function(e,t){var r="PUSH",i=f(e,t,T(),j.location);P.confirmTransitionTo(i,r,k,(function(e){if(e){var t=M(i),o=i.key,s=i.state;if(a)if(n.pushState({key:o,state:s},null,t),x)window.location.href=t;else{var l=D.indexOf(j.location.key),u=D.slice(0,l+1);u.push(i.key),D=u,L({action:r,location:i})}else window.location.href=t}}))},replace:function(e,t){var r="REPLACE",i=f(e,t,T(),j.location);P.confirmTransitionTo(i,r,k,(function(e){if(e){var t=M(i),o=i.key,s=i.state;if(a)if(n.replaceState({key:o,state:s},null,t),x)window.location.replace(t);else{var l=D.indexOf(j.location.key);-1!==l&&(D[l]=i.key),L({action:r,location:i})}else window.location.replace(t)}}))},go:F,goBack:function(){F(-1)},goForward:function(){F(1)},block:function(e){void 0===e&&(e=!1);var t=P.setPrompt(e);return $||(z(1),$=!0),function(){return $&&($=!1,z(-1)),t()}},listen:function(e){var t=P.appendListener(e);return z(1),function(){z(-1),t()}}};return j}var w="hashchange",k={hashbang:{encodePath:function(e){return"!"===e.charAt(0)?e:"!/"+u(e)},decodePath:function(e){return"!"===e.charAt(0)?e.substr(1):e}},noslash:{encodePath:u,decodePath:l},slash:{encodePath:l,decodePath:l}};function S(e){var t=e.indexOf("#");return-1===t?e:e.slice(0,t)}function E(){var e=window.location.href,t=e.indexOf("#");return-1===t?"":e.substring(t+1)}function _(e){window.location.replace(S(window.location.href)+"#"+e)}function C(e){void 0===e&&(e={}),h||(0,s.Z)(!1);var t=window.history,n=(window.navigator.userAgent.indexOf("Firefox"),e),a=n.getUserConfirmation,i=void 0===a?g:a,o=n.hashType,u=void 0===o?"slash":o,b=e.basename?d(l(e.basename)):"",v=k[u],y=v.encodePath,x=v.decodePath;function C(){var e=x(E());return b&&(e=c(e,b)),f(e)}var T=m();function P(e){(0,r.Z)($,e),$.length=t.length,T.notifyListeners($.location,$.action)}var L=!1,O=null;function A(){var e,t,n=E(),r=y(n);if(n!==r)_(r);else{var a=C(),o=$.location;if(!L&&(t=a,(e=o).pathname===t.pathname&&e.search===t.search&&e.hash===t.hash))return;if(O===p(a))return;O=null,function(e){if(L)L=!1,P();else{var t="POP";T.confirmTransitionTo(e,t,i,(function(n){n?P({action:t,location:e}):function(e){var t=$.location,n=D.lastIndexOf(p(t));-1===n&&(n=0);var r=D.lastIndexOf(p(e));-1===r&&(r=0);var a=n-r;a&&(L=!0,M(a))}(e)}))}}(a)}}var N=E(),I=y(N);N!==I&&_(I);var R=C(),D=[p(R)];function M(e){t.go(e)}var F=0;function B(e){1===(F+=e)&&1===e?window.addEventListener(w,A):0===F&&window.removeEventListener(w,A)}var z=!1;var $={length:t.length,action:"POP",location:R,createHref:function(e){var t=document.querySelector("base"),n="";return t&&t.getAttribute("href")&&(n=S(window.location.href)),n+"#"+y(b+p(e))},push:function(e,t){var n="PUSH",r=f(e,void 0,void 0,$.location);T.confirmTransitionTo(r,n,i,(function(e){if(e){var t=p(r),a=y(b+t);if(E()!==a){O=t,function(e){window.location.hash=e}(a);var i=D.lastIndexOf(p($.location)),o=D.slice(0,i+1);o.push(t),D=o,P({action:n,location:r})}else P()}}))},replace:function(e,t){var n="REPLACE",r=f(e,void 0,void 0,$.location);T.confirmTransitionTo(r,n,i,(function(e){if(e){var t=p(r),a=y(b+t);E()!==a&&(O=t,_(a));var i=D.indexOf(p($.location));-1!==i&&(D[i]=t),P({action:n,location:r})}}))},go:M,goBack:function(){M(-1)},goForward:function(){M(1)},block:function(e){void 0===e&&(e=!1);var t=T.setPrompt(e);return z||(B(1),z=!0),function(){return z&&(z=!1,B(-1)),t()}},listen:function(e){var t=T.appendListener(e);return B(1),function(){B(-1),t()}}};return $}function T(e,t,n){return Math.min(Math.max(e,t),n)}function P(e){void 0===e&&(e={});var t=e,n=t.getUserConfirmation,a=t.initialEntries,i=void 0===a?["/"]:a,o=t.initialIndex,s=void 0===o?0:o,l=t.keyLength,u=void 0===l?6:l,c=m();function d(e){(0,r.Z)(x,e),x.length=x.entries.length,c.notifyListeners(x.location,x.action)}function h(){return Math.random().toString(36).substr(2,u)}var g=T(s,0,i.length-1),b=i.map((function(e){return f(e,void 0,"string"==typeof e?h():e.key||h())})),v=p;function y(e){var t=T(x.index+e,0,x.entries.length-1),r=x.entries[t];c.confirmTransitionTo(r,"POP",n,(function(e){e?d({action:"POP",location:r,index:t}):d()}))}var x={length:b.length,action:"POP",location:b[g],index:g,entries:b,createHref:v,push:function(e,t){var r="PUSH",a=f(e,t,h(),x.location);c.confirmTransitionTo(a,r,n,(function(e){if(e){var t=x.index+1,n=x.entries.slice(0);n.length>t?n.splice(t,n.length-t,a):n.push(a),d({action:r,location:a,index:t,entries:n})}}))},replace:function(e,t){var r="REPLACE",a=f(e,t,h(),x.location);c.confirmTransitionTo(a,r,n,(function(e){e&&(x.entries[x.index]=a,d({action:r,location:a}))}))},go:y,goBack:function(){y(-1)},goForward:function(){y(1)},canGo:function(e){var t=x.index+e;return t>=0&&t<x.entries.length},block:function(e){return void 0===e&&(e=!1),c.setPrompt(e)},listen:function(e){return c.appendListener(e)}};return x}},8679:(e,t,n)=>{"use strict";var r=n(9864),a={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},i={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},o={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},s={};function l(e){return r.isMemo(e)?o:s[e.$$typeof]||a}s[r.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},s[r.Memo]=o;var u=Object.defineProperty,c=Object.getOwnPropertyNames,d=Object.getOwnPropertySymbols,p=Object.getOwnPropertyDescriptor,f=Object.getPrototypeOf,m=Object.prototype;e.exports=function e(t,n,r){if("string"!=typeof n){if(m){var a=f(n);a&&a!==m&&e(t,a,r)}var o=c(n);d&&(o=o.concat(d(n)));for(var s=l(t),h=l(n),g=0;g<o.length;++g){var b=o[g];if(!(i[b]||r&&r[b]||h&&h[b]||s&&s[b])){var v=p(n,b);try{u(t,b,v)}catch(y){}}}}return t}},1143:e=>{"use strict";e.exports=function(e,t,n,r,a,i,o,s){if(!e){var l;if(void 0===t)l=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var u=[n,r,a,i,o,s],c=0;(l=new Error(t.replace(/%s/g,(function(){return u[c++]})))).name="Invariant Violation"}throw l.framesToPop=1,l}}},5826:e=>{e.exports=Array.isArray||function(e){return"[object Array]"==Object.prototype.toString.call(e)}},1336:(e,t,n)=>{var r,a;!function(){var i,o,s,l,u,c,d,p,f,m,h,g,b,v,y,x,w,k,S,E,_,C,T,P,L,O,A,N,I,R,D=function(e){var t=new D.Builder;return t.pipeline.add(D.trimmer,D.stopWordFilter,D.stemmer),t.searchPipeline.add(D.stemmer),e.call(t,t),t.build()};D.version="2.3.9",D.utils={},D.utils.warn=(i=this,function(e){i.console&&console.warn&&console.warn(e)}),D.utils.asString=function(e){return null==e?"":e.toString()},D.utils.clone=function(e){if(null==e)return e;for(var t=Object.create(null),n=Object.keys(e),r=0;r<n.length;r++){var a=n[r],i=e[a];if(Array.isArray(i))t[a]=i.slice();else{if("string"!=typeof i&&"number"!=typeof i&&"boolean"!=typeof i)throw new TypeError("clone is not deep and does not support nested objects");t[a]=i}}return t},D.FieldRef=function(e,t,n){this.docRef=e,this.fieldName=t,this._stringValue=n},D.FieldRef.joiner="/",D.FieldRef.fromString=function(e){var t=e.indexOf(D.FieldRef.joiner);if(-1===t)throw"malformed field ref string";var n=e.slice(0,t),r=e.slice(t+1);return new D.FieldRef(r,n,e)},D.FieldRef.prototype.toString=function(){return null==this._stringValue&&(this._stringValue=this.fieldName+D.FieldRef.joiner+this.docRef),this._stringValue},D.Set=function(e){if(this.elements=Object.create(null),e){this.length=e.length;for(var t=0;t<this.length;t++)this.elements[e[t]]=!0}else this.length=0},D.Set.complete={intersect:function(e){return e},union:function(){return this},contains:function(){return!0}},D.Set.empty={intersect:function(){return this},union:function(e){return e},contains:function(){return!1}},D.Set.prototype.contains=function(e){return!!this.elements[e]},D.Set.prototype.intersect=function(e){var t,n,r,a=[];if(e===D.Set.complete)return this;if(e===D.Set.empty)return e;this.length<e.length?(t=this,n=e):(t=e,n=this),r=Object.keys(t.elements);for(var i=0;i<r.length;i++){var o=r[i];o in n.elements&&a.push(o)}return new D.Set(a)},D.Set.prototype.union=function(e){return e===D.Set.complete?D.Set.complete:e===D.Set.empty?this:new D.Set(Object.keys(this.elements).concat(Object.keys(e.elements)))},D.idf=function(e,t){var n=0;for(var r in e)"_index"!=r&&(n+=Object.keys(e[r]).length);var a=(t-n+.5)/(n+.5);return Math.log(1+Math.abs(a))},D.Token=function(e,t){this.str=e||"",this.metadata=t||{}},D.Token.prototype.toString=function(){return this.str},D.Token.prototype.update=function(e){return this.str=e(this.str,this.metadata),this},D.Token.prototype.clone=function(e){return e=e||function(e){return e},new D.Token(e(this.str,this.metadata),this.metadata)},D.tokenizer=function(e,t){if(null==e||null==e)return[];if(Array.isArray(e))return e.map((function(e){return new D.Token(D.utils.asString(e).toLowerCase(),D.utils.clone(t))}));for(var n=e.toString().toLowerCase(),r=n.length,a=[],i=0,o=0;i<=r;i++){var s=i-o;if(n.charAt(i).match(D.tokenizer.separator)||i==r){if(s>0){var l=D.utils.clone(t)||{};l.position=[o,s],l.index=a.length,a.push(new D.Token(n.slice(o,i),l))}o=i+1}}return a},D.tokenizer.separator=/[\s\-]+/,D.Pipeline=function(){this._stack=[]},D.Pipeline.registeredFunctions=Object.create(null),D.Pipeline.registerFunction=function(e,t){t in this.registeredFunctions&&D.utils.warn("Overwriting existing registered function: "+t),e.label=t,D.Pipeline.registeredFunctions[e.label]=e},D.Pipeline.warnIfFunctionNotRegistered=function(e){e.label&&e.label in this.registeredFunctions||D.utils.warn("Function is not registered with pipeline. This may cause problems when serialising the index.\n",e)},D.Pipeline.load=function(e){var t=new D.Pipeline;return e.forEach((function(e){var n=D.Pipeline.registeredFunctions[e];if(!n)throw new Error("Cannot load unregistered function: "+e);t.add(n)})),t},D.Pipeline.prototype.add=function(){var e=Array.prototype.slice.call(arguments);e.forEach((function(e){D.Pipeline.warnIfFunctionNotRegistered(e),this._stack.push(e)}),this)},D.Pipeline.prototype.after=function(e,t){D.Pipeline.warnIfFunctionNotRegistered(t);var n=this._stack.indexOf(e);if(-1==n)throw new Error("Cannot find existingFn");n+=1,this._stack.splice(n,0,t)},D.Pipeline.prototype.before=function(e,t){D.Pipeline.warnIfFunctionNotRegistered(t);var n=this._stack.indexOf(e);if(-1==n)throw new Error("Cannot find existingFn");this._stack.splice(n,0,t)},D.Pipeline.prototype.remove=function(e){var t=this._stack.indexOf(e);-1!=t&&this._stack.splice(t,1)},D.Pipeline.prototype.run=function(e){for(var t=this._stack.length,n=0;n<t;n++){for(var r=this._stack[n],a=[],i=0;i<e.length;i++){var o=r(e[i],i,e);if(null!=o&&""!==o)if(Array.isArray(o))for(var s=0;s<o.length;s++)a.push(o[s]);else a.push(o)}e=a}return e},D.Pipeline.prototype.runString=function(e,t){var n=new D.Token(e,t);return this.run([n]).map((function(e){return e.toString()}))},D.Pipeline.prototype.reset=function(){this._stack=[]},D.Pipeline.prototype.toJSON=function(){return this._stack.map((function(e){return D.Pipeline.warnIfFunctionNotRegistered(e),e.label}))},D.Vector=function(e){this._magnitude=0,this.elements=e||[]},D.Vector.prototype.positionForIndex=function(e){if(0==this.elements.length)return 0;for(var t=0,n=this.elements.length/2,r=n-t,a=Math.floor(r/2),i=this.elements[2*a];r>1&&(i<e&&(t=a),i>e&&(n=a),i!=e);)r=n-t,a=t+Math.floor(r/2),i=this.elements[2*a];return i==e||i>e?2*a:i<e?2*(a+1):void 0},D.Vector.prototype.insert=function(e,t){this.upsert(e,t,(function(){throw"duplicate index"}))},D.Vector.prototype.upsert=function(e,t,n){this._magnitude=0;var r=this.positionForIndex(e);this.elements[r]==e?this.elements[r+1]=n(this.elements[r+1],t):this.elements.splice(r,0,e,t)},D.Vector.prototype.magnitude=function(){if(this._magnitude)return this._magnitude;for(var e=0,t=this.elements.length,n=1;n<t;n+=2){var r=this.elements[n];e+=r*r}return this._magnitude=Math.sqrt(e)},D.Vector.prototype.dot=function(e){for(var t=0,n=this.elements,r=e.elements,a=n.length,i=r.length,o=0,s=0,l=0,u=0;l<a&&u<i;)(o=n[l])<(s=r[u])?l+=2:o>s?u+=2:o==s&&(t+=n[l+1]*r[u+1],l+=2,u+=2);return t},D.Vector.prototype.similarity=function(e){return this.dot(e)/this.magnitude()||0},D.Vector.prototype.toArray=function(){for(var e=new Array(this.elements.length/2),t=1,n=0;t<this.elements.length;t+=2,n++)e[n]=this.elements[t];return e},D.Vector.prototype.toJSON=function(){return this.elements},D.stemmer=(o={ational:"ate",tional:"tion",enci:"ence",anci:"ance",izer:"ize",bli:"ble",alli:"al",entli:"ent",eli:"e",ousli:"ous",ization:"ize",ation:"ate",ator:"ate",alism:"al",iveness:"ive",fulness:"ful",ousness:"ous",aliti:"al",iviti:"ive",biliti:"ble",logi:"log"},s={icate:"ic",ative:"",alize:"al",iciti:"ic",ical:"ic",ful:"",ness:""},d="^("+(u="[^aeiou][^aeiouy]*")+")?"+(c=(l="[aeiouy]")+"[aeiou]*")+u+"("+c+")?$",p="^("+u+")?"+c+u+c+u,f="^("+u+")?"+l,m=new RegExp("^("+u+")?"+c+u),h=new RegExp(p),g=new RegExp(d),b=new RegExp(f),v=/^(.+?)(ss|i)es$/,y=/^(.+?)([^s])s$/,x=/^(.+?)eed$/,w=/^(.+?)(ed|ing)$/,k=/.$/,S=/(at|bl|iz)$/,E=new RegExp("([^aeiouylsz])\\1$"),_=new RegExp("^"+u+l+"[^aeiouwxy]$"),C=/^(.+?[^aeiou])y$/,T=/^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/,P=/^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/,L=/^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/,O=/^(.+?)(s|t)(ion)$/,A=/^(.+?)e$/,N=/ll$/,I=new RegExp("^"+u+l+"[^aeiouwxy]$"),R=function(e){var t,n,r,a,i,l,u;if(e.length<3)return e;if("y"==(r=e.substr(0,1))&&(e=r.toUpperCase()+e.substr(1)),i=y,(a=v).test(e)?e=e.replace(a,"$1$2"):i.test(e)&&(e=e.replace(i,"$1$2")),i=w,(a=x).test(e)){var c=a.exec(e);(a=m).test(c[1])&&(a=k,e=e.replace(a,""))}else i.test(e)&&(t=(c=i.exec(e))[1],(i=b).test(t)&&(l=E,u=_,(i=S).test(e=t)?e+="e":l.test(e)?(a=k,e=e.replace(a,"")):u.test(e)&&(e+="e")));return(a=C).test(e)&&(e=(t=(c=a.exec(e))[1])+"i"),(a=T).test(e)&&(t=(c=a.exec(e))[1],n=c[2],(a=m).test(t)&&(e=t+o[n])),(a=P).test(e)&&(t=(c=a.exec(e))[1],n=c[2],(a=m).test(t)&&(e=t+s[n])),i=O,(a=L).test(e)?(t=(c=a.exec(e))[1],(a=h).test(t)&&(e=t)):i.test(e)&&(t=(c=i.exec(e))[1]+c[2],(i=h).test(t)&&(e=t)),(a=A).test(e)&&(t=(c=a.exec(e))[1],i=g,l=I,((a=h).test(t)||i.test(t)&&!l.test(t))&&(e=t)),i=h,(a=N).test(e)&&i.test(e)&&(a=k,e=e.replace(a,"")),"y"==r&&(e=r.toLowerCase()+e.substr(1)),e},function(e){return e.update(R)}),D.Pipeline.registerFunction(D.stemmer,"stemmer"),D.generateStopWordFilter=function(e){var t=e.reduce((function(e,t){return e[t]=t,e}),{});return function(e){if(e&&t[e.toString()]!==e.toString())return e}},D.stopWordFilter=D.generateStopWordFilter(["a","able","about","across","after","all","almost","also","am","among","an","and","any","are","as","at","be","because","been","but","by","can","cannot","could","dear","did","do","does","either","else","ever","every","for","from","get","got","had","has","have","he","her","hers","him","his","how","however","i","if","in","into","is","it","its","just","least","let","like","likely","may","me","might","most","must","my","neither","no","nor","not","of","off","often","on","only","or","other","our","own","rather","said","say","says","she","should","since","so","some","than","that","the","their","them","then","there","these","they","this","tis","to","too","twas","us","wants","was","we","were","what","when","where","which","while","who","whom","why","will","with","would","yet","you","your"]),D.Pipeline.registerFunction(D.stopWordFilter,"stopWordFilter"),D.trimmer=function(e){return e.update((function(e){return e.replace(/^\W+/,"").replace(/\W+$/,"")}))},D.Pipeline.registerFunction(D.trimmer,"trimmer"),D.TokenSet=function(){this.final=!1,this.edges={},this.id=D.TokenSet._nextId,D.TokenSet._nextId+=1},D.TokenSet._nextId=1,D.TokenSet.fromArray=function(e){for(var t=new D.TokenSet.Builder,n=0,r=e.length;n<r;n++)t.insert(e[n]);return t.finish(),t.root},D.TokenSet.fromClause=function(e){return"editDistance"in e?D.TokenSet.fromFuzzyString(e.term,e.editDistance):D.TokenSet.fromString(e.term)},D.TokenSet.fromFuzzyString=function(e,t){for(var n=new D.TokenSet,r=[{node:n,editsRemaining:t,str:e}];r.length;){var a=r.pop();if(a.str.length>0){var i,o=a.str.charAt(0);o in a.node.edges?i=a.node.edges[o]:(i=new D.TokenSet,a.node.edges[o]=i),1==a.str.length&&(i.final=!0),r.push({node:i,editsRemaining:a.editsRemaining,str:a.str.slice(1)})}if(0!=a.editsRemaining){if("*"in a.node.edges)var s=a.node.edges["*"];else{s=new D.TokenSet;a.node.edges["*"]=s}if(0==a.str.length&&(s.final=!0),r.push({node:s,editsRemaining:a.editsRemaining-1,str:a.str}),a.str.length>1&&r.push({node:a.node,editsRemaining:a.editsRemaining-1,str:a.str.slice(1)}),1==a.str.length&&(a.node.final=!0),a.str.length>=1){if("*"in a.node.edges)var l=a.node.edges["*"];else{l=new D.TokenSet;a.node.edges["*"]=l}1==a.str.length&&(l.final=!0),r.push({node:l,editsRemaining:a.editsRemaining-1,str:a.str.slice(1)})}if(a.str.length>1){var u,c=a.str.charAt(0),d=a.str.charAt(1);d in a.node.edges?u=a.node.edges[d]:(u=new D.TokenSet,a.node.edges[d]=u),1==a.str.length&&(u.final=!0),r.push({node:u,editsRemaining:a.editsRemaining-1,str:c+a.str.slice(2)})}}}return n},D.TokenSet.fromString=function(e){for(var t=new D.TokenSet,n=t,r=0,a=e.length;r<a;r++){var i=e[r],o=r==a-1;if("*"==i)t.edges[i]=t,t.final=o;else{var s=new D.TokenSet;s.final=o,t.edges[i]=s,t=s}}return n},D.TokenSet.prototype.toArray=function(){for(var e=[],t=[{prefix:"",node:this}];t.length;){var n=t.pop(),r=Object.keys(n.node.edges),a=r.length;n.node.final&&(n.prefix.charAt(0),e.push(n.prefix));for(var i=0;i<a;i++){var o=r[i];t.push({prefix:n.prefix.concat(o),node:n.node.edges[o]})}}return e},D.TokenSet.prototype.toString=function(){if(this._str)return this._str;for(var e=this.final?"1":"0",t=Object.keys(this.edges).sort(),n=t.length,r=0;r<n;r++){var a=t[r];e=e+a+this.edges[a].id}return e},D.TokenSet.prototype.intersect=function(e){for(var t=new D.TokenSet,n=void 0,r=[{qNode:e,output:t,node:this}];r.length;){n=r.pop();for(var a=Object.keys(n.qNode.edges),i=a.length,o=Object.keys(n.node.edges),s=o.length,l=0;l<i;l++)for(var u=a[l],c=0;c<s;c++){var d=o[c];if(d==u||"*"==u){var p=n.node.edges[d],f=n.qNode.edges[u],m=p.final&&f.final,h=void 0;d in n.output.edges?(h=n.output.edges[d]).final=h.final||m:((h=new D.TokenSet).final=m,n.output.edges[d]=h),r.push({qNode:f,output:h,node:p})}}}return t},D.TokenSet.Builder=function(){this.previousWord="",this.root=new D.TokenSet,this.uncheckedNodes=[],this.minimizedNodes={}},D.TokenSet.Builder.prototype.insert=function(e){var t,n=0;if(e<this.previousWord)throw new Error("Out of order word insertion");for(var r=0;r<e.length&&r<this.previousWord.length&&e[r]==this.previousWord[r];r++)n++;this.minimize(n),t=0==this.uncheckedNodes.length?this.root:this.uncheckedNodes[this.uncheckedNodes.length-1].child;for(r=n;r<e.length;r++){var a=new D.TokenSet,i=e[r];t.edges[i]=a,this.uncheckedNodes.push({parent:t,char:i,child:a}),t=a}t.final=!0,this.previousWord=e},D.TokenSet.Builder.prototype.finish=function(){this.minimize(0)},D.TokenSet.Builder.prototype.minimize=function(e){for(var t=this.uncheckedNodes.length-1;t>=e;t--){var n=this.uncheckedNodes[t],r=n.child.toString();r in this.minimizedNodes?n.parent.edges[n.char]=this.minimizedNodes[r]:(n.child._str=r,this.minimizedNodes[r]=n.child),this.uncheckedNodes.pop()}},D.Index=function(e){this.invertedIndex=e.invertedIndex,this.fieldVectors=e.fieldVectors,this.tokenSet=e.tokenSet,this.fields=e.fields,this.pipeline=e.pipeline},D.Index.prototype.search=function(e){return this.query((function(t){new D.QueryParser(e,t).parse()}))},D.Index.prototype.query=function(e){for(var t=new D.Query(this.fields),n=Object.create(null),r=Object.create(null),a=Object.create(null),i=Object.create(null),o=Object.create(null),s=0;s<this.fields.length;s++)r[this.fields[s]]=new D.Vector;e.call(t,t);for(s=0;s<t.clauses.length;s++){var l=t.clauses[s],u=null,c=D.Set.empty;u=l.usePipeline?this.pipeline.runString(l.term,{fields:l.fields}):[l.term];for(var d=0;d<u.length;d++){var p=u[d];l.term=p;var f=D.TokenSet.fromClause(l),m=this.tokenSet.intersect(f).toArray();if(0===m.length&&l.presence===D.Query.presence.REQUIRED){for(var h=0;h<l.fields.length;h++){i[A=l.fields[h]]=D.Set.empty}break}for(var g=0;g<m.length;g++){var b=m[g],v=this.invertedIndex[b],y=v._index;for(h=0;h<l.fields.length;h++){var x=v[A=l.fields[h]],w=Object.keys(x),k=b+"/"+A,S=new D.Set(w);if(l.presence==D.Query.presence.REQUIRED&&(c=c.union(S),void 0===i[A]&&(i[A]=D.Set.complete)),l.presence!=D.Query.presence.PROHIBITED){if(r[A].upsert(y,l.boost,(function(e,t){return e+t})),!a[k]){for(var E=0;E<w.length;E++){var _,C=w[E],T=new D.FieldRef(C,A),P=x[C];void 0===(_=n[T])?n[T]=new D.MatchData(b,A,P):_.add(b,A,P)}a[k]=!0}}else void 0===o[A]&&(o[A]=D.Set.empty),o[A]=o[A].union(S)}}}if(l.presence===D.Query.presence.REQUIRED)for(h=0;h<l.fields.length;h++){i[A=l.fields[h]]=i[A].intersect(c)}}var L=D.Set.complete,O=D.Set.empty;for(s=0;s<this.fields.length;s++){var A;i[A=this.fields[s]]&&(L=L.intersect(i[A])),o[A]&&(O=O.union(o[A]))}var N=Object.keys(n),I=[],R=Object.create(null);if(t.isNegated()){N=Object.keys(this.fieldVectors);for(s=0;s<N.length;s++){T=N[s];var M=D.FieldRef.fromString(T);n[T]=new D.MatchData}}for(s=0;s<N.length;s++){var F=(M=D.FieldRef.fromString(N[s])).docRef;if(L.contains(F)&&!O.contains(F)){var B,z=this.fieldVectors[M],$=r[M.fieldName].similarity(z);if(void 0!==(B=R[F]))B.score+=$,B.matchData.combine(n[M]);else{var j={ref:F,score:$,matchData:n[M]};R[F]=j,I.push(j)}}}return I.sort((function(e,t){return t.score-e.score}))},D.Index.prototype.toJSON=function(){var e=Object.keys(this.invertedIndex).sort().map((function(e){return[e,this.invertedIndex[e]]}),this),t=Object.keys(this.fieldVectors).map((function(e){return[e,this.fieldVectors[e].toJSON()]}),this);return{version:D.version,fields:this.fields,fieldVectors:t,invertedIndex:e,pipeline:this.pipeline.toJSON()}},D.Index.load=function(e){var t={},n={},r=e.fieldVectors,a=Object.create(null),i=e.invertedIndex,o=new D.TokenSet.Builder,s=D.Pipeline.load(e.pipeline);e.version!=D.version&&D.utils.warn("Version mismatch when loading serialised index. Current version of lunr '"+D.version+"' does not match serialized index '"+e.version+"'");for(var l=0;l<r.length;l++){var u=(d=r[l])[0],c=d[1];n[u]=new D.Vector(c)}for(l=0;l<i.length;l++){var d,p=(d=i[l])[0],f=d[1];o.insert(p),a[p]=f}return o.finish(),t.fields=e.fields,t.fieldVectors=n,t.invertedIndex=a,t.tokenSet=o.root,t.pipeline=s,new D.Index(t)},D.Builder=function(){this._ref="id",this._fields=Object.create(null),this._documents=Object.create(null),this.invertedIndex=Object.create(null),this.fieldTermFrequencies={},this.fieldLengths={},this.tokenizer=D.tokenizer,this.pipeline=new D.Pipeline,this.searchPipeline=new D.Pipeline,this.documentCount=0,this._b=.75,this._k1=1.2,this.termIndex=0,this.metadataWhitelist=[]},D.Builder.prototype.ref=function(e){this._ref=e},D.Builder.prototype.field=function(e,t){if(/\//.test(e))throw new RangeError("Field '"+e+"' contains illegal character '/'");this._fields[e]=t||{}},D.Builder.prototype.b=function(e){this._b=e<0?0:e>1?1:e},D.Builder.prototype.k1=function(e){this._k1=e},D.Builder.prototype.add=function(e,t){var n=e[this._ref],r=Object.keys(this._fields);this._documents[n]=t||{},this.documentCount+=1;for(var a=0;a<r.length;a++){var i=r[a],o=this._fields[i].extractor,s=o?o(e):e[i],l=this.tokenizer(s,{fields:[i]}),u=this.pipeline.run(l),c=new D.FieldRef(n,i),d=Object.create(null);this.fieldTermFrequencies[c]=d,this.fieldLengths[c]=0,this.fieldLengths[c]+=u.length;for(var p=0;p<u.length;p++){var f=u[p];if(null==d[f]&&(d[f]=0),d[f]+=1,null==this.invertedIndex[f]){var m=Object.create(null);m._index=this.termIndex,this.termIndex+=1;for(var h=0;h<r.length;h++)m[r[h]]=Object.create(null);this.invertedIndex[f]=m}null==this.invertedIndex[f][i][n]&&(this.invertedIndex[f][i][n]=Object.create(null));for(var g=0;g<this.metadataWhitelist.length;g++){var b=this.metadataWhitelist[g],v=f.metadata[b];null==this.invertedIndex[f][i][n][b]&&(this.invertedIndex[f][i][n][b]=[]),this.invertedIndex[f][i][n][b].push(v)}}}},D.Builder.prototype.calculateAverageFieldLengths=function(){for(var e=Object.keys(this.fieldLengths),t=e.length,n={},r={},a=0;a<t;a++){var i=D.FieldRef.fromString(e[a]),o=i.fieldName;r[o]||(r[o]=0),r[o]+=1,n[o]||(n[o]=0),n[o]+=this.fieldLengths[i]}var s=Object.keys(this._fields);for(a=0;a<s.length;a++){var l=s[a];n[l]=n[l]/r[l]}this.averageFieldLength=n},D.Builder.prototype.createFieldVectors=function(){for(var e={},t=Object.keys(this.fieldTermFrequencies),n=t.length,r=Object.create(null),a=0;a<n;a++){for(var i=D.FieldRef.fromString(t[a]),o=i.fieldName,s=this.fieldLengths[i],l=new D.Vector,u=this.fieldTermFrequencies[i],c=Object.keys(u),d=c.length,p=this._fields[o].boost||1,f=this._documents[i.docRef].boost||1,m=0;m<d;m++){var h,g,b,v=c[m],y=u[v],x=this.invertedIndex[v]._index;void 0===r[v]?(h=D.idf(this.invertedIndex[v],this.documentCount),r[v]=h):h=r[v],g=h*((this._k1+1)*y)/(this._k1*(1-this._b+this._b*(s/this.averageFieldLength[o]))+y),g*=p,g*=f,b=Math.round(1e3*g)/1e3,l.insert(x,b)}e[i]=l}this.fieldVectors=e},D.Builder.prototype.createTokenSet=function(){this.tokenSet=D.TokenSet.fromArray(Object.keys(this.invertedIndex).sort())},D.Builder.prototype.build=function(){return this.calculateAverageFieldLengths(),this.createFieldVectors(),this.createTokenSet(),new D.Index({invertedIndex:this.invertedIndex,fieldVectors:this.fieldVectors,tokenSet:this.tokenSet,fields:Object.keys(this._fields),pipeline:this.searchPipeline})},D.Builder.prototype.use=function(e){var t=Array.prototype.slice.call(arguments,1);t.unshift(this),e.apply(this,t)},D.MatchData=function(e,t,n){for(var r=Object.create(null),a=Object.keys(n||{}),i=0;i<a.length;i++){var o=a[i];r[o]=n[o].slice()}this.metadata=Object.create(null),void 0!==e&&(this.metadata[e]=Object.create(null),this.metadata[e][t]=r)},D.MatchData.prototype.combine=function(e){for(var t=Object.keys(e.metadata),n=0;n<t.length;n++){var r=t[n],a=Object.keys(e.metadata[r]);null==this.metadata[r]&&(this.metadata[r]=Object.create(null));for(var i=0;i<a.length;i++){var o=a[i],s=Object.keys(e.metadata[r][o]);null==this.metadata[r][o]&&(this.metadata[r][o]=Object.create(null));for(var l=0;l<s.length;l++){var u=s[l];null==this.metadata[r][o][u]?this.metadata[r][o][u]=e.metadata[r][o][u]:this.metadata[r][o][u]=this.metadata[r][o][u].concat(e.metadata[r][o][u])}}}},D.MatchData.prototype.add=function(e,t,n){if(!(e in this.metadata))return this.metadata[e]=Object.create(null),void(this.metadata[e][t]=n);if(t in this.metadata[e])for(var r=Object.keys(n),a=0;a<r.length;a++){var i=r[a];i in this.metadata[e][t]?this.metadata[e][t][i]=this.metadata[e][t][i].concat(n[i]):this.metadata[e][t][i]=n[i]}else this.metadata[e][t]=n},D.Query=function(e){this.clauses=[],this.allFields=e},D.Query.wildcard=new String("*"),D.Query.wildcard.NONE=0,D.Query.wildcard.LEADING=1,D.Query.wildcard.TRAILING=2,D.Query.presence={OPTIONAL:1,REQUIRED:2,PROHIBITED:3},D.Query.prototype.clause=function(e){return"fields"in e||(e.fields=this.allFields),"boost"in e||(e.boost=1),"usePipeline"in e||(e.usePipeline=!0),"wildcard"in e||(e.wildcard=D.Query.wildcard.NONE),e.wildcard&D.Query.wildcard.LEADING&&e.term.charAt(0)!=D.Query.wildcard&&(e.term="*"+e.term),e.wildcard&D.Query.wildcard.TRAILING&&e.term.slice(-1)!=D.Query.wildcard&&(e.term=e.term+"*"),"presence"in e||(e.presence=D.Query.presence.OPTIONAL),this.clauses.push(e),this},D.Query.prototype.isNegated=function(){for(var e=0;e<this.clauses.length;e++)if(this.clauses[e].presence!=D.Query.presence.PROHIBITED)return!1;return!0},D.Query.prototype.term=function(e,t){if(Array.isArray(e))return e.forEach((function(e){this.term(e,D.utils.clone(t))}),this),this;var n=t||{};return n.term=e.toString(),this.clause(n),this},D.QueryParseError=function(e,t,n){this.name="QueryParseError",this.message=e,this.start=t,this.end=n},D.QueryParseError.prototype=new Error,D.QueryLexer=function(e){this.lexemes=[],this.str=e,this.length=e.length,this.pos=0,this.start=0,this.escapeCharPositions=[]},D.QueryLexer.prototype.run=function(){for(var e=D.QueryLexer.lexText;e;)e=e(this)},D.QueryLexer.prototype.sliceString=function(){for(var e=[],t=this.start,n=this.pos,r=0;r<this.escapeCharPositions.length;r++)n=this.escapeCharPositions[r],e.push(this.str.slice(t,n)),t=n+1;return e.push(this.str.slice(t,this.pos)),this.escapeCharPositions.length=0,e.join("")},D.QueryLexer.prototype.emit=function(e){this.lexemes.push({type:e,str:this.sliceString(),start:this.start,end:this.pos}),this.start=this.pos},D.QueryLexer.prototype.escapeCharacter=function(){this.escapeCharPositions.push(this.pos-1),this.pos+=1},D.QueryLexer.prototype.next=function(){if(this.pos>=this.length)return D.QueryLexer.EOS;var e=this.str.charAt(this.pos);return this.pos+=1,e},D.QueryLexer.prototype.width=function(){return this.pos-this.start},D.QueryLexer.prototype.ignore=function(){this.start==this.pos&&(this.pos+=1),this.start=this.pos},D.QueryLexer.prototype.backup=function(){this.pos-=1},D.QueryLexer.prototype.acceptDigitRun=function(){var e,t;do{t=(e=this.next()).charCodeAt(0)}while(t>47&&t<58);e!=D.QueryLexer.EOS&&this.backup()},D.QueryLexer.prototype.more=function(){return this.pos<this.length},D.QueryLexer.EOS="EOS",D.QueryLexer.FIELD="FIELD",D.QueryLexer.TERM="TERM",D.QueryLexer.EDIT_DISTANCE="EDIT_DISTANCE",D.QueryLexer.BOOST="BOOST",D.QueryLexer.PRESENCE="PRESENCE",D.QueryLexer.lexField=function(e){return e.backup(),e.emit(D.QueryLexer.FIELD),e.ignore(),D.QueryLexer.lexText},D.QueryLexer.lexTerm=function(e){if(e.width()>1&&(e.backup(),e.emit(D.QueryLexer.TERM)),e.ignore(),e.more())return D.QueryLexer.lexText},D.QueryLexer.lexEditDistance=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(D.QueryLexer.EDIT_DISTANCE),D.QueryLexer.lexText},D.QueryLexer.lexBoost=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(D.QueryLexer.BOOST),D.QueryLexer.lexText},D.QueryLexer.lexEOS=function(e){e.width()>0&&e.emit(D.QueryLexer.TERM)},D.QueryLexer.termSeparator=D.tokenizer.separator,D.QueryLexer.lexText=function(e){for(;;){var t=e.next();if(t==D.QueryLexer.EOS)return D.QueryLexer.lexEOS;if(92!=t.charCodeAt(0)){if(":"==t)return D.QueryLexer.lexField;if("~"==t)return e.backup(),e.width()>0&&e.emit(D.QueryLexer.TERM),D.QueryLexer.lexEditDistance;if("^"==t)return e.backup(),e.width()>0&&e.emit(D.QueryLexer.TERM),D.QueryLexer.lexBoost;if("+"==t&&1===e.width())return e.emit(D.QueryLexer.PRESENCE),D.QueryLexer.lexText;if("-"==t&&1===e.width())return e.emit(D.QueryLexer.PRESENCE),D.QueryLexer.lexText;if(t.match(D.QueryLexer.termSeparator))return D.QueryLexer.lexTerm}else e.escapeCharacter()}},D.QueryParser=function(e,t){this.lexer=new D.QueryLexer(e),this.query=t,this.currentClause={},this.lexemeIdx=0},D.QueryParser.prototype.parse=function(){this.lexer.run(),this.lexemes=this.lexer.lexemes;for(var e=D.QueryParser.parseClause;e;)e=e(this);return this.query},D.QueryParser.prototype.peekLexeme=function(){return this.lexemes[this.lexemeIdx]},D.QueryParser.prototype.consumeLexeme=function(){var e=this.peekLexeme();return this.lexemeIdx+=1,e},D.QueryParser.prototype.nextClause=function(){var e=this.currentClause;this.query.clause(e),this.currentClause={}},D.QueryParser.parseClause=function(e){var t=e.peekLexeme();if(null!=t)switch(t.type){case D.QueryLexer.PRESENCE:return D.QueryParser.parsePresence;case D.QueryLexer.FIELD:return D.QueryParser.parseField;case D.QueryLexer.TERM:return D.QueryParser.parseTerm;default:var n="expected either a field or a term, found "+t.type;throw t.str.length>=1&&(n+=" with value '"+t.str+"'"),new D.QueryParseError(n,t.start,t.end)}},D.QueryParser.parsePresence=function(e){var t=e.consumeLexeme();if(null!=t){switch(t.str){case"-":e.currentClause.presence=D.Query.presence.PROHIBITED;break;case"+":e.currentClause.presence=D.Query.presence.REQUIRED;break;default:var n="unrecognised presence operator'"+t.str+"'";throw new D.QueryParseError(n,t.start,t.end)}var r=e.peekLexeme();if(null==r){n="expecting term or field, found nothing";throw new D.QueryParseError(n,t.start,t.end)}switch(r.type){case D.QueryLexer.FIELD:return D.QueryParser.parseField;case D.QueryLexer.TERM:return D.QueryParser.parseTerm;default:n="expecting term or field, found '"+r.type+"'";throw new D.QueryParseError(n,r.start,r.end)}}},D.QueryParser.parseField=function(e){var t=e.consumeLexeme();if(null!=t){if(-1==e.query.allFields.indexOf(t.str)){var n=e.query.allFields.map((function(e){return"'"+e+"'"})).join(", "),r="unrecognised field '"+t.str+"', possible fields: "+n;throw new D.QueryParseError(r,t.start,t.end)}e.currentClause.fields=[t.str];var a=e.peekLexeme();if(null==a){r="expecting term, found nothing";throw new D.QueryParseError(r,t.start,t.end)}if(a.type===D.QueryLexer.TERM)return D.QueryParser.parseTerm;r="expecting term, found '"+a.type+"'";throw new D.QueryParseError(r,a.start,a.end)}},D.QueryParser.parseTerm=function(e){var t=e.consumeLexeme();if(null!=t){e.currentClause.term=t.str.toLowerCase(),-1!=t.str.indexOf("*")&&(e.currentClause.usePipeline=!1);var n=e.peekLexeme();if(null!=n)switch(n.type){case D.QueryLexer.TERM:return e.nextClause(),D.QueryParser.parseTerm;case D.QueryLexer.FIELD:return e.nextClause(),D.QueryParser.parseField;case D.QueryLexer.EDIT_DISTANCE:return D.QueryParser.parseEditDistance;case D.QueryLexer.BOOST:return D.QueryParser.parseBoost;case D.QueryLexer.PRESENCE:return e.nextClause(),D.QueryParser.parsePresence;default:var r="Unexpected lexeme type '"+n.type+"'";throw new D.QueryParseError(r,n.start,n.end)}else e.nextClause()}},D.QueryParser.parseEditDistance=function(e){var t=e.consumeLexeme();if(null!=t){var n=parseInt(t.str,10);if(isNaN(n)){var r="edit distance must be numeric";throw new D.QueryParseError(r,t.start,t.end)}e.currentClause.editDistance=n;var a=e.peekLexeme();if(null!=a)switch(a.type){case D.QueryLexer.TERM:return e.nextClause(),D.QueryParser.parseTerm;case D.QueryLexer.FIELD:return e.nextClause(),D.QueryParser.parseField;case D.QueryLexer.EDIT_DISTANCE:return D.QueryParser.parseEditDistance;case D.QueryLexer.BOOST:return D.QueryParser.parseBoost;case D.QueryLexer.PRESENCE:return e.nextClause(),D.QueryParser.parsePresence;default:r="Unexpected lexeme type '"+a.type+"'";throw new D.QueryParseError(r,a.start,a.end)}else e.nextClause()}},D.QueryParser.parseBoost=function(e){var t=e.consumeLexeme();if(null!=t){var n=parseInt(t.str,10);if(isNaN(n)){var r="boost must be numeric";throw new D.QueryParseError(r,t.start,t.end)}e.currentClause.boost=n;var a=e.peekLexeme();if(null!=a)switch(a.type){case D.QueryLexer.TERM:return e.nextClause(),D.QueryParser.parseTerm;case D.QueryLexer.FIELD:return e.nextClause(),D.QueryParser.parseField;case D.QueryLexer.EDIT_DISTANCE:return D.QueryParser.parseEditDistance;case D.QueryLexer.BOOST:return D.QueryParser.parseBoost;case D.QueryLexer.PRESENCE:return e.nextClause(),D.QueryParser.parsePresence;default:r="Unexpected lexeme type '"+a.type+"'";throw new D.QueryParseError(r,a.start,a.end)}else e.nextClause()}},void 0===(a="function"==typeof(r=function(){return D})?r.call(t,n,t,e):r)||(e.exports=a)}()},2497:(e,t,n)=>{"use strict";n.r(t)},2295:(e,t,n)=>{"use strict";n.r(t)},4865:function(e,t,n){var r,a;r=function(){var e,t,n={version:"0.2.0"},r=n.settings={minimum:.08,easing:"ease",positionUsing:"",speed:200,trickle:!0,trickleRate:.02,trickleSpeed:800,showSpinner:!0,barSelector:'[role="bar"]',spinnerSelector:'[role="spinner"]',parent:"body",template:'<div class="bar" role="bar"><div class="peg"></div></div><div class="spinner" role="spinner"><div class="spinner-icon"></div></div>'};function a(e,t,n){return e<t?t:e>n?n:e}function i(e){return 100*(-1+e)}function o(e,t,n){var a;return(a="translate3d"===r.positionUsing?{transform:"translate3d("+i(e)+"%,0,0)"}:"translate"===r.positionUsing?{transform:"translate("+i(e)+"%,0)"}:{"margin-left":i(e)+"%"}).transition="all "+t+"ms "+n,a}n.configure=function(e){var t,n;for(t in e)void 0!==(n=e[t])&&e.hasOwnProperty(t)&&(r[t]=n);return this},n.status=null,n.set=function(e){var t=n.isStarted();e=a(e,r.minimum,1),n.status=1===e?null:e;var i=n.render(!t),u=i.querySelector(r.barSelector),c=r.speed,d=r.easing;return i.offsetWidth,s((function(t){""===r.positionUsing&&(r.positionUsing=n.getPositioningCSS()),l(u,o(e,c,d)),1===e?(l(i,{transition:"none",opacity:1}),i.offsetWidth,setTimeout((function(){l(i,{transition:"all "+c+"ms linear",opacity:0}),setTimeout((function(){n.remove(),t()}),c)}),c)):setTimeout(t,c)})),this},n.isStarted=function(){return"number"==typeof n.status},n.start=function(){n.status||n.set(0);var e=function(){setTimeout((function(){n.status&&(n.trickle(),e())}),r.trickleSpeed)};return r.trickle&&e(),this},n.done=function(e){return e||n.status?n.inc(.3+.5*Math.random()).set(1):this},n.inc=function(e){var t=n.status;return t?("number"!=typeof e&&(e=(1-t)*a(Math.random()*t,.1,.95)),t=a(t+e,0,.994),n.set(t)):n.start()},n.trickle=function(){return n.inc(Math.random()*r.trickleRate)},e=0,t=0,n.promise=function(r){return r&&"resolved"!==r.state()?(0===t&&n.start(),e++,t++,r.always((function(){0==--t?(e=0,n.done()):n.set((e-t)/e)})),this):this},n.render=function(e){if(n.isRendered())return document.getElementById("nprogress");c(document.documentElement,"nprogress-busy");var t=document.createElement("div");t.id="nprogress",t.innerHTML=r.template;var a,o=t.querySelector(r.barSelector),s=e?"-100":i(n.status||0),u=document.querySelector(r.parent);return l(o,{transition:"all 0 linear",transform:"translate3d("+s+"%,0,0)"}),r.showSpinner||(a=t.querySelector(r.spinnerSelector))&&f(a),u!=document.body&&c(u,"nprogress-custom-parent"),u.appendChild(t),t},n.remove=function(){d(document.documentElement,"nprogress-busy"),d(document.querySelector(r.parent),"nprogress-custom-parent");var e=document.getElementById("nprogress");e&&f(e)},n.isRendered=function(){return!!document.getElementById("nprogress")},n.getPositioningCSS=function(){var e=document.body.style,t="WebkitTransform"in e?"Webkit":"MozTransform"in e?"Moz":"msTransform"in e?"ms":"OTransform"in e?"O":"";return t+"Perspective"in e?"translate3d":t+"Transform"in e?"translate":"margin"};var s=function(){var e=[];function t(){var n=e.shift();n&&n(t)}return function(n){e.push(n),1==e.length&&t()}}(),l=function(){var e=["Webkit","O","Moz","ms"],t={};function n(e){return e.replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,(function(e,t){return t.toUpperCase()}))}function r(t){var n=document.body.style;if(t in n)return t;for(var r,a=e.length,i=t.charAt(0).toUpperCase()+t.slice(1);a--;)if((r=e[a]+i)in n)return r;return t}function a(e){return e=n(e),t[e]||(t[e]=r(e))}function i(e,t,n){t=a(t),e.style[t]=n}return function(e,t){var n,r,a=arguments;if(2==a.length)for(n in t)void 0!==(r=t[n])&&t.hasOwnProperty(n)&&i(e,n,r);else i(e,a[1],a[2])}}();function u(e,t){return("string"==typeof e?e:p(e)).indexOf(" "+t+" ")>=0}function c(e,t){var n=p(e),r=n+t;u(n,t)||(e.className=r.substring(1))}function d(e,t){var n,r=p(e);u(e,t)&&(n=r.replace(" "+t+" "," "),e.className=n.substring(1,n.length-1))}function p(e){return(" "+(e.className||"")+" ").replace(/\s+/gi," ")}function f(e){e&&e.parentNode&&e.parentNode.removeChild(e)}return n},void 0===(a="function"==typeof r?r.call(t,n,t,e):r)||(e.exports=a)},7418:e=>{"use strict";var t=Object.getOwnPropertySymbols,n=Object.prototype.hasOwnProperty,r=Object.prototype.propertyIsEnumerable;function a(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map((function(e){return t[e]})).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach((function(e){r[e]=e})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(a){return!1}}()?Object.assign:function(e,i){for(var o,s,l=a(e),u=1;u<arguments.length;u++){for(var c in o=Object(arguments[u]))n.call(o,c)&&(l[c]=o[c]);if(t){s=t(o);for(var d=0;d<s.length;d++)r.call(o,s[d])&&(l[s[d]]=o[s[d]])}}return l}},7410:(e,t,n)=>{"use strict";n.d(t,{Z:()=>i});var r=function(){var e=/(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i,t=0,n={},r={util:{encode:function e(t){return t instanceof a?new a(t.type,e(t.content),t.alias):Array.isArray(t)?t.map(e):t.replace(/&/g,"&").replace(/</g,"<").replace(/\u00a0/g," ")},type:function(e){return Object.prototype.toString.call(e).slice(8,-1)},objId:function(e){return e.__id||Object.defineProperty(e,"__id",{value:++t}),e.__id},clone:function e(t,n){var a,i;switch(n=n||{},r.util.type(t)){case"Object":if(i=r.util.objId(t),n[i])return n[i];for(var o in a={},n[i]=a,t)t.hasOwnProperty(o)&&(a[o]=e(t[o],n));return a;case"Array":return i=r.util.objId(t),n[i]?n[i]:(a=[],n[i]=a,t.forEach((function(t,r){a[r]=e(t,n)})),a);default:return t}},getLanguage:function(t){for(;t;){var n=e.exec(t.className);if(n)return n[1].toLowerCase();t=t.parentElement}return"none"},setLanguage:function(t,n){t.className=t.className.replace(RegExp(e,"gi"),""),t.classList.add("language-"+n)},isActive:function(e,t,n){for(var r="no-"+t;e;){var a=e.classList;if(a.contains(t))return!0;if(a.contains(r))return!1;e=e.parentElement}return!!n}},languages:{plain:n,plaintext:n,text:n,txt:n,extend:function(e,t){var n=r.util.clone(r.languages[e]);for(var a in t)n[a]=t[a];return n},insertBefore:function(e,t,n,a){var i=(a=a||r.languages)[e],o={};for(var s in i)if(i.hasOwnProperty(s)){if(s==t)for(var l in n)n.hasOwnProperty(l)&&(o[l]=n[l]);n.hasOwnProperty(s)||(o[s]=i[s])}var u=a[e];return a[e]=o,r.languages.DFS(r.languages,(function(t,n){n===u&&t!=e&&(this[t]=o)})),o},DFS:function e(t,n,a,i){i=i||{};var o=r.util.objId;for(var s in t)if(t.hasOwnProperty(s)){n.call(t,s,t[s],a||s);var l=t[s],u=r.util.type(l);"Object"!==u||i[o(l)]?"Array"!==u||i[o(l)]||(i[o(l)]=!0,e(l,n,s,i)):(i[o(l)]=!0,e(l,n,null,i))}}},plugins:{},highlight:function(e,t,n){var i={code:e,grammar:t,language:n};return r.hooks.run("before-tokenize",i),i.tokens=r.tokenize(i.code,i.grammar),r.hooks.run("after-tokenize",i),a.stringify(r.util.encode(i.tokens),i.language)},tokenize:function(e,t){var n=t.rest;if(n){for(var r in n)t[r]=n[r];delete t.rest}var a=new s;return l(a,a.head,e),o(e,a,t,a.head,0),function(e){var t=[],n=e.head.next;for(;n!==e.tail;)t.push(n.value),n=n.next;return t}(a)},hooks:{all:{},add:function(e,t){var n=r.hooks.all;n[e]=n[e]||[],n[e].push(t)},run:function(e,t){var n=r.hooks.all[e];if(n&&n.length)for(var a,i=0;a=n[i++];)a(t)}},Token:a};function a(e,t,n,r){this.type=e,this.content=t,this.alias=n,this.length=0|(r||"").length}function i(e,t,n,r){e.lastIndex=t;var a=e.exec(n);if(a&&r&&a[1]){var i=a[1].length;a.index+=i,a[0]=a[0].slice(i)}return a}function o(e,t,n,s,c,d){for(var p in n)if(n.hasOwnProperty(p)&&n[p]){var f=n[p];f=Array.isArray(f)?f:[f];for(var m=0;m<f.length;++m){if(d&&d.cause==p+","+m)return;var h=f[m],g=h.inside,b=!!h.lookbehind,v=!!h.greedy,y=h.alias;if(v&&!h.pattern.global){var x=h.pattern.toString().match(/[imsuy]*$/)[0];h.pattern=RegExp(h.pattern.source,x+"g")}for(var w=h.pattern||h,k=s.next,S=c;k!==t.tail&&!(d&&S>=d.reach);S+=k.value.length,k=k.next){var E=k.value;if(t.length>e.length)return;if(!(E instanceof a)){var _,C=1;if(v){if(!(_=i(w,S,e,b))||_.index>=e.length)break;var T=_.index,P=_.index+_[0].length,L=S;for(L+=k.value.length;T>=L;)L+=(k=k.next).value.length;if(S=L-=k.value.length,k.value instanceof a)continue;for(var O=k;O!==t.tail&&(L<P||"string"==typeof O.value);O=O.next)C++,L+=O.value.length;C--,E=e.slice(S,L),_.index-=S}else if(!(_=i(w,0,E,b)))continue;T=_.index;var A=_[0],N=E.slice(0,T),I=E.slice(T+A.length),R=S+E.length;d&&R>d.reach&&(d.reach=R);var D=k.prev;if(N&&(D=l(t,D,N),S+=N.length),u(t,D,C),k=l(t,D,new a(p,g?r.tokenize(A,g):A,y,A)),I&&l(t,k,I),C>1){var M={cause:p+","+m,reach:R};o(e,t,n,k.prev,S,M),d&&M.reach>d.reach&&(d.reach=M.reach)}}}}}}function s(){var e={value:null,prev:null,next:null},t={value:null,prev:e,next:null};e.next=t,this.head=e,this.tail=t,this.length=0}function l(e,t,n){var r=t.next,a={value:n,prev:t,next:r};return t.next=a,r.prev=a,e.length++,a}function u(e,t,n){for(var r=t.next,a=0;a<n&&r!==e.tail;a++)r=r.next;t.next=r,r.prev=t,e.length-=a}return a.stringify=function e(t,n){if("string"==typeof t)return t;if(Array.isArray(t)){var a="";return t.forEach((function(t){a+=e(t,n)})),a}var i={type:t.type,content:e(t.content,n),tag:"span",classes:["token",t.type],attributes:{},language:n},o=t.alias;o&&(Array.isArray(o)?Array.prototype.push.apply(i.classes,o):i.classes.push(o)),r.hooks.run("wrap",i);var s="";for(var l in i.attributes)s+=" "+l+'="'+(i.attributes[l]||"").replace(/"/g,""")+'"';return"<"+i.tag+' class="'+i.classes.join(" ")+'"'+s+">"+i.content+"</"+i.tag+">"},r}(),a=r;r.default=r,a.languages.markup={comment:{pattern:/<!--(?:(?!<!--)[\s\S])*?-->/,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/<!DOCTYPE(?:[^>"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|<!--(?:[^-]|-(?!->))*-->)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^\[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^<!|>$|[[\]]/,"doctype-tag":/^DOCTYPE/i,name:/[^\s<>'"]+/}},cdata:{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,greedy:!0},tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]},a.languages.markup.tag.inside["attr-value"].inside.entity=a.languages.markup.entity,a.languages.markup.doctype.inside["internal-subset"].inside=a.languages.markup,a.hooks.add("wrap",(function(e){"entity"===e.type&&(e.attributes.title=e.content.replace(/&/,"&"))})),Object.defineProperty(a.languages.markup.tag,"addInlined",{value:function(e,t){var n={};n["language-"+t]={pattern:/(^<!\[CDATA\[)[\s\S]+?(?=\]\]>$)/i,lookbehind:!0,inside:a.languages[t]},n.cdata=/^<!\[CDATA\[|\]\]>$/i;var r={"included-cdata":{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,inside:n}};r["language-"+t]={pattern:/[\s\S]+/,inside:a.languages[t]};var i={};i[e]={pattern:RegExp(/(<__[^>]*>)(?:<!\[CDATA\[(?:[^\]]|\](?!\]>))*\]\]>|(?!<!\[CDATA\[)[\s\S])*?(?=<\/__>)/.source.replace(/__/g,(function(){return e})),"i"),lookbehind:!0,greedy:!0,inside:r},a.languages.insertBefore("markup","cdata",i)}}),Object.defineProperty(a.languages.markup.tag,"addAttribute",{value:function(e,t){a.languages.markup.tag.inside["special-attr"].push({pattern:RegExp(/(^|["'\s])/.source+"(?:"+e+")"+/\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))/.source,"i"),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[t,"language-"+t],inside:a.languages[t]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}}),a.languages.html=a.languages.markup,a.languages.mathml=a.languages.markup,a.languages.svg=a.languages.markup,a.languages.xml=a.languages.extend("markup",{}),a.languages.ssml=a.languages.xml,a.languages.atom=a.languages.xml,a.languages.rss=a.languages.xml,function(e){var t="\\b(?:BASH|BASHOPTS|BASH_ALIASES|BASH_ARGC|BASH_ARGV|BASH_CMDS|BASH_COMPLETION_COMPAT_DIR|BASH_LINENO|BASH_REMATCH|BASH_SOURCE|BASH_VERSINFO|BASH_VERSION|COLORTERM|COLUMNS|COMP_WORDBREAKS|DBUS_SESSION_BUS_ADDRESS|DEFAULTS_PATH|DESKTOP_SESSION|DIRSTACK|DISPLAY|EUID|GDMSESSION|GDM_LANG|GNOME_KEYRING_CONTROL|GNOME_KEYRING_PID|GPG_AGENT_INFO|GROUPS|HISTCONTROL|HISTFILE|HISTFILESIZE|HISTSIZE|HOME|HOSTNAME|HOSTTYPE|IFS|INSTANCE|JOB|LANG|LANGUAGE|LC_ADDRESS|LC_ALL|LC_IDENTIFICATION|LC_MEASUREMENT|LC_MONETARY|LC_NAME|LC_NUMERIC|LC_PAPER|LC_TELEPHONE|LC_TIME|LESSCLOSE|LESSOPEN|LINES|LOGNAME|LS_COLORS|MACHTYPE|MAILCHECK|MANDATORY_PATH|NO_AT_BRIDGE|OLDPWD|OPTERR|OPTIND|ORBIT_SOCKETDIR|OSTYPE|PAPERSIZE|PATH|PIPESTATUS|PPID|PS1|PS2|PS3|PS4|PWD|RANDOM|REPLY|SECONDS|SELINUX_INIT|SESSION|SESSIONTYPE|SESSION_MANAGER|SHELL|SHELLOPTS|SHLVL|SSH_AUTH_SOCK|TERM|UID|UPSTART_EVENTS|UPSTART_INSTANCE|UPSTART_JOB|UPSTART_SESSION|USER|WINDOWID|XAUTHORITY|XDG_CONFIG_DIRS|XDG_CURRENT_DESKTOP|XDG_DATA_DIRS|XDG_GREETER_DATA_DIR|XDG_MENU_PREFIX|XDG_RUNTIME_DIR|XDG_SEAT|XDG_SEAT_PATH|XDG_SESSION_DESKTOP|XDG_SESSION_ID|XDG_SESSION_PATH|XDG_SESSION_TYPE|XDG_VTNR|XMODIFIERS)\\b",n={pattern:/(^(["']?)\w+\2)[ \t]+\S.*/,lookbehind:!0,alias:"punctuation",inside:null},r={bash:n,environment:{pattern:RegExp("\\$"+t),alias:"constant"},variable:[{pattern:/\$?\(\([\s\S]+?\)\)/,greedy:!0,inside:{variable:[{pattern:/(^\$\(\([\s\S]+)\)\)/,lookbehind:!0},/^\$\(\(/],number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee]-?\d+)?/,operator:/--|\+\+|\*\*=?|<<=?|>>=?|&&|\|\||[=!+\-*/%<>^&|]=?|[?~:]/,punctuation:/\(\(?|\)\)?|,|;/}},{pattern:/\$\((?:\([^)]+\)|[^()])+\)|`[^`]+`/,greedy:!0,inside:{variable:/^\$\(|^`|\)$|`$/}},{pattern:/\$\{[^}]+\}/,greedy:!0,inside:{operator:/:[-=?+]?|[!\/]|##?|%%?|\^\^?|,,?/,punctuation:/[\[\]]/,environment:{pattern:RegExp("(\\{)"+t),lookbehind:!0,alias:"constant"}}},/\$(?:\w+|[#?*!@$])/],entity:/\\(?:[abceEfnrtv\\"]|O?[0-7]{1,3}|U[0-9a-fA-F]{8}|u[0-9a-fA-F]{4}|x[0-9a-fA-F]{1,2})/};e.languages.bash={shebang:{pattern:/^#!\s*\/.*/,alias:"important"},comment:{pattern:/(^|[^"{\\$])#.*/,lookbehind:!0},"function-name":[{pattern:/(\bfunction\s+)[\w-]+(?=(?:\s*\(?:\s*\))?\s*\{)/,lookbehind:!0,alias:"function"},{pattern:/\b[\w-]+(?=\s*\(\s*\)\s*\{)/,alias:"function"}],"for-or-select":{pattern:/(\b(?:for|select)\s+)\w+(?=\s+in\s)/,alias:"variable",lookbehind:!0},"assign-left":{pattern:/(^|[\s;|&]|[<>]\()\w+(?=\+?=)/,inside:{environment:{pattern:RegExp("(^|[\\s;|&]|[<>]\\()"+t),lookbehind:!0,alias:"constant"}},alias:"variable",lookbehind:!0},string:[{pattern:/((?:^|[^<])<<-?\s*)(\w+)\s[\s\S]*?(?:\r?\n|\r)\2/,lookbehind:!0,greedy:!0,inside:r},{pattern:/((?:^|[^<])<<-?\s*)(["'])(\w+)\2\s[\s\S]*?(?:\r?\n|\r)\3/,lookbehind:!0,greedy:!0,inside:{bash:n}},{pattern:/(^|[^\\](?:\\\\)*)"(?:\\[\s\S]|\$\([^)]+\)|\$(?!\()|`[^`]+`|[^"\\`$])*"/,lookbehind:!0,greedy:!0,inside:r},{pattern:/(^|[^$\\])'[^']*'/,lookbehind:!0,greedy:!0},{pattern:/\$'(?:[^'\\]|\\[\s\S])*'/,greedy:!0,inside:{entity:r.entity}}],environment:{pattern:RegExp("\\$?"+t),alias:"constant"},variable:r.variable,function:{pattern:/(^|[\s;|&]|[<>]\()(?:add|apropos|apt|apt-cache|apt-get|aptitude|aspell|automysqlbackup|awk|basename|bash|bc|bconsole|bg|bzip2|cal|cat|cfdisk|chgrp|chkconfig|chmod|chown|chroot|cksum|clear|cmp|column|comm|composer|cp|cron|crontab|csplit|curl|cut|date|dc|dd|ddrescue|debootstrap|df|diff|diff3|dig|dir|dircolors|dirname|dirs|dmesg|docker|docker-compose|du|egrep|eject|env|ethtool|expand|expect|expr|fdformat|fdisk|fg|fgrep|file|find|fmt|fold|format|free|fsck|ftp|fuser|gawk|git|gparted|grep|groupadd|groupdel|groupmod|groups|grub-mkconfig|gzip|halt|head|hg|history|host|hostname|htop|iconv|id|ifconfig|ifdown|ifup|import|install|ip|jobs|join|kill|killall|less|link|ln|locate|logname|logrotate|look|lpc|lpr|lprint|lprintd|lprintq|lprm|ls|lsof|lynx|make|man|mc|mdadm|mkconfig|mkdir|mke2fs|mkfifo|mkfs|mkisofs|mknod|mkswap|mmv|more|most|mount|mtools|mtr|mutt|mv|nano|nc|netstat|nice|nl|node|nohup|notify-send|npm|nslookup|op|open|parted|passwd|paste|pathchk|ping|pkill|pnpm|podman|podman-compose|popd|pr|printcap|printenv|ps|pushd|pv|quota|quotacheck|quotactl|ram|rar|rcp|reboot|remsync|rename|renice|rev|rm|rmdir|rpm|rsync|scp|screen|sdiff|sed|sendmail|seq|service|sftp|sh|shellcheck|shuf|shutdown|sleep|slocate|sort|split|ssh|stat|strace|su|sudo|sum|suspend|swapon|sync|tac|tail|tar|tee|time|timeout|top|touch|tr|traceroute|tsort|tty|umount|uname|unexpand|uniq|units|unrar|unshar|unzip|update-grub|uptime|useradd|userdel|usermod|users|uudecode|uuencode|v|vcpkg|vdir|vi|vim|virsh|vmstat|wait|watch|wc|wget|whereis|which|who|whoami|write|xargs|xdg-open|yarn|yes|zenity|zip|zsh|zypper)(?=$|[)\s;|&])/,lookbehind:!0},keyword:{pattern:/(^|[\s;|&]|[<>]\()(?:case|do|done|elif|else|esac|fi|for|function|if|in|select|then|until|while)(?=$|[)\s;|&])/,lookbehind:!0},builtin:{pattern:/(^|[\s;|&]|[<>]\()(?:\.|:|alias|bind|break|builtin|caller|cd|command|continue|declare|echo|enable|eval|exec|exit|export|getopts|hash|help|let|local|logout|mapfile|printf|pwd|read|readarray|readonly|return|set|shift|shopt|source|test|times|trap|type|typeset|ulimit|umask|unalias|unset)(?=$|[)\s;|&])/,lookbehind:!0,alias:"class-name"},boolean:{pattern:/(^|[\s;|&]|[<>]\()(?:false|true)(?=$|[)\s;|&])/,lookbehind:!0},"file-descriptor":{pattern:/\B&\d\b/,alias:"important"},operator:{pattern:/\d?<>|>\||\+=|=[=~]?|!=?|<<[<-]?|[&\d]?>>|\d[<>]&?|[<>][&=]?|&[>&]?|\|[&|]?/,inside:{"file-descriptor":{pattern:/^\d/,alias:"important"}}},punctuation:/\$?\(\(?|\)\)?|\.\.|[{}[\];\\]/,number:{pattern:/(^|\s)(?:[1-9]\d*|0)(?:[.,]\d+)?\b/,lookbehind:!0}},n.inside=e.languages.bash;for(var a=["comment","function-name","for-or-select","assign-left","string","environment","function","keyword","builtin","boolean","file-descriptor","operator","punctuation","number"],i=r.variable[1].inside,o=0;o<a.length;o++)i[a[o]]=e.languages.bash[a[o]];e.languages.shell=e.languages.bash}(a),a.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|trait)\s+|\bcatch\s+\()[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:break|catch|continue|do|else|finally|for|function|if|in|instanceof|new|null|return|throw|try|while)\b/,boolean:/\b(?:false|true)\b/,function:/\b\w+(?=\()/,number:/\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/},a.languages.c=a.languages.extend("clike",{comment:{pattern:/\/\/(?:[^\r\n\\]|\\(?:\r\n?|\n|(?![\r\n])))*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},"class-name":{pattern:/(\b(?:enum|struct)\s+(?:__attribute__\s*\(\([\s\S]*?\)\)\s*)?)\w+|\b[a-z]\w*_t\b/,lookbehind:!0},keyword:/\b(?:_Alignas|_Alignof|_Atomic|_Bool|_Complex|_Generic|_Imaginary|_Noreturn|_Static_assert|_Thread_local|__attribute__|asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|inline|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|typeof|union|unsigned|void|volatile|while)\b/,function:/\b[a-z_]\w*(?=\s*\()/i,number:/(?:\b0x(?:[\da-f]+(?:\.[\da-f]*)?|\.[\da-f]+)(?:p[+-]?\d+)?|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?)[ful]{0,4}/i,operator:/>>=?|<<=?|->|([-+&|:])\1|[?:~]|[-+*/%&|^!=<>]=?/}),a.languages.insertBefore("c","string",{char:{pattern:/'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n]){0,32}'/,greedy:!0}}),a.languages.insertBefore("c","string",{macro:{pattern:/(^[\t ]*)#\s*[a-z](?:[^\r\n\\/]|\/(?!\*)|\/\*(?:[^*]|\*(?!\/))*\*\/|\\(?:\r\n|[\s\S]))*/im,lookbehind:!0,greedy:!0,alias:"property",inside:{string:[{pattern:/^(#\s*include\s*)<[^>]+>/,lookbehind:!0},a.languages.c.string],char:a.languages.c.char,comment:a.languages.c.comment,"macro-name":[{pattern:/(^#\s*define\s+)\w+\b(?!\()/i,lookbehind:!0},{pattern:/(^#\s*define\s+)\w+\b(?=\()/i,lookbehind:!0,alias:"function"}],directive:{pattern:/^(#\s*)[a-z]+/,lookbehind:!0,alias:"keyword"},"directive-hash":/^#/,punctuation:/##|\\(?=[\r\n])/,expression:{pattern:/\S[\s\S]*/,inside:a.languages.c}}}}),a.languages.insertBefore("c","function",{constant:/\b(?:EOF|NULL|SEEK_CUR|SEEK_END|SEEK_SET|__DATE__|__FILE__|__LINE__|__TIMESTAMP__|__TIME__|__func__|stderr|stdin|stdout)\b/}),delete a.languages.c.boolean,function(e){var t=/\b(?:alignas|alignof|asm|auto|bool|break|case|catch|char|char16_t|char32_t|char8_t|class|co_await|co_return|co_yield|compl|concept|const|const_cast|consteval|constexpr|constinit|continue|decltype|default|delete|do|double|dynamic_cast|else|enum|explicit|export|extern|final|float|for|friend|goto|if|import|inline|int|int16_t|int32_t|int64_t|int8_t|long|module|mutable|namespace|new|noexcept|nullptr|operator|override|private|protected|public|register|reinterpret_cast|requires|return|short|signed|sizeof|static|static_assert|static_cast|struct|switch|template|this|thread_local|throw|try|typedef|typeid|typename|uint16_t|uint32_t|uint64_t|uint8_t|union|unsigned|using|virtual|void|volatile|wchar_t|while)\b/,n=/\b(?!<keyword>)\w+(?:\s*\.\s*\w+)*\b/.source.replace(/<keyword>/g,(function(){return t.source}));e.languages.cpp=e.languages.extend("c",{"class-name":[{pattern:RegExp(/(\b(?:class|concept|enum|struct|typename)\s+)(?!<keyword>)\w+/.source.replace(/<keyword>/g,(function(){return t.source}))),lookbehind:!0},/\b[A-Z]\w*(?=\s*::\s*\w+\s*\()/,/\b[A-Z_]\w*(?=\s*::\s*~\w+\s*\()/i,/\b\w+(?=\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>\s*::\s*\w+\s*\()/],keyword:t,number:{pattern:/(?:\b0b[01']+|\b0x(?:[\da-f']+(?:\.[\da-f']*)?|\.[\da-f']+)(?:p[+-]?[\d']+)?|(?:\b[\d']+(?:\.[\d']*)?|\B\.[\d']+)(?:e[+-]?[\d']+)?)[ful]{0,4}/i,greedy:!0},operator:/>>=?|<<=?|->|--|\+\+|&&|\|\||[?:~]|<=>|[-+*/%&|^!=<>]=?|\b(?:and|and_eq|bitand|bitor|not|not_eq|or|or_eq|xor|xor_eq)\b/,boolean:/\b(?:false|true)\b/}),e.languages.insertBefore("cpp","string",{module:{pattern:RegExp(/(\b(?:import|module)\s+)/.source+"(?:"+/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|<[^<>\r\n]*>/.source+"|"+/<mod-name>(?:\s*:\s*<mod-name>)?|:\s*<mod-name>/.source.replace(/<mod-name>/g,(function(){return n}))+")"),lookbehind:!0,greedy:!0,inside:{string:/^[<"][\s\S]+/,operator:/:/,punctuation:/\./}},"raw-string":{pattern:/R"([^()\\ ]{0,16})\([\s\S]*?\)\1"/,alias:"string",greedy:!0}}),e.languages.insertBefore("cpp","keyword",{"generic-function":{pattern:/\b(?!operator\b)[a-z_]\w*\s*<(?:[^<>]|<[^<>]*>)*>(?=\s*\()/i,inside:{function:/^\w+/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:e.languages.cpp}}}}),e.languages.insertBefore("cpp","operator",{"double-colon":{pattern:/::/,alias:"punctuation"}}),e.languages.insertBefore("cpp","class-name",{"base-clause":{pattern:/(\b(?:class|struct)\s+\w+\s*:\s*)[^;{}"'\s]+(?:\s+[^;{}"'\s]+)*(?=\s*[;{])/,lookbehind:!0,greedy:!0,inside:e.languages.extend("cpp",{})}}),e.languages.insertBefore("inside","double-colon",{"class-name":/\b[a-z_]\w*\b(?!\s*::)/i},e.languages.cpp["base-clause"])}(a),function(e){var t=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;e.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:/@[\w-](?:[^;{\s]|\s+(?![\s{]))*(?:;|(?=\s*\{))/,inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:"selector"},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp("\\burl\\((?:"+t.source+"|"+/(?:[^\\\r\n()"']|\\[\s\S])*/.source+")\\)","i"),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp("^"+t.source+"$"),alias:"url"}}},selector:{pattern:RegExp("(^|[{}\\s])[^{}\\s](?:[^{};\"'\\s]|\\s+(?![\\s{])|"+t.source+")*(?=\\s*\\{)"),lookbehind:!0},string:{pattern:t,greedy:!0},property:{pattern:/(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,lookbehind:!0},important:/!important\b/i,function:{pattern:/(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i,lookbehind:!0},punctuation:/[(){};:,]/},e.languages.css.atrule.inside.rest=e.languages.css;var n=e.languages.markup;n&&(n.tag.addInlined("style","css"),n.tag.addAttribute("style","css"))}(a),function(e){var t,n=/("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/;e.languages.css.selector={pattern:e.languages.css.selector.pattern,lookbehind:!0,inside:t={"pseudo-element":/:(?:after|before|first-letter|first-line|selection)|::[-\w]+/,"pseudo-class":/:[-\w]+/,class:/\.[-\w]+/,id:/#[-\w]+/,attribute:{pattern:RegExp("\\[(?:[^[\\]\"']|"+n.source+")*\\]"),greedy:!0,inside:{punctuation:/^\[|\]$/,"case-sensitivity":{pattern:/(\s)[si]$/i,lookbehind:!0,alias:"keyword"},namespace:{pattern:/^(\s*)(?:(?!\s)[-*\w\xA0-\uFFFF])*\|(?!=)/,lookbehind:!0,inside:{punctuation:/\|$/}},"attr-name":{pattern:/^(\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+/,lookbehind:!0},"attr-value":[n,{pattern:/(=\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+(?=\s*$)/,lookbehind:!0}],operator:/[|~*^$]?=/}},"n-th":[{pattern:/(\(\s*)[+-]?\d*[\dn](?:\s*[+-]\s*\d+)?(?=\s*\))/,lookbehind:!0,inside:{number:/[\dn]+/,operator:/[+-]/}},{pattern:/(\(\s*)(?:even|odd)(?=\s*\))/i,lookbehind:!0}],combinator:/>|\+|~|\|\|/,punctuation:/[(),]/}},e.languages.css.atrule.inside["selector-function-argument"].inside=t,e.languages.insertBefore("css","property",{variable:{pattern:/(^|[^-\w\xA0-\uFFFF])--(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*/i,lookbehind:!0}});var r={pattern:/(\b\d+)(?:%|[a-z]+(?![\w-]))/,lookbehind:!0},a={pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0};e.languages.insertBefore("css","function",{operator:{pattern:/(\s)[+\-*\/](?=\s)/,lookbehind:!0},hexcode:{pattern:/\B#[\da-f]{3,8}\b/i,alias:"color"},color:[{pattern:/(^|[^\w-])(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)(?![\w-])/i,lookbehind:!0},{pattern:/\b(?:hsl|rgb)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:hsl|rgb)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,inside:{unit:r,number:a,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:r,number:a})}(a),a.languages.javascript=a.languages.extend("clike",{"class-name":[a.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,lookbehind:!0}],keyword:[{pattern:/((?:^|\})\s*)catch\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:{pattern:RegExp(/(^|[^\w$])/.source+"(?:"+/NaN|Infinity/.source+"|"+/0[bB][01]+(?:_[01]+)*n?/.source+"|"+/0[oO][0-7]+(?:_[0-7]+)*n?/.source+"|"+/0[xX][\dA-Fa-f]+(?:_[\dA-Fa-f]+)*n?/.source+"|"+/\d+(?:_\d+)*n/.source+"|"+/(?:\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\.\d+(?:_\d+)*)(?:[Ee][+-]?\d+(?:_\d+)*)?/.source+")"+/(?![\w$])/.source),lookbehind:!0},operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/}),a.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/,a.languages.insertBefore("javascript","keyword",{regex:{pattern:/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)\/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/,lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:a.languages.regex},"regex-delimiter":/^\/|\/$/,"regex-flags":/^[a-z]+$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:a.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:a.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:a.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:a.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),a.languages.insertBefore("javascript","string",{hashbang:{pattern:/^#!.*/,greedy:!0,alias:"comment"},"template-string":{pattern:/`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:a.languages.javascript}},string:/[\s\S]+/}},"string-property":{pattern:/((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,lookbehind:!0,greedy:!0,alias:"property"}}),a.languages.insertBefore("javascript","operator",{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:"property"}}),a.languages.markup&&(a.languages.markup.tag.addInlined("script","javascript"),a.languages.markup.tag.addAttribute(/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source,"javascript")),a.languages.js=a.languages.javascript,function(e){var t=/#(?!\{).+/,n={pattern:/#\{[^}]+\}/,alias:"variable"};e.languages.coffeescript=e.languages.extend("javascript",{comment:t,string:[{pattern:/'(?:\\[\s\S]|[^\\'])*'/,greedy:!0},{pattern:/"(?:\\[\s\S]|[^\\"])*"/,greedy:!0,inside:{interpolation:n}}],keyword:/\b(?:and|break|by|catch|class|continue|debugger|delete|do|each|else|extend|extends|false|finally|for|if|in|instanceof|is|isnt|let|loop|namespace|new|no|not|null|of|off|on|or|own|return|super|switch|then|this|throw|true|try|typeof|undefined|unless|until|when|while|window|with|yes|yield)\b/,"class-member":{pattern:/@(?!\d)\w+/,alias:"variable"}}),e.languages.insertBefore("coffeescript","comment",{"multiline-comment":{pattern:/###[\s\S]+?###/,alias:"comment"},"block-regex":{pattern:/\/{3}[\s\S]*?\/{3}/,alias:"regex",inside:{comment:t,interpolation:n}}}),e.languages.insertBefore("coffeescript","string",{"inline-javascript":{pattern:/`(?:\\[\s\S]|[^\\`])*`/,inside:{delimiter:{pattern:/^`|`$/,alias:"punctuation"},script:{pattern:/[\s\S]+/,alias:"language-javascript",inside:e.languages.javascript}}},"multiline-string":[{pattern:/'''[\s\S]*?'''/,greedy:!0,alias:"string"},{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string",inside:{interpolation:n}}]}),e.languages.insertBefore("coffeescript","keyword",{property:/(?!\d)\w+(?=\s*:(?!:))/}),delete e.languages.coffeescript["template-string"],e.languages.coffee=e.languages.coffeescript}(a),function(e){var t=/[*&][^\s[\]{},]+/,n=/!(?:<[\w\-%#;/?:@&=+$,.!~*'()[\]]+>|(?:[a-zA-Z\d-]*!)?[\w\-%#;/?:@&=+$.~*'()]+)?/,r="(?:"+n.source+"(?:[ \t]+"+t.source+")?|"+t.source+"(?:[ \t]+"+n.source+")?)",a=/(?:[^\s\x00-\x08\x0e-\x1f!"#%&'*,\-:>?@[\]`{|}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]|[?:-]<PLAIN>)(?:[ \t]*(?:(?![#:])<PLAIN>|:<PLAIN>))*/.source.replace(/<PLAIN>/g,(function(){return/[^\s\x00-\x08\x0e-\x1f,[\]{}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]/.source})),i=/"(?:[^"\\\r\n]|\\.)*"|'(?:[^'\\\r\n]|\\.)*'/.source;function o(e,t){t=(t||"").replace(/m/g,"")+"m";var n=/([:\-,[{]\s*(?:\s<<prop>>[ \t]+)?)(?:<<value>>)(?=[ \t]*(?:$|,|\]|\}|(?:[\r\n]\s*)?#))/.source.replace(/<<prop>>/g,(function(){return r})).replace(/<<value>>/g,(function(){return e}));return RegExp(n,t)}e.languages.yaml={scalar:{pattern:RegExp(/([\-:]\s*(?:\s<<prop>>[ \t]+)?[|>])[ \t]*(?:((?:\r?\n|\r)[ \t]+)\S[^\r\n]*(?:\2[^\r\n]+)*)/.source.replace(/<<prop>>/g,(function(){return r}))),lookbehind:!0,alias:"string"},comment:/#.*/,key:{pattern:RegExp(/((?:^|[:\-,[{\r\n?])[ \t]*(?:<<prop>>[ \t]+)?)<<key>>(?=\s*:\s)/.source.replace(/<<prop>>/g,(function(){return r})).replace(/<<key>>/g,(function(){return"(?:"+a+"|"+i+")"}))),lookbehind:!0,greedy:!0,alias:"atrule"},directive:{pattern:/(^[ \t]*)%.+/m,lookbehind:!0,alias:"important"},datetime:{pattern:o(/\d{4}-\d\d?-\d\d?(?:[tT]|[ \t]+)\d\d?:\d{2}:\d{2}(?:\.\d*)?(?:[ \t]*(?:Z|[-+]\d\d?(?::\d{2})?))?|\d{4}-\d{2}-\d{2}|\d\d?:\d{2}(?::\d{2}(?:\.\d*)?)?/.source),lookbehind:!0,alias:"number"},boolean:{pattern:o(/false|true/.source,"i"),lookbehind:!0,alias:"important"},null:{pattern:o(/null|~/.source,"i"),lookbehind:!0,alias:"important"},string:{pattern:o(i),lookbehind:!0,greedy:!0},number:{pattern:o(/[+-]?(?:0x[\da-f]+|0o[0-7]+|(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?|\.inf|\.nan)/.source,"i"),lookbehind:!0},tag:n,important:t,punctuation:/---|[:[\]{}\-,|>?]|\.\.\./},e.languages.yml=e.languages.yaml}(a),function(e){var t=/(?:\\.|[^\\\n\r]|(?:\n|\r\n?)(?![\r\n]))/.source;function n(e){return e=e.replace(/<inner>/g,(function(){return t})),RegExp(/((?:^|[^\\])(?:\\{2})*)/.source+"(?:"+e+")")}var r=/(?:\\.|``(?:[^`\r\n]|`(?!`))+``|`[^`\r\n]+`|[^\\|\r\n`])+/.source,a=/\|?__(?:\|__)+\|?(?:(?:\n|\r\n?)|(?![\s\S]))/.source.replace(/__/g,(function(){return r})),i=/\|?[ \t]*:?-{3,}:?[ \t]*(?:\|[ \t]*:?-{3,}:?[ \t]*)+\|?(?:\n|\r\n?)/.source;e.languages.markdown=e.languages.extend("markup",{}),e.languages.insertBefore("markdown","prolog",{"front-matter-block":{pattern:/(^(?:\s*[\r\n])?)---(?!.)[\s\S]*?[\r\n]---(?!.)/,lookbehind:!0,greedy:!0,inside:{punctuation:/^---|---$/,"front-matter":{pattern:/\S+(?:\s+\S+)*/,alias:["yaml","language-yaml"],inside:e.languages.yaml}}},blockquote:{pattern:/^>(?:[\t ]*>)*/m,alias:"punctuation"},table:{pattern:RegExp("^"+a+i+"(?:"+a+")*","m"),inside:{"table-data-rows":{pattern:RegExp("^("+a+i+")(?:"+a+")*$"),lookbehind:!0,inside:{"table-data":{pattern:RegExp(r),inside:e.languages.markdown},punctuation:/\|/}},"table-line":{pattern:RegExp("^("+a+")"+i+"$"),lookbehind:!0,inside:{punctuation:/\||:?-{3,}:?/}},"table-header-row":{pattern:RegExp("^"+a+"$"),inside:{"table-header":{pattern:RegExp(r),alias:"important",inside:e.languages.markdown},punctuation:/\|/}}}},code:[{pattern:/((?:^|\n)[ \t]*\n|(?:^|\r\n?)[ \t]*\r\n?)(?: {4}|\t).+(?:(?:\n|\r\n?)(?: {4}|\t).+)*/,lookbehind:!0,alias:"keyword"},{pattern:/^```[\s\S]*?^```$/m,greedy:!0,inside:{"code-block":{pattern:/^(```.*(?:\n|\r\n?))[\s\S]+?(?=(?:\n|\r\n?)^```$)/m,lookbehind:!0},"code-language":{pattern:/^(```).+/,lookbehind:!0},punctuation:/```/}}],title:[{pattern:/\S.*(?:\n|\r\n?)(?:==+|--+)(?=[ \t]*$)/m,alias:"important",inside:{punctuation:/==+$|--+$/}},{pattern:/(^\s*)#.+/m,lookbehind:!0,alias:"important",inside:{punctuation:/^#+|#+$/}}],hr:{pattern:/(^\s*)([*-])(?:[\t ]*\2){2,}(?=\s*$)/m,lookbehind:!0,alias:"punctuation"},list:{pattern:/(^\s*)(?:[*+-]|\d+\.)(?=[\t ].)/m,lookbehind:!0,alias:"punctuation"},"url-reference":{pattern:/!?\[[^\]]+\]:[\t ]+(?:\S+|<(?:\\.|[^>\\])+>)(?:[\t ]+(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\)))?/,inside:{variable:{pattern:/^(!?\[)[^\]]+/,lookbehind:!0},string:/(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\))$/,punctuation:/^[\[\]!:]|[<>]/},alias:"url"},bold:{pattern:n(/\b__(?:(?!_)<inner>|_(?:(?!_)<inner>)+_)+__\b|\*\*(?:(?!\*)<inner>|\*(?:(?!\*)<inner>)+\*)+\*\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^..)[\s\S]+(?=..$)/,lookbehind:!0,inside:{}},punctuation:/\*\*|__/}},italic:{pattern:n(/\b_(?:(?!_)<inner>|__(?:(?!_)<inner>)+__)+_\b|\*(?:(?!\*)<inner>|\*\*(?:(?!\*)<inner>)+\*\*)+\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^.)[\s\S]+(?=.$)/,lookbehind:!0,inside:{}},punctuation:/[*_]/}},strike:{pattern:n(/(~~?)(?:(?!~)<inner>)+\2/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^~~?)[\s\S]+(?=\1$)/,lookbehind:!0,inside:{}},punctuation:/~~?/}},"code-snippet":{pattern:/(^|[^\\`])(?:``[^`\r\n]+(?:`[^`\r\n]+)*``(?!`)|`[^`\r\n]+`(?!`))/,lookbehind:!0,greedy:!0,alias:["code","keyword"]},url:{pattern:n(/!?\[(?:(?!\])<inner>)+\](?:\([^\s)]+(?:[\t ]+"(?:\\.|[^"\\])*")?\)|[ \t]?\[(?:(?!\])<inner>)+\])/.source),lookbehind:!0,greedy:!0,inside:{operator:/^!/,content:{pattern:/(^\[)[^\]]+(?=\])/,lookbehind:!0,inside:{}},variable:{pattern:/(^\][ \t]?\[)[^\]]+(?=\]$)/,lookbehind:!0},url:{pattern:/(^\]\()[^\s)]+/,lookbehind:!0},string:{pattern:/(^[ \t]+)"(?:\\.|[^"\\])*"(?=\)$)/,lookbehind:!0}}}}),["url","bold","italic","strike"].forEach((function(t){["url","bold","italic","strike","code-snippet"].forEach((function(n){t!==n&&(e.languages.markdown[t].inside.content.inside[n]=e.languages.markdown[n])}))})),e.hooks.add("after-tokenize",(function(e){"markdown"!==e.language&&"md"!==e.language||function e(t){if(t&&"string"!=typeof t)for(var n=0,r=t.length;n<r;n++){var a=t[n];if("code"===a.type){var i=a.content[1],o=a.content[3];if(i&&o&&"code-language"===i.type&&"code-block"===o.type&&"string"==typeof i.content){var s=i.content.replace(/\b#/g,"sharp").replace(/\b\+\+/g,"pp"),l="language-"+(s=(/[a-z][\w-]*/i.exec(s)||[""])[0].toLowerCase());o.alias?"string"==typeof o.alias?o.alias=[o.alias,l]:o.alias.push(l):o.alias=[l]}}else e(a.content)}}(e.tokens)})),e.hooks.add("wrap",(function(t){if("code-block"===t.type){for(var n="",r=0,a=t.classes.length;r<a;r++){var i=t.classes[r],u=/language-(.+)/.exec(i);if(u){n=u[1];break}}var c,d=e.languages[n];if(d)t.content=e.highlight((c=t.content,c.replace(o,"").replace(/&(\w{1,8}|#x?[\da-f]{1,8});/gi,(function(e,t){var n;if("#"===(t=t.toLowerCase())[0])return n="x"===t[1]?parseInt(t.slice(2),16):Number(t.slice(1)),l(n);var r=s[t];return r||e}))),d,n);else if(n&&"none"!==n&&e.plugins.autoloader){var p="md-"+(new Date).valueOf()+"-"+Math.floor(1e16*Math.random());t.attributes.id=p,e.plugins.autoloader.loadLanguages(n,(function(){var t=document.getElementById(p);t&&(t.innerHTML=e.highlight(t.textContent,e.languages[n],n))}))}}}));var o=RegExp(e.languages.markup.tag.pattern.source,"gi"),s={amp:"&",lt:"<",gt:">",quot:'"'},l=String.fromCodePoint||String.fromCharCode;e.languages.md=e.languages.markdown}(a),a.languages.graphql={comment:/#.*/,description:{pattern:/(?:"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*")(?=\s*[a-z_])/i,greedy:!0,alias:"string",inside:{"language-markdown":{pattern:/(^"(?:"")?)(?!\1)[\s\S]+(?=\1$)/,lookbehind:!0,inside:a.languages.markdown}}},string:{pattern:/"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*"/,greedy:!0},number:/(?:\B-|\b)\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,boolean:/\b(?:false|true)\b/,variable:/\$[a-z_]\w*/i,directive:{pattern:/@[a-z_]\w*/i,alias:"function"},"attr-name":{pattern:/\b[a-z_]\w*(?=\s*(?:\((?:[^()"]|"(?:\\.|[^\\"\r\n])*")*\))?:)/i,greedy:!0},"atom-input":{pattern:/\b[A-Z]\w*Input\b/,alias:"class-name"},scalar:/\b(?:Boolean|Float|ID|Int|String)\b/,constant:/\b[A-Z][A-Z_\d]*\b/,"class-name":{pattern:/(\b(?:enum|implements|interface|on|scalar|type|union)\s+|&\s*|:\s*|\[)[A-Z_]\w*/,lookbehind:!0},fragment:{pattern:/(\bfragment\s+|\.{3}\s*(?!on\b))[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-mutation":{pattern:/(\bmutation\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-query":{pattern:/(\bquery\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},keyword:/\b(?:directive|enum|extend|fragment|implements|input|interface|mutation|on|query|repeatable|scalar|schema|subscription|type|union)\b/,operator:/[!=|&]|\.{3}/,"property-query":/\w+(?=\s*\()/,object:/\w+(?=\s*\{)/,punctuation:/[!(){}\[\]:=,]/,property:/\w+/},a.hooks.add("after-tokenize",(function(e){if("graphql"===e.language)for(var t=e.tokens.filter((function(e){return"string"!=typeof e&&"comment"!==e.type&&"scalar"!==e.type})),n=0;n<t.length;){var r=t[n++];if("keyword"===r.type&&"mutation"===r.content){var a=[];if(d(["definition-mutation","punctuation"])&&"("===c(1).content){n+=2;var i=p(/^\($/,/^\)$/);if(-1===i)continue;for(;n<i;n++){var o=c(0);"variable"===o.type&&(f(o,"variable-input"),a.push(o.content))}n=i+1}if(d(["punctuation","property-query"])&&"{"===c(0).content&&(n++,f(c(0),"property-mutation"),a.length>0)){var s=p(/^\{$/,/^\}$/);if(-1===s)continue;for(var l=n;l<s;l++){var u=t[l];"variable"===u.type&&a.indexOf(u.content)>=0&&f(u,"variable-input")}}}}function c(e){return t[n+e]}function d(e,t){t=t||0;for(var n=0;n<e.length;n++){var r=c(n+t);if(!r||r.type!==e[n])return!1}return!0}function p(e,r){for(var a=1,i=n;i<t.length;i++){var o=t[i],s=o.content;if("punctuation"===o.type&&"string"==typeof s)if(e.test(s))a++;else if(r.test(s)&&0===--a)return i}return-1}function f(e,t){var n=e.alias;n?Array.isArray(n)||(e.alias=n=[n]):e.alias=n=[],n.push(t)}})),a.languages.sql={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|(?:--|\/\/|#).*)/,lookbehind:!0},variable:[{pattern:/@(["'`])(?:\\[\s\S]|(?!\1)[^\\])+\1/,greedy:!0},/@[\w.$]+/],string:{pattern:/(^|[^@\\])("|')(?:\\[\s\S]|(?!\2)[^\\]|\2\2)*\2/,greedy:!0,lookbehind:!0},identifier:{pattern:/(^|[^@\\])`(?:\\[\s\S]|[^`\\]|``)*`/,greedy:!0,lookbehind:!0,inside:{punctuation:/^`|`$/}},function:/\b(?:AVG|COUNT|FIRST|FORMAT|LAST|LCASE|LEN|MAX|MID|MIN|MOD|NOW|ROUND|SUM|UCASE)(?=\s*\()/i,keyword:/\b(?:ACTION|ADD|AFTER|ALGORITHM|ALL|ALTER|ANALYZE|ANY|APPLY|AS|ASC|AUTHORIZATION|AUTO_INCREMENT|BACKUP|BDB|BEGIN|BERKELEYDB|BIGINT|BINARY|BIT|BLOB|BOOL|BOOLEAN|BREAK|BROWSE|BTREE|BULK|BY|CALL|CASCADED?|CASE|CHAIN|CHAR(?:ACTER|SET)?|CHECK(?:POINT)?|CLOSE|CLUSTERED|COALESCE|COLLATE|COLUMNS?|COMMENT|COMMIT(?:TED)?|COMPUTE|CONNECT|CONSISTENT|CONSTRAINT|CONTAINS(?:TABLE)?|CONTINUE|CONVERT|CREATE|CROSS|CURRENT(?:_DATE|_TIME|_TIMESTAMP|_USER)?|CURSOR|CYCLE|DATA(?:BASES?)?|DATE(?:TIME)?|DAY|DBCC|DEALLOCATE|DEC|DECIMAL|DECLARE|DEFAULT|DEFINER|DELAYED|DELETE|DELIMITERS?|DENY|DESC|DESCRIBE|DETERMINISTIC|DISABLE|DISCARD|DISK|DISTINCT|DISTINCTROW|DISTRIBUTED|DO|DOUBLE|DROP|DUMMY|DUMP(?:FILE)?|DUPLICATE|ELSE(?:IF)?|ENABLE|ENCLOSED|END|ENGINE|ENUM|ERRLVL|ERRORS|ESCAPED?|EXCEPT|EXEC(?:UTE)?|EXISTS|EXIT|EXPLAIN|EXTENDED|FETCH|FIELDS|FILE|FILLFACTOR|FIRST|FIXED|FLOAT|FOLLOWING|FOR(?: EACH ROW)?|FORCE|FOREIGN|FREETEXT(?:TABLE)?|FROM|FULL|FUNCTION|GEOMETRY(?:COLLECTION)?|GLOBAL|GOTO|GRANT|GROUP|HANDLER|HASH|HAVING|HOLDLOCK|HOUR|IDENTITY(?:COL|_INSERT)?|IF|IGNORE|IMPORT|INDEX|INFILE|INNER|INNODB|INOUT|INSERT|INT|INTEGER|INTERSECT|INTERVAL|INTO|INVOKER|ISOLATION|ITERATE|JOIN|KEYS?|KILL|LANGUAGE|LAST|LEAVE|LEFT|LEVEL|LIMIT|LINENO|LINES|LINESTRING|LOAD|LOCAL|LOCK|LONG(?:BLOB|TEXT)|LOOP|MATCH(?:ED)?|MEDIUM(?:BLOB|INT|TEXT)|MERGE|MIDDLEINT|MINUTE|MODE|MODIFIES|MODIFY|MONTH|MULTI(?:LINESTRING|POINT|POLYGON)|NATIONAL|NATURAL|NCHAR|NEXT|NO|NONCLUSTERED|NULLIF|NUMERIC|OFF?|OFFSETS?|ON|OPEN(?:DATASOURCE|QUERY|ROWSET)?|OPTIMIZE|OPTION(?:ALLY)?|ORDER|OUT(?:ER|FILE)?|OVER|PARTIAL|PARTITION|PERCENT|PIVOT|PLAN|POINT|POLYGON|PRECEDING|PRECISION|PREPARE|PREV|PRIMARY|PRINT|PRIVILEGES|PROC(?:EDURE)?|PUBLIC|PURGE|QUICK|RAISERROR|READS?|REAL|RECONFIGURE|REFERENCES|RELEASE|RENAME|REPEAT(?:ABLE)?|REPLACE|REPLICATION|REQUIRE|RESIGNAL|RESTORE|RESTRICT|RETURN(?:ING|S)?|REVOKE|RIGHT|ROLLBACK|ROUTINE|ROW(?:COUNT|GUIDCOL|S)?|RTREE|RULE|SAVE(?:POINT)?|SCHEMA|SECOND|SELECT|SERIAL(?:IZABLE)?|SESSION(?:_USER)?|SET(?:USER)?|SHARE|SHOW|SHUTDOWN|SIMPLE|SMALLINT|SNAPSHOT|SOME|SONAME|SQL|START(?:ING)?|STATISTICS|STATUS|STRIPED|SYSTEM_USER|TABLES?|TABLESPACE|TEMP(?:ORARY|TABLE)?|TERMINATED|TEXT(?:SIZE)?|THEN|TIME(?:STAMP)?|TINY(?:BLOB|INT|TEXT)|TOP?|TRAN(?:SACTIONS?)?|TRIGGER|TRUNCATE|TSEQUAL|TYPES?|UNBOUNDED|UNCOMMITTED|UNDEFINED|UNION|UNIQUE|UNLOCK|UNPIVOT|UNSIGNED|UPDATE(?:TEXT)?|USAGE|USE|USER|USING|VALUES?|VAR(?:BINARY|CHAR|CHARACTER|YING)|VIEW|WAITFOR|WARNINGS|WHEN|WHERE|WHILE|WITH(?: ROLLUP|IN)?|WORK|WRITE(?:TEXT)?|YEAR)\b/i,boolean:/\b(?:FALSE|NULL|TRUE)\b/i,number:/\b0x[\da-f]+\b|\b\d+(?:\.\d*)?|\B\.\d+\b/i,operator:/[-+*\/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?|\b(?:AND|BETWEEN|DIV|ILIKE|IN|IS|LIKE|NOT|OR|REGEXP|RLIKE|SOUNDS LIKE|XOR)\b/i,punctuation:/[;[\]()`,.]/},function(e){var t=e.languages.javascript["template-string"],n=t.pattern.source,r=t.inside.interpolation,a=r.inside["interpolation-punctuation"],i=r.pattern.source;function o(t,r){if(e.languages[t])return{pattern:RegExp("((?:"+r+")\\s*)"+n),lookbehind:!0,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},"embedded-code":{pattern:/[\s\S]+/,alias:t}}}}function s(e,t){return"___"+t.toUpperCase()+"_"+e+"___"}function l(t,n,r){var a={code:t,grammar:n,language:r};return e.hooks.run("before-tokenize",a),a.tokens=e.tokenize(a.code,a.grammar),e.hooks.run("after-tokenize",a),a.tokens}function u(t){var n={};n["interpolation-punctuation"]=a;var i=e.tokenize(t,n);if(3===i.length){var o=[1,1];o.push.apply(o,l(i[1],e.languages.javascript,"javascript")),i.splice.apply(i,o)}return new e.Token("interpolation",i,r.alias,t)}function c(t,n,r){var a=e.tokenize(t,{interpolation:{pattern:RegExp(i),lookbehind:!0}}),o=0,c={},d=l(a.map((function(e){if("string"==typeof e)return e;for(var n,a=e.content;-1!==t.indexOf(n=s(o++,r)););return c[n]=a,n})).join(""),n,r),p=Object.keys(c);return o=0,function e(t){for(var n=0;n<t.length;n++){if(o>=p.length)return;var r=t[n];if("string"==typeof r||"string"==typeof r.content){var a=p[o],i="string"==typeof r?r:r.content,s=i.indexOf(a);if(-1!==s){++o;var l=i.substring(0,s),d=u(c[a]),f=i.substring(s+a.length),m=[];if(l&&m.push(l),m.push(d),f){var h=[f];e(h),m.push.apply(m,h)}"string"==typeof r?(t.splice.apply(t,[n,1].concat(m)),n+=m.length-1):r.content=m}}else{var g=r.content;Array.isArray(g)?e(g):e([g])}}}(d),new e.Token(r,d,"language-"+r,t)}e.languages.javascript["template-string"]=[o("css",/\b(?:styled(?:\([^)]*\))?(?:\s*\.\s*\w+(?:\([^)]*\))*)*|css(?:\s*\.\s*(?:global|resolve))?|createGlobalStyle|keyframes)/.source),o("html",/\bhtml|\.\s*(?:inner|outer)HTML\s*\+?=/.source),o("svg",/\bsvg/.source),o("markdown",/\b(?:markdown|md)/.source),o("graphql",/\b(?:gql|graphql(?:\s*\.\s*experimental)?)/.source),o("sql",/\bsql/.source),t].filter(Boolean);var d={javascript:!0,js:!0,typescript:!0,ts:!0,jsx:!0,tsx:!0};function p(e){return"string"==typeof e?e:Array.isArray(e)?e.map(p).join(""):p(e.content)}e.hooks.add("after-tokenize",(function(t){t.language in d&&function t(n){for(var r=0,a=n.length;r<a;r++){var i=n[r];if("string"!=typeof i){var o=i.content;if(Array.isArray(o))if("template-string"===i.type){var s=o[1];if(3===o.length&&"string"!=typeof s&&"embedded-code"===s.type){var l=p(s),u=s.alias,d=Array.isArray(u)?u[0]:u,f=e.languages[d];if(!f)continue;o[1]=c(l,f,d)}}else t(o);else"string"!=typeof o&&t([o])}}}(t.tokens)}))}(a),function(e){e.languages.typescript=e.languages.extend("javascript",{"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|type)\s+)(?!keyof\b)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?:\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>)?/,lookbehind:!0,greedy:!0,inside:null},builtin:/\b(?:Array|Function|Promise|any|boolean|console|never|number|string|symbol|unknown)\b/}),e.languages.typescript.keyword.push(/\b(?:abstract|declare|is|keyof|readonly|require)\b/,/\b(?:asserts|infer|interface|module|namespace|type)\b(?=\s*(?:[{_$a-zA-Z\xA0-\uFFFF]|$))/,/\btype\b(?=\s*(?:[\{*]|$))/),delete e.languages.typescript.parameter,delete e.languages.typescript["literal-property"];var t=e.languages.extend("typescript",{});delete t["class-name"],e.languages.typescript["class-name"].inside=t,e.languages.insertBefore("typescript","function",{decorator:{pattern:/@[$\w\xA0-\uFFFF]+/,inside:{at:{pattern:/^@/,alias:"operator"},function:/^[\s\S]+/}},"generic-function":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>(?=\s*\()/,greedy:!0,inside:{function:/^#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:t}}}}),e.languages.ts=e.languages.typescript}(a),function(e){function t(e,t){return RegExp(e.replace(/<ID>/g,(function(){return/(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/.source})),t)}e.languages.insertBefore("javascript","function-variable",{"method-variable":{pattern:RegExp("(\\.\\s*)"+e.languages.javascript["function-variable"].pattern.source),lookbehind:!0,alias:["function-variable","method","function","property-access"]}}),e.languages.insertBefore("javascript","function",{method:{pattern:RegExp("(\\.\\s*)"+e.languages.javascript.function.source),lookbehind:!0,alias:["function","property-access"]}}),e.languages.insertBefore("javascript","constant",{"known-class-name":[{pattern:/\b(?:(?:Float(?:32|64)|(?:Int|Uint)(?:8|16|32)|Uint8Clamped)?Array|ArrayBuffer|BigInt|Boolean|DataView|Date|Error|Function|Intl|JSON|(?:Weak)?(?:Map|Set)|Math|Number|Object|Promise|Proxy|Reflect|RegExp|String|Symbol|WebAssembly)\b/,alias:"class-name"},{pattern:/\b(?:[A-Z]\w*)Error\b/,alias:"class-name"}]}),e.languages.insertBefore("javascript","keyword",{imports:{pattern:t(/(\bimport\b\s*)(?:<ID>(?:\s*,\s*(?:\*\s*as\s+<ID>|\{[^{}]*\}))?|\*\s*as\s+<ID>|\{[^{}]*\})(?=\s*\bfrom\b)/.source),lookbehind:!0,inside:e.languages.javascript},exports:{pattern:t(/(\bexport\b\s*)(?:\*(?:\s*as\s+<ID>)?(?=\s*\bfrom\b)|\{[^{}]*\})/.source),lookbehind:!0,inside:e.languages.javascript}}),e.languages.javascript.keyword.unshift({pattern:/\b(?:as|default|export|from|import)\b/,alias:"module"},{pattern:/\b(?:await|break|catch|continue|do|else|finally|for|if|return|switch|throw|try|while|yield)\b/,alias:"control-flow"},{pattern:/\bnull\b/,alias:["null","nil"]},{pattern:/\bundefined\b/,alias:"nil"}),e.languages.insertBefore("javascript","operator",{spread:{pattern:/\.{3}/,alias:"operator"},arrow:{pattern:/=>/,alias:"operator"}}),e.languages.insertBefore("javascript","punctuation",{"property-access":{pattern:t(/(\.\s*)#?<ID>/.source),lookbehind:!0},"maybe-class-name":{pattern:/(^|[^$\w\xA0-\uFFFF])[A-Z][$\w\xA0-\uFFFF]+/,lookbehind:!0},dom:{pattern:/\b(?:document|(?:local|session)Storage|location|navigator|performance|window)\b/,alias:"variable"},console:{pattern:/\bconsole(?=\s*\.)/,alias:"class-name"}});for(var n=["function","function-variable","method","method-variable","property-access"],r=0;r<n.length;r++){var a=n[r],i=e.languages.javascript[a];"RegExp"===e.util.type(i)&&(i=e.languages.javascript[a]={pattern:i});var o=i.inside||{};i.inside=o,o["maybe-class-name"]=/^[A-Z][\s\S]*/}}(a),function(e){var t=e.util.clone(e.languages.javascript),n=/(?:\s|\/\/.*(?!.)|\/\*(?:[^*]|\*(?!\/))\*\/)/.source,r=/(?:\{(?:\{(?:\{[^{}]*\}|[^{}])*\}|[^{}])*\})/.source,a=/(?:\{<S>*\.{3}(?:[^{}]|<BRACES>)*\})/.source;function i(e,t){return e=e.replace(/<S>/g,(function(){return n})).replace(/<BRACES>/g,(function(){return r})).replace(/<SPREAD>/g,(function(){return a})),RegExp(e,t)}a=i(a).source,e.languages.jsx=e.languages.extend("markup",t),e.languages.jsx.tag.pattern=i(/<\/?(?:[\w.:-]+(?:<S>+(?:[\w.:$-]+(?:=(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s{'"/>=]+|<BRACES>))?|<SPREAD>))*<S>*\/?)?>/.source),e.languages.jsx.tag.inside.tag.pattern=/^<\/?[^\s>\/]*/,e.languages.jsx.tag.inside["attr-value"].pattern=/=(?!\{)(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s'">]+)/,e.languages.jsx.tag.inside.tag.inside["class-name"]=/^[A-Z]\w*(?:\.[A-Z]\w*)*$/,e.languages.jsx.tag.inside.comment=t.comment,e.languages.insertBefore("inside","attr-name",{spread:{pattern:i(/<SPREAD>/.source),inside:e.languages.jsx}},e.languages.jsx.tag),e.languages.insertBefore("inside","special-attr",{script:{pattern:i(/=<BRACES>/.source),alias:"language-javascript",inside:{"script-punctuation":{pattern:/^=(?=\{)/,alias:"punctuation"},rest:e.languages.jsx}}},e.languages.jsx.tag);var o=function(e){return e?"string"==typeof e?e:"string"==typeof e.content?e.content:e.content.map(o).join(""):""},s=function(t){for(var n=[],r=0;r<t.length;r++){var a=t[r],i=!1;if("string"!=typeof a&&("tag"===a.type&&a.content[0]&&"tag"===a.content[0].type?"</"===a.content[0].content[0].content?n.length>0&&n[n.length-1].tagName===o(a.content[0].content[1])&&n.pop():"/>"===a.content[a.content.length-1].content||n.push({tagName:o(a.content[0].content[1]),openedBraces:0}):n.length>0&&"punctuation"===a.type&&"{"===a.content?n[n.length-1].openedBraces++:n.length>0&&n[n.length-1].openedBraces>0&&"punctuation"===a.type&&"}"===a.content?n[n.length-1].openedBraces--:i=!0),(i||"string"==typeof a)&&n.length>0&&0===n[n.length-1].openedBraces){var l=o(a);r<t.length-1&&("string"==typeof t[r+1]||"plain-text"===t[r+1].type)&&(l+=o(t[r+1]),t.splice(r+1,1)),r>0&&("string"==typeof t[r-1]||"plain-text"===t[r-1].type)&&(l=o(t[r-1])+l,t.splice(r-1,1),r--),t[r]=new e.Token("plain-text",l,null,l)}a.content&&"string"!=typeof a.content&&s(a.content)}};e.hooks.add("after-tokenize",(function(e){"jsx"!==e.language&&"tsx"!==e.language||s(e.tokens)}))}(a),function(e){e.languages.diff={coord:[/^(?:\*{3}|-{3}|\+{3}).*$/m,/^@@.*@@$/m,/^\d.*$/m]};var t={"deleted-sign":"-","deleted-arrow":"<","inserted-sign":"+","inserted-arrow":">",unchanged:" ",diff:"!"};Object.keys(t).forEach((function(n){var r=t[n],a=[];/^\w+$/.test(n)||a.push(/\w+/.exec(n)[0]),"diff"===n&&a.push("bold"),e.languages.diff[n]={pattern:RegExp("^(?:["+r+"].*(?:\r\n?|\n|(?![\\s\\S])))+","m"),alias:a,inside:{line:{pattern:/(.)(?=[\s\S]).*(?:\r\n?|\n)?/,lookbehind:!0},prefix:{pattern:/[\s\S]/,alias:/\w+/.exec(n)[0]}}}})),Object.defineProperty(e.languages.diff,"PREFIXES",{value:t})}(a),a.languages.git={comment:/^#.*/m,deleted:/^[-\u2013].*/m,inserted:/^\+.*/m,string:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,command:{pattern:/^.*\$ git .*$/m,inside:{parameter:/\s--?\w+/}},coord:/^@@.*@@$/m,"commit-sha1":/^commit \w{40}$/m},a.languages.go=a.languages.extend("clike",{string:{pattern:/(^|[^\\])"(?:\\.|[^"\\\r\n])*"|`[^`]*`/,lookbehind:!0,greedy:!0},keyword:/\b(?:break|case|chan|const|continue|default|defer|else|fallthrough|for|func|go(?:to)?|if|import|interface|map|package|range|return|select|struct|switch|type|var)\b/,boolean:/\b(?:_|false|iota|nil|true)\b/,number:[/\b0(?:b[01_]+|o[0-7_]+)i?\b/i,/\b0x(?:[a-f\d_]+(?:\.[a-f\d_]*)?|\.[a-f\d_]+)(?:p[+-]?\d+(?:_\d+)*)?i?(?!\w)/i,/(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?[\d_]+)?i?(?!\w)/i],operator:/[*\/%^!=]=?|\+[=+]?|-[=-]?|\|[=|]?|&(?:=|&|\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\.\.\./,builtin:/\b(?:append|bool|byte|cap|close|complex|complex(?:64|128)|copy|delete|error|float(?:32|64)|u?int(?:8|16|32|64)?|imag|len|make|new|panic|print(?:ln)?|real|recover|rune|string|uintptr)\b/}),a.languages.insertBefore("go","string",{char:{pattern:/'(?:\\.|[^'\\\r\n]){0,10}'/,greedy:!0}}),delete a.languages.go["class-name"],function(e){function t(e,t){return"___"+e.toUpperCase()+t+"___"}Object.defineProperties(e.languages["markup-templating"]={},{buildPlaceholders:{value:function(n,r,a,i){if(n.language===r){var o=n.tokenStack=[];n.code=n.code.replace(a,(function(e){if("function"==typeof i&&!i(e))return e;for(var a,s=o.length;-1!==n.code.indexOf(a=t(r,s));)++s;return o[s]=e,a})),n.grammar=e.languages.markup}}},tokenizePlaceholders:{value:function(n,r){if(n.language===r&&n.tokenStack){n.grammar=e.languages[r];var a=0,i=Object.keys(n.tokenStack);!function o(s){for(var l=0;l<s.length&&!(a>=i.length);l++){var u=s[l];if("string"==typeof u||u.content&&"string"==typeof u.content){var c=i[a],d=n.tokenStack[c],p="string"==typeof u?u:u.content,f=t(r,c),m=p.indexOf(f);if(m>-1){++a;var h=p.substring(0,m),g=new e.Token(r,e.tokenize(d,n.grammar),"language-"+r,d),b=p.substring(m+f.length),v=[];h&&v.push.apply(v,o([h])),v.push(g),b&&v.push.apply(v,o([b])),"string"==typeof u?s.splice.apply(s,[l,1].concat(v)):u.content=v}}else u.content&&o(u.content)}return s}(n.tokens)}}}})}(a),function(e){e.languages.handlebars={comment:/\{\{![\s\S]*?\}\}/,delimiter:{pattern:/^\{\{\{?|\}\}\}?$/,alias:"punctuation"},string:/(["'])(?:\\.|(?!\1)[^\\\r\n])*\1/,number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee][+-]?\d+)?/,boolean:/\b(?:false|true)\b/,block:{pattern:/^(\s*(?:~\s*)?)[#\/]\S+?(?=\s*(?:~\s*)?$|\s)/,lookbehind:!0,alias:"keyword"},brackets:{pattern:/\[[^\]]+\]/,inside:{punctuation:/\[|\]/,variable:/[\s\S]+/}},punctuation:/[!"#%&':()*+,.\/;<=>@\[\\\]^`{|}~]/,variable:/[^!"#%&'()*+,\/;<=>@\[\\\]^`{|}~\s]+/},e.hooks.add("before-tokenize",(function(t){e.languages["markup-templating"].buildPlaceholders(t,"handlebars",/\{\{\{[\s\S]+?\}\}\}|\{\{[\s\S]+?\}\}/g)})),e.hooks.add("after-tokenize",(function(t){e.languages["markup-templating"].tokenizePlaceholders(t,"handlebars")})),e.languages.hbs=e.languages.handlebars}(a),a.languages.json={property:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?=\s*:)/,lookbehind:!0,greedy:!0},string:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?!\s*:)/,lookbehind:!0,greedy:!0},comment:{pattern:/\/\/.*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},number:/-?\b\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,punctuation:/[{}[\],]/,operator:/:/,boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"}},a.languages.webmanifest=a.languages.json,a.languages.less=a.languages.extend("css",{comment:[/\/\*[\s\S]*?\*\//,{pattern:/(^|[^\\])\/\/.*/,lookbehind:!0}],atrule:{pattern:/@[\w-](?:\((?:[^(){}]|\([^(){}]*\))*\)|[^(){};\s]|\s+(?!\s))*?(?=\s*\{)/,inside:{punctuation:/[:()]/}},selector:{pattern:/(?:@\{[\w-]+\}|[^{};\s@])(?:@\{[\w-]+\}|\((?:[^(){}]|\([^(){}]*\))*\)|[^(){};@\s]|\s+(?!\s))*?(?=\s*\{)/,inside:{variable:/@+[\w-]+/}},property:/(?:@\{[\w-]+\}|[\w-])+(?:\+_?)?(?=\s*:)/,operator:/[+\-*\/]/}),a.languages.insertBefore("less","property",{variable:[{pattern:/@[\w-]+\s*:/,inside:{punctuation:/:/}},/@@?[\w-]+/],"mixin-usage":{pattern:/([{;]\s*)[.#](?!\d)[\w-].*?(?=[(;])/,lookbehind:!0,alias:"function"}}),a.languages.makefile={comment:{pattern:/(^|[^\\])#(?:\\(?:\r\n|[\s\S])|[^\\\r\n])*/,lookbehind:!0},string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"builtin-target":{pattern:/\.[A-Z][^:#=\s]+(?=\s*:(?!=))/,alias:"builtin"},target:{pattern:/^(?:[^:=\s]|[ \t]+(?![\s:]))+(?=\s*:(?!=))/m,alias:"symbol",inside:{variable:/\$+(?:(?!\$)[^(){}:#=\s]+|(?=[({]))/}},variable:/\$+(?:(?!\$)[^(){}:#=\s]+|\([@*%<^+?][DF]\)|(?=[({]))/,keyword:/-include\b|\b(?:define|else|endef|endif|export|ifn?def|ifn?eq|include|override|private|sinclude|undefine|unexport|vpath)\b/,function:{pattern:/(\()(?:abspath|addsuffix|and|basename|call|dir|error|eval|file|filter(?:-out)?|findstring|firstword|flavor|foreach|guile|if|info|join|lastword|load|notdir|or|origin|patsubst|realpath|shell|sort|strip|subst|suffix|value|warning|wildcard|word(?:list|s)?)(?=[ \t])/,lookbehind:!0},operator:/(?:::|[?:+!])?=|[|@]/,punctuation:/[:;(){}]/},a.languages.objectivec=a.languages.extend("c",{string:{pattern:/@?"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},keyword:/\b(?:asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|in|inline|int|long|register|return|self|short|signed|sizeof|static|struct|super|switch|typedef|typeof|union|unsigned|void|volatile|while)\b|(?:@interface|@end|@implementation|@protocol|@class|@public|@protected|@private|@property|@try|@catch|@finally|@throw|@synthesize|@dynamic|@selector)\b/,operator:/-[->]?|\+\+?|!=?|<<?=?|>>?=?|==?|&&?|\|\|?|[~^%?*\/@]/}),delete a.languages.objectivec["class-name"],a.languages.objc=a.languages.objectivec,a.languages.ocaml={comment:{pattern:/\(\*[\s\S]*?\*\)/,greedy:!0},char:{pattern:/'(?:[^\\\r\n']|\\(?:.|[ox]?[0-9a-f]{1,3}))'/i,greedy:!0},string:[{pattern:/"(?:\\(?:[\s\S]|\r\n)|[^\\\r\n"])*"/,greedy:!0},{pattern:/\{([a-z_]*)\|[\s\S]*?\|\1\}/,greedy:!0}],number:[/\b(?:0b[01][01_]*|0o[0-7][0-7_]*)\b/i,/\b0x[a-f0-9][a-f0-9_]*(?:\.[a-f0-9_]*)?(?:p[+-]?\d[\d_]*)?(?!\w)/i,/\b\d[\d_]*(?:\.[\d_]*)?(?:e[+-]?\d[\d_]*)?(?!\w)/i],directive:{pattern:/\B#\w+/,alias:"property"},label:{pattern:/\B~\w+/,alias:"property"},"type-variable":{pattern:/\B'\w+/,alias:"function"},variant:{pattern:/`\w+/,alias:"symbol"},keyword:/\b(?:as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|match|method|module|mutable|new|nonrec|object|of|open|private|rec|sig|struct|then|to|try|type|val|value|virtual|when|where|while|with)\b/,boolean:/\b(?:false|true)\b/,"operator-like-punctuation":{pattern:/\[[<>|]|[>|]\]|\{<|>\}/,alias:"punctuation"},operator:/\.[.~]|:[=>]|[=<>@^|&+\-*\/$%!?~][!$%&*+\-.\/:<=>?@^|~]*|\b(?:and|asr|land|lor|lsl|lsr|lxor|mod|or)\b/,punctuation:/;;|::|[(){}\[\].,:;#]|\b_\b/},a.languages.python={comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0,greedy:!0},"string-interpolation":{pattern:/(?:f|fr|rf)(?:("""|''')[\s\S]*?\1|("|')(?:\\.|(?!\2)[^\\\r\n])*\2)/i,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^{])(?:\{\{)*)\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}])+\})+\})+\}/,lookbehind:!0,inside:{"format-spec":{pattern:/(:)[^:(){}]+(?=\}$)/,lookbehind:!0},"conversion-option":{pattern:/![sra](?=[:}]$)/,alias:"punctuation"},rest:null}},string:/[\s\S]+/}},"triple-quoted-string":{pattern:/(?:[rub]|br|rb)?("""|''')[\s\S]*?\1/i,greedy:!0,alias:"string"},string:{pattern:/(?:[rub]|br|rb)?("|')(?:\\.|(?!\1)[^\\\r\n])*\1/i,greedy:!0},function:{pattern:/((?:^|\s)def[ \t]+)[a-zA-Z_]\w*(?=\s*\()/g,lookbehind:!0},"class-name":{pattern:/(\bclass\s+)\w+/i,lookbehind:!0},decorator:{pattern:/(^[\t ]*)@\w+(?:\.\w+)*/m,lookbehind:!0,alias:["annotation","punctuation"],inside:{punctuation:/\./}},keyword:/\b(?:_(?=\s*:)|and|as|assert|async|await|break|case|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|match|nonlocal|not|or|pass|print|raise|return|try|while|with|yield)\b/,builtin:/\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\b/,boolean:/\b(?:False|None|True)\b/,number:/\b0(?:b(?:_?[01])+|o(?:_?[0-7])+|x(?:_?[a-f0-9])+)\b|(?:\b\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\B\.\d+(?:_\d+)*)(?:e[+-]?\d+(?:_\d+)*)?j?(?!\w)/i,operator:/[-+%=]=?|!=|:=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]/,punctuation:/[{}[\];(),.:]/},a.languages.python["string-interpolation"].inside.interpolation.inside.rest=a.languages.python,a.languages.py=a.languages.python,a.languages.reason=a.languages.extend("clike",{string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^\\\r\n"])*"/,greedy:!0},"class-name":/\b[A-Z]\w*/,keyword:/\b(?:and|as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|method|module|mutable|new|nonrec|object|of|open|or|private|rec|sig|struct|switch|then|to|try|type|val|virtual|when|while|with)\b/,operator:/\.{3}|:[:=]|\|>|->|=(?:==?|>)?|<=?|>=?|[|^?'#!~`]|[+\-*\/]\.?|\b(?:asr|land|lor|lsl|lsr|lxor|mod)\b/}),a.languages.insertBefore("reason","class-name",{char:{pattern:/'(?:\\x[\da-f]{2}|\\o[0-3][0-7][0-7]|\\\d{3}|\\.|[^'\\\r\n])'/,greedy:!0},constructor:/\b[A-Z]\w*\b(?!\s*\.)/,label:{pattern:/\b[a-z]\w*(?=::)/,alias:"symbol"}}),delete a.languages.reason.function,function(e){e.languages.sass=e.languages.extend("css",{comment:{pattern:/^([ \t]*)\/[\/*].*(?:(?:\r?\n|\r)\1[ \t].+)*/m,lookbehind:!0,greedy:!0}}),e.languages.insertBefore("sass","atrule",{"atrule-line":{pattern:/^(?:[ \t]*)[@+=].+/m,greedy:!0,inside:{atrule:/(?:@[\w-]+|[+=])/}}}),delete e.languages.sass.atrule;var t=/\$[-\w]+|#\{\$[-\w]+\}/,n=[/[+*\/%]|[=!]=|<=?|>=?|\b(?:and|not|or)\b/,{pattern:/(\s)-(?=\s)/,lookbehind:!0}];e.languages.insertBefore("sass","property",{"variable-line":{pattern:/^[ \t]*\$.+/m,greedy:!0,inside:{punctuation:/:/,variable:t,operator:n}},"property-line":{pattern:/^[ \t]*(?:[^:\s]+ *:.*|:[^:\s].*)/m,greedy:!0,inside:{property:[/[^:\s]+(?=\s*:)/,{pattern:/(:)[^:\s]+/,lookbehind:!0}],punctuation:/:/,variable:t,operator:n,important:e.languages.sass.important}}}),delete e.languages.sass.property,delete e.languages.sass.important,e.languages.insertBefore("sass","punctuation",{selector:{pattern:/^([ \t]*)\S(?:,[^,\r\n]+|[^,\r\n]*)(?:,[^,\r\n]+)*(?:,(?:\r?\n|\r)\1[ \t]+\S(?:,[^,\r\n]+|[^,\r\n]*)(?:,[^,\r\n]+)*)*/m,lookbehind:!0,greedy:!0}})}(a),a.languages.scss=a.languages.extend("css",{comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0},atrule:{pattern:/@[\w-](?:\([^()]+\)|[^()\s]|\s+(?!\s))*?(?=\s+[{;])/,inside:{rule:/@[\w-]+/}},url:/(?:[-a-z]+-)?url(https://github.com/?=\()/i,selector:{pattern:/(?=\S)[^@;{}()]?(?:[^@;{}()\s]|\s+(?!\s)|#\{\$[-\w]+\})+(?=\s*\{(?:\}|\s|[^}][^:{}]*[:{][^}]))/,inside:{parent:{pattern:/&/,alias:"important"},placeholder:/%[-\w]+/,variable:/\$[-\w]+|#\{\$[-\w]+\}/}},property:{pattern:/(?:[-\w]|\$[-\w]|#\{\$[-\w]+\})+(?=\s*:)/,inside:{variable:/\$[-\w]+|#\{\$[-\w]+\}/}}}),a.languages.insertBefore("scss","atrule",{keyword:[/@(?:content|debug|each|else(?: if)?|extend|for|forward|function|if|import|include|mixin|return|use|warn|while)\b/i,{pattern:/( )(?:from|through)(?= )/,lookbehind:!0}]}),a.languages.insertBefore("scss","important",{variable:/\$[-\w]+|#\{\$[-\w]+\}/}),a.languages.insertBefore("scss","function",{"module-modifier":{pattern:/\b(?:as|hide|show|with)\b/i,alias:"keyword"},placeholder:{pattern:/%[-\w]+/,alias:"selector"},statement:{pattern:/\B!(?:default|optional)\b/i,alias:"keyword"},boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"},operator:{pattern:/(\s)(?:[-+*\/%]|[=!]=|<=?|>=?|and|not|or)(?=\s)/,lookbehind:!0}}),a.languages.scss.atrule.inside.rest=a.languages.scss,function(e){var t={pattern:/(\b\d+)(?:%|[a-z]+)/,lookbehind:!0},n={pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0},r={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0},url:{pattern:/\burl\((["']?).*?\1\)/i,greedy:!0},string:{pattern:/("|')(?:(?!\1)[^\\\r\n]|\\(?:\r\n|[\s\S]))*\1/,greedy:!0},interpolation:null,func:null,important:/\B!(?:important|optional)\b/i,keyword:{pattern:/(^|\s+)(?:(?:else|for|if|return|unless)(?=\s|$)|@[\w-]+)/,lookbehind:!0},hexcode:/#[\da-f]{3,6}/i,color:[/\b(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)\b/i,{pattern:/\b(?:hsl|rgb)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:hsl|rgb)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,inside:{unit:t,number:n,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:t,boolean:/\b(?:false|true)\b/,operator:[/~|[+!\/%<>?=]=?|[-:]=|\*[*=]?|\.{2,3}|&&|\|\||\B-\B|\b(?:and|in|is(?: a| defined| not|nt)?|not|or)\b/],number:n,punctuation:/[{}()\[\];:,]/};r.interpolation={pattern:/\{[^\r\n}:]+\}/,alias:"variable",inside:{delimiter:{pattern:/^\{|\}$/,alias:"punctuation"},rest:r}},r.func={pattern:/[\w-]+\([^)]*\).*/,inside:{function:/^[^(]+/,rest:r}},e.languages.stylus={"atrule-declaration":{pattern:/(^[ \t]*)@.+/m,lookbehind:!0,inside:{atrule:/^@[\w-]+/,rest:r}},"variable-declaration":{pattern:/(^[ \t]*)[\w$-]+\s*.?=[ \t]*(?:\{[^{}]*\}|\S.*|$)/m,lookbehind:!0,inside:{variable:/^\S+/,rest:r}},statement:{pattern:/(^[ \t]*)(?:else|for|if|return|unless)[ \t].+/m,lookbehind:!0,inside:{keyword:/^\S+/,rest:r}},"property-declaration":{pattern:/((?:^|\{)([ \t]*))(?:[\w-]|\{[^}\r\n]+\})+(?:\s*:\s*|[ \t]+)(?!\s)[^{\r\n]*(?:;|[^{\r\n,]$(?!(?:\r?\n|\r)(?:\{|\2[ \t])))/m,lookbehind:!0,inside:{property:{pattern:/^[^\s:]+/,inside:{interpolation:r.interpolation}},rest:r}},selector:{pattern:/(^[ \t]*)(?:(?=\S)(?:[^{}\r\n:()]|::?[\w-]+(?:\([^)\r\n]*\)|(?![\w-]))|\{[^}\r\n]+\})+)(?:(?:\r?\n|\r)(?:\1(?:(?=\S)(?:[^{}\r\n:()]|::?[\w-]+(?:\([^)\r\n]*\)|(?![\w-]))|\{[^}\r\n]+\})+)))*(?:,$|\{|(?=(?:\r?\n|\r)(?:\{|\1[ \t])))/m,lookbehind:!0,inside:{interpolation:r.interpolation,comment:r.comment,punctuation:/[{},]/}},func:r.func,string:r.string,comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0,greedy:!0},interpolation:r.interpolation,punctuation:/[{}()\[\];:.]/}}(a),function(e){var t=e.util.clone(e.languages.typescript);e.languages.tsx=e.languages.extend("jsx",t),delete e.languages.tsx.parameter,delete e.languages.tsx["literal-property"];var n=e.languages.tsx.tag;n.pattern=RegExp(/(^|[^\w$]|(?=<\/))/.source+"(?:"+n.pattern.source+")",n.pattern.flags),n.lookbehind=!0}(a),a.languages.wasm={comment:[/\(;[\s\S]*?;\)/,{pattern:/;;.*/,greedy:!0}],string:{pattern:/"(?:\\[\s\S]|[^"\\])*"/,greedy:!0},keyword:[{pattern:/\b(?:align|offset)=/,inside:{operator:/=/}},{pattern:/\b(?:(?:f32|f64|i32|i64)(?:\.(?:abs|add|and|ceil|clz|const|convert_[su]\/i(?:32|64)|copysign|ctz|demote\/f64|div(?:_[su])?|eqz?|extend_[su]\/i32|floor|ge(?:_[su])?|gt(?:_[su])?|le(?:_[su])?|load(?:(?:8|16|32)_[su])?|lt(?:_[su])?|max|min|mul|neg?|nearest|or|popcnt|promote\/f32|reinterpret\/[fi](?:32|64)|rem_[su]|rot[lr]|shl|shr_[su]|sqrt|store(?:8|16|32)?|sub|trunc(?:_[su]\/f(?:32|64))?|wrap\/i64|xor))?|memory\.(?:grow|size))\b/,inside:{punctuation:/\./}},/\b(?:anyfunc|block|br(?:_if|_table)?|call(?:_indirect)?|data|drop|elem|else|end|export|func|get_(?:global|local)|global|if|import|local|loop|memory|module|mut|nop|offset|param|result|return|select|set_(?:global|local)|start|table|tee_local|then|type|unreachable)\b/],variable:/\$[\w!#$%&'*+\-./:<=>?@\\^`|~]+/,number:/[+-]?\b(?:\d(?:_?\d)*(?:\.\d(?:_?\d)*)?(?:[eE][+-]?\d(?:_?\d)*)?|0x[\da-fA-F](?:_?[\da-fA-F])*(?:\.[\da-fA-F](?:_?[\da-fA-D])*)?(?:[pP][+-]?\d(?:_?\d)*)?)\b|\binf\b|\bnan(?::0x[\da-fA-F](?:_?[\da-fA-D])*)?\b/,punctuation:/[()]/};const i=a},7874:()=>{!function(e){var t="\\b(?:BASH|BASHOPTS|BASH_ALIASES|BASH_ARGC|BASH_ARGV|BASH_CMDS|BASH_COMPLETION_COMPAT_DIR|BASH_LINENO|BASH_REMATCH|BASH_SOURCE|BASH_VERSINFO|BASH_VERSION|COLORTERM|COLUMNS|COMP_WORDBREAKS|DBUS_SESSION_BUS_ADDRESS|DEFAULTS_PATH|DESKTOP_SESSION|DIRSTACK|DISPLAY|EUID|GDMSESSION|GDM_LANG|GNOME_KEYRING_CONTROL|GNOME_KEYRING_PID|GPG_AGENT_INFO|GROUPS|HISTCONTROL|HISTFILE|HISTFILESIZE|HISTSIZE|HOME|HOSTNAME|HOSTTYPE|IFS|INSTANCE|JOB|LANG|LANGUAGE|LC_ADDRESS|LC_ALL|LC_IDENTIFICATION|LC_MEASUREMENT|LC_MONETARY|LC_NAME|LC_NUMERIC|LC_PAPER|LC_TELEPHONE|LC_TIME|LESSCLOSE|LESSOPEN|LINES|LOGNAME|LS_COLORS|MACHTYPE|MAILCHECK|MANDATORY_PATH|NO_AT_BRIDGE|OLDPWD|OPTERR|OPTIND|ORBIT_SOCKETDIR|OSTYPE|PAPERSIZE|PATH|PIPESTATUS|PPID|PS1|PS2|PS3|PS4|PWD|RANDOM|REPLY|SECONDS|SELINUX_INIT|SESSION|SESSIONTYPE|SESSION_MANAGER|SHELL|SHELLOPTS|SHLVL|SSH_AUTH_SOCK|TERM|UID|UPSTART_EVENTS|UPSTART_INSTANCE|UPSTART_JOB|UPSTART_SESSION|USER|WINDOWID|XAUTHORITY|XDG_CONFIG_DIRS|XDG_CURRENT_DESKTOP|XDG_DATA_DIRS|XDG_GREETER_DATA_DIR|XDG_MENU_PREFIX|XDG_RUNTIME_DIR|XDG_SEAT|XDG_SEAT_PATH|XDG_SESSION_DESKTOP|XDG_SESSION_ID|XDG_SESSION_PATH|XDG_SESSION_TYPE|XDG_VTNR|XMODIFIERS)\\b",n={pattern:/(^(["']?)\w+\2)[ \t]+\S.*/,lookbehind:!0,alias:"punctuation",inside:null},r={bash:n,environment:{pattern:RegExp("\\$"+t),alias:"constant"},variable:[{pattern:/\$?\(\([\s\S]+?\)\)/,greedy:!0,inside:{variable:[{pattern:/(^\$\(\([\s\S]+)\)\)/,lookbehind:!0},/^\$\(\(/],number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee]-?\d+)?/,operator:/--|\+\+|\*\*=?|<<=?|>>=?|&&|\|\||[=!+\-*/%<>^&|]=?|[?~:]/,punctuation:/\(\(?|\)\)?|,|;/}},{pattern:/\$\((?:\([^)]+\)|[^()])+\)|`[^`]+`/,greedy:!0,inside:{variable:/^\$\(|^`|\)$|`$/}},{pattern:/\$\{[^}]+\}/,greedy:!0,inside:{operator:/:[-=?+]?|[!\/]|##?|%%?|\^\^?|,,?/,punctuation:/[\[\]]/,environment:{pattern:RegExp("(\\{)"+t),lookbehind:!0,alias:"constant"}}},/\$(?:\w+|[#?*!@$])/],entity:/\\(?:[abceEfnrtv\\"]|O?[0-7]{1,3}|U[0-9a-fA-F]{8}|u[0-9a-fA-F]{4}|x[0-9a-fA-F]{1,2})/};e.languages.bash={shebang:{pattern:/^#!\s*\/.*/,alias:"important"},comment:{pattern:/(^|[^"{\\$])#.*/,lookbehind:!0},"function-name":[{pattern:/(\bfunction\s+)[\w-]+(?=(?:\s*\(?:\s*\))?\s*\{)/,lookbehind:!0,alias:"function"},{pattern:/\b[\w-]+(?=\s*\(\s*\)\s*\{)/,alias:"function"}],"for-or-select":{pattern:/(\b(?:for|select)\s+)\w+(?=\s+in\s)/,alias:"variable",lookbehind:!0},"assign-left":{pattern:/(^|[\s;|&]|[<>]\()\w+(?:\.\w+)*(?=\+?=)/,inside:{environment:{pattern:RegExp("(^|[\\s;|&]|[<>]\\()"+t),lookbehind:!0,alias:"constant"}},alias:"variable",lookbehind:!0},parameter:{pattern:/(^|\s)-{1,2}(?:\w+:[+-]?)?\w+(?:\.\w+)*(?=[=\s]|$)/,alias:"variable",lookbehind:!0},string:[{pattern:/((?:^|[^<])<<-?\s*)(\w+)\s[\s\S]*?(?:\r?\n|\r)\2/,lookbehind:!0,greedy:!0,inside:r},{pattern:/((?:^|[^<])<<-?\s*)(["'])(\w+)\2\s[\s\S]*?(?:\r?\n|\r)\3/,lookbehind:!0,greedy:!0,inside:{bash:n}},{pattern:/(^|[^\\](?:\\\\)*)"(?:\\[\s\S]|\$\([^)]+\)|\$(?!\()|`[^`]+`|[^"\\`$])*"/,lookbehind:!0,greedy:!0,inside:r},{pattern:/(^|[^$\\])'[^']*'/,lookbehind:!0,greedy:!0},{pattern:/\$'(?:[^'\\]|\\[\s\S])*'/,greedy:!0,inside:{entity:r.entity}}],environment:{pattern:RegExp("\\$?"+t),alias:"constant"},variable:r.variable,function:{pattern:/(^|[\s;|&]|[<>]\()(?:add|apropos|apt|apt-cache|apt-get|aptitude|aspell|automysqlbackup|awk|basename|bash|bc|bconsole|bg|bzip2|cal|cargo|cat|cfdisk|chgrp|chkconfig|chmod|chown|chroot|cksum|clear|cmp|column|comm|composer|cp|cron|crontab|csplit|curl|cut|date|dc|dd|ddrescue|debootstrap|df|diff|diff3|dig|dir|dircolors|dirname|dirs|dmesg|docker|docker-compose|du|egrep|eject|env|ethtool|expand|expect|expr|fdformat|fdisk|fg|fgrep|file|find|fmt|fold|format|free|fsck|ftp|fuser|gawk|git|gparted|grep|groupadd|groupdel|groupmod|groups|grub-mkconfig|gzip|halt|head|hg|history|host|hostname|htop|iconv|id|ifconfig|ifdown|ifup|import|install|ip|java|jobs|join|kill|killall|less|link|ln|locate|logname|logrotate|look|lpc|lpr|lprint|lprintd|lprintq|lprm|ls|lsof|lynx|make|man|mc|mdadm|mkconfig|mkdir|mke2fs|mkfifo|mkfs|mkisofs|mknod|mkswap|mmv|more|most|mount|mtools|mtr|mutt|mv|nano|nc|netstat|nice|nl|node|nohup|notify-send|npm|nslookup|op|open|parted|passwd|paste|pathchk|ping|pkill|pnpm|podman|podman-compose|popd|pr|printcap|printenv|ps|pushd|pv|quota|quotacheck|quotactl|ram|rar|rcp|reboot|remsync|rename|renice|rev|rm|rmdir|rpm|rsync|scp|screen|sdiff|sed|sendmail|seq|service|sftp|sh|shellcheck|shuf|shutdown|sleep|slocate|sort|split|ssh|stat|strace|su|sudo|sum|suspend|swapon|sync|sysctl|tac|tail|tar|tee|time|timeout|top|touch|tr|traceroute|tsort|tty|umount|uname|unexpand|uniq|units|unrar|unshar|unzip|update-grub|uptime|useradd|userdel|usermod|users|uudecode|uuencode|v|vcpkg|vdir|vi|vim|virsh|vmstat|wait|watch|wc|wget|whereis|which|who|whoami|write|xargs|xdg-open|yarn|yes|zenity|zip|zsh|zypper)(?=$|[)\s;|&])/,lookbehind:!0},keyword:{pattern:/(^|[\s;|&]|[<>]\()(?:case|do|done|elif|else|esac|fi|for|function|if|in|select|then|until|while)(?=$|[)\s;|&])/,lookbehind:!0},builtin:{pattern:/(^|[\s;|&]|[<>]\()(?:\.|:|alias|bind|break|builtin|caller|cd|command|continue|declare|echo|enable|eval|exec|exit|export|getopts|hash|help|let|local|logout|mapfile|printf|pwd|read|readarray|readonly|return|set|shift|shopt|source|test|times|trap|type|typeset|ulimit|umask|unalias|unset)(?=$|[)\s;|&])/,lookbehind:!0,alias:"class-name"},boolean:{pattern:/(^|[\s;|&]|[<>]\()(?:false|true)(?=$|[)\s;|&])/,lookbehind:!0},"file-descriptor":{pattern:/\B&\d\b/,alias:"important"},operator:{pattern:/\d?<>|>\||\+=|=[=~]?|!=?|<<[<-]?|[&\d]?>>|\d[<>]&?|[<>][&=]?|&[>&]?|\|[&|]?/,inside:{"file-descriptor":{pattern:/^\d/,alias:"important"}}},punctuation:/\$?\(\(?|\)\)?|\.\.|[{}[\];\\]/,number:{pattern:/(^|\s)(?:[1-9]\d*|0)(?:[.,]\d+)?\b/,lookbehind:!0}},n.inside=e.languages.bash;for(var a=["comment","function-name","for-or-select","assign-left","parameter","string","environment","function","keyword","builtin","boolean","file-descriptor","operator","punctuation","number"],i=r.variable[1].inside,o=0;o<a.length;o++)i[a[o]]=e.languages.bash[a[o]];e.languages.sh=e.languages.bash,e.languages.shell=e.languages.bash}(Prism)},6841:()=>{Prism.languages.lua={comment:/^#!.+|--(?:\[(=*)\[[\s\S]*?\]\1\]|.*)/m,string:{pattern:/(["'])(?:(?!\1)[^\\\r\n]|\\z(?:\r\n|\s)|\\(?:\r\n|[^z]))*\1|\[(=*)\[[\s\S]*?\]\2\]/,greedy:!0},number:/\b0x[a-f\d]+(?:\.[a-f\d]*)?(?:p[+-]?\d+)?\b|\b\d+(?:\.\B|(?:\.\d*)?(?:e[+-]?\d+)?\b)|\B\.\d+(?:e[+-]?\d+)?\b/i,keyword:/\b(?:and|break|do|else|elseif|end|false|for|function|goto|if|in|local|nil|not|or|repeat|return|then|true|until|while)\b/,function:/(?!\d)\w+(?=\s*(?:[({]))/,operator:[/[-+*%^&|#]|\/\/?|<[<=]?|>[>=]?|[=~]=?/,{pattern:/(^|[^.])\.\.(?!\.)/,lookbehind:!0}],punctuation:/[\[\](){},;]|\.+|:+/}},6862:()=>{!function(e){var t=e.languages.powershell={comment:[{pattern:/(^|[^`])<#[\s\S]*?#>/,lookbehind:!0},{pattern:/(^|[^`])#.*/,lookbehind:!0}],string:[{pattern:/"(?:`[\s\S]|[^`"])*"/,greedy:!0,inside:null},{pattern:/'(?:[^']|'')*'/,greedy:!0}],namespace:/\[[a-z](?:\[(?:\[[^\]]*\]|[^\[\]])*\]|[^\[\]])*\]/i,boolean:/\$(?:false|true)\b/i,variable:/\$\w+\b/,function:[/\b(?:Add|Approve|Assert|Backup|Block|Checkpoint|Clear|Close|Compare|Complete|Compress|Confirm|Connect|Convert|ConvertFrom|ConvertTo|Copy|Debug|Deny|Disable|Disconnect|Dismount|Edit|Enable|Enter|Exit|Expand|Export|Find|ForEach|Format|Get|Grant|Group|Hide|Import|Initialize|Install|Invoke|Join|Limit|Lock|Measure|Merge|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|Sort|Split|Start|Step|Stop|Submit|Suspend|Switch|Sync|Tee|Test|Trace|Unblock|Undo|Uninstall|Unlock|Unprotect|Unpublish|Unregister|Update|Use|Wait|Watch|Where|Write)-[a-z]+\b/i,/\b(?:ac|cat|chdir|clc|cli|clp|clv|compare|copy|cp|cpi|cpp|cvpa|dbp|del|diff|dir|ebp|echo|epal|epcsv|epsn|erase|fc|fl|ft|fw|gal|gbp|gc|gci|gcs|gdr|gi|gl|gm|gp|gps|group|gsv|gu|gv|gwmi|iex|ii|ipal|ipcsv|ipsn|irm|iwmi|iwr|kill|lp|ls|measure|mi|mount|move|mp|mv|nal|ndr|ni|nv|ogv|popd|ps|pushd|pwd|rbp|rd|rdr|ren|ri|rm|rmdir|rni|rnp|rp|rv|rvpa|rwmi|sal|saps|sasv|sbp|sc|select|set|shcm|si|sl|sleep|sls|sort|sp|spps|spsv|start|sv|swmi|tee|trcm|type|write)\b/i],keyword:/\b(?:Begin|Break|Catch|Class|Continue|Data|Define|Do|DynamicParam|Else|ElseIf|End|Exit|Filter|Finally|For|ForEach|From|Function|If|InlineScript|Parallel|Param|Process|Return|Sequence|Switch|Throw|Trap|Try|Until|Using|Var|While|Workflow)\b/i,operator:{pattern:/(^|\W)(?:!|-(?:b?(?:and|x?or)|as|(?:Not)?(?:Contains|In|Like|Match)|eq|ge|gt|is(?:Not)?|Join|le|lt|ne|not|Replace|sh[lr])\b|-[-=]?|\+[+=]?|[*\/%]=?)/i,lookbehind:!0},punctuation:/[|{}[\];(),.]/};t.string[0].inside={function:{pattern:/(^|[^`])\$\((?:\$\([^\r\n()]*\)|(?!\$\()[^\r\n)])*\)/,lookbehind:!0,inside:t},boolean:t.boolean,variable:t.variable}}(Prism)},9132:(e,t,n)=>{var r={"./prism-bash":7874,"./prism-lua":6841,"./prism-powershell":6862};function a(e){var t=i(e);return n(t)}function i(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}a.keys=function(){return Object.keys(r)},a.resolve=i,e.exports=a,a.id=9132},2703:(e,t,n)=>{"use strict";var r=n(414);function a(){}function i(){}i.resetWarningCache=a,e.exports=function(){function e(e,t,n,a,i,o){if(o!==r){var s=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw s.name="Invariant Violation",s}}function t(){return e}e.isRequired=e;var n={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:i,resetWarningCache:a};return n.PropTypes=n,n}},5697:(e,t,n)=>{e.exports=n(2703)()},414:e=>{"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},4448:(e,t,n)=>{"use strict";var r=n(7294),a=n(7418),i=n(3840);function o(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n]);return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}if(!r)throw Error(o(227));var s=new Set,l={};function u(e,t){c(e,t),c(e+"Capture",t)}function c(e,t){for(l[e]=t,e=0;e<t.length;e++)s.add(t[e])}var d=!("undefined"==typeof window||void 0===window.document||void 0===window.document.createElement),p=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,f=Object.prototype.hasOwnProperty,m={},h={};function g(e,t,n,r,a,i,o){this.acceptsBooleans=2===t||3===t||4===t,this.attributeName=r,this.attributeNamespace=a,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=i,this.removeEmptyString=o}var b={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach((function(e){b[e]=new g(e,0,!1,e,null,!1,!1)})),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach((function(e){var t=e[0];b[t]=new g(t,1,!1,e[1],null,!1,!1)})),["contentEditable","draggable","spellCheck","value"].forEach((function(e){b[e]=new g(e,2,!1,e.toLowerCase(),null,!1,!1)})),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach((function(e){b[e]=new g(e,2,!1,e,null,!1,!1)})),"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach((function(e){b[e]=new g(e,3,!1,e.toLowerCase(),null,!1,!1)})),["checked","multiple","muted","selected"].forEach((function(e){b[e]=new g(e,3,!0,e,null,!1,!1)})),["capture","download"].forEach((function(e){b[e]=new g(e,4,!1,e,null,!1,!1)})),["cols","rows","size","span"].forEach((function(e){b[e]=new g(e,6,!1,e,null,!1,!1)})),["rowSpan","start"].forEach((function(e){b[e]=new g(e,5,!1,e.toLowerCase(),null,!1,!1)}));var v=/[\-:]([a-z])/g;function y(e){return e[1].toUpperCase()}function x(e,t,n,r){var a=b.hasOwnProperty(t)?b[t]:null;(null!==a?0===a.type:!r&&(2<t.length&&("o"===t[0]||"O"===t[0])&&("n"===t[1]||"N"===t[1])))||(function(e,t,n,r){if(null==t||function(e,t,n,r){if(null!==n&&0===n.type)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return!r&&(null!==n?!n.acceptsBooleans:"data-"!==(e=e.toLowerCase().slice(0,5))&&"aria-"!==e);default:return!1}}(e,t,n,r))return!0;if(r)return!1;if(null!==n)switch(n.type){case 3:return!t;case 4:return!1===t;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}(t,n,a,r)&&(n=null),r||null===a?function(e){return!!f.call(h,e)||!f.call(m,e)&&(p.test(e)?h[e]=!0:(m[e]=!0,!1))}(t)&&(null===n?e.removeAttribute(t):e.setAttribute(t,""+n)):a.mustUseProperty?e[a.propertyName]=null===n?3!==a.type&&"":n:(t=a.attributeName,r=a.attributeNamespace,null===n?e.removeAttribute(t):(n=3===(a=a.type)||4===a&&!0===n?"":""+n,r?e.setAttributeNS(r,t,n):e.setAttribute(t,n))))}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach((function(e){var t=e.replace(v,y);b[t]=new g(t,1,!1,e,null,!1,!1)})),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach((function(e){var t=e.replace(v,y);b[t]=new g(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)})),["xml:base","xml:lang","xml:space"].forEach((function(e){var t=e.replace(v,y);b[t]=new g(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)})),["tabIndex","crossOrigin"].forEach((function(e){b[e]=new g(e,1,!1,e.toLowerCase(),null,!1,!1)})),b.xlinkHref=new g("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach((function(e){b[e]=new g(e,1,!1,e.toLowerCase(),null,!0,!0)}));var w=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,k=60103,S=60106,E=60107,_=60108,C=60114,T=60109,P=60110,L=60112,O=60113,A=60120,N=60115,I=60116,R=60121,D=60128,M=60129,F=60130,B=60131;if("function"==typeof Symbol&&Symbol.for){var z=Symbol.for;k=z("react.element"),S=z("react.portal"),E=z("react.fragment"),_=z("react.strict_mode"),C=z("react.profiler"),T=z("react.provider"),P=z("react.context"),L=z("react.forward_ref"),O=z("react.suspense"),A=z("react.suspense_list"),N=z("react.memo"),I=z("react.lazy"),R=z("react.block"),z("react.scope"),D=z("react.opaque.id"),M=z("react.debug_trace_mode"),F=z("react.offscreen"),B=z("react.legacy_hidden")}var $,j="function"==typeof Symbol&&Symbol.iterator;function U(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=j&&e[j]||e["@@iterator"])?e:null}function H(e){if(void 0===$)try{throw Error()}catch(n){var t=n.stack.trim().match(/\n( *(at )?)/);$=t&&t[1]||""}return"\n"+$+e}var Z=!1;function V(e,t){if(!e||Z)return"";Z=!0;var n=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(t)if(t=function(){throw Error()},Object.defineProperty(t.prototype,"props",{set:function(){throw Error()}}),"object"==typeof Reflect&&Reflect.construct){try{Reflect.construct(t,[])}catch(l){var r=l}Reflect.construct(e,[],t)}else{try{t.call()}catch(l){r=l}e.call(t.prototype)}else{try{throw Error()}catch(l){r=l}e()}}catch(l){if(l&&r&&"string"==typeof l.stack){for(var a=l.stack.split("\n"),i=r.stack.split("\n"),o=a.length-1,s=i.length-1;1<=o&&0<=s&&a[o]!==i[s];)s--;for(;1<=o&&0<=s;o--,s--)if(a[o]!==i[s]){if(1!==o||1!==s)do{if(o--,0>--s||a[o]!==i[s])return"\n"+a[o].replace(" at new "," at ")}while(1<=o&&0<=s);break}}}finally{Z=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?H(e):""}function Q(e){switch(e.tag){case 5:return H(e.type);case 16:return H("Lazy");case 13:return H("Suspense");case 19:return H("SuspenseList");case 0:case 2:case 15:return e=V(e.type,!1);case 11:return e=V(e.type.render,!1);case 22:return e=V(e.type._render,!1);case 1:return e=V(e.type,!0);default:return""}}function G(e){if(null==e)return null;if("function"==typeof e)return e.displayName||e.name||null;if("string"==typeof e)return e;switch(e){case E:return"Fragment";case S:return"Portal";case C:return"Profiler";case _:return"StrictMode";case O:return"Suspense";case A:return"SuspenseList"}if("object"==typeof e)switch(e.$$typeof){case P:return(e.displayName||"Context")+".Consumer";case T:return(e._context.displayName||"Context")+".Provider";case L:var t=e.render;return t=t.displayName||t.name||"",e.displayName||(""!==t?"ForwardRef("+t+")":"ForwardRef");case N:return G(e.type);case R:return G(e._render);case I:t=e._payload,e=e._init;try{return G(e(t))}catch(n){}}return null}function W(e){switch(typeof e){case"boolean":case"number":case"object":case"string":case"undefined":return e;default:return""}}function q(e){var t=e.type;return(e=e.nodeName)&&"input"===e.toLowerCase()&&("checkbox"===t||"radio"===t)}function Y(e){e._valueTracker||(e._valueTracker=function(e){var t=q(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&void 0!==n&&"function"==typeof n.get&&"function"==typeof n.set){var a=n.get,i=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return a.call(this)},set:function(e){r=""+e,i.call(this,e)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(e){r=""+e},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}(e))}function K(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=q(e)?e.checked?"true":"false":e.value),(e=r)!==n&&(t.setValue(e),!0)}function X(e){if(void 0===(e=e||("undefined"!=typeof document?document:void 0)))return null;try{return e.activeElement||e.body}catch(t){return e.body}}function J(e,t){var n=t.checked;return a({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=n?n:e._wrapperState.initialChecked})}function ee(e,t){var n=null==t.defaultValue?"":t.defaultValue,r=null!=t.checked?t.checked:t.defaultChecked;n=W(null!=t.value?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:"checkbox"===t.type||"radio"===t.type?null!=t.checked:null!=t.value}}function te(e,t){null!=(t=t.checked)&&x(e,"checked",t,!1)}function ne(e,t){te(e,t);var n=W(t.value),r=t.type;if(null!=n)"number"===r?(0===n&&""===e.value||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if("submit"===r||"reset"===r)return void e.removeAttribute("value");t.hasOwnProperty("value")?ae(e,t.type,n):t.hasOwnProperty("defaultValue")&&ae(e,t.type,W(t.defaultValue)),null==t.checked&&null!=t.defaultChecked&&(e.defaultChecked=!!t.defaultChecked)}function re(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!("submit"!==r&&"reset"!==r||void 0!==t.value&&null!==t.value))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}""!==(n=e.name)&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,""!==n&&(e.name=n)}function ae(e,t,n){"number"===t&&X(e.ownerDocument)===e||(null==n?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}function ie(e,t){return e=a({children:void 0},t),(t=function(e){var t="";return r.Children.forEach(e,(function(e){null!=e&&(t+=e)})),t}(t.children))&&(e.children=t),e}function oe(e,t,n,r){if(e=e.options,t){t={};for(var a=0;a<n.length;a++)t["$"+n[a]]=!0;for(n=0;n<e.length;n++)a=t.hasOwnProperty("$"+e[n].value),e[n].selected!==a&&(e[n].selected=a),a&&r&&(e[n].defaultSelected=!0)}else{for(n=""+W(n),t=null,a=0;a<e.length;a++){if(e[a].value===n)return e[a].selected=!0,void(r&&(e[a].defaultSelected=!0));null!==t||e[a].disabled||(t=e[a])}null!==t&&(t.selected=!0)}}function se(e,t){if(null!=t.dangerouslySetInnerHTML)throw Error(o(91));return a({},t,{value:void 0,defaultValue:void 0,children:""+e._wrapperState.initialValue})}function le(e,t){var n=t.value;if(null==n){if(n=t.children,t=t.defaultValue,null!=n){if(null!=t)throw Error(o(92));if(Array.isArray(n)){if(!(1>=n.length))throw Error(o(93));n=n[0]}t=n}null==t&&(t=""),n=t}e._wrapperState={initialValue:W(n)}}function ue(e,t){var n=W(t.value),r=W(t.defaultValue);null!=n&&((n=""+n)!==e.value&&(e.value=n),null==t.defaultValue&&e.defaultValue!==n&&(e.defaultValue=n)),null!=r&&(e.defaultValue=""+r)}function ce(e){var t=e.textContent;t===e._wrapperState.initialValue&&""!==t&&null!==t&&(e.value=t)}var de="http://www.w3.org/1999/xhtml",pe="http://www.w3.org/2000/svg";function fe(e){switch(e){case"svg":return"http://www.w3.org/2000/svg";case"math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function me(e,t){return null==e||"http://www.w3.org/1999/xhtml"===e?fe(t):"http://www.w3.org/2000/svg"===e&&"foreignObject"===t?"http://www.w3.org/1999/xhtml":e}var he,ge,be=(ge=function(e,t){if(e.namespaceURI!==pe||"innerHTML"in e)e.innerHTML=t;else{for((he=he||document.createElement("div")).innerHTML="<svg>"+t.valueOf().toString()+"</svg>",t=he.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}},"undefined"!=typeof MSApp&&MSApp.execUnsafeLocalFunction?function(e,t,n,r){MSApp.execUnsafeLocalFunction((function(){return ge(e,t)}))}:ge);function ve(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&3===n.nodeType)return void(n.nodeValue=t)}e.textContent=t}var ye={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},xe=["Webkit","ms","Moz","O"];function we(e,t,n){return null==t||"boolean"==typeof t||""===t?"":n||"number"!=typeof t||0===t||ye.hasOwnProperty(e)&&ye[e]?(""+t).trim():t+"px"}function ke(e,t){for(var n in e=e.style,t)if(t.hasOwnProperty(n)){var r=0===n.indexOf("--"),a=we(n,t[n],r);"float"===n&&(n="cssFloat"),r?e.setProperty(n,a):e[n]=a}}Object.keys(ye).forEach((function(e){xe.forEach((function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),ye[t]=ye[e]}))}));var Se=a({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function Ee(e,t){if(t){if(Se[e]&&(null!=t.children||null!=t.dangerouslySetInnerHTML))throw Error(o(137,e));if(null!=t.dangerouslySetInnerHTML){if(null!=t.children)throw Error(o(60));if("object"!=typeof t.dangerouslySetInnerHTML||!("__html"in t.dangerouslySetInnerHTML))throw Error(o(61))}if(null!=t.style&&"object"!=typeof t.style)throw Error(o(62))}}function _e(e,t){if(-1===e.indexOf("-"))return"string"==typeof t.is;switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}function Ce(e){return(e=e.target||e.srcElement||window).correspondingUseElement&&(e=e.correspondingUseElement),3===e.nodeType?e.parentNode:e}var Te=null,Pe=null,Le=null;function Oe(e){if(e=ra(e)){if("function"!=typeof Te)throw Error(o(280));var t=e.stateNode;t&&(t=ia(t),Te(e.stateNode,e.type,t))}}function Ae(e){Pe?Le?Le.push(e):Le=[e]:Pe=e}function Ne(){if(Pe){var e=Pe,t=Le;if(Le=Pe=null,Oe(e),t)for(e=0;e<t.length;e++)Oe(t[e])}}function Ie(e,t){return e(t)}function Re(e,t,n,r,a){return e(t,n,r,a)}function De(){}var Me=Ie,Fe=!1,Be=!1;function ze(){null===Pe&&null===Le||(De(),Ne())}function $e(e,t){var n=e.stateNode;if(null===n)return null;var r=ia(n);if(null===r)return null;n=r[t];e:switch(t){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(r=!r.disabled)||(r=!("button"===(e=e.type)||"input"===e||"select"===e||"textarea"===e)),e=!r;break e;default:e=!1}if(e)return null;if(n&&"function"!=typeof n)throw Error(o(231,t,typeof n));return n}var je=!1;if(d)try{var Ue={};Object.defineProperty(Ue,"passive",{get:function(){je=!0}}),window.addEventListener("test",Ue,Ue),window.removeEventListener("test",Ue,Ue)}catch(ge){je=!1}function He(e,t,n,r,a,i,o,s,l){var u=Array.prototype.slice.call(arguments,3);try{t.apply(n,u)}catch(c){this.onError(c)}}var Ze=!1,Ve=null,Qe=!1,Ge=null,We={onError:function(e){Ze=!0,Ve=e}};function qe(e,t,n,r,a,i,o,s,l){Ze=!1,Ve=null,He.apply(We,arguments)}function Ye(e){var t=e,n=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do{0!=(1026&(t=e).flags)&&(n=t.return),e=t.return}while(e)}return 3===t.tag?n:null}function Ke(e){if(13===e.tag){var t=e.memoizedState;if(null===t&&(null!==(e=e.alternate)&&(t=e.memoizedState)),null!==t)return t.dehydrated}return null}function Xe(e){if(Ye(e)!==e)throw Error(o(188))}function Je(e){if(e=function(e){var t=e.alternate;if(!t){if(null===(t=Ye(e)))throw Error(o(188));return t!==e?null:e}for(var n=e,r=t;;){var a=n.return;if(null===a)break;var i=a.alternate;if(null===i){if(null!==(r=a.return)){n=r;continue}break}if(a.child===i.child){for(i=a.child;i;){if(i===n)return Xe(a),e;if(i===r)return Xe(a),t;i=i.sibling}throw Error(o(188))}if(n.return!==r.return)n=a,r=i;else{for(var s=!1,l=a.child;l;){if(l===n){s=!0,n=a,r=i;break}if(l===r){s=!0,r=a,n=i;break}l=l.sibling}if(!s){for(l=i.child;l;){if(l===n){s=!0,n=i,r=a;break}if(l===r){s=!0,r=i,n=a;break}l=l.sibling}if(!s)throw Error(o(189))}}if(n.alternate!==r)throw Error(o(190))}if(3!==n.tag)throw Error(o(188));return n.stateNode.current===n?e:t}(e),!e)return null;for(var t=e;;){if(5===t.tag||6===t.tag)return t;if(t.child)t.child.return=t,t=t.child;else{if(t===e)break;for(;!t.sibling;){if(!t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}}return null}function et(e,t){for(var n=e.alternate;null!==t;){if(t===e||t===n)return!0;t=t.return}return!1}var tt,nt,rt,at,it=!1,ot=[],st=null,lt=null,ut=null,ct=new Map,dt=new Map,pt=[],ft="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit".split(" ");function mt(e,t,n,r,a){return{blockedOn:e,domEventName:t,eventSystemFlags:16|n,nativeEvent:a,targetContainers:[r]}}function ht(e,t){switch(e){case"focusin":case"focusout":st=null;break;case"dragenter":case"dragleave":lt=null;break;case"mouseover":case"mouseout":ut=null;break;case"pointerover":case"pointerout":ct.delete(t.pointerId);break;case"gotpointercapture":case"lostpointercapture":dt.delete(t.pointerId)}}function gt(e,t,n,r,a,i){return null===e||e.nativeEvent!==i?(e=mt(t,n,r,a,i),null!==t&&(null!==(t=ra(t))&&nt(t)),e):(e.eventSystemFlags|=r,t=e.targetContainers,null!==a&&-1===t.indexOf(a)&&t.push(a),e)}function bt(e){var t=na(e.target);if(null!==t){var n=Ye(t);if(null!==n)if(13===(t=n.tag)){if(null!==(t=Ke(n)))return e.blockedOn=t,void at(e.lanePriority,(function(){i.unstable_runWithPriority(e.priority,(function(){rt(n)}))}))}else if(3===t&&n.stateNode.hydrate)return void(e.blockedOn=3===n.tag?n.stateNode.containerInfo:null)}e.blockedOn=null}function vt(e){if(null!==e.blockedOn)return!1;for(var t=e.targetContainers;0<t.length;){var n=Jt(e.domEventName,e.eventSystemFlags,t[0],e.nativeEvent);if(null!==n)return null!==(t=ra(n))&&nt(t),e.blockedOn=n,!1;t.shift()}return!0}function yt(e,t,n){vt(e)&&n.delete(t)}function xt(){for(it=!1;0<ot.length;){var e=ot[0];if(null!==e.blockedOn){null!==(e=ra(e.blockedOn))&&tt(e);break}for(var t=e.targetContainers;0<t.length;){var n=Jt(e.domEventName,e.eventSystemFlags,t[0],e.nativeEvent);if(null!==n){e.blockedOn=n;break}t.shift()}null===e.blockedOn&&ot.shift()}null!==st&&vt(st)&&(st=null),null!==lt&&vt(lt)&&(lt=null),null!==ut&&vt(ut)&&(ut=null),ct.forEach(yt),dt.forEach(yt)}function wt(e,t){e.blockedOn===t&&(e.blockedOn=null,it||(it=!0,i.unstable_scheduleCallback(i.unstable_NormalPriority,xt)))}function kt(e){function t(t){return wt(t,e)}if(0<ot.length){wt(ot[0],e);for(var n=1;n<ot.length;n++){var r=ot[n];r.blockedOn===e&&(r.blockedOn=null)}}for(null!==st&&wt(st,e),null!==lt&&wt(lt,e),null!==ut&&wt(ut,e),ct.forEach(t),dt.forEach(t),n=0;n<pt.length;n++)(r=pt[n]).blockedOn===e&&(r.blockedOn=null);for(;0<pt.length&&null===(n=pt[0]).blockedOn;)bt(n),null===n.blockedOn&&pt.shift()}function St(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n}var Et={animationend:St("Animation","AnimationEnd"),animationiteration:St("Animation","AnimationIteration"),animationstart:St("Animation","AnimationStart"),transitionend:St("Transition","TransitionEnd")},_t={},Ct={};function Tt(e){if(_t[e])return _t[e];if(!Et[e])return e;var t,n=Et[e];for(t in n)if(n.hasOwnProperty(t)&&t in Ct)return _t[e]=n[t];return e}d&&(Ct=document.createElement("div").style,"AnimationEvent"in window||(delete Et.animationend.animation,delete Et.animationiteration.animation,delete Et.animationstart.animation),"TransitionEvent"in window||delete Et.transitionend.transition);var Pt=Tt("animationend"),Lt=Tt("animationiteration"),Ot=Tt("animationstart"),At=Tt("transitionend"),Nt=new Map,It=new Map,Rt=["abort","abort",Pt,"animationEnd",Lt,"animationIteration",Ot,"animationStart","canplay","canPlay","canplaythrough","canPlayThrough","durationchange","durationChange","emptied","emptied","encrypted","encrypted","ended","ended","error","error","gotpointercapture","gotPointerCapture","load","load","loadeddata","loadedData","loadedmetadata","loadedMetadata","loadstart","loadStart","lostpointercapture","lostPointerCapture","playing","playing","progress","progress","seeking","seeking","stalled","stalled","suspend","suspend","timeupdate","timeUpdate",At,"transitionEnd","waiting","waiting"];function Dt(e,t){for(var n=0;n<e.length;n+=2){var r=e[n],a=e[n+1];a="on"+(a[0].toUpperCase()+a.slice(1)),It.set(r,t),Nt.set(r,a),u(a,[r])}}(0,i.unstable_now)();var Mt=8;function Ft(e){if(0!=(1&e))return Mt=15,1;if(0!=(2&e))return Mt=14,2;if(0!=(4&e))return Mt=13,4;var t=24&e;return 0!==t?(Mt=12,t):0!=(32&e)?(Mt=11,32):0!==(t=192&e)?(Mt=10,t):0!=(256&e)?(Mt=9,256):0!==(t=3584&e)?(Mt=8,t):0!=(4096&e)?(Mt=7,4096):0!==(t=4186112&e)?(Mt=6,t):0!==(t=62914560&e)?(Mt=5,t):67108864&e?(Mt=4,67108864):0!=(134217728&e)?(Mt=3,134217728):0!==(t=805306368&e)?(Mt=2,t):0!=(1073741824&e)?(Mt=1,1073741824):(Mt=8,e)}function Bt(e,t){var n=e.pendingLanes;if(0===n)return Mt=0;var r=0,a=0,i=e.expiredLanes,o=e.suspendedLanes,s=e.pingedLanes;if(0!==i)r=i,a=Mt=15;else if(0!==(i=134217727&n)){var l=i&~o;0!==l?(r=Ft(l),a=Mt):0!==(s&=i)&&(r=Ft(s),a=Mt)}else 0!==(i=n&~o)?(r=Ft(i),a=Mt):0!==s&&(r=Ft(s),a=Mt);if(0===r)return 0;if(r=n&((0>(r=31-Zt(r))?0:1<<r)<<1)-1,0!==t&&t!==r&&0==(t&o)){if(Ft(t),a<=Mt)return t;Mt=a}if(0!==(t=e.entangledLanes))for(e=e.entanglements,t&=r;0<t;)a=1<<(n=31-Zt(t)),r|=e[n],t&=~a;return r}function zt(e){return 0!==(e=-1073741825&e.pendingLanes)?e:1073741824&e?1073741824:0}function $t(e,t){switch(e){case 15:return 1;case 14:return 2;case 12:return 0===(e=jt(24&~t))?$t(10,t):e;case 10:return 0===(e=jt(192&~t))?$t(8,t):e;case 8:return 0===(e=jt(3584&~t))&&(0===(e=jt(4186112&~t))&&(e=512)),e;case 2:return 0===(t=jt(805306368&~t))&&(t=268435456),t}throw Error(o(358,e))}function jt(e){return e&-e}function Ut(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function Ht(e,t,n){e.pendingLanes|=t;var r=t-1;e.suspendedLanes&=r,e.pingedLanes&=r,(e=e.eventTimes)[t=31-Zt(t)]=n}var Zt=Math.clz32?Math.clz32:function(e){return 0===e?32:31-(Vt(e)/Qt|0)|0},Vt=Math.log,Qt=Math.LN2;var Gt=i.unstable_UserBlockingPriority,Wt=i.unstable_runWithPriority,qt=!0;function Yt(e,t,n,r){Fe||De();var a=Xt,i=Fe;Fe=!0;try{Re(a,e,t,n,r)}finally{(Fe=i)||ze()}}function Kt(e,t,n,r){Wt(Gt,Xt.bind(null,e,t,n,r))}function Xt(e,t,n,r){var a;if(qt)if((a=0==(4&t))&&0<ot.length&&-1<ft.indexOf(e))e=mt(null,e,t,n,r),ot.push(e);else{var i=Jt(e,t,n,r);if(null===i)a&&ht(e,r);else{if(a){if(-1<ft.indexOf(e))return e=mt(i,e,t,n,r),void ot.push(e);if(function(e,t,n,r,a){switch(t){case"focusin":return st=gt(st,e,t,n,r,a),!0;case"dragenter":return lt=gt(lt,e,t,n,r,a),!0;case"mouseover":return ut=gt(ut,e,t,n,r,a),!0;case"pointerover":var i=a.pointerId;return ct.set(i,gt(ct.get(i)||null,e,t,n,r,a)),!0;case"gotpointercapture":return i=a.pointerId,dt.set(i,gt(dt.get(i)||null,e,t,n,r,a)),!0}return!1}(i,e,t,n,r))return;ht(e,r)}Dr(e,t,r,null,n)}}}function Jt(e,t,n,r){var a=Ce(r);if(null!==(a=na(a))){var i=Ye(a);if(null===i)a=null;else{var o=i.tag;if(13===o){if(null!==(a=Ke(i)))return a;a=null}else if(3===o){if(i.stateNode.hydrate)return 3===i.tag?i.stateNode.containerInfo:null;a=null}else i!==a&&(a=null)}}return Dr(e,t,r,a,n),null}var en=null,tn=null,nn=null;function rn(){if(nn)return nn;var e,t,n=tn,r=n.length,a="value"in en?en.value:en.textContent,i=a.length;for(e=0;e<r&&n[e]===a[e];e++);var o=r-e;for(t=1;t<=o&&n[r-t]===a[i-t];t++);return nn=a.slice(e,1<t?1-t:void 0)}function an(e){var t=e.keyCode;return"charCode"in e?0===(e=e.charCode)&&13===t&&(e=13):e=t,10===e&&(e=13),32<=e||13===e?e:0}function on(){return!0}function sn(){return!1}function ln(e){function t(t,n,r,a,i){for(var o in this._reactName=t,this._targetInst=r,this.type=n,this.nativeEvent=a,this.target=i,this.currentTarget=null,e)e.hasOwnProperty(o)&&(t=e[o],this[o]=t?t(a):a[o]);return this.isDefaultPrevented=(null!=a.defaultPrevented?a.defaultPrevented:!1===a.returnValue)?on:sn,this.isPropagationStopped=sn,this}return a(t.prototype,{preventDefault:function(){this.defaultPrevented=!0;var e=this.nativeEvent;e&&(e.preventDefault?e.preventDefault():"unknown"!=typeof e.returnValue&&(e.returnValue=!1),this.isDefaultPrevented=on)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():"unknown"!=typeof e.cancelBubble&&(e.cancelBubble=!0),this.isPropagationStopped=on)},persist:function(){},isPersistent:on}),t}var un,cn,dn,pn={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},fn=ln(pn),mn=a({},pn,{view:0,detail:0}),hn=ln(mn),gn=a({},mn,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:Pn,button:0,buttons:0,relatedTarget:function(e){return void 0===e.relatedTarget?e.fromElement===e.srcElement?e.toElement:e.fromElement:e.relatedTarget},movementX:function(e){return"movementX"in e?e.movementX:(e!==dn&&(dn&&"mousemove"===e.type?(un=e.screenX-dn.screenX,cn=e.screenY-dn.screenY):cn=un=0,dn=e),un)},movementY:function(e){return"movementY"in e?e.movementY:cn}}),bn=ln(gn),vn=ln(a({},gn,{dataTransfer:0})),yn=ln(a({},mn,{relatedTarget:0})),xn=ln(a({},pn,{animationName:0,elapsedTime:0,pseudoElement:0})),wn=a({},pn,{clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}}),kn=ln(wn),Sn=ln(a({},pn,{data:0})),En={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},_n={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},Cn={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function Tn(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):!!(e=Cn[e])&&!!t[e]}function Pn(){return Tn}var Ln=a({},mn,{key:function(e){if(e.key){var t=En[e.key]||e.key;if("Unidentified"!==t)return t}return"keypress"===e.type?13===(e=an(e))?"Enter":String.fromCharCode(e):"keydown"===e.type||"keyup"===e.type?_n[e.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:Pn,charCode:function(e){return"keypress"===e.type?an(e):0},keyCode:function(e){return"keydown"===e.type||"keyup"===e.type?e.keyCode:0},which:function(e){return"keypress"===e.type?an(e):"keydown"===e.type||"keyup"===e.type?e.keyCode:0}}),On=ln(Ln),An=ln(a({},gn,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0})),Nn=ln(a({},mn,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:Pn})),In=ln(a({},pn,{propertyName:0,elapsedTime:0,pseudoElement:0})),Rn=a({},gn,{deltaX:function(e){return"deltaX"in e?e.deltaX:"wheelDeltaX"in e?-e.wheelDeltaX:0},deltaY:function(e){return"deltaY"in e?e.deltaY:"wheelDeltaY"in e?-e.wheelDeltaY:"wheelDelta"in e?-e.wheelDelta:0},deltaZ:0,deltaMode:0}),Dn=ln(Rn),Mn=[9,13,27,32],Fn=d&&"CompositionEvent"in window,Bn=null;d&&"documentMode"in document&&(Bn=document.documentMode);var zn=d&&"TextEvent"in window&&!Bn,$n=d&&(!Fn||Bn&&8<Bn&&11>=Bn),jn=String.fromCharCode(32),Un=!1;function Hn(e,t){switch(e){case"keyup":return-1!==Mn.indexOf(t.keyCode);case"keydown":return 229!==t.keyCode;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Zn(e){return"object"==typeof(e=e.detail)&&"data"in e?e.data:null}var Vn=!1;var Qn={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function Gn(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return"input"===t?!!Qn[e.type]:"textarea"===t}function Wn(e,t,n,r){Ae(r),0<(t=Fr(t,"onChange")).length&&(n=new fn("onChange","change",null,n,r),e.push({event:n,listeners:t}))}var qn=null,Yn=null;function Kn(e){Lr(e,0)}function Xn(e){if(K(aa(e)))return e}function Jn(e,t){if("change"===e)return t}var er=!1;if(d){var tr;if(d){var nr="oninput"in document;if(!nr){var rr=document.createElement("div");rr.setAttribute("oninput","return;"),nr="function"==typeof rr.oninput}tr=nr}else tr=!1;er=tr&&(!document.documentMode||9<document.documentMode)}function ar(){qn&&(qn.detachEvent("onpropertychange",ir),Yn=qn=null)}function ir(e){if("value"===e.propertyName&&Xn(Yn)){var t=[];if(Wn(t,Yn,e,Ce(e)),e=Kn,Fe)e(t);else{Fe=!0;try{Ie(e,t)}finally{Fe=!1,ze()}}}}function or(e,t,n){"focusin"===e?(ar(),Yn=n,(qn=t).attachEvent("onpropertychange",ir)):"focusout"===e&&ar()}function sr(e){if("selectionchange"===e||"keyup"===e||"keydown"===e)return Xn(Yn)}function lr(e,t){if("click"===e)return Xn(t)}function ur(e,t){if("input"===e||"change"===e)return Xn(t)}var cr="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},dr=Object.prototype.hasOwnProperty;function pr(e,t){if(cr(e,t))return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;var n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(r=0;r<n.length;r++)if(!dr.call(t,n[r])||!cr(e[n[r]],t[n[r]]))return!1;return!0}function fr(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function mr(e,t){var n,r=fr(e);for(e=0;r;){if(3===r.nodeType){if(n=e+r.textContent.length,e<=t&&n>=t)return{node:r,offset:t-e};e=n}e:{for(;r;){if(r.nextSibling){r=r.nextSibling;break e}r=r.parentNode}r=void 0}r=fr(r)}}function hr(e,t){return!(!e||!t)&&(e===t||(!e||3!==e.nodeType)&&(t&&3===t.nodeType?hr(e,t.parentNode):"contains"in e?e.contains(t):!!e.compareDocumentPosition&&!!(16&e.compareDocumentPosition(t))))}function gr(){for(var e=window,t=X();t instanceof e.HTMLIFrameElement;){try{var n="string"==typeof t.contentWindow.location.href}catch(r){n=!1}if(!n)break;t=X((e=t.contentWindow).document)}return t}function br(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&("input"===t&&("text"===e.type||"search"===e.type||"tel"===e.type||"url"===e.type||"password"===e.type)||"textarea"===t||"true"===e.contentEditable)}var vr=d&&"documentMode"in document&&11>=document.documentMode,yr=null,xr=null,wr=null,kr=!1;function Sr(e,t,n){var r=n.window===n?n.document:9===n.nodeType?n:n.ownerDocument;kr||null==yr||yr!==X(r)||("selectionStart"in(r=yr)&&br(r)?r={start:r.selectionStart,end:r.selectionEnd}:r={anchorNode:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection()).anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset},wr&&pr(wr,r)||(wr=r,0<(r=Fr(xr,"onSelect")).length&&(t=new fn("onSelect","select",null,t,n),e.push({event:t,listeners:r}),t.target=yr)))}Dt("cancel cancel click click close close contextmenu contextMenu copy copy cut cut auxclick auxClick dblclick doubleClick dragend dragEnd dragstart dragStart drop drop focusin focus focusout blur input input invalid invalid keydown keyDown keypress keyPress keyup keyUp mousedown mouseDown mouseup mouseUp paste paste pause pause play play pointercancel pointerCancel pointerdown pointerDown pointerup pointerUp ratechange rateChange reset reset seeked seeked submit submit touchcancel touchCancel touchend touchEnd touchstart touchStart volumechange volumeChange".split(" "),0),Dt("drag drag dragenter dragEnter dragexit dragExit dragleave dragLeave dragover dragOver mousemove mouseMove mouseout mouseOut mouseover mouseOver pointermove pointerMove pointerout pointerOut pointerover pointerOver scroll scroll toggle toggle touchmove touchMove wheel wheel".split(" "),1),Dt(Rt,2);for(var Er="change selectionchange textInput compositionstart compositionend compositionupdate".split(" "),_r=0;_r<Er.length;_r++)It.set(Er[_r],0);c("onMouseEnter",["mouseout","mouseover"]),c("onMouseLeave",["mouseout","mouseover"]),c("onPointerEnter",["pointerout","pointerover"]),c("onPointerLeave",["pointerout","pointerover"]),u("onChange","change click focusin focusout input keydown keyup selectionchange".split(" ")),u("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" ")),u("onBeforeInput",["compositionend","keypress","textInput","paste"]),u("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" ")),u("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" ")),u("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var Cr="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),Tr=new Set("cancel close invalid load scroll toggle".split(" ").concat(Cr));function Pr(e,t,n){var r=e.type||"unknown-event";e.currentTarget=n,function(e,t,n,r,a,i,s,l,u){if(qe.apply(this,arguments),Ze){if(!Ze)throw Error(o(198));var c=Ve;Ze=!1,Ve=null,Qe||(Qe=!0,Ge=c)}}(r,t,void 0,e),e.currentTarget=null}function Lr(e,t){t=0!=(4&t);for(var n=0;n<e.length;n++){var r=e[n],a=r.event;r=r.listeners;e:{var i=void 0;if(t)for(var o=r.length-1;0<=o;o--){var s=r[o],l=s.instance,u=s.currentTarget;if(s=s.listener,l!==i&&a.isPropagationStopped())break e;Pr(a,s,u),i=l}else for(o=0;o<r.length;o++){if(l=(s=r[o]).instance,u=s.currentTarget,s=s.listener,l!==i&&a.isPropagationStopped())break e;Pr(a,s,u),i=l}}}if(Qe)throw e=Ge,Qe=!1,Ge=null,e}function Or(e,t){var n=oa(t),r=e+"__bubble";n.has(r)||(Rr(t,e,2,!1),n.add(r))}var Ar="_reactListening"+Math.random().toString(36).slice(2);function Nr(e){e[Ar]||(e[Ar]=!0,s.forEach((function(t){Tr.has(t)||Ir(t,!1,e,null),Ir(t,!0,e,null)})))}function Ir(e,t,n,r){var a=4<arguments.length&&void 0!==arguments[4]?arguments[4]:0,i=n;if("selectionchange"===e&&9!==n.nodeType&&(i=n.ownerDocument),null!==r&&!t&&Tr.has(e)){if("scroll"!==e)return;a|=2,i=r}var o=oa(i),s=e+"__"+(t?"capture":"bubble");o.has(s)||(t&&(a|=4),Rr(i,e,a,t),o.add(s))}function Rr(e,t,n,r){var a=It.get(t);switch(void 0===a?2:a){case 0:a=Yt;break;case 1:a=Kt;break;default:a=Xt}n=a.bind(null,t,n,e),a=void 0,!je||"touchstart"!==t&&"touchmove"!==t&&"wheel"!==t||(a=!0),r?void 0!==a?e.addEventListener(t,n,{capture:!0,passive:a}):e.addEventListener(t,n,!0):void 0!==a?e.addEventListener(t,n,{passive:a}):e.addEventListener(t,n,!1)}function Dr(e,t,n,r,a){var i=r;if(0==(1&t)&&0==(2&t)&&null!==r)e:for(;;){if(null===r)return;var o=r.tag;if(3===o||4===o){var s=r.stateNode.containerInfo;if(s===a||8===s.nodeType&&s.parentNode===a)break;if(4===o)for(o=r.return;null!==o;){var l=o.tag;if((3===l||4===l)&&((l=o.stateNode.containerInfo)===a||8===l.nodeType&&l.parentNode===a))return;o=o.return}for(;null!==s;){if(null===(o=na(s)))return;if(5===(l=o.tag)||6===l){r=i=o;continue e}s=s.parentNode}}r=r.return}!function(e,t,n){if(Be)return e(t,n);Be=!0;try{Me(e,t,n)}finally{Be=!1,ze()}}((function(){var r=i,a=Ce(n),o=[];e:{var s=Nt.get(e);if(void 0!==s){var l=fn,u=e;switch(e){case"keypress":if(0===an(n))break e;case"keydown":case"keyup":l=On;break;case"focusin":u="focus",l=yn;break;case"focusout":u="blur",l=yn;break;case"beforeblur":case"afterblur":l=yn;break;case"click":if(2===n.button)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":l=bn;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":l=vn;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":l=Nn;break;case Pt:case Lt:case Ot:l=xn;break;case At:l=In;break;case"scroll":l=hn;break;case"wheel":l=Dn;break;case"copy":case"cut":case"paste":l=kn;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":l=An}var c=0!=(4&t),d=!c&&"scroll"===e,p=c?null!==s?s+"Capture":null:s;c=[];for(var f,m=r;null!==m;){var h=(f=m).stateNode;if(5===f.tag&&null!==h&&(f=h,null!==p&&(null!=(h=$e(m,p))&&c.push(Mr(m,h,f)))),d)break;m=m.return}0<c.length&&(s=new l(s,u,null,n,a),o.push({event:s,listeners:c}))}}if(0==(7&t)){if(l="mouseout"===e||"pointerout"===e,(!(s="mouseover"===e||"pointerover"===e)||0!=(16&t)||!(u=n.relatedTarget||n.fromElement)||!na(u)&&!u[ea])&&(l||s)&&(s=a.window===a?a:(s=a.ownerDocument)?s.defaultView||s.parentWindow:window,l?(l=r,null!==(u=(u=n.relatedTarget||n.toElement)?na(u):null)&&(u!==(d=Ye(u))||5!==u.tag&&6!==u.tag)&&(u=null)):(l=null,u=r),l!==u)){if(c=bn,h="onMouseLeave",p="onMouseEnter",m="mouse","pointerout"!==e&&"pointerover"!==e||(c=An,h="onPointerLeave",p="onPointerEnter",m="pointer"),d=null==l?s:aa(l),f=null==u?s:aa(u),(s=new c(h,m+"leave",l,n,a)).target=d,s.relatedTarget=f,h=null,na(a)===r&&((c=new c(p,m+"enter",u,n,a)).target=f,c.relatedTarget=d,h=c),d=h,l&&u)e:{for(p=u,m=0,f=c=l;f;f=Br(f))m++;for(f=0,h=p;h;h=Br(h))f++;for(;0<m-f;)c=Br(c),m--;for(;0<f-m;)p=Br(p),f--;for(;m--;){if(c===p||null!==p&&c===p.alternate)break e;c=Br(c),p=Br(p)}c=null}else c=null;null!==l&&zr(o,s,l,c,!1),null!==u&&null!==d&&zr(o,d,u,c,!0)}if("select"===(l=(s=r?aa(r):window).nodeName&&s.nodeName.toLowerCase())||"input"===l&&"file"===s.type)var g=Jn;else if(Gn(s))if(er)g=ur;else{g=sr;var b=or}else(l=s.nodeName)&&"input"===l.toLowerCase()&&("checkbox"===s.type||"radio"===s.type)&&(g=lr);switch(g&&(g=g(e,r))?Wn(o,g,n,a):(b&&b(e,s,r),"focusout"===e&&(b=s._wrapperState)&&b.controlled&&"number"===s.type&&ae(s,"number",s.value)),b=r?aa(r):window,e){case"focusin":(Gn(b)||"true"===b.contentEditable)&&(yr=b,xr=r,wr=null);break;case"focusout":wr=xr=yr=null;break;case"mousedown":kr=!0;break;case"contextmenu":case"mouseup":case"dragend":kr=!1,Sr(o,n,a);break;case"selectionchange":if(vr)break;case"keydown":case"keyup":Sr(o,n,a)}var v;if(Fn)e:{switch(e){case"compositionstart":var y="onCompositionStart";break e;case"compositionend":y="onCompositionEnd";break e;case"compositionupdate":y="onCompositionUpdate";break e}y=void 0}else Vn?Hn(e,n)&&(y="onCompositionEnd"):"keydown"===e&&229===n.keyCode&&(y="onCompositionStart");y&&($n&&"ko"!==n.locale&&(Vn||"onCompositionStart"!==y?"onCompositionEnd"===y&&Vn&&(v=rn()):(tn="value"in(en=a)?en.value:en.textContent,Vn=!0)),0<(b=Fr(r,y)).length&&(y=new Sn(y,e,null,n,a),o.push({event:y,listeners:b}),v?y.data=v:null!==(v=Zn(n))&&(y.data=v))),(v=zn?function(e,t){switch(e){case"compositionend":return Zn(t);case"keypress":return 32!==t.which?null:(Un=!0,jn);case"textInput":return(e=t.data)===jn&&Un?null:e;default:return null}}(e,n):function(e,t){if(Vn)return"compositionend"===e||!Fn&&Hn(e,t)?(e=rn(),nn=tn=en=null,Vn=!1,e):null;switch(e){case"paste":default:return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1<t.char.length)return t.char;if(t.which)return String.fromCharCode(t.which)}return null;case"compositionend":return $n&&"ko"!==t.locale?null:t.data}}(e,n))&&(0<(r=Fr(r,"onBeforeInput")).length&&(a=new Sn("onBeforeInput","beforeinput",null,n,a),o.push({event:a,listeners:r}),a.data=v))}Lr(o,t)}))}function Mr(e,t,n){return{instance:e,listener:t,currentTarget:n}}function Fr(e,t){for(var n=t+"Capture",r=[];null!==e;){var a=e,i=a.stateNode;5===a.tag&&null!==i&&(a=i,null!=(i=$e(e,n))&&r.unshift(Mr(e,i,a)),null!=(i=$e(e,t))&&r.push(Mr(e,i,a))),e=e.return}return r}function Br(e){if(null===e)return null;do{e=e.return}while(e&&5!==e.tag);return e||null}function zr(e,t,n,r,a){for(var i=t._reactName,o=[];null!==n&&n!==r;){var s=n,l=s.alternate,u=s.stateNode;if(null!==l&&l===r)break;5===s.tag&&null!==u&&(s=u,a?null!=(l=$e(n,i))&&o.unshift(Mr(n,l,s)):a||null!=(l=$e(n,i))&&o.push(Mr(n,l,s))),n=n.return}0!==o.length&&e.push({event:t,listeners:o})}function $r(){}var jr=null,Ur=null;function Hr(e,t){switch(e){case"button":case"input":case"select":case"textarea":return!!t.autoFocus}return!1}function Zr(e,t){return"textarea"===e||"option"===e||"noscript"===e||"string"==typeof t.children||"number"==typeof t.children||"object"==typeof t.dangerouslySetInnerHTML&&null!==t.dangerouslySetInnerHTML&&null!=t.dangerouslySetInnerHTML.__html}var Vr="function"==typeof setTimeout?setTimeout:void 0,Qr="function"==typeof clearTimeout?clearTimeout:void 0;function Gr(e){1===e.nodeType?e.textContent="":9===e.nodeType&&(null!=(e=e.body)&&(e.textContent=""))}function Wr(e){for(;null!=e;e=e.nextSibling){var t=e.nodeType;if(1===t||3===t)break}return e}function qr(e){e=e.previousSibling;for(var t=0;e;){if(8===e.nodeType){var n=e.data;if("$"===n||"$!"===n||"$?"===n){if(0===t)return e;t--}else"/$"===n&&t++}e=e.previousSibling}return null}var Yr=0;var Kr=Math.random().toString(36).slice(2),Xr="__reactFiber$"+Kr,Jr="__reactProps$"+Kr,ea="__reactContainer$"+Kr,ta="__reactEvents$"+Kr;function na(e){var t=e[Xr];if(t)return t;for(var n=e.parentNode;n;){if(t=n[ea]||n[Xr]){if(n=t.alternate,null!==t.child||null!==n&&null!==n.child)for(e=qr(e);null!==e;){if(n=e[Xr])return n;e=qr(e)}return t}n=(e=n).parentNode}return null}function ra(e){return!(e=e[Xr]||e[ea])||5!==e.tag&&6!==e.tag&&13!==e.tag&&3!==e.tag?null:e}function aa(e){if(5===e.tag||6===e.tag)return e.stateNode;throw Error(o(33))}function ia(e){return e[Jr]||null}function oa(e){var t=e[ta];return void 0===t&&(t=e[ta]=new Set),t}var sa=[],la=-1;function ua(e){return{current:e}}function ca(e){0>la||(e.current=sa[la],sa[la]=null,la--)}function da(e,t){la++,sa[la]=e.current,e.current=t}var pa={},fa=ua(pa),ma=ua(!1),ha=pa;function ga(e,t){var n=e.type.contextTypes;if(!n)return pa;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var a,i={};for(a in n)i[a]=t[a];return r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=i),i}function ba(e){return null!=(e=e.childContextTypes)}function va(){ca(ma),ca(fa)}function ya(e,t,n){if(fa.current!==pa)throw Error(o(168));da(fa,t),da(ma,n)}function xa(e,t,n){var r=e.stateNode;if(e=t.childContextTypes,"function"!=typeof r.getChildContext)return n;for(var i in r=r.getChildContext())if(!(i in e))throw Error(o(108,G(t)||"Unknown",i));return a({},n,r)}function wa(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||pa,ha=fa.current,da(fa,e),da(ma,ma.current),!0}function ka(e,t,n){var r=e.stateNode;if(!r)throw Error(o(169));n?(e=xa(e,t,ha),r.__reactInternalMemoizedMergedChildContext=e,ca(ma),ca(fa),da(fa,e)):ca(ma),da(ma,n)}var Sa=null,Ea=null,_a=i.unstable_runWithPriority,Ca=i.unstable_scheduleCallback,Ta=i.unstable_cancelCallback,Pa=i.unstable_shouldYield,La=i.unstable_requestPaint,Oa=i.unstable_now,Aa=i.unstable_getCurrentPriorityLevel,Na=i.unstable_ImmediatePriority,Ia=i.unstable_UserBlockingPriority,Ra=i.unstable_NormalPriority,Da=i.unstable_LowPriority,Ma=i.unstable_IdlePriority,Fa={},Ba=void 0!==La?La:function(){},za=null,$a=null,ja=!1,Ua=Oa(),Ha=1e4>Ua?Oa:function(){return Oa()-Ua};function Za(){switch(Aa()){case Na:return 99;case Ia:return 98;case Ra:return 97;case Da:return 96;case Ma:return 95;default:throw Error(o(332))}}function Va(e){switch(e){case 99:return Na;case 98:return Ia;case 97:return Ra;case 96:return Da;case 95:return Ma;default:throw Error(o(332))}}function Qa(e,t){return e=Va(e),_a(e,t)}function Ga(e,t,n){return e=Va(e),Ca(e,t,n)}function Wa(){if(null!==$a){var e=$a;$a=null,Ta(e)}qa()}function qa(){if(!ja&&null!==za){ja=!0;var e=0;try{var t=za;Qa(99,(function(){for(;e<t.length;e++){var n=t[e];do{n=n(!0)}while(null!==n)}})),za=null}catch(n){throw null!==za&&(za=za.slice(e+1)),Ca(Na,Wa),n}finally{ja=!1}}}var Ya=w.ReactCurrentBatchConfig;function Ka(e,t){if(e&&e.defaultProps){for(var n in t=a({},t),e=e.defaultProps)void 0===t[n]&&(t[n]=e[n]);return t}return t}var Xa=ua(null),Ja=null,ei=null,ti=null;function ni(){ti=ei=Ja=null}function ri(e){var t=Xa.current;ca(Xa),e.type._context._currentValue=t}function ai(e,t){for(;null!==e;){var n=e.alternate;if((e.childLanes&t)===t){if(null===n||(n.childLanes&t)===t)break;n.childLanes|=t}else e.childLanes|=t,null!==n&&(n.childLanes|=t);e=e.return}}function ii(e,t){Ja=e,ti=ei=null,null!==(e=e.dependencies)&&null!==e.firstContext&&(0!=(e.lanes&t)&&(Fo=!0),e.firstContext=null)}function oi(e,t){if(ti!==e&&!1!==t&&0!==t)if("number"==typeof t&&1073741823!==t||(ti=e,t=1073741823),t={context:e,observedBits:t,next:null},null===ei){if(null===Ja)throw Error(o(308));ei=t,Ja.dependencies={lanes:0,firstContext:t,responders:null}}else ei=ei.next=t;return e._currentValue}var si=!1;function li(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null},effects:null}}function ui(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function ci(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function di(e,t){if(null!==(e=e.updateQueue)){var n=(e=e.shared).pending;null===n?t.next=t:(t.next=n.next,n.next=t),e.pending=t}}function pi(e,t){var n=e.updateQueue,r=e.alternate;if(null!==r&&n===(r=r.updateQueue)){var a=null,i=null;if(null!==(n=n.firstBaseUpdate)){do{var o={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};null===i?a=i=o:i=i.next=o,n=n.next}while(null!==n);null===i?a=i=t:i=i.next=t}else a=i=t;return n={baseState:r.baseState,firstBaseUpdate:a,lastBaseUpdate:i,shared:r.shared,effects:r.effects},void(e.updateQueue=n)}null===(e=n.lastBaseUpdate)?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}function fi(e,t,n,r){var i=e.updateQueue;si=!1;var o=i.firstBaseUpdate,s=i.lastBaseUpdate,l=i.shared.pending;if(null!==l){i.shared.pending=null;var u=l,c=u.next;u.next=null,null===s?o=c:s.next=c,s=u;var d=e.alternate;if(null!==d){var p=(d=d.updateQueue).lastBaseUpdate;p!==s&&(null===p?d.firstBaseUpdate=c:p.next=c,d.lastBaseUpdate=u)}}if(null!==o){for(p=i.baseState,s=0,d=c=u=null;;){l=o.lane;var f=o.eventTime;if((r&l)===l){null!==d&&(d=d.next={eventTime:f,lane:0,tag:o.tag,payload:o.payload,callback:o.callback,next:null});e:{var m=e,h=o;switch(l=t,f=n,h.tag){case 1:if("function"==typeof(m=h.payload)){p=m.call(f,p,l);break e}p=m;break e;case 3:m.flags=-4097&m.flags|64;case 0:if(null==(l="function"==typeof(m=h.payload)?m.call(f,p,l):m))break e;p=a({},p,l);break e;case 2:si=!0}}null!==o.callback&&(e.flags|=32,null===(l=i.effects)?i.effects=[o]:l.push(o))}else f={eventTime:f,lane:l,tag:o.tag,payload:o.payload,callback:o.callback,next:null},null===d?(c=d=f,u=p):d=d.next=f,s|=l;if(null===(o=o.next)){if(null===(l=i.shared.pending))break;o=l.next,l.next=null,i.lastBaseUpdate=l,i.shared.pending=null}}null===d&&(u=p),i.baseState=u,i.firstBaseUpdate=c,i.lastBaseUpdate=d,js|=s,e.lanes=s,e.memoizedState=p}}function mi(e,t,n){if(e=t.effects,t.effects=null,null!==e)for(t=0;t<e.length;t++){var r=e[t],a=r.callback;if(null!==a){if(r.callback=null,r=n,"function"!=typeof a)throw Error(o(191,a));a.call(r)}}}var hi=(new r.Component).refs;function gi(e,t,n,r){n=null==(n=n(r,t=e.memoizedState))?t:a({},t,n),e.memoizedState=n,0===e.lanes&&(e.updateQueue.baseState=n)}var bi={isMounted:function(e){return!!(e=e._reactInternals)&&Ye(e)===e},enqueueSetState:function(e,t,n){e=e._reactInternals;var r=pl(),a=fl(e),i=ci(r,a);i.payload=t,null!=n&&(i.callback=n),di(e,i),ml(e,a,r)},enqueueReplaceState:function(e,t,n){e=e._reactInternals;var r=pl(),a=fl(e),i=ci(r,a);i.tag=1,i.payload=t,null!=n&&(i.callback=n),di(e,i),ml(e,a,r)},enqueueForceUpdate:function(e,t){e=e._reactInternals;var n=pl(),r=fl(e),a=ci(n,r);a.tag=2,null!=t&&(a.callback=t),di(e,a),ml(e,r,n)}};function vi(e,t,n,r,a,i,o){return"function"==typeof(e=e.stateNode).shouldComponentUpdate?e.shouldComponentUpdate(r,i,o):!t.prototype||!t.prototype.isPureReactComponent||(!pr(n,r)||!pr(a,i))}function yi(e,t,n){var r=!1,a=pa,i=t.contextType;return"object"==typeof i&&null!==i?i=oi(i):(a=ba(t)?ha:fa.current,i=(r=null!=(r=t.contextTypes))?ga(e,a):pa),t=new t(n,i),e.memoizedState=null!==t.state&&void 0!==t.state?t.state:null,t.updater=bi,e.stateNode=t,t._reactInternals=e,r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=a,e.__reactInternalMemoizedMaskedChildContext=i),t}function xi(e,t,n,r){e=t.state,"function"==typeof t.componentWillReceiveProps&&t.componentWillReceiveProps(n,r),"function"==typeof t.UNSAFE_componentWillReceiveProps&&t.UNSAFE_componentWillReceiveProps(n,r),t.state!==e&&bi.enqueueReplaceState(t,t.state,null)}function wi(e,t,n,r){var a=e.stateNode;a.props=n,a.state=e.memoizedState,a.refs=hi,li(e);var i=t.contextType;"object"==typeof i&&null!==i?a.context=oi(i):(i=ba(t)?ha:fa.current,a.context=ga(e,i)),fi(e,n,a,r),a.state=e.memoizedState,"function"==typeof(i=t.getDerivedStateFromProps)&&(gi(e,t,i,n),a.state=e.memoizedState),"function"==typeof t.getDerivedStateFromProps||"function"==typeof a.getSnapshotBeforeUpdate||"function"!=typeof a.UNSAFE_componentWillMount&&"function"!=typeof a.componentWillMount||(t=a.state,"function"==typeof a.componentWillMount&&a.componentWillMount(),"function"==typeof a.UNSAFE_componentWillMount&&a.UNSAFE_componentWillMount(),t!==a.state&&bi.enqueueReplaceState(a,a.state,null),fi(e,n,a,r),a.state=e.memoizedState),"function"==typeof a.componentDidMount&&(e.flags|=4)}var ki=Array.isArray;function Si(e,t,n){if(null!==(e=n.ref)&&"function"!=typeof e&&"object"!=typeof e){if(n._owner){if(n=n._owner){if(1!==n.tag)throw Error(o(309));var r=n.stateNode}if(!r)throw Error(o(147,e));var a=""+e;return null!==t&&null!==t.ref&&"function"==typeof t.ref&&t.ref._stringRef===a?t.ref:(t=function(e){var t=r.refs;t===hi&&(t=r.refs={}),null===e?delete t[a]:t[a]=e},t._stringRef=a,t)}if("string"!=typeof e)throw Error(o(284));if(!n._owner)throw Error(o(290,e))}return e}function Ei(e,t){if("textarea"!==e.type)throw Error(o(31,"[object Object]"===Object.prototype.toString.call(t)?"object with keys {"+Object.keys(t).join(", ")+"}":t))}function _i(e){function t(t,n){if(e){var r=t.lastEffect;null!==r?(r.nextEffect=n,t.lastEffect=n):t.firstEffect=t.lastEffect=n,n.nextEffect=null,n.flags=8}}function n(n,r){if(!e)return null;for(;null!==r;)t(n,r),r=r.sibling;return null}function r(e,t){for(e=new Map;null!==t;)null!==t.key?e.set(t.key,t):e.set(t.index,t),t=t.sibling;return e}function a(e,t){return(e=Ql(e,t)).index=0,e.sibling=null,e}function i(t,n,r){return t.index=r,e?null!==(r=t.alternate)?(r=r.index)<n?(t.flags=2,n):r:(t.flags=2,n):n}function s(t){return e&&null===t.alternate&&(t.flags=2),t}function l(e,t,n,r){return null===t||6!==t.tag?((t=Yl(n,e.mode,r)).return=e,t):((t=a(t,n)).return=e,t)}function u(e,t,n,r){return null!==t&&t.elementType===n.type?((r=a(t,n.props)).ref=Si(e,t,n),r.return=e,r):((r=Gl(n.type,n.key,n.props,null,e.mode,r)).ref=Si(e,t,n),r.return=e,r)}function c(e,t,n,r){return null===t||4!==t.tag||t.stateNode.containerInfo!==n.containerInfo||t.stateNode.implementation!==n.implementation?((t=Kl(n,e.mode,r)).return=e,t):((t=a(t,n.children||[])).return=e,t)}function d(e,t,n,r,i){return null===t||7!==t.tag?((t=Wl(n,e.mode,r,i)).return=e,t):((t=a(t,n)).return=e,t)}function p(e,t,n){if("string"==typeof t||"number"==typeof t)return(t=Yl(""+t,e.mode,n)).return=e,t;if("object"==typeof t&&null!==t){switch(t.$$typeof){case k:return(n=Gl(t.type,t.key,t.props,null,e.mode,n)).ref=Si(e,null,t),n.return=e,n;case S:return(t=Kl(t,e.mode,n)).return=e,t}if(ki(t)||U(t))return(t=Wl(t,e.mode,n,null)).return=e,t;Ei(e,t)}return null}function f(e,t,n,r){var a=null!==t?t.key:null;if("string"==typeof n||"number"==typeof n)return null!==a?null:l(e,t,""+n,r);if("object"==typeof n&&null!==n){switch(n.$$typeof){case k:return n.key===a?n.type===E?d(e,t,n.props.children,r,a):u(e,t,n,r):null;case S:return n.key===a?c(e,t,n,r):null}if(ki(n)||U(n))return null!==a?null:d(e,t,n,r,null);Ei(e,n)}return null}function m(e,t,n,r,a){if("string"==typeof r||"number"==typeof r)return l(t,e=e.get(n)||null,""+r,a);if("object"==typeof r&&null!==r){switch(r.$$typeof){case k:return e=e.get(null===r.key?n:r.key)||null,r.type===E?d(t,e,r.props.children,a,r.key):u(t,e,r,a);case S:return c(t,e=e.get(null===r.key?n:r.key)||null,r,a)}if(ki(r)||U(r))return d(t,e=e.get(n)||null,r,a,null);Ei(t,r)}return null}function h(a,o,s,l){for(var u=null,c=null,d=o,h=o=0,g=null;null!==d&&h<s.length;h++){d.index>h?(g=d,d=null):g=d.sibling;var b=f(a,d,s[h],l);if(null===b){null===d&&(d=g);break}e&&d&&null===b.alternate&&t(a,d),o=i(b,o,h),null===c?u=b:c.sibling=b,c=b,d=g}if(h===s.length)return n(a,d),u;if(null===d){for(;h<s.length;h++)null!==(d=p(a,s[h],l))&&(o=i(d,o,h),null===c?u=d:c.sibling=d,c=d);return u}for(d=r(a,d);h<s.length;h++)null!==(g=m(d,a,h,s[h],l))&&(e&&null!==g.alternate&&d.delete(null===g.key?h:g.key),o=i(g,o,h),null===c?u=g:c.sibling=g,c=g);return e&&d.forEach((function(e){return t(a,e)})),u}function g(a,s,l,u){var c=U(l);if("function"!=typeof c)throw Error(o(150));if(null==(l=c.call(l)))throw Error(o(151));for(var d=c=null,h=s,g=s=0,b=null,v=l.next();null!==h&&!v.done;g++,v=l.next()){h.index>g?(b=h,h=null):b=h.sibling;var y=f(a,h,v.value,u);if(null===y){null===h&&(h=b);break}e&&h&&null===y.alternate&&t(a,h),s=i(y,s,g),null===d?c=y:d.sibling=y,d=y,h=b}if(v.done)return n(a,h),c;if(null===h){for(;!v.done;g++,v=l.next())null!==(v=p(a,v.value,u))&&(s=i(v,s,g),null===d?c=v:d.sibling=v,d=v);return c}for(h=r(a,h);!v.done;g++,v=l.next())null!==(v=m(h,a,g,v.value,u))&&(e&&null!==v.alternate&&h.delete(null===v.key?g:v.key),s=i(v,s,g),null===d?c=v:d.sibling=v,d=v);return e&&h.forEach((function(e){return t(a,e)})),c}return function(e,r,i,l){var u="object"==typeof i&&null!==i&&i.type===E&&null===i.key;u&&(i=i.props.children);var c="object"==typeof i&&null!==i;if(c)switch(i.$$typeof){case k:e:{for(c=i.key,u=r;null!==u;){if(u.key===c){if(7===u.tag){if(i.type===E){n(e,u.sibling),(r=a(u,i.props.children)).return=e,e=r;break e}}else if(u.elementType===i.type){n(e,u.sibling),(r=a(u,i.props)).ref=Si(e,u,i),r.return=e,e=r;break e}n(e,u);break}t(e,u),u=u.sibling}i.type===E?((r=Wl(i.props.children,e.mode,l,i.key)).return=e,e=r):((l=Gl(i.type,i.key,i.props,null,e.mode,l)).ref=Si(e,r,i),l.return=e,e=l)}return s(e);case S:e:{for(u=i.key;null!==r;){if(r.key===u){if(4===r.tag&&r.stateNode.containerInfo===i.containerInfo&&r.stateNode.implementation===i.implementation){n(e,r.sibling),(r=a(r,i.children||[])).return=e,e=r;break e}n(e,r);break}t(e,r),r=r.sibling}(r=Kl(i,e.mode,l)).return=e,e=r}return s(e)}if("string"==typeof i||"number"==typeof i)return i=""+i,null!==r&&6===r.tag?(n(e,r.sibling),(r=a(r,i)).return=e,e=r):(n(e,r),(r=Yl(i,e.mode,l)).return=e,e=r),s(e);if(ki(i))return h(e,r,i,l);if(U(i))return g(e,r,i,l);if(c&&Ei(e,i),void 0===i&&!u)switch(e.tag){case 1:case 22:case 0:case 11:case 15:throw Error(o(152,G(e.type)||"Component"))}return n(e,r)}}var Ci=_i(!0),Ti=_i(!1),Pi={},Li=ua(Pi),Oi=ua(Pi),Ai=ua(Pi);function Ni(e){if(e===Pi)throw Error(o(174));return e}function Ii(e,t){switch(da(Ai,t),da(Oi,e),da(Li,Pi),e=t.nodeType){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:me(null,"");break;default:t=me(t=(e=8===e?t.parentNode:t).namespaceURI||null,e=e.tagName)}ca(Li),da(Li,t)}function Ri(){ca(Li),ca(Oi),ca(Ai)}function Di(e){Ni(Ai.current);var t=Ni(Li.current),n=me(t,e.type);t!==n&&(da(Oi,e),da(Li,n))}function Mi(e){Oi.current===e&&(ca(Li),ca(Oi))}var Fi=ua(0);function Bi(e){for(var t=e;null!==t;){if(13===t.tag){var n=t.memoizedState;if(null!==n&&(null===(n=n.dehydrated)||"$?"===n.data||"$!"===n.data))return t}else if(19===t.tag&&void 0!==t.memoizedProps.revealOrder){if(0!=(64&t.flags))return t}else if(null!==t.child){t.child.return=t,t=t.child;continue}if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var zi=null,$i=null,ji=!1;function Ui(e,t){var n=Zl(5,null,null,0);n.elementType="DELETED",n.type="DELETED",n.stateNode=t,n.return=e,n.flags=8,null!==e.lastEffect?(e.lastEffect.nextEffect=n,e.lastEffect=n):e.firstEffect=e.lastEffect=n}function Hi(e,t){switch(e.tag){case 5:var n=e.type;return null!==(t=1!==t.nodeType||n.toLowerCase()!==t.nodeName.toLowerCase()?null:t)&&(e.stateNode=t,!0);case 6:return null!==(t=""===e.pendingProps||3!==t.nodeType?null:t)&&(e.stateNode=t,!0);default:return!1}}function Zi(e){if(ji){var t=$i;if(t){var n=t;if(!Hi(e,t)){if(!(t=Wr(n.nextSibling))||!Hi(e,t))return e.flags=-1025&e.flags|2,ji=!1,void(zi=e);Ui(zi,n)}zi=e,$i=Wr(t.firstChild)}else e.flags=-1025&e.flags|2,ji=!1,zi=e}}function Vi(e){for(e=e.return;null!==e&&5!==e.tag&&3!==e.tag&&13!==e.tag;)e=e.return;zi=e}function Qi(e){if(e!==zi)return!1;if(!ji)return Vi(e),ji=!0,!1;var t=e.type;if(5!==e.tag||"head"!==t&&"body"!==t&&!Zr(t,e.memoizedProps))for(t=$i;t;)Ui(e,t),t=Wr(t.nextSibling);if(Vi(e),13===e.tag){if(!(e=null!==(e=e.memoizedState)?e.dehydrated:null))throw Error(o(317));e:{for(e=e.nextSibling,t=0;e;){if(8===e.nodeType){var n=e.data;if("/$"===n){if(0===t){$i=Wr(e.nextSibling);break e}t--}else"$"!==n&&"$!"!==n&&"$?"!==n||t++}e=e.nextSibling}$i=null}}else $i=zi?Wr(e.stateNode.nextSibling):null;return!0}function Gi(){$i=zi=null,ji=!1}var Wi=[];function qi(){for(var e=0;e<Wi.length;e++)Wi[e]._workInProgressVersionPrimary=null;Wi.length=0}var Yi=w.ReactCurrentDispatcher,Ki=w.ReactCurrentBatchConfig,Xi=0,Ji=null,eo=null,to=null,no=!1,ro=!1;function ao(){throw Error(o(321))}function io(e,t){if(null===t)return!1;for(var n=0;n<t.length&&n<e.length;n++)if(!cr(e[n],t[n]))return!1;return!0}function oo(e,t,n,r,a,i){if(Xi=i,Ji=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,Yi.current=null===e||null===e.memoizedState?Io:Ro,e=n(r,a),ro){i=0;do{if(ro=!1,!(25>i))throw Error(o(301));i+=1,to=eo=null,t.updateQueue=null,Yi.current=Do,e=n(r,a)}while(ro)}if(Yi.current=No,t=null!==eo&&null!==eo.next,Xi=0,to=eo=Ji=null,no=!1,t)throw Error(o(300));return e}function so(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return null===to?Ji.memoizedState=to=e:to=to.next=e,to}function lo(){if(null===eo){var e=Ji.alternate;e=null!==e?e.memoizedState:null}else e=eo.next;var t=null===to?Ji.memoizedState:to.next;if(null!==t)to=t,eo=e;else{if(null===e)throw Error(o(310));e={memoizedState:(eo=e).memoizedState,baseState:eo.baseState,baseQueue:eo.baseQueue,queue:eo.queue,next:null},null===to?Ji.memoizedState=to=e:to=to.next=e}return to}function uo(e,t){return"function"==typeof t?t(e):t}function co(e){var t=lo(),n=t.queue;if(null===n)throw Error(o(311));n.lastRenderedReducer=e;var r=eo,a=r.baseQueue,i=n.pending;if(null!==i){if(null!==a){var s=a.next;a.next=i.next,i.next=s}r.baseQueue=a=i,n.pending=null}if(null!==a){a=a.next,r=r.baseState;var l=s=i=null,u=a;do{var c=u.lane;if((Xi&c)===c)null!==l&&(l=l.next={lane:0,action:u.action,eagerReducer:u.eagerReducer,eagerState:u.eagerState,next:null}),r=u.eagerReducer===e?u.eagerState:e(r,u.action);else{var d={lane:c,action:u.action,eagerReducer:u.eagerReducer,eagerState:u.eagerState,next:null};null===l?(s=l=d,i=r):l=l.next=d,Ji.lanes|=c,js|=c}u=u.next}while(null!==u&&u!==a);null===l?i=r:l.next=s,cr(r,t.memoizedState)||(Fo=!0),t.memoizedState=r,t.baseState=i,t.baseQueue=l,n.lastRenderedState=r}return[t.memoizedState,n.dispatch]}function po(e){var t=lo(),n=t.queue;if(null===n)throw Error(o(311));n.lastRenderedReducer=e;var r=n.dispatch,a=n.pending,i=t.memoizedState;if(null!==a){n.pending=null;var s=a=a.next;do{i=e(i,s.action),s=s.next}while(s!==a);cr(i,t.memoizedState)||(Fo=!0),t.memoizedState=i,null===t.baseQueue&&(t.baseState=i),n.lastRenderedState=i}return[i,r]}function fo(e,t,n){var r=t._getVersion;r=r(t._source);var a=t._workInProgressVersionPrimary;if(null!==a?e=a===r:(e=e.mutableReadLanes,(e=(Xi&e)===e)&&(t._workInProgressVersionPrimary=r,Wi.push(t))),e)return n(t._source);throw Wi.push(t),Error(o(350))}function mo(e,t,n,r){var a=Is;if(null===a)throw Error(o(349));var i=t._getVersion,s=i(t._source),l=Yi.current,u=l.useState((function(){return fo(a,t,n)})),c=u[1],d=u[0];u=to;var p=e.memoizedState,f=p.refs,m=f.getSnapshot,h=p.source;p=p.subscribe;var g=Ji;return e.memoizedState={refs:f,source:t,subscribe:r},l.useEffect((function(){f.getSnapshot=n,f.setSnapshot=c;var e=i(t._source);if(!cr(s,e)){e=n(t._source),cr(d,e)||(c(e),e=fl(g),a.mutableReadLanes|=e&a.pendingLanes),e=a.mutableReadLanes,a.entangledLanes|=e;for(var r=a.entanglements,o=e;0<o;){var l=31-Zt(o),u=1<<l;r[l]|=e,o&=~u}}}),[n,t,r]),l.useEffect((function(){return r(t._source,(function(){var e=f.getSnapshot,n=f.setSnapshot;try{n(e(t._source));var r=fl(g);a.mutableReadLanes|=r&a.pendingLanes}catch(i){n((function(){throw i}))}}))}),[t,r]),cr(m,n)&&cr(h,t)&&cr(p,r)||((e={pending:null,dispatch:null,lastRenderedReducer:uo,lastRenderedState:d}).dispatch=c=Ao.bind(null,Ji,e),u.queue=e,u.baseQueue=null,d=fo(a,t,n),u.memoizedState=u.baseState=d),d}function ho(e,t,n){return mo(lo(),e,t,n)}function go(e){var t=so();return"function"==typeof e&&(e=e()),t.memoizedState=t.baseState=e,e=(e=t.queue={pending:null,dispatch:null,lastRenderedReducer:uo,lastRenderedState:e}).dispatch=Ao.bind(null,Ji,e),[t.memoizedState,e]}function bo(e,t,n,r){return e={tag:e,create:t,destroy:n,deps:r,next:null},null===(t=Ji.updateQueue)?(t={lastEffect:null},Ji.updateQueue=t,t.lastEffect=e.next=e):null===(n=t.lastEffect)?t.lastEffect=e.next=e:(r=n.next,n.next=e,e.next=r,t.lastEffect=e),e}function vo(e){return e={current:e},so().memoizedState=e}function yo(){return lo().memoizedState}function xo(e,t,n,r){var a=so();Ji.flags|=e,a.memoizedState=bo(1|t,n,void 0,void 0===r?null:r)}function wo(e,t,n,r){var a=lo();r=void 0===r?null:r;var i=void 0;if(null!==eo){var o=eo.memoizedState;if(i=o.destroy,null!==r&&io(r,o.deps))return void bo(t,n,i,r)}Ji.flags|=e,a.memoizedState=bo(1|t,n,i,r)}function ko(e,t){return xo(516,4,e,t)}function So(e,t){return wo(516,4,e,t)}function Eo(e,t){return wo(4,2,e,t)}function _o(e,t){return"function"==typeof t?(e=e(),t(e),function(){t(null)}):null!=t?(e=e(),t.current=e,function(){t.current=null}):void 0}function Co(e,t,n){return n=null!=n?n.concat([e]):null,wo(4,2,_o.bind(null,t,e),n)}function To(){}function Po(e,t){var n=lo();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&io(t,r[1])?r[0]:(n.memoizedState=[e,t],e)}function Lo(e,t){var n=lo();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&io(t,r[1])?r[0]:(e=e(),n.memoizedState=[e,t],e)}function Oo(e,t){var n=Za();Qa(98>n?98:n,(function(){e(!0)})),Qa(97<n?97:n,(function(){var n=Ki.transition;Ki.transition=1;try{e(!1),t()}finally{Ki.transition=n}}))}function Ao(e,t,n){var r=pl(),a=fl(e),i={lane:a,action:n,eagerReducer:null,eagerState:null,next:null},o=t.pending;if(null===o?i.next=i:(i.next=o.next,o.next=i),t.pending=i,o=e.alternate,e===Ji||null!==o&&o===Ji)ro=no=!0;else{if(0===e.lanes&&(null===o||0===o.lanes)&&null!==(o=t.lastRenderedReducer))try{var s=t.lastRenderedState,l=o(s,n);if(i.eagerReducer=o,i.eagerState=l,cr(l,s))return}catch(u){}ml(e,a,r)}}var No={readContext:oi,useCallback:ao,useContext:ao,useEffect:ao,useImperativeHandle:ao,useLayoutEffect:ao,useMemo:ao,useReducer:ao,useRef:ao,useState:ao,useDebugValue:ao,useDeferredValue:ao,useTransition:ao,useMutableSource:ao,useOpaqueIdentifier:ao,unstable_isNewReconciler:!1},Io={readContext:oi,useCallback:function(e,t){return so().memoizedState=[e,void 0===t?null:t],e},useContext:oi,useEffect:ko,useImperativeHandle:function(e,t,n){return n=null!=n?n.concat([e]):null,xo(4,2,_o.bind(null,t,e),n)},useLayoutEffect:function(e,t){return xo(4,2,e,t)},useMemo:function(e,t){var n=so();return t=void 0===t?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=so();return t=void 0!==n?n(t):t,r.memoizedState=r.baseState=t,e=(e=r.queue={pending:null,dispatch:null,lastRenderedReducer:e,lastRenderedState:t}).dispatch=Ao.bind(null,Ji,e),[r.memoizedState,e]},useRef:vo,useState:go,useDebugValue:To,useDeferredValue:function(e){var t=go(e),n=t[0],r=t[1];return ko((function(){var t=Ki.transition;Ki.transition=1;try{r(e)}finally{Ki.transition=t}}),[e]),n},useTransition:function(){var e=go(!1),t=e[0];return vo(e=Oo.bind(null,e[1])),[e,t]},useMutableSource:function(e,t,n){var r=so();return r.memoizedState={refs:{getSnapshot:t,setSnapshot:null},source:e,subscribe:n},mo(r,e,t,n)},useOpaqueIdentifier:function(){if(ji){var e=!1,t=function(e){return{$$typeof:D,toString:e,valueOf:e}}((function(){throw e||(e=!0,n("r:"+(Yr++).toString(36))),Error(o(355))})),n=go(t)[1];return 0==(2&Ji.mode)&&(Ji.flags|=516,bo(5,(function(){n("r:"+(Yr++).toString(36))}),void 0,null)),t}return go(t="r:"+(Yr++).toString(36)),t},unstable_isNewReconciler:!1},Ro={readContext:oi,useCallback:Po,useContext:oi,useEffect:So,useImperativeHandle:Co,useLayoutEffect:Eo,useMemo:Lo,useReducer:co,useRef:yo,useState:function(){return co(uo)},useDebugValue:To,useDeferredValue:function(e){var t=co(uo),n=t[0],r=t[1];return So((function(){var t=Ki.transition;Ki.transition=1;try{r(e)}finally{Ki.transition=t}}),[e]),n},useTransition:function(){var e=co(uo)[0];return[yo().current,e]},useMutableSource:ho,useOpaqueIdentifier:function(){return co(uo)[0]},unstable_isNewReconciler:!1},Do={readContext:oi,useCallback:Po,useContext:oi,useEffect:So,useImperativeHandle:Co,useLayoutEffect:Eo,useMemo:Lo,useReducer:po,useRef:yo,useState:function(){return po(uo)},useDebugValue:To,useDeferredValue:function(e){var t=po(uo),n=t[0],r=t[1];return So((function(){var t=Ki.transition;Ki.transition=1;try{r(e)}finally{Ki.transition=t}}),[e]),n},useTransition:function(){var e=po(uo)[0];return[yo().current,e]},useMutableSource:ho,useOpaqueIdentifier:function(){return po(uo)[0]},unstable_isNewReconciler:!1},Mo=w.ReactCurrentOwner,Fo=!1;function Bo(e,t,n,r){t.child=null===e?Ti(t,null,n,r):Ci(t,e.child,n,r)}function zo(e,t,n,r,a){n=n.render;var i=t.ref;return ii(t,a),r=oo(e,t,n,r,i,a),null===e||Fo?(t.flags|=1,Bo(e,t,r,a),t.child):(t.updateQueue=e.updateQueue,t.flags&=-517,e.lanes&=~a,is(e,t,a))}function $o(e,t,n,r,a,i){if(null===e){var o=n.type;return"function"!=typeof o||Vl(o)||void 0!==o.defaultProps||null!==n.compare||void 0!==n.defaultProps?((e=Gl(n.type,null,r,t,t.mode,i)).ref=t.ref,e.return=t,t.child=e):(t.tag=15,t.type=o,jo(e,t,o,r,a,i))}return o=e.child,0==(a&i)&&(a=o.memoizedProps,(n=null!==(n=n.compare)?n:pr)(a,r)&&e.ref===t.ref)?is(e,t,i):(t.flags|=1,(e=Ql(o,r)).ref=t.ref,e.return=t,t.child=e)}function jo(e,t,n,r,a,i){if(null!==e&&pr(e.memoizedProps,r)&&e.ref===t.ref){if(Fo=!1,0==(i&a))return t.lanes=e.lanes,is(e,t,i);0!=(16384&e.flags)&&(Fo=!0)}return Zo(e,t,n,r,i)}function Uo(e,t,n){var r=t.pendingProps,a=r.children,i=null!==e?e.memoizedState:null;if("hidden"===r.mode||"unstable-defer-without-hiding"===r.mode)if(0==(4&t.mode))t.memoizedState={baseLanes:0},kl(t,n);else{if(0==(1073741824&n))return e=null!==i?i.baseLanes|n:n,t.lanes=t.childLanes=1073741824,t.memoizedState={baseLanes:e},kl(t,e),null;t.memoizedState={baseLanes:0},kl(t,null!==i?i.baseLanes:n)}else null!==i?(r=i.baseLanes|n,t.memoizedState=null):r=n,kl(t,r);return Bo(e,t,a,n),t.child}function Ho(e,t){var n=t.ref;(null===e&&null!==n||null!==e&&e.ref!==n)&&(t.flags|=128)}function Zo(e,t,n,r,a){var i=ba(n)?ha:fa.current;return i=ga(t,i),ii(t,a),n=oo(e,t,n,r,i,a),null===e||Fo?(t.flags|=1,Bo(e,t,n,a),t.child):(t.updateQueue=e.updateQueue,t.flags&=-517,e.lanes&=~a,is(e,t,a))}function Vo(e,t,n,r,a){if(ba(n)){var i=!0;wa(t)}else i=!1;if(ii(t,a),null===t.stateNode)null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),yi(t,n,r),wi(t,n,r,a),r=!0;else if(null===e){var o=t.stateNode,s=t.memoizedProps;o.props=s;var l=o.context,u=n.contextType;"object"==typeof u&&null!==u?u=oi(u):u=ga(t,u=ba(n)?ha:fa.current);var c=n.getDerivedStateFromProps,d="function"==typeof c||"function"==typeof o.getSnapshotBeforeUpdate;d||"function"!=typeof o.UNSAFE_componentWillReceiveProps&&"function"!=typeof o.componentWillReceiveProps||(s!==r||l!==u)&&xi(t,o,r,u),si=!1;var p=t.memoizedState;o.state=p,fi(t,r,o,a),l=t.memoizedState,s!==r||p!==l||ma.current||si?("function"==typeof c&&(gi(t,n,c,r),l=t.memoizedState),(s=si||vi(t,n,s,r,p,l,u))?(d||"function"!=typeof o.UNSAFE_componentWillMount&&"function"!=typeof o.componentWillMount||("function"==typeof o.componentWillMount&&o.componentWillMount(),"function"==typeof o.UNSAFE_componentWillMount&&o.UNSAFE_componentWillMount()),"function"==typeof o.componentDidMount&&(t.flags|=4)):("function"==typeof o.componentDidMount&&(t.flags|=4),t.memoizedProps=r,t.memoizedState=l),o.props=r,o.state=l,o.context=u,r=s):("function"==typeof o.componentDidMount&&(t.flags|=4),r=!1)}else{o=t.stateNode,ui(e,t),s=t.memoizedProps,u=t.type===t.elementType?s:Ka(t.type,s),o.props=u,d=t.pendingProps,p=o.context,"object"==typeof(l=n.contextType)&&null!==l?l=oi(l):l=ga(t,l=ba(n)?ha:fa.current);var f=n.getDerivedStateFromProps;(c="function"==typeof f||"function"==typeof o.getSnapshotBeforeUpdate)||"function"!=typeof o.UNSAFE_componentWillReceiveProps&&"function"!=typeof o.componentWillReceiveProps||(s!==d||p!==l)&&xi(t,o,r,l),si=!1,p=t.memoizedState,o.state=p,fi(t,r,o,a);var m=t.memoizedState;s!==d||p!==m||ma.current||si?("function"==typeof f&&(gi(t,n,f,r),m=t.memoizedState),(u=si||vi(t,n,u,r,p,m,l))?(c||"function"!=typeof o.UNSAFE_componentWillUpdate&&"function"!=typeof o.componentWillUpdate||("function"==typeof o.componentWillUpdate&&o.componentWillUpdate(r,m,l),"function"==typeof o.UNSAFE_componentWillUpdate&&o.UNSAFE_componentWillUpdate(r,m,l)),"function"==typeof o.componentDidUpdate&&(t.flags|=4),"function"==typeof o.getSnapshotBeforeUpdate&&(t.flags|=256)):("function"!=typeof o.componentDidUpdate||s===e.memoizedProps&&p===e.memoizedState||(t.flags|=4),"function"!=typeof o.getSnapshotBeforeUpdate||s===e.memoizedProps&&p===e.memoizedState||(t.flags|=256),t.memoizedProps=r,t.memoizedState=m),o.props=r,o.state=m,o.context=l,r=u):("function"!=typeof o.componentDidUpdate||s===e.memoizedProps&&p===e.memoizedState||(t.flags|=4),"function"!=typeof o.getSnapshotBeforeUpdate||s===e.memoizedProps&&p===e.memoizedState||(t.flags|=256),r=!1)}return Qo(e,t,n,r,i,a)}function Qo(e,t,n,r,a,i){Ho(e,t);var o=0!=(64&t.flags);if(!r&&!o)return a&&ka(t,n,!1),is(e,t,i);r=t.stateNode,Mo.current=t;var s=o&&"function"!=typeof n.getDerivedStateFromError?null:r.render();return t.flags|=1,null!==e&&o?(t.child=Ci(t,e.child,null,i),t.child=Ci(t,null,s,i)):Bo(e,t,s,i),t.memoizedState=r.state,a&&ka(t,n,!0),t.child}function Go(e){var t=e.stateNode;t.pendingContext?ya(0,t.pendingContext,t.pendingContext!==t.context):t.context&&ya(0,t.context,!1),Ii(e,t.containerInfo)}var Wo,qo,Yo,Ko={dehydrated:null,retryLane:0};function Xo(e,t,n){var r,a=t.pendingProps,i=Fi.current,o=!1;return(r=0!=(64&t.flags))||(r=(null===e||null!==e.memoizedState)&&0!=(2&i)),r?(o=!0,t.flags&=-65):null!==e&&null===e.memoizedState||void 0===a.fallback||!0===a.unstable_avoidThisFallback||(i|=1),da(Fi,1&i),null===e?(void 0!==a.fallback&&Zi(t),e=a.children,i=a.fallback,o?(e=Jo(t,e,i,n),t.child.memoizedState={baseLanes:n},t.memoizedState=Ko,e):"number"==typeof a.unstable_expectedLoadTime?(e=Jo(t,e,i,n),t.child.memoizedState={baseLanes:n},t.memoizedState=Ko,t.lanes=33554432,e):((n=ql({mode:"visible",children:e},t.mode,n,null)).return=t,t.child=n)):(e.memoizedState,o?(a=ts(e,t,a.children,a.fallback,n),o=t.child,i=e.child.memoizedState,o.memoizedState=null===i?{baseLanes:n}:{baseLanes:i.baseLanes|n},o.childLanes=e.childLanes&~n,t.memoizedState=Ko,a):(n=es(e,t,a.children,n),t.memoizedState=null,n))}function Jo(e,t,n,r){var a=e.mode,i=e.child;return t={mode:"hidden",children:t},0==(2&a)&&null!==i?(i.childLanes=0,i.pendingProps=t):i=ql(t,a,0,null),n=Wl(n,a,r,null),i.return=e,n.return=e,i.sibling=n,e.child=i,n}function es(e,t,n,r){var a=e.child;return e=a.sibling,n=Ql(a,{mode:"visible",children:n}),0==(2&t.mode)&&(n.lanes=r),n.return=t,n.sibling=null,null!==e&&(e.nextEffect=null,e.flags=8,t.firstEffect=t.lastEffect=e),t.child=n}function ts(e,t,n,r,a){var i=t.mode,o=e.child;e=o.sibling;var s={mode:"hidden",children:n};return 0==(2&i)&&t.child!==o?((n=t.child).childLanes=0,n.pendingProps=s,null!==(o=n.lastEffect)?(t.firstEffect=n.firstEffect,t.lastEffect=o,o.nextEffect=null):t.firstEffect=t.lastEffect=null):n=Ql(o,s),null!==e?r=Ql(e,r):(r=Wl(r,i,a,null)).flags|=2,r.return=t,n.return=t,n.sibling=r,t.child=n,r}function ns(e,t){e.lanes|=t;var n=e.alternate;null!==n&&(n.lanes|=t),ai(e.return,t)}function rs(e,t,n,r,a,i){var o=e.memoizedState;null===o?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:r,tail:n,tailMode:a,lastEffect:i}:(o.isBackwards=t,o.rendering=null,o.renderingStartTime=0,o.last=r,o.tail=n,o.tailMode=a,o.lastEffect=i)}function as(e,t,n){var r=t.pendingProps,a=r.revealOrder,i=r.tail;if(Bo(e,t,r.children,n),0!=(2&(r=Fi.current)))r=1&r|2,t.flags|=64;else{if(null!==e&&0!=(64&e.flags))e:for(e=t.child;null!==e;){if(13===e.tag)null!==e.memoizedState&&ns(e,n);else if(19===e.tag)ns(e,n);else if(null!==e.child){e.child.return=e,e=e.child;continue}if(e===t)break e;for(;null===e.sibling;){if(null===e.return||e.return===t)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}r&=1}if(da(Fi,r),0==(2&t.mode))t.memoizedState=null;else switch(a){case"forwards":for(n=t.child,a=null;null!==n;)null!==(e=n.alternate)&&null===Bi(e)&&(a=n),n=n.sibling;null===(n=a)?(a=t.child,t.child=null):(a=n.sibling,n.sibling=null),rs(t,!1,a,n,i,t.lastEffect);break;case"backwards":for(n=null,a=t.child,t.child=null;null!==a;){if(null!==(e=a.alternate)&&null===Bi(e)){t.child=a;break}e=a.sibling,a.sibling=n,n=a,a=e}rs(t,!0,n,null,i,t.lastEffect);break;case"together":rs(t,!1,null,null,void 0,t.lastEffect);break;default:t.memoizedState=null}return t.child}function is(e,t,n){if(null!==e&&(t.dependencies=e.dependencies),js|=t.lanes,0!=(n&t.childLanes)){if(null!==e&&t.child!==e.child)throw Error(o(153));if(null!==t.child){for(n=Ql(e=t.child,e.pendingProps),t.child=n,n.return=t;null!==e.sibling;)e=e.sibling,(n=n.sibling=Ql(e,e.pendingProps)).return=t;n.sibling=null}return t.child}return null}function os(e,t){if(!ji)switch(e.tailMode){case"hidden":t=e.tail;for(var n=null;null!==t;)null!==t.alternate&&(n=t),t=t.sibling;null===n?e.tail=null:n.sibling=null;break;case"collapsed":n=e.tail;for(var r=null;null!==n;)null!==n.alternate&&(r=n),n=n.sibling;null===r?t||null===e.tail?e.tail=null:e.tail.sibling=null:r.sibling=null}}function ss(e,t,n){var r=t.pendingProps;switch(t.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return null;case 1:case 17:return ba(t.type)&&va(),null;case 3:return Ri(),ca(ma),ca(fa),qi(),(r=t.stateNode).pendingContext&&(r.context=r.pendingContext,r.pendingContext=null),null!==e&&null!==e.child||(Qi(t)?t.flags|=4:r.hydrate||(t.flags|=256)),null;case 5:Mi(t);var i=Ni(Ai.current);if(n=t.type,null!==e&&null!=t.stateNode)qo(e,t,n,r),e.ref!==t.ref&&(t.flags|=128);else{if(!r){if(null===t.stateNode)throw Error(o(166));return null}if(e=Ni(Li.current),Qi(t)){r=t.stateNode,n=t.type;var s=t.memoizedProps;switch(r[Xr]=t,r[Jr]=s,n){case"dialog":Or("cancel",r),Or("close",r);break;case"iframe":case"object":case"embed":Or("load",r);break;case"video":case"audio":for(e=0;e<Cr.length;e++)Or(Cr[e],r);break;case"source":Or("error",r);break;case"img":case"image":case"link":Or("error",r),Or("load",r);break;case"details":Or("toggle",r);break;case"input":ee(r,s),Or("invalid",r);break;case"select":r._wrapperState={wasMultiple:!!s.multiple},Or("invalid",r);break;case"textarea":le(r,s),Or("invalid",r)}for(var u in Ee(n,s),e=null,s)s.hasOwnProperty(u)&&(i=s[u],"children"===u?"string"==typeof i?r.textContent!==i&&(e=["children",i]):"number"==typeof i&&r.textContent!==""+i&&(e=["children",""+i]):l.hasOwnProperty(u)&&null!=i&&"onScroll"===u&&Or("scroll",r));switch(n){case"input":Y(r),re(r,s,!0);break;case"textarea":Y(r),ce(r);break;case"select":case"option":break;default:"function"==typeof s.onClick&&(r.onclick=$r)}r=e,t.updateQueue=r,null!==r&&(t.flags|=4)}else{switch(u=9===i.nodeType?i:i.ownerDocument,e===de&&(e=fe(n)),e===de?"script"===n?((e=u.createElement("div")).innerHTML="<script><\/script>",e=e.removeChild(e.firstChild)):"string"==typeof r.is?e=u.createElement(n,{is:r.is}):(e=u.createElement(n),"select"===n&&(u=e,r.multiple?u.multiple=!0:r.size&&(u.size=r.size))):e=u.createElementNS(e,n),e[Xr]=t,e[Jr]=r,Wo(e,t),t.stateNode=e,u=_e(n,r),n){case"dialog":Or("cancel",e),Or("close",e),i=r;break;case"iframe":case"object":case"embed":Or("load",e),i=r;break;case"video":case"audio":for(i=0;i<Cr.length;i++)Or(Cr[i],e);i=r;break;case"source":Or("error",e),i=r;break;case"img":case"image":case"link":Or("error",e),Or("load",e),i=r;break;case"details":Or("toggle",e),i=r;break;case"input":ee(e,r),i=J(e,r),Or("invalid",e);break;case"option":i=ie(e,r);break;case"select":e._wrapperState={wasMultiple:!!r.multiple},i=a({},r,{value:void 0}),Or("invalid",e);break;case"textarea":le(e,r),i=se(e,r),Or("invalid",e);break;default:i=r}Ee(n,i);var c=i;for(s in c)if(c.hasOwnProperty(s)){var d=c[s];"style"===s?ke(e,d):"dangerouslySetInnerHTML"===s?null!=(d=d?d.__html:void 0)&&be(e,d):"children"===s?"string"==typeof d?("textarea"!==n||""!==d)&&ve(e,d):"number"==typeof d&&ve(e,""+d):"suppressContentEditableWarning"!==s&&"suppressHydrationWarning"!==s&&"autoFocus"!==s&&(l.hasOwnProperty(s)?null!=d&&"onScroll"===s&&Or("scroll",e):null!=d&&x(e,s,d,u))}switch(n){case"input":Y(e),re(e,r,!1);break;case"textarea":Y(e),ce(e);break;case"option":null!=r.value&&e.setAttribute("value",""+W(r.value));break;case"select":e.multiple=!!r.multiple,null!=(s=r.value)?oe(e,!!r.multiple,s,!1):null!=r.defaultValue&&oe(e,!!r.multiple,r.defaultValue,!0);break;default:"function"==typeof i.onClick&&(e.onclick=$r)}Hr(n,r)&&(t.flags|=4)}null!==t.ref&&(t.flags|=128)}return null;case 6:if(e&&null!=t.stateNode)Yo(0,t,e.memoizedProps,r);else{if("string"!=typeof r&&null===t.stateNode)throw Error(o(166));n=Ni(Ai.current),Ni(Li.current),Qi(t)?(r=t.stateNode,n=t.memoizedProps,r[Xr]=t,r.nodeValue!==n&&(t.flags|=4)):((r=(9===n.nodeType?n:n.ownerDocument).createTextNode(r))[Xr]=t,t.stateNode=r)}return null;case 13:return ca(Fi),r=t.memoizedState,0!=(64&t.flags)?(t.lanes=n,t):(r=null!==r,n=!1,null===e?void 0!==t.memoizedProps.fallback&&Qi(t):n=null!==e.memoizedState,r&&!n&&0!=(2&t.mode)&&(null===e&&!0!==t.memoizedProps.unstable_avoidThisFallback||0!=(1&Fi.current)?0===Bs&&(Bs=3):(0!==Bs&&3!==Bs||(Bs=4),null===Is||0==(134217727&js)&&0==(134217727&Us)||vl(Is,Ds))),(r||n)&&(t.flags|=4),null);case 4:return Ri(),null===e&&Nr(t.stateNode.containerInfo),null;case 10:return ri(t),null;case 19:if(ca(Fi),null===(r=t.memoizedState))return null;if(s=0!=(64&t.flags),null===(u=r.rendering))if(s)os(r,!1);else{if(0!==Bs||null!==e&&0!=(64&e.flags))for(e=t.child;null!==e;){if(null!==(u=Bi(e))){for(t.flags|=64,os(r,!1),null!==(s=u.updateQueue)&&(t.updateQueue=s,t.flags|=4),null===r.lastEffect&&(t.firstEffect=null),t.lastEffect=r.lastEffect,r=n,n=t.child;null!==n;)e=r,(s=n).flags&=2,s.nextEffect=null,s.firstEffect=null,s.lastEffect=null,null===(u=s.alternate)?(s.childLanes=0,s.lanes=e,s.child=null,s.memoizedProps=null,s.memoizedState=null,s.updateQueue=null,s.dependencies=null,s.stateNode=null):(s.childLanes=u.childLanes,s.lanes=u.lanes,s.child=u.child,s.memoizedProps=u.memoizedProps,s.memoizedState=u.memoizedState,s.updateQueue=u.updateQueue,s.type=u.type,e=u.dependencies,s.dependencies=null===e?null:{lanes:e.lanes,firstContext:e.firstContext}),n=n.sibling;return da(Fi,1&Fi.current|2),t.child}e=e.sibling}null!==r.tail&&Ha()>Qs&&(t.flags|=64,s=!0,os(r,!1),t.lanes=33554432)}else{if(!s)if(null!==(e=Bi(u))){if(t.flags|=64,s=!0,null!==(n=e.updateQueue)&&(t.updateQueue=n,t.flags|=4),os(r,!0),null===r.tail&&"hidden"===r.tailMode&&!u.alternate&&!ji)return null!==(t=t.lastEffect=r.lastEffect)&&(t.nextEffect=null),null}else 2*Ha()-r.renderingStartTime>Qs&&1073741824!==n&&(t.flags|=64,s=!0,os(r,!1),t.lanes=33554432);r.isBackwards?(u.sibling=t.child,t.child=u):(null!==(n=r.last)?n.sibling=u:t.child=u,r.last=u)}return null!==r.tail?(n=r.tail,r.rendering=n,r.tail=n.sibling,r.lastEffect=t.lastEffect,r.renderingStartTime=Ha(),n.sibling=null,t=Fi.current,da(Fi,s?1&t|2:1&t),n):null;case 23:case 24:return Sl(),null!==e&&null!==e.memoizedState!=(null!==t.memoizedState)&&"unstable-defer-without-hiding"!==r.mode&&(t.flags|=4),null}throw Error(o(156,t.tag))}function ls(e){switch(e.tag){case 1:ba(e.type)&&va();var t=e.flags;return 4096&t?(e.flags=-4097&t|64,e):null;case 3:if(Ri(),ca(ma),ca(fa),qi(),0!=(64&(t=e.flags)))throw Error(o(285));return e.flags=-4097&t|64,e;case 5:return Mi(e),null;case 13:return ca(Fi),4096&(t=e.flags)?(e.flags=-4097&t|64,e):null;case 19:return ca(Fi),null;case 4:return Ri(),null;case 10:return ri(e),null;case 23:case 24:return Sl(),null;default:return null}}function us(e,t){try{var n="",r=t;do{n+=Q(r),r=r.return}while(r);var a=n}catch(i){a="\nError generating stack: "+i.message+"\n"+i.stack}return{value:e,source:t,stack:a}}function cs(e,t){try{console.error(t.value)}catch(n){setTimeout((function(){throw n}))}}Wo=function(e,t){for(var n=t.child;null!==n;){if(5===n.tag||6===n.tag)e.appendChild(n.stateNode);else if(4!==n.tag&&null!==n.child){n.child.return=n,n=n.child;continue}if(n===t)break;for(;null===n.sibling;){if(null===n.return||n.return===t)return;n=n.return}n.sibling.return=n.return,n=n.sibling}},qo=function(e,t,n,r){var i=e.memoizedProps;if(i!==r){e=t.stateNode,Ni(Li.current);var o,s=null;switch(n){case"input":i=J(e,i),r=J(e,r),s=[];break;case"option":i=ie(e,i),r=ie(e,r),s=[];break;case"select":i=a({},i,{value:void 0}),r=a({},r,{value:void 0}),s=[];break;case"textarea":i=se(e,i),r=se(e,r),s=[];break;default:"function"!=typeof i.onClick&&"function"==typeof r.onClick&&(e.onclick=$r)}for(d in Ee(n,r),n=null,i)if(!r.hasOwnProperty(d)&&i.hasOwnProperty(d)&&null!=i[d])if("style"===d){var u=i[d];for(o in u)u.hasOwnProperty(o)&&(n||(n={}),n[o]="")}else"dangerouslySetInnerHTML"!==d&&"children"!==d&&"suppressContentEditableWarning"!==d&&"suppressHydrationWarning"!==d&&"autoFocus"!==d&&(l.hasOwnProperty(d)?s||(s=[]):(s=s||[]).push(d,null));for(d in r){var c=r[d];if(u=null!=i?i[d]:void 0,r.hasOwnProperty(d)&&c!==u&&(null!=c||null!=u))if("style"===d)if(u){for(o in u)!u.hasOwnProperty(o)||c&&c.hasOwnProperty(o)||(n||(n={}),n[o]="");for(o in c)c.hasOwnProperty(o)&&u[o]!==c[o]&&(n||(n={}),n[o]=c[o])}else n||(s||(s=[]),s.push(d,n)),n=c;else"dangerouslySetInnerHTML"===d?(c=c?c.__html:void 0,u=u?u.__html:void 0,null!=c&&u!==c&&(s=s||[]).push(d,c)):"children"===d?"string"!=typeof c&&"number"!=typeof c||(s=s||[]).push(d,""+c):"suppressContentEditableWarning"!==d&&"suppressHydrationWarning"!==d&&(l.hasOwnProperty(d)?(null!=c&&"onScroll"===d&&Or("scroll",e),s||u===c||(s=[])):"object"==typeof c&&null!==c&&c.$$typeof===D?c.toString():(s=s||[]).push(d,c))}n&&(s=s||[]).push("style",n);var d=s;(t.updateQueue=d)&&(t.flags|=4)}},Yo=function(e,t,n,r){n!==r&&(t.flags|=4)};var ds="function"==typeof WeakMap?WeakMap:Map;function ps(e,t,n){(n=ci(-1,n)).tag=3,n.payload={element:null};var r=t.value;return n.callback=function(){Ys||(Ys=!0,Ks=r),cs(0,t)},n}function fs(e,t,n){(n=ci(-1,n)).tag=3;var r=e.type.getDerivedStateFromError;if("function"==typeof r){var a=t.value;n.payload=function(){return cs(0,t),r(a)}}var i=e.stateNode;return null!==i&&"function"==typeof i.componentDidCatch&&(n.callback=function(){"function"!=typeof r&&(null===Xs?Xs=new Set([this]):Xs.add(this),cs(0,t));var e=t.stack;this.componentDidCatch(t.value,{componentStack:null!==e?e:""})}),n}var ms="function"==typeof WeakSet?WeakSet:Set;function hs(e){var t=e.ref;if(null!==t)if("function"==typeof t)try{t(null)}catch(n){$l(e,n)}else t.current=null}function gs(e,t){switch(t.tag){case 0:case 11:case 15:case 22:case 5:case 6:case 4:case 17:return;case 1:if(256&t.flags&&null!==e){var n=e.memoizedProps,r=e.memoizedState;t=(e=t.stateNode).getSnapshotBeforeUpdate(t.elementType===t.type?n:Ka(t.type,n),r),e.__reactInternalSnapshotBeforeUpdate=t}return;case 3:return void(256&t.flags&&Gr(t.stateNode.containerInfo))}throw Error(o(163))}function bs(e,t,n){switch(n.tag){case 0:case 11:case 15:case 22:if(null!==(t=null!==(t=n.updateQueue)?t.lastEffect:null)){e=t=t.next;do{if(3==(3&e.tag)){var r=e.create;e.destroy=r()}e=e.next}while(e!==t)}if(null!==(t=null!==(t=n.updateQueue)?t.lastEffect:null)){e=t=t.next;do{var a=e;r=a.next,0!=(4&(a=a.tag))&&0!=(1&a)&&(Fl(n,e),Ml(n,e)),e=r}while(e!==t)}return;case 1:return e=n.stateNode,4&n.flags&&(null===t?e.componentDidMount():(r=n.elementType===n.type?t.memoizedProps:Ka(n.type,t.memoizedProps),e.componentDidUpdate(r,t.memoizedState,e.__reactInternalSnapshotBeforeUpdate))),void(null!==(t=n.updateQueue)&&mi(n,t,e));case 3:if(null!==(t=n.updateQueue)){if(e=null,null!==n.child)switch(n.child.tag){case 5:case 1:e=n.child.stateNode}mi(n,t,e)}return;case 5:return e=n.stateNode,void(null===t&&4&n.flags&&Hr(n.type,n.memoizedProps)&&e.focus());case 6:case 4:case 12:case 19:case 17:case 20:case 21:case 23:case 24:return;case 13:return void(null===n.memoizedState&&(n=n.alternate,null!==n&&(n=n.memoizedState,null!==n&&(n=n.dehydrated,null!==n&&kt(n)))))}throw Error(o(163))}function vs(e,t){for(var n=e;;){if(5===n.tag){var r=n.stateNode;if(t)"function"==typeof(r=r.style).setProperty?r.setProperty("display","none","important"):r.display="none";else{r=n.stateNode;var a=n.memoizedProps.style;a=null!=a&&a.hasOwnProperty("display")?a.display:null,r.style.display=we("display",a)}}else if(6===n.tag)n.stateNode.nodeValue=t?"":n.memoizedProps;else if((23!==n.tag&&24!==n.tag||null===n.memoizedState||n===e)&&null!==n.child){n.child.return=n,n=n.child;continue}if(n===e)break;for(;null===n.sibling;){if(null===n.return||n.return===e)return;n=n.return}n.sibling.return=n.return,n=n.sibling}}function ys(e,t){if(Ea&&"function"==typeof Ea.onCommitFiberUnmount)try{Ea.onCommitFiberUnmount(Sa,t)}catch(i){}switch(t.tag){case 0:case 11:case 14:case 15:case 22:if(null!==(e=t.updateQueue)&&null!==(e=e.lastEffect)){var n=e=e.next;do{var r=n,a=r.destroy;if(r=r.tag,void 0!==a)if(0!=(4&r))Fl(t,n);else{r=t;try{a()}catch(i){$l(r,i)}}n=n.next}while(n!==e)}break;case 1:if(hs(t),"function"==typeof(e=t.stateNode).componentWillUnmount)try{e.props=t.memoizedProps,e.state=t.memoizedState,e.componentWillUnmount()}catch(i){$l(t,i)}break;case 5:hs(t);break;case 4:_s(e,t)}}function xs(e){e.alternate=null,e.child=null,e.dependencies=null,e.firstEffect=null,e.lastEffect=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.return=null,e.updateQueue=null}function ws(e){return 5===e.tag||3===e.tag||4===e.tag}function ks(e){e:{for(var t=e.return;null!==t;){if(ws(t))break e;t=t.return}throw Error(o(160))}var n=t;switch(t=n.stateNode,n.tag){case 5:var r=!1;break;case 3:case 4:t=t.containerInfo,r=!0;break;default:throw Error(o(161))}16&n.flags&&(ve(t,""),n.flags&=-17);e:t:for(n=e;;){for(;null===n.sibling;){if(null===n.return||ws(n.return)){n=null;break e}n=n.return}for(n.sibling.return=n.return,n=n.sibling;5!==n.tag&&6!==n.tag&&18!==n.tag;){if(2&n.flags)continue t;if(null===n.child||4===n.tag)continue t;n.child.return=n,n=n.child}if(!(2&n.flags)){n=n.stateNode;break e}}r?Ss(e,n,t):Es(e,n,t)}function Ss(e,t,n){var r=e.tag,a=5===r||6===r;if(a)e=a?e.stateNode:e.stateNode.instance,t?8===n.nodeType?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(8===n.nodeType?(t=n.parentNode).insertBefore(e,n):(t=n).appendChild(e),null!=(n=n._reactRootContainer)||null!==t.onclick||(t.onclick=$r));else if(4!==r&&null!==(e=e.child))for(Ss(e,t,n),e=e.sibling;null!==e;)Ss(e,t,n),e=e.sibling}function Es(e,t,n){var r=e.tag,a=5===r||6===r;if(a)e=a?e.stateNode:e.stateNode.instance,t?n.insertBefore(e,t):n.appendChild(e);else if(4!==r&&null!==(e=e.child))for(Es(e,t,n),e=e.sibling;null!==e;)Es(e,t,n),e=e.sibling}function _s(e,t){for(var n,r,a=t,i=!1;;){if(!i){i=a.return;e:for(;;){if(null===i)throw Error(o(160));switch(n=i.stateNode,i.tag){case 5:r=!1;break e;case 3:case 4:n=n.containerInfo,r=!0;break e}i=i.return}i=!0}if(5===a.tag||6===a.tag){e:for(var s=e,l=a,u=l;;)if(ys(s,u),null!==u.child&&4!==u.tag)u.child.return=u,u=u.child;else{if(u===l)break e;for(;null===u.sibling;){if(null===u.return||u.return===l)break e;u=u.return}u.sibling.return=u.return,u=u.sibling}r?(s=n,l=a.stateNode,8===s.nodeType?s.parentNode.removeChild(l):s.removeChild(l)):n.removeChild(a.stateNode)}else if(4===a.tag){if(null!==a.child){n=a.stateNode.containerInfo,r=!0,a.child.return=a,a=a.child;continue}}else if(ys(e,a),null!==a.child){a.child.return=a,a=a.child;continue}if(a===t)break;for(;null===a.sibling;){if(null===a.return||a.return===t)return;4===(a=a.return).tag&&(i=!1)}a.sibling.return=a.return,a=a.sibling}}function Cs(e,t){switch(t.tag){case 0:case 11:case 14:case 15:case 22:var n=t.updateQueue;if(null!==(n=null!==n?n.lastEffect:null)){var r=n=n.next;do{3==(3&r.tag)&&(e=r.destroy,r.destroy=void 0,void 0!==e&&e()),r=r.next}while(r!==n)}return;case 1:case 12:case 17:return;case 5:if(null!=(n=t.stateNode)){r=t.memoizedProps;var a=null!==e?e.memoizedProps:r;e=t.type;var i=t.updateQueue;if(t.updateQueue=null,null!==i){for(n[Jr]=r,"input"===e&&"radio"===r.type&&null!=r.name&&te(n,r),_e(e,a),t=_e(e,r),a=0;a<i.length;a+=2){var s=i[a],l=i[a+1];"style"===s?ke(n,l):"dangerouslySetInnerHTML"===s?be(n,l):"children"===s?ve(n,l):x(n,s,l,t)}switch(e){case"input":ne(n,r);break;case"textarea":ue(n,r);break;case"select":e=n._wrapperState.wasMultiple,n._wrapperState.wasMultiple=!!r.multiple,null!=(i=r.value)?oe(n,!!r.multiple,i,!1):e!==!!r.multiple&&(null!=r.defaultValue?oe(n,!!r.multiple,r.defaultValue,!0):oe(n,!!r.multiple,r.multiple?[]:"",!1))}}}return;case 6:if(null===t.stateNode)throw Error(o(162));return void(t.stateNode.nodeValue=t.memoizedProps);case 3:return void((n=t.stateNode).hydrate&&(n.hydrate=!1,kt(n.containerInfo)));case 13:return null!==t.memoizedState&&(Vs=Ha(),vs(t.child,!0)),void Ts(t);case 19:return void Ts(t);case 23:case 24:return void vs(t,null!==t.memoizedState)}throw Error(o(163))}function Ts(e){var t=e.updateQueue;if(null!==t){e.updateQueue=null;var n=e.stateNode;null===n&&(n=e.stateNode=new ms),t.forEach((function(t){var r=Ul.bind(null,e,t);n.has(t)||(n.add(t),t.then(r,r))}))}}function Ps(e,t){return null!==e&&(null===(e=e.memoizedState)||null!==e.dehydrated)&&(null!==(t=t.memoizedState)&&null===t.dehydrated)}var Ls=Math.ceil,Os=w.ReactCurrentDispatcher,As=w.ReactCurrentOwner,Ns=0,Is=null,Rs=null,Ds=0,Ms=0,Fs=ua(0),Bs=0,zs=null,$s=0,js=0,Us=0,Hs=0,Zs=null,Vs=0,Qs=1/0;function Gs(){Qs=Ha()+500}var Ws,qs=null,Ys=!1,Ks=null,Xs=null,Js=!1,el=null,tl=90,nl=[],rl=[],al=null,il=0,ol=null,sl=-1,ll=0,ul=0,cl=null,dl=!1;function pl(){return 0!=(48&Ns)?Ha():-1!==sl?sl:sl=Ha()}function fl(e){if(0==(2&(e=e.mode)))return 1;if(0==(4&e))return 99===Za()?1:2;if(0===ll&&(ll=$s),0!==Ya.transition){0!==ul&&(ul=null!==Zs?Zs.pendingLanes:0),e=ll;var t=4186112&~ul;return 0===(t&=-t)&&(0===(t=(e=4186112&~e)&-e)&&(t=8192)),t}return e=Za(),0!=(4&Ns)&&98===e?e=$t(12,ll):e=$t(e=function(e){switch(e){case 99:return 15;case 98:return 10;case 97:case 96:return 8;case 95:return 2;default:return 0}}(e),ll),e}function ml(e,t,n){if(50<il)throw il=0,ol=null,Error(o(185));if(null===(e=hl(e,t)))return null;Ht(e,t,n),e===Is&&(Us|=t,4===Bs&&vl(e,Ds));var r=Za();1===t?0!=(8&Ns)&&0==(48&Ns)?yl(e):(gl(e,n),0===Ns&&(Gs(),Wa())):(0==(4&Ns)||98!==r&&99!==r||(null===al?al=new Set([e]):al.add(e)),gl(e,n)),Zs=e}function hl(e,t){e.lanes|=t;var n=e.alternate;for(null!==n&&(n.lanes|=t),n=e,e=e.return;null!==e;)e.childLanes|=t,null!==(n=e.alternate)&&(n.childLanes|=t),n=e,e=e.return;return 3===n.tag?n.stateNode:null}function gl(e,t){for(var n=e.callbackNode,r=e.suspendedLanes,a=e.pingedLanes,i=e.expirationTimes,s=e.pendingLanes;0<s;){var l=31-Zt(s),u=1<<l,c=i[l];if(-1===c){if(0==(u&r)||0!=(u&a)){c=t,Ft(u);var d=Mt;i[l]=10<=d?c+250:6<=d?c+5e3:-1}}else c<=t&&(e.expiredLanes|=u);s&=~u}if(r=Bt(e,e===Is?Ds:0),t=Mt,0===r)null!==n&&(n!==Fa&&Ta(n),e.callbackNode=null,e.callbackPriority=0);else{if(null!==n){if(e.callbackPriority===t)return;n!==Fa&&Ta(n)}15===t?(n=yl.bind(null,e),null===za?(za=[n],$a=Ca(Na,qa)):za.push(n),n=Fa):14===t?n=Ga(99,yl.bind(null,e)):(n=function(e){switch(e){case 15:case 14:return 99;case 13:case 12:case 11:case 10:return 98;case 9:case 8:case 7:case 6:case 4:case 5:return 97;case 3:case 2:case 1:return 95;case 0:return 90;default:throw Error(o(358,e))}}(t),n=Ga(n,bl.bind(null,e))),e.callbackPriority=t,e.callbackNode=n}}function bl(e){if(sl=-1,ul=ll=0,0!=(48&Ns))throw Error(o(327));var t=e.callbackNode;if(Dl()&&e.callbackNode!==t)return null;var n=Bt(e,e===Is?Ds:0);if(0===n)return null;var r=n,a=Ns;Ns|=16;var i=Cl();for(Is===e&&Ds===r||(Gs(),El(e,r));;)try{Ll();break}catch(l){_l(e,l)}if(ni(),Os.current=i,Ns=a,null!==Rs?r=0:(Is=null,Ds=0,r=Bs),0!=($s&Us))El(e,0);else if(0!==r){if(2===r&&(Ns|=64,e.hydrate&&(e.hydrate=!1,Gr(e.containerInfo)),0!==(n=zt(e))&&(r=Tl(e,n))),1===r)throw t=zs,El(e,0),vl(e,n),gl(e,Ha()),t;switch(e.finishedWork=e.current.alternate,e.finishedLanes=n,r){case 0:case 1:throw Error(o(345));case 2:case 5:Nl(e);break;case 3:if(vl(e,n),(62914560&n)===n&&10<(r=Vs+500-Ha())){if(0!==Bt(e,0))break;if(((a=e.suspendedLanes)&n)!==n){pl(),e.pingedLanes|=e.suspendedLanes&a;break}e.timeoutHandle=Vr(Nl.bind(null,e),r);break}Nl(e);break;case 4:if(vl(e,n),(4186112&n)===n)break;for(r=e.eventTimes,a=-1;0<n;){var s=31-Zt(n);i=1<<s,(s=r[s])>a&&(a=s),n&=~i}if(n=a,10<(n=(120>(n=Ha()-n)?120:480>n?480:1080>n?1080:1920>n?1920:3e3>n?3e3:4320>n?4320:1960*Ls(n/1960))-n)){e.timeoutHandle=Vr(Nl.bind(null,e),n);break}Nl(e);break;default:throw Error(o(329))}}return gl(e,Ha()),e.callbackNode===t?bl.bind(null,e):null}function vl(e,t){for(t&=~Hs,t&=~Us,e.suspendedLanes|=t,e.pingedLanes&=~t,e=e.expirationTimes;0<t;){var n=31-Zt(t),r=1<<n;e[n]=-1,t&=~r}}function yl(e){if(0!=(48&Ns))throw Error(o(327));if(Dl(),e===Is&&0!=(e.expiredLanes&Ds)){var t=Ds,n=Tl(e,t);0!=($s&Us)&&(n=Tl(e,t=Bt(e,t)))}else n=Tl(e,t=Bt(e,0));if(0!==e.tag&&2===n&&(Ns|=64,e.hydrate&&(e.hydrate=!1,Gr(e.containerInfo)),0!==(t=zt(e))&&(n=Tl(e,t))),1===n)throw n=zs,El(e,0),vl(e,t),gl(e,Ha()),n;return e.finishedWork=e.current.alternate,e.finishedLanes=t,Nl(e),gl(e,Ha()),null}function xl(e,t){var n=Ns;Ns|=1;try{return e(t)}finally{0===(Ns=n)&&(Gs(),Wa())}}function wl(e,t){var n=Ns;Ns&=-2,Ns|=8;try{return e(t)}finally{0===(Ns=n)&&(Gs(),Wa())}}function kl(e,t){da(Fs,Ms),Ms|=t,$s|=t}function Sl(){Ms=Fs.current,ca(Fs)}function El(e,t){e.finishedWork=null,e.finishedLanes=0;var n=e.timeoutHandle;if(-1!==n&&(e.timeoutHandle=-1,Qr(n)),null!==Rs)for(n=Rs.return;null!==n;){var r=n;switch(r.tag){case 1:null!=(r=r.type.childContextTypes)&&va();break;case 3:Ri(),ca(ma),ca(fa),qi();break;case 5:Mi(r);break;case 4:Ri();break;case 13:case 19:ca(Fi);break;case 10:ri(r);break;case 23:case 24:Sl()}n=n.return}Is=e,Rs=Ql(e.current,null),Ds=Ms=$s=t,Bs=0,zs=null,Hs=Us=js=0}function _l(e,t){for(;;){var n=Rs;try{if(ni(),Yi.current=No,no){for(var r=Ji.memoizedState;null!==r;){var a=r.queue;null!==a&&(a.pending=null),r=r.next}no=!1}if(Xi=0,to=eo=Ji=null,ro=!1,As.current=null,null===n||null===n.return){Bs=1,zs=t,Rs=null;break}e:{var i=e,o=n.return,s=n,l=t;if(t=Ds,s.flags|=2048,s.firstEffect=s.lastEffect=null,null!==l&&"object"==typeof l&&"function"==typeof l.then){var u=l;if(0==(2&s.mode)){var c=s.alternate;c?(s.updateQueue=c.updateQueue,s.memoizedState=c.memoizedState,s.lanes=c.lanes):(s.updateQueue=null,s.memoizedState=null)}var d=0!=(1&Fi.current),p=o;do{var f;if(f=13===p.tag){var m=p.memoizedState;if(null!==m)f=null!==m.dehydrated;else{var h=p.memoizedProps;f=void 0!==h.fallback&&(!0!==h.unstable_avoidThisFallback||!d)}}if(f){var g=p.updateQueue;if(null===g){var b=new Set;b.add(u),p.updateQueue=b}else g.add(u);if(0==(2&p.mode)){if(p.flags|=64,s.flags|=16384,s.flags&=-2981,1===s.tag)if(null===s.alternate)s.tag=17;else{var v=ci(-1,1);v.tag=2,di(s,v)}s.lanes|=1;break e}l=void 0,s=t;var y=i.pingCache;if(null===y?(y=i.pingCache=new ds,l=new Set,y.set(u,l)):void 0===(l=y.get(u))&&(l=new Set,y.set(u,l)),!l.has(s)){l.add(s);var x=jl.bind(null,i,u,s);u.then(x,x)}p.flags|=4096,p.lanes=t;break e}p=p.return}while(null!==p);l=Error((G(s.type)||"A React component")+" suspended while rendering, but no fallback UI was specified.\n\nAdd a <Suspense fallback=...> component higher in the tree to provide a loading indicator or placeholder to display.")}5!==Bs&&(Bs=2),l=us(l,s),p=o;do{switch(p.tag){case 3:i=l,p.flags|=4096,t&=-t,p.lanes|=t,pi(p,ps(0,i,t));break e;case 1:i=l;var w=p.type,k=p.stateNode;if(0==(64&p.flags)&&("function"==typeof w.getDerivedStateFromError||null!==k&&"function"==typeof k.componentDidCatch&&(null===Xs||!Xs.has(k)))){p.flags|=4096,t&=-t,p.lanes|=t,pi(p,fs(p,i,t));break e}}p=p.return}while(null!==p)}Al(n)}catch(S){t=S,Rs===n&&null!==n&&(Rs=n=n.return);continue}break}}function Cl(){var e=Os.current;return Os.current=No,null===e?No:e}function Tl(e,t){var n=Ns;Ns|=16;var r=Cl();for(Is===e&&Ds===t||El(e,t);;)try{Pl();break}catch(a){_l(e,a)}if(ni(),Ns=n,Os.current=r,null!==Rs)throw Error(o(261));return Is=null,Ds=0,Bs}function Pl(){for(;null!==Rs;)Ol(Rs)}function Ll(){for(;null!==Rs&&!Pa();)Ol(Rs)}function Ol(e){var t=Ws(e.alternate,e,Ms);e.memoizedProps=e.pendingProps,null===t?Al(e):Rs=t,As.current=null}function Al(e){var t=e;do{var n=t.alternate;if(e=t.return,0==(2048&t.flags)){if(null!==(n=ss(n,t,Ms)))return void(Rs=n);if(24!==(n=t).tag&&23!==n.tag||null===n.memoizedState||0!=(1073741824&Ms)||0==(4&n.mode)){for(var r=0,a=n.child;null!==a;)r|=a.lanes|a.childLanes,a=a.sibling;n.childLanes=r}null!==e&&0==(2048&e.flags)&&(null===e.firstEffect&&(e.firstEffect=t.firstEffect),null!==t.lastEffect&&(null!==e.lastEffect&&(e.lastEffect.nextEffect=t.firstEffect),e.lastEffect=t.lastEffect),1<t.flags&&(null!==e.lastEffect?e.lastEffect.nextEffect=t:e.firstEffect=t,e.lastEffect=t))}else{if(null!==(n=ls(t)))return n.flags&=2047,void(Rs=n);null!==e&&(e.firstEffect=e.lastEffect=null,e.flags|=2048)}if(null!==(t=t.sibling))return void(Rs=t);Rs=t=e}while(null!==t);0===Bs&&(Bs=5)}function Nl(e){var t=Za();return Qa(99,Il.bind(null,e,t)),null}function Il(e,t){do{Dl()}while(null!==el);if(0!=(48&Ns))throw Error(o(327));var n=e.finishedWork;if(null===n)return null;if(e.finishedWork=null,e.finishedLanes=0,n===e.current)throw Error(o(177));e.callbackNode=null;var r=n.lanes|n.childLanes,a=r,i=e.pendingLanes&~a;e.pendingLanes=a,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=a,e.mutableReadLanes&=a,e.entangledLanes&=a,a=e.entanglements;for(var s=e.eventTimes,l=e.expirationTimes;0<i;){var u=31-Zt(i),c=1<<u;a[u]=0,s[u]=-1,l[u]=-1,i&=~c}if(null!==al&&0==(24&r)&&al.has(e)&&al.delete(e),e===Is&&(Rs=Is=null,Ds=0),1<n.flags?null!==n.lastEffect?(n.lastEffect.nextEffect=n,r=n.firstEffect):r=n:r=n.firstEffect,null!==r){if(a=Ns,Ns|=32,As.current=null,jr=qt,br(s=gr())){if("selectionStart"in s)l={start:s.selectionStart,end:s.selectionEnd};else e:if(l=(l=s.ownerDocument)&&l.defaultView||window,(c=l.getSelection&&l.getSelection())&&0!==c.rangeCount){l=c.anchorNode,i=c.anchorOffset,u=c.focusNode,c=c.focusOffset;try{l.nodeType,u.nodeType}catch(C){l=null;break e}var d=0,p=-1,f=-1,m=0,h=0,g=s,b=null;t:for(;;){for(var v;g!==l||0!==i&&3!==g.nodeType||(p=d+i),g!==u||0!==c&&3!==g.nodeType||(f=d+c),3===g.nodeType&&(d+=g.nodeValue.length),null!==(v=g.firstChild);)b=g,g=v;for(;;){if(g===s)break t;if(b===l&&++m===i&&(p=d),b===u&&++h===c&&(f=d),null!==(v=g.nextSibling))break;b=(g=b).parentNode}g=v}l=-1===p||-1===f?null:{start:p,end:f}}else l=null;l=l||{start:0,end:0}}else l=null;Ur={focusedElem:s,selectionRange:l},qt=!1,cl=null,dl=!1,qs=r;do{try{Rl()}catch(C){if(null===qs)throw Error(o(330));$l(qs,C),qs=qs.nextEffect}}while(null!==qs);cl=null,qs=r;do{try{for(s=e;null!==qs;){var y=qs.flags;if(16&y&&ve(qs.stateNode,""),128&y){var x=qs.alternate;if(null!==x){var w=x.ref;null!==w&&("function"==typeof w?w(null):w.current=null)}}switch(1038&y){case 2:ks(qs),qs.flags&=-3;break;case 6:ks(qs),qs.flags&=-3,Cs(qs.alternate,qs);break;case 1024:qs.flags&=-1025;break;case 1028:qs.flags&=-1025,Cs(qs.alternate,qs);break;case 4:Cs(qs.alternate,qs);break;case 8:_s(s,l=qs);var k=l.alternate;xs(l),null!==k&&xs(k)}qs=qs.nextEffect}}catch(C){if(null===qs)throw Error(o(330));$l(qs,C),qs=qs.nextEffect}}while(null!==qs);if(w=Ur,x=gr(),y=w.focusedElem,s=w.selectionRange,x!==y&&y&&y.ownerDocument&&hr(y.ownerDocument.documentElement,y)){null!==s&&br(y)&&(x=s.start,void 0===(w=s.end)&&(w=x),"selectionStart"in y?(y.selectionStart=x,y.selectionEnd=Math.min(w,y.value.length)):(w=(x=y.ownerDocument||document)&&x.defaultView||window).getSelection&&(w=w.getSelection(),l=y.textContent.length,k=Math.min(s.start,l),s=void 0===s.end?k:Math.min(s.end,l),!w.extend&&k>s&&(l=s,s=k,k=l),l=mr(y,k),i=mr(y,s),l&&i&&(1!==w.rangeCount||w.anchorNode!==l.node||w.anchorOffset!==l.offset||w.focusNode!==i.node||w.focusOffset!==i.offset)&&((x=x.createRange()).setStart(l.node,l.offset),w.removeAllRanges(),k>s?(w.addRange(x),w.extend(i.node,i.offset)):(x.setEnd(i.node,i.offset),w.addRange(x))))),x=[];for(w=y;w=w.parentNode;)1===w.nodeType&&x.push({element:w,left:w.scrollLeft,top:w.scrollTop});for("function"==typeof y.focus&&y.focus(),y=0;y<x.length;y++)(w=x[y]).element.scrollLeft=w.left,w.element.scrollTop=w.top}qt=!!jr,Ur=jr=null,e.current=n,qs=r;do{try{for(y=e;null!==qs;){var S=qs.flags;if(36&S&&bs(y,qs.alternate,qs),128&S){x=void 0;var E=qs.ref;if(null!==E){var _=qs.stateNode;qs.tag,x=_,"function"==typeof E?E(x):E.current=x}}qs=qs.nextEffect}}catch(C){if(null===qs)throw Error(o(330));$l(qs,C),qs=qs.nextEffect}}while(null!==qs);qs=null,Ba(),Ns=a}else e.current=n;if(Js)Js=!1,el=e,tl=t;else for(qs=r;null!==qs;)t=qs.nextEffect,qs.nextEffect=null,8&qs.flags&&((S=qs).sibling=null,S.stateNode=null),qs=t;if(0===(r=e.pendingLanes)&&(Xs=null),1===r?e===ol?il++:(il=0,ol=e):il=0,n=n.stateNode,Ea&&"function"==typeof Ea.onCommitFiberRoot)try{Ea.onCommitFiberRoot(Sa,n,void 0,64==(64&n.current.flags))}catch(C){}if(gl(e,Ha()),Ys)throw Ys=!1,e=Ks,Ks=null,e;return 0!=(8&Ns)||Wa(),null}function Rl(){for(;null!==qs;){var e=qs.alternate;dl||null===cl||(0!=(8&qs.flags)?et(qs,cl)&&(dl=!0):13===qs.tag&&Ps(e,qs)&&et(qs,cl)&&(dl=!0));var t=qs.flags;0!=(256&t)&&gs(e,qs),0==(512&t)||Js||(Js=!0,Ga(97,(function(){return Dl(),null}))),qs=qs.nextEffect}}function Dl(){if(90!==tl){var e=97<tl?97:tl;return tl=90,Qa(e,Bl)}return!1}function Ml(e,t){nl.push(t,e),Js||(Js=!0,Ga(97,(function(){return Dl(),null})))}function Fl(e,t){rl.push(t,e),Js||(Js=!0,Ga(97,(function(){return Dl(),null})))}function Bl(){if(null===el)return!1;var e=el;if(el=null,0!=(48&Ns))throw Error(o(331));var t=Ns;Ns|=32;var n=rl;rl=[];for(var r=0;r<n.length;r+=2){var a=n[r],i=n[r+1],s=a.destroy;if(a.destroy=void 0,"function"==typeof s)try{s()}catch(u){if(null===i)throw Error(o(330));$l(i,u)}}for(n=nl,nl=[],r=0;r<n.length;r+=2){a=n[r],i=n[r+1];try{var l=a.create;a.destroy=l()}catch(u){if(null===i)throw Error(o(330));$l(i,u)}}for(l=e.current.firstEffect;null!==l;)e=l.nextEffect,l.nextEffect=null,8&l.flags&&(l.sibling=null,l.stateNode=null),l=e;return Ns=t,Wa(),!0}function zl(e,t,n){di(e,t=ps(0,t=us(n,t),1)),t=pl(),null!==(e=hl(e,1))&&(Ht(e,1,t),gl(e,t))}function $l(e,t){if(3===e.tag)zl(e,e,t);else for(var n=e.return;null!==n;){if(3===n.tag){zl(n,e,t);break}if(1===n.tag){var r=n.stateNode;if("function"==typeof n.type.getDerivedStateFromError||"function"==typeof r.componentDidCatch&&(null===Xs||!Xs.has(r))){var a=fs(n,e=us(t,e),1);if(di(n,a),a=pl(),null!==(n=hl(n,1)))Ht(n,1,a),gl(n,a);else if("function"==typeof r.componentDidCatch&&(null===Xs||!Xs.has(r)))try{r.componentDidCatch(t,e)}catch(i){}break}}n=n.return}}function jl(e,t,n){var r=e.pingCache;null!==r&&r.delete(t),t=pl(),e.pingedLanes|=e.suspendedLanes&n,Is===e&&(Ds&n)===n&&(4===Bs||3===Bs&&(62914560&Ds)===Ds&&500>Ha()-Vs?El(e,0):Hs|=n),gl(e,t)}function Ul(e,t){var n=e.stateNode;null!==n&&n.delete(t),0===(t=0)&&(0==(2&(t=e.mode))?t=1:0==(4&t)?t=99===Za()?1:2:(0===ll&&(ll=$s),0===(t=jt(62914560&~ll))&&(t=4194304))),n=pl(),null!==(e=hl(e,t))&&(Ht(e,t,n),gl(e,n))}function Hl(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.flags=0,this.lastEffect=this.firstEffect=this.nextEffect=null,this.childLanes=this.lanes=0,this.alternate=null}function Zl(e,t,n,r){return new Hl(e,t,n,r)}function Vl(e){return!(!(e=e.prototype)||!e.isReactComponent)}function Ql(e,t){var n=e.alternate;return null===n?((n=Zl(e.tag,t,e.key,e.mode)).elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.nextEffect=null,n.firstEffect=null,n.lastEffect=null),n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=null===t?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function Gl(e,t,n,r,a,i){var s=2;if(r=e,"function"==typeof e)Vl(e)&&(s=1);else if("string"==typeof e)s=5;else e:switch(e){case E:return Wl(n.children,a,i,t);case M:s=8,a|=16;break;case _:s=8,a|=1;break;case C:return(e=Zl(12,n,t,8|a)).elementType=C,e.type=C,e.lanes=i,e;case O:return(e=Zl(13,n,t,a)).type=O,e.elementType=O,e.lanes=i,e;case A:return(e=Zl(19,n,t,a)).elementType=A,e.lanes=i,e;case F:return ql(n,a,i,t);case B:return(e=Zl(24,n,t,a)).elementType=B,e.lanes=i,e;default:if("object"==typeof e&&null!==e)switch(e.$$typeof){case T:s=10;break e;case P:s=9;break e;case L:s=11;break e;case N:s=14;break e;case I:s=16,r=null;break e;case R:s=22;break e}throw Error(o(130,null==e?e:typeof e,""))}return(t=Zl(s,n,t,a)).elementType=e,t.type=r,t.lanes=i,t}function Wl(e,t,n,r){return(e=Zl(7,e,r,t)).lanes=n,e}function ql(e,t,n,r){return(e=Zl(23,e,r,t)).elementType=F,e.lanes=n,e}function Yl(e,t,n){return(e=Zl(6,e,null,t)).lanes=n,e}function Kl(e,t,n){return(t=Zl(4,null!==e.children?e.children:[],e.key,t)).lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function Xl(e,t,n){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.pendingContext=this.context=null,this.hydrate=n,this.callbackNode=null,this.callbackPriority=0,this.eventTimes=Ut(0),this.expirationTimes=Ut(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Ut(0),this.mutableSourceEagerHydrationData=null}function Jl(e,t,n){var r=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:S,key:null==r?null:""+r,children:e,containerInfo:t,implementation:n}}function eu(e,t,n,r){var a=t.current,i=pl(),s=fl(a);e:if(n){t:{if(Ye(n=n._reactInternals)!==n||1!==n.tag)throw Error(o(170));var l=n;do{switch(l.tag){case 3:l=l.stateNode.context;break t;case 1:if(ba(l.type)){l=l.stateNode.__reactInternalMemoizedMergedChildContext;break t}}l=l.return}while(null!==l);throw Error(o(171))}if(1===n.tag){var u=n.type;if(ba(u)){n=xa(n,u,l);break e}}n=l}else n=pa;return null===t.context?t.context=n:t.pendingContext=n,(t=ci(i,s)).payload={element:e},null!==(r=void 0===r?null:r)&&(t.callback=r),di(a,t),ml(a,s,i),s}function tu(e){return(e=e.current).child?(e.child.tag,e.child.stateNode):null}function nu(e,t){if(null!==(e=e.memoizedState)&&null!==e.dehydrated){var n=e.retryLane;e.retryLane=0!==n&&n<t?n:t}}function ru(e,t){nu(e,t),(e=e.alternate)&&nu(e,t)}function au(e,t,n){var r=null!=n&&null!=n.hydrationOptions&&n.hydrationOptions.mutableSources||null;if(n=new Xl(e,t,null!=n&&!0===n.hydrate),t=Zl(3,null,null,2===t?7:1===t?3:0),n.current=t,t.stateNode=n,li(t),e[ea]=n.current,Nr(8===e.nodeType?e.parentNode:e),r)for(e=0;e<r.length;e++){var a=(t=r[e])._getVersion;a=a(t._source),null==n.mutableSourceEagerHydrationData?n.mutableSourceEagerHydrationData=[t,a]:n.mutableSourceEagerHydrationData.push(t,a)}this._internalRoot=n}function iu(e){return!(!e||1!==e.nodeType&&9!==e.nodeType&&11!==e.nodeType&&(8!==e.nodeType||" react-mount-point-unstable "!==e.nodeValue))}function ou(e,t,n,r,a){var i=n._reactRootContainer;if(i){var o=i._internalRoot;if("function"==typeof a){var s=a;a=function(){var e=tu(o);s.call(e)}}eu(t,o,e,a)}else{if(i=n._reactRootContainer=function(e,t){if(t||(t=!(!(t=e?9===e.nodeType?e.documentElement:e.firstChild:null)||1!==t.nodeType||!t.hasAttribute("data-reactroot"))),!t)for(var n;n=e.lastChild;)e.removeChild(n);return new au(e,0,t?{hydrate:!0}:void 0)}(n,r),o=i._internalRoot,"function"==typeof a){var l=a;a=function(){var e=tu(o);l.call(e)}}wl((function(){eu(t,o,e,a)}))}return tu(o)}function su(e,t){var n=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!iu(t))throw Error(o(200));return Jl(e,t,null,n)}Ws=function(e,t,n){var r=t.lanes;if(null!==e)if(e.memoizedProps!==t.pendingProps||ma.current)Fo=!0;else{if(0==(n&r)){switch(Fo=!1,t.tag){case 3:Go(t),Gi();break;case 5:Di(t);break;case 1:ba(t.type)&&wa(t);break;case 4:Ii(t,t.stateNode.containerInfo);break;case 10:r=t.memoizedProps.value;var a=t.type._context;da(Xa,a._currentValue),a._currentValue=r;break;case 13:if(null!==t.memoizedState)return 0!=(n&t.child.childLanes)?Xo(e,t,n):(da(Fi,1&Fi.current),null!==(t=is(e,t,n))?t.sibling:null);da(Fi,1&Fi.current);break;case 19:if(r=0!=(n&t.childLanes),0!=(64&e.flags)){if(r)return as(e,t,n);t.flags|=64}if(null!==(a=t.memoizedState)&&(a.rendering=null,a.tail=null,a.lastEffect=null),da(Fi,Fi.current),r)break;return null;case 23:case 24:return t.lanes=0,Uo(e,t,n)}return is(e,t,n)}Fo=0!=(16384&e.flags)}else Fo=!1;switch(t.lanes=0,t.tag){case 2:if(r=t.type,null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),e=t.pendingProps,a=ga(t,fa.current),ii(t,n),a=oo(null,t,r,e,a,n),t.flags|=1,"object"==typeof a&&null!==a&&"function"==typeof a.render&&void 0===a.$$typeof){if(t.tag=1,t.memoizedState=null,t.updateQueue=null,ba(r)){var i=!0;wa(t)}else i=!1;t.memoizedState=null!==a.state&&void 0!==a.state?a.state:null,li(t);var s=r.getDerivedStateFromProps;"function"==typeof s&&gi(t,r,s,e),a.updater=bi,t.stateNode=a,a._reactInternals=t,wi(t,r,e,n),t=Qo(null,t,r,!0,i,n)}else t.tag=0,Bo(null,t,a,n),t=t.child;return t;case 16:a=t.elementType;e:{switch(null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),e=t.pendingProps,a=(i=a._init)(a._payload),t.type=a,i=t.tag=function(e){if("function"==typeof e)return Vl(e)?1:0;if(null!=e){if((e=e.$$typeof)===L)return 11;if(e===N)return 14}return 2}(a),e=Ka(a,e),i){case 0:t=Zo(null,t,a,e,n);break e;case 1:t=Vo(null,t,a,e,n);break e;case 11:t=zo(null,t,a,e,n);break e;case 14:t=$o(null,t,a,Ka(a.type,e),r,n);break e}throw Error(o(306,a,""))}return t;case 0:return r=t.type,a=t.pendingProps,Zo(e,t,r,a=t.elementType===r?a:Ka(r,a),n);case 1:return r=t.type,a=t.pendingProps,Vo(e,t,r,a=t.elementType===r?a:Ka(r,a),n);case 3:if(Go(t),r=t.updateQueue,null===e||null===r)throw Error(o(282));if(r=t.pendingProps,a=null!==(a=t.memoizedState)?a.element:null,ui(e,t),fi(t,r,null,n),(r=t.memoizedState.element)===a)Gi(),t=is(e,t,n);else{if((i=(a=t.stateNode).hydrate)&&($i=Wr(t.stateNode.containerInfo.firstChild),zi=t,i=ji=!0),i){if(null!=(e=a.mutableSourceEagerHydrationData))for(a=0;a<e.length;a+=2)(i=e[a])._workInProgressVersionPrimary=e[a+1],Wi.push(i);for(n=Ti(t,null,r,n),t.child=n;n;)n.flags=-3&n.flags|1024,n=n.sibling}else Bo(e,t,r,n),Gi();t=t.child}return t;case 5:return Di(t),null===e&&Zi(t),r=t.type,a=t.pendingProps,i=null!==e?e.memoizedProps:null,s=a.children,Zr(r,a)?s=null:null!==i&&Zr(r,i)&&(t.flags|=16),Ho(e,t),Bo(e,t,s,n),t.child;case 6:return null===e&&Zi(t),null;case 13:return Xo(e,t,n);case 4:return Ii(t,t.stateNode.containerInfo),r=t.pendingProps,null===e?t.child=Ci(t,null,r,n):Bo(e,t,r,n),t.child;case 11:return r=t.type,a=t.pendingProps,zo(e,t,r,a=t.elementType===r?a:Ka(r,a),n);case 7:return Bo(e,t,t.pendingProps,n),t.child;case 8:case 12:return Bo(e,t,t.pendingProps.children,n),t.child;case 10:e:{r=t.type._context,a=t.pendingProps,s=t.memoizedProps,i=a.value;var l=t.type._context;if(da(Xa,l._currentValue),l._currentValue=i,null!==s)if(l=s.value,0===(i=cr(l,i)?0:0|("function"==typeof r._calculateChangedBits?r._calculateChangedBits(l,i):1073741823))){if(s.children===a.children&&!ma.current){t=is(e,t,n);break e}}else for(null!==(l=t.child)&&(l.return=t);null!==l;){var u=l.dependencies;if(null!==u){s=l.child;for(var c=u.firstContext;null!==c;){if(c.context===r&&0!=(c.observedBits&i)){1===l.tag&&((c=ci(-1,n&-n)).tag=2,di(l,c)),l.lanes|=n,null!==(c=l.alternate)&&(c.lanes|=n),ai(l.return,n),u.lanes|=n;break}c=c.next}}else s=10===l.tag&&l.type===t.type?null:l.child;if(null!==s)s.return=l;else for(s=l;null!==s;){if(s===t){s=null;break}if(null!==(l=s.sibling)){l.return=s.return,s=l;break}s=s.return}l=s}Bo(e,t,a.children,n),t=t.child}return t;case 9:return a=t.type,r=(i=t.pendingProps).children,ii(t,n),r=r(a=oi(a,i.unstable_observedBits)),t.flags|=1,Bo(e,t,r,n),t.child;case 14:return i=Ka(a=t.type,t.pendingProps),$o(e,t,a,i=Ka(a.type,i),r,n);case 15:return jo(e,t,t.type,t.pendingProps,r,n);case 17:return r=t.type,a=t.pendingProps,a=t.elementType===r?a:Ka(r,a),null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),t.tag=1,ba(r)?(e=!0,wa(t)):e=!1,ii(t,n),yi(t,r,a),wi(t,r,a,n),Qo(null,t,r,!0,e,n);case 19:return as(e,t,n);case 23:case 24:return Uo(e,t,n)}throw Error(o(156,t.tag))},au.prototype.render=function(e){eu(e,this._internalRoot,null,null)},au.prototype.unmount=function(){var e=this._internalRoot,t=e.containerInfo;eu(null,e,null,(function(){t[ea]=null}))},tt=function(e){13===e.tag&&(ml(e,4,pl()),ru(e,4))},nt=function(e){13===e.tag&&(ml(e,67108864,pl()),ru(e,67108864))},rt=function(e){if(13===e.tag){var t=pl(),n=fl(e);ml(e,n,t),ru(e,n)}},at=function(e,t){return t()},Te=function(e,t,n){switch(t){case"input":if(ne(e,n),t=n.name,"radio"===n.type&&null!=t){for(n=e;n.parentNode;)n=n.parentNode;for(n=n.querySelectorAll("input[name="+JSON.stringify(""+t)+'][type="radio"]'),t=0;t<n.length;t++){var r=n[t];if(r!==e&&r.form===e.form){var a=ia(r);if(!a)throw Error(o(90));K(r),ne(r,a)}}}break;case"textarea":ue(e,n);break;case"select":null!=(t=n.value)&&oe(e,!!n.multiple,t,!1)}},Ie=xl,Re=function(e,t,n,r,a){var i=Ns;Ns|=4;try{return Qa(98,e.bind(null,t,n,r,a))}finally{0===(Ns=i)&&(Gs(),Wa())}},De=function(){0==(49&Ns)&&(function(){if(null!==al){var e=al;al=null,e.forEach((function(e){e.expiredLanes|=24&e.pendingLanes,gl(e,Ha())}))}Wa()}(),Dl())},Me=function(e,t){var n=Ns;Ns|=2;try{return e(t)}finally{0===(Ns=n)&&(Gs(),Wa())}};var lu={Events:[ra,aa,ia,Ae,Ne,Dl,{current:!1}]},uu={findFiberByHostInstance:na,bundleType:0,version:"17.0.2",rendererPackageName:"react-dom"},cu={bundleType:uu.bundleType,version:uu.version,rendererPackageName:uu.rendererPackageName,rendererConfig:uu.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:w.ReactCurrentDispatcher,findHostInstanceByFiber:function(e){return null===(e=Je(e))?null:e.stateNode},findFiberByHostInstance:uu.findFiberByHostInstance||function(){return null},findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null};if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__){var du=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!du.isDisabled&&du.supportsFiber)try{Sa=du.inject(cu),Ea=du}catch(ge){}}t.hydrate=function(e,t,n){if(!iu(t))throw Error(o(200));return ou(null,e,t,!0,n)}},3935:(e,t,n)=>{"use strict";!function e(){if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(t){console.error(t)}}(),e.exports=n(4448)},9590:e=>{var t="undefined"!=typeof Element,n="function"==typeof Map,r="function"==typeof Set,a="function"==typeof ArrayBuffer&&!!ArrayBuffer.isView;function i(e,o){if(e===o)return!0;if(e&&o&&"object"==typeof e&&"object"==typeof o){if(e.constructor!==o.constructor)return!1;var s,l,u,c;if(Array.isArray(e)){if((s=e.length)!=o.length)return!1;for(l=s;0!=l--;)if(!i(e[l],o[l]))return!1;return!0}if(n&&e instanceof Map&&o instanceof Map){if(e.size!==o.size)return!1;for(c=e.entries();!(l=c.next()).done;)if(!o.has(l.value[0]))return!1;for(c=e.entries();!(l=c.next()).done;)if(!i(l.value[1],o.get(l.value[0])))return!1;return!0}if(r&&e instanceof Set&&o instanceof Set){if(e.size!==o.size)return!1;for(c=e.entries();!(l=c.next()).done;)if(!o.has(l.value[0]))return!1;return!0}if(a&&ArrayBuffer.isView(e)&&ArrayBuffer.isView(o)){if((s=e.length)!=o.length)return!1;for(l=s;0!=l--;)if(e[l]!==o[l])return!1;return!0}if(e.constructor===RegExp)return e.source===o.source&&e.flags===o.flags;if(e.valueOf!==Object.prototype.valueOf)return e.valueOf()===o.valueOf();if(e.toString!==Object.prototype.toString)return e.toString()===o.toString();if((s=(u=Object.keys(e)).length)!==Object.keys(o).length)return!1;for(l=s;0!=l--;)if(!Object.prototype.hasOwnProperty.call(o,u[l]))return!1;if(t&&e instanceof Element)return!1;for(l=s;0!=l--;)if(("_owner"!==u[l]&&"__v"!==u[l]&&"__o"!==u[l]||!e.$$typeof)&&!i(e[u[l]],o[u[l]]))return!1;return!0}return e!=e&&o!=o}e.exports=function(e,t){try{return i(e,t)}catch(n){if((n.message||"").match(/stack|recursion/i))return console.warn("react-fast-compare cannot handle circular refs"),!1;throw n}}},405:(e,t,n)=>{"use strict";n.d(t,{B6:()=>V,ql:()=>J});var r=n(7294),a=n(5697),i=n.n(a),o=n(9590),s=n.n(o),l=n(1143),u=n.n(l),c=n(6774),d=n.n(c);function p(){return p=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},p.apply(this,arguments)}function f(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,m(e,t)}function m(e,t){return m=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},m(e,t)}function h(e,t){if(null==e)return{};var n,r,a={},i=Object.keys(e);for(r=0;r<i.length;r++)t.indexOf(n=i[r])>=0||(a[n]=e[n]);return a}var g={BASE:"base",BODY:"body",HEAD:"head",HTML:"html",LINK:"link",META:"meta",NOSCRIPT:"noscript",SCRIPT:"script",STYLE:"style",TITLE:"title",FRAGMENT:"Symbol(react.fragment)"},b={rel:["amphtml","canonical","alternate"]},v={type:["application/ld+json"]},y={charset:"",name:["robots","description"],property:["og:type","og:title","og:url","og:image","og:image:alt","og:description","twitter:url","twitter:title","twitter:description","twitter:image","twitter:image:alt","twitter:card","twitter:site"]},x=Object.keys(g).map((function(e){return g[e]})),w={accesskey:"accessKey",charset:"charSet",class:"className",contenteditable:"contentEditable",contextmenu:"contextMenu","http-equiv":"httpEquiv",itemprop:"itemProp",tabindex:"tabIndex"},k=Object.keys(w).reduce((function(e,t){return e[w[t]]=t,e}),{}),S=function(e,t){for(var n=e.length-1;n>=0;n-=1){var r=e[n];if(Object.prototype.hasOwnProperty.call(r,t))return r[t]}return null},E=function(e){var t=S(e,g.TITLE),n=S(e,"titleTemplate");if(Array.isArray(t)&&(t=t.join("")),n&&t)return n.replace(/%s/g,(function(){return t}));var r=S(e,"defaultTitle");return t||r||void 0},_=function(e){return S(e,"onChangeClientState")||function(){}},C=function(e,t){return t.filter((function(t){return void 0!==t[e]})).map((function(t){return t[e]})).reduce((function(e,t){return p({},e,t)}),{})},T=function(e,t){return t.filter((function(e){return void 0!==e[g.BASE]})).map((function(e){return e[g.BASE]})).reverse().reduce((function(t,n){if(!t.length)for(var r=Object.keys(n),a=0;a<r.length;a+=1){var i=r[a].toLowerCase();if(-1!==e.indexOf(i)&&n[i])return t.concat(n)}return t}),[])},P=function(e,t,n){var r={};return n.filter((function(t){return!!Array.isArray(t[e])||(void 0!==t[e]&&console&&"function"==typeof console.warn&&console.warn("Helmet: "+e+' should be of type "Array". Instead found type "'+typeof t[e]+'"'),!1)})).map((function(t){return t[e]})).reverse().reduce((function(e,n){var a={};n.filter((function(e){for(var n,i=Object.keys(e),o=0;o<i.length;o+=1){var s=i[o],l=s.toLowerCase();-1===t.indexOf(l)||"rel"===n&&"canonical"===e[n].toLowerCase()||"rel"===l&&"stylesheet"===e[l].toLowerCase()||(n=l),-1===t.indexOf(s)||"innerHTML"!==s&&"cssText"!==s&&"itemprop"!==s||(n=s)}if(!n||!e[n])return!1;var u=e[n].toLowerCase();return r[n]||(r[n]={}),a[n]||(a[n]={}),!r[n][u]&&(a[n][u]=!0,!0)})).reverse().forEach((function(t){return e.push(t)}));for(var i=Object.keys(a),o=0;o<i.length;o+=1){var s=i[o],l=p({},r[s],a[s]);r[s]=l}return e}),[]).reverse()},L=function(e,t){if(Array.isArray(e)&&e.length)for(var n=0;n<e.length;n+=1)if(e[n][t])return!0;return!1},O=function(e){return Array.isArray(e)?e.join(""):e},A=function(e,t){return Array.isArray(e)?e.reduce((function(e,n){return function(e,t){for(var n=Object.keys(e),r=0;r<n.length;r+=1)if(t[n[r]]&&t[n[r]].includes(e[n[r]]))return!0;return!1}(n,t)?e.priority.push(n):e.default.push(n),e}),{priority:[],default:[]}):{default:e}},N=function(e,t){var n;return p({},e,((n={})[t]=void 0,n))},I=[g.NOSCRIPT,g.SCRIPT,g.STYLE],R=function(e,t){return void 0===t&&(t=!0),!1===t?String(e):String(e).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")},D=function(e){return Object.keys(e).reduce((function(t,n){var r=void 0!==e[n]?n+'="'+e[n]+'"':""+n;return t?t+" "+r:r}),"")},M=function(e,t){return void 0===t&&(t={}),Object.keys(e).reduce((function(t,n){return t[w[n]||n]=e[n],t}),t)},F=function(e,t){return t.map((function(t,n){var a,i=((a={key:n})["data-rh"]=!0,a);return Object.keys(t).forEach((function(e){var n=w[e]||e;"innerHTML"===n||"cssText"===n?i.dangerouslySetInnerHTML={__html:t.innerHTML||t.cssText}:i[n]=t[e]})),r.createElement(e,i)}))},B=function(e,t,n){switch(e){case g.TITLE:return{toComponent:function(){return n=t.titleAttributes,(a={key:e=t.title})["data-rh"]=!0,i=M(n,a),[r.createElement(g.TITLE,i,e)];var e,n,a,i},toString:function(){return function(e,t,n,r){var a=D(n),i=O(t);return a?"<"+e+' data-rh="true" '+a+">"+R(i,r)+"</"+e+">":"<"+e+' data-rh="true">'+R(i,r)+"</"+e+">"}(e,t.title,t.titleAttributes,n)}};case"bodyAttributes":case"htmlAttributes":return{toComponent:function(){return M(t)},toString:function(){return D(t)}};default:return{toComponent:function(){return F(e,t)},toString:function(){return function(e,t,n){return t.reduce((function(t,r){var a=Object.keys(r).filter((function(e){return!("innerHTML"===e||"cssText"===e)})).reduce((function(e,t){var a=void 0===r[t]?t:t+'="'+R(r[t],n)+'"';return e?e+" "+a:a}),""),i=r.innerHTML||r.cssText||"",o=-1===I.indexOf(e);return t+"<"+e+' data-rh="true" '+a+(o?"/>":">"+i+"</"+e+">")}),"")}(e,t,n)}}}},z=function(e){var t=e.baseTag,n=e.bodyAttributes,r=e.encode,a=e.htmlAttributes,i=e.noscriptTags,o=e.styleTags,s=e.title,l=void 0===s?"":s,u=e.titleAttributes,c=e.linkTags,d=e.metaTags,p=e.scriptTags,f={toComponent:function(){},toString:function(){return""}};if(e.prioritizeSeoTags){var m=function(e){var t=e.linkTags,n=e.scriptTags,r=e.encode,a=A(e.metaTags,y),i=A(t,b),o=A(n,v);return{priorityMethods:{toComponent:function(){return[].concat(F(g.META,a.priority),F(g.LINK,i.priority),F(g.SCRIPT,o.priority))},toString:function(){return B(g.META,a.priority,r)+" "+B(g.LINK,i.priority,r)+" "+B(g.SCRIPT,o.priority,r)}},metaTags:a.default,linkTags:i.default,scriptTags:o.default}}(e);f=m.priorityMethods,c=m.linkTags,d=m.metaTags,p=m.scriptTags}return{priority:f,base:B(g.BASE,t,r),bodyAttributes:B("bodyAttributes",n,r),htmlAttributes:B("htmlAttributes",a,r),link:B(g.LINK,c,r),meta:B(g.META,d,r),noscript:B(g.NOSCRIPT,i,r),script:B(g.SCRIPT,p,r),style:B(g.STYLE,o,r),title:B(g.TITLE,{title:l,titleAttributes:u},r)}},$=[],j=function(e,t){var n=this;void 0===t&&(t="undefined"!=typeof document),this.instances=[],this.value={setHelmet:function(e){n.context.helmet=e},helmetInstances:{get:function(){return n.canUseDOM?$:n.instances},add:function(e){(n.canUseDOM?$:n.instances).push(e)},remove:function(e){var t=(n.canUseDOM?$:n.instances).indexOf(e);(n.canUseDOM?$:n.instances).splice(t,1)}}},this.context=e,this.canUseDOM=t,t||(e.helmet=z({baseTag:[],bodyAttributes:{},encodeSpecialCharacters:!0,htmlAttributes:{},linkTags:[],metaTags:[],noscriptTags:[],scriptTags:[],styleTags:[],title:"",titleAttributes:{}}))},U=r.createContext({}),H=i().shape({setHelmet:i().func,helmetInstances:i().shape({get:i().func,add:i().func,remove:i().func})}),Z="undefined"!=typeof document,V=function(e){function t(n){var r;return(r=e.call(this,n)||this).helmetData=new j(r.props.context,t.canUseDOM),r}return f(t,e),t.prototype.render=function(){return r.createElement(U.Provider,{value:this.helmetData.value},this.props.children)},t}(r.Component);V.canUseDOM=Z,V.propTypes={context:i().shape({helmet:i().shape()}),children:i().node.isRequired},V.defaultProps={context:{}},V.displayName="HelmetProvider";var Q=function(e,t){var n,r=document.head||document.querySelector(g.HEAD),a=r.querySelectorAll(e+"[data-rh]"),i=[].slice.call(a),o=[];return t&&t.length&&t.forEach((function(t){var r=document.createElement(e);for(var a in t)Object.prototype.hasOwnProperty.call(t,a)&&("innerHTML"===a?r.innerHTML=t.innerHTML:"cssText"===a?r.styleSheet?r.styleSheet.cssText=t.cssText:r.appendChild(document.createTextNode(t.cssText)):r.setAttribute(a,void 0===t[a]?"":t[a]));r.setAttribute("data-rh","true"),i.some((function(e,t){return n=t,r.isEqualNode(e)}))?i.splice(n,1):o.push(r)})),i.forEach((function(e){return e.parentNode.removeChild(e)})),o.forEach((function(e){return r.appendChild(e)})),{oldTags:i,newTags:o}},G=function(e,t){var n=document.getElementsByTagName(e)[0];if(n){for(var r=n.getAttribute("data-rh"),a=r?r.split(","):[],i=[].concat(a),o=Object.keys(t),s=0;s<o.length;s+=1){var l=o[s],u=t[l]||"";n.getAttribute(l)!==u&&n.setAttribute(l,u),-1===a.indexOf(l)&&a.push(l);var c=i.indexOf(l);-1!==c&&i.splice(c,1)}for(var d=i.length-1;d>=0;d-=1)n.removeAttribute(i[d]);a.length===i.length?n.removeAttribute("data-rh"):n.getAttribute("data-rh")!==o.join(",")&&n.setAttribute("data-rh",o.join(","))}},W=function(e,t){var n=e.baseTag,r=e.htmlAttributes,a=e.linkTags,i=e.metaTags,o=e.noscriptTags,s=e.onChangeClientState,l=e.scriptTags,u=e.styleTags,c=e.title,d=e.titleAttributes;G(g.BODY,e.bodyAttributes),G(g.HTML,r),function(e,t){void 0!==e&&document.title!==e&&(document.title=O(e)),G(g.TITLE,t)}(c,d);var p={baseTag:Q(g.BASE,n),linkTags:Q(g.LINK,a),metaTags:Q(g.META,i),noscriptTags:Q(g.NOSCRIPT,o),scriptTags:Q(g.SCRIPT,l),styleTags:Q(g.STYLE,u)},f={},m={};Object.keys(p).forEach((function(e){var t=p[e],n=t.newTags,r=t.oldTags;n.length&&(f[e]=n),r.length&&(m[e]=p[e].oldTags)})),t&&t(),s(e,f,m)},q=null,Y=function(e){function t(){for(var t,n=arguments.length,r=new Array(n),a=0;a<n;a++)r[a]=arguments[a];return(t=e.call.apply(e,[this].concat(r))||this).rendered=!1,t}f(t,e);var n=t.prototype;return n.shouldComponentUpdate=function(e){return!d()(e,this.props)},n.componentDidUpdate=function(){this.emitChange()},n.componentWillUnmount=function(){this.props.context.helmetInstances.remove(this),this.emitChange()},n.emitChange=function(){var e,t,n=this.props.context,r=n.setHelmet,a=null,i=(e=n.helmetInstances.get().map((function(e){var t=p({},e.props);return delete t.context,t})),{baseTag:T(["href"],e),bodyAttributes:C("bodyAttributes",e),defer:S(e,"defer"),encode:S(e,"encodeSpecialCharacters"),htmlAttributes:C("htmlAttributes",e),linkTags:P(g.LINK,["rel","href"],e),metaTags:P(g.META,["name","charset","http-equiv","property","itemprop"],e),noscriptTags:P(g.NOSCRIPT,["innerHTML"],e),onChangeClientState:_(e),scriptTags:P(g.SCRIPT,["src","innerHTML"],e),styleTags:P(g.STYLE,["cssText"],e),title:E(e),titleAttributes:C("titleAttributes",e),prioritizeSeoTags:L(e,"prioritizeSeoTags")});V.canUseDOM?(t=i,q&&cancelAnimationFrame(q),t.defer?q=requestAnimationFrame((function(){W(t,(function(){q=null}))})):(W(t),q=null)):z&&(a=z(i)),r(a)},n.init=function(){this.rendered||(this.rendered=!0,this.props.context.helmetInstances.add(this),this.emitChange())},n.render=function(){return this.init(),null},t}(r.Component);Y.propTypes={context:H.isRequired},Y.displayName="HelmetDispatcher";var K=["children"],X=["children"],J=function(e){function t(){return e.apply(this,arguments)||this}f(t,e);var n=t.prototype;return n.shouldComponentUpdate=function(e){return!s()(N(this.props,"helmetData"),N(e,"helmetData"))},n.mapNestedChildrenToProps=function(e,t){if(!t)return null;switch(e.type){case g.SCRIPT:case g.NOSCRIPT:return{innerHTML:t};case g.STYLE:return{cssText:t};default:throw new Error("<"+e.type+" /> elements are self-closing and can not contain children. Refer to our API for more information.")}},n.flattenArrayTypeChildren=function(e){var t,n=e.child,r=e.arrayTypeChildren;return p({},r,((t={})[n.type]=[].concat(r[n.type]||[],[p({},e.newChildProps,this.mapNestedChildrenToProps(n,e.nestedChildren))]),t))},n.mapObjectTypeChildren=function(e){var t,n,r=e.child,a=e.newProps,i=e.newChildProps,o=e.nestedChildren;switch(r.type){case g.TITLE:return p({},a,((t={})[r.type]=o,t.titleAttributes=p({},i),t));case g.BODY:return p({},a,{bodyAttributes:p({},i)});case g.HTML:return p({},a,{htmlAttributes:p({},i)});default:return p({},a,((n={})[r.type]=p({},i),n))}},n.mapArrayTypeChildrenToProps=function(e,t){var n=p({},t);return Object.keys(e).forEach((function(t){var r;n=p({},n,((r={})[t]=e[t],r))})),n},n.warnOnInvalidChildren=function(e,t){return u()(x.some((function(t){return e.type===t})),"function"==typeof e.type?"You may be attempting to nest <Helmet> components within each other, which is not allowed. Refer to our API for more information.":"Only elements types "+x.join(", ")+" are allowed. Helmet does not support rendering <"+e.type+"> elements. Refer to our API for more information."),u()(!t||"string"==typeof t||Array.isArray(t)&&!t.some((function(e){return"string"!=typeof e})),"Helmet expects a string as a child of <"+e.type+">. Did you forget to wrap your children in braces? ( <"+e.type+">{``}</"+e.type+"> ) Refer to our API for more information."),!0},n.mapChildrenToProps=function(e,t){var n=this,a={};return r.Children.forEach(e,(function(e){if(e&&e.props){var r=e.props,i=r.children,o=h(r,K),s=Object.keys(o).reduce((function(e,t){return e[k[t]||t]=o[t],e}),{}),l=e.type;switch("symbol"==typeof l?l=l.toString():n.warnOnInvalidChildren(e,i),l){case g.FRAGMENT:t=n.mapChildrenToProps(i,t);break;case g.LINK:case g.META:case g.NOSCRIPT:case g.SCRIPT:case g.STYLE:a=n.flattenArrayTypeChildren({child:e,arrayTypeChildren:a,newChildProps:s,nestedChildren:i});break;default:t=n.mapObjectTypeChildren({child:e,newProps:t,newChildProps:s,nestedChildren:i})}}})),this.mapArrayTypeChildrenToProps(a,t)},n.render=function(){var e=this.props,t=e.children,n=h(e,X),a=p({},n),i=n.helmetData;return t&&(a=this.mapChildrenToProps(t,a)),!i||i instanceof j||(i=new j(i.context,i.instances)),i?r.createElement(Y,p({},a,{context:i.value,helmetData:void 0})):r.createElement(U.Consumer,null,(function(e){return r.createElement(Y,p({},a,{context:e}))}))},t}(r.Component);J.propTypes={base:i().object,bodyAttributes:i().object,children:i().oneOfType([i().arrayOf(i().node),i().node]),defaultTitle:i().string,defer:i().bool,encodeSpecialCharacters:i().bool,htmlAttributes:i().object,link:i().arrayOf(i().object),meta:i().arrayOf(i().object),noscript:i().arrayOf(i().object),onChangeClientState:i().func,script:i().arrayOf(i().object),style:i().arrayOf(i().object),title:i().string,titleAttributes:i().object,titleTemplate:i().string,prioritizeSeoTags:i().bool,helmetData:i().object},J.defaultProps={defer:!0,encodeSpecialCharacters:!0,prioritizeSeoTags:!1},J.displayName="Helmet"},9921:(e,t)=>{"use strict";var n="function"==typeof Symbol&&Symbol.for,r=n?Symbol.for("react.element"):60103,a=n?Symbol.for("react.portal"):60106,i=n?Symbol.for("react.fragment"):60107,o=n?Symbol.for("react.strict_mode"):60108,s=n?Symbol.for("react.profiler"):60114,l=n?Symbol.for("react.provider"):60109,u=n?Symbol.for("react.context"):60110,c=n?Symbol.for("react.async_mode"):60111,d=n?Symbol.for("react.concurrent_mode"):60111,p=n?Symbol.for("react.forward_ref"):60112,f=n?Symbol.for("react.suspense"):60113,m=n?Symbol.for("react.suspense_list"):60120,h=n?Symbol.for("react.memo"):60115,g=n?Symbol.for("react.lazy"):60116,b=n?Symbol.for("react.block"):60121,v=n?Symbol.for("react.fundamental"):60117,y=n?Symbol.for("react.responder"):60118,x=n?Symbol.for("react.scope"):60119;function w(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case r:switch(e=e.type){case c:case d:case i:case s:case o:case f:return e;default:switch(e=e&&e.$$typeof){case u:case p:case g:case h:case l:return e;default:return t}}case a:return t}}}function k(e){return w(e)===d}t.AsyncMode=c,t.ConcurrentMode=d,t.ContextConsumer=u,t.ContextProvider=l,t.Element=r,t.ForwardRef=p,t.Fragment=i,t.Lazy=g,t.Memo=h,t.Portal=a,t.Profiler=s,t.StrictMode=o,t.Suspense=f,t.isAsyncMode=function(e){return k(e)||w(e)===c},t.isConcurrentMode=k,t.isContextConsumer=function(e){return w(e)===u},t.isContextProvider=function(e){return w(e)===l},t.isElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===r},t.isForwardRef=function(e){return w(e)===p},t.isFragment=function(e){return w(e)===i},t.isLazy=function(e){return w(e)===g},t.isMemo=function(e){return w(e)===h},t.isPortal=function(e){return w(e)===a},t.isProfiler=function(e){return w(e)===s},t.isStrictMode=function(e){return w(e)===o},t.isSuspense=function(e){return w(e)===f},t.isValidElementType=function(e){return"string"==typeof e||"function"==typeof e||e===i||e===d||e===s||e===o||e===f||e===m||"object"==typeof e&&null!==e&&(e.$$typeof===g||e.$$typeof===h||e.$$typeof===l||e.$$typeof===u||e.$$typeof===p||e.$$typeof===v||e.$$typeof===y||e.$$typeof===x||e.$$typeof===b)},t.typeOf=w},9864:(e,t,n)=>{"use strict";e.exports=n(9921)},8356:(e,t,n)=>{"use strict";function r(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}function a(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(){return o=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},o.apply(this,arguments)}var s=n(7294),l=n(5697),u=[],c=[];function d(e){var t=e(),n={loading:!0,loaded:null,error:null};return n.promise=t.then((function(e){return n.loading=!1,n.loaded=e,e})).catch((function(e){throw n.loading=!1,n.error=e,e})),n}function p(e){var t={loading:!1,loaded:{},error:null},n=[];try{Object.keys(e).forEach((function(r){var a=d(e[r]);a.loading?t.loading=!0:(t.loaded[r]=a.loaded,t.error=a.error),n.push(a.promise),a.promise.then((function(e){t.loaded[r]=e})).catch((function(e){t.error=e}))}))}catch(r){t.error=r}return t.promise=Promise.all(n).then((function(e){return t.loading=!1,e})).catch((function(e){throw t.loading=!1,e})),t}function f(e,t){return s.createElement((n=e)&&n.__esModule?n.default:n,t);var n}function m(e,t){var d,p;if(!t.loading)throw new Error("react-loadable requires a `loading` component");var m=o({loader:null,loading:null,delay:200,timeout:null,render:f,webpack:null,modules:null},t),h=null;function g(){return h||(h=e(m.loader)),h.promise}return u.push(g),"function"==typeof m.webpack&&c.push((function(){if((0,m.webpack)().every((function(e){return void 0!==e&&void 0!==n.m[e]})))return g()})),p=d=function(t){function n(n){var r;return i(a(a(r=t.call(this,n)||this)),"retry",(function(){r.setState({error:null,loading:!0,timedOut:!1}),h=e(m.loader),r._loadModule()})),g(),r.state={error:h.error,pastDelay:!1,timedOut:!1,loading:h.loading,loaded:h.loaded},r}r(n,t),n.preload=function(){return g()};var o=n.prototype;return o.UNSAFE_componentWillMount=function(){this._loadModule()},o.componentDidMount=function(){this._mounted=!0},o._loadModule=function(){var e=this;if(this.context.loadable&&Array.isArray(m.modules)&&m.modules.forEach((function(t){e.context.loadable.report(t)})),h.loading){var t=function(t){e._mounted&&e.setState(t)};"number"==typeof m.delay&&(0===m.delay?this.setState({pastDelay:!0}):this._delay=setTimeout((function(){t({pastDelay:!0})}),m.delay)),"number"==typeof m.timeout&&(this._timeout=setTimeout((function(){t({timedOut:!0})}),m.timeout));var n=function(){t({error:h.error,loaded:h.loaded,loading:h.loading}),e._clearTimeouts()};h.promise.then((function(){return n(),null})).catch((function(e){return n(),null}))}},o.componentWillUnmount=function(){this._mounted=!1,this._clearTimeouts()},o._clearTimeouts=function(){clearTimeout(this._delay),clearTimeout(this._timeout)},o.render=function(){return this.state.loading||this.state.error?s.createElement(m.loading,{isLoading:this.state.loading,pastDelay:this.state.pastDelay,timedOut:this.state.timedOut,error:this.state.error,retry:this.retry}):this.state.loaded?m.render(this.state.loaded,this.props):null},n}(s.Component),i(d,"contextTypes",{loadable:l.shape({report:l.func.isRequired})}),p}function h(e){return m(d,e)}h.Map=function(e){if("function"!=typeof e.render)throw new Error("LoadableMap requires a `render(loaded, props)` function");return m(p,e)};var g=function(e){function t(){return e.apply(this,arguments)||this}r(t,e);var n=t.prototype;return n.getChildContext=function(){return{loadable:{report:this.props.report}}},n.render=function(){return s.Children.only(this.props.children)},t}(s.Component);function b(e){for(var t=[];e.length;){var n=e.pop();t.push(n())}return Promise.all(t).then((function(){if(e.length)return b(e)}))}i(g,"propTypes",{report:l.func.isRequired}),i(g,"childContextTypes",{loadable:l.shape({report:l.func.isRequired}).isRequired}),h.Capture=g,h.preloadAll=function(){return new Promise((function(e,t){b(u).then(e,t)}))},h.preloadReady=function(){return new Promise((function(e,t){b(c).then(e,e)}))},e.exports=h},8790:(e,t,n)=>{"use strict";n.d(t,{H:()=>s,f:()=>o});var r=n(6550),a=n(7462),i=n(7294);function o(e,t,n){return void 0===n&&(n=[]),e.some((function(e){var a=e.path?(0,r.LX)(t,e):n.length?n[n.length-1].match:r.F0.computeRootMatch(t);return a&&(n.push({route:e,match:a}),e.routes&&o(e.routes,t,n)),a})),n}function s(e,t,n){return void 0===t&&(t={}),void 0===n&&(n={}),e?i.createElement(r.rs,n,e.map((function(e,n){return i.createElement(r.AW,{key:e.key||n,path:e.path,exact:e.exact,strict:e.strict,render:function(n){return e.render?e.render((0,a.Z)({},n,{},t,{route:e})):i.createElement(e.component,(0,a.Z)({},n,t,{route:e}))}})}))):null}},3727:(e,t,n)=>{"use strict";n.d(t,{OL:()=>y,VK:()=>c,rU:()=>g});var r=n(6550),a=n(5068),i=n(7294),o=n(9318),s=n(7462),l=n(3366),u=n(8776),c=function(e){function t(){for(var t,n=arguments.length,r=new Array(n),a=0;a<n;a++)r[a]=arguments[a];return(t=e.call.apply(e,[this].concat(r))||this).history=(0,o.lX)(t.props),t}return(0,a.Z)(t,e),t.prototype.render=function(){return i.createElement(r.F0,{history:this.history,children:this.props.children})},t}(i.Component);i.Component;var d=function(e,t){return"function"==typeof e?e(t):e},p=function(e,t){return"string"==typeof e?(0,o.ob)(e,null,null,t):e},f=function(e){return e},m=i.forwardRef;void 0===m&&(m=f);var h=m((function(e,t){var n=e.innerRef,r=e.navigate,a=e.onClick,o=(0,l.Z)(e,["innerRef","navigate","onClick"]),u=o.target,c=(0,s.Z)({},o,{onClick:function(e){try{a&&a(e)}catch(t){throw e.preventDefault(),t}e.defaultPrevented||0!==e.button||u&&"_self"!==u||function(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}(e)||(e.preventDefault(),r())}});return c.ref=f!==m&&t||n,i.createElement("a",c)}));var g=m((function(e,t){var n=e.component,a=void 0===n?h:n,c=e.replace,g=e.to,b=e.innerRef,v=(0,l.Z)(e,["component","replace","to","innerRef"]);return i.createElement(r.s6.Consumer,null,(function(e){e||(0,u.Z)(!1);var n=e.history,r=p(d(g,e.location),e.location),l=r?n.createHref(r):"",h=(0,s.Z)({},v,{href:l,navigate:function(){var t=d(g,e.location),r=(0,o.Ep)(e.location)===(0,o.Ep)(p(t));(c||r?n.replace:n.push)(t)}});return f!==m?h.ref=t||b:h.innerRef=b,i.createElement(a,h)}))})),b=function(e){return e},v=i.forwardRef;void 0===v&&(v=b);var y=v((function(e,t){var n=e["aria-current"],a=void 0===n?"page":n,o=e.activeClassName,c=void 0===o?"active":o,f=e.activeStyle,m=e.className,h=e.exact,y=e.isActive,x=e.location,w=e.sensitive,k=e.strict,S=e.style,E=e.to,_=e.innerRef,C=(0,l.Z)(e,["aria-current","activeClassName","activeStyle","className","exact","isActive","location","sensitive","strict","style","to","innerRef"]);return i.createElement(r.s6.Consumer,null,(function(e){e||(0,u.Z)(!1);var n=x||e.location,o=p(d(E,n),n),l=o.pathname,T=l&&l.replace(/([.+*?=^!:${}()[\]|/\\])/g,"\\$1"),P=T?(0,r.LX)(n.pathname,{path:T,exact:h,sensitive:w,strict:k}):null,L=!!(y?y(P,n):P),O="function"==typeof m?m(L):m,A="function"==typeof S?S(L):S;L&&(O=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return t.filter((function(e){return e})).join(" ")}(O,c),A=(0,s.Z)({},A,f));var N=(0,s.Z)({"aria-current":L&&a||null,className:O,style:A,to:o},C);return b!==v?N.ref=t||_:N.innerRef=_,i.createElement(g,N)}))}))},6550:(e,t,n)=>{"use strict";n.d(t,{AW:()=>E,F0:()=>x,LX:()=>S,TH:()=>I,k6:()=>N,rs:()=>O,s6:()=>y});var r=n(5068),a=n(7294),i=n(5697),o=n.n(i),s=n(9318),l=n(8776),u=n(7462),c=n(9658),d=n.n(c),p=(n(9864),n(3366)),f=(n(8679),1073741823),m="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:void 0!==n.g?n.g:{};function h(e){var t=[];return{on:function(e){t.push(e)},off:function(e){t=t.filter((function(t){return t!==e}))},get:function(){return e},set:function(n,r){e=n,t.forEach((function(t){return t(e,r)}))}}}var g=a.createContext||function(e,t){var n,i,s="__create-react-context-"+function(){var e="__global_unique_id__";return m[e]=(m[e]||0)+1}()+"__",l=function(e){function n(){for(var t,n=arguments.length,r=new Array(n),a=0;a<n;a++)r[a]=arguments[a];return(t=e.call.apply(e,[this].concat(r))||this).emitter=h(t.props.value),t}(0,r.Z)(n,e);var a=n.prototype;return a.getChildContext=function(){var e;return(e={})[s]=this.emitter,e},a.componentWillReceiveProps=function(e){if(this.props.value!==e.value){var n,r=this.props.value,a=e.value;((i=r)===(o=a)?0!==i||1/i==1/o:i!=i&&o!=o)?n=0:(n="function"==typeof t?t(r,a):f,0!==(n|=0)&&this.emitter.set(e.value,n))}var i,o},a.render=function(){return this.props.children},n}(a.Component);l.childContextTypes=((n={})[s]=o().object.isRequired,n);var u=function(t){function n(){for(var e,n=arguments.length,r=new Array(n),a=0;a<n;a++)r[a]=arguments[a];return(e=t.call.apply(t,[this].concat(r))||this).observedBits=void 0,e.state={value:e.getValue()},e.onUpdate=function(t,n){0!=((0|e.observedBits)&n)&&e.setState({value:e.getValue()})},e}(0,r.Z)(n,t);var a=n.prototype;return a.componentWillReceiveProps=function(e){var t=e.observedBits;this.observedBits=null==t?f:t},a.componentDidMount=function(){this.context[s]&&this.context[s].on(this.onUpdate);var e=this.props.observedBits;this.observedBits=null==e?f:e},a.componentWillUnmount=function(){this.context[s]&&this.context[s].off(this.onUpdate)},a.getValue=function(){return this.context[s]?this.context[s].get():e},a.render=function(){return(e=this.props.children,Array.isArray(e)?e[0]:e)(this.state.value);var e},n}(a.Component);return u.contextTypes=((i={})[s]=o().object,i),{Provider:l,Consumer:u}},b=function(e){var t=g();return t.displayName=e,t},v=b("Router-History"),y=b("Router"),x=function(e){function t(t){var n;return(n=e.call(this,t)||this).state={location:t.history.location},n._isMounted=!1,n._pendingLocation=null,t.staticContext||(n.unlisten=t.history.listen((function(e){n._pendingLocation=e}))),n}(0,r.Z)(t,e),t.computeRootMatch=function(e){return{path:"/",url:"/",params:{},isExact:"/"===e}};var n=t.prototype;return n.componentDidMount=function(){var e=this;this._isMounted=!0,this.unlisten&&this.unlisten(),this.props.staticContext||(this.unlisten=this.props.history.listen((function(t){e._isMounted&&e.setState({location:t})}))),this._pendingLocation&&this.setState({location:this._pendingLocation})},n.componentWillUnmount=function(){this.unlisten&&(this.unlisten(),this._isMounted=!1,this._pendingLocation=null)},n.render=function(){return a.createElement(y.Provider,{value:{history:this.props.history,location:this.state.location,match:t.computeRootMatch(this.state.location.pathname),staticContext:this.props.staticContext}},a.createElement(v.Provider,{children:this.props.children||null,value:this.props.history}))},t}(a.Component);a.Component;a.Component;var w={},k=0;function S(e,t){void 0===t&&(t={}),("string"==typeof t||Array.isArray(t))&&(t={path:t});var n=t,r=n.path,a=n.exact,i=void 0!==a&&a,o=n.strict,s=void 0!==o&&o,l=n.sensitive,u=void 0!==l&&l;return[].concat(r).reduce((function(t,n){if(!n&&""!==n)return null;if(t)return t;var r=function(e,t){var n=""+t.end+t.strict+t.sensitive,r=w[n]||(w[n]={});if(r[e])return r[e];var a=[],i={regexp:d()(e,a,t),keys:a};return k<1e4&&(r[e]=i,k++),i}(n,{end:i,strict:s,sensitive:u}),a=r.regexp,o=r.keys,l=a.exec(e);if(!l)return null;var c=l[0],p=l.slice(1),f=e===c;return i&&!f?null:{path:n,url:"/"===n&&""===c?"/":c,isExact:f,params:o.reduce((function(e,t,n){return e[t.name]=p[n],e}),{})}}),null)}var E=function(e){function t(){return e.apply(this,arguments)||this}return(0,r.Z)(t,e),t.prototype.render=function(){var e=this;return a.createElement(y.Consumer,null,(function(t){t||(0,l.Z)(!1);var n=e.props.location||t.location,r=e.props.computedMatch?e.props.computedMatch:e.props.path?S(n.pathname,e.props):t.match,i=(0,u.Z)({},t,{location:n,match:r}),o=e.props,s=o.children,c=o.component,d=o.render;return Array.isArray(s)&&function(e){return 0===a.Children.count(e)}(s)&&(s=null),a.createElement(y.Provider,{value:i},i.match?s?"function"==typeof s?s(i):s:c?a.createElement(c,i):d?d(i):null:"function"==typeof s?s(i):null)}))},t}(a.Component);function _(e){return"/"===e.charAt(0)?e:"/"+e}function C(e,t){if(!e)return t;var n=_(e);return 0!==t.pathname.indexOf(n)?t:(0,u.Z)({},t,{pathname:t.pathname.substr(n.length)})}function T(e){return"string"==typeof e?e:(0,s.Ep)(e)}function P(e){return function(){(0,l.Z)(!1)}}function L(){}a.Component;var O=function(e){function t(){return e.apply(this,arguments)||this}return(0,r.Z)(t,e),t.prototype.render=function(){var e=this;return a.createElement(y.Consumer,null,(function(t){t||(0,l.Z)(!1);var n,r,i=e.props.location||t.location;return a.Children.forEach(e.props.children,(function(e){if(null==r&&a.isValidElement(e)){n=e;var o=e.props.path||e.props.from;r=o?S(i.pathname,(0,u.Z)({},e.props,{path:o})):t.match}})),r?a.cloneElement(n,{location:i,computedMatch:r}):null}))},t}(a.Component);var A=a.useContext;function N(){return A(v)}function I(){return A(y).location}},9658:(e,t,n)=>{var r=n(5826);e.exports=f,e.exports.parse=i,e.exports.compile=function(e,t){return s(i(e,t),t)},e.exports.tokensToFunction=s,e.exports.tokensToRegExp=p;var a=new RegExp(["(\\\\.)","([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))"].join("|"),"g");function i(e,t){for(var n,r=[],i=0,o=0,s="",c=t&&t.delimiter||"/";null!=(n=a.exec(e));){var d=n[0],p=n[1],f=n.index;if(s+=e.slice(o,f),o=f+d.length,p)s+=p[1];else{var m=e[o],h=n[2],g=n[3],b=n[4],v=n[5],y=n[6],x=n[7];s&&(r.push(s),s="");var w=null!=h&&null!=m&&m!==h,k="+"===y||"*"===y,S="?"===y||"*"===y,E=n[2]||c,_=b||v;r.push({name:g||i++,prefix:h||"",delimiter:E,optional:S,repeat:k,partial:w,asterisk:!!x,pattern:_?u(_):x?".*":"[^"+l(E)+"]+?"})}}return o<e.length&&(s+=e.substr(o)),s&&r.push(s),r}function o(e){return encodeURI(e).replace(/[\/?#]/g,(function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()}))}function s(e,t){for(var n=new Array(e.length),a=0;a<e.length;a++)"object"==typeof e[a]&&(n[a]=new RegExp("^(?:"+e[a].pattern+")$",d(t)));return function(t,a){for(var i="",s=t||{},l=(a||{}).pretty?o:encodeURIComponent,u=0;u<e.length;u++){var c=e[u];if("string"!=typeof c){var d,p=s[c.name];if(null==p){if(c.optional){c.partial&&(i+=c.prefix);continue}throw new TypeError('Expected "'+c.name+'" to be defined')}if(r(p)){if(!c.repeat)throw new TypeError('Expected "'+c.name+'" to not repeat, but received `'+JSON.stringify(p)+"`");if(0===p.length){if(c.optional)continue;throw new TypeError('Expected "'+c.name+'" to not be empty')}for(var f=0;f<p.length;f++){if(d=l(p[f]),!n[u].test(d))throw new TypeError('Expected all "'+c.name+'" to match "'+c.pattern+'", but received `'+JSON.stringify(d)+"`");i+=(0===f?c.prefix:c.delimiter)+d}}else{if(d=c.asterisk?encodeURI(p).replace(/[?#]/g,(function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()})):l(p),!n[u].test(d))throw new TypeError('Expected "'+c.name+'" to match "'+c.pattern+'", but received "'+d+'"');i+=c.prefix+d}}else i+=c}return i}}function l(e){return e.replace(/([.+*?=^!:${}()[\]|\/\\])/g,"\\$1")}function u(e){return e.replace(/([=!:$\/()])/g,"\\$1")}function c(e,t){return e.keys=t,e}function d(e){return e&&e.sensitive?"":"i"}function p(e,t,n){r(t)||(n=t||n,t=[]);for(var a=(n=n||{}).strict,i=!1!==n.end,o="",s=0;s<e.length;s++){var u=e[s];if("string"==typeof u)o+=l(u);else{var p=l(u.prefix),f="(?:"+u.pattern+")";t.push(u),u.repeat&&(f+="(?:"+p+f+")*"),o+=f=u.optional?u.partial?p+"("+f+")?":"(?:"+p+"("+f+"))?":p+"("+f+")"}}var m=l(n.delimiter||"/"),h=o.slice(-m.length)===m;return a||(o=(h?o.slice(0,-m.length):o)+"(?:"+m+"(?=$))?"),o+=i?"$":a&&h?"":"(?="+m+"|$)",c(new RegExp("^"+o,d(n)),t)}function f(e,t,n){return r(t)||(n=t||n,t=[]),n=n||{},e instanceof RegExp?function(e,t){var n=e.source.match(/\((?!\?)/g);if(n)for(var r=0;r<n.length;r++)t.push({name:r,prefix:null,delimiter:null,optional:!1,repeat:!1,partial:!1,asterisk:!1,pattern:null});return c(e,t)}(e,t):r(e)?function(e,t,n){for(var r=[],a=0;a<e.length;a++)r.push(f(e[a],t,n).source);return c(new RegExp("(?:"+r.join("|")+")",d(n)),t)}(e,t,n):function(e,t,n){return p(i(e,n),t,n)}(e,t,n)}},2408:(e,t,n)=>{"use strict";var r=n(7418),a=60103,i=60106;t.Fragment=60107,t.StrictMode=60108,t.Profiler=60114;var o=60109,s=60110,l=60112;t.Suspense=60113;var u=60115,c=60116;if("function"==typeof Symbol&&Symbol.for){var d=Symbol.for;a=d("react.element"),i=d("react.portal"),t.Fragment=d("react.fragment"),t.StrictMode=d("react.strict_mode"),t.Profiler=d("react.profiler"),o=d("react.provider"),s=d("react.context"),l=d("react.forward_ref"),t.Suspense=d("react.suspense"),u=d("react.memo"),c=d("react.lazy")}var p="function"==typeof Symbol&&Symbol.iterator;function f(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n]);return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var m={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},h={};function g(e,t,n){this.props=e,this.context=t,this.refs=h,this.updater=n||m}function b(){}function v(e,t,n){this.props=e,this.context=t,this.refs=h,this.updater=n||m}g.prototype.isReactComponent={},g.prototype.setState=function(e,t){if("object"!=typeof e&&"function"!=typeof e&&null!=e)throw Error(f(85));this.updater.enqueueSetState(this,e,t,"setState")},g.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},b.prototype=g.prototype;var y=v.prototype=new b;y.constructor=v,r(y,g.prototype),y.isPureReactComponent=!0;var x={current:null},w=Object.prototype.hasOwnProperty,k={key:!0,ref:!0,__self:!0,__source:!0};function S(e,t,n){var r,i={},o=null,s=null;if(null!=t)for(r in void 0!==t.ref&&(s=t.ref),void 0!==t.key&&(o=""+t.key),t)w.call(t,r)&&!k.hasOwnProperty(r)&&(i[r]=t[r]);var l=arguments.length-2;if(1===l)i.children=n;else if(1<l){for(var u=Array(l),c=0;c<l;c++)u[c]=arguments[c+2];i.children=u}if(e&&e.defaultProps)for(r in l=e.defaultProps)void 0===i[r]&&(i[r]=l[r]);return{$$typeof:a,type:e,key:o,ref:s,props:i,_owner:x.current}}function E(e){return"object"==typeof e&&null!==e&&e.$$typeof===a}var _=/\/+/g;function C(e,t){return"object"==typeof e&&null!==e&&null!=e.key?function(e){var t={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,(function(e){return t[e]}))}(""+e.key):t.toString(36)}function T(e,t,n,r,o){var s=typeof e;"undefined"!==s&&"boolean"!==s||(e=null);var l=!1;if(null===e)l=!0;else switch(s){case"string":case"number":l=!0;break;case"object":switch(e.$$typeof){case a:case i:l=!0}}if(l)return o=o(l=e),e=""===r?"."+C(l,0):r,Array.isArray(o)?(n="",null!=e&&(n=e.replace(_,"$&/")+"/"),T(o,t,n,"",(function(e){return e}))):null!=o&&(E(o)&&(o=function(e,t){return{$$typeof:a,type:e.type,key:t,ref:e.ref,props:e.props,_owner:e._owner}}(o,n+(!o.key||l&&l.key===o.key?"":(""+o.key).replace(_,"$&/")+"/")+e)),t.push(o)),1;if(l=0,r=""===r?".":r+":",Array.isArray(e))for(var u=0;u<e.length;u++){var c=r+C(s=e[u],u);l+=T(s,t,n,c,o)}else if(c=function(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=p&&e[p]||e["@@iterator"])?e:null}(e),"function"==typeof c)for(e=c.call(e),u=0;!(s=e.next()).done;)l+=T(s=s.value,t,n,c=r+C(s,u++),o);else if("object"===s)throw t=""+e,Error(f(31,"[object Object]"===t?"object with keys {"+Object.keys(e).join(", ")+"}":t));return l}function P(e,t,n){if(null==e)return e;var r=[],a=0;return T(e,r,"","",(function(e){return t.call(n,e,a++)})),r}function L(e){if(-1===e._status){var t=e._result;t=t(),e._status=0,e._result=t,t.then((function(t){0===e._status&&(t=t.default,e._status=1,e._result=t)}),(function(t){0===e._status&&(e._status=2,e._result=t)}))}if(1===e._status)return e._result;throw e._result}var O={current:null};function A(){var e=O.current;if(null===e)throw Error(f(321));return e}var N={ReactCurrentDispatcher:O,ReactCurrentBatchConfig:{transition:0},ReactCurrentOwner:x,IsSomeRendererActing:{current:!1},assign:r};t.Children={map:P,forEach:function(e,t,n){P(e,(function(){t.apply(this,arguments)}),n)},count:function(e){var t=0;return P(e,(function(){t++})),t},toArray:function(e){return P(e,(function(e){return e}))||[]},only:function(e){if(!E(e))throw Error(f(143));return e}},t.Component=g,t.PureComponent=v,t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=N,t.cloneElement=function(e,t,n){if(null==e)throw Error(f(267,e));var i=r({},e.props),o=e.key,s=e.ref,l=e._owner;if(null!=t){if(void 0!==t.ref&&(s=t.ref,l=x.current),void 0!==t.key&&(o=""+t.key),e.type&&e.type.defaultProps)var u=e.type.defaultProps;for(c in t)w.call(t,c)&&!k.hasOwnProperty(c)&&(i[c]=void 0===t[c]&&void 0!==u?u[c]:t[c])}var c=arguments.length-2;if(1===c)i.children=n;else if(1<c){u=Array(c);for(var d=0;d<c;d++)u[d]=arguments[d+2];i.children=u}return{$$typeof:a,type:e.type,key:o,ref:s,props:i,_owner:l}},t.createContext=function(e,t){return void 0===t&&(t=null),(e={$$typeof:s,_calculateChangedBits:t,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null}).Provider={$$typeof:o,_context:e},e.Consumer=e},t.createElement=S,t.createFactory=function(e){var t=S.bind(null,e);return t.type=e,t},t.createRef=function(){return{current:null}},t.forwardRef=function(e){return{$$typeof:l,render:e}},t.isValidElement=E,t.lazy=function(e){return{$$typeof:c,_payload:{_status:-1,_result:e},_init:L}},t.memo=function(e,t){return{$$typeof:u,type:e,compare:void 0===t?null:t}},t.useCallback=function(e,t){return A().useCallback(e,t)},t.useContext=function(e,t){return A().useContext(e,t)},t.useDebugValue=function(){},t.useEffect=function(e,t){return A().useEffect(e,t)},t.useImperativeHandle=function(e,t,n){return A().useImperativeHandle(e,t,n)},t.useLayoutEffect=function(e,t){return A().useLayoutEffect(e,t)},t.useMemo=function(e,t){return A().useMemo(e,t)},t.useReducer=function(e,t,n){return A().useReducer(e,t,n)},t.useRef=function(e){return A().useRef(e)},t.useState=function(e){return A().useState(e)},t.version="17.0.2"},7294:(e,t,n)=>{"use strict";e.exports=n(2408)},53:(e,t)=>{"use strict";var n,r,a,i;if("object"==typeof performance&&"function"==typeof performance.now){var o=performance;t.unstable_now=function(){return o.now()}}else{var s=Date,l=s.now();t.unstable_now=function(){return s.now()-l}}if("undefined"==typeof window||"function"!=typeof MessageChannel){var u=null,c=null,d=function(){if(null!==u)try{var e=t.unstable_now();u(!0,e),u=null}catch(n){throw setTimeout(d,0),n}};n=function(e){null!==u?setTimeout(n,0,e):(u=e,setTimeout(d,0))},r=function(e,t){c=setTimeout(e,t)},a=function(){clearTimeout(c)},t.unstable_shouldYield=function(){return!1},i=t.unstable_forceFrameRate=function(){}}else{var p=window.setTimeout,f=window.clearTimeout;if("undefined"!=typeof console){var m=window.cancelAnimationFrame;"function"!=typeof window.requestAnimationFrame&&console.error("This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills"),"function"!=typeof m&&console.error("This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills")}var h=!1,g=null,b=-1,v=5,y=0;t.unstable_shouldYield=function(){return t.unstable_now()>=y},i=function(){},t.unstable_forceFrameRate=function(e){0>e||125<e?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):v=0<e?Math.floor(1e3/e):5};var x=new MessageChannel,w=x.port2;x.port1.onmessage=function(){if(null!==g){var e=t.unstable_now();y=e+v;try{g(!0,e)?w.postMessage(null):(h=!1,g=null)}catch(n){throw w.postMessage(null),n}}else h=!1},n=function(e){g=e,h||(h=!0,w.postMessage(null))},r=function(e,n){b=p((function(){e(t.unstable_now())}),n)},a=function(){f(b),b=-1}}function k(e,t){var n=e.length;e.push(t);e:for(;;){var r=n-1>>>1,a=e[r];if(!(void 0!==a&&0<_(a,t)))break e;e[r]=t,e[n]=a,n=r}}function S(e){return void 0===(e=e[0])?null:e}function E(e){var t=e[0];if(void 0!==t){var n=e.pop();if(n!==t){e[0]=n;e:for(var r=0,a=e.length;r<a;){var i=2*(r+1)-1,o=e[i],s=i+1,l=e[s];if(void 0!==o&&0>_(o,n))void 0!==l&&0>_(l,o)?(e[r]=l,e[s]=n,r=s):(e[r]=o,e[i]=n,r=i);else{if(!(void 0!==l&&0>_(l,n)))break e;e[r]=l,e[s]=n,r=s}}}return t}return null}function _(e,t){var n=e.sortIndex-t.sortIndex;return 0!==n?n:e.id-t.id}var C=[],T=[],P=1,L=null,O=3,A=!1,N=!1,I=!1;function R(e){for(var t=S(T);null!==t;){if(null===t.callback)E(T);else{if(!(t.startTime<=e))break;E(T),t.sortIndex=t.expirationTime,k(C,t)}t=S(T)}}function D(e){if(I=!1,R(e),!N)if(null!==S(C))N=!0,n(M);else{var t=S(T);null!==t&&r(D,t.startTime-e)}}function M(e,n){N=!1,I&&(I=!1,a()),A=!0;var i=O;try{for(R(n),L=S(C);null!==L&&(!(L.expirationTime>n)||e&&!t.unstable_shouldYield());){var o=L.callback;if("function"==typeof o){L.callback=null,O=L.priorityLevel;var s=o(L.expirationTime<=n);n=t.unstable_now(),"function"==typeof s?L.callback=s:L===S(C)&&E(C),R(n)}else E(C);L=S(C)}if(null!==L)var l=!0;else{var u=S(T);null!==u&&r(D,u.startTime-n),l=!1}return l}finally{L=null,O=i,A=!1}}var F=i;t.unstable_IdlePriority=5,t.unstable_ImmediatePriority=1,t.unstable_LowPriority=4,t.unstable_NormalPriority=3,t.unstable_Profiling=null,t.unstable_UserBlockingPriority=2,t.unstable_cancelCallback=function(e){e.callback=null},t.unstable_continueExecution=function(){N||A||(N=!0,n(M))},t.unstable_getCurrentPriorityLevel=function(){return O},t.unstable_getFirstCallbackNode=function(){return S(C)},t.unstable_next=function(e){switch(O){case 1:case 2:case 3:var t=3;break;default:t=O}var n=O;O=t;try{return e()}finally{O=n}},t.unstable_pauseExecution=function(){},t.unstable_requestPaint=F,t.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=O;O=e;try{return t()}finally{O=n}},t.unstable_scheduleCallback=function(e,i,o){var s=t.unstable_now();switch("object"==typeof o&&null!==o?o="number"==typeof(o=o.delay)&&0<o?s+o:s:o=s,e){case 1:var l=-1;break;case 2:l=250;break;case 5:l=1073741823;break;case 4:l=1e4;break;default:l=5e3}return e={id:P++,callback:i,priorityLevel:e,startTime:o,expirationTime:l=o+l,sortIndex:-1},o>s?(e.sortIndex=o,k(T,e),null===S(C)&&e===S(T)&&(I?a():I=!0,r(D,o-s))):(e.sortIndex=l,k(C,e),N||A||(N=!0,n(M))),e},t.unstable_wrapCallback=function(e){var t=O;return function(){var n=O;O=t;try{return e.apply(this,arguments)}finally{O=n}}}},3840:(e,t,n)=>{"use strict";e.exports=n(53)},6774:e=>{e.exports=function(e,t,n,r){var a=n?n.call(r,e,t):void 0;if(void 0!==a)return!!a;if(e===t)return!0;if("object"!=typeof e||!e||"object"!=typeof t||!t)return!1;var i=Object.keys(e),o=Object.keys(t);if(i.length!==o.length)return!1;for(var s=Object.prototype.hasOwnProperty.bind(t),l=0;l<i.length;l++){var u=i[l];if(!s(u))return!1;var c=e[u],d=t[u];if(!1===(a=n?n.call(r,c,d,u):void 0)||void 0===a&&c!==d)return!1}return!0}},3250:(e,t,n)=>{"use strict";var r=n(7294);var a="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},i=r.useState,o=r.useEffect,s=r.useLayoutEffect,l=r.useDebugValue;function u(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!a(e,n)}catch(r){return!0}}var c="undefined"==typeof window||void 0===window.document||void 0===window.document.createElement?function(e,t){return t()}:function(e,t){var n=t(),r=i({inst:{value:n,getSnapshot:t}}),a=r[0].inst,c=r[1];return s((function(){a.value=n,a.getSnapshot=t,u(a)&&c({inst:a})}),[e,n,t]),o((function(){return u(a)&&c({inst:a}),e((function(){u(a)&&c({inst:a})}))}),[e]),l(n),n};t.useSyncExternalStore=void 0!==r.useSyncExternalStore?r.useSyncExternalStore:c},1688:(e,t,n)=>{"use strict";e.exports=n(3250)},6809:(e,t,n)=>{"use strict";n.d(t,{Z:()=>r});const r={title:"LazyVim",tagline:"A Neovim config for the lazy",url:"https://lazyvim.github.io/",baseUrl:"/",onBrokenLinks:"throw",onBrokenMarkdownLinks:"warn",favicon:"img/favicon.ico",trailingSlash:!1,organizationName:"LazyVim",projectName:"lazyvim.github.io",deploymentBranch:"gh-pages",i18n:{defaultLocale:"en",locales:["en"],path:"i18n",localeConfigs:{}},presets:[["classic",{docs:{routeBasePath:"/",sidebarPath:"/home/runner/work/lazyvim.github.io/lazyvim.github.io/sidebars.js",editUrl:"https://github.com/LazyVim/lazyvim.github.io/tree/main/"},blog:!1,theme:{customCss:"/home/runner/work/lazyvim.github.io/lazyvim.github.io/src/css/custom.css"}}]],plugins:[["/home/runner/work/lazyvim.github.io/lazyvim.github.io/node_modules/@easyops-cn/docusaurus-search-local/dist/server/server/index.js",{hashed:!0,indexDocs:!0,indexBlog:!1,indexPages:!1,docsRouteBasePath:"/",searchBarShortcutHint:!1}]],themeConfig:{navbar:{title:"LazyVim",logo:{alt:"LazyVim Logo",src:"img/icon.svg",srcDark:"img/icon-dark.svg"},items:[{position:"right",type:"html",value:"<a class='social' title=Twitter href=https://twitter.com/folke target='_blank' rel='noopener noreferrer'><svg width='1.5rem' height='1.5rem' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'><path d='M23.643 4.93695C22.808 5.30695 21.911 5.55696 20.968 5.66996C21.941 5.08775 22.669 4.17142 23.016 3.09195C22.1019 3.63494 21.1014 4.01715 20.058 4.22196C19.3564 3.47282 18.4271 2.97628 17.4143 2.80943C16.4016 2.64258 15.3621 2.81475 14.4572 3.29921C13.5524 3.78367 12.8328 4.55332 12.4102 5.48866C11.9875 6.424 11.8855 7.4727 12.12 8.47195C10.2677 8.37895 8.45564 7.8975 6.80144 7.05886C5.14723 6.22022 3.68785 5.04312 2.51801 3.60396C2.11801 4.29396 1.88801 5.09396 1.88801 5.94596C1.88757 6.71295 2.07644 7.4682 2.43789 8.14469C2.79934 8.82118 3.32217 9.39799 3.96001 9.82396C3.22029 9.80042 2.49688 9.60054 1.85001 9.24095V9.30095C1.84994 10.3767 2.22204 11.4193 2.90319 12.252C3.58434 13.0846 4.53258 13.6559 5.58701 13.869C4.9008 14.0547 4.18135 14.082 3.48301 13.949C3.78051 14.8746 4.36001 15.684 5.14038 16.2639C5.92075 16.8438 6.86293 17.1651 7.83501 17.183C6.18485 18.4784 4.1469 19.181 2.04901 19.178C1.67739 19.1781 1.30609 19.1564 0.937012 19.113C3.06649 20.4821 5.54535 21.2088 8.07701 21.206C16.647 21.206 21.332 14.108 21.332 7.95195C21.332 7.75195 21.327 7.54995 21.318 7.34995C22.2293 6.69093 23.0159 5.87485 23.641 4.93995L23.643 4.93695V4.93695Z' fill='black'/></svg></a>"},{position:"right",type:"html",value:"<a class='social' title=Matrix href=https://matrix.to/#/#lazyvim:matrix.org target='_blank' rel='noopener noreferrer'><svg width='1.5rem' height='1.5rem' viewBox='0 0 32 32' fill='none' xmlns='http://www.w3.org/2000/svg'><g clip-path='url(#clip0_602_4)'><path d='M0.844 0.735023V31.266H3.041V32.001H0V0.00102344H3.041V0.736023L0.844 0.735023ZM10.235 10.412V11.959H10.276C10.6603 11.3936 11.1698 10.9244 11.765 10.588C12.344 10.265 13.016 10.104 13.765 10.104C14.484 10.104 15.145 10.245 15.74 10.521C16.339 10.802 16.787 11.297 17.099 12C17.438 11.5 17.902 11.057 18.479 10.677C19.058 10.297 19.746 10.104 20.542 10.104C21.1088 10.0983 21.6736 10.1737 22.219 10.328C22.74 10.473 23.178 10.708 23.547 11.031C23.912 11.36 24.198 11.782 24.407 12.303C24.61 12.823 24.714 13.454 24.714 14.194V21.829H21.585V15.361C21.5859 14.9991 21.5699 14.6374 21.537 14.277C21.518 13.9705 21.4366 13.6711 21.298 13.397C21.1674 13.1451 20.9639 12.9384 20.714 12.804C20.459 12.652 20.105 12.58 19.667 12.58C19.224 12.58 18.87 12.663 18.599 12.829C18.3333 12.9945 18.1133 13.2238 17.959 13.496C17.7987 13.7828 17.6942 14.0974 17.651 14.423C17.6005 14.7702 17.5728 15.1203 17.568 15.471V21.83H14.437V15.429C14.437 15.09 14.432 14.757 14.412 14.429C14.4029 14.1146 14.3375 13.8044 14.219 13.513C14.1146 13.234 13.9204 12.9976 13.667 12.841C13.412 12.674 13.031 12.586 12.531 12.586C12.38 12.586 12.183 12.617 11.943 12.685C11.703 12.752 11.464 12.877 11.24 13.06C10.9866 13.2784 10.7854 13.5507 10.651 13.857C10.49 14.2 10.412 14.653 10.412 15.216V21.836H7.281V10.415L10.235 10.412ZM31.156 31.265V0.734023H28.959V-0.000976562H32V31.999H28.959V31.264L31.156 31.265Z' fill='black'/></g><defs><clipPath id='clip0_602_4'><rect width='32' height='32' fill='black'/></clipPath></defs></svg></a>"},{position:"right",type:"html",value:"<a class='social' title=Github href=https://github.com/LazyVim/LazyVim target='_blank' rel='noopener noreferrer'><svg width='1.5rem' height='1.5rem' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'><g clip-path='url(#clip0_602_8)'><path fill-rule='evenodd' clip-rule='evenodd' d='M12 0C5.37 0 0 5.37 0 12C0 17.31 3.435 21.795 8.205 23.385C8.805 23.49 9.03 23.13 9.03 22.815C9.03 22.53 9.015 21.585 9.015 20.58C6 21.135 5.22 19.845 4.98 19.17C4.845 18.825 4.26 17.76 3.75 17.475C3.33 17.25 2.73 16.695 3.735 16.68C4.68 16.665 5.355 17.55 5.58 17.91C6.66 19.725 8.385 19.215 9.075 18.9C9.18 18.12 9.495 17.595 9.84 17.295C7.17 16.995 4.38 15.96 4.38 11.37C4.38 10.065 4.845 8.985 5.61 8.145C5.49 7.845 5.07 6.615 5.73 4.965C5.73 4.965 6.735 4.65 9.03 6.195C9.99 5.925 11.01 5.79 12.03 5.79C13.05 5.79 14.07 5.925 15.03 6.195C17.325 4.635 18.33 4.965 18.33 4.965C18.99 6.615 18.57 7.845 18.45 8.145C19.215 8.985 19.68 10.05 19.68 11.37C19.68 15.975 16.875 16.995 14.205 17.295C14.64 17.67 15.015 18.39 15.015 19.515C15.015 21.12 15 22.41 15 22.815C15 23.13 15.225 23.505 15.825 23.385C18.2072 22.5807 20.2772 21.0497 21.7437 19.0074C23.2101 16.965 23.9993 14.5143 24 12C24 5.37 18.63 0 12 0Z' fill='black'/></g><defs><clipPath id='clip0_602_8'><rect width='24' height='24' fill='black'/></clipPath></defs></svg></a>"},{position:"right",type:"html",value:'<a class=\'social\' title=Github Discussions href=https://github.com/LazyVim/LazyVim/discussions target=\'_blank\' rel=\'noopener noreferrer\'><svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-comment-discussion UnderlineNav-octicon d-none d-sm-inline"><path fill-rule="evenodd" d="M1.5 2.75a.25.25 0 01.25-.25h8.5a.25.25 0 01.25.25v5.5a.25.25 0 01-.25.25h-3.5a.75.75 0 00-.53.22L3.5 11.44V9.25a.75.75 0 00-.75-.75h-1a.25.25 0 01-.25-.25v-5.5zM1.75 1A1.75 1.75 0 000 2.75v5.5C0 9.216.784 10 1.75 10H2v1.543a1.457 1.457 0 002.487 1.03L7.061 10h3.189A1.75 1.75 0 0012 8.25v-5.5A1.75 1.75 0 0010.25 1h-8.5zM14.5 4.75a.25.25 0 00-.25-.25h-.5a.75.75 0 110-1.5h.5c.966 0 1.75.784 1.75 1.75v5.5A1.75 1.75 0 0114.25 12H14v1.543a1.457 1.457 0 01-2.487 1.03L9.22 12.28a.75.75 0 111.06-1.06l2.22 2.22v-2.19a.75.75 0 01.75-.75h1a.25.25 0 00.25-.25v-5.5z"></path></svg></a>'}],hideOnScroll:!1},footer:{style:"dark",links:[{title:"Docs",items:[{label:"Getting Started",to:"/"}]},{title:"Community",items:[{label:"Discussions",href:"https://github.com/LazyVim/LazyVim/discussions"},{label:"Twitter",href:"https://twitter.com/folke"}]},{title:"More",items:[{label:"GitHub",href:"https://github.com/LazyVim/LazyVim"}]}],copyright:"Copyright \xa9 2025 LazyVim, Inc. Built with Docusaurus."},prism:{theme:{plain:{color:"#c8d3f5",backgroundColor:"#222436"},styles:[{types:["prolog","builtin"],style:{color:"#ff757f"}},{types:["function"],style:{color:"#82aaff"}},{types:["symbol"],style:{color:"#65bcff"}},{types:["punctuation"],style:{color:"#c099ff"}},{types:["string","char","tag","selector"],style:{color:"#c3e88d"}},{types:["keyword"],style:{color:"#fca7ea"}},{types:["operator"],style:{color:"#89ddff"}},{types:["constant","boolean"],style:{color:"#ff966c"}},{types:["variable"],style:{color:"#c8d3f5"}},{types:["comment"],style:{color:"#636da6",fontStyle:"italic"}},{types:["attr-name"],style:{color:"rgb(241, 250, 140)"}}]},darkTheme:{plain:{color:"#c8d3f5",backgroundColor:"#222436"},styles:[{types:["prolog","builtin"],style:{color:"#ff757f"}},{types:["function"],style:{color:"#82aaff"}},{types:["symbol"],style:{color:"#65bcff"}},{types:["punctuation"],style:{color:"#c099ff"}},{types:["string","char","tag","selector"],style:{color:"#c3e88d"}},{types:["keyword"],style:{color:"#fca7ea"}},{types:["operator"],style:{color:"#89ddff"}},{types:["constant","boolean"],style:{color:"#ff966c"}},{types:["variable"],style:{color:"#c8d3f5"}},{types:["comment"],style:{color:"#636da6",fontStyle:"italic"}},{types:["attr-name"],style:{color:"rgb(241, 250, 140)"}}]},additionalLanguages:["lua","bash","powershell"],magicComments:[{className:"theme-code-block-highlighted-line",line:"highlight-next-line",block:{start:"highlight-start",end:"highlight-end"}}]},colorMode:{defaultMode:"light",disableSwitch:!1,respectPrefersColorScheme:!1},docs:{versionPersistence:"localStorage",sidebar:{hideable:!1,autoCollapseCategories:!1}},metadata:[],tableOfContents:{minHeadingLevel:2,maxHeadingLevel:3}},baseUrlIssueBanner:!0,onDuplicateRoutes:"warn",staticDirectories:["static"],customFields:{},themes:[],scripts:[],headTags:[],stylesheets:[],clientModules:[],titleDelimiter:"|",noIndex:!1,markdown:{mermaid:!1}}},7462:(e,t,n)=>{"use strict";function r(){return r=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},r.apply(this,arguments)}n.d(t,{Z:()=>r})},5068:(e,t,n)=>{"use strict";function r(e,t){return r=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},r(e,t)}function a(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,r(e,t)}n.d(t,{Z:()=>a})},3366:(e,t,n)=>{"use strict";function r(e,t){if(null==e)return{};var n,r,a={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}n.d(t,{Z:()=>r})},8776:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});var r="Invariant failed";function a(e,t){if(!e)throw new Error(r)}},7529:e=>{"use strict";e.exports={}},6887:e=>{"use strict";e.exports=JSON.parse('{"/search-3ae":{"__comp":"1a4e3797","__context":{"plugin":"b3f422e6"}},"/-af1":{"__comp":"1be78505","__context":{"plugin":"5a36f5e4"},"versionMetadata":"935f2afb"},"/-96c":{"__comp":"17896441","content":"0e384e19"},"/configuration-a05":{"__comp":"17896441","content":"f6d78023"},"/configuration/examples-f5e":{"__comp":"17896441","content":"1421d519"},"/configuration/general-60c":{"__comp":"17896441","content":"00f37bb3"},"/configuration/keymaps-282":{"__comp":"17896441","content":"77762066"},"/configuration/lazy.nvim-5f1":{"__comp":"17896441","content":"d662f31a"},"/configuration/plugins-18b":{"__comp":"17896441","content":"4a588e30"},"/configuration/recipes-b46":{"__comp":"17896441","content":"5ef416c9"},"/configuration/tips-67c":{"__comp":"17896441","content":"fba121fb"},"/extras-d7c":{"__comp":"17896441","content":"c10f7a0f"},"/extras/ai/avante-880":{"__comp":"17896441","content":"6b133371"},"/extras/ai/claudecode-661":{"__comp":"17896441","content":"1e89ac9b"},"/extras/ai/codeium-fda":{"__comp":"17896441","content":"d82605b2"},"/extras/ai/copilot-9c8":{"__comp":"17896441","content":"aa4a0c26"},"/extras/ai/copilot-chat-5d4":{"__comp":"17896441","content":"5160bd2b"},"/extras/ai/copilot-native-74a":{"__comp":"17896441","content":"01db27bc"},"/extras/ai/sidekick-eed":{"__comp":"17896441","content":"9dcfab8d"},"/extras/ai/supermaven-a7c":{"__comp":"17896441","content":"ee0aead6"},"/extras/ai/tabnine-781":{"__comp":"17896441","content":"ce2c62c8"},"/extras/coding/blink-6d1":{"__comp":"17896441","content":"b3dc818c"},"/extras/coding/luasnip-9e6":{"__comp":"17896441","content":"cb7b2066"},"/extras/coding/mini-comment-6c7":{"__comp":"17896441","content":"36e7d211"},"/extras/coding/mini-snippets-c69":{"__comp":"17896441","content":"14e32279"},"/extras/coding/mini-surround-c11":{"__comp":"17896441","content":"60620e7a"},"/extras/coding/neogen-340":{"__comp":"17896441","content":"6752c00e"},"/extras/coding/nvim-cmp-d86":{"__comp":"17896441","content":"59b8077e"},"/extras/coding/yanky-e61":{"__comp":"17896441","content":"0ceb8aa7"},"/extras/dap/core-1cf":{"__comp":"17896441","content":"4b6e5af7"},"/extras/dap/nlua-acf":{"__comp":"17896441","content":"3bc80f43"},"/extras/editor/aerial-7a1":{"__comp":"17896441","content":"668a8ee6"},"/extras/editor/dial-6e2":{"__comp":"17896441","content":"317b1847"},"/extras/editor/fzf-b62":{"__comp":"17896441","content":"b51453b7"},"/extras/editor/harpoon2-ca0":{"__comp":"17896441","content":"abb3b3ca"},"/extras/editor/illuminate-8c2":{"__comp":"17896441","content":"8001b023"},"/extras/editor/inc-rename-5b3":{"__comp":"17896441","content":"3726a5f7"},"/extras/editor/leap-816":{"__comp":"17896441","content":"8e97e177"},"/extras/editor/mini-diff-79c":{"__comp":"17896441","content":"ff0044c8"},"/extras/editor/mini-files-900":{"__comp":"17896441","content":"a506056f"},"/extras/editor/mini-move-56d":{"__comp":"17896441","content":"3d779113"},"/extras/editor/navic-71d":{"__comp":"17896441","content":"420dc8cc"},"/extras/editor/neo-tree-a11":{"__comp":"17896441","content":"e2039070"},"/extras/editor/outline-efb":{"__comp":"17896441","content":"dfa76d84"},"/extras/editor/overseer-dbb":{"__comp":"17896441","content":"e297f6d7"},"/extras/editor/refactoring-413":{"__comp":"17896441","content":"60f466ed"},"/extras/editor/snacks_explorer-3dd":{"__comp":"17896441","content":"468753df"},"/extras/editor/snacks_picker-666":{"__comp":"17896441","content":"3e5dfa0f"},"/extras/editor/telescope-68f":{"__comp":"17896441","content":"8fb7ed7a"},"/extras/formatting/biome-2de":{"__comp":"17896441","content":"49dfcdce"},"/extras/formatting/black-6d1":{"__comp":"17896441","content":"5566dcf8"},"/extras/formatting/prettier-aee":{"__comp":"17896441","content":"d5ec2c0d"},"/extras/lang/angular-aa9":{"__comp":"17896441","content":"7bd194f7"},"/extras/lang/ansible-9b0":{"__comp":"17896441","content":"b844f9a6"},"/extras/lang/astro-5cd":{"__comp":"17896441","content":"5c89b5ec"},"/extras/lang/clangd-6c1":{"__comp":"17896441","content":"a3c0e8b3"},"/extras/lang/clojure-7d1":{"__comp":"17896441","content":"2b0bb072"},"/extras/lang/cmake-ada":{"__comp":"17896441","content":"49e39c69"},"/extras/lang/dart-224":{"__comp":"17896441","content":"dc4714d3"},"/extras/lang/docker-214":{"__comp":"17896441","content":"a4db065b"},"/extras/lang/dotnet-631":{"__comp":"17896441","content":"c65f0b57"},"/extras/lang/elixir-9e3":{"__comp":"17896441","content":"f7be6569"},"/extras/lang/elm-1d0":{"__comp":"17896441","content":"77eac538"},"/extras/lang/ember-0f8":{"__comp":"17896441","content":"bdfc8fa0"},"/extras/lang/erlang-3fe":{"__comp":"17896441","content":"6ad48da5"},"/extras/lang/git-2bd":{"__comp":"17896441","content":"2f41730a"},"/extras/lang/gleam-402":{"__comp":"17896441","content":"bb9c283f"},"/extras/lang/go-4f2":{"__comp":"17896441","content":"f439c73a"},"/extras/lang/haskell-050":{"__comp":"17896441","content":"0ba19029"},"/extras/lang/helm-7a0":{"__comp":"17896441","content":"0b960a6d"},"/extras/lang/java-9fd":{"__comp":"17896441","content":"ed7583a2"},"/extras/lang/json-04d":{"__comp":"17896441","content":"5dd77795"},"/extras/lang/julia-645":{"__comp":"17896441","content":"1ebe7096"},"/extras/lang/kotlin-464":{"__comp":"17896441","content":"043ad997"},"/extras/lang/lean-6c8":{"__comp":"17896441","content":"2f0824eb"},"/extras/lang/markdown-a6f":{"__comp":"17896441","content":"ae7dceba"},"/extras/lang/nix-9a3":{"__comp":"17896441","content":"b0d9a7a2"},"/extras/lang/nushell-bfc":{"__comp":"17896441","content":"959a4fbd"},"/extras/lang/ocaml-565":{"__comp":"17896441","content":"49928ac3"},"/extras/lang/php-d4c":{"__comp":"17896441","content":"ba3904a1"},"/extras/lang/prisma-3b9":{"__comp":"17896441","content":"2df97b47"},"/extras/lang/python-bed":{"__comp":"17896441","content":"7d779db9"},"/extras/lang/r-524":{"__comp":"17896441","content":"94b8409a"},"/extras/lang/rego-87f":{"__comp":"17896441","content":"0dd98372"},"/extras/lang/ruby-154":{"__comp":"17896441","content":"054d3884"},"/extras/lang/rust-dca":{"__comp":"17896441","content":"769b26d9"},"/extras/lang/scala-a65":{"__comp":"17896441","content":"7454edaa"},"/extras/lang/solidity-3f6":{"__comp":"17896441","content":"77467bf2"},"/extras/lang/sql-b43":{"__comp":"17896441","content":"af437caf"},"/extras/lang/svelte-cb6":{"__comp":"17896441","content":"0002c181"},"/extras/lang/tailwind-58c":{"__comp":"17896441","content":"bf13ef1f"},"/extras/lang/terraform-dc1":{"__comp":"17896441","content":"9d14ed18"},"/extras/lang/tex-a78":{"__comp":"17896441","content":"524b705f"},"/extras/lang/thrift-605":{"__comp":"17896441","content":"086c1b3d"},"/extras/lang/toml-f3f":{"__comp":"17896441","content":"63e110b2"},"/extras/lang/twig-673":{"__comp":"17896441","content":"692732b7"},"/extras/lang/typescript-39e":{"__comp":"17896441","content":"74c5fc19"},"/extras/lang/typst-aff":{"__comp":"17896441","content":"d7a63d69"},"/extras/lang/vue-321":{"__comp":"17896441","content":"595ac6db"},"/extras/lang/yaml-8a4":{"__comp":"17896441","content":"cb39b597"},"/extras/lang/zig-66c":{"__comp":"17896441","content":"0cfaa859"},"/extras/linting/eslint-055":{"__comp":"17896441","content":"8599c685"},"/extras/lsp/neoconf-0c3":{"__comp":"17896441","content":"aa0b7b62"},"/extras/lsp/none-ls-b95":{"__comp":"17896441","content":"59876f77"},"/extras/test/core-894":{"__comp":"17896441","content":"e21da259"},"/extras/ui/alpha-9db":{"__comp":"17896441","content":"4e954c8e"},"/extras/ui/dashboard-nvim-f92":{"__comp":"17896441","content":"840ee53e"},"/extras/ui/edgy-0e0":{"__comp":"17896441","content":"c5292878"},"/extras/ui/indent-blankline-3c5":{"__comp":"17896441","content":"030829cf"},"/extras/ui/mini-animate-fca":{"__comp":"17896441","content":"835d9726"},"/extras/ui/mini-indentscope-e32":{"__comp":"17896441","content":"af680c62"},"/extras/ui/mini-starter-d44":{"__comp":"17896441","content":"30f42c63"},"/extras/ui/smear-cursor-ec0":{"__comp":"17896441","content":"f3921946"},"/extras/ui/treesitter-context-192":{"__comp":"17896441","content":"8b3d7d9d"},"/extras/util/chezmoi-fed":{"__comp":"17896441","content":"269621ab"},"/extras/util/dot-727":{"__comp":"17896441","content":"5d2425ed"},"/extras/util/gh-96f":{"__comp":"17896441","content":"203eebe1"},"/extras/util/gitui-400":{"__comp":"17896441","content":"d2c17782"},"/extras/util/mini-hipatterns-012":{"__comp":"17896441","content":"a4dc063a"},"/extras/util/octo-594":{"__comp":"17896441","content":"8b52b704"},"/extras/util/project-be1":{"__comp":"17896441","content":"53c65431"},"/extras/util/rest-7d1":{"__comp":"17896441","content":"e01fff5b"},"/extras/util/startuptime-a3e":{"__comp":"17896441","content":"7e44cc6a"},"/extras/vscode-5af":{"__comp":"17896441","content":"ac945390"},"/installation-2e7":{"__comp":"17896441","content":"3b8c55ea"},"/keymaps-8f1":{"__comp":"17896441","content":"34c7b1b3"},"/news-a0e":{"__comp":"17896441","content":"0fafd334"},"/plugins-da4":{"__comp":"17896441","content":"02335ff3"},"/plugins/coding-c3a":{"__comp":"17896441","content":"67dd85c5"},"/plugins/colorscheme-c90":{"__comp":"17896441","content":"d71b907f"},"/plugins/editor-f88":{"__comp":"17896441","content":"e99c3aef"},"/plugins/formatting-978":{"__comp":"17896441","content":"f4d155c3"},"/plugins/linting-61f":{"__comp":"17896441","content":"2d285e41"},"/plugins/lsp-3c7":{"__comp":"17896441","content":"a34fa16d"},"/plugins/treesitter-2d6":{"__comp":"17896441","content":"5e1fbf1d"},"/plugins/ui-dae":{"__comp":"17896441","content":"edecbfbe"},"/plugins/util-f36":{"__comp":"17896441","content":"9f78a83b"}}')}},e=>{e.O(0,[532],(()=>{return t=7221,e(e.s=t);var t}));e.O()}]); \ No newline at end of file diff --git a/assets/js/main.e4c7918d.js.LICENSE.txt b/assets/js/main.e4c7918d.js.LICENSE.txt new file mode 100644 index 0000000000..2c826395b9 --- /dev/null +++ b/assets/js/main.e4c7918d.js.LICENSE.txt @@ -0,0 +1,125 @@ +/* +object-assign +(c) Sindre Sorhus +@license MIT +*/ + +/* NProgress, (c) 2013, 2014 Rico Sta. Cruz - http://ricostacruz.com/nprogress + * @license MIT */ + +/*! + * lunr.Builder + * Copyright (C) 2020 Oliver Nightingale + */ + +/*! + * lunr.Index + * Copyright (C) 2020 Oliver Nightingale + */ + +/*! + * lunr.Pipeline + * Copyright (C) 2020 Oliver Nightingale + */ + +/*! + * lunr.Set + * Copyright (C) 2020 Oliver Nightingale + */ + +/*! + * lunr.TokenSet + * Copyright (C) 2020 Oliver Nightingale + */ + +/*! + * lunr.Vector + * Copyright (C) 2020 Oliver Nightingale + */ + +/*! + * lunr.stemmer + * Copyright (C) 2020 Oliver Nightingale + * Includes code from - http://tartarus.org/~martin/PorterStemmer/js.txt + */ + +/*! + * lunr.stopWordFilter + * Copyright (C) 2020 Oliver Nightingale + */ + +/*! + * lunr.tokenizer + * Copyright (C) 2020 Oliver Nightingale + */ + +/*! + * lunr.trimmer + * Copyright (C) 2020 Oliver Nightingale + */ + +/*! + * lunr.utils + * Copyright (C) 2020 Oliver Nightingale + */ + +/** + * @license React + * use-sync-external-store-shim.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/** + * Prism: Lightweight, robust, elegant syntax highlighting + * + * @license MIT <https://opensource.org/licenses/MIT> + * @author Lea Verou <https://lea.verou.me> + * @namespace + * @public + */ + +/** + * lunr - http://lunrjs.com - A bit like Solr, but much smaller and not as bright - 2.3.9 + * Copyright (C) 2020 Oliver Nightingale + * @license MIT + */ + +/** @license React v0.20.2 + * scheduler.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/** @license React v16.13.1 + * react-is.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/** @license React v17.0.2 + * react-dom.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/** @license React v17.0.2 + * react.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ diff --git a/assets/js/runtime~main.33942e3f.js b/assets/js/runtime~main.33942e3f.js new file mode 100644 index 0000000000..7f78982624 --- /dev/null +++ b/assets/js/runtime~main.33942e3f.js @@ -0,0 +1 @@ +(()=>{"use strict";var e,a,f,b,d,c={},t={};function r(e){var a=t[e];if(void 0!==a)return a.exports;var f=t[e]={exports:{}};return c[e].call(f.exports,f,f.exports,r),f.exports}r.m=c,e=[],r.O=(a,f,b,d)=>{if(!f){var c=1/0;for(i=0;i<e.length;i++){f=e[i][0],b=e[i][1],d=e[i][2];for(var t=!0,o=0;o<f.length;o++)(!1&d||c>=d)&&Object.keys(r.O).every((e=>r.O[e](f[o])))?f.splice(o--,1):(t=!1,d<c&&(c=d));if(t){e.splice(i--,1);var n=b();void 0!==n&&(a=n)}}return a}d=d||0;for(var i=e.length;i>0&&e[i-1][2]>d;i--)e[i]=e[i-1];e[i]=[f,b,d]},r.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return r.d(a,{a:a}),a},f=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,r.t=function(e,b){if(1&b&&(e=this(e)),8&b)return e;if("object"==typeof e&&e){if(4&b&&e.__esModule)return e;if(16&b&&"function"==typeof e.then)return e}var d=Object.create(null);r.r(d);var c={};a=a||[null,f({}),f([]),f(f)];for(var t=2&b&&e;"object"==typeof t&&!~a.indexOf(t);t=f(t))Object.getOwnPropertyNames(t).forEach((a=>c[a]=()=>e[a]));return c.default=()=>e,r.d(d,c),d},r.d=(e,a)=>{for(var f in a)r.o(a,f)&&!r.o(e,f)&&Object.defineProperty(e,f,{enumerable:!0,get:a[f]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce(((a,f)=>(r.f[f](e,a),a)),[])),r.u=e=>"assets/js/"+({2:"e01fff5b",43:"f4d155c3",53:"935f2afb",58:"1e89ac9b",125:"dfa76d84",190:"60f466ed",277:"d662f31a",284:"5c89b5ec",432:"f7be6569",513:"668a8ee6",530:"02335ff3",543:"ee0aead6",645:"ff0044c8",751:"aa4a0c26",767:"4a588e30",768:"269621ab",867:"bf13ef1f",873:"b3f422e6",966:"aa0b7b62",1058:"0ceb8aa7",1086:"2df97b47",1087:"0fafd334",1139:"bdfc8fa0",1155:"959a4fbd",1159:"5ef416c9",1204:"ac945390",1220:"49dfcdce",1236:"0ba19029",1330:"054d3884",1334:"d71b907f",1358:"77762066",1432:"840ee53e",1478:"f439c73a",1494:"53c65431",1576:"00f37bb3",1654:"6752c00e",1676:"d7a63d69",1740:"1ebe7096",1969:"769b26d9",1993:"ed7583a2",2042:"a4dc063a",2121:"b51453b7",2147:"49928ac3",2171:"8b3d7d9d",2201:"086c1b3d",2228:"b3dc818c",2293:"7bd194f7",2298:"692732b7",2364:"63e110b2",2374:"b0d9a7a2",2393:"49e39c69",2404:"2f41730a",2555:"317b1847",2781:"34c7b1b3",2886:"6ad48da5",3004:"9d14ed18",3054:"7454edaa",3213:"5566dcf8",3217:"3b8c55ea",3247:"524b705f",3251:"e2039070",3363:"203eebe1",3503:"d5ec2c0d",3559:"a4db065b",3607:"5d2425ed",3719:"420dc8cc",3729:"cb7b2066",3747:"9f78a83b",3764:"2f0824eb",4136:"59876f77",4206:"01db27bc",4412:"ce2c62c8",4467:"77eac538",4517:"0dd98372",4580:"043ad997",4747:"4e954c8e",4869:"6b133371",4974:"5160bd2b",5050:"abb3b3ca",5149:"b844f9a6",5150:"e99c3aef",5169:"77467bf2",5200:"af437caf",5227:"0002c181",5283:"94b8409a",5341:"8b52b704",5390:"ae7dceba",5443:"c65f0b57",5496:"1421d519",5521:"7d779db9",5656:"af680c62",5819:"8599c685",5831:"d2c17782",5892:"60620e7a",5897:"f3921946",6265:"835d9726",6553:"5a36f5e4",6592:"59b8077e",6598:"595ac6db",6609:"3e5dfa0f",6694:"0b960a6d",6857:"8001b023",6859:"d82605b2",7053:"2b0bb072",7152:"7e44cc6a",7293:"030829cf",7374:"3d779113",7441:"8e97e177",7448:"3726a5f7",7532:"36e7d211",7570:"dc4714d3",7615:"bb9c283f",7704:"2d285e41",7780:"4b6e5af7",7875:"3bc80f43",7897:"67dd85c5",7918:"17896441",7920:"1a4e3797",7928:"a34fa16d",7934:"a506056f",7993:"0cfaa859",8116:"9dcfab8d",8186:"30f42c63",8227:"e297f6d7",8335:"14e32279",8497:"8fb7ed7a",8612:"74c5fc19",8656:"5dd77795",8769:"a3c0e8b3",9016:"f6d78023",9213:"fba121fb",9454:"edecbfbe",9501:"e21da259",9514:"1be78505",9536:"c5292878",9603:"ba3904a1",9671:"0e384e19",9787:"cb39b597",9876:"c10f7a0f",9898:"468753df",9983:"5e1fbf1d"}[e]||e)+"."+{2:"7e229204",43:"91772195",53:"0e483e6c",58:"7f5a3296",125:"da44ec5d",190:"2ccb04cc",277:"96cfee31",284:"cb0c6a5d",432:"860322b1",513:"2a5ae62b",530:"4027e346",543:"2ceb90a5",645:"86bcb045",751:"704c62eb",767:"80ed4e24",768:"6b05e30e",867:"d10b3bb0",873:"b98d139f",966:"9725948b",1058:"3219beb1",1086:"fb9d4fc4",1087:"c9fa42b3",1139:"53c5c4d4",1155:"842dbeb3",1159:"32a5ded8",1204:"714ae80f",1220:"7ec021d7",1236:"f422b781",1330:"774f7049",1334:"8f04eb9e",1358:"fdafd2ea",1432:"57c0816d",1478:"30a3d1bb",1494:"c6cec854",1576:"314d4434",1654:"7ec19cf5",1676:"c1651b02",1740:"117d6be1",1969:"35e8b716",1993:"7979adfc",2042:"5b23d305",2121:"61d25ca5",2147:"595fa845",2171:"6e9ee3b6",2201:"8f4e357a",2228:"730974ef",2293:"f73c53c6",2298:"cf819be8",2364:"96d5a1b1",2374:"35dc499c",2393:"7f4c2ae0",2404:"a91f44ef",2555:"0376b084",2781:"63747987",2886:"c2c2151a",3004:"4272c9d7",3054:"60b00574",3213:"2e287695",3217:"0c054656",3247:"500a9376",3251:"0b4bd68a",3363:"a0ca28dc",3503:"7b42fb71",3559:"f7c013e7",3607:"833a8f99",3719:"4809e767",3729:"2e0e0dab",3747:"bdfad638",3764:"d69eb927",4136:"eb18d73f",4206:"83d8ac38",4412:"8ec25b3f",4467:"98e590ce",4517:"880d4357",4580:"9f733eef",4747:"e0b9da7d",4869:"ca026688",4972:"8b7a66b6",4974:"2c8d640c",5050:"e0a864ef",5149:"1ee215dd",5150:"1669315f",5169:"a471583a",5200:"8b9c1cd7",5227:"c126a812",5283:"5d1a5141",5341:"9b7bbbd6",5390:"782b1693",5443:"b90b50a8",5496:"910737e9",5521:"8d3471a1",5525:"98422c1e",5656:"2d2a3597",5819:"1d0a26a9",5831:"451045e3",5892:"a42ca864",5897:"0255f065",6265:"29cec360",6553:"8c14c72a",6592:"b7ba8c82",6598:"862cb9c8",6609:"772bd6d0",6694:"51ed1f63",6857:"126b5ba1",6859:"fe2f4bb7",7053:"a3576d91",7152:"5146f48c",7293:"ce36faff",7374:"2cee38ba",7441:"8f3e7320",7448:"b2a488a0",7532:"cda0b050",7570:"2cff019c",7615:"4625ad6c",7704:"16aa3983",7780:"70295676",7875:"e38ec9b3",7897:"e4b2d7fd",7918:"aac9190d",7920:"a446d558",7928:"f5af4759",7934:"c71afc0a",7993:"d7577e87",8116:"23587718",8186:"73b928a8",8227:"136a3813",8335:"337a7a7e",8443:"06003310",8497:"497f04c1",8612:"bdbf561a",8656:"8ebbf4af",8769:"eedb6c4f",9016:"2aae8dcd",9213:"601fc1f3",9454:"b8ea0afb",9501:"82ff0bbf",9514:"43c09e3c",9536:"dfb6de52",9603:"3f06a8b2",9671:"2344ca15",9787:"6dc60dde",9876:"1938c030",9898:"0218e241",9983:"5d976106"}[e]+".js",r.miniCssF=e=>{},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),b={},d="lazyvim:",r.l=(e,a,f,c)=>{if(b[e])b[e].push(a);else{var t,o;if(void 0!==f)for(var n=document.getElementsByTagName("script"),i=0;i<n.length;i++){var u=n[i];if(u.getAttribute("src")==e||u.getAttribute("data-webpack")==d+f){t=u;break}}t||(o=!0,(t=document.createElement("script")).charset="utf-8",t.timeout=120,r.nc&&t.setAttribute("nonce",r.nc),t.setAttribute("data-webpack",d+f),t.src=e),b[e]=[a];var l=(a,f)=>{t.onerror=t.onload=null,clearTimeout(s);var d=b[e];if(delete b[e],t.parentNode&&t.parentNode.removeChild(t),d&&d.forEach((e=>e(f))),a)return a(f)},s=setTimeout(l.bind(null,void 0,{type:"timeout",target:t}),12e4);t.onerror=l.bind(null,t.onerror),t.onload=l.bind(null,t.onload),o&&document.head.appendChild(t)}},r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.p="/",r.gca=function(e){return e={17896441:"7918",77762066:"1358",e01fff5b:"2",f4d155c3:"43","935f2afb":"53","1e89ac9b":"58",dfa76d84:"125","60f466ed":"190",d662f31a:"277","5c89b5ec":"284",f7be6569:"432","668a8ee6":"513","02335ff3":"530",ee0aead6:"543",ff0044c8:"645",aa4a0c26:"751","4a588e30":"767","269621ab":"768",bf13ef1f:"867",b3f422e6:"873",aa0b7b62:"966","0ceb8aa7":"1058","2df97b47":"1086","0fafd334":"1087",bdfc8fa0:"1139","959a4fbd":"1155","5ef416c9":"1159",ac945390:"1204","49dfcdce":"1220","0ba19029":"1236","054d3884":"1330",d71b907f:"1334","840ee53e":"1432",f439c73a:"1478","53c65431":"1494","00f37bb3":"1576","6752c00e":"1654",d7a63d69:"1676","1ebe7096":"1740","769b26d9":"1969",ed7583a2:"1993",a4dc063a:"2042",b51453b7:"2121","49928ac3":"2147","8b3d7d9d":"2171","086c1b3d":"2201",b3dc818c:"2228","7bd194f7":"2293","692732b7":"2298","63e110b2":"2364",b0d9a7a2:"2374","49e39c69":"2393","2f41730a":"2404","317b1847":"2555","34c7b1b3":"2781","6ad48da5":"2886","9d14ed18":"3004","7454edaa":"3054","5566dcf8":"3213","3b8c55ea":"3217","524b705f":"3247",e2039070:"3251","203eebe1":"3363",d5ec2c0d:"3503",a4db065b:"3559","5d2425ed":"3607","420dc8cc":"3719",cb7b2066:"3729","9f78a83b":"3747","2f0824eb":"3764","59876f77":"4136","01db27bc":"4206",ce2c62c8:"4412","77eac538":"4467","0dd98372":"4517","043ad997":"4580","4e954c8e":"4747","6b133371":"4869","5160bd2b":"4974",abb3b3ca:"5050",b844f9a6:"5149",e99c3aef:"5150","77467bf2":"5169",af437caf:"5200","0002c181":"5227","94b8409a":"5283","8b52b704":"5341",ae7dceba:"5390",c65f0b57:"5443","1421d519":"5496","7d779db9":"5521",af680c62:"5656","8599c685":"5819",d2c17782:"5831","60620e7a":"5892",f3921946:"5897","835d9726":"6265","5a36f5e4":"6553","59b8077e":"6592","595ac6db":"6598","3e5dfa0f":"6609","0b960a6d":"6694","8001b023":"6857",d82605b2:"6859","2b0bb072":"7053","7e44cc6a":"7152","030829cf":"7293","3d779113":"7374","8e97e177":"7441","3726a5f7":"7448","36e7d211":"7532",dc4714d3:"7570",bb9c283f:"7615","2d285e41":"7704","4b6e5af7":"7780","3bc80f43":"7875","67dd85c5":"7897","1a4e3797":"7920",a34fa16d:"7928",a506056f:"7934","0cfaa859":"7993","9dcfab8d":"8116","30f42c63":"8186",e297f6d7:"8227","14e32279":"8335","8fb7ed7a":"8497","74c5fc19":"8612","5dd77795":"8656",a3c0e8b3:"8769",f6d78023:"9016",fba121fb:"9213",edecbfbe:"9454",e21da259:"9501","1be78505":"9514",c5292878:"9536",ba3904a1:"9603","0e384e19":"9671",cb39b597:"9787",c10f7a0f:"9876","468753df":"9898","5e1fbf1d":"9983"}[e]||e,r.p+r.u(e)},(()=>{var e={1303:0,532:0};r.f.j=(a,f)=>{var b=r.o(e,a)?e[a]:void 0;if(0!==b)if(b)f.push(b[2]);else if(/^(1303|532)$/.test(a))e[a]=0;else{var d=new Promise(((f,d)=>b=e[a]=[f,d]));f.push(b[2]=d);var c=r.p+r.u(a),t=new Error;r.l(c,(f=>{if(r.o(e,a)&&(0!==(b=e[a])&&(e[a]=void 0),b)){var d=f&&("load"===f.type?"missing":f.type),c=f&&f.target&&f.target.src;t.message="Loading chunk "+a+" failed.\n("+d+": "+c+")",t.name="ChunkLoadError",t.type=d,t.request=c,b[1](t)}}),"chunk-"+a,a)}},r.O.j=a=>0===e[a];var a=(a,f)=>{var b,d,c=f[0],t=f[1],o=f[2],n=0;if(c.some((a=>0!==e[a]))){for(b in t)r.o(t,b)&&(r.m[b]=t[b]);if(o)var i=o(r)}for(a&&a(f);n<c.length;n++)d=c[n],r.o(e,d)&&e[d]&&e[d][0](),e[d]=0;return r.O(i)},f=self.webpackChunklazyvim=self.webpackChunklazyvim||[];f.forEach(a.bind(null,0)),f.push=a.bind(null,f.push.bind(f))})()})(); \ No newline at end of file diff --git a/babel.config.js b/babel.config.js deleted file mode 100644 index e00595dae7..0000000000 --- a/babel.config.js +++ /dev/null @@ -1,3 +0,0 @@ -module.exports = { - presets: [require.resolve('@docusaurus/core/lib/babel/preset')], -}; diff --git a/configuration.html b/configuration.html new file mode 100644 index 0000000000..b0c718f6e9 --- /dev/null +++ b/configuration.html @@ -0,0 +1,19 @@ +<!doctype html> +<html lang="en" dir="ltr" class="docs-wrapper docs-doc-page docs-version-current plugin-docs plugin-id-default docs-doc-id-configuration/index" data-has-hydrated="false"> +<head> +<meta charset="UTF-8"> +<meta name="generator" content="Docusaurus v2.4.3"> +<title data-rh="true">⚙️ Configuration | LazyVim + + + + +
+

⚙️ Configuration

📂 File Structure

The files under config will be automatically loaded at the appropriate time, +so you don't need to require those files manually. For more information, see general settings.

You can add your custom plugin specs under lua/plugins/. All files there +will be automatically loaded by lazy.nvim. +For more information, see configuring plugins.

~/.config/nvim
├── lua
│   ├── config
│   │   ├── autocmds.lua
│   │   ├── keymaps.lua
│   │   ├── lazy.lua
│   │   └── options.lua
│   └── plugins
│   ├── spec1.lua
│   ├── **
│   └── spec2.lua
└── init.lua

Icons & Colorscheme

Icons & colorscheme can be configured as options for the LazyVim plugin.

For example in lua/plugins/core.lua

return {
{
"LazyVim/LazyVim",
opts = {
colorscheme = "catppuccin",
}
}
}

Default Settings

{
-- colorscheme can be a string like `catppuccin` or a function that will load the colorscheme
---@type string|fun()
colorscheme = function()
require("tokyonight").load()
end,
-- load the default settings
defaults = {
autocmds = true, -- lazyvim.config.autocmds
keymaps = true, -- lazyvim.config.keymaps
-- lazyvim.config.options can't be configured here since that's loaded before lazyvim setup
-- if you want to disable loading options, add `package.loaded["lazyvim.config.options"] = true` to the top of your init.lua
},
news = {
-- When enabled, NEWS.md will be shown when changed.
-- This only contains big new features and breaking changes.
lazyvim = true,
-- Same but for Neovim's news.txt
neovim = false,
},
-- icons used by other plugins
icons = {
misc = {
dots = "󰇘",
},
ft = {
octo = "",
},
dap = {
Stopped = { "󰁕 ", "DiagnosticWarn", "DapStoppedLine" },
Breakpoint = " ",
BreakpointCondition = " ",
BreakpointRejected = { " ", "DiagnosticError" },
LogPoint = ".>",
},
diagnostics = {
Error = " ",
Warn = " ",
Hint = " ",
Info = " ",
},
git = {
added = " ",
modified = " ",
removed = " ",
},
kinds = {
Array = " ",
Boolean = "󰨙 ",
Class = " ",
Codeium = "󰘦 ",
Color = " ",
Control = " ",
Collapsed = " ",
Constant = "󰏿 ",
Constructor = " ",
Copilot = " ",
Enum = " ",
EnumMember = " ",
Event = " ",
Field = " ",
File = " ",
Folder = " ",
Function = "󰊕 ",
Interface = " ",
Key = " ",
Keyword = " ",
Method = "󰊕 ",
Module = " ",
Namespace = "󰦮 ",
Null = " ",
Number = "󰎠 ",
Object = " ",
Operator = " ",
Package = " ",
Property = " ",
Reference = " ",
Snippet = "󱄽 ",
String = " ",
Struct = "󰆼 ",
Supermaven = " ",
TabNine = "󰏚 ",
Text = " ",
TypeParameter = " ",
Unit = " ",
Value = " ",
Variable = "󰀫 ",
},
},
---@type table<string, string[]|boolean>?
kind_filter = {
default = {
"Class",
"Constructor",
"Enum",
"Field",
"Function",
"Interface",
"Method",
"Module",
"Namespace",
"Package",
"Property",
"Struct",
"Trait",
},
markdown = false,
help = false,
-- you can specify a different filter for each filetype
lua = {
"Class",
"Constructor",
"Enum",
"Field",
"Function",
"Interface",
"Method",
"Module",
"Namespace",
-- "Package", -- remove package since luals uses it for control flow structures
"Property",
"Struct",
"Trait",
},
},
}
+ + + + \ No newline at end of file diff --git a/configuration/examples.html b/configuration/examples.html new file mode 100644 index 0000000000..8532d4e37f --- /dev/null +++ b/configuration/examples.html @@ -0,0 +1,16 @@ + + + + + +Examples | LazyVim + + + + +
+

Examples

-- every spec file under the "plugins" directory will be loaded automatically by lazy.nvim
--
-- In your plugin files, you can:
-- * add extra plugins
-- * disable/enabled LazyVim plugins
-- * override the configuration of LazyVim plugins
return {
-- add gruvbox
{ "ellisonleao/gruvbox.nvim" },

-- Configure LazyVim to load gruvbox
{
"LazyVim/LazyVim",
opts = {
colorscheme = "gruvbox",
},
},

-- change trouble config
{
"folke/trouble.nvim",
-- opts will be merged with the parent spec
opts = { use_diagnostic_signs = true },
},

-- disable trouble
{ "folke/trouble.nvim", enabled = false },

-- override nvim-cmp and add cmp-emoji
{
"hrsh7th/nvim-cmp",
dependencies = { "hrsh7th/cmp-emoji" },
---@param opts cmp.ConfigSchema
opts = function(_, opts)
table.insert(opts.sources, { name = "emoji" })
end,
},

-- change some telescope options and a keymap to browse plugin files
{
"nvim-telescope/telescope.nvim",
keys = {
-- add a keymap to browse plugin files
-- stylua: ignore
{
"<leader>fp",
function() require("telescope.builtin").find_files({ cwd = require("lazy.core.config").options.root }) end,
desc = "Find Plugin File",
},
},
-- change some options
opts = {
defaults = {
layout_strategy = "horizontal",
layout_config = { prompt_position = "top" },
sorting_strategy = "ascending",
winblend = 0,
},
},
},

-- add pyright to lspconfig
{
"neovim/nvim-lspconfig",
---@class PluginLspOpts
opts = {
---@type lspconfig.options
servers = {
-- pyright will be automatically installed with mason and loaded with lspconfig
pyright = {},
},
},
},

-- add tsserver and setup with typescript.nvim instead of lspconfig
{
"neovim/nvim-lspconfig",
dependencies = {
"jose-elias-alvarez/typescript.nvim",
init = function()
require("lazyvim.util").lsp.on_attach(function(_, buffer)
-- stylua: ignore
vim.keymap.set( "n", "<leader>co", "TypescriptOrganizeImports", { buffer = buffer, desc = "Organize Imports" })
vim.keymap.set("n", "<leader>cR", "TypescriptRenameFile", { desc = "Rename File", buffer = buffer })
end)
end,
},
---@class PluginLspOpts
opts = {
---@type lspconfig.options
servers = {
-- tsserver will be automatically installed with mason and loaded with lspconfig
tsserver = {},
},
-- you can do any additional lsp server setup here
-- return true if you don't want this server to be setup with lspconfig
---@type table<string, fun(server:string, opts:_.lspconfig.options):boolean?>
setup = {
-- example to setup with typescript.nvim
tsserver = function(_, opts)
require("typescript").setup({ server = opts })
return true
end,
-- Specify * to use this function as a fallback for any server
-- ["*"] = function(server, opts) end,
},
},
},

-- for typescript, LazyVim also includes extra specs to properly setup lspconfig,
-- treesitter, mason and typescript.nvim. So instead of the above, you can use:
{ import = "lazyvim.plugins.extras.lang.typescript" },

-- add more treesitter parsers
{
"nvim-treesitter/nvim-treesitter",
opts = {
ensure_installed = {
"bash",
"html",
"javascript",
"json",
"lua",
"markdown",
"markdown_inline",
"python",
"query",
"regex",
"tsx",
"typescript",
"vim",
"yaml",
},
},
},

-- since `vim.tbl_deep_extend`, can only merge tables and not lists, the code above
-- would overwrite `ensure_installed` with the new value.
-- If you'd rather extend the default config, use the code below instead:
{
"nvim-treesitter/nvim-treesitter",
opts = function(_, opts)
-- add tsx and treesitter
vim.list_extend(opts.ensure_installed, {
"tsx",
"typescript",
})
end,
},

-- the opts function can also be used to change the default opts:
{
"nvim-lualine/lualine.nvim",
event = "VeryLazy",
opts = function(_, opts)
table.insert(opts.sections.lualine_x, {
function()
return "😄"
end,
})
end,
},

-- or you can return new options to override all the defaults
{
"nvim-lualine/lualine.nvim",
event = "VeryLazy",
opts = function()
return {
--[[add your custom lualine config here]]
}
end,
},

-- use mini.starter instead of alpha
{ import = "lazyvim.plugins.extras.ui.mini-starter" },

-- add jsonls and schemastore packages, and setup treesitter for json, json5 and jsonc
{ import = "lazyvim.plugins.extras.lang.json" },

-- add any tools you want to have installed below
{
"williamboman/mason.nvim",
opts = {
ensure_installed = {
"stylua",
"shellcheck",
"shfmt",
"flake8",
},
},
},
}
+ + + + \ No newline at end of file diff --git a/configuration/general.html b/configuration/general.html new file mode 100644 index 0000000000..be4c602d5f --- /dev/null +++ b/configuration/general.html @@ -0,0 +1,20 @@ + + + + + +General Settings | LazyVim + + + + +
+

General Settings

The files autocmds.lua, keymaps.lua, lazy.lua and options.lua under lua/config will be automatically loaded at the appropriate time, +so you don't need to require those files manually. +LazyVim comes with a set of default config files that will be loaded +before your own.

~/.config/nvim
├── lua
│   ├── config
│   │   ├── autocmds.lua
│   │   ├── keymaps.lua
│   │   ├── lazy.lua
│   │   └── options.lua
│   └── plugins
│   ├── spec1.lua
│   ├── **
│   └── spec2.lua
└── init.lua
danger

Do not require autocmds, keymaps, lazy or options under lua/config/ or lazyvim.config manually. +LazyVim will load those files automatically.

Options

lua/config/options.lua
-- Options are automatically loaded before lazy.nvim startup
-- Default options that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/options.lua
-- Add any additional options here

Keymaps

lua/config/keymaps.lua
-- Keymaps are automatically loaded on the VeryLazy event
-- Default keymaps that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/keymaps.lua
-- Add any additional keymaps here

Auto Commands

lua/config/autocmds.lua
-- Autocmds are automatically loaded on the VeryLazy event
-- Default autocmds that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/autocmds.lua
--
-- Add any additional autocmds here
-- with `vim.api.nvim_create_autocmd`
--
-- Or remove existing autocmds by their group name (which is prefixed with `lazyvim_` for the defaults)
-- e.g. vim.api.nvim_del_augroup_by_name("lazyvim_wrap_spell")

+ + + + \ No newline at end of file diff --git a/configuration/keymaps.html b/configuration/keymaps.html new file mode 100644 index 0000000000..053f3a76e6 --- /dev/null +++ b/configuration/keymaps.html @@ -0,0 +1,22 @@ + + + + + +Keymaps | LazyVim + + + + +
+

Keymaps

LazyVim provides multiple ways to configure keymaps. +If you want to override an existing mapping, make sure to +disable it first in the correct place.

Global keymaps

Global keymaps are keymaps that are always active. +You can configure them in your lua/config/keymaps.lua file. +Default LazyVim keymaps can be deleted with vim.keymap.del.

Plugin keymaps

For more info on configuring plugin keymaps, see Adding & Disabling Plugin Keymaps

LSP keymaps

These are the default keymaps that will be added when an LSP server is attached to the current buffer. +For more info see Customizing LSP Keymaps

LSP Server keymaps

Sometimes it may be necessary to add keymaps for a specific LSP server. +Lazyutils provides a keys LSP option for this purpose.

{
"neovim/nvim-lspconfig",
opts = {
servers = {
tsserver = {
keys = {
{ "<leader>co", "<cmd>TypescriptOrganizeImports<CR>", desc = "Organize Imports" },
{ "<leader>cR", "<cmd>TypescriptRenameFile<CR>", desc = "Rename File" },
},
},
},
},
}
+ + + + \ No newline at end of file diff --git a/configuration/lazy.nvim.html b/configuration/lazy.nvim.html new file mode 100644 index 0000000000..8279433759 --- /dev/null +++ b/configuration/lazy.nvim.html @@ -0,0 +1,25 @@ + + + + + +lazy.nvim | LazyVim + + + + +
+

lazy.nvim

The starter includes a pre-configured lazy.nvim +setup that installs the LazyVim plugin and imports its plugins.

tip

The version for lazy.nvim and LazyVim will default to the latest +stable release.

If you'd rather use the latest development version, add the code below +to your specs:

lua/plugins/core.lua
return {
{ "folke/lazy.nvim", version = false },
{ "LazyVim/LazyVim", version = false },
}
caution

lazy.nvim can be configured to always try to use the latest stable version +of a plugin, if a plugin has releases.

However, it's recommended to leave version=false for now, since a lot +the plugins that support versioning, have outdated releases, which may break +your Neovim install.

If you still want to try using the latest stable releases, you can set +config.defaults.version = "*"

Some plugins that are known to break with their outdated release will still +be forced to install the latest development version. To override that, specify +version="*" for those plugins. (see the LazyVim code)

lua/config/lazy.lua
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
if not (vim.uv or vim.loop).fs_stat(lazypath) then
local lazyrepo = "https://github.com/folke/lazy.nvim.git"
local out = vim.fn.system({ "git", "clone", "--filter=blob:none", "--branch=stable", lazyrepo, lazypath })
if vim.v.shell_error ~= 0 then
vim.api.nvim_echo({
{ "Failed to clone lazy.nvim:\n", "ErrorMsg" },
{ out, "WarningMsg" },
{ "\nPress any key to exit..." },
}, true, {})
vim.fn.getchar()
os.exit(1)
end
end
vim.opt.rtp:prepend(lazypath)

require("lazy").setup({
spec = {
-- add LazyVim and import its plugins
{ "LazyVim/LazyVim", import = "lazyvim.plugins" },
-- import/override with your plugins
{ import = "plugins" },
},
defaults = {
-- By default, only LazyVim plugins will be lazy-loaded. Your custom plugins will load during startup.
-- If you know what you're doing, you can set this to `true` to have all your custom plugins lazy-loaded by default.
lazy = false,
-- It's recommended to leave version=false for now, since a lot the plugin that support versioning,
-- have outdated releases, which may break your Neovim install.
version = false, -- always use the latest git commit
-- version = "*", -- try installing the latest stable version for plugins that support semver
},
install = { colorscheme = { "tokyonight", "habamax" } },
checker = {
enabled = true, -- check for plugin updates periodically
notify = false, -- notify on update
}, -- automatically check for plugin updates
performance = {
rtp = {
-- disable some rtp plugins
disabled_plugins = {
"gzip",
-- "matchit",
-- "matchparen",
-- "netrwPlugin",
"tarPlugin",
"tohtml",
"tutor",
"zipPlugin",
},
},
},
})

+ + + + \ No newline at end of file diff --git a/configuration/plugins.html b/configuration/plugins.html new file mode 100644 index 0000000000..7b5422b5de --- /dev/null +++ b/configuration/plugins.html @@ -0,0 +1,25 @@ + + + + + +Plugins | LazyVim + + + + +
+

Plugins

Configuring LazyVim plugins is exactly the same as using lazy.nvim to build +a config from scratch.

For the full plugin spec documentation please check the lazy.nvim +readme.

Refer to the plugins section in the sidebar for configuring +included plugins.

➕ Adding Plugins

Adding a plugin is as simple as adding the plugin spec to one of the files +under lua/plugins/*.lua. You can create as many files there as you want.

You can structure your lua/plugins folder with a file per plugin, +or a separate file containing all the plugin specs for some functionality.

lua/plugins/lsp.lua
return {
-- add symbols-outline
{
"simrat39/symbols-outline.nvim",
cmd = "SymbolsOutline",
keys = { { "<leader>cs", "<cmd>SymbolsOutline<cr>", desc = "Symbols Outline" } },
opts = {
-- add your options that should be passed to the setup() function here
position = "right",
},
},
}

❌ Disabling Plugins

In order to disable a plugin, add a spec with enabled=false

lua/plugins/disabled.lua
return {
-- disable trouble
{ "folke/trouble.nvim", enabled = false },
}

✏️ Customizing Plugin Specs

Defaults merging rules:

  • cmd: the list of commands will be extended with your custom commands
  • event: the list of events will be extended with your custom events
  • ft: the list of filetypes will be extended with your custom filetypes
  • keys: the list of keymaps will be extended with your custom keymaps
  • opts: your custom opts will be merged with the default opts
  • dependencies: the list of dependencies will be extended with your custom dependencies
  • any other property will override the defaults

For ft, event, keys, cmd and opts you can instead also specify a values function +that can make changes to the default values, or return new values to be used instead.

return {
-- change trouble config
{
"folke/trouble.nvim",
-- opts will be merged with the parent spec
opts = { use_diagnostic_signs = true },
}

-- add cmp-emoji
{
"hrsh7th/nvim-cmp",
dependencies = { "hrsh7th/cmp-emoji" },
---@param opts cmp.ConfigSchema
opts = function(_, opts)
table.insert(opts.sources, { name = "emoji" })
end,
}
}

⌨️ Adding & Disabling Plugin Keymaps

Adding keys= follows the rules as explained above.

You can also disable a default keymap by setting it to false. +To override a keymap, simply add one with the same lhs and a new rhs.

lua/plugins/telescope.lua
return {
"nvim-telescope/telescope.nvim",
keys = {
-- disable the keymap to grep files
{"<leader>/", false},
-- change a keymap
{ "<leader>ff", "<cmd>Telescope find_files<cr>", desc = "Find Files" },
-- add a keymap to browse plugin files
{
"<leader>fp",
function() require("telescope.builtin").find_files({ cwd = require("lazy.core.config").options.root }) end,
desc = "Find Plugin File",
},
},
},
caution

Make sure to use the exact same mode as the keymap you want to disable. +You don't have to specify a mode for normal mode keymaps.

lua/plugins/flash.lua
return {
"folke/flash.nvim",
keys = {
-- disable the default flash keymap
{ "s", mode = { "n", "x", "o" }, false },
},
}

You can also return a whole new set of keymaps to be used instead. +Or return {} to disable all keymaps for a plugin.

lua/plugins/telescope.lua
return {
"nvim-telescope/telescope.nvim",
-- replace all Telescope keymaps with only one mapping
keys = function()
return {
{ "<leader>ff", "<cmd>Telescope find_files<cr>", desc = "Find Files" },
}
end,
},
+ + + + \ No newline at end of file diff --git a/configuration/recipes.html b/configuration/recipes.html new file mode 100644 index 0000000000..6a1cf0eecc --- /dev/null +++ b/configuration/recipes.html @@ -0,0 +1,21 @@ + + + + + +Recipes | LazyVim + + + + +
+

Recipes

Add a nvim-cmp source

override nvim-cmp and add cmp-emoji

{
"hrsh7th/nvim-cmp",
dependencies = { "hrsh7th/cmp-emoji" },
---@param opts cmp.ConfigSchema
opts = function(_, opts)
table.insert(opts.sources, { name = "emoji" })
end,
}

Supertab

Use <tab> for completion and snippets (supertab).

{
"hrsh7th/nvim-cmp",
---@param opts cmp.ConfigSchema
opts = function(_, opts)
local has_words_before = function()
unpack = unpack or table.unpack
local line, col = unpack(vim.api.nvim_win_get_cursor(0))
return col ~= 0 and vim.api.nvim_buf_get_lines(0, line - 1, line, true)[1]:sub(col, col):match("%s") == nil
end

local cmp = require("cmp")

opts.mapping = vim.tbl_extend("force", opts.mapping, {
["<Tab>"] = cmp.mapping(function(fallback)
if cmp.visible() then
-- You could replace select_next_item() with confirm({ select = true }) to get VS Code autocompletion behavior
cmp.select_next_item()
elseif vim.snippet.active({ direction = 1 }) then
vim.schedule(function()
vim.snippet.jump(1)
end)
elseif has_words_before() then
cmp.complete()
else
fallback()
end
end, { "i", "s" }),
["<S-Tab>"] = cmp.mapping(function(fallback)
if cmp.visible() then
cmp.select_prev_item()
elseif vim.snippet.active({ direction = -1 }) then
vim.schedule(function()
vim.snippet.jump(-1)
end)
else
fallback()
end
end, { "i", "s" }),
})
end,
}

Change surround mappings

{
"echasnovski/mini.surround",
opts = {
mappings = {
add = "gsa",
delete = "gsd",
find = "gsf",
find_left = "gsF",
highlight = "gsh",
replace = "gsr",
update_n_lines = "gsn",
},
},
}

Make TokyoNight Transparent

{
"folke/tokyonight.nvim",
opts = {
transparent = true,
styles = {
sidebars = "transparent",
floats = "transparent",
},
},
}

Fix clangd offset encoding

{
"neovim/nvim-lspconfig",
opts = {
setup = {
clangd = function(_, opts)
opts.capabilities.offsetEncoding = { "utf-16" }
end,
},
},
}

Use Eslint for fix on save and prettier for formatting

The recommended setup to +integrate prettier with linters is to not integrate it with eslint. +For this config, we have two extras, to enable eslint fix on save and enable the prettier +formatter with null-ls.

Add the below to your lua/config/lazy.lua file

{
{ import = "lazyvim.plugins.extras.linting.eslint" },
{ import = "lazyvim.plugins.extras.formatting.prettier" },
}

Add Eslint and use it for formatting

If your project is using eslint with eslint-plugin-prettier, +then this will automatically fix eslint errors and format with prettier on save. +Important: make sure not to add prettier to null-ls, otherwise this won't work!

{
"neovim/nvim-lspconfig",
opts = {
servers = { eslint = {} },
setup = {
eslint = function()
require("lazyvim.util").lsp.on_attach(function(client)
if client.name == "eslint" then
client.server_capabilities.documentFormattingProvider = true
elseif client.name == "tsserver" then
client.server_capabilities.documentFormattingProvider = false
end
end)
end,
},
},
}
+ + + + \ No newline at end of file diff --git a/configuration/tips.html b/configuration/tips.html new file mode 100644 index 0000000000..d149cb46a1 --- /dev/null +++ b/configuration/tips.html @@ -0,0 +1,18 @@ + + + + + +Tips | LazyVim + + + + +
+

Tips

  • Use H and L if the buffer you want to go to is visually close to where you are
  • Otherwise, if the buffer is open, use <leader>,
  • For other files, use <leader><space>
  • Close buffers you no longer need with <leader>bd
  • <leader>ss to quickly jump to a function in the buffer you're on
  • <c-o>, <c-i> and gd to navigate the code
  • You can pin buffers with <leader>bp and delete all non pinned buffers with <leader>bP
  • Add TODOs in files you want to work on in future but don't need now and delete their buffers, git will track them

Disable autoformat for some buffers

If you want to disable autoformat for a certain buffer, then +set vim.b.autoformat = false for that buffer.

lua/config/autocmds.lua
-- Disable autoformat for lua files
vim.api.nvim_create_autocmd({ "FileType" }, {
pattern = { "lua" },
callback = function()
vim.b.autoformat = false
end,
})

If you change your mind you can do <leader>uf to enable autoformat +anyway for that buffer.

+ + + + \ No newline at end of file diff --git a/docs/configuration/_category_.yml b/docs/configuration/_category_.yml deleted file mode 100644 index 3b0fd4146d..0000000000 --- a/docs/configuration/_category_.yml +++ /dev/null @@ -1 +0,0 @@ -position: 4 diff --git a/docs/configuration/examples.md b/docs/configuration/examples.md deleted file mode 100644 index e6e35290d8..0000000000 --- a/docs/configuration/examples.md +++ /dev/null @@ -1,205 +0,0 @@ ---- -sidebar_position: 5 ---- - -# Examples - - - -```lua --- every spec file under the "plugins" directory will be loaded automatically by lazy.nvim --- --- In your plugin files, you can: --- * add extra plugins --- * disable/enabled LazyVim plugins --- * override the configuration of LazyVim plugins -return { - -- add gruvbox - { "ellisonleao/gruvbox.nvim" }, - - -- Configure LazyVim to load gruvbox - { - "LazyVim/LazyVim", - opts = { - colorscheme = "gruvbox", - }, - }, - - -- change trouble config - { - "folke/trouble.nvim", - -- opts will be merged with the parent spec - opts = { use_diagnostic_signs = true }, - }, - - -- disable trouble - { "folke/trouble.nvim", enabled = false }, - - -- override nvim-cmp and add cmp-emoji - { - "hrsh7th/nvim-cmp", - dependencies = { "hrsh7th/cmp-emoji" }, - ---@param opts cmp.ConfigSchema - opts = function(_, opts) - table.insert(opts.sources, { name = "emoji" }) - end, - }, - - -- change some telescope options and a keymap to browse plugin files - { - "nvim-telescope/telescope.nvim", - keys = { - -- add a keymap to browse plugin files - -- stylua: ignore - { - "fp", - function() require("telescope.builtin").find_files({ cwd = require("lazy.core.config").options.root }) end, - desc = "Find Plugin File", - }, - }, - -- change some options - opts = { - defaults = { - layout_strategy = "horizontal", - layout_config = { prompt_position = "top" }, - sorting_strategy = "ascending", - winblend = 0, - }, - }, - }, - - -- add pyright to lspconfig - { - "neovim/nvim-lspconfig", - ---@class PluginLspOpts - opts = { - ---@type lspconfig.options - servers = { - -- pyright will be automatically installed with mason and loaded with lspconfig - pyright = {}, - }, - }, - }, - - -- add tsserver and setup with typescript.nvim instead of lspconfig - { - "neovim/nvim-lspconfig", - dependencies = { - "jose-elias-alvarez/typescript.nvim", - init = function() - require("lazyvim.util").lsp.on_attach(function(_, buffer) - -- stylua: ignore - vim.keymap.set( "n", "co", "TypescriptOrganizeImports", { buffer = buffer, desc = "Organize Imports" }) - vim.keymap.set("n", "cR", "TypescriptRenameFile", { desc = "Rename File", buffer = buffer }) - end) - end, - }, - ---@class PluginLspOpts - opts = { - ---@type lspconfig.options - servers = { - -- tsserver will be automatically installed with mason and loaded with lspconfig - tsserver = {}, - }, - -- you can do any additional lsp server setup here - -- return true if you don't want this server to be setup with lspconfig - ---@type table - setup = { - -- example to setup with typescript.nvim - tsserver = function(_, opts) - require("typescript").setup({ server = opts }) - return true - end, - -- Specify * to use this function as a fallback for any server - -- ["*"] = function(server, opts) end, - }, - }, - }, - - -- for typescript, LazyVim also includes extra specs to properly setup lspconfig, - -- treesitter, mason and typescript.nvim. So instead of the above, you can use: - { import = "lazyvim.plugins.extras.lang.typescript" }, - - -- add more treesitter parsers - { - "nvim-treesitter/nvim-treesitter", - opts = { - ensure_installed = { - "bash", - "html", - "javascript", - "json", - "lua", - "markdown", - "markdown_inline", - "python", - "query", - "regex", - "tsx", - "typescript", - "vim", - "yaml", - }, - }, - }, - - -- since `vim.tbl_deep_extend`, can only merge tables and not lists, the code above - -- would overwrite `ensure_installed` with the new value. - -- If you'd rather extend the default config, use the code below instead: - { - "nvim-treesitter/nvim-treesitter", - opts = function(_, opts) - -- add tsx and treesitter - vim.list_extend(opts.ensure_installed, { - "tsx", - "typescript", - }) - end, - }, - - -- the opts function can also be used to change the default opts: - { - "nvim-lualine/lualine.nvim", - event = "VeryLazy", - opts = function(_, opts) - table.insert(opts.sections.lualine_x, { - function() - return "😄" - end, - }) - end, - }, - - -- or you can return new options to override all the defaults - { - "nvim-lualine/lualine.nvim", - event = "VeryLazy", - opts = function() - return { - --[[add your custom lualine config here]] - } - end, - }, - - -- use mini.starter instead of alpha - { import = "lazyvim.plugins.extras.ui.mini-starter" }, - - -- add jsonls and schemastore packages, and setup treesitter for json, json5 and jsonc - { import = "lazyvim.plugins.extras.lang.json" }, - - -- add any tools you want to have installed below - { - "williamboman/mason.nvim", - opts = { - ensure_installed = { - "stylua", - "shellcheck", - "shfmt", - "flake8", - }, - }, - }, -} -``` - - diff --git a/docs/configuration/general.md b/docs/configuration/general.md deleted file mode 100644 index a00b38309d..0000000000 --- a/docs/configuration/general.md +++ /dev/null @@ -1,561 +0,0 @@ ---- -sidebar_position: 2 ---- - -# General Settings - -The files `autocmds.lua`, `keymaps.lua`, `lazy.lua` and `options.lua` under `lua/config` will be automatically loaded at the appropriate time, -so you don't need to require those files manually. -**LazyVim** comes with a set of default config files that will be loaded -**_before_** your own. - -```text {4-7} -~/.config/nvim -├── lua -│   ├── config -│   │   ├── autocmds.lua -│   │   ├── keymaps.lua -│   │   ├── lazy.lua -│   │   └── options.lua -│   └── plugins -│   ├── spec1.lua -│   ├── ** -│   └── spec2.lua -└── init.lua -``` - -:::danger -Do not `require` `autocmds`, `keymaps`, `lazy` or `options` under `lua/config/` or `lazyvim.config` manually. -**LazyVim** will load those files automatically. -::: - - - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -## Options - - - - -```lua title="lua/config/options.lua" --- Options are automatically loaded before lazy.nvim startup --- Default options that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/options.lua --- Add any additional options here - -``` - - - - -```lua title="lazyvim.config.options" --- This file is automatically loaded by plugins.core -vim.g.mapleader = " " -vim.g.maplocalleader = "\\" - --- LazyVim auto format -vim.g.autoformat = true - --- Snacks animations --- Set to `false` to globally disable all snacks animations -vim.g.snacks_animate = true - --- LazyVim picker to use. --- Can be one of: telescope, fzf --- Leave it to "auto" to automatically use the picker --- enabled with `:LazyExtras` -vim.g.lazyvim_picker = "auto" - --- LazyVim completion engine to use. --- Can be one of: nvim-cmp, blink.cmp --- Leave it to "auto" to automatically use the completion engine --- enabled with `:LazyExtras` -vim.g.lazyvim_cmp = "auto" - --- if the completion engine supports the AI source, --- use that instead of inline suggestions -vim.g.ai_cmp = true - --- LazyVim root dir detection --- Each entry can be: --- * the name of a detector function like `lsp` or `cwd` --- * a pattern or array of patterns like `.git` or `lua`. --- * a function with signature `function(buf) -> string|string[]` -vim.g.root_spec = { "lsp", { ".git", "lua" }, "cwd" } - --- Optionally setup the terminal to use --- This sets `vim.o.shell` and does some additional configuration for: --- * pwsh --- * powershell --- LazyVim.terminal.setup("pwsh") - --- Set LSP servers to be ignored when used with `util.root.detectors.lsp` --- for detecting the LSP root -vim.g.root_lsp_ignore = { "copilot" } - --- Hide deprecation warnings -vim.g.deprecation_warnings = false - --- Show the current document symbols location from Trouble in lualine --- You can disable this for a buffer by setting `vim.b.trouble_lualine = false` -vim.g.trouble_lualine = true - -local opt = vim.opt - -opt.autowrite = true -- Enable auto write --- only set clipboard if not in ssh, to make sure the OSC 52 --- integration works automatically. -opt.clipboard = vim.env.SSH_CONNECTION and "" or "unnamedplus" -- Sync with system clipboard -opt.completeopt = "menu,menuone,noselect" -opt.conceallevel = 2 -- Hide * markup for bold and italic, but not markers with substitutions -opt.confirm = true -- Confirm to save changes before exiting modified buffer -opt.cursorline = true -- Enable highlighting of the current line -opt.expandtab = true -- Use spaces instead of tabs -opt.fillchars = { - foldopen = "", - foldclose = "", - fold = " ", - foldsep = " ", - diff = "╱", - eob = " ", -} -opt.foldlevel = 99 -opt.foldmethod = "indent" -opt.foldtext = "" -opt.formatexpr = "v:lua.LazyVim.format.formatexpr()" -opt.formatoptions = "jcroqlnt" -- tcqj -opt.grepformat = "%f:%l:%c:%m" -opt.grepprg = "rg --vimgrep" -opt.ignorecase = true -- Ignore case -opt.inccommand = "nosplit" -- preview incremental substitute -opt.jumpoptions = "view" -opt.laststatus = 3 -- global statusline -opt.linebreak = true -- Wrap lines at convenient points -opt.list = true -- Show some invisible characters (tabs... -opt.mouse = "a" -- Enable mouse mode -opt.number = true -- Print line number -opt.pumblend = 10 -- Popup blend -opt.pumheight = 10 -- Maximum number of entries in a popup -opt.relativenumber = true -- Relative line numbers -opt.ruler = false -- Disable the default ruler -opt.scrolloff = 4 -- Lines of context -opt.sessionoptions = { "buffers", "curdir", "tabpages", "winsize", "help", "globals", "skiprtp", "folds" } -opt.shiftround = true -- Round indent -opt.shiftwidth = 2 -- Size of an indent -opt.shortmess:append({ W = true, I = true, c = true, C = true }) -opt.showmode = false -- Dont show mode since we have a statusline -opt.sidescrolloff = 8 -- Columns of context -opt.signcolumn = "yes" -- Always show the signcolumn, otherwise it would shift the text each time -opt.smartcase = true -- Don't ignore case with capitals -opt.smartindent = true -- Insert indents automatically -opt.smoothscroll = true -opt.spelllang = { "en" } -opt.splitbelow = true -- Put new windows below current -opt.splitkeep = "screen" -opt.splitright = true -- Put new windows right of current -opt.statuscolumn = [[%!v:lua.LazyVim.statuscolumn()]] -opt.tabstop = 2 -- Number of spaces tabs count for -opt.termguicolors = true -- True color support -opt.timeoutlen = vim.g.vscode and 1000 or 300 -- Lower than default (1000) to quickly trigger which-key -opt.undofile = true -opt.undolevels = 10000 -opt.updatetime = 200 -- Save swap file and trigger CursorHold -opt.virtualedit = "block" -- Allow cursor to move where there is no text in visual block mode -opt.wildmode = "longest:full,full" -- Command-line completion mode -opt.winminwidth = 5 -- Minimum window width -opt.wrap = false -- Disable line wrap - --- Fix markdown indentation settings -vim.g.markdown_recommended_style = 0 - -``` - - - - -## Keymaps - - - - -```lua title="lua/config/keymaps.lua" --- Keymaps are automatically loaded on the VeryLazy event --- Default keymaps that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/keymaps.lua --- Add any additional keymaps here - -``` - - - - -```lua title="lazyvim.config.keymaps" --- This file is automatically loaded by lazyvim.config.init - --- DO NOT USE `LazyVim.safe_keymap_set` IN YOUR OWN CONFIG!! --- use `vim.keymap.set` instead -local map = LazyVim.safe_keymap_set - --- better up/down -map({ "n", "x" }, "j", "v:count == 0 ? 'gj' : 'j'", { desc = "Down", expr = true, silent = true }) -map({ "n", "x" }, "", "v:count == 0 ? 'gj' : 'j'", { desc = "Down", expr = true, silent = true }) -map({ "n", "x" }, "k", "v:count == 0 ? 'gk' : 'k'", { desc = "Up", expr = true, silent = true }) -map({ "n", "x" }, "", "v:count == 0 ? 'gk' : 'k'", { desc = "Up", expr = true, silent = true }) - --- Move to window using the hjkl keys -map("n", "", "h", { desc = "Go to Left Window", remap = true }) -map("n", "", "j", { desc = "Go to Lower Window", remap = true }) -map("n", "", "k", { desc = "Go to Upper Window", remap = true }) -map("n", "", "l", { desc = "Go to Right Window", remap = true }) - --- Resize window using arrow keys -map("n", "", "resize +2", { desc = "Increase Window Height" }) -map("n", "", "resize -2", { desc = "Decrease Window Height" }) -map("n", "", "vertical resize -2", { desc = "Decrease Window Width" }) -map("n", "", "vertical resize +2", { desc = "Increase Window Width" }) - --- Move Lines -map("n", "", "execute 'move .+' . v:count1==", { desc = "Move Down" }) -map("n", "", "execute 'move .-' . (v:count1 + 1)==", { desc = "Move Up" }) -map("i", "", "m .+1==gi", { desc = "Move Down" }) -map("i", "", "m .-2==gi", { desc = "Move Up" }) -map("v", "", ":execute \"'<,'>move '>+\" . v:count1gv=gv", { desc = "Move Down" }) -map("v", "", ":execute \"'<,'>move '<-\" . (v:count1 + 1)gv=gv", { desc = "Move Up" }) - --- buffers -map("n", "", "bprevious", { desc = "Prev Buffer" }) -map("n", "", "bnext", { desc = "Next Buffer" }) -map("n", "[b", "bprevious", { desc = "Prev Buffer" }) -map("n", "]b", "bnext", { desc = "Next Buffer" }) -map("n", "bb", "e #", { desc = "Switch to Other Buffer" }) -map("n", "`", "e #", { desc = "Switch to Other Buffer" }) -map("n", "bd", function() - Snacks.bufdelete() -end, { desc = "Delete Buffer" }) -map("n", "bo", function() - Snacks.bufdelete.other() -end, { desc = "Delete Other Buffers" }) -map("n", "bD", ":bd", { desc = "Delete Buffer and Window" }) - --- Clear search and stop snippet on escape -map({ "i", "n", "s" }, "", function() - vim.cmd("noh") - LazyVim.cmp.actions.snippet_stop() - return "" -end, { expr = true, desc = "Escape and Clear hlsearch" }) - --- Clear search, diff update and redraw --- taken from runtime/lua/_editor.lua -map( - "n", - "ur", - "nohlsearchdiffupdatenormal! ", - { desc = "Redraw / Clear hlsearch / Diff Update" } -) - --- https://github.com/mhinz/vim-galore#saner-behavior-of-n-and-n -map("n", "n", "'Nn'[v:searchforward].'zv'", { expr = true, desc = "Next Search Result" }) -map("x", "n", "'Nn'[v:searchforward]", { expr = true, desc = "Next Search Result" }) -map("o", "n", "'Nn'[v:searchforward]", { expr = true, desc = "Next Search Result" }) -map("n", "N", "'nN'[v:searchforward].'zv'", { expr = true, desc = "Prev Search Result" }) -map("x", "N", "'nN'[v:searchforward]", { expr = true, desc = "Prev Search Result" }) -map("o", "N", "'nN'[v:searchforward]", { expr = true, desc = "Prev Search Result" }) - --- Add undo break-points -map("i", ",", ",u") -map("i", ".", ".u") -map("i", ";", ";u") - --- save file -map({ "i", "x", "n", "s" }, "", "w", { desc = "Save File" }) - ---keywordprg -map("n", "K", "norm! K", { desc = "Keywordprg" }) - --- better indenting -map("x", "<", "", ">gv") - --- commenting -map("n", "gco", "oVcxnormal gccfxa", { desc = "Add Comment Below" }) -map("n", "gcO", "OVcxnormal gccfxa", { desc = "Add Comment Above" }) - --- lazy -map("n", "l", "Lazy", { desc = "Lazy" }) - --- new file -map("n", "fn", "enew", { desc = "New File" }) - --- location list -map("n", "xl", function() - local success, err = pcall(vim.fn.getloclist(0, { winid = 0 }).winid ~= 0 and vim.cmd.lclose or vim.cmd.lopen) - if not success and err then - vim.notify(err, vim.log.levels.ERROR) - end -end, { desc = "Location List" }) - --- quickfix list -map("n", "xq", function() - local success, err = pcall(vim.fn.getqflist({ winid = 0 }).winid ~= 0 and vim.cmd.cclose or vim.cmd.copen) - if not success and err then - vim.notify(err, vim.log.levels.ERROR) - end -end, { desc = "Quickfix List" }) - -map("n", "[q", vim.cmd.cprev, { desc = "Previous Quickfix" }) -map("n", "]q", vim.cmd.cnext, { desc = "Next Quickfix" }) - --- formatting -map({ "n", "x" }, "cf", function() - LazyVim.format({ force = true }) -end, { desc = "Format" }) - --- diagnostic -local diagnostic_goto = function(next, severity) - return function() - vim.diagnostic.jump({ - count = (next and 1 or -1) * vim.v.count1, - severity = severity and vim.diagnostic.severity[severity] or nil, - float = true, - }) - end -end -map("n", "cd", vim.diagnostic.open_float, { desc = "Line Diagnostics" }) -map("n", "]d", diagnostic_goto(true), { desc = "Next Diagnostic" }) -map("n", "[d", diagnostic_goto(false), { desc = "Prev Diagnostic" }) -map("n", "]e", diagnostic_goto(true, "ERROR"), { desc = "Next Error" }) -map("n", "[e", diagnostic_goto(false, "ERROR"), { desc = "Prev Error" }) -map("n", "]w", diagnostic_goto(true, "WARN"), { desc = "Next Warning" }) -map("n", "[w", diagnostic_goto(false, "WARN"), { desc = "Prev Warning" }) - --- stylua: ignore start - --- toggle options -LazyVim.format.snacks_toggle():map("uf") -LazyVim.format.snacks_toggle(true):map("uF") -Snacks.toggle.option("spell", { name = "Spelling" }):map("us") -Snacks.toggle.option("wrap", { name = "Wrap" }):map("uw") -Snacks.toggle.option("relativenumber", { name = "Relative Number" }):map("uL") -Snacks.toggle.diagnostics():map("ud") -Snacks.toggle.line_number():map("ul") -Snacks.toggle.option("conceallevel", { off = 0, on = vim.o.conceallevel > 0 and vim.o.conceallevel or 2, name = "Conceal Level" }):map("uc") -Snacks.toggle.option("showtabline", { off = 0, on = vim.o.showtabline > 0 and vim.o.showtabline or 2, name = "Tabline" }):map("uA") -Snacks.toggle.treesitter():map("uT") -Snacks.toggle.option("background", { off = "light", on = "dark" , name = "Dark Background" }):map("ub") -Snacks.toggle.dim():map("uD") -Snacks.toggle.animate():map("ua") -Snacks.toggle.indent():map("ug") -Snacks.toggle.scroll():map("uS") -Snacks.toggle.profiler():map("dpp") -Snacks.toggle.profiler_highlights():map("dph") - -if vim.lsp.inlay_hint then - Snacks.toggle.inlay_hints():map("uh") -end - --- lazygit -if vim.fn.executable("lazygit") == 1 then - map("n", "gg", function() Snacks.lazygit( { cwd = LazyVim.root.git() }) end, { desc = "Lazygit (Root Dir)" }) - map("n", "gG", function() Snacks.lazygit() end, { desc = "Lazygit (cwd)" }) -end - -map("n", "gL", function() Snacks.picker.git_log() end, { desc = "Git Log (cwd)" }) -map("n", "gb", function() Snacks.picker.git_log_line() end, { desc = "Git Blame Line" }) -map("n", "gf", function() Snacks.picker.git_log_file() end, { desc = "Git Current File History" }) -map("n", "gl", function() Snacks.picker.git_log({ cwd = LazyVim.root.git() }) end, { desc = "Git Log" }) -map({ "n", "x" }, "gB", function() Snacks.gitbrowse() end, { desc = "Git Browse (open)" }) -map({"n", "x" }, "gY", function() - Snacks.gitbrowse({ open = function(url) vim.fn.setreg("+", url) end, notify = false }) -end, { desc = "Git Browse (copy)" }) - --- quit -map("n", "qq", "qa", { desc = "Quit All" }) - --- highlights under cursor -map("n", "ui", vim.show_pos, { desc = "Inspect Pos" }) -map("n", "uI", function() vim.treesitter.inspect_tree() vim.api.nvim_input("I") end, { desc = "Inspect Tree" }) - --- LazyVim Changelog -map("n", "L", function() LazyVim.news.changelog() end, { desc = "LazyVim Changelog" }) - --- floating terminal -map("n", "fT", function() Snacks.terminal() end, { desc = "Terminal (cwd)" }) -map("n", "ft", function() Snacks.terminal(nil, { cwd = LazyVim.root() }) end, { desc = "Terminal (Root Dir)" }) -map({"n","t"}, "",function() Snacks.terminal(nil, { cwd = LazyVim.root() }) end, { desc = "Terminal (Root Dir)" }) -map({"n","t"}, "",function() Snacks.terminal(nil, { cwd = LazyVim.root() }) end, { desc = "which_key_ignore" }) - --- windows -map("n", "-", "s", { desc = "Split Window Below", remap = true }) -map("n", "|", "v", { desc = "Split Window Right", remap = true }) -map("n", "wd", "c", { desc = "Delete Window", remap = true }) -Snacks.toggle.zoom():map("wm"):map("uZ") -Snacks.toggle.zen():map("uz") - --- tabs -map("n", "l", "tablast", { desc = "Last Tab" }) -map("n", "o", "tabonly", { desc = "Close Other Tabs" }) -map("n", "f", "tabfirst", { desc = "First Tab" }) -map("n", "", "tabnew", { desc = "New Tab" }) -map("n", "]", "tabnext", { desc = "Next Tab" }) -map("n", "d", "tabclose", { desc = "Close Tab" }) -map("n", "[", "tabprevious", { desc = "Previous Tab" }) - -``` - - - - -## Auto Commands - - - - -```lua title="lua/config/autocmds.lua" --- Autocmds are automatically loaded on the VeryLazy event --- Default autocmds that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/autocmds.lua --- --- Add any additional autocmds here --- with `vim.api.nvim_create_autocmd` --- --- Or remove existing autocmds by their group name (which is prefixed with `lazyvim_` for the defaults) --- e.g. vim.api.nvim_del_augroup_by_name("lazyvim_wrap_spell") - -``` - - - - -```lua title="lazyvim.config.autocmds" --- This file is automatically loaded by lazyvim.config.init. - -local function augroup(name) - return vim.api.nvim_create_augroup("lazyvim_" .. name, { clear = true }) -end - --- Check if we need to reload the file when it changed -vim.api.nvim_create_autocmd({ "FocusGained", "TermClose", "TermLeave" }, { - group = augroup("checktime"), - callback = function() - if vim.o.buftype ~= "nofile" then - vim.cmd("checktime") - end - end, -}) - --- Highlight on yank -vim.api.nvim_create_autocmd("TextYankPost", { - group = augroup("highlight_yank"), - callback = function() - (vim.hl or vim.highlight).on_yank() - end, -}) - --- resize splits if window got resized -vim.api.nvim_create_autocmd({ "VimResized" }, { - group = augroup("resize_splits"), - callback = function() - local current_tab = vim.fn.tabpagenr() - vim.cmd("tabdo wincmd =") - vim.cmd("tabnext " .. current_tab) - end, -}) - --- go to last loc when opening a buffer -vim.api.nvim_create_autocmd("BufReadPost", { - group = augroup("last_loc"), - callback = function(event) - local exclude = { "gitcommit" } - local buf = event.buf - if vim.tbl_contains(exclude, vim.bo[buf].filetype) or vim.b[buf].lazyvim_last_loc then - return - end - vim.b[buf].lazyvim_last_loc = true - local mark = vim.api.nvim_buf_get_mark(buf, '"') - local lcount = vim.api.nvim_buf_line_count(buf) - if mark[1] > 0 and mark[1] <= lcount then - pcall(vim.api.nvim_win_set_cursor, 0, mark) - end - end, -}) - --- close some filetypes with -vim.api.nvim_create_autocmd("FileType", { - group = augroup("close_with_q"), - pattern = { - "PlenaryTestPopup", - "checkhealth", - "dbout", - "gitsigns-blame", - "grug-far", - "help", - "lspinfo", - "neotest-output", - "neotest-output-panel", - "neotest-summary", - "notify", - "qf", - "spectre_panel", - "startuptime", - "tsplayground", - }, - callback = function(event) - vim.bo[event.buf].buflisted = false - vim.schedule(function() - vim.keymap.set("n", "q", function() - vim.cmd("close") - pcall(vim.api.nvim_buf_delete, event.buf, { force = true }) - end, { - buffer = event.buf, - silent = true, - desc = "Quit buffer", - }) - end) - end, -}) - --- make it easier to close man-files when opened inline -vim.api.nvim_create_autocmd("FileType", { - group = augroup("man_unlisted"), - pattern = { "man" }, - callback = function(event) - vim.bo[event.buf].buflisted = false - end, -}) - --- wrap and check for spell in text filetypes -vim.api.nvim_create_autocmd("FileType", { - group = augroup("wrap_spell"), - pattern = { "text", "plaintex", "typst", "gitcommit", "markdown" }, - callback = function() - vim.opt_local.wrap = true - vim.opt_local.spell = true - end, -}) - --- Fix conceallevel for json files -vim.api.nvim_create_autocmd({ "FileType" }, { - group = augroup("json_conceal"), - pattern = { "json", "jsonc", "json5" }, - callback = function() - vim.opt_local.conceallevel = 0 - end, -}) - --- Auto create dir when saving a file, in case some intermediate directory does not exist -vim.api.nvim_create_autocmd({ "BufWritePre" }, { - group = augroup("auto_create_dir"), - callback = function(event) - if event.match:match("^%w%w+:[\\/][\\/]") then - return - end - local file = vim.uv.fs_realpath(event.match) or event.match - vim.fn.mkdir(vim.fn.fnamemodify(file, ":p:h"), "p") - end, -}) - -``` - - - - - diff --git a/docs/configuration/index.md b/docs/configuration/index.md deleted file mode 100644 index a7309f9f6f..0000000000 --- a/docs/configuration/index.md +++ /dev/null @@ -1,177 +0,0 @@ -# ⚙️ Configuration - -## 📂 File Structure - -The files under config will be automatically loaded at the appropriate time, -so you don't need to require those files manually. For more information, see [general settings](./configuration/general). - -You can add your custom plugin specs under `lua/plugins/`. All files there -will be automatically loaded by [lazy.nvim](https://github.com/folke/lazy.nvim). -For more information, see [configuring plugins](/configuration/plugins). - -```text {4-7,9-11} -~/.config/nvim -├── lua -│   ├── config -│   │   ├── autocmds.lua -│   │   ├── keymaps.lua -│   │   ├── lazy.lua -│   │   └── options.lua -│   └── plugins -│   ├── spec1.lua -│   ├── ** -│   └── spec2.lua -└── init.lua -``` - -## Icons & Colorscheme - -Icons & colorscheme can be configured as options for the **LazyVim** plugin. - -For example in `lua/plugins/core.lua` - -```lua -return { - { - "LazyVim/LazyVim", - opts = { - colorscheme = "catppuccin", - } - } -} -``` - -### Default Settings - - - -```lua -{ - -- colorscheme can be a string like `catppuccin` or a function that will load the colorscheme - ---@type string|fun() - colorscheme = function() - require("tokyonight").load() - end, - -- load the default settings - defaults = { - autocmds = true, -- lazyvim.config.autocmds - keymaps = true, -- lazyvim.config.keymaps - -- lazyvim.config.options can't be configured here since that's loaded before lazyvim setup - -- if you want to disable loading options, add `package.loaded["lazyvim.config.options"] = true` to the top of your init.lua - }, - news = { - -- When enabled, NEWS.md will be shown when changed. - -- This only contains big new features and breaking changes. - lazyvim = true, - -- Same but for Neovim's news.txt - neovim = false, - }, - -- icons used by other plugins - icons = { - misc = { - dots = "󰇘", - }, - ft = { - octo = "", - }, - dap = { - Stopped = { "󰁕 ", "DiagnosticWarn", "DapStoppedLine" }, - Breakpoint = " ", - BreakpointCondition = " ", - BreakpointRejected = { " ", "DiagnosticError" }, - LogPoint = ".>", - }, - diagnostics = { - Error = " ", - Warn = " ", - Hint = " ", - Info = " ", - }, - git = { - added = " ", - modified = " ", - removed = " ", - }, - kinds = { - Array = " ", - Boolean = "󰨙 ", - Class = " ", - Codeium = "󰘦 ", - Color = " ", - Control = " ", - Collapsed = " ", - Constant = "󰏿 ", - Constructor = " ", - Copilot = " ", - Enum = " ", - EnumMember = " ", - Event = " ", - Field = " ", - File = " ", - Folder = " ", - Function = "󰊕 ", - Interface = " ", - Key = " ", - Keyword = " ", - Method = "󰊕 ", - Module = " ", - Namespace = "󰦮 ", - Null = " ", - Number = "󰎠 ", - Object = " ", - Operator = " ", - Package = " ", - Property = " ", - Reference = " ", - Snippet = "󱄽 ", - String = " ", - Struct = "󰆼 ", - Supermaven = " ", - TabNine = "󰏚 ", - Text = " ", - TypeParameter = " ", - Unit = " ", - Value = " ", - Variable = "󰀫 ", - }, - }, - ---@type table? - kind_filter = { - default = { - "Class", - "Constructor", - "Enum", - "Field", - "Function", - "Interface", - "Method", - "Module", - "Namespace", - "Package", - "Property", - "Struct", - "Trait", - }, - markdown = false, - help = false, - -- you can specify a different filter for each filetype - lua = { - "Class", - "Constructor", - "Enum", - "Field", - "Function", - "Interface", - "Method", - "Module", - "Namespace", - -- "Package", -- remove package since luals uses it for control flow structures - "Property", - "Struct", - "Trait", - }, - }, -} -``` - - diff --git a/docs/configuration/keymaps.md b/docs/configuration/keymaps.md deleted file mode 100644 index 50a40ea461..0000000000 --- a/docs/configuration/keymaps.md +++ /dev/null @@ -1,45 +0,0 @@ ---- -sidebar_position: 4 ---- - -# Keymaps - -LazyVim provides multiple ways to configure keymaps. -If you want to override an existing mapping, make sure to -disable it first in the correct place. - -## Global keymaps - -Global keymaps are keymaps that are always active. -You can configure them in your [lua/config/keymaps.lua](/configuration/general#keymaps) file. -Default LazyVim keymaps can be deleted with `vim.keymap.del`. - -## Plugin keymaps - -For more info on configuring plugin keymaps, see [Adding & Disabling Plugin Keymaps](/configuration/plugins#%EF%B8%8F-adding--disabling-plugin-keymaps) - -## LSP keymaps - -These are the default keymaps that will be added when an LSP server is attached to the current buffer. -For more info see [Customizing LSP Keymaps](/plugins/lsp#%EF%B8%8F-customizing-lsp-keymaps) - -### LSP Server keymaps - -Sometimes it may be necessary to add keymaps for a specific LSP server. -Lazyutils provides a `keys` LSP option for this purpose. - -```lua -{ - "neovim/nvim-lspconfig", - opts = { - servers = { - tsserver = { - keys = { - { "co", "TypescriptOrganizeImports", desc = "Organize Imports" }, - { "cR", "TypescriptRenameFile", desc = "Rename File" }, - }, - }, - }, - }, -} -``` diff --git a/docs/configuration/lazy.nvim.md b/docs/configuration/lazy.nvim.md deleted file mode 100644 index 38e8dd63eb..0000000000 --- a/docs/configuration/lazy.nvim.md +++ /dev/null @@ -1,101 +0,0 @@ ---- -sidebar_position: 1 ---- - -# lazy.nvim - -The [starter](https://github.com/LazyVim/starter) includes a pre-configured [lazy.nvim](https://github.com/folke/lazy.nvim) -setup that installs the **LazyVim** plugin and imports its plugins. - -:::tip -The version for **lazy.nvim** and **LazyVim** will default to the latest -stable release. - -If you'd rather use the latest development version, add the code below -to your specs: - -```lua title="lua/plugins/core.lua" -return { - { "folke/lazy.nvim", version = false }, - { "LazyVim/LazyVim", version = false }, -} -``` - -::: - -:::caution -**lazy.nvim** can be configured to always try to use the latest stable version -of a plugin, if a plugin has releases. - -However, it's recommended to leave `version=false` for now, since a lot -the plugins that support versioning, have outdated releases, which may break -your Neovim install. - -If you still want to try using the latest stable releases, you can set -`config.defaults.version = "*"` - -Some plugins that are known to break with their outdated release will still -be forced to install the latest development version. To override that, specify -`version="*"` for those plugins. (see the **LazyVim** code) -::: - - - -```lua title="lua/config/lazy.lua" -local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim" -if not (vim.uv or vim.loop).fs_stat(lazypath) then - local lazyrepo = "https://github.com/folke/lazy.nvim.git" - local out = vim.fn.system({ "git", "clone", "--filter=blob:none", "--branch=stable", lazyrepo, lazypath }) - if vim.v.shell_error ~= 0 then - vim.api.nvim_echo({ - { "Failed to clone lazy.nvim:\n", "ErrorMsg" }, - { out, "WarningMsg" }, - { "\nPress any key to exit..." }, - }, true, {}) - vim.fn.getchar() - os.exit(1) - end -end -vim.opt.rtp:prepend(lazypath) - -require("lazy").setup({ - spec = { - -- add LazyVim and import its plugins - { "LazyVim/LazyVim", import = "lazyvim.plugins" }, - -- import/override with your plugins - { import = "plugins" }, - }, - defaults = { - -- By default, only LazyVim plugins will be lazy-loaded. Your custom plugins will load during startup. - -- If you know what you're doing, you can set this to `true` to have all your custom plugins lazy-loaded by default. - lazy = false, - -- It's recommended to leave version=false for now, since a lot the plugin that support versioning, - -- have outdated releases, which may break your Neovim install. - version = false, -- always use the latest git commit - -- version = "*", -- try installing the latest stable version for plugins that support semver - }, - install = { colorscheme = { "tokyonight", "habamax" } }, - checker = { - enabled = true, -- check for plugin updates periodically - notify = false, -- notify on update - }, -- automatically check for plugin updates - performance = { - rtp = { - -- disable some rtp plugins - disabled_plugins = { - "gzip", - -- "matchit", - -- "matchparen", - -- "netrwPlugin", - "tarPlugin", - "tohtml", - "tutor", - "zipPlugin", - }, - }, - }, -}) - -``` - - diff --git a/docs/configuration/plugins.md b/docs/configuration/plugins.md deleted file mode 100644 index 6b481b4ae7..0000000000 --- a/docs/configuration/plugins.md +++ /dev/null @@ -1,139 +0,0 @@ ---- -sidebar_position: 3 ---- - -# Plugins - -Configuring **LazyVim** plugins is exactly the same as using **lazy.nvim** to build -a config from scratch. - -For the full plugin spec documentation please check the **lazy.nvim** -[readme](https://github.com/folke/lazy.nvim). - -Refer to the **plugins** section in the sidebar for configuring -included plugins. - -## ➕ Adding Plugins - -Adding a plugin is as simple as adding the plugin spec to one of the files -under `lua/plugins/*.lua`. You can create as many files there as you want. - -You can structure your `lua/plugins` folder with a file per plugin, -or a separate file containing all the plugin specs for some functionality. - -```lua title="lua/plugins/lsp.lua" -return { - -- add symbols-outline - { - "simrat39/symbols-outline.nvim", - cmd = "SymbolsOutline", - keys = { { "cs", "SymbolsOutline", desc = "Symbols Outline" } }, - opts = { - -- add your options that should be passed to the setup() function here - position = "right", - }, - }, -} -``` - -## ❌ Disabling Plugins - -In order to disable a plugin, add a spec with `enabled=false` - -```lua title="lua/plugins/disabled.lua" -return { - -- disable trouble - { "folke/trouble.nvim", enabled = false }, -} -``` - -## ✏️ Customizing Plugin Specs - -Defaults merging rules: - -- **cmd**: the list of commands will be extended with your custom commands -- **event**: the list of events will be extended with your custom events -- **ft**: the list of filetypes will be extended with your custom filetypes -- **keys**: the list of keymaps will be extended with your custom keymaps -- **opts**: your custom opts will be merged with the default opts -- **dependencies**: the list of dependencies will be extended with your custom dependencies -- **_any other property will override the defaults_** - -For `ft`, `event`, `keys`, `cmd` and `opts` you can instead also specify a `values` function -that can make changes to the default values, or return new values to be used instead. - -```lua -return { - -- change trouble config - { - "folke/trouble.nvim", - -- opts will be merged with the parent spec - opts = { use_diagnostic_signs = true }, - } - - -- add cmp-emoji - { - "hrsh7th/nvim-cmp", - dependencies = { "hrsh7th/cmp-emoji" }, - ---@param opts cmp.ConfigSchema - opts = function(_, opts) - table.insert(opts.sources, { name = "emoji" }) - end, - } -} -``` - -## ⌨️ Adding & Disabling Plugin Keymaps - -Adding `keys=` follows the rules as explained above. - -You can also disable a default keymap by setting it to `false`. -To override a keymap, simply add one with the same `lhs` and a new `rhs`. - -```lua title="lua/plugins/telescope.lua" -return { - "nvim-telescope/telescope.nvim", - keys = { - -- disable the keymap to grep files - {"/", false}, - -- change a keymap - { "ff", "Telescope find_files", desc = "Find Files" }, - -- add a keymap to browse plugin files - { - "fp", - function() require("telescope.builtin").find_files({ cwd = require("lazy.core.config").options.root }) end, - desc = "Find Plugin File", - }, - }, -}, -``` - -:::caution -Make sure to use the exact same mode as the keymap you want to disable. -You don't have to specify a mode for `normal` mode keymaps. -::: - -```lua title="lua/plugins/flash.lua" -return { - "folke/flash.nvim", - keys = { - -- disable the default flash keymap - { "s", mode = { "n", "x", "o" }, false }, - }, -} -``` - -You can also return a whole new set of keymaps to be used instead. -Or return `{}` to disable all keymaps for a plugin. - -```lua title="lua/plugins/telescope.lua" -return { - "nvim-telescope/telescope.nvim", - -- replace all Telescope keymaps with only one mapping - keys = function() - return { - { "ff", "Telescope find_files", desc = "Find Files" }, - } - end, -}, -``` diff --git a/docs/configuration/recipes.md b/docs/configuration/recipes.md deleted file mode 100644 index 80cceca794..0000000000 --- a/docs/configuration/recipes.md +++ /dev/null @@ -1,163 +0,0 @@ ---- -sidebar_position: 6 ---- - -# Recipes - - - -## Add a `nvim-cmp` source - -override nvim-cmp and add cmp-emoji - -```lua -{ - "hrsh7th/nvim-cmp", - dependencies = { "hrsh7th/cmp-emoji" }, - ---@param opts cmp.ConfigSchema - opts = function(_, opts) - table.insert(opts.sources, { name = "emoji" }) - end, -} -``` - -## Supertab - -Use `` for completion and snippets (supertab). - -```lua -{ - "hrsh7th/nvim-cmp", - ---@param opts cmp.ConfigSchema - opts = function(_, opts) - local has_words_before = function() - unpack = unpack or table.unpack - local line, col = unpack(vim.api.nvim_win_get_cursor(0)) - return col ~= 0 and vim.api.nvim_buf_get_lines(0, line - 1, line, true)[1]:sub(col, col):match("%s") == nil - end - - local cmp = require("cmp") - - opts.mapping = vim.tbl_extend("force", opts.mapping, { - [""] = cmp.mapping(function(fallback) - if cmp.visible() then - -- You could replace select_next_item() with confirm({ select = true }) to get VS Code autocompletion behavior - cmp.select_next_item() - elseif vim.snippet.active({ direction = 1 }) then - vim.schedule(function() - vim.snippet.jump(1) - end) - elseif has_words_before() then - cmp.complete() - else - fallback() - end - end, { "i", "s" }), - [""] = cmp.mapping(function(fallback) - if cmp.visible() then - cmp.select_prev_item() - elseif vim.snippet.active({ direction = -1 }) then - vim.schedule(function() - vim.snippet.jump(-1) - end) - else - fallback() - end - end, { "i", "s" }), - }) - end, -} -``` - -## Change surround mappings - -```lua -{ - "echasnovski/mini.surround", - opts = { - mappings = { - add = "gsa", - delete = "gsd", - find = "gsf", - find_left = "gsF", - highlight = "gsh", - replace = "gsr", - update_n_lines = "gsn", - }, - }, -} -``` - -## Make TokyoNight Transparent - -```lua -{ - "folke/tokyonight.nvim", - opts = { - transparent = true, - styles = { - sidebars = "transparent", - floats = "transparent", - }, - }, -} -``` - -## Fix clangd offset encoding - -```lua -{ - "neovim/nvim-lspconfig", - opts = { - setup = { - clangd = function(_, opts) - opts.capabilities.offsetEncoding = { "utf-16" } - end, - }, - }, -} -``` - -## Use Eslint for fix on save and prettier for formatting - -The [recommended](https://prettier.io/docs/en/integrating-with-linters.html) setup to -integrate prettier with linters is to **not** integrate it with eslint. -For this config, we have two extras, to enable eslint fix on save and enable the prettier -formatter with null-ls. - -Add the below to your `lua/config/lazy.lua` file - -```lua -{ - { import = "lazyvim.plugins.extras.linting.eslint" }, - { import = "lazyvim.plugins.extras.formatting.prettier" }, -} -``` - -## Add Eslint and use it for formatting - -If your project is using eslint with [eslint-plugin-prettier](https://github.com/prettier/eslint-plugin-prettier), -then this will automatically fix eslint errors and format with prettier on save. -Important: make sure not to add prettier to null-ls, otherwise this won't work! - -```lua -{ - "neovim/nvim-lspconfig", - opts = { - servers = { eslint = {} }, - setup = { - eslint = function() - require("lazyvim.util").lsp.on_attach(function(client) - if client.name == "eslint" then - client.server_capabilities.documentFormattingProvider = true - elseif client.name == "tsserver" then - client.server_capabilities.documentFormattingProvider = false - end - end) - end, - }, - }, -} -``` - - diff --git a/docs/configuration/tips.md b/docs/configuration/tips.md deleted file mode 100644 index 22bde924cd..0000000000 --- a/docs/configuration/tips.md +++ /dev/null @@ -1,34 +0,0 @@ ---- -sidebar_position: 7 ---- - -# Tips - -## Navigating around multiple buffers - -- Use `H` and `L` if the buffer you want to go to is visually close to where you are -- Otherwise, if the buffer is open, use `,` -- For other files, use `` -- Close buffers you no longer need with `bd` -- `ss` to quickly jump to a function in the buffer you're on -- ``, `` and `gd` to navigate the code -- You can pin buffers with `bp` and delete all non pinned buffers with `bP` -- Add `TODO`s in files you want to work on in future but don't need now and delete their buffers, git will track them - -## Disable autoformat for some buffers - -If you want to disable autoformat for a certain buffer, then -set `vim.b.autoformat = false` for that buffer. - -```lua title=lua/config/autocmds.lua --- Disable autoformat for lua files -vim.api.nvim_create_autocmd({ "FileType" }, { - pattern = { "lua" }, - callback = function() - vim.b.autoformat = false - end, -}) -``` - -If you change your mind you can do `uf` to enable autoformat -anyway for that buffer. diff --git a/docs/extras/_category_.yml b/docs/extras/_category_.yml deleted file mode 100644 index 7703eaa141..0000000000 --- a/docs/extras/_category_.yml +++ /dev/null @@ -1,2 +0,0 @@ -label: ⭐ Extras -position: 7 diff --git a/docs/extras/ai/avante.md b/docs/extras/ai/avante.md deleted file mode 100644 index 050ccf9539..0000000000 --- a/docs/extras/ai/avante.md +++ /dev/null @@ -1,268 +0,0 @@ -# `Avante` - - - -:::info -You can enable the extra with the `:LazyExtras` command. -Plugins marked as optional will only be configured if they are installed. -::: - -Below you can find a list of included plugins and their default settings. - -:::caution -You don't need to copy the default settings to your config. -They are only shown here for reference. -::: - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -## [nui.nvim](https://github.com/MunifTanjim/nui.nvim) - - - - - -```lua -opts = nil -``` - - - - - - -```lua -{ "MunifTanjim/nui.nvim", lazy = true } -``` - - - - - -## [avante.nvim](https://github.com/yetone/avante.nvim) - - - - - -```lua -opts = { - provider = "copilot", - selection = { - hint_display = "none", - }, - behaviour = { - auto_set_keymaps = false, - }, -} -``` - - - - - - -```lua -{ - "yetone/avante.nvim", - build = vim.fn.has("win32") ~= 0 and "powershell -ExecutionPolicy Bypass -File Build.ps1 -BuildFromSource false" - or "make", - event = "VeryLazy", - opts = { - provider = "copilot", - selection = { - hint_display = "none", - }, - behaviour = { - auto_set_keymaps = false, - }, - }, - cmd = { - "AvanteAsk", - "AvanteBuild", - "AvanteChat", - "AvanteClear", - "AvanteEdit", - "AvanteFocus", - "AvanteHistory", - "AvanteModels", - "AvanteRefresh", - "AvanteShowRepoMap", - "AvanteStop", - "AvanteSwitchProvider", - "AvanteToggle", - }, - keys = { - { "aa", "AvanteAsk", desc = "Ask Avante" }, - { "ac", "AvanteChat", desc = "Chat with Avante" }, - { "ae", "AvanteEdit", desc = "Edit Avante" }, - { "af", "AvanteFocus", desc = "Focus Avante" }, - { "ah", "AvanteHistory", desc = "Avante History" }, - { "am", "AvanteModels", desc = "Select Avante Model" }, - { "an", "AvanteChatNew", desc = "New Avante Chat" }, - { "ap", "AvanteSwitchProvider", desc = "Switch Avante Provider" }, - { "ar", "AvanteRefresh", desc = "Refresh Avante" }, - { "as", "AvanteStop", desc = "Stop Avante" }, - { "at", "AvanteToggle", desc = "Toggle Avante" }, - }, -} -``` - - - - - -## [blink-cmp-avante](https://github.com/Kaiser-Yang/blink-cmp-avante) - - - - - -```lua -opts = nil -``` - - - - - - -```lua -{ "Kaiser-Yang/blink-cmp-avante" } -``` - - - - - -## [img-clip.nvim](https://github.com/HakonHarnes/img-clip.nvim) _(optional)_ - - support for image pasting - - - - - - -```lua -opts = { - -- recommended settings - default = { - embed_image_as_base64 = false, - prompt_for_file_name = false, - drag_and_drop = { - insert_mode = true, - }, - -- required for Windows users - use_absolute_path = true, - }, -} -``` - - - - - - -```lua -{ - "HakonHarnes/img-clip.nvim", - event = "VeryLazy", - optional = true, - opts = { - -- recommended settings - default = { - embed_image_as_base64 = false, - prompt_for_file_name = false, - drag_and_drop = { - insert_mode = true, - }, - -- required for Windows users - use_absolute_path = true, - }, - }, -} -``` - - - - - -## [render-markdown.nvim](https://github.com/MeanderingProgrammer/render-markdown.nvim) _(optional)_ - - Make sure to set this up properly if you have lazy=true - - - - - - -```lua -opts = { - file_types = { "markdown", "Avante" }, -} -``` - - - - - - -```lua -{ - "MeanderingProgrammer/render-markdown.nvim", - optional = true, - opts = { - file_types = { "markdown", "Avante" }, - }, - ft = { "markdown", "Avante" }, -} -``` - - - - - -## [blink.cmp](https://github.com/saghen/blink.cmp) _(optional)_ - - blink.cmp source for avante.nvim - - - - - - -```lua -opts = { - sources = { - default = { "avante" }, - providers = { avante = { module = "blink-cmp-avante", name = "Avante" } }, - }, -} -``` - - - - - - -```lua -{ - "saghen/blink.cmp", - optional = true, - specs = { "Kaiser-Yang/blink-cmp-avante" }, - opts = { - sources = { - default = { "avante" }, - providers = { avante = { module = "blink-cmp-avante", name = "Avante" } }, - }, - }, -} -``` - - - - - - diff --git a/docs/extras/ai/claudecode.md b/docs/extras/ai/claudecode.md deleted file mode 100644 index aae4686005..0000000000 --- a/docs/extras/ai/claudecode.md +++ /dev/null @@ -1,64 +0,0 @@ -# `Claudecode` - - - -:::info -You can enable the extra with the `:LazyExtras` command. -Plugins marked as optional will only be configured if they are installed. -::: - -Below you can find a list of included plugins and their default settings. - -:::caution -You don't need to copy the default settings to your config. -They are only shown here for reference. -::: - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -## [claudecode.nvim](https://github.com/coder/claudecode.nvim) - - - - - -```lua -opts = {} -``` - - - - - - -```lua -{ - "coder/claudecode.nvim", - opts = {}, - keys = { - { "a", "", desc = "+ai", mode = { "n", "v" } }, - { "ac", "ClaudeCode", desc = "Toggle Claude" }, - { "af", "ClaudeCodeFocus", desc = "Focus Claude" }, - { "ar", "ClaudeCode --resume", desc = "Resume Claude" }, - { "aC", "ClaudeCode --continue", desc = "Continue Claude" }, - { "ab", "ClaudeCodeAdd %", desc = "Add current buffer" }, - { "as", "ClaudeCodeSend", mode = "v", desc = "Send to Claude" }, - { - "as", - "ClaudeCodeTreeAdd", - desc = "Add file", - ft = { "NvimTree", "neo-tree", "oil" }, - }, - -- Diff management - { "aa", "ClaudeCodeDiffAccept", desc = "Accept diff" }, - { "ad", "ClaudeCodeDiffDeny", desc = "Deny diff" }, - }, -} -``` - - - - - - diff --git a/docs/extras/ai/codeium.md b/docs/extras/ai/codeium.md deleted file mode 100644 index 18ad5612c9..0000000000 --- a/docs/extras/ai/codeium.md +++ /dev/null @@ -1,238 +0,0 @@ -# `Codeium` - - - -:::info -You can enable the extra with the `:LazyExtras` command. -Plugins marked as optional will only be configured if they are installed. -::: - -Below you can find a list of included plugins and their default settings. - -:::caution -You don't need to copy the default settings to your config. -They are only shown here for reference. -::: - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -## [codeium.nvim](https://github.com/Exafunction/codeium.nvim) - - codeium - - - - - - -```lua -opts = { - enable_cmp_source = vim.g.ai_cmp, - virtual_text = { - enabled = not vim.g.ai_cmp, - key_bindings = { - accept = false, -- handled by nvim-cmp / blink.cmp - next = "", - prev = "", - }, - }, -} -``` - - - - - - -```lua -{ - "Exafunction/codeium.nvim", - cmd = "Codeium", - event = "InsertEnter", - build = ":Codeium Auth", - opts = { - enable_cmp_source = vim.g.ai_cmp, - virtual_text = { - enabled = not vim.g.ai_cmp, - key_bindings = { - accept = false, -- handled by nvim-cmp / blink.cmp - next = "", - prev = "", - }, - }, - }, -} -``` - - - - - -## [codeium.nvim](https://github.com/Exafunction/codeium.nvim) - - add ai_accept action - - - - - - -```lua -opts = function() - LazyVim.cmp.actions.ai_accept = function() - if require("codeium.virtual_text").get_current_completion_item() then - LazyVim.create_undo() - vim.api.nvim_input(require("codeium.virtual_text").accept()) - return true - end - end -end -``` - - - - - - -```lua -{ - "Exafunction/codeium.nvim", - opts = function() - LazyVim.cmp.actions.ai_accept = function() - if require("codeium.virtual_text").get_current_completion_item() then - LazyVim.create_undo() - vim.api.nvim_input(require("codeium.virtual_text").accept()) - return true - end - end - end, -} -``` - - - - - -## [codeium.nvim](https://github.com/Exafunction/codeium.nvim) - - - - - -```lua -opts = nil -``` - - - - - - -```lua -{ "codeium.nvim" } -``` - - - - - -## [codeium.nvim](https://github.com/Exafunction/codeium.nvim) - - - - - -```lua -opts = nil -``` - - - - - - -```lua -{ "codeium.nvim", "saghen/blink.compat" } -``` - - - - - -## [nvim-cmp](https://github.com/hrsh7th/nvim-cmp) _(optional)_ - - codeium cmp source - - - - - - -```lua -opts = function(_, opts) - table.insert(opts.sources, 1, { - name = "codeium", - group_index = 1, - priority = 100, - }) -end -``` - - - - - - -```lua -{ - "hrsh7th/nvim-cmp", - optional = true, - dependencies = { "codeium.nvim" }, - opts = function(_, opts) - table.insert(opts.sources, 1, { - name = "codeium", - group_index = 1, - priority = 100, - }) - end, -} -``` - - - - - -## [lualine.nvim](https://github.com/nvim-lualine/lualine.nvim) _(optional)_ - - - - - -```lua -opts = function(_, opts) - table.insert(opts.sections.lualine_x, 2, LazyVim.lualine.cmp_source("codeium")) -end -``` - - - - - - -```lua -{ - "nvim-lualine/lualine.nvim", - optional = true, - event = "VeryLazy", - opts = function(_, opts) - table.insert(opts.sections.lualine_x, 2, LazyVim.lualine.cmp_source("codeium")) - end, -} -``` - - - - - - diff --git a/docs/extras/ai/copilot-chat.md b/docs/extras/ai/copilot-chat.md deleted file mode 100644 index 8239b0135e..0000000000 --- a/docs/extras/ai/copilot-chat.md +++ /dev/null @@ -1,229 +0,0 @@ -# `Copilot-chat` - - - -:::info -You can enable the extra with the `:LazyExtras` command. -Plugins marked as optional will only be configured if they are installed. -::: - -Below you can find a list of included plugins and their default settings. - -:::caution -You don't need to copy the default settings to your config. -They are only shown here for reference. -::: - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -## [CopilotChat.nvim](https://github.com/CopilotC-Nvim/CopilotChat.nvim) - - - - - -```lua -opts = function() - local user = vim.env.USER or "User" - user = user:sub(1, 1):upper() .. user:sub(2) - return { - auto_insert_mode = true, - headers = { - user = " " .. user .. " ", - assistant = " Copilot ", - tool = "󰊳 Tool ", - }, - window = { - width = 0.4, - }, - } -end -``` - - - - - - -```lua -{ - "CopilotC-Nvim/CopilotChat.nvim", - branch = "main", - cmd = "CopilotChat", - opts = function() - local user = vim.env.USER or "User" - user = user:sub(1, 1):upper() .. user:sub(2) - return { - auto_insert_mode = true, - headers = { - user = " " .. user .. " ", - assistant = " Copilot ", - tool = "󰊳 Tool ", - }, - window = { - width = 0.4, - }, - } - end, - keys = { - { "", "", ft = "copilot-chat", desc = "Submit Prompt", remap = true }, - { "a", "", desc = "+ai", mode = { "n", "x" } }, - { - "aa", - function() - return require("CopilotChat").toggle() - end, - desc = "Toggle (CopilotChat)", - mode = { "n", "x" }, - }, - { - "ax", - function() - return require("CopilotChat").reset() - end, - desc = "Clear (CopilotChat)", - mode = { "n", "x" }, - }, - { - "aq", - function() - vim.ui.input({ - prompt = "Quick Chat: ", - }, function(input) - if input ~= "" then - require("CopilotChat").ask(input) - end - end) - end, - desc = "Quick Chat (CopilotChat)", - mode = { "n", "x" }, - }, - { - "ap", - function() - require("CopilotChat").select_prompt() - end, - desc = "Prompt Actions (CopilotChat)", - mode = { "n", "x" }, - }, - }, - config = function(_, opts) - local chat = require("CopilotChat") - - vim.api.nvim_create_autocmd("BufEnter", { - pattern = "copilot-chat", - callback = function() - vim.opt_local.relativenumber = false - vim.opt_local.number = false - end, - }) - - chat.setup(opts) - end, -} -``` - - - - - -## [edgy.nvim](https://github.com/folke/edgy.nvim) _(optional)_ - - Edgy integration - - - - - - -```lua -opts = function(_, opts) - opts.right = opts.right or {} - table.insert(opts.right, { - ft = "copilot-chat", - title = "Copilot Chat", - size = { width = 50 }, - }) -end -``` - - - - - - -```lua -{ - "folke/edgy.nvim", - optional = true, - opts = function(_, opts) - opts.right = opts.right or {} - table.insert(opts.right, { - ft = "copilot-chat", - title = "Copilot Chat", - size = { width = 50 }, - }) - end, -} -``` - - - - - -## [blink.cmp](https://github.com/saghen/blink.cmp) _(optional)_ - - Blink integration - - - - - - -```lua -opts = { - sources = { - providers = { - path = { - -- Path sources triggered by "/" interfere with CopilotChat commands - enabled = function() - return vim.bo.filetype ~= "copilot-chat" - end, - }, - }, - }, -} -``` - - - - - - -```lua -{ - "saghen/blink.cmp", - optional = true, - ---@module 'blink.cmp' - ---@type blink.cmp.Config - opts = { - sources = { - providers = { - path = { - -- Path sources triggered by "/" interfere with CopilotChat commands - enabled = function() - return vim.bo.filetype ~= "copilot-chat" - end, - }, - }, - }, - }, -} -``` - - - - - - diff --git a/docs/extras/ai/copilot-native.md b/docs/extras/ai/copilot-native.md deleted file mode 100644 index 45bf519e40..0000000000 --- a/docs/extras/ai/copilot-native.md +++ /dev/null @@ -1,207 +0,0 @@ -# `Copilot-native` - - - -:::info -You can enable the extra with the `:LazyExtras` command. -Plugins marked as optional will only be configured if they are installed. -::: - -### Options - -Additional options for this extra can be configured in your [lua/config/options.lua](/configuration/general#options) file: - -```lua title="lua/config/options.lua" --- Native inline completions don't support being shown as regular completions -vim.g.ai_cmp = false -``` - -Below you can find a list of included plugins and their default settings. - -:::caution -You don't need to copy the default settings to your config. -They are only shown here for reference. -::: - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -## [nvim-lspconfig](https://github.com/neovim/nvim-lspconfig) - - copilot-language-server - - - - - - -```lua -opts = { - servers = { - copilot = { - -- stylua: ignore - keys = { - { - "", - function() vim.lsp.inline_completion.select({ count = 1 }) end, - desc = "Next Copilot Suggestion", - mode = { "i", "n" }, - }, - { - "", - function() vim.lsp.inline_completion.select({ count = -1 }) end, - desc = "Prev Copilot Suggestion", - mode = { "i", "n" }, - }, - }, - }, - }, - setup = { - copilot = function() - vim.schedule(function() - vim.lsp.inline_completion.enable() - end) - -- Accept inline suggestions or next edits - LazyVim.cmp.actions.ai_accept = function() - return vim.lsp.inline_completion.get() - end - - if not LazyVim.has_extra("ai.sidekick") then - vim.lsp.config("copilot", { - handlers = { - didChangeStatus = function(err, res, ctx) - if err then - return - end - status[ctx.client_id] = res.kind ~= "Normal" and "error" or res.busy and "pending" or "ok" - if res.status == "Error" then - LazyVim.error("Please use `:LspCopilotSignIn` to sign in to Copilot") - end - end, - }, - }) - end - end, - }, -} -``` - - - - - - -```lua -{ - "neovim/nvim-lspconfig", - opts = { - servers = { - copilot = { - -- stylua: ignore - keys = { - { - "", - function() vim.lsp.inline_completion.select({ count = 1 }) end, - desc = "Next Copilot Suggestion", - mode = { "i", "n" }, - }, - { - "", - function() vim.lsp.inline_completion.select({ count = -1 }) end, - desc = "Prev Copilot Suggestion", - mode = { "i", "n" }, - }, - }, - }, - }, - setup = { - copilot = function() - vim.schedule(function() - vim.lsp.inline_completion.enable() - end) - -- Accept inline suggestions or next edits - LazyVim.cmp.actions.ai_accept = function() - return vim.lsp.inline_completion.get() - end - - if not LazyVim.has_extra("ai.sidekick") then - vim.lsp.config("copilot", { - handlers = { - didChangeStatus = function(err, res, ctx) - if err then - return - end - status[ctx.client_id] = res.kind ~= "Normal" and "error" or res.busy and "pending" or "ok" - if res.status == "Error" then - LazyVim.error("Please use `:LspCopilotSignIn` to sign in to Copilot") - end - end, - }, - }) - end - end, - }, - }, -} -``` - - - - - -## [lualine.nvim](https://github.com/nvim-lualine/lualine.nvim) _(optional)_ - - lualine - - - - - - -```lua -opts = function(_, opts) - if LazyVim.has_extra("ai.sidekick") then - return - end - table.insert( - opts.sections.lualine_x, - 2, - LazyVim.lualine.status(LazyVim.config.icons.kinds.Copilot, function() - local clients = vim.lsp.get_clients({ name = "copilot", bufnr = 0 }) - return #clients > 0 and status[clients[1].id] or nil - end) - ) -end -``` - - - - - - -```lua -{ - "nvim-lualine/lualine.nvim", - optional = true, - event = "VeryLazy", - opts = function(_, opts) - if LazyVim.has_extra("ai.sidekick") then - return - end - table.insert( - opts.sections.lualine_x, - 2, - LazyVim.lualine.status(LazyVim.config.icons.kinds.Copilot, function() - local clients = vim.lsp.get_clients({ name = "copilot", bufnr = 0 }) - return #clients > 0 and status[clients[1].id] or nil - end) - ) - end, -} -``` - - - - - - diff --git a/docs/extras/ai/copilot.md b/docs/extras/ai/copilot.md deleted file mode 100644 index 5a1b5a4376..0000000000 --- a/docs/extras/ai/copilot.md +++ /dev/null @@ -1,223 +0,0 @@ -# `Copilot` - - - -:::info -You can enable the extra with the `:LazyExtras` command. -Plugins marked as optional will only be configured if they are installed. -::: - -Below you can find a list of included plugins and their default settings. - -:::caution -You don't need to copy the default settings to your config. -They are only shown here for reference. -::: - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -## [copilot.lua](https://github.com/zbirenbaum/copilot.lua) - - copilot - - - - - - -```lua -opts = { - suggestion = { - enabled = not vim.g.ai_cmp, - auto_trigger = true, - hide_during_completion = vim.g.ai_cmp, - keymap = { - accept = false, -- handled by nvim-cmp / blink.cmp - next = "", - prev = "", - }, - }, - panel = { enabled = false }, - filetypes = { - markdown = true, - help = true, - }, -} -``` - - - - - - -```lua -{ - "zbirenbaum/copilot.lua", - cmd = "Copilot", - build = ":Copilot auth", - event = "BufReadPost", - opts = { - suggestion = { - enabled = not vim.g.ai_cmp, - auto_trigger = true, - hide_during_completion = vim.g.ai_cmp, - keymap = { - accept = false, -- handled by nvim-cmp / blink.cmp - next = "", - prev = "", - }, - }, - panel = { enabled = false }, - filetypes = { - markdown = true, - help = true, - }, - }, -} -``` - - - - - -## [nvim-lspconfig](https://github.com/neovim/nvim-lspconfig) - - copilot-language-server - - - - - - -```lua -opts = { - servers = { - -- copilot.lua only works with its own copilot lsp server - copilot = { enabled = false }, - }, -} -``` - - - - - - -```lua -{ - "neovim/nvim-lspconfig", - opts = { - servers = { - -- copilot.lua only works with its own copilot lsp server - copilot = { enabled = false }, - }, - }, -} -``` - - - - - -## [copilot.lua](https://github.com/zbirenbaum/copilot.lua) - - add ai_accept action - - - - - - -```lua -opts = function() - LazyVim.cmp.actions.ai_accept = function() - if require("copilot.suggestion").is_visible() then - LazyVim.create_undo() - require("copilot.suggestion").accept() - return true - end - end -end -``` - - - - - - -```lua -{ - "zbirenbaum/copilot.lua", - opts = function() - LazyVim.cmp.actions.ai_accept = function() - if require("copilot.suggestion").is_visible() then - LazyVim.create_undo() - require("copilot.suggestion").accept() - return true - end - end - end, -} -``` - - - - - -## [lualine.nvim](https://github.com/nvim-lualine/lualine.nvim) _(optional)_ - - lualine - - - - - - -```lua -opts = function(_, opts) - table.insert( - opts.sections.lualine_x, - 2, - LazyVim.lualine.status(LazyVim.config.icons.kinds.Copilot, function() - local clients = package.loaded["copilot"] and vim.lsp.get_clients({ name = "copilot", bufnr = 0 }) or {} - if #clients > 0 then - local status = require("copilot.status").data.status - return (status == "InProgress" and "pending") or (status == "Warning" and "error") or "ok" - end - end) - ) -end -``` - - - - - - -```lua -{ - "nvim-lualine/lualine.nvim", - optional = true, - event = "VeryLazy", - opts = function(_, opts) - table.insert( - opts.sections.lualine_x, - 2, - LazyVim.lualine.status(LazyVim.config.icons.kinds.Copilot, function() - local clients = package.loaded["copilot"] and vim.lsp.get_clients({ name = "copilot", bufnr = 0 }) or {} - if #clients > 0 then - local status = require("copilot.status").data.status - return (status == "InProgress" and "pending") or (status == "Warning" and "error") or "ok" - end - end) - ) - end, -} -``` - - - - - - diff --git a/docs/extras/ai/sidekick.md b/docs/extras/ai/sidekick.md deleted file mode 100644 index 9deb6f8836..0000000000 --- a/docs/extras/ai/sidekick.md +++ /dev/null @@ -1,317 +0,0 @@ -# `Sidekick` - - - -:::info -You can enable the extra with the `:LazyExtras` command. -Plugins marked as optional will only be configured if they are installed. -::: - -Below you can find a list of included plugins and their default settings. - -:::caution -You don't need to copy the default settings to your config. -They are only shown here for reference. -::: - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -## [nvim-lspconfig](https://github.com/neovim/nvim-lspconfig) - - copilot-language-server - - - - - - -```lua -opts = function(_, opts) - local sk = LazyVim.opts("sidekick.nvim") ---@type sidekick.Config|{} - if vim.tbl_get(sk, "nes", "enabled") ~= false then - opts.servers = opts.servers or {} - opts.servers.copilot = opts.servers.copilot or {} - end -end -``` - - - - - - -```lua -{ - "neovim/nvim-lspconfig", - opts = function(_, opts) - local sk = LazyVim.opts("sidekick.nvim") ---@type sidekick.Config|{} - if vim.tbl_get(sk, "nes", "enabled") ~= false then - opts.servers = opts.servers or {} - opts.servers.copilot = opts.servers.copilot or {} - end - end, -} -``` - - - - - -## [sidekick.nvim](https://github.com/folke/sidekick.nvim) - - - - - -```lua -opts = function() - -- Accept inline suggestions or next edits - LazyVim.cmp.actions.ai_nes = function() - local Nes = require("sidekick.nes") - if Nes.have() and (Nes.jump() or Nes.apply()) then - return true - end - end -end -``` - - - - - - -```lua -{ - "folke/sidekick.nvim", - opts = function() - -- Accept inline suggestions or next edits - LazyVim.cmp.actions.ai_nes = function() - local Nes = require("sidekick.nes") - if Nes.have() and (Nes.jump() or Nes.apply()) then - return true - end - end - end, - -- stylua: ignore - keys = { - -- nes is also useful in normal mode - { "", LazyVim.cmp.map({ "ai_nes" }, ""), mode = { "n" }, expr = true }, - { "a", "", desc = "+ai", mode = { "n", "v" } }, - { - "", - function() require("sidekick.cli").toggle() end, - desc = "Sidekick Toggle", - mode = { "n", "t", "i", "x" }, - }, - { - "aa", - function() require("sidekick.cli").toggle() end, - desc = "Sidekick Toggle CLI", - }, - { - "as", - function() require("sidekick.cli").select() end, - -- Or to select only installed tools: - -- require("sidekick.cli").select({ filter = { installed = true } }) - desc = "Select CLI", - }, - { - "ad", - function() require("sidekick.cli").close() end, - desc = "Detach a CLI Session", - }, - { - "at", - function() require("sidekick.cli").send({ msg = "{this}" }) end, - mode = { "x", "n" }, - desc = "Send This", - }, - { - "af", - function() require("sidekick.cli").send({ msg = "{file}" }) end, - desc = "Send File", - }, - { - "av", - function() require("sidekick.cli").send({ msg = "{selection}" }) end, - mode = { "x" }, - desc = "Send Visual Selection", - }, - { - "ap", - function() require("sidekick.cli").prompt() end, - mode = { "n", "x" }, - desc = "Sidekick Select Prompt", - }, - }, -} -``` - - - - - -## [lualine.nvim](https://github.com/nvim-lualine/lualine.nvim) _(optional)_ - - lualine - - - - - - -```lua -opts = function(_, opts) - local icons = { - Error = { " ", "DiagnosticError" }, - Inactive = { " ", "MsgArea" }, - Warning = { " ", "DiagnosticWarn" }, - Normal = { LazyVim.config.icons.kinds.Copilot, "Special" }, - } - table.insert(opts.sections.lualine_x, 2, { - function() - local status = require("sidekick.status").get() - return status and vim.tbl_get(icons, status.kind, 1) - end, - cond = function() - return require("sidekick.status").get() ~= nil - end, - color = function() - local status = require("sidekick.status").get() - local hl = status and (status.busy and "DiagnosticWarn" or vim.tbl_get(icons, status.kind, 2)) - return { fg = Snacks.util.color(hl) } - end, - }) - - table.insert(opts.sections.lualine_x, 2, { - function() - local status = require("sidekick.status").cli() - return " " .. (#status > 1 and #status or "") - end, - cond = function() - return #require("sidekick.status").cli() > 0 - end, - color = function() - return { fg = Snacks.util.color("Special") } - end, - }) -end -``` - - - - - - -```lua -{ - "nvim-lualine/lualine.nvim", - optional = true, - event = "VeryLazy", - opts = function(_, opts) - local icons = { - Error = { " ", "DiagnosticError" }, - Inactive = { " ", "MsgArea" }, - Warning = { " ", "DiagnosticWarn" }, - Normal = { LazyVim.config.icons.kinds.Copilot, "Special" }, - } - table.insert(opts.sections.lualine_x, 2, { - function() - local status = require("sidekick.status").get() - return status and vim.tbl_get(icons, status.kind, 1) - end, - cond = function() - return require("sidekick.status").get() ~= nil - end, - color = function() - local status = require("sidekick.status").get() - local hl = status and (status.busy and "DiagnosticWarn" or vim.tbl_get(icons, status.kind, 2)) - return { fg = Snacks.util.color(hl) } - end, - }) - - table.insert(opts.sections.lualine_x, 2, { - function() - local status = require("sidekick.status").cli() - return " " .. (#status > 1 and #status or "") - end, - cond = function() - return #require("sidekick.status").cli() > 0 - end, - color = function() - return { fg = Snacks.util.color("Special") } - end, - }) - end, -} -``` - - - - - -## [snacks.nvim](https://github.com/folke/snacks.nvim) _(optional)_ - - - - - -```lua -opts = { - picker = { - actions = { - sidekick_send = function(...) - return require("sidekick.cli.picker.snacks").send(...) - end, - }, - win = { - input = { - keys = { - [""] = { - "sidekick_send", - mode = { "n", "i" }, - }, - }, - }, - }, - }, -} -``` - - - - - - -```lua -{ - "folke/snacks.nvim", - optional = true, - opts = { - picker = { - actions = { - sidekick_send = function(...) - return require("sidekick.cli.picker.snacks").send(...) - end, - }, - win = { - input = { - keys = { - [""] = { - "sidekick_send", - mode = { "n", "i" }, - }, - }, - }, - }, - }, - }, -} -``` - - - - - - diff --git a/docs/extras/ai/supermaven.md b/docs/extras/ai/supermaven.md deleted file mode 100644 index d609f68140..0000000000 --- a/docs/extras/ai/supermaven.md +++ /dev/null @@ -1,209 +0,0 @@ -# `Supermaven` - - - -:::info -You can enable the extra with the `:LazyExtras` command. -Plugins marked as optional will only be configured if they are installed. -::: - -Below you can find a list of included plugins and their default settings. - -:::caution -You don't need to copy the default settings to your config. -They are only shown here for reference. -::: - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -## [supermaven-nvim](https://github.com/supermaven-inc/supermaven-nvim) - - - - - -```lua -opts = { - keymaps = { - accept_suggestion = nil, -- handled by nvim-cmp / blink.cmp - }, - disable_inline_completion = vim.g.ai_cmp, - ignore_filetypes = { "bigfile", "snacks_input", "snacks_notif" }, -} -``` - - - - - - -```lua -{ - "supermaven-inc/supermaven-nvim", - event = "InsertEnter", - cmd = { - "SupermavenUseFree", - "SupermavenUsePro", - }, - opts = { - keymaps = { - accept_suggestion = nil, -- handled by nvim-cmp / blink.cmp - }, - disable_inline_completion = vim.g.ai_cmp, - ignore_filetypes = { "bigfile", "snacks_input", "snacks_notif" }, - }, -} -``` - - - - - -## [supermaven-nvim](https://github.com/supermaven-inc/supermaven-nvim) - - add ai_accept action - - - - - - -```lua -opts = function() - require("supermaven-nvim.completion_preview").suggestion_group = "SupermavenSuggestion" - LazyVim.cmp.actions.ai_accept = function() - local suggestion = require("supermaven-nvim.completion_preview") - if suggestion.has_suggestion() then - LazyVim.create_undo() - vim.schedule(function() - suggestion.on_accept_suggestion() - end) - return true - end - end -end -``` - - - - - - -```lua -{ - "supermaven-inc/supermaven-nvim", - opts = function() - require("supermaven-nvim.completion_preview").suggestion_group = "SupermavenSuggestion" - LazyVim.cmp.actions.ai_accept = function() - local suggestion = require("supermaven-nvim.completion_preview") - if suggestion.has_suggestion() then - LazyVim.create_undo() - vim.schedule(function() - suggestion.on_accept_suggestion() - end) - return true - end - end - end, -} -``` - - - - - -## [supermaven-nvim](https://github.com/supermaven-inc/supermaven-nvim) - - - - - -```lua -opts = nil -``` - - - - - - -```lua -{ "supermaven-nvim" } -``` - - - - - -## [supermaven-nvim](https://github.com/supermaven-inc/supermaven-nvim) - - - - - -```lua -opts = nil -``` - - - - - - -```lua -{ "supermaven-nvim", "saghen/blink.compat" } -``` - - - - - -## [nvim-cmp](https://github.com/hrsh7th/nvim-cmp) _(optional)_ - - cmp integration - - - - - - -```lua -opts = function(_, opts) - if vim.g.ai_cmp then - table.insert(opts.sources, 1, { - name = "supermaven", - group_index = 1, - priority = 100, - }) - end -end -``` - - - - - - -```lua -{ - "hrsh7th/nvim-cmp", - optional = true, - dependencies = { "supermaven-nvim" }, - opts = function(_, opts) - if vim.g.ai_cmp then - table.insert(opts.sources, 1, { - name = "supermaven", - group_index = 1, - priority = 100, - }) - end - end, -} -``` - - - - - - diff --git a/docs/extras/ai/tabnine.md b/docs/extras/ai/tabnine.md deleted file mode 100644 index 871fe61db5..0000000000 --- a/docs/extras/ai/tabnine.md +++ /dev/null @@ -1,272 +0,0 @@ -# `Tabnine` - - - -:::info -You can enable the extra with the `:LazyExtras` command. -Plugins marked as optional will only be configured if they are installed. -::: - -Below you can find a list of included plugins and their default settings. - -:::caution -You don't need to copy the default settings to your config. -They are only shown here for reference. -::: - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -## [cmp-tabnine](https://github.com/tzachar/cmp-tabnine) - - Tabnine cmp source - - - - - - -```lua -opts = { - max_lines = 1000, - max_num_results = 3, - sort = true, -} -``` - - - - - - -```lua -{ - "tzachar/cmp-tabnine", - build = LazyVim.is_win() and "pwsh -noni .\\install.ps1" or "./install.sh", - opts = { - max_lines = 1000, - max_num_results = 3, - sort = true, - }, - config = function(_, opts) - require("cmp_tabnine.config"):setup(opts) - end, -} -``` - - - - - -## [cmp-tabnine](https://github.com/tzachar/cmp-tabnine) - - - - - -```lua -opts = nil -``` - - - - - - -```lua -{ "tzachar/cmp-tabnine" } -``` - - - - - -## [cmp-tabnine](https://github.com/tzachar/cmp-tabnine) - - - - - -```lua -opts = nil -``` - - - - - - -```lua -{ "tzachar/cmp-tabnine", "saghen/blink.compat" } -``` - - - - - -## [blink.compat](https://github.com/saghen/blink.compat) - - - - - -```lua -opts = nil -``` - - - - - - -```lua -"saghen/blink.compat" -``` - - - - - -## [nvim-cmp](https://github.com/hrsh7th/nvim-cmp) _(optional)_ - - - - - -```lua -opts = function(_, opts) - table.insert(opts.sources, 1, { - name = "cmp_tabnine", - group_index = 1, - priority = 100, - }) - - opts.formatting.format = LazyVim.inject.args(opts.formatting.format, function(entry, item) - -- Hide percentage in the menu - if entry.source.name == "cmp_tabnine" then - item.menu = "" - end - end) -end -``` - - - - - - -```lua -{ - "hrsh7th/nvim-cmp", - optional = true, - dependencies = { "tzachar/cmp-tabnine" }, - ---@param opts cmp.ConfigSchema - opts = function(_, opts) - table.insert(opts.sources, 1, { - name = "cmp_tabnine", - group_index = 1, - priority = 100, - }) - - opts.formatting.format = LazyVim.inject.args(opts.formatting.format, function(entry, item) - -- Hide percentage in the menu - if entry.source.name == "cmp_tabnine" then - item.menu = "" - end - end) - end, -} -``` - - - - - -## [blink.cmp](https://github.com/saghen/blink.cmp) _(optional)_ - - - - - -```lua -opts = { - sources = { - compat = { "cmp_tabnine" }, - providers = { - cmp_tabnine = { - kind = "TabNine", - score_offset = 100, - async = true, - }, - }, - }, -} -``` - - - - - - -```lua -{ - "saghen/blink.cmp", - optional = true, - dependencies = { "tzachar/cmp-tabnine", "saghen/blink.compat" }, - opts = { - sources = { - compat = { "cmp_tabnine" }, - providers = { - cmp_tabnine = { - kind = "TabNine", - score_offset = 100, - async = true, - }, - }, - }, - }, -} -``` - - - - - -## [lualine.nvim](https://github.com/nvim-lualine/lualine.nvim) _(optional)_ - - Show TabNine status in lualine - - - - - - -```lua -opts = function(_, opts) - local icon = LazyVim.config.icons.kinds.TabNine - table.insert(opts.sections.lualine_x, 2, LazyVim.lualine.cmp_source("cmp_tabnine", icon)) -end -``` - - - - - - -```lua -{ - "nvim-lualine/lualine.nvim", - optional = true, - event = "VeryLazy", - opts = function(_, opts) - local icon = LazyVim.config.icons.kinds.TabNine - table.insert(opts.sections.lualine_x, 2, LazyVim.lualine.cmp_source("cmp_tabnine", icon)) - end, -} -``` - - - - - - diff --git a/docs/extras/coding/blink.md b/docs/extras/coding/blink.md deleted file mode 100644 index b0c234dc25..0000000000 --- a/docs/extras/coding/blink.md +++ /dev/null @@ -1,469 +0,0 @@ -# `Blink` - - - -:::info -You can enable the extra with the `:LazyExtras` command. -Plugins marked as optional will only be configured if they are installed. -::: - -### Options - -Additional options for this extra can be configured in your [lua/config/options.lua](/configuration/general#options) file: - -```lua title="lua/config/options.lua" --- set to `true` to follow the main branch --- you need to have a working rust toolchain to build the plugin --- in this case. -vim.g.lazyvim_blink_main = false -``` - -Below you can find a list of included plugins and their default settings. - -:::caution -You don't need to copy the default settings to your config. -They are only shown here for reference. -::: - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -## [blink.cmp](https://github.com/saghen/blink.cmp) - - - - - -```lua -opts = { - snippets = { - preset = "default", - }, - - appearance = { - -- sets the fallback highlight groups to nvim-cmp's highlight groups - -- useful for when your theme doesn't support blink.cmp - -- will be removed in a future release, assuming themes add support - use_nvim_cmp_as_default = false, - -- set to 'mono' for 'Nerd Font Mono' or 'normal' for 'Nerd Font' - -- adjusts spacing to ensure icons are aligned - nerd_font_variant = "mono", - }, - - completion = { - accept = { - -- experimental auto-brackets support - auto_brackets = { - enabled = true, - }, - }, - menu = { - draw = { - treesitter = { "lsp" }, - }, - }, - documentation = { - auto_show = true, - auto_show_delay_ms = 200, - }, - ghost_text = { - enabled = vim.g.ai_cmp, - }, - }, - - -- experimental signature help support - -- signature = { enabled = true }, - - sources = { - -- adding any nvim-cmp sources here will enable them - -- with blink.compat - compat = {}, - default = { "lsp", "path", "snippets", "buffer" }, - }, - - cmdline = { - enabled = true, - keymap = { - preset = "cmdline", - [""] = false, - [""] = false, - }, - completion = { - list = { selection = { preselect = false } }, - menu = { - auto_show = function(ctx) - return vim.fn.getcmdtype() == ":" - end, - }, - ghost_text = { enabled = true }, - }, - }, - - keymap = { - preset = "enter", - [""] = { "select_and_accept" }, - }, -} -``` - - - - - - -```lua -{ - "saghen/blink.cmp", - version = not vim.g.lazyvim_blink_main and "*", - build = vim.g.lazyvim_blink_main and "cargo build --release", - opts_extend = { - "sources.completion.enabled_providers", - "sources.compat", - "sources.default", - }, - dependencies = { - "rafamadriz/friendly-snippets", - -- add blink.compat to dependencies - { - "saghen/blink.compat", - optional = true, -- make optional so it's only enabled if any extras need it - opts = {}, - version = not vim.g.lazyvim_blink_main and "*", - }, - }, - event = { "InsertEnter", "CmdlineEnter" }, - - ---@module 'blink.cmp' - ---@type blink.cmp.Config - opts = { - snippets = { - preset = "default", - }, - - appearance = { - -- sets the fallback highlight groups to nvim-cmp's highlight groups - -- useful for when your theme doesn't support blink.cmp - -- will be removed in a future release, assuming themes add support - use_nvim_cmp_as_default = false, - -- set to 'mono' for 'Nerd Font Mono' or 'normal' for 'Nerd Font' - -- adjusts spacing to ensure icons are aligned - nerd_font_variant = "mono", - }, - - completion = { - accept = { - -- experimental auto-brackets support - auto_brackets = { - enabled = true, - }, - }, - menu = { - draw = { - treesitter = { "lsp" }, - }, - }, - documentation = { - auto_show = true, - auto_show_delay_ms = 200, - }, - ghost_text = { - enabled = vim.g.ai_cmp, - }, - }, - - -- experimental signature help support - -- signature = { enabled = true }, - - sources = { - -- adding any nvim-cmp sources here will enable them - -- with blink.compat - compat = {}, - default = { "lsp", "path", "snippets", "buffer" }, - }, - - cmdline = { - enabled = true, - keymap = { - preset = "cmdline", - [""] = false, - [""] = false, - }, - completion = { - list = { selection = { preselect = false } }, - menu = { - auto_show = function(ctx) - return vim.fn.getcmdtype() == ":" - end, - }, - ghost_text = { enabled = true }, - }, - }, - - keymap = { - preset = "enter", - [""] = { "select_and_accept" }, - }, - }, - ---@param opts blink.cmp.Config | { sources: { compat: string[] } } - config = function(_, opts) - if opts.snippets and opts.snippets.preset == "default" then - opts.snippets.expand = LazyVim.cmp.expand - end - -- setup compat sources - local enabled = opts.sources.default - for _, source in ipairs(opts.sources.compat or {}) do - opts.sources.providers[source] = vim.tbl_deep_extend( - "force", - { name = source, module = "blink.compat.source" }, - opts.sources.providers[source] or {} - ) - if type(enabled) == "table" and not vim.tbl_contains(enabled, source) then - table.insert(enabled, source) - end - end - - -- add ai_accept to key - if not opts.keymap[""] then - if opts.keymap.preset == "super-tab" then -- super-tab - opts.keymap[""] = { - require("blink.cmp.keymap.presets").get("super-tab")[""][1], - LazyVim.cmp.map({ "snippet_forward", "ai_nes", "ai_accept" }), - "fallback", - } - else -- other presets - opts.keymap[""] = { - LazyVim.cmp.map({ "snippet_forward", "ai_nes", "ai_accept" }), - "fallback", - } - end - end - - -- Unset custom prop to pass blink.cmp validation - opts.sources.compat = nil - - -- check if we need to override symbol kinds - for _, provider in pairs(opts.sources.providers or {}) do - ---@cast provider blink.cmp.SourceProviderConfig|{kind?:string} - if provider.kind then - local CompletionItemKind = require("blink.cmp.types").CompletionItemKind - local kind_idx = #CompletionItemKind + 1 - - CompletionItemKind[kind_idx] = provider.kind - ---@diagnostic disable-next-line: no-unknown - CompletionItemKind[provider.kind] = kind_idx - - ---@type fun(ctx: blink.cmp.Context, items: blink.cmp.CompletionItem[]): blink.cmp.CompletionItem[] - local transform_items = provider.transform_items - ---@param ctx blink.cmp.Context - ---@param items blink.cmp.CompletionItem[] - provider.transform_items = function(ctx, items) - items = transform_items and transform_items(ctx, items) or items - for _, item in ipairs(items) do - item.kind = kind_idx or item.kind - item.kind_icon = LazyVim.config.icons.kinds[item.kind_name] or item.kind_icon or nil - end - return items - end - - -- Unset custom prop to pass blink.cmp validation - provider.kind = nil - end - end - - require("blink.cmp").setup(opts) - end, -} -``` - - - - - -## [friendly-snippets](https://github.com/rafamadriz/friendly-snippets) - - - - - -```lua -opts = nil -``` - - - - - - -```lua -{ - "rafamadriz/friendly-snippets", - -- add blink.compat to dependencies - { - "saghen/blink.compat", - optional = true, -- make optional so it's only enabled if any extras need it - opts = {}, - version = not vim.g.lazyvim_blink_main and "*", - }, -} -``` - - - - - -## [blink.cmp](https://github.com/saghen/blink.cmp) - - add icons - - - - - - -```lua -opts = function(_, opts) - opts.appearance = opts.appearance or {} - opts.appearance.kind_icons = vim.tbl_extend("force", opts.appearance.kind_icons or {}, LazyVim.config.icons.kinds) -end -``` - - - - - - -```lua -{ - "saghen/blink.cmp", - opts = function(_, opts) - opts.appearance = opts.appearance or {} - opts.appearance.kind_icons = vim.tbl_extend("force", opts.appearance.kind_icons or {}, LazyVim.config.icons.kinds) - end, -} -``` - - - - - -## [blink.cmp](https://github.com/saghen/blink.cmp) - - lazydev - - - - - - -```lua -opts = { - sources = { - per_filetype = { - lua = { inherit_defaults = true, "lazydev" }, - }, - providers = { - lazydev = { - name = "LazyDev", - module = "lazydev.integrations.blink", - score_offset = 100, -- show at a higher priority than lsp - }, - }, - }, -} -``` - - - - - - -```lua -{ - "saghen/blink.cmp", - opts = { - sources = { - per_filetype = { - lua = { inherit_defaults = true, "lazydev" }, - }, - providers = { - lazydev = { - name = "LazyDev", - module = "lazydev.integrations.blink", - score_offset = 100, -- show at a higher priority than lsp - }, - }, - }, - }, -} -``` - - - - - -## [blink.compat](https://github.com/saghen/blink.compat) _(optional)_ - - add blink.compat to dependencies - - - - - - -```lua -opts = {} -``` - - - - - - -```lua -{ - "saghen/blink.compat", - optional = true, -- make optional so it's only enabled if any extras need it - opts = {}, - version = not vim.g.lazyvim_blink_main and "*", -} -``` - - - - - -## [catppuccin](https://github.com/catppuccin/nvim) _(optional)_ - - catppuccin support - - - - - - -```lua -opts = { - integrations = { blink_cmp = true }, -} -``` - - - - - - -```lua -{ - "catppuccin", - optional = true, - opts = { - integrations = { blink_cmp = true }, - }, -} -``` - - - - - - diff --git a/docs/extras/coding/luasnip.md b/docs/extras/coding/luasnip.md deleted file mode 100644 index 5c009f50e9..0000000000 --- a/docs/extras/coding/luasnip.md +++ /dev/null @@ -1,267 +0,0 @@ -# `Luasnip` - - - -:::info -You can enable the extra with the `:LazyExtras` command. -Plugins marked as optional will only be configured if they are installed. -::: - -Below you can find a list of included plugins and their default settings. - -:::caution -You don't need to copy the default settings to your config. -They are only shown here for reference. -::: - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -## [LuaSnip](https://github.com/L3MON4D3/LuaSnip) - - add luasnip - - - - - - -```lua -opts = { - history = true, - delete_check_events = "TextChanged", -} -``` - - - - - - -```lua -{ - "L3MON4D3/LuaSnip", - lazy = true, - build = (not LazyVim.is_win()) - and "echo 'NOTE: jsregexp is optional, so not a big deal if it fails to build'; make install_jsregexp" - or nil, - dependencies = { - { - "rafamadriz/friendly-snippets", - config = function() - require("luasnip.loaders.from_vscode").lazy_load() - require("luasnip.loaders.from_vscode").lazy_load({ paths = { vim.fn.stdpath("config") .. "/snippets" } }) - end, - }, - }, - opts = { - history = true, - delete_check_events = "TextChanged", - }, -} -``` - - - - - -## [friendly-snippets](https://github.com/rafamadriz/friendly-snippets) - - - - - -```lua -opts = {} -``` - - - - - - -```lua -{ - "rafamadriz/friendly-snippets", - config = function() - require("luasnip.loaders.from_vscode").lazy_load() - require("luasnip.loaders.from_vscode").lazy_load({ paths = { vim.fn.stdpath("config") .. "/snippets" } }) - end, -} -``` - - - - - -## [LuaSnip](https://github.com/L3MON4D3/LuaSnip) - - add snippet_forward action - - - - - - -```lua -opts = function() - LazyVim.cmp.actions.snippet_forward = function() - if require("luasnip").jumpable(1) then - vim.schedule(function() - require("luasnip").jump(1) - end) - return true - end - end - LazyVim.cmp.actions.snippet_stop = function() - if require("luasnip").expand_or_jumpable() then -- or just jumpable(1) is fine? - require("luasnip").unlink_current() - return true - end - end -end -``` - - - - - - -```lua -{ - "L3MON4D3/LuaSnip", - opts = function() - LazyVim.cmp.actions.snippet_forward = function() - if require("luasnip").jumpable(1) then - vim.schedule(function() - require("luasnip").jump(1) - end) - return true - end - end - LazyVim.cmp.actions.snippet_stop = function() - if require("luasnip").expand_or_jumpable() then -- or just jumpable(1) is fine? - require("luasnip").unlink_current() - return true - end - end - end, -} -``` - - - - - -## [cmp_luasnip](https://github.com/saadparwaiz1/cmp_luasnip) - - - - - -```lua -opts = nil -``` - - - - - - -```lua -{ "saadparwaiz1/cmp_luasnip" } -``` - - - - - -## [nvim-cmp](https://github.com/hrsh7th/nvim-cmp) _(optional)_ - - nvim-cmp integration - - - - - - -```lua -opts = function(_, opts) - opts.snippet = { - expand = function(args) - require("luasnip").lsp_expand(args.body) - end, - } - table.insert(opts.sources, { name = "luasnip" }) -end -``` - - - - - - -```lua -{ - "hrsh7th/nvim-cmp", - optional = true, - dependencies = { "saadparwaiz1/cmp_luasnip" }, - opts = function(_, opts) - opts.snippet = { - expand = function(args) - require("luasnip").lsp_expand(args.body) - end, - } - table.insert(opts.sources, { name = "luasnip" }) - end, - -- stylua: ignore - keys = { - { "", function() require("luasnip").jump(1) end, mode = "s" }, - { "", function() require("luasnip").jump(-1) end, mode = { "i", "s" } }, - }, -} -``` - - - - - -## [blink.cmp](https://github.com/saghen/blink.cmp) _(optional)_ - - blink.cmp integration - - - - - - -```lua -opts = { - snippets = { - preset = "luasnip", - }, -} -``` - - - - - - -```lua -{ - "saghen/blink.cmp", - optional = true, - opts = { - snippets = { - preset = "luasnip", - }, - }, -} -``` - - - - - - diff --git a/docs/extras/coding/mini-comment.md b/docs/extras/coding/mini-comment.md deleted file mode 100644 index 1affa0afeb..0000000000 --- a/docs/extras/coding/mini-comment.md +++ /dev/null @@ -1,90 +0,0 @@ -# `Mini-comment` - - - -:::info -You can enable the extra with the `:LazyExtras` command. -Plugins marked as optional will only be configured if they are installed. -::: - -Below you can find a list of included plugins and their default settings. - -:::caution -You don't need to copy the default settings to your config. -They are only shown here for reference. -::: - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -## [mini.comment](https://github.com/nvim-mini/mini.comment) - - - - - -```lua -opts = { - options = { - custom_commentstring = function() - return require("ts_context_commentstring.internal").calculate_commentstring() or vim.bo.commentstring - end, - }, -} -``` - - - - - - -```lua -{ - "nvim-mini/mini.comment", - event = "VeryLazy", - opts = { - options = { - custom_commentstring = function() - return require("ts_context_commentstring.internal").calculate_commentstring() or vim.bo.commentstring - end, - }, - }, -} -``` - - - - - -## [nvim-ts-context-commentstring](https://github.com/JoosepAlviste/nvim-ts-context-commentstring) - - - - - -```lua -opts = { - enable_autocmd = false, -} -``` - - - - - - -```lua -{ - "JoosepAlviste/nvim-ts-context-commentstring", - lazy = true, - opts = { - enable_autocmd = false, - }, -} -``` - - - - - - diff --git a/docs/extras/coding/mini-snippets.md b/docs/extras/coding/mini-snippets.md deleted file mode 100644 index 5a5c70d48b..0000000000 --- a/docs/extras/coding/mini-snippets.md +++ /dev/null @@ -1,340 +0,0 @@ -# `Mini-snippets` - - - -:::info -You can enable the extra with the `:LazyExtras` command. -Plugins marked as optional will only be configured if they are installed. -::: - -### Options - -Additional options for this extra can be configured in your [lua/config/options.lua](/configuration/general#options) file: - -```lua title="lua/config/options.lua" --- Set to `false` to prevent "non-lsp snippets"" from appearing inside completion windows --- Motivation: Less clutter in completion windows and a more direct usage of snippets -vim.g.lazyvim_mini_snippets_in_completion = true - --- NOTE: Please also read: --- https://github.com/nvim-mini/mini.nvim/blob/main/readmes/mini-snippets.md#expand --- :h MiniSnippets-session - --- Example override for your own config: ---[[ -return { -{ -"nvim-mini/mini.snippets", -opts = function(_, opts) --- By default, for opts.snippets, the extra for mini.snippets only adds gen_loader.from_lang() --- This provides a sensible quickstart, integrating with friendly-snippets --- and your own language-specific snippets --- --- In order to change opts.snippets, replace the entire table inside your own opts - -local snippets, config_path = require("mini.snippets"), vim.fn.stdpath("config") - -opts.snippets = { -- override opts.snippets provided by extra... --- Load custom file with global snippets first (order matters) -snippets.gen_loader.from_file(config_path .. "/snippets/global.json"), - --- Load snippets based on current language by reading files from --- "snippets/" subdirectories from 'runtimepath' directories. -snippets.gen_loader.from_lang(), -- this is the default in the extra... -} -end, -}, -} ---]] -``` - -Below you can find a list of included plugins and their default settings. - -:::caution -You don't need to copy the default settings to your config. -They are only shown here for reference. -::: - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -## [mini.snippets](https://github.com/nvim-mini/mini.snippets) - - - - - -```lua -opts = function() - ---@diagnostic disable-next-line: duplicate-set-field - LazyVim.cmp.actions.snippet_stop = function() end -- by design, should not stop the session! - ---@diagnostic disable-next-line: duplicate-set-field - LazyVim.cmp.actions.snippet_forward = function() - return jump("next") - end - - local mini_snippets = require("mini.snippets") - return { - snippets = { mini_snippets.gen_loader.from_lang() }, - - -- Following the behavior of vim.snippets, - -- the intended usage of is to be able to temporarily exit into normal mode for quick edits. - -- - -- If you'd rather stop the snippet on , activate the line below in your own config: - -- mappings = { stop = "" }, -- by default, see :h MiniSnippets-session - - expand = { - select = function(snippets, insert) - -- Close completion window on snippet select - vim.ui.select - -- Needed to remove virtual text for fzf-lua and telescope, but not for mini.pick... - local select = expand_select_override or MiniSnippets.default_select - select(snippets, insert) - end, - }, - } -end -``` - - - - - - -```lua -{ - "nvim-mini/mini.snippets", - event = "InsertEnter", -- don't depend on other plugins to load... - dependencies = "rafamadriz/friendly-snippets", - opts = function() - ---@diagnostic disable-next-line: duplicate-set-field - LazyVim.cmp.actions.snippet_stop = function() end -- by design, should not stop the session! - ---@diagnostic disable-next-line: duplicate-set-field - LazyVim.cmp.actions.snippet_forward = function() - return jump("next") - end - - local mini_snippets = require("mini.snippets") - return { - snippets = { mini_snippets.gen_loader.from_lang() }, - - -- Following the behavior of vim.snippets, - -- the intended usage of is to be able to temporarily exit into normal mode for quick edits. - -- - -- If you'd rather stop the snippet on , activate the line below in your own config: - -- mappings = { stop = "" }, -- by default, see :h MiniSnippets-session - - expand = { - select = function(snippets, insert) - -- Close completion window on snippet select - vim.ui.select - -- Needed to remove virtual text for fzf-lua and telescope, but not for mini.pick... - local select = expand_select_override or MiniSnippets.default_select - select(snippets, insert) - end, - }, - } - end, -} -``` - - - - - -## [cmp-mini-snippets](https://github.com/abeldekat/cmp-mini-snippets) - - - - - -```lua -opts = nil -``` - - - - - - -```lua -{ "abeldekat/cmp-mini-snippets" } -``` - - - - - -## [nvim-cmp](https://github.com/hrsh7th/nvim-cmp) _(optional)_ - - nvim-cmp integration - - - - - - -```lua -opts = function(_, opts) - local cmp = require("cmp") - local cmp_config = require("cmp.config") - - opts.snippet = { - expand = function(args) - expand_from_lsp(args.body) - cmp.resubscribe({ "TextChangedI", "TextChangedP" }) - cmp_config.set_onetime({ sources = {} }) - end, - } - - if include_in_completion then - table.insert(opts.sources, { name = "mini_snippets" }) - else - expand_select_override = function(snippets, insert) - -- stylua: ignore - if cmp.visible() then cmp.close() end - MiniSnippets.default_select(snippets, insert) - end - end -end -``` - - - - - - -```lua -{ - "hrsh7th/nvim-cmp", - optional = true, - dependencies = include_in_completion and { "abeldekat/cmp-mini-snippets" } or nil, - opts = function(_, opts) - local cmp = require("cmp") - local cmp_config = require("cmp.config") - - opts.snippet = { - expand = function(args) - expand_from_lsp(args.body) - cmp.resubscribe({ "TextChangedI", "TextChangedP" }) - cmp_config.set_onetime({ sources = {} }) - end, - } - - if include_in_completion then - table.insert(opts.sources, { name = "mini_snippets" }) - else - expand_select_override = function(snippets, insert) - -- stylua: ignore - if cmp.visible() then cmp.close() end - MiniSnippets.default_select(snippets, insert) - end - end - end, - -- stylua: ignore - -- counterpart to defined in cmp.mappings - keys = include_in_completion and { { "", function() jump("prev") end, mode = "i" } } or nil, -} -``` - - - - - -## [blink.cmp](https://github.com/saghen/blink.cmp) _(optional)_ - - blink.cmp integration - - - - - - -```lua -opts = function(_, opts) - -- Return early - if include_in_completion then - opts.snippets = { preset = "mini_snippets" } - return - end - - -- Standalone -- - local blink = require("blink.cmp") - expand_select_override = function(snippets, insert) - -- Schedule, otherwise blink's virtual text is not removed on vim.ui.select - blink.cancel() - vim.schedule(function() - MiniSnippets.default_select(snippets, insert) - end) - end - -- - -- Blink performs a require on blink.cmp.sources.snippets.default - -- By removing the source, that default engine will not be used - opts.sources.default = vim.tbl_filter(function(source) - return source ~= "snippets" - end, opts.sources.default) - opts.snippets = { -- need to repeat blink's preset here - expand = function(snippet) - expand_from_lsp(snippet) - blink.resubscribe() - end, - active = function() - return MiniSnippets.session.get(false) ~= nil - end, - jump = function(direction) - jump(direction == -1 and "prev" or "next") - end, - } -end -``` - - - - - - -```lua -{ - "saghen/blink.cmp", - optional = true, - opts = function(_, opts) - -- Return early - if include_in_completion then - opts.snippets = { preset = "mini_snippets" } - return - end - - -- Standalone -- - local blink = require("blink.cmp") - expand_select_override = function(snippets, insert) - -- Schedule, otherwise blink's virtual text is not removed on vim.ui.select - blink.cancel() - vim.schedule(function() - MiniSnippets.default_select(snippets, insert) - end) - end - -- - -- Blink performs a require on blink.cmp.sources.snippets.default - -- By removing the source, that default engine will not be used - opts.sources.default = vim.tbl_filter(function(source) - return source ~= "snippets" - end, opts.sources.default) - opts.snippets = { -- need to repeat blink's preset here - expand = function(snippet) - expand_from_lsp(snippet) - blink.resubscribe() - end, - active = function() - return MiniSnippets.session.get(false) ~= nil - end, - jump = function(direction) - jump(direction == -1 and "prev" or "next") - end, - } - end, -} -``` - - - - - - diff --git a/docs/extras/coding/mini-surround.md b/docs/extras/coding/mini-surround.md deleted file mode 100644 index 18936e944b..0000000000 --- a/docs/extras/coding/mini-surround.md +++ /dev/null @@ -1,83 +0,0 @@ -# `Mini-surround` - - - -:::info -You can enable the extra with the `:LazyExtras` command. -Plugins marked as optional will only be configured if they are installed. -::: - -Below you can find a list of included plugins and their default settings. - -:::caution -You don't need to copy the default settings to your config. -They are only shown here for reference. -::: - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -## [mini.surround](https://github.com/nvim-mini/mini.surround) - - - - - -```lua -opts = { - mappings = { - add = "gsa", -- Add surrounding in Normal and Visual modes - delete = "gsd", -- Delete surrounding - find = "gsf", -- Find surrounding (to the right) - find_left = "gsF", -- Find surrounding (to the left) - highlight = "gsh", -- Highlight surrounding - replace = "gsr", -- Replace surrounding - update_n_lines = "gsn", -- Update `n_lines` - }, -} -``` - - - - - - -```lua -{ - "nvim-mini/mini.surround", - keys = function(_, keys) - -- Populate the keys based on the user's options - local opts = LazyVim.opts("mini.surround") - local mappings = { - { opts.mappings.add, desc = "Add Surrounding", mode = { "n", "x" } }, - { opts.mappings.delete, desc = "Delete Surrounding" }, - { opts.mappings.find, desc = "Find Right Surrounding" }, - { opts.mappings.find_left, desc = "Find Left Surrounding" }, - { opts.mappings.highlight, desc = "Highlight Surrounding" }, - { opts.mappings.replace, desc = "Replace Surrounding" }, - { opts.mappings.update_n_lines, desc = "Update `MiniSurround.config.n_lines`" }, - } - mappings = vim.tbl_filter(function(m) - return m[1] and #m[1] > 0 - end, mappings) - return vim.list_extend(mappings, keys) - end, - opts = { - mappings = { - add = "gsa", -- Add surrounding in Normal and Visual modes - delete = "gsd", -- Delete surrounding - find = "gsf", -- Find surrounding (to the right) - find_left = "gsF", -- Find surrounding (to the left) - highlight = "gsh", -- Highlight surrounding - replace = "gsr", -- Replace surrounding - update_n_lines = "gsn", -- Update `n_lines` - }, - }, -} -``` - - - - - - diff --git a/docs/extras/coding/neogen.md b/docs/extras/coding/neogen.md deleted file mode 100644 index d3270a726e..0000000000 --- a/docs/extras/coding/neogen.md +++ /dev/null @@ -1,101 +0,0 @@ -# `Neogen` - - - -:::info -You can enable the extra with the `:LazyExtras` command. -Plugins marked as optional will only be configured if they are installed. -::: - -Below you can find a list of included plugins and their default settings. - -:::caution -You don't need to copy the default settings to your config. -They are only shown here for reference. -::: - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -## [neogen](https://github.com/danymat/neogen) - - - - - -```lua -opts = function(_, opts) - if opts.snippet_engine ~= nil then - return - end - - local map = { - ["LuaSnip"] = "luasnip", - ["mini.snippets"] = "mini", - ["nvim-snippy"] = "snippy", - ["vim-vsnip"] = "vsnip", - } - - for plugin, engine in pairs(map) do - if LazyVim.has(plugin) then - opts.snippet_engine = engine - return - end - end - - if vim.snippet then - opts.snippet_engine = "nvim" - end -end -``` - - - - - - -```lua -{ - "danymat/neogen", - dependencies = LazyVim.has("mini.snippets") and { "mini.snippets" } or {}, - cmd = "Neogen", - keys = { - { - "cn", - function() - require("neogen").generate() - end, - desc = "Generate Annotations (Neogen)", - }, - }, - opts = function(_, opts) - if opts.snippet_engine ~= nil then - return - end - - local map = { - ["LuaSnip"] = "luasnip", - ["mini.snippets"] = "mini", - ["nvim-snippy"] = "snippy", - ["vim-vsnip"] = "vsnip", - } - - for plugin, engine in pairs(map) do - if LazyVim.has(plugin) then - opts.snippet_engine = engine - return - end - end - - if vim.snippet then - opts.snippet_engine = "nvim" - end - end, -} -``` - - - - - - diff --git a/docs/extras/coding/nvim-cmp.md b/docs/extras/coding/nvim-cmp.md deleted file mode 100644 index 162e0be8da..0000000000 --- a/docs/extras/coding/nvim-cmp.md +++ /dev/null @@ -1,383 +0,0 @@ -# `Nvim-cmp` - - - -:::info -You can enable the extra with the `:LazyExtras` command. -Plugins marked as optional will only be configured if they are installed. -::: - -Below you can find a list of included plugins and their default settings. - -:::caution -You don't need to copy the default settings to your config. -They are only shown here for reference. -::: - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -## [nvim-cmp](https://github.com/hrsh7th/nvim-cmp) - - Setup nvim-cmp - - - - - - -```lua -opts = function() - -- Register nvim-cmp lsp capabilities - vim.lsp.config("*", { capabilities = require("cmp_nvim_lsp").default_capabilities() }) - - vim.api.nvim_set_hl(0, "CmpGhostText", { link = "Comment", default = true }) - local cmp = require("cmp") - local defaults = require("cmp.config.default")() - local auto_select = true - return { - auto_brackets = {}, -- configure any filetype to auto add brackets - completion = { - completeopt = "menu,menuone,noinsert" .. (auto_select and "" or ",noselect"), - }, - preselect = auto_select and cmp.PreselectMode.Item or cmp.PreselectMode.None, - mapping = cmp.mapping.preset.insert({ - [""] = cmp.mapping.scroll_docs(-4), - [""] = cmp.mapping.scroll_docs(4), - [""] = cmp.mapping.select_next_item({ behavior = cmp.SelectBehavior.Insert }), - [""] = cmp.mapping.select_prev_item({ behavior = cmp.SelectBehavior.Insert }), - [""] = cmp.mapping.complete(), - [""] = LazyVim.cmp.confirm({ select = auto_select }), - [""] = LazyVim.cmp.confirm({ select = true }), - [""] = LazyVim.cmp.confirm({ behavior = cmp.ConfirmBehavior.Replace }), -- Accept currently selected item. Set `select` to `false` to only confirm explicitly selected items. - [""] = function(fallback) - cmp.abort() - fallback() - end, - [""] = function(fallback) - return LazyVim.cmp.map({ "snippet_forward", "ai_nes", "ai_accept" }, fallback)() - end, - }), - sources = cmp.config.sources({ - { name = "lazydev" }, - { name = "nvim_lsp" }, - { name = "path" }, - }, { - { name = "buffer" }, - }), - formatting = { - format = function(entry, item) - local icons = LazyVim.config.icons.kinds - if icons[item.kind] then - item.kind = icons[item.kind] .. item.kind - end - - local widths = { - abbr = vim.g.cmp_widths and vim.g.cmp_widths.abbr or 40, - menu = vim.g.cmp_widths and vim.g.cmp_widths.menu or 30, - } - - for key, width in pairs(widths) do - if item[key] and vim.fn.strdisplaywidth(item[key]) > width then - item[key] = vim.fn.strcharpart(item[key], 0, width - 1) .. "…" - end - end - - return item - end, - }, - experimental = { - -- only show ghost text when we show ai completions - ghost_text = vim.g.ai_cmp and { - hl_group = "CmpGhostText", - } or false, - }, - sorting = defaults.sorting, - } -end -``` - - - - - - -```lua -{ - "hrsh7th/nvim-cmp", - version = false, -- last release is way too old - event = "InsertEnter", - dependencies = { - "hrsh7th/cmp-nvim-lsp", - "hrsh7th/cmp-buffer", - "hrsh7th/cmp-path", - }, - -- Not all LSP servers add brackets when completing a function. - -- To better deal with this, LazyVim adds a custom option to cmp, - -- that you can configure. For example: - -- - -- ```lua - -- opts = { - -- auto_brackets = { "python" } - -- } - -- ``` - opts = function() - -- Register nvim-cmp lsp capabilities - vim.lsp.config("*", { capabilities = require("cmp_nvim_lsp").default_capabilities() }) - - vim.api.nvim_set_hl(0, "CmpGhostText", { link = "Comment", default = true }) - local cmp = require("cmp") - local defaults = require("cmp.config.default")() - local auto_select = true - return { - auto_brackets = {}, -- configure any filetype to auto add brackets - completion = { - completeopt = "menu,menuone,noinsert" .. (auto_select and "" or ",noselect"), - }, - preselect = auto_select and cmp.PreselectMode.Item or cmp.PreselectMode.None, - mapping = cmp.mapping.preset.insert({ - [""] = cmp.mapping.scroll_docs(-4), - [""] = cmp.mapping.scroll_docs(4), - [""] = cmp.mapping.select_next_item({ behavior = cmp.SelectBehavior.Insert }), - [""] = cmp.mapping.select_prev_item({ behavior = cmp.SelectBehavior.Insert }), - [""] = cmp.mapping.complete(), - [""] = LazyVim.cmp.confirm({ select = auto_select }), - [""] = LazyVim.cmp.confirm({ select = true }), - [""] = LazyVim.cmp.confirm({ behavior = cmp.ConfirmBehavior.Replace }), -- Accept currently selected item. Set `select` to `false` to only confirm explicitly selected items. - [""] = function(fallback) - cmp.abort() - fallback() - end, - [""] = function(fallback) - return LazyVim.cmp.map({ "snippet_forward", "ai_nes", "ai_accept" }, fallback)() - end, - }), - sources = cmp.config.sources({ - { name = "lazydev" }, - { name = "nvim_lsp" }, - { name = "path" }, - }, { - { name = "buffer" }, - }), - formatting = { - format = function(entry, item) - local icons = LazyVim.config.icons.kinds - if icons[item.kind] then - item.kind = icons[item.kind] .. item.kind - end - - local widths = { - abbr = vim.g.cmp_widths and vim.g.cmp_widths.abbr or 40, - menu = vim.g.cmp_widths and vim.g.cmp_widths.menu or 30, - } - - for key, width in pairs(widths) do - if item[key] and vim.fn.strdisplaywidth(item[key]) > width then - item[key] = vim.fn.strcharpart(item[key], 0, width - 1) .. "…" - end - end - - return item - end, - }, - experimental = { - -- only show ghost text when we show ai completions - ghost_text = vim.g.ai_cmp and { - hl_group = "CmpGhostText", - } or false, - }, - sorting = defaults.sorting, - } - end, - main = "lazyvim.util.cmp", -} -``` - - - - - -## [cmp-nvim-lsp](https://github.com/hrsh7th/cmp-nvim-lsp) - - - - - -```lua -opts = nil -``` - - - - - - -```lua -{ - "hrsh7th/cmp-nvim-lsp", - "hrsh7th/cmp-buffer", - "hrsh7th/cmp-path", -} -``` - - - - - -## [cmp-buffer](https://github.com/hrsh7th/cmp-buffer) - - - - - -```lua -opts = nil -``` - - - - - - -```lua -"hrsh7th/cmp-buffer" -``` - - - - - -## [cmp-path](https://github.com/hrsh7th/cmp-path) - - - - - -```lua -opts = nil -``` - - - - - - -```lua -"hrsh7th/cmp-path" -``` - - - - - -## [nvim-cmp](https://github.com/hrsh7th/nvim-cmp) - - snippets - - - - - - -```lua -opts = function(_, opts) - opts.snippet = { - expand = function(item) - return LazyVim.cmp.expand(item.body) - end, - } - if LazyVim.has("nvim-snippets") then - table.insert(opts.sources, { name = "snippets" }) - end -end -``` - - - - - - -```lua -{ - "hrsh7th/nvim-cmp", - dependencies = { - { - "garymjr/nvim-snippets", - opts = { - friendly_snippets = true, - }, - dependencies = { "rafamadriz/friendly-snippets" }, - }, - }, - opts = function(_, opts) - opts.snippet = { - expand = function(item) - return LazyVim.cmp.expand(item.body) - end, - } - if LazyVim.has("nvim-snippets") then - table.insert(opts.sources, { name = "snippets" }) - end - end, -} -``` - - - - - -## [nvim-snippets](https://github.com/garymjr/nvim-snippets) - - - - - -```lua -opts = { - friendly_snippets = true, -} -``` - - - - - - -```lua -{ - "garymjr/nvim-snippets", - opts = { - friendly_snippets = true, - }, - dependencies = { "rafamadriz/friendly-snippets" }, -} -``` - - - - - -## [friendly-snippets](https://github.com/rafamadriz/friendly-snippets) - - - - - -```lua -opts = nil -``` - - - - - - -```lua -{ "rafamadriz/friendly-snippets" } -``` - - - - - - diff --git a/docs/extras/coding/yanky.md b/docs/extras/coding/yanky.md deleted file mode 100644 index 4ae853c7c1..0000000000 --- a/docs/extras/coding/yanky.md +++ /dev/null @@ -1,95 +0,0 @@ -# yanky.nvim - -> The default LazyVim mappings to cycle yank history are `[y` and `]y` - - - -:::info -You can enable the extra with the `:LazyExtras` command. -Plugins marked as optional will only be configured if they are installed. -::: - -Below you can find a list of included plugins and their default settings. - -:::caution -You don't need to copy the default settings to your config. -They are only shown here for reference. -::: - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -## [yanky.nvim](https://github.com/gbprod/yanky.nvim) - - - - - -```lua -opts = { - system_clipboard = { - sync_with_ring = not vim.env.SSH_CONNECTION, - }, - highlight = { timer = 150 }, -} -``` - - - - - - -```lua -{ - "gbprod/yanky.nvim", - recommended = true, - desc = "Better Yank/Paste", - event = "LazyFile", - opts = { - system_clipboard = { - sync_with_ring = not vim.env.SSH_CONNECTION, - }, - highlight = { timer = 150 }, - }, - keys = { - { - "p", - function() - if LazyVim.pick.picker.name == "telescope" then - require("telescope").extensions.yank_history.yank_history({}) - elseif LazyVim.pick.picker.name == "snacks" then - Snacks.picker.yanky() - else - vim.cmd([[YankyRingHistory]]) - end - end, - mode = { "n", "x" }, - desc = "Open Yank History", - }, - -- stylua: ignore - { "y", "(YankyYank)", mode = { "n", "x" }, desc = "Yank Text" }, - { "p", "(YankyPutAfter)", mode = { "n", "x" }, desc = "Put Text After Cursor" }, - { "P", "(YankyPutBefore)", mode = { "n", "x" }, desc = "Put Text Before Cursor" }, - { "gp", "(YankyGPutAfter)", mode = { "n", "x" }, desc = "Put Text After Selection" }, - { "gP", "(YankyGPutBefore)", mode = { "n", "x" }, desc = "Put Text Before Selection" }, - { "[y", "(YankyCycleForward)", desc = "Cycle Forward Through Yank History" }, - { "]y", "(YankyCycleBackward)", desc = "Cycle Backward Through Yank History" }, - { "]p", "(YankyPutIndentAfterLinewise)", desc = "Put Indented After Cursor (Linewise)" }, - { "[p", "(YankyPutIndentBeforeLinewise)", desc = "Put Indented Before Cursor (Linewise)" }, - { "]P", "(YankyPutIndentAfterLinewise)", desc = "Put Indented After Cursor (Linewise)" }, - { "[P", "(YankyPutIndentBeforeLinewise)", desc = "Put Indented Before Cursor (Linewise)" }, - { ">p", "(YankyPutIndentAfterShiftRight)", desc = "Put and Indent Right" }, - { "(YankyPutIndentAfterShiftLeft)", desc = "Put and Indent Left" }, - { ">P", "(YankyPutIndentBeforeShiftRight)", desc = "Put Before and Indent Right" }, - { "(YankyPutIndentBeforeShiftLeft)", desc = "Put Before and Indent Left" }, - { "=p", "(YankyPutAfterFilter)", desc = "Put After Applying a Filter" }, - { "=P", "(YankyPutBeforeFilter)", desc = "Put Before Applying a Filter" }, - }, -} -``` - - - - - - diff --git a/docs/extras/dap/core.md b/docs/extras/dap/core.md deleted file mode 100644 index b3a46c7e6f..0000000000 --- a/docs/extras/dap/core.md +++ /dev/null @@ -1,293 +0,0 @@ -# DAP Core - - - -:::info -You can enable the extra with the `:LazyExtras` command. -Plugins marked as optional will only be configured if they are installed. -::: - -Below you can find a list of included plugins and their default settings. - -:::caution -You don't need to copy the default settings to your config. -They are only shown here for reference. -::: - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -## [nvim-dap](https://github.com/mfussenegger/nvim-dap) - - - - - -```lua -opts = {} -``` - - - - - - -```lua -{ - "mfussenegger/nvim-dap", - recommended = true, - desc = "Debugging support. Requires language specific adapters to be configured. (see lang extras)", - - dependencies = { - "rcarriga/nvim-dap-ui", - -- virtual text for the debugger - { - "theHamsta/nvim-dap-virtual-text", - opts = {}, - }, - }, - - -- stylua: ignore - keys = { - { "dB", function() require("dap").set_breakpoint(vim.fn.input('Breakpoint condition: ')) end, desc = "Breakpoint Condition" }, - { "db", function() require("dap").toggle_breakpoint() end, desc = "Toggle Breakpoint" }, - { "dc", function() require("dap").continue() end, desc = "Run/Continue" }, - { "da", function() require("dap").continue({ before = get_args }) end, desc = "Run with Args" }, - { "dC", function() require("dap").run_to_cursor() end, desc = "Run to Cursor" }, - { "dg", function() require("dap").goto_() end, desc = "Go to Line (No Execute)" }, - { "di", function() require("dap").step_into() end, desc = "Step Into" }, - { "dj", function() require("dap").down() end, desc = "Down" }, - { "dk", function() require("dap").up() end, desc = "Up" }, - { "dl", function() require("dap").run_last() end, desc = "Run Last" }, - { "do", function() require("dap").step_out() end, desc = "Step Out" }, - { "dO", function() require("dap").step_over() end, desc = "Step Over" }, - { "dP", function() require("dap").pause() end, desc = "Pause" }, - { "dr", function() require("dap").repl.toggle() end, desc = "Toggle REPL" }, - { "ds", function() require("dap").session() end, desc = "Session" }, - { "dt", function() require("dap").terminate() end, desc = "Terminate" }, - { "dw", function() require("dap.ui.widgets").hover() end, desc = "Widgets" }, - }, - - config = function() - -- load mason-nvim-dap here, after all adapters have been setup - if LazyVim.has("mason-nvim-dap.nvim") then - require("mason-nvim-dap").setup(LazyVim.opts("mason-nvim-dap.nvim")) - end - - vim.api.nvim_set_hl(0, "DapStoppedLine", { default = true, link = "Visual" }) - - for name, sign in pairs(LazyVim.config.icons.dap) do - sign = type(sign) == "table" and sign or { sign } - vim.fn.sign_define( - "Dap" .. name, - { text = sign[1], texthl = sign[2] or "DiagnosticInfo", linehl = sign[3], numhl = sign[3] } - ) - end - - -- setup dap config by VsCode launch.json file - local vscode = require("dap.ext.vscode") - local json = require("plenary.json") - vscode.json_decode = function(str) - return vim.json.decode(json.json_strip_comments(str)) - end - end, -} -``` - - - - - -## [nvim-dap-ui](https://github.com/rcarriga/nvim-dap-ui) - - - - - -```lua -opts = nil -``` - - - - - - -```lua -{ - "rcarriga/nvim-dap-ui", - -- virtual text for the debugger - { - "theHamsta/nvim-dap-virtual-text", - opts = {}, - }, -} -``` - - - - - -## [nvim-dap-virtual-text](https://github.com/theHamsta/nvim-dap-virtual-text) - - virtual text for the debugger - - - - - - -```lua -opts = {} -``` - - - - - - -```lua -{ - "theHamsta/nvim-dap-virtual-text", - opts = {}, -} -``` - - - - - -## [nvim-dap-ui](https://github.com/rcarriga/nvim-dap-ui) - - fancy UI for the debugger - - - - - - -```lua -opts = {} -``` - - - - - - -```lua -{ - "rcarriga/nvim-dap-ui", - dependencies = { "nvim-neotest/nvim-nio" }, - -- stylua: ignore - keys = { - { "du", function() require("dapui").toggle({ }) end, desc = "Dap UI" }, - { "de", function() require("dapui").eval() end, desc = "Eval", mode = {"n", "x"} }, - }, - opts = {}, - config = function(_, opts) - local dap = require("dap") - local dapui = require("dapui") - dapui.setup(opts) - dap.listeners.after.event_initialized["dapui_config"] = function() - dapui.open({}) - end - dap.listeners.before.event_terminated["dapui_config"] = function() - dapui.close({}) - end - dap.listeners.before.event_exited["dapui_config"] = function() - dapui.close({}) - end - end, -} -``` - - - - - -## [nvim-nio](https://github.com/nvim-neotest/nvim-nio) - - - - - -```lua -opts = nil -``` - - - - - - -```lua -{ "nvim-neotest/nvim-nio" } -``` - - - - - -## [mason-nvim-dap.nvim](https://github.com/jay-babu/mason-nvim-dap.nvim) - - mason.nvim integration - - - - - - -```lua -opts = { - -- Makes a best effort to setup the various debuggers with - -- reasonable debug configurations - automatic_installation = true, - - -- You can provide additional configuration to the handlers, - -- see mason-nvim-dap README for more information - handlers = {}, - - -- You'll need to check that you have the required things installed - -- online, please don't ask me how to install them :) - ensure_installed = { - -- Update this to ensure that you have the debuggers for the langs you want - }, -} -``` - - - - - - -```lua -{ - "jay-babu/mason-nvim-dap.nvim", - dependencies = "mason.nvim", - cmd = { "DapInstall", "DapUninstall" }, - opts = { - -- Makes a best effort to setup the various debuggers with - -- reasonable debug configurations - automatic_installation = true, - - -- You can provide additional configuration to the handlers, - -- see mason-nvim-dap README for more information - handlers = {}, - - -- You'll need to check that you have the required things installed - -- online, please don't ask me how to install them :) - ensure_installed = { - -- Update this to ensure that you have the debuggers for the langs you want - }, - }, - -- mason-nvim-dap is loaded when nvim-dap loads - config = function() end, -} -``` - - - - - - diff --git a/docs/extras/dap/nlua.md b/docs/extras/dap/nlua.md deleted file mode 100644 index 297966cc8b..0000000000 --- a/docs/extras/dap/nlua.md +++ /dev/null @@ -1,145 +0,0 @@ -# DAP Neovim Lua Adapter - - - -:::info -You can enable the extra with the `:LazyExtras` command. -Plugins marked as optional will only be configured if they are installed. -::: - -Below you can find a list of included plugins and their default settings. - -:::caution -You don't need to copy the default settings to your config. -They are only shown here for reference. -::: - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -## [nvim-dap](https://github.com/mfussenegger/nvim-dap) - - - - - -```lua -opts = nil -``` - - - - - - -```lua -{ - "mfussenegger/nvim-dap", - dependencies = { - { - "jbyuki/one-small-step-for-vimkind", - -- stylua: ignore - config = function() - local dap = require("dap") - dap.adapters.nlua = function(callback, conf) - local adapter = { - type = "server", - host = conf.host or "127.0.0.1", - port = conf.port or 8086, - } - if conf.start_neovim then - local dap_run = dap.run - dap.run = function(c) - adapter.port = c.port - adapter.host = c.host - end - require("osv").run_this() - dap.run = dap_run - end - callback(adapter) - end - dap.configurations.lua = { - { - type = "nlua", - request = "attach", - name = "Run this file", - start_neovim = {}, - }, - { - type = "nlua", - request = "attach", - name = "Attach to running Neovim instance (port = 8086)", - port = 8086, - }, - } - end, - }, - }, -} -``` - - - - - -## [one-small-step-for-vimkind](https://github.com/jbyuki/one-small-step-for-vimkind) - - - - - -```lua -opts = {} -``` - - - - - - -```lua -{ - "jbyuki/one-small-step-for-vimkind", - -- stylua: ignore - config = function() - local dap = require("dap") - dap.adapters.nlua = function(callback, conf) - local adapter = { - type = "server", - host = conf.host or "127.0.0.1", - port = conf.port or 8086, - } - if conf.start_neovim then - local dap_run = dap.run - dap.run = function(c) - adapter.port = c.port - adapter.host = c.host - end - require("osv").run_this() - dap.run = dap_run - end - callback(adapter) - end - dap.configurations.lua = { - { - type = "nlua", - request = "attach", - name = "Run this file", - start_neovim = {}, - }, - { - type = "nlua", - request = "attach", - name = "Attach to running Neovim instance (port = 8086)", - port = 8086, - }, - } - end, -} -``` - - - - - - diff --git a/docs/extras/editor/aerial.md b/docs/extras/editor/aerial.md deleted file mode 100644 index 59d0f6e840..0000000000 --- a/docs/extras/editor/aerial.md +++ /dev/null @@ -1,342 +0,0 @@ -# Aerial - - - -:::info -You can enable the extra with the `:LazyExtras` command. -Plugins marked as optional will only be configured if they are installed. -::: - -Below you can find a list of included plugins and their default settings. - -:::caution -You don't need to copy the default settings to your config. -They are only shown here for reference. -::: - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -## [aerial.nvim](https://github.com/stevearc/aerial.nvim) - - - - - -```lua -opts = function() - local icons = vim.deepcopy(LazyVim.config.icons.kinds) - - -- HACK: fix lua's weird choice for `Package` for control - -- structures like if/else/for/etc. - icons.lua = { Package = icons.Control } - - ---@type table|false - local filter_kind = false - if LazyVim.config.kind_filter then - filter_kind = assert(vim.deepcopy(LazyVim.config.kind_filter)) - filter_kind._ = filter_kind.default - filter_kind.default = nil - end - - local opts = { - attach_mode = "global", - backends = { "lsp", "treesitter", "markdown", "man" }, - show_guides = true, - layout = { - resize_to_content = false, - win_opts = { - winhl = "Normal:NormalFloat,FloatBorder:NormalFloat,SignColumn:SignColumnSB", - signcolumn = "yes", - statuscolumn = " ", - }, - }, - icons = icons, - filter_kind = filter_kind, - -- stylua: ignore - guides = { - mid_item = "├╴", - last_item = "└╴", - nested_top = "│ ", - whitespace = " ", - }, - } - return opts -end -``` - - - - - - -```lua -{ - "stevearc/aerial.nvim", - event = "LazyFile", - opts = function() - local icons = vim.deepcopy(LazyVim.config.icons.kinds) - - -- HACK: fix lua's weird choice for `Package` for control - -- structures like if/else/for/etc. - icons.lua = { Package = icons.Control } - - ---@type table|false - local filter_kind = false - if LazyVim.config.kind_filter then - filter_kind = assert(vim.deepcopy(LazyVim.config.kind_filter)) - filter_kind._ = filter_kind.default - filter_kind.default = nil - end - - local opts = { - attach_mode = "global", - backends = { "lsp", "treesitter", "markdown", "man" }, - show_guides = true, - layout = { - resize_to_content = false, - win_opts = { - winhl = "Normal:NormalFloat,FloatBorder:NormalFloat,SignColumn:SignColumnSB", - signcolumn = "yes", - statuscolumn = " ", - }, - }, - icons = icons, - filter_kind = filter_kind, - -- stylua: ignore - guides = { - mid_item = "├╴", - last_item = "└╴", - nested_top = "│ ", - whitespace = " ", - }, - } - return opts - end, - keys = { - { "cs", "AerialToggle", desc = "Aerial (Symbols)" }, - }, -} -``` - - - - - -## [trouble.nvim](https://github.com/folke/trouble.nvim) _(optional)_ - - - - - -```lua -opts = nil -``` - - - - - - -```lua -{ - "folke/trouble.nvim", - optional = true, - keys = { - { "cs", false }, - }, -} -``` - - - - - -## [telescope.nvim](https://github.com/nvim-telescope/telescope.nvim) _(optional)_ - - Telescope integration - - - - - - -```lua -opts = function() - LazyVim.on_load("telescope.nvim", function() - require("telescope").load_extension("aerial") - end) -end -``` - - - - - - -```lua -{ - "nvim-telescope/telescope.nvim", - optional = true, - opts = function() - LazyVim.on_load("telescope.nvim", function() - require("telescope").load_extension("aerial") - end) - end, - keys = { - { - "ss", - "Telescope aerial", - desc = "Goto Symbol (Aerial)", - }, - }, -} -``` - - - - - -## [edgy.nvim](https://github.com/folke/edgy.nvim) _(optional)_ - - edgy integration - - - - - - -```lua -opts = function(_, opts) - local edgy_idx = LazyVim.plugin.extra_idx("ui.edgy") - local aerial_idx = LazyVim.plugin.extra_idx("editor.aerial") - - if edgy_idx and edgy_idx > aerial_idx then - LazyVim.warn("The `edgy.nvim` extra must be **imported** before the `aerial.nvim` extra to work properly.", { - title = "LazyVim", - }) - end - - opts.right = opts.right or {} - table.insert(opts.right, { - title = "Aerial", - ft = "aerial", - pinned = true, - open = "AerialOpen", - }) -end -``` - - - - - - -```lua -{ - "folke/edgy.nvim", - optional = true, - opts = function(_, opts) - local edgy_idx = LazyVim.plugin.extra_idx("ui.edgy") - local aerial_idx = LazyVim.plugin.extra_idx("editor.aerial") - - if edgy_idx and edgy_idx > aerial_idx then - LazyVim.warn("The `edgy.nvim` extra must be **imported** before the `aerial.nvim` extra to work properly.", { - title = "LazyVim", - }) - end - - opts.right = opts.right or {} - table.insert(opts.right, { - title = "Aerial", - ft = "aerial", - pinned = true, - open = "AerialOpen", - }) - end, -} -``` - - - - - -## [lualine.nvim](https://github.com/nvim-lualine/lualine.nvim) _(optional)_ - - lualine integration - - - - - - -```lua -opts = function(_, opts) - if not vim.g.trouble_lualine then - table.insert(opts.sections.lualine_c, { - "aerial", - sep = " ", -- separator between symbols - sep_icon = "", -- separator between icon and symbol - - -- The number of symbols to render top-down. In order to render only 'N' last - -- symbols, negative numbers may be supplied. For instance, 'depth = -1' can - -- be used in order to render only current symbol. - depth = 5, - - -- When 'dense' mode is on, icons are not rendered near their symbols. Only - -- a single icon that represents the kind of current symbol is rendered at - -- the beginning of status line. - dense = false, - - -- The separator to be used to separate symbols in dense mode. - dense_sep = ".", - - -- Color the symbol icons. - colored = true, - }) - end -end -``` - - - - - - -```lua -{ - "nvim-lualine/lualine.nvim", - optional = true, - opts = function(_, opts) - if not vim.g.trouble_lualine then - table.insert(opts.sections.lualine_c, { - "aerial", - sep = " ", -- separator between symbols - sep_icon = "", -- separator between icon and symbol - - -- The number of symbols to render top-down. In order to render only 'N' last - -- symbols, negative numbers may be supplied. For instance, 'depth = -1' can - -- be used in order to render only current symbol. - depth = 5, - - -- When 'dense' mode is on, icons are not rendered near their symbols. Only - -- a single icon that represents the kind of current symbol is rendered at - -- the beginning of status line. - dense = false, - - -- The separator to be used to separate symbols in dense mode. - dense_sep = ".", - - -- Color the symbol icons. - colored = true, - }) - end - end, -} -``` - - - - - - diff --git a/docs/extras/editor/dial.md b/docs/extras/editor/dial.md deleted file mode 100644 index 0cbf7d4c33..0000000000 --- a/docs/extras/editor/dial.md +++ /dev/null @@ -1,349 +0,0 @@ -# `Dial` - - - -:::info -You can enable the extra with the `:LazyExtras` command. -Plugins marked as optional will only be configured if they are installed. -::: - -Below you can find a list of included plugins and their default settings. - -:::caution -You don't need to copy the default settings to your config. -They are only shown here for reference. -::: - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -## [dial.nvim](https://github.com/monaqa/dial.nvim) - - - - - -```lua -opts = function() - local augend = require("dial.augend") - - local logical_alias = augend.constant.new({ - elements = { "&&", "||" }, - word = false, - cyclic = true, - }) - - local ordinal_numbers = augend.constant.new({ - -- elements through which we cycle. When we increment, we go down - -- On decrement we go up - elements = { - "first", - "second", - "third", - "fourth", - "fifth", - "sixth", - "seventh", - "eighth", - "ninth", - "tenth", - }, - -- if true, it only matches strings with word boundary. firstDate wouldn't work for example - word = false, - -- do we cycle back and forth (tenth to first on increment, first to tenth on decrement). - -- Otherwise nothing will happen when there are no further values - cyclic = true, - }) - - local weekdays = augend.constant.new({ - elements = { - "Monday", - "Tuesday", - "Wednesday", - "Thursday", - "Friday", - "Saturday", - "Sunday", - }, - word = true, - cyclic = true, - }) - - local months = augend.constant.new({ - elements = { - "January", - "February", - "March", - "April", - "May", - "June", - "July", - "August", - "September", - "October", - "November", - "December", - }, - word = true, - cyclic = true, - }) - - local capitalized_boolean = augend.constant.new({ - elements = { - "True", - "False", - }, - word = true, - cyclic = true, - }) - - return { - dials_by_ft = { - css = "css", - vue = "vue", - javascript = "typescript", - typescript = "typescript", - typescriptreact = "typescript", - javascriptreact = "typescript", - json = "json", - lua = "lua", - markdown = "markdown", - sass = "css", - scss = "css", - python = "python", - }, - groups = { - default = { - augend.integer.alias.decimal, -- nonnegative decimal number (0, 1, 2, 3, ...) - augend.integer.alias.decimal_int, -- nonnegative and negative decimal number - augend.integer.alias.hex, -- nonnegative hex number (0x01, 0x1a1f, etc.) - augend.date.alias["%Y/%m/%d"], -- date (2022/02/19, etc.) - ordinal_numbers, - weekdays, - months, - capitalized_boolean, - augend.constant.alias.bool, -- boolean value (true <-> false) - logical_alias, - }, - vue = { - augend.constant.new({ elements = { "let", "const" } }), - augend.hexcolor.new({ case = "lower" }), - augend.hexcolor.new({ case = "upper" }), - }, - typescript = { - augend.constant.new({ elements = { "let", "const" } }), - }, - css = { - augend.hexcolor.new({ - case = "lower", - }), - augend.hexcolor.new({ - case = "upper", - }), - }, - markdown = { - augend.constant.new({ - elements = { "[ ]", "[x]" }, - word = false, - cyclic = true, - }), - augend.misc.alias.markdown_header, - }, - json = { - augend.semver.alias.semver, -- versioning (v1.1.2) - }, - lua = { - augend.constant.new({ - elements = { "and", "or" }, - word = true, -- if false, "sand" is incremented into "sor", "doctor" into "doctand", etc. - cyclic = true, -- "or" is incremented into "and". - }), - }, - python = { - augend.constant.new({ - elements = { "and", "or" }, - }), - }, - }, - } -end -``` - - - - - - -```lua -{ - "monaqa/dial.nvim", - recommended = true, - desc = "Increment and decrement numbers, dates, and more", - -- stylua: ignore - keys = { - { "", function() return M.dial(true) end, expr = true, desc = "Increment", mode = {"n", "v"} }, - { "", function() return M.dial(false) end, expr = true, desc = "Decrement", mode = {"n", "v"} }, - { "g", function() return M.dial(true, true) end, expr = true, desc = "Increment", mode = {"n", "x"} }, - { "g", function() return M.dial(false, true) end, expr = true, desc = "Decrement", mode = {"n", "x"} }, - }, - opts = function() - local augend = require("dial.augend") - - local logical_alias = augend.constant.new({ - elements = { "&&", "||" }, - word = false, - cyclic = true, - }) - - local ordinal_numbers = augend.constant.new({ - -- elements through which we cycle. When we increment, we go down - -- On decrement we go up - elements = { - "first", - "second", - "third", - "fourth", - "fifth", - "sixth", - "seventh", - "eighth", - "ninth", - "tenth", - }, - -- if true, it only matches strings with word boundary. firstDate wouldn't work for example - word = false, - -- do we cycle back and forth (tenth to first on increment, first to tenth on decrement). - -- Otherwise nothing will happen when there are no further values - cyclic = true, - }) - - local weekdays = augend.constant.new({ - elements = { - "Monday", - "Tuesday", - "Wednesday", - "Thursday", - "Friday", - "Saturday", - "Sunday", - }, - word = true, - cyclic = true, - }) - - local months = augend.constant.new({ - elements = { - "January", - "February", - "March", - "April", - "May", - "June", - "July", - "August", - "September", - "October", - "November", - "December", - }, - word = true, - cyclic = true, - }) - - local capitalized_boolean = augend.constant.new({ - elements = { - "True", - "False", - }, - word = true, - cyclic = true, - }) - - return { - dials_by_ft = { - css = "css", - vue = "vue", - javascript = "typescript", - typescript = "typescript", - typescriptreact = "typescript", - javascriptreact = "typescript", - json = "json", - lua = "lua", - markdown = "markdown", - sass = "css", - scss = "css", - python = "python", - }, - groups = { - default = { - augend.integer.alias.decimal, -- nonnegative decimal number (0, 1, 2, 3, ...) - augend.integer.alias.decimal_int, -- nonnegative and negative decimal number - augend.integer.alias.hex, -- nonnegative hex number (0x01, 0x1a1f, etc.) - augend.date.alias["%Y/%m/%d"], -- date (2022/02/19, etc.) - ordinal_numbers, - weekdays, - months, - capitalized_boolean, - augend.constant.alias.bool, -- boolean value (true <-> false) - logical_alias, - }, - vue = { - augend.constant.new({ elements = { "let", "const" } }), - augend.hexcolor.new({ case = "lower" }), - augend.hexcolor.new({ case = "upper" }), - }, - typescript = { - augend.constant.new({ elements = { "let", "const" } }), - }, - css = { - augend.hexcolor.new({ - case = "lower", - }), - augend.hexcolor.new({ - case = "upper", - }), - }, - markdown = { - augend.constant.new({ - elements = { "[ ]", "[x]" }, - word = false, - cyclic = true, - }), - augend.misc.alias.markdown_header, - }, - json = { - augend.semver.alias.semver, -- versioning (v1.1.2) - }, - lua = { - augend.constant.new({ - elements = { "and", "or" }, - word = true, -- if false, "sand" is incremented into "sor", "doctor" into "doctand", etc. - cyclic = true, -- "or" is incremented into "and". - }), - }, - python = { - augend.constant.new({ - elements = { "and", "or" }, - }), - }, - }, - } - end, - config = function(_, opts) - -- copy defaults to each group - for name, group in pairs(opts.groups) do - if name ~= "default" then - vim.list_extend(group, opts.groups.default) - end - end - require("dial.config").augends:register_group(opts.groups) - vim.g.dials_by_ft = opts.dials_by_ft - end, -} -``` - - - - - - diff --git a/docs/extras/editor/fzf.md b/docs/extras/editor/fzf.md deleted file mode 100644 index a9a3d54590..0000000000 --- a/docs/extras/editor/fzf.md +++ /dev/null @@ -1,519 +0,0 @@ -# `Fzf` - - - -:::info -You can enable the extra with the `:LazyExtras` command. -Plugins marked as optional will only be configured if they are installed. -::: - -### Options - -Additional options for this extra can be configured in your [lua/config/options.lua](/configuration/general#options) file: - -```lua title="lua/config/options.lua" --- In case you don't want to use `:LazyExtras`, --- then you need to set the option below. -vim.g.lazyvim_picker = "fzf" -``` - -Below you can find a list of included plugins and their default settings. - -:::caution -You don't need to copy the default settings to your config. -They are only shown here for reference. -::: - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -## [fzf-lua](https://github.com/ibhagwan/fzf-lua) - - - - - -```lua -opts = function(_, opts) - local fzf = require("fzf-lua") - local config = fzf.config - local actions = fzf.actions - - -- Quickfix - config.defaults.keymap.fzf["ctrl-q"] = "select-all+accept" - config.defaults.keymap.fzf["ctrl-u"] = "half-page-up" - config.defaults.keymap.fzf["ctrl-d"] = "half-page-down" - config.defaults.keymap.fzf["ctrl-x"] = "jump" - config.defaults.keymap.fzf["ctrl-f"] = "preview-page-down" - config.defaults.keymap.fzf["ctrl-b"] = "preview-page-up" - config.defaults.keymap.builtin[""] = "preview-page-down" - config.defaults.keymap.builtin[""] = "preview-page-up" - - -- Trouble - if LazyVim.has("trouble.nvim") then - config.defaults.actions.files["ctrl-t"] = require("trouble.sources.fzf").actions.open - end - - -- Toggle root dir / cwd - config.defaults.actions.files["ctrl-r"] = function(_, ctx) - local o = vim.deepcopy(ctx.__call_opts) - o.root = o.root == false - o.cwd = nil - o.buf = ctx.__CTX.bufnr - LazyVim.pick.open(ctx.__INFO.cmd, o) - end - config.defaults.actions.files["alt-c"] = config.defaults.actions.files["ctrl-r"] - config.set_action_helpstr(config.defaults.actions.files["ctrl-r"], "toggle-root-dir") - - local img_previewer ---@type string[]? - for _, v in ipairs({ - { cmd = "ueberzug", args = {} }, - { cmd = "chafa", args = { "{file}", "--format=symbols" } }, - { cmd = "viu", args = { "-b" } }, - }) do - if vim.fn.executable(v.cmd) == 1 then - img_previewer = vim.list_extend({ v.cmd }, v.args) - break - end - end - - return { - "default-title", - fzf_colors = true, - fzf_opts = { - ["--no-scrollbar"] = true, - }, - defaults = { - -- formatter = "path.filename_first", - formatter = "path.dirname_first", - }, - previewers = { - builtin = { - extensions = { - ["png"] = img_previewer, - ["jpg"] = img_previewer, - ["jpeg"] = img_previewer, - ["gif"] = img_previewer, - ["webp"] = img_previewer, - }, - ueberzug_scaler = "fit_contain", - }, - }, - -- Custom LazyVim option to configure vim.ui.select - ui_select = function(fzf_opts, items) - return vim.tbl_deep_extend("force", fzf_opts, { - prompt = " ", - winopts = { - title = " " .. vim.trim((fzf_opts.prompt or "Select"):gsub("%s*:%s*$", "")) .. " ", - title_pos = "center", - }, - }, fzf_opts.kind == "codeaction" and { - winopts = { - layout = "vertical", - -- height is number of items minus 15 lines for the preview, with a max of 80% screen height - height = math.floor(math.min(vim.o.lines * 0.8 - 16, #items + 4) + 0.5) + 16, - width = 0.5, - preview = not vim.tbl_isempty(vim.lsp.get_clients({ bufnr = 0, name = "vtsls" })) and { - layout = "vertical", - vertical = "down:15,border-top", - hidden = "hidden", - } or { - layout = "vertical", - vertical = "down:15,border-top", - }, - }, - } or { - winopts = { - width = 0.5, - -- height is number of items, with a max of 80% screen height - height = math.floor(math.min(vim.o.lines * 0.8, #items + 4) + 0.5), - }, - }) - end, - winopts = { - width = 0.8, - height = 0.8, - row = 0.5, - col = 0.5, - preview = { - scrollchars = { "┃", "" }, - }, - }, - files = { - cwd_prompt = false, - actions = { - ["alt-i"] = { actions.toggle_ignore }, - ["alt-h"] = { actions.toggle_hidden }, - }, - }, - grep = { - actions = { - ["alt-i"] = { actions.toggle_ignore }, - ["alt-h"] = { actions.toggle_hidden }, - }, - }, - lsp = { - symbols = { - symbol_hl = function(s) - return "TroubleIcon" .. s - end, - symbol_fmt = function(s) - return s:lower() .. "\t" - end, - child_prefix = false, - }, - code_actions = { - previewer = vim.fn.executable("delta") == 1 and "codeaction_native" or nil, - }, - }, - } -end -``` - - - - - - -```lua -{ - "ibhagwan/fzf-lua", - cmd = "FzfLua", - opts = function(_, opts) - local fzf = require("fzf-lua") - local config = fzf.config - local actions = fzf.actions - - -- Quickfix - config.defaults.keymap.fzf["ctrl-q"] = "select-all+accept" - config.defaults.keymap.fzf["ctrl-u"] = "half-page-up" - config.defaults.keymap.fzf["ctrl-d"] = "half-page-down" - config.defaults.keymap.fzf["ctrl-x"] = "jump" - config.defaults.keymap.fzf["ctrl-f"] = "preview-page-down" - config.defaults.keymap.fzf["ctrl-b"] = "preview-page-up" - config.defaults.keymap.builtin[""] = "preview-page-down" - config.defaults.keymap.builtin[""] = "preview-page-up" - - -- Trouble - if LazyVim.has("trouble.nvim") then - config.defaults.actions.files["ctrl-t"] = require("trouble.sources.fzf").actions.open - end - - -- Toggle root dir / cwd - config.defaults.actions.files["ctrl-r"] = function(_, ctx) - local o = vim.deepcopy(ctx.__call_opts) - o.root = o.root == false - o.cwd = nil - o.buf = ctx.__CTX.bufnr - LazyVim.pick.open(ctx.__INFO.cmd, o) - end - config.defaults.actions.files["alt-c"] = config.defaults.actions.files["ctrl-r"] - config.set_action_helpstr(config.defaults.actions.files["ctrl-r"], "toggle-root-dir") - - local img_previewer ---@type string[]? - for _, v in ipairs({ - { cmd = "ueberzug", args = {} }, - { cmd = "chafa", args = { "{file}", "--format=symbols" } }, - { cmd = "viu", args = { "-b" } }, - }) do - if vim.fn.executable(v.cmd) == 1 then - img_previewer = vim.list_extend({ v.cmd }, v.args) - break - end - end - - return { - "default-title", - fzf_colors = true, - fzf_opts = { - ["--no-scrollbar"] = true, - }, - defaults = { - -- formatter = "path.filename_first", - formatter = "path.dirname_first", - }, - previewers = { - builtin = { - extensions = { - ["png"] = img_previewer, - ["jpg"] = img_previewer, - ["jpeg"] = img_previewer, - ["gif"] = img_previewer, - ["webp"] = img_previewer, - }, - ueberzug_scaler = "fit_contain", - }, - }, - -- Custom LazyVim option to configure vim.ui.select - ui_select = function(fzf_opts, items) - return vim.tbl_deep_extend("force", fzf_opts, { - prompt = " ", - winopts = { - title = " " .. vim.trim((fzf_opts.prompt or "Select"):gsub("%s*:%s*$", "")) .. " ", - title_pos = "center", - }, - }, fzf_opts.kind == "codeaction" and { - winopts = { - layout = "vertical", - -- height is number of items minus 15 lines for the preview, with a max of 80% screen height - height = math.floor(math.min(vim.o.lines * 0.8 - 16, #items + 4) + 0.5) + 16, - width = 0.5, - preview = not vim.tbl_isempty(vim.lsp.get_clients({ bufnr = 0, name = "vtsls" })) and { - layout = "vertical", - vertical = "down:15,border-top", - hidden = "hidden", - } or { - layout = "vertical", - vertical = "down:15,border-top", - }, - }, - } or { - winopts = { - width = 0.5, - -- height is number of items, with a max of 80% screen height - height = math.floor(math.min(vim.o.lines * 0.8, #items + 4) + 0.5), - }, - }) - end, - winopts = { - width = 0.8, - height = 0.8, - row = 0.5, - col = 0.5, - preview = { - scrollchars = { "┃", "" }, - }, - }, - files = { - cwd_prompt = false, - actions = { - ["alt-i"] = { actions.toggle_ignore }, - ["alt-h"] = { actions.toggle_hidden }, - }, - }, - grep = { - actions = { - ["alt-i"] = { actions.toggle_ignore }, - ["alt-h"] = { actions.toggle_hidden }, - }, - }, - lsp = { - symbols = { - symbol_hl = function(s) - return "TroubleIcon" .. s - end, - symbol_fmt = function(s) - return s:lower() .. "\t" - end, - child_prefix = false, - }, - code_actions = { - previewer = vim.fn.executable("delta") == 1 and "codeaction_native" or nil, - }, - }, - } - end, - config = function(_, opts) - if opts[1] == "default-title" then - -- use the same prompt for all pickers for profile `default-title` and - -- profiles that use `default-title` as base profile - local function fix(t) - t.prompt = t.prompt ~= nil and " " or nil - for _, v in pairs(t) do - if type(v) == "table" then - fix(v) - end - end - return t - end - opts = vim.tbl_deep_extend("force", fix(require("fzf-lua.profiles.default-title")), opts) - opts[1] = nil - end - require("fzf-lua").setup(opts) - end, - init = function() - LazyVim.on_very_lazy(function() - vim.ui.select = function(...) - require("lazy").load({ plugins = { "fzf-lua" } }) - local opts = LazyVim.opts("fzf-lua") or {} - require("fzf-lua").register_ui_select(opts.ui_select or nil) - return vim.ui.select(...) - end - end) - end, - keys = { - { "", "", ft = "fzf", mode = "t", nowait = true }, - { "", "", ft = "fzf", mode = "t", nowait = true }, - { - ",", - "FzfLua buffers sort_mru=true sort_lastused=true", - desc = "Switch Buffer", - }, - { "/", LazyVim.pick("live_grep"), desc = "Grep (Root Dir)" }, - { ":", "FzfLua command_history", desc = "Command History" }, - { "", LazyVim.pick("files"), desc = "Find Files (Root Dir)" }, - -- find - { "fb", "FzfLua buffers sort_mru=true sort_lastused=true", desc = "Buffers" }, - { "fB", "FzfLua buffers", desc = "Buffers (all)" }, - { "fc", LazyVim.pick.config_files(), desc = "Find Config File" }, - { "ff", LazyVim.pick("files"), desc = "Find Files (Root Dir)" }, - { "fF", LazyVim.pick("files", { root = false }), desc = "Find Files (cwd)" }, - { "fg", "FzfLua git_files", desc = "Find Files (git-files)" }, - { "fr", "FzfLua oldfiles", desc = "Recent" }, - { "fR", LazyVim.pick("oldfiles", { cwd = vim.uv.cwd() }), desc = "Recent (cwd)" }, - -- git - { "gc", "FzfLua git_commits", desc = "Commits" }, - { "gd", "FzfLua git_diff", desc = "Git Diff (hunks)" }, - { "gl", "FzfLua git_commits", desc = "Commits" }, - { "gs", "FzfLua git_status", desc = "Status" }, - { "gS", "FzfLua git_stash", desc = "Git Stash" }, - -- search - { 's"', "FzfLua registers", desc = "Registers" }, - { "s/", "FzfLua search_history", desc = "Search History" }, - { "sa", "FzfLua autocmds", desc = "Auto Commands" }, - { "sb", "FzfLua lines", desc = "Buffer Lines" }, - { "sc", "FzfLua command_history", desc = "Command History" }, - { "sC", "FzfLua commands", desc = "Commands" }, - { "sd", "FzfLua diagnostics_workspace", desc = "Diagnostics" }, - { "sD", "FzfLua diagnostics_document", desc = "Buffer Diagnostics" }, - { "sg", LazyVim.pick("live_grep"), desc = "Grep (Root Dir)" }, - { "sG", LazyVim.pick("live_grep", { root = false }), desc = "Grep (cwd)" }, - { "sh", "FzfLua help_tags", desc = "Help Pages" }, - { "sH", "FzfLua highlights", desc = "Search Highlight Groups" }, - { "sj", "FzfLua jumps", desc = "Jumplist" }, - { "sk", "FzfLua keymaps", desc = "Key Maps" }, - { "sl", "FzfLua loclist", desc = "Location List" }, - { "sM", "FzfLua man_pages", desc = "Man Pages" }, - { "sm", "FzfLua marks", desc = "Jump to Mark" }, - { "sR", "FzfLua resume", desc = "Resume" }, - { "sq", "FzfLua quickfix", desc = "Quickfix List" }, - { "sw", LazyVim.pick("grep_cword"), desc = "Word (Root Dir)" }, - { "sW", LazyVim.pick("grep_cword", { root = false }), desc = "Word (cwd)" }, - { "sw", LazyVim.pick("grep_visual"), mode = "x", desc = "Selection (Root Dir)" }, - { "sW", LazyVim.pick("grep_visual", { root = false }), mode = "x", desc = "Selection (cwd)" }, - { "uC", LazyVim.pick("colorschemes"), desc = "Colorscheme with Preview" }, - { - "ss", - function() - require("fzf-lua").lsp_document_symbols({ - regex_filter = symbols_filter, - }) - end, - desc = "Goto Symbol", - }, - { - "sS", - function() - require("fzf-lua").lsp_live_workspace_symbols({ - regex_filter = symbols_filter, - }) - end, - desc = "Goto Symbol (Workspace)", - }, - }, -} -``` - - - - - -## [fzf-lua](https://github.com/ibhagwan/fzf-lua) - - - - - -```lua -opts = nil -``` - - - - - - -```lua -{ "fzf-lua" } -``` - - - - - -## [nvim-lspconfig](https://github.com/neovim/nvim-lspconfig) - - - - - -```lua -opts = function() - local Keys = require("lazyvim.plugins.lsp.keymaps").get() - -- stylua: ignore - vim.list_extend(Keys, { - { "gd", "FzfLua lsp_definitions jump1=true ignore_current_line=true", desc = "Goto Definition", has = "definition" }, - { "gr", "FzfLua lsp_references jump1=true ignore_current_line=true", desc = "References", nowait = true }, - { "gI", "FzfLua lsp_implementations jump1=true ignore_current_line=true", desc = "Goto Implementation" }, - { "gy", "FzfLua lsp_typedefs jump1=true ignore_current_line=true", desc = "Goto T[y]pe Definition" }, - }) -end -``` - - - - - - -```lua -{ - "neovim/nvim-lspconfig", - opts = function() - local Keys = require("lazyvim.plugins.lsp.keymaps").get() - -- stylua: ignore - vim.list_extend(Keys, { - { "gd", "FzfLua lsp_definitions jump1=true ignore_current_line=true", desc = "Goto Definition", has = "definition" }, - { "gr", "FzfLua lsp_references jump1=true ignore_current_line=true", desc = "References", nowait = true }, - { "gI", "FzfLua lsp_implementations jump1=true ignore_current_line=true", desc = "Goto Implementation" }, - { "gy", "FzfLua lsp_typedefs jump1=true ignore_current_line=true", desc = "Goto T[y]pe Definition" }, - }) - end, -} -``` - - - - - -## [todo-comments.nvim](https://github.com/folke/todo-comments.nvim) _(optional)_ - - - - - -```lua -opts = nil -``` - - - - - - -```lua -{ - "folke/todo-comments.nvim", - optional = true, - -- stylua: ignore - keys = { - { "st", function() require("todo-comments.fzf").todo() end, desc = "Todo" }, - { "sT", function () require("todo-comments.fzf").todo({ keywords = { "TODO", "FIX", "FIXME" } }) end, desc = "Todo/Fix/Fixme" }, - }, -} -``` - - - - - - diff --git a/docs/extras/editor/harpoon2.md b/docs/extras/editor/harpoon2.md deleted file mode 100644 index 6f751e77c2..0000000000 --- a/docs/extras/editor/harpoon2.md +++ /dev/null @@ -1,91 +0,0 @@ -# `Harpoon2` - - - -:::info -You can enable the extra with the `:LazyExtras` command. -Plugins marked as optional will only be configured if they are installed. -::: - -Below you can find a list of included plugins and their default settings. - -:::caution -You don't need to copy the default settings to your config. -They are only shown here for reference. -::: - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -## [harpoon](https://github.com/ThePrimeagen/harpoon) - - - - - -```lua -opts = { - menu = { - width = vim.api.nvim_win_get_width(0) - 4, - }, - settings = { - save_on_toggle = true, - }, -} -``` - - - - - - -```lua -{ - "ThePrimeagen/harpoon", - branch = "harpoon2", - opts = { - menu = { - width = vim.api.nvim_win_get_width(0) - 4, - }, - settings = { - save_on_toggle = true, - }, - }, - keys = function() - local keys = { - { - "H", - function() - require("harpoon"):list():add() - end, - desc = "Harpoon File", - }, - { - "h", - function() - local harpoon = require("harpoon") - harpoon.ui:toggle_quick_menu(harpoon:list()) - end, - desc = "Harpoon Quick Menu", - }, - } - - for i = 1, 9 do - table.insert(keys, { - "" .. i, - function() - require("harpoon"):list():select(i) - end, - desc = "Harpoon to File " .. i, - }) - end - return keys - end, -} -``` - - - - - - diff --git a/docs/extras/editor/illuminate.md b/docs/extras/editor/illuminate.md deleted file mode 100644 index af10eba063..0000000000 --- a/docs/extras/editor/illuminate.md +++ /dev/null @@ -1,125 +0,0 @@ -# `Illuminate` - - - -:::info -You can enable the extra with the `:LazyExtras` command. -Plugins marked as optional will only be configured if they are installed. -::: - -Below you can find a list of included plugins and their default settings. - -:::caution -You don't need to copy the default settings to your config. -They are only shown here for reference. -::: - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -## [snacks.nvim](https://github.com/folke/snacks.nvim) - - disable snacks words - - - - - - -```lua -opts = { words = { enabled = false } } -``` - - - - - - -```lua -{ "snacks.nvim", opts = { words = { enabled = false } } } -``` - - - - - -## [vim-illuminate](https://github.com/RRethy/vim-illuminate) - - - - - -```lua -opts = { - delay = 200, - large_file_cutoff = 2000, - large_file_overrides = { - providers = { "lsp" }, - }, -} -``` - - - - - - -```lua -{ - "RRethy/vim-illuminate", - event = "LazyFile", - opts = { - delay = 200, - large_file_cutoff = 2000, - large_file_overrides = { - providers = { "lsp" }, - }, - }, - config = function(_, opts) - require("illuminate").configure(opts) - - Snacks.toggle({ - name = "Illuminate", - get = function() - return not require("illuminate.engine").is_paused() - end, - set = function(enabled) - local m = require("illuminate") - if enabled then - m.resume() - else - m.pause() - end - end, - }):map("ux") - - local function map(key, dir, buffer) - vim.keymap.set("n", key, function() - require("illuminate")["goto_" .. dir .. "_reference"](false) - end, { desc = dir:sub(1, 1):upper() .. dir:sub(2) .. " Reference", buffer = buffer }) - end - - map("]]", "next") - map("[[", "prev") - - -- also set it after loading ftplugins, since a lot overwrite [[ and ]] - vim.api.nvim_create_autocmd("FileType", { - callback = function() - local buffer = vim.api.nvim_get_current_buf() - map("]]", "next", buffer) - map("[[", "prev", buffer) - end, - }) - end, - keys = { - { "]]", desc = "Next Reference" }, - { "[[", desc = "Prev Reference" }, - }, -} -``` - - - - - - diff --git a/docs/extras/editor/inc-rename.md b/docs/extras/editor/inc-rename.md deleted file mode 100644 index 02e9c33bae..0000000000 --- a/docs/extras/editor/inc-rename.md +++ /dev/null @@ -1,134 +0,0 @@ -# `Inc-rename` - - - -:::info -You can enable the extra with the `:LazyExtras` command. -Plugins marked as optional will only be configured if they are installed. -::: - -Below you can find a list of included plugins and their default settings. - -:::caution -You don't need to copy the default settings to your config. -They are only shown here for reference. -::: - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -## [inc-rename.nvim](https://github.com/smjonas/inc-rename.nvim) - - - - - -```lua -opts = {} -``` - - - - - - -```lua -{ - "smjonas/inc-rename.nvim", - cmd = "IncRename", - opts = {}, -} -``` - - - - - -## [nvim-lspconfig](https://github.com/neovim/nvim-lspconfig) - - LSP Keymaps - - - - - - -```lua -opts = function() - local keys = require("lazyvim.plugins.lsp.keymaps").get() - keys[#keys + 1] = { - "cr", - function() - local inc_rename = require("inc_rename") - return ":" .. inc_rename.config.cmd_name .. " " .. vim.fn.expand("") - end, - expr = true, - desc = "Rename (inc-rename.nvim)", - has = "rename", - } -end -``` - - - - - - -```lua -{ - "neovim/nvim-lspconfig", - opts = function() - local keys = require("lazyvim.plugins.lsp.keymaps").get() - keys[#keys + 1] = { - "cr", - function() - local inc_rename = require("inc_rename") - return ":" .. inc_rename.config.cmd_name .. " " .. vim.fn.expand("") - end, - expr = true, - desc = "Rename (inc-rename.nvim)", - has = "rename", - } - end, -} -``` - - - - - -## [noice.nvim](https://github.com/folke/noice.nvim) _(optional)_ - - Noice integration - - - - - - -```lua -opts = { - presets = { inc_rename = true }, -} -``` - - - - - - -```lua -{ - "folke/noice.nvim", - optional = true, - opts = { - presets = { inc_rename = true }, - }, -} -``` - - - - - - diff --git a/docs/extras/editor/leap.md b/docs/extras/editor/leap.md deleted file mode 100644 index f4fbd8542b..0000000000 --- a/docs/extras/editor/leap.md +++ /dev/null @@ -1,177 +0,0 @@ -# Leap - - - -:::info -You can enable the extra with the `:LazyExtras` command. -Plugins marked as optional will only be configured if they are installed. -::: - -Below you can find a list of included plugins and their default settings. - -:::caution -You don't need to copy the default settings to your config. -They are only shown here for reference. -::: - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -## [flit.nvim](https://github.com/ggandor/flit.nvim) - - easily jump to any location and enhanced f/t motions for Leap - - - - - - -```lua -opts = { labeled_modes = "nx" } -``` - - - - - - -```lua -{ - "ggandor/flit.nvim", - enabled = true, - keys = function() - ---@type LazyKeysSpec[] - local ret = {} - for _, key in ipairs({ "f", "F", "t", "T" }) do - ret[#ret + 1] = { key, mode = { "n", "x", "o" } } - end - return ret - end, - opts = { labeled_modes = "nx" }, -} -``` - - - - - -## [leap.nvim](https://github.com/ggandor/leap.nvim) - - - - - -```lua -opts = {} -``` - - - - - - -```lua -{ - "ggandor/leap.nvim", - enabled = true, - keys = { - { "s", mode = { "n", "x", "o" }, desc = "Leap Forward to" }, - { "S", mode = { "n", "x", "o" }, desc = "Leap Backward to" }, - { "gs", mode = { "n", "x", "o" }, desc = "Leap from Windows" }, - }, - config = function(_, opts) - local leap = require("leap") - for k, v in pairs(opts) do - leap.opts[k] = v - end - leap.add_default_mappings(true) - vim.keymap.del({ "x", "o" }, "x") - vim.keymap.del({ "x", "o" }, "X") - end, -} -``` - - - - - -## [vim-repeat](https://github.com/tpope/vim-repeat) - - makes some plugins dot-repeatable like leap - - - - - - -```lua -opts = nil -``` - - - - - - -```lua -{ "tpope/vim-repeat", event = "VeryLazy" } -``` - - - - - -## [mini.surround](https://github.com/nvim-mini/mini.surround) _(optional)_ - - rename surround mappings from gs to gz to prevent conflict with leap - - - - - - -```lua -opts = { - mappings = { - add = "gza", -- Add surrounding in Normal and Visual modes - delete = "gzd", -- Delete surrounding - find = "gzf", -- Find surrounding (to the right) - find_left = "gzF", -- Find surrounding (to the left) - highlight = "gzh", -- Highlight surrounding - replace = "gzr", -- Replace surrounding - update_n_lines = "gzn", -- Update `n_lines` - }, -} -``` - - - - - - -```lua -{ - "nvim-mini/mini.surround", - optional = true, - opts = { - mappings = { - add = "gza", -- Add surrounding in Normal and Visual modes - delete = "gzd", -- Delete surrounding - find = "gzf", -- Find surrounding (to the right) - find_left = "gzF", -- Find surrounding (to the left) - highlight = "gzh", -- Highlight surrounding - replace = "gzr", -- Replace surrounding - update_n_lines = "gzn", -- Update `n_lines` - }, - }, - keys = { - { "gz", "", desc = "+surround" }, - }, -} -``` - - - - - - diff --git a/docs/extras/editor/mini-diff.md b/docs/extras/editor/mini-diff.md deleted file mode 100644 index 68ed550696..0000000000 --- a/docs/extras/editor/mini-diff.md +++ /dev/null @@ -1,202 +0,0 @@ -# `Mini-diff` - - - -:::info -You can enable the extra with the `:LazyExtras` command. -Plugins marked as optional will only be configured if they are installed. -::: - -Below you can find a list of included plugins and their default settings. - -:::caution -You don't need to copy the default settings to your config. -They are only shown here for reference. -::: - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -## [mini.diff](https://github.com/nvim-mini/mini.diff) - - setup mini.diff - - - - - - -```lua -opts = { - view = { - style = "sign", - signs = { - add = "▎", - change = "▎", - delete = "", - }, - }, -} -``` - - - - - - -```lua -{ - "nvim-mini/mini.diff", - event = "VeryLazy", - keys = { - { - "go", - function() - require("mini.diff").toggle_overlay(0) - end, - desc = "Toggle mini.diff overlay", - }, - }, - opts = { - view = { - style = "sign", - signs = { - add = "▎", - change = "▎", - delete = "", - }, - }, - }, -} -``` - - - - - -## [mini.diff](https://github.com/nvim-mini/mini.diff) - - - - - -```lua -opts = function() - Snacks.toggle({ - name = "Mini Diff Signs", - get = function() - return vim.g.minidiff_disable ~= true - end, - set = function(state) - vim.g.minidiff_disable = not state - if state then - require("mini.diff").enable(0) - else - require("mini.diff").disable(0) - end - -- HACK: redraw to update the signs - vim.defer_fn(function() - vim.cmd([[redraw!]]) - end, 200) - end, - }):map("uG") -end -``` - - - - - - -```lua -{ - "mini.diff", - opts = function() - Snacks.toggle({ - name = "Mini Diff Signs", - get = function() - return vim.g.minidiff_disable ~= true - end, - set = function(state) - vim.g.minidiff_disable = not state - if state then - require("mini.diff").enable(0) - else - require("mini.diff").disable(0) - end - -- HACK: redraw to update the signs - vim.defer_fn(function() - vim.cmd([[redraw!]]) - end, 200) - end, - }):map("uG") - end, -} -``` - - - - - -## [lualine.nvim](https://github.com/nvim-lualine/lualine.nvim) - - lualine integration - - - - - - -```lua -opts = function(_, opts) - local x = opts.sections.lualine_x - for _, comp in ipairs(x) do - if comp[1] == "diff" then - comp.source = function() - local summary = vim.b.minidiff_summary - return summary - and { - added = summary.add, - modified = summary.change, - removed = summary.delete, - } - end - break - end - end -end -``` - - - - - - -```lua -{ - "nvim-lualine/lualine.nvim", - opts = function(_, opts) - local x = opts.sections.lualine_x - for _, comp in ipairs(x) do - if comp[1] == "diff" then - comp.source = function() - local summary = vim.b.minidiff_summary - return summary - and { - added = summary.add, - modified = summary.change, - removed = summary.delete, - } - end - break - end - end - end, -} -``` - - - - - - diff --git a/docs/extras/editor/mini-files.md b/docs/extras/editor/mini-files.md deleted file mode 100644 index cc8aa5f9f3..0000000000 --- a/docs/extras/editor/mini-files.md +++ /dev/null @@ -1,164 +0,0 @@ -# Mini Files - - - -:::info -You can enable the extra with the `:LazyExtras` command. -Plugins marked as optional will only be configured if they are installed. -::: - -Below you can find a list of included plugins and their default settings. - -:::caution -You don't need to copy the default settings to your config. -They are only shown here for reference. -::: - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -## [mini.files](https://github.com/nvim-mini/mini.files) - - - - - -```lua -opts = { - windows = { - preview = true, - width_focus = 30, - width_preview = 30, - }, - options = { - -- Whether to use for editing directories - -- Disabled by default in LazyVim because neo-tree is used for that - use_as_default_explorer = false, - }, -} -``` - - - - - - -```lua -{ - "nvim-mini/mini.files", - opts = { - windows = { - preview = true, - width_focus = 30, - width_preview = 30, - }, - options = { - -- Whether to use for editing directories - -- Disabled by default in LazyVim because neo-tree is used for that - use_as_default_explorer = false, - }, - }, - keys = { - { - "fm", - function() - require("mini.files").open(vim.api.nvim_buf_get_name(0), true) - end, - desc = "Open mini.files (Directory of Current File)", - }, - { - "fM", - function() - require("mini.files").open(vim.uv.cwd(), true) - end, - desc = "Open mini.files (cwd)", - }, - }, - config = function(_, opts) - require("mini.files").setup(opts) - - local show_dotfiles = true - local filter_show = function(fs_entry) - return true - end - local filter_hide = function(fs_entry) - return not vim.startswith(fs_entry.name, ".") - end - - local toggle_dotfiles = function() - show_dotfiles = not show_dotfiles - local new_filter = show_dotfiles and filter_show or filter_hide - require("mini.files").refresh({ content = { filter = new_filter } }) - end - - local map_split = function(buf_id, lhs, direction, close_on_file) - local rhs = function() - local new_target_window - local cur_target_window = require("mini.files").get_explorer_state().target_window - if cur_target_window ~= nil then - vim.api.nvim_win_call(cur_target_window, function() - vim.cmd("belowright " .. direction .. " split") - new_target_window = vim.api.nvim_get_current_win() - end) - - require("mini.files").set_target_window(new_target_window) - require("mini.files").go_in({ close_on_file = close_on_file }) - end - end - - local desc = "Open in " .. direction .. " split" - if close_on_file then - desc = desc .. " and close" - end - vim.keymap.set("n", lhs, rhs, { buffer = buf_id, desc = desc }) - end - - local files_set_cwd = function() - local cur_entry_path = MiniFiles.get_fs_entry().path - local cur_directory = vim.fs.dirname(cur_entry_path) - if cur_directory ~= nil then - vim.fn.chdir(cur_directory) - end - end - - vim.api.nvim_create_autocmd("User", { - pattern = "MiniFilesBufferCreate", - callback = function(args) - local buf_id = args.data.buf_id - - vim.keymap.set( - "n", - opts.mappings and opts.mappings.toggle_hidden or "g.", - toggle_dotfiles, - { buffer = buf_id, desc = "Toggle hidden files" } - ) - - vim.keymap.set( - "n", - opts.mappings and opts.mappings.change_cwd or "gc", - files_set_cwd, - { buffer = args.data.buf_id, desc = "Set cwd" } - ) - - map_split(buf_id, opts.mappings and opts.mappings.go_in_horizontal or "s", "horizontal", false) - map_split(buf_id, opts.mappings and opts.mappings.go_in_vertical or "v", "vertical", false) - map_split(buf_id, opts.mappings and opts.mappings.go_in_horizontal_plus or "S", "horizontal", true) - map_split(buf_id, opts.mappings and opts.mappings.go_in_vertical_plus or "V", "vertical", true) - end, - }) - - vim.api.nvim_create_autocmd("User", { - pattern = "MiniFilesActionRename", - callback = function(event) - Snacks.rename.on_rename_file(event.data.from, event.data.to) - end, - }) - end, -} -``` - - - - - - diff --git a/docs/extras/editor/mini-move.md b/docs/extras/editor/mini-move.md deleted file mode 100644 index e9038ffb60..0000000000 --- a/docs/extras/editor/mini-move.md +++ /dev/null @@ -1,47 +0,0 @@ -# `Mini-move` - - - -:::info -You can enable the extra with the `:LazyExtras` command. -Plugins marked as optional will only be configured if they are installed. -::: - -Below you can find a list of included plugins and their default settings. - -:::caution -You don't need to copy the default settings to your config. -They are only shown here for reference. -::: - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -## [mini.move](https://github.com/nvim-mini/mini.move) - - - - - -```lua -opts = {} -``` - - - - - - -```lua -{ - "nvim-mini/mini.move", - event = "VeryLazy", - opts = {}, -} -``` - - - - - - diff --git a/docs/extras/editor/navic.md b/docs/extras/editor/navic.md deleted file mode 100644 index 772bc80e0c..0000000000 --- a/docs/extras/editor/navic.md +++ /dev/null @@ -1,114 +0,0 @@ -# Navic - - - -:::info -You can enable the extra with the `:LazyExtras` command. -Plugins marked as optional will only be configured if they are installed. -::: - -Below you can find a list of included plugins and their default settings. - -:::caution -You don't need to copy the default settings to your config. -They are only shown here for reference. -::: - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -## [nvim-navic](https://github.com/SmiteshP/nvim-navic) - - lsp symbol navigation for lualine. This shows where - in the code structure you are - within functions, classes, - etc - in the statusline. - - - - - - -```lua -opts = function() - return { - separator = " ", - highlight = true, - depth_limit = 5, - icons = LazyVim.config.icons.kinds, - lazy_update_context = true, - } -end -``` - - - - - - -```lua -{ - "SmiteshP/nvim-navic", - lazy = true, - init = function() - vim.g.navic_silence = true - LazyVim.lsp.on_attach(function(client, buffer) - if client:supports_method("textDocument/documentSymbol") then - require("nvim-navic").attach(client, buffer) - end - end) - end, - opts = function() - return { - separator = " ", - highlight = true, - depth_limit = 5, - icons = LazyVim.config.icons.kinds, - lazy_update_context = true, - } - end, -} -``` - - - - - -## [lualine.nvim](https://github.com/nvim-lualine/lualine.nvim) _(optional)_ - - lualine integration - - - - - - -```lua -opts = function(_, opts) - if not vim.g.trouble_lualine then - table.insert(opts.sections.lualine_c, { "navic", color_correction = "dynamic" }) - end -end -``` - - - - - - -```lua -{ - "nvim-lualine/lualine.nvim", - optional = true, - opts = function(_, opts) - if not vim.g.trouble_lualine then - table.insert(opts.sections.lualine_c, { "navic", color_correction = "dynamic" }) - end - end, -} -``` - - - - - - diff --git a/docs/extras/editor/neo-tree.md b/docs/extras/editor/neo-tree.md deleted file mode 100644 index 5d036ff1f8..0000000000 --- a/docs/extras/editor/neo-tree.md +++ /dev/null @@ -1,213 +0,0 @@ -# `Neo-tree` - - - -:::info -You can enable the extra with the `:LazyExtras` command. -Plugins marked as optional will only be configured if they are installed. -::: - -Below you can find a list of included plugins and their default settings. - -:::caution -You don't need to copy the default settings to your config. -They are only shown here for reference. -::: - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -## [neo-tree.nvim](https://github.com/nvim-neo-tree/neo-tree.nvim) - - file explorer - - - - - - -```lua -opts = { - sources = { "filesystem", "buffers", "git_status" }, - open_files_do_not_replace_types = { "terminal", "Trouble", "trouble", "qf", "Outline" }, - filesystem = { - bind_to_cwd = false, - follow_current_file = { enabled = true }, - use_libuv_file_watcher = true, - }, - window = { - mappings = { - ["l"] = "open", - ["h"] = "close_node", - [""] = "none", - ["Y"] = { - function(state) - local node = state.tree:get_node() - local path = node:get_id() - vim.fn.setreg("+", path, "c") - end, - desc = "Copy Path to Clipboard", - }, - ["O"] = { - function(state) - require("lazy.util").open(state.tree:get_node().path, { system = true }) - end, - desc = "Open with System Application", - }, - ["P"] = { "toggle_preview", config = { use_float = false } }, - }, - }, - default_component_configs = { - indent = { - with_expanders = true, -- if nil and file nesting is enabled, will enable expanders - expander_collapsed = "", - expander_expanded = "", - expander_highlight = "NeoTreeExpander", - }, - git_status = { - symbols = { - unstaged = "󰄱", - staged = "󰱒", - }, - }, - }, -} -``` - - - - - - -```lua -{ - "nvim-neo-tree/neo-tree.nvim", - cmd = "Neotree", - keys = { - { - "fe", - function() - require("neo-tree.command").execute({ toggle = true, dir = LazyVim.root() }) - end, - desc = "Explorer NeoTree (Root Dir)", - }, - { - "fE", - function() - require("neo-tree.command").execute({ toggle = true, dir = vim.uv.cwd() }) - end, - desc = "Explorer NeoTree (cwd)", - }, - { "e", "fe", desc = "Explorer NeoTree (Root Dir)", remap = true }, - { "E", "fE", desc = "Explorer NeoTree (cwd)", remap = true }, - { - "ge", - function() - require("neo-tree.command").execute({ source = "git_status", toggle = true }) - end, - desc = "Git Explorer", - }, - { - "be", - function() - require("neo-tree.command").execute({ source = "buffers", toggle = true }) - end, - desc = "Buffer Explorer", - }, - }, - deactivate = function() - vim.cmd([[Neotree close]]) - end, - init = function() - -- FIX: use `autocmd` for lazy-loading neo-tree instead of directly requiring it, - -- because `cwd` is not set up properly. - vim.api.nvim_create_autocmd("BufEnter", { - group = vim.api.nvim_create_augroup("Neotree_start_directory", { clear = true }), - desc = "Start Neo-tree with directory", - once = true, - callback = function() - if package.loaded["neo-tree"] then - return - else - local stats = vim.uv.fs_stat(vim.fn.argv(0)) - if stats and stats.type == "directory" then - require("neo-tree") - end - end - end, - }) - end, - opts = { - sources = { "filesystem", "buffers", "git_status" }, - open_files_do_not_replace_types = { "terminal", "Trouble", "trouble", "qf", "Outline" }, - filesystem = { - bind_to_cwd = false, - follow_current_file = { enabled = true }, - use_libuv_file_watcher = true, - }, - window = { - mappings = { - ["l"] = "open", - ["h"] = "close_node", - [""] = "none", - ["Y"] = { - function(state) - local node = state.tree:get_node() - local path = node:get_id() - vim.fn.setreg("+", path, "c") - end, - desc = "Copy Path to Clipboard", - }, - ["O"] = { - function(state) - require("lazy.util").open(state.tree:get_node().path, { system = true }) - end, - desc = "Open with System Application", - }, - ["P"] = { "toggle_preview", config = { use_float = false } }, - }, - }, - default_component_configs = { - indent = { - with_expanders = true, -- if nil and file nesting is enabled, will enable expanders - expander_collapsed = "", - expander_expanded = "", - expander_highlight = "NeoTreeExpander", - }, - git_status = { - symbols = { - unstaged = "󰄱", - staged = "󰱒", - }, - }, - }, - }, - config = function(_, opts) - local function on_move(data) - Snacks.rename.on_rename_file(data.source, data.destination) - end - - local events = require("neo-tree.events") - opts.event_handlers = opts.event_handlers or {} - vim.list_extend(opts.event_handlers, { - { event = events.FILE_MOVED, handler = on_move }, - { event = events.FILE_RENAMED, handler = on_move }, - }) - require("neo-tree").setup(opts) - vim.api.nvim_create_autocmd("TermClose", { - pattern = "*lazygit", - callback = function() - if package.loaded["neo-tree.sources.git_status"] then - require("neo-tree.sources.git_status").refresh() - end - end, - }) - end, -} -``` - - - - - - diff --git a/docs/extras/editor/outline.md b/docs/extras/editor/outline.md deleted file mode 100644 index 0c81a00348..0000000000 --- a/docs/extras/editor/outline.md +++ /dev/null @@ -1,186 +0,0 @@ -# `Outline` - - - -:::info -You can enable the extra with the `:LazyExtras` command. -Plugins marked as optional will only be configured if they are installed. -::: - -Below you can find a list of included plugins and their default settings. - -:::caution -You don't need to copy the default settings to your config. -They are only shown here for reference. -::: - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -## [outline.nvim](https://github.com/hedyhli/outline.nvim) - - - - - -```lua -opts = function() - local defaults = require("outline.config").defaults - local opts = { - symbols = { - icons = {}, - filter = vim.deepcopy(LazyVim.config.kind_filter), - }, - keymaps = { - up_and_jump = "", - down_and_jump = "", - }, - } - - for kind, symbol in pairs(defaults.symbols.icons) do - opts.symbols.icons[kind] = { - icon = LazyVim.config.icons.kinds[kind] or symbol.icon, - hl = symbol.hl, - } - end - return opts -end -``` - - - - - - -```lua -{ - "hedyhli/outline.nvim", - keys = { { "cs", "Outline", desc = "Toggle Outline" } }, - cmd = "Outline", - opts = function() - local defaults = require("outline.config").defaults - local opts = { - symbols = { - icons = {}, - filter = vim.deepcopy(LazyVim.config.kind_filter), - }, - keymaps = { - up_and_jump = "", - down_and_jump = "", - }, - } - - for kind, symbol in pairs(defaults.symbols.icons) do - opts.symbols.icons[kind] = { - icon = LazyVim.config.icons.kinds[kind] or symbol.icon, - hl = symbol.hl, - } - end - return opts - end, -} -``` - - - - - -## [trouble.nvim](https://github.com/folke/trouble.nvim) _(optional)_ - - Disable `cs` keymap so it doesn't conflict with `outline.nvim` - - - - - - -```lua -opts = nil -``` - - - - - - -```lua -{ - "folke/trouble.nvim", - optional = true, - keys = { - { "cs", false }, - }, -} -``` - - - - - -## [edgy.nvim](https://github.com/folke/edgy.nvim) _(optional)_ - - edgy integration - - - - - - -```lua -opts = function(_, opts) - local edgy_idx = LazyVim.plugin.extra_idx("ui.edgy") - local symbols_idx = LazyVim.plugin.extra_idx("editor.outline") - - if edgy_idx and edgy_idx > symbols_idx then - LazyVim.warn( - "The `edgy.nvim` extra must be **imported** before the `outline.nvim` extra to work properly.", - { title = "LazyVim" } - ) - end - - opts.right = opts.right or {} - table.insert(opts.right, { - title = "Outline", - ft = "Outline", - pinned = true, - open = "Outline", - }) -end -``` - - - - - - -```lua -{ - "folke/edgy.nvim", - optional = true, - opts = function(_, opts) - local edgy_idx = LazyVim.plugin.extra_idx("ui.edgy") - local symbols_idx = LazyVim.plugin.extra_idx("editor.outline") - - if edgy_idx and edgy_idx > symbols_idx then - LazyVim.warn( - "The `edgy.nvim` extra must be **imported** before the `outline.nvim` extra to work properly.", - { title = "LazyVim" } - ) - end - - opts.right = opts.right or {} - table.insert(opts.right, { - title = "Outline", - ft = "Outline", - pinned = true, - open = "Outline", - }) - end, -} -``` - - - - - - diff --git a/docs/extras/editor/overseer.md b/docs/extras/editor/overseer.md deleted file mode 100644 index bb6560bc60..0000000000 --- a/docs/extras/editor/overseer.md +++ /dev/null @@ -1,298 +0,0 @@ -# `Overseer` - - - -:::info -You can enable the extra with the `:LazyExtras` command. -Plugins marked as optional will only be configured if they are installed. -::: - -Below you can find a list of included plugins and their default settings. - -:::caution -You don't need to copy the default settings to your config. -They are only shown here for reference. -::: - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -## [overseer.nvim](https://github.com/stevearc/overseer.nvim) - - - - - -```lua -opts = { - dap = false, - task_list = { - bindings = { - [""] = false, - [""] = false, - [""] = false, - [""] = false, - }, - }, - form = { - win_opts = { - winblend = 0, - }, - }, - confirm = { - win_opts = { - winblend = 0, - }, - }, - task_win = { - win_opts = { - winblend = 0, - }, - }, -} -``` - - - - - - -```lua -{ - "stevearc/overseer.nvim", - cmd = { - "OverseerOpen", - "OverseerClose", - "OverseerToggle", - "OverseerSaveBundle", - "OverseerLoadBundle", - "OverseerDeleteBundle", - "OverseerRunCmd", - "OverseerRun", - "OverseerInfo", - "OverseerBuild", - "OverseerQuickAction", - "OverseerTaskAction", - "OverseerClearCache", - }, - opts = { - dap = false, - task_list = { - bindings = { - [""] = false, - [""] = false, - [""] = false, - [""] = false, - }, - }, - form = { - win_opts = { - winblend = 0, - }, - }, - confirm = { - win_opts = { - winblend = 0, - }, - }, - task_win = { - win_opts = { - winblend = 0, - }, - }, - }, - -- stylua: ignore - keys = { - { "ow", "OverseerToggle", desc = "Task list" }, - { "oo", "OverseerRun", desc = "Run task" }, - { "oq", "OverseerQuickAction", desc = "Action recent task" }, - { "oi", "OverseerInfo", desc = "Overseer Info" }, - { "ob", "OverseerBuild", desc = "Task builder" }, - { "ot", "OverseerTaskAction", desc = "Task action" }, - { "oc", "OverseerClearCache", desc = "Clear cache" }, - }, -} -``` - - - - - -## [catppuccin](https://github.com/catppuccin/nvim) _(optional)_ - - - - - -```lua -opts = { - integrations = { overseer = true }, -} -``` - - - - - - -```lua -{ - "catppuccin", - optional = true, - opts = { - integrations = { overseer = true }, - }, -} -``` - - - - - -## [which-key.nvim](https://github.com/folke/which-key.nvim) _(optional)_ - - - - - -```lua -opts = { - spec = { - { "o", group = "overseer" }, - }, -} -``` - - - - - - -```lua -{ - "folke/which-key.nvim", - optional = true, - opts = { - spec = { - { "o", group = "overseer" }, - }, - }, -} -``` - - - - - -## [edgy.nvim](https://github.com/folke/edgy.nvim) _(optional)_ - - - - - -```lua -opts = function(_, opts) - opts.right = opts.right or {} - table.insert(opts.right, { - title = "Overseer", - ft = "OverseerList", - open = function() - require("overseer").open() - end, - }) -end -``` - - - - - - -```lua -{ - "folke/edgy.nvim", - optional = true, - opts = function(_, opts) - opts.right = opts.right or {} - table.insert(opts.right, { - title = "Overseer", - ft = "OverseerList", - open = function() - require("overseer").open() - end, - }) - end, -} -``` - - - - - -## [neotest](https://github.com/nvim-neotest/neotest) _(optional)_ - - - - - -```lua -opts = function(_, opts) - opts = opts or {} - opts.consumers = opts.consumers or {} - opts.consumers.overseer = require("neotest.consumers.overseer") -end -``` - - - - - - -```lua -{ - "nvim-neotest/neotest", - optional = true, - opts = function(_, opts) - opts = opts or {} - opts.consumers = opts.consumers or {} - opts.consumers.overseer = require("neotest.consumers.overseer") - end, -} -``` - - - - - -## [nvim-dap](https://github.com/mfussenegger/nvim-dap) _(optional)_ - - - - - -```lua -opts = function() - require("overseer").enable_dap() -end -``` - - - - - - -```lua -{ - "mfussenegger/nvim-dap", - optional = true, - opts = function() - require("overseer").enable_dap() - end, -} -``` - - - - - - diff --git a/docs/extras/editor/refactoring.md b/docs/extras/editor/refactoring.md deleted file mode 100644 index 1ba0f7415a..0000000000 --- a/docs/extras/editor/refactoring.md +++ /dev/null @@ -1,247 +0,0 @@ -# `Refactoring` - - - -:::info -You can enable the extra with the `:LazyExtras` command. -Plugins marked as optional will only be configured if they are installed. -::: - -Below you can find a list of included plugins and their default settings. - -:::caution -You don't need to copy the default settings to your config. -They are only shown here for reference. -::: - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -## [refactoring.nvim](https://github.com/ThePrimeagen/refactoring.nvim) - - - - - -```lua -opts = { - prompt_func_return_type = { - go = false, - java = false, - cpp = false, - c = false, - h = false, - hpp = false, - cxx = false, - }, - prompt_func_param_type = { - go = false, - java = false, - cpp = false, - c = false, - h = false, - hpp = false, - cxx = false, - }, - printf_statements = {}, - print_var_statements = {}, - show_success_message = true, -- shows a message with information about the refactor on success - -- i.e. [Refactor] Inlined 3 variable occurrences -} -``` - - - - - - -```lua -{ - "ThePrimeagen/refactoring.nvim", - event = { "BufReadPre", "BufNewFile" }, - dependencies = { - "nvim-lua/plenary.nvim", - "nvim-treesitter/nvim-treesitter", - }, - keys = { - { "r", "", desc = "+refactor", mode = { "n", "x" } }, - { - "rs", - pick, - mode = { "n", "x" }, - desc = "Refactor", - }, - { - "ri", - function() - return require("refactoring").refactor("Inline Variable") - end, - mode = { "n", "x" }, - desc = "Inline Variable", - expr = true, - }, - { - "rb", - function() - return require("refactoring").refactor("Extract Block") - end, - mode = { "n", "x" }, - desc = "Extract Block", - expr = true, - }, - { - "rf", - function() - return require("refactoring").refactor("Extract Block To File") - end, - mode = { "n", "x" }, - desc = "Extract Block To File", - expr = true, - }, - { - "rP", - function() - require("refactoring").debug.printf({ below = false }) - end, - desc = "Debug Print", - }, - { - "rp", - function() - require("refactoring").debug.print_var({ normal = true }) - end, - mode = { "n", "x" }, - desc = "Debug Print Variable", - }, - { - "rc", - function() - require("refactoring").debug.cleanup({}) - end, - desc = "Debug Cleanup", - }, - { - "rf", - function() - return require("refactoring").refactor("Extract Function") - end, - mode = { "n", "x" }, - desc = "Extract Function", - expr = true, - }, - { - "rF", - function() - return require("refactoring").refactor("Extract Function To File") - end, - mode = { "n", "x" }, - desc = "Extract Function To File", - expr = true, - }, - { - "rx", - function() - return require("refactoring").refactor("Extract Variable") - end, - mode = { "n", "x" }, - desc = "Extract Variable", - expr = true, - }, - { - "rp", - function() - require("refactoring").debug.print_var() - end, - mode = { "n", "x" }, - desc = "Debug Print Variable", - }, - }, - opts = { - prompt_func_return_type = { - go = false, - java = false, - cpp = false, - c = false, - h = false, - hpp = false, - cxx = false, - }, - prompt_func_param_type = { - go = false, - java = false, - cpp = false, - c = false, - h = false, - hpp = false, - cxx = false, - }, - printf_statements = {}, - print_var_statements = {}, - show_success_message = true, -- shows a message with information about the refactor on success - -- i.e. [Refactor] Inlined 3 variable occurrences - }, - config = function(_, opts) - require("refactoring").setup(opts) - if LazyVim.has("telescope.nvim") then - LazyVim.on_load("telescope.nvim", function() - require("telescope").load_extension("refactoring") - end) - end - end, -} -``` - - - - - -## [plenary.nvim](https://github.com/nvim-lua/plenary.nvim) - - - - - -```lua -opts = nil -``` - - - - - - -```lua -{ - "nvim-lua/plenary.nvim", - "nvim-treesitter/nvim-treesitter", -} -``` - - - - - -## [nvim-treesitter](https://github.com/nvim-treesitter/nvim-treesitter) - - - - - -```lua -opts = nil -``` - - - - - - -```lua -"nvim-treesitter/nvim-treesitter" -``` - - - - - - diff --git a/docs/extras/editor/snacks_explorer.md b/docs/extras/editor/snacks_explorer.md deleted file mode 100644 index 9f75636083..0000000000 --- a/docs/extras/editor/snacks_explorer.md +++ /dev/null @@ -1,43 +0,0 @@ -# `Snacks_explorer` - - - -:::info -You can enable the extra with the `:LazyExtras` command. -Plugins marked as optional will only be configured if they are installed. -::: - -Below you can find a list of included plugins and their default settings. - -:::caution -You don't need to copy the default settings to your config. -They are only shown here for reference. -::: - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -## [snacks.nvim](https://github.com/folke/snacks.nvim) - - - - - -```lua -opts = nil -``` - - - - - - -```lua -"folke/snacks.nvim" -``` - - - - - - diff --git a/docs/extras/editor/snacks_picker.md b/docs/extras/editor/snacks_picker.md deleted file mode 100644 index 006d7e0162..0000000000 --- a/docs/extras/editor/snacks_picker.md +++ /dev/null @@ -1,637 +0,0 @@ -# `Snacks_picker` - - - -:::info -You can enable the extra with the `:LazyExtras` command. -Plugins marked as optional will only be configured if they are installed. -::: - -### Options - -Additional options for this extra can be configured in your [lua/config/options.lua](/configuration/general#options) file: - -```lua title="lua/config/options.lua" --- In case you don't want to use `:LazyExtras`, --- then you need to set the option below. -vim.g.lazyvim_picker = "snacks" -``` - -Below you can find a list of included plugins and their default settings. - -:::caution -You don't need to copy the default settings to your config. -They are only shown here for reference. -::: - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -## [snacks.nvim](https://github.com/folke/snacks.nvim) - - - - - -```lua -opts = { - picker = { - win = { - input = { - keys = { - [""] = { - "toggle_cwd", - mode = { "n", "i" }, - }, - }, - }, - }, - actions = { - ---@param p snacks.Picker - toggle_cwd = function(p) - local root = LazyVim.root({ buf = p.input.filter.current_buf, normalize = true }) - local cwd = vim.fs.normalize((vim.uv or vim.loop).cwd() or ".") - local current = p:cwd() - p:set_cwd(current == root and cwd or root) - p:find() - end, - }, - }, -} -``` - - - - - - -```lua -{ - "folke/snacks.nvim", - opts = { - picker = { - win = { - input = { - keys = { - [""] = { - "toggle_cwd", - mode = { "n", "i" }, - }, - }, - }, - }, - actions = { - ---@param p snacks.Picker - toggle_cwd = function(p) - local root = LazyVim.root({ buf = p.input.filter.current_buf, normalize = true }) - local cwd = vim.fs.normalize((vim.uv or vim.loop).cwd() or ".") - local current = p:cwd() - p:set_cwd(current == root and cwd or root) - p:find() - end, - }, - }, - }, - -- stylua: ignore - keys = { - { ",", function() Snacks.picker.buffers() end, desc = "Buffers" }, - { "/", LazyVim.pick("grep"), desc = "Grep (Root Dir)" }, - { ":", function() Snacks.picker.command_history() end, desc = "Command History" }, - { "", LazyVim.pick("files"), desc = "Find Files (Root Dir)" }, - { "n", function() Snacks.picker.notifications() end, desc = "Notification History" }, - -- find - { "fb", function() Snacks.picker.buffers() end, desc = "Buffers" }, - { "fB", function() Snacks.picker.buffers({ hidden = true, nofile = true }) end, desc = "Buffers (all)" }, - { "fc", LazyVim.pick.config_files(), desc = "Find Config File" }, - { "ff", LazyVim.pick("files"), desc = "Find Files (Root Dir)" }, - { "fF", LazyVim.pick("files", { root = false }), desc = "Find Files (cwd)" }, - { "fg", function() Snacks.picker.git_files() end, desc = "Find Files (git-files)" }, - { "fr", LazyVim.pick("oldfiles"), desc = "Recent" }, - { "fR", function() Snacks.picker.recent({ filter = { cwd = true }}) end, desc = "Recent (cwd)" }, - { "fp", function() Snacks.picker.projects() end, desc = "Projects" }, - -- git - { "gd", function() Snacks.picker.git_diff() end, desc = "Git Diff (hunks)" }, - { "gD", function() Snacks.picker.git_diff({ base = "origin" }) end, desc = "Git Diff (origin)" }, - { "gs", function() Snacks.picker.git_status() end, desc = "Git Status" }, - { "gS", function() Snacks.picker.git_stash() end, desc = "Git Stash" }, - -- Grep - { "sb", function() Snacks.picker.lines() end, desc = "Buffer Lines" }, - { "sB", function() Snacks.picker.grep_buffers() end, desc = "Grep Open Buffers" }, - { "sg", LazyVim.pick("live_grep"), desc = "Grep (Root Dir)" }, - { "sG", LazyVim.pick("live_grep", { root = false }), desc = "Grep (cwd)" }, - { "sp", function() Snacks.picker.lazy() end, desc = "Search for Plugin Spec" }, - { "sw", LazyVim.pick("grep_word"), desc = "Visual selection or word (Root Dir)", mode = { "n", "x" } }, - { "sW", LazyVim.pick("grep_word", { root = false }), desc = "Visual selection or word (cwd)", mode = { "n", "x" } }, - -- search - { 's"', function() Snacks.picker.registers() end, desc = "Registers" }, - { 's/', function() Snacks.picker.search_history() end, desc = "Search History" }, - { "sa", function() Snacks.picker.autocmds() end, desc = "Autocmds" }, - { "sc", function() Snacks.picker.command_history() end, desc = "Command History" }, - { "sC", function() Snacks.picker.commands() end, desc = "Commands" }, - { "sd", function() Snacks.picker.diagnostics() end, desc = "Diagnostics" }, - { "sD", function() Snacks.picker.diagnostics_buffer() end, desc = "Buffer Diagnostics" }, - { "sh", function() Snacks.picker.help() end, desc = "Help Pages" }, - { "sH", function() Snacks.picker.highlights() end, desc = "Highlights" }, - { "si", function() Snacks.picker.icons() end, desc = "Icons" }, - { "sj", function() Snacks.picker.jumps() end, desc = "Jumps" }, - { "sk", function() Snacks.picker.keymaps() end, desc = "Keymaps" }, - { "sl", function() Snacks.picker.loclist() end, desc = "Location List" }, - { "sM", function() Snacks.picker.man() end, desc = "Man Pages" }, - { "sm", function() Snacks.picker.marks() end, desc = "Marks" }, - { "sR", function() Snacks.picker.resume() end, desc = "Resume" }, - { "sq", function() Snacks.picker.qflist() end, desc = "Quickfix List" }, - { "su", function() Snacks.picker.undo() end, desc = "Undotree" }, - -- ui - { "uC", function() Snacks.picker.colorschemes() end, desc = "Colorschemes" }, - }, -} -``` - - - - - -## [snacks.nvim](https://github.com/folke/snacks.nvim) - - - - - -```lua -opts = function(_, opts) - if LazyVim.has("trouble.nvim") then - return vim.tbl_deep_extend("force", opts or {}, { - picker = { - actions = { - trouble_open = function(...) - return require("trouble.sources.snacks").actions.trouble_open.action(...) - end, - }, - win = { - input = { - keys = { - [""] = { - "trouble_open", - mode = { "n", "i" }, - }, - }, - }, - }, - }, - }) - end -end -``` - - - - - - -```lua -{ - "folke/snacks.nvim", - opts = function(_, opts) - if LazyVim.has("trouble.nvim") then - return vim.tbl_deep_extend("force", opts or {}, { - picker = { - actions = { - trouble_open = function(...) - return require("trouble.sources.snacks").actions.trouble_open.action(...) - end, - }, - win = { - input = { - keys = { - [""] = { - "trouble_open", - mode = { "n", "i" }, - }, - }, - }, - }, - }, - }) - end - end, -} -``` - - - - - -## [nvim-lspconfig](https://github.com/neovim/nvim-lspconfig) - - - - - -```lua -opts = function() - local Keys = require("lazyvim.plugins.lsp.keymaps").get() - -- stylua: ignore - vim.list_extend(Keys, { - { "gd", function() Snacks.picker.lsp_definitions() end, desc = "Goto Definition", has = "definition" }, - { "gr", function() Snacks.picker.lsp_references() end, nowait = true, desc = "References" }, - { "gI", function() Snacks.picker.lsp_implementations() end, desc = "Goto Implementation" }, - { "gy", function() Snacks.picker.lsp_type_definitions() end, desc = "Goto T[y]pe Definition" }, - { "ss", function() Snacks.picker.lsp_symbols({ filter = LazyVim.config.kind_filter }) end, desc = "LSP Symbols", has = "documentSymbol" }, - { "sS", function() Snacks.picker.lsp_workspace_symbols({ filter = LazyVim.config.kind_filter }) end, desc = "LSP Workspace Symbols", has = "workspace/symbols" }, - { "gai", function() Snacks.picker.lsp_incoming_calls() end, desc = "C[a]lls Incoming", has = "callHierarchy/incomingCalls" }, - { "gao", function() Snacks.picker.lsp_outgoing_calls() end, desc = "C[a]lls Outgoing", has = "callHierarchy/outgoingCalls" }, - }) -end -``` - - - - - - -```lua -{ - "neovim/nvim-lspconfig", - opts = function() - local Keys = require("lazyvim.plugins.lsp.keymaps").get() - -- stylua: ignore - vim.list_extend(Keys, { - { "gd", function() Snacks.picker.lsp_definitions() end, desc = "Goto Definition", has = "definition" }, - { "gr", function() Snacks.picker.lsp_references() end, nowait = true, desc = "References" }, - { "gI", function() Snacks.picker.lsp_implementations() end, desc = "Goto Implementation" }, - { "gy", function() Snacks.picker.lsp_type_definitions() end, desc = "Goto T[y]pe Definition" }, - { "ss", function() Snacks.picker.lsp_symbols({ filter = LazyVim.config.kind_filter }) end, desc = "LSP Symbols", has = "documentSymbol" }, - { "sS", function() Snacks.picker.lsp_workspace_symbols({ filter = LazyVim.config.kind_filter }) end, desc = "LSP Workspace Symbols", has = "workspace/symbols" }, - { "gai", function() Snacks.picker.lsp_incoming_calls() end, desc = "C[a]lls Incoming", has = "callHierarchy/incomingCalls" }, - { "gao", function() Snacks.picker.lsp_outgoing_calls() end, desc = "C[a]lls Outgoing", has = "callHierarchy/outgoingCalls" }, - }) - end, -} -``` - - - - - -## [snacks.nvim](https://github.com/folke/snacks.nvim) - - - - - -```lua -opts = function(_, opts) - table.insert(opts.dashboard.preset.keys, 3, { - icon = " ", - key = "p", - desc = "Projects", - action = ":lua Snacks.picker.projects()", - }) -end -``` - - - - - - -```lua -{ - "folke/snacks.nvim", - opts = function(_, opts) - table.insert(opts.dashboard.preset.keys, 3, { - icon = " ", - key = "p", - desc = "Projects", - action = ":lua Snacks.picker.projects()", - }) - end, -} -``` - - - - - -## [snacks.nvim](https://github.com/folke/snacks.nvim) - - - - - -```lua -opts = { - picker = { - win = { - input = { - keys = { - [""] = { "flash", mode = { "n", "i" } }, - ["s"] = { "flash" }, - }, - }, - }, - actions = { - flash = function(picker) - require("flash").jump({ - pattern = "^", - label = { after = { 0, 0 } }, - search = { - mode = "search", - exclude = { - function(win) - return vim.bo[vim.api.nvim_win_get_buf(win)].filetype ~= "snacks_picker_list" - end, - }, - }, - action = function(match) - local idx = picker.list:row2idx(match.pos[1]) - picker.list:_move(idx, true, true) - end, - }) - end, - }, - }, -} -``` - - - - - - -```lua -{ - "folke/snacks.nvim", - opts = { - picker = { - win = { - input = { - keys = { - [""] = { "flash", mode = { "n", "i" } }, - ["s"] = { "flash" }, - }, - }, - }, - actions = { - flash = function(picker) - require("flash").jump({ - pattern = "^", - label = { after = { 0, 0 } }, - search = { - mode = "search", - exclude = { - function(win) - return vim.bo[vim.api.nvim_win_get_buf(win)].filetype ~= "snacks_picker_list" - end, - }, - }, - action = function(match) - local idx = picker.list:row2idx(match.pos[1]) - picker.list:_move(idx, true, true) - end, - }) - end, - }, - }, - }, -} -``` - - - - - -## [todo-comments.nvim](https://github.com/folke/todo-comments.nvim) _(optional)_ - - - - - -```lua -opts = nil -``` - - - - - - -```lua -{ - "folke/todo-comments.nvim", - optional = true, - -- stylua: ignore - keys = { - { "st", function() Snacks.picker.todo_comments() end, desc = "Todo" }, - { "sT", function () Snacks.picker.todo_comments({ keywords = { "TODO", "FIX", "FIXME" } }) end, desc = "Todo/Fix/Fixme" }, - }, -} -``` - - - - - -## [alpha-nvim](https://github.com/goolord/alpha-nvim) _(optional)_ - - - - - -```lua -opts = function(_, dashboard) - local button = dashboard.button("p", " " .. " Projects", [[ lua Snacks.picker.projects() ]]) - button.opts.hl = "AlphaButtons" - button.opts.hl_shortcut = "AlphaShortcut" - table.insert(dashboard.section.buttons.val, 4, button) -end -``` - - - - - - -```lua -{ - "goolord/alpha-nvim", - optional = true, - opts = function(_, dashboard) - local button = dashboard.button("p", " " .. " Projects", [[ lua Snacks.picker.projects() ]]) - button.opts.hl = "AlphaButtons" - button.opts.hl_shortcut = "AlphaShortcut" - table.insert(dashboard.section.buttons.val, 4, button) - end, -} -``` - - - - - -## [mini.starter](https://github.com/nvim-mini/mini.starter) _(optional)_ - - - - - -```lua -opts = function(_, opts) - local items = { - { - name = "Projects", - action = [[lua Snacks.picker.projects()]], - section = string.rep(" ", 22) .. "Telescope", - }, - } - vim.list_extend(opts.items, items) -end -``` - - - - - - -```lua -{ - "nvim-mini/mini.starter", - optional = true, - opts = function(_, opts) - local items = { - { - name = "Projects", - action = [[lua Snacks.picker.projects()]], - section = string.rep(" ", 22) .. "Telescope", - }, - } - vim.list_extend(opts.items, items) - end, -} -``` - - - - - -## [dashboard-nvim](https://github.com/nvimdev/dashboard-nvim) _(optional)_ - - - - - -```lua -opts = function(_, opts) - if not vim.tbl_get(opts, "config", "center") then - return - end - local projects = { - action = "lua Snacks.picker.projects()", - desc = " Projects", - icon = " ", - key = "p", - } - - projects.desc = projects.desc .. string.rep(" ", 43 - #projects.desc) - projects.key_format = " %s" - - table.insert(opts.config.center, 3, projects) -end -``` - - - - - - -```lua -{ - "nvimdev/dashboard-nvim", - optional = true, - opts = function(_, opts) - if not vim.tbl_get(opts, "config", "center") then - return - end - local projects = { - action = "lua Snacks.picker.projects()", - desc = " Projects", - icon = " ", - key = "p", - } - - projects.desc = projects.desc .. string.rep(" ", 43 - #projects.desc) - projects.key_format = " %s" - - table.insert(opts.config.center, 3, projects) - end, -} -``` - - - - - -## [flash.nvim](https://github.com/folke/flash.nvim) _(optional)_ - - - - - -```lua -opts = nil -``` - - - - - - -```lua -{ - "folke/flash.nvim", - optional = true, - specs = { - { - "folke/snacks.nvim", - opts = { - picker = { - win = { - input = { - keys = { - [""] = { "flash", mode = { "n", "i" } }, - ["s"] = { "flash" }, - }, - }, - }, - actions = { - flash = function(picker) - require("flash").jump({ - pattern = "^", - label = { after = { 0, 0 } }, - search = { - mode = "search", - exclude = { - function(win) - return vim.bo[vim.api.nvim_win_get_buf(win)].filetype ~= "snacks_picker_list" - end, - }, - }, - action = function(match) - local idx = picker.list:row2idx(match.pos[1]) - picker.list:_move(idx, true, true) - end, - }) - end, - }, - }, - }, - }, - }, -} -``` - - - - - - diff --git a/docs/extras/editor/telescope.md b/docs/extras/editor/telescope.md deleted file mode 100644 index 256a1155dc..0000000000 --- a/docs/extras/editor/telescope.md +++ /dev/null @@ -1,511 +0,0 @@ -# `Telescope` - - - -:::info -You can enable the extra with the `:LazyExtras` command. -Plugins marked as optional will only be configured if they are installed. -::: - -### Options - -Additional options for this extra can be configured in your [lua/config/options.lua](/configuration/general#options) file: - -```lua title="lua/config/options.lua" --- In case you don't want to use `:LazyExtras`, --- then you need to set the option below. -vim.g.lazyvim_picker = "telescope" -``` - -Below you can find a list of included plugins and their default settings. - -:::caution -You don't need to copy the default settings to your config. -They are only shown here for reference. -::: - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -## [telescope.nvim](https://github.com/nvim-telescope/telescope.nvim) - - Fuzzy finder. - The default key bindings to find files will use Telescope's - `find_files` or `git_files` depending on whether the - directory is a git repo. - - - - - - -```lua -opts = function() - local actions = require("telescope.actions") - - local open_with_trouble = function(...) - return require("trouble.sources.telescope").open(...) - end - local find_files_no_ignore = function() - local action_state = require("telescope.actions.state") - local line = action_state.get_current_line() - LazyVim.pick("find_files", { no_ignore = true, default_text = line })() - end - local find_files_with_hidden = function() - local action_state = require("telescope.actions.state") - local line = action_state.get_current_line() - LazyVim.pick("find_files", { hidden = true, default_text = line })() - end - - local function find_command() - if 1 == vim.fn.executable("rg") then - return { "rg", "--files", "--color", "never", "-g", "!.git" } - elseif 1 == vim.fn.executable("fd") then - return { "fd", "--type", "f", "--color", "never", "-E", ".git" } - elseif 1 == vim.fn.executable("fdfind") then - return { "fdfind", "--type", "f", "--color", "never", "-E", ".git" } - elseif 1 == vim.fn.executable("find") and vim.fn.has("win32") == 0 then - return { "find", ".", "-type", "f" } - elseif 1 == vim.fn.executable("where") then - return { "where", "/r", ".", "*" } - end - end - - return { - defaults = { - prompt_prefix = " ", - selection_caret = " ", - -- open files in the first window that is an actual file. - -- use the current window if no other window is available. - get_selection_window = function() - local wins = vim.api.nvim_list_wins() - table.insert(wins, 1, vim.api.nvim_get_current_win()) - for _, win in ipairs(wins) do - local buf = vim.api.nvim_win_get_buf(win) - if vim.bo[buf].buftype == "" then - return win - end - end - return 0 - end, - mappings = { - i = { - [""] = open_with_trouble, - [""] = open_with_trouble, - [""] = find_files_no_ignore, - [""] = find_files_with_hidden, - [""] = actions.cycle_history_next, - [""] = actions.cycle_history_prev, - [""] = actions.preview_scrolling_down, - [""] = actions.preview_scrolling_up, - }, - n = { - ["q"] = actions.close, - }, - }, - }, - pickers = { - find_files = { - find_command = find_command, - hidden = true, - }, - }, - } -end -``` - - - - - - -```lua -{ - "nvim-telescope/telescope.nvim", - cmd = "Telescope", - version = false, -- telescope did only one release, so use HEAD for now - dependencies = { - { - "nvim-telescope/telescope-fzf-native.nvim", - build = (build_cmd ~= "cmake") and "make" - or "cmake -S. -Bbuild -DCMAKE_BUILD_TYPE=Release && cmake --build build --config Release && cmake --install build --prefix build", - enabled = build_cmd ~= nil, - config = function(plugin) - LazyVim.on_load("telescope.nvim", function() - local ok, err = pcall(require("telescope").load_extension, "fzf") - if not ok then - local lib = plugin.dir .. "/build/libfzf." .. (LazyVim.is_win() and "dll" or "so") - if not vim.uv.fs_stat(lib) then - LazyVim.warn("`telescope-fzf-native.nvim` not built. Rebuilding...") - require("lazy").build({ plugins = { plugin }, show = false }):wait(function() - LazyVim.info("Rebuilding `telescope-fzf-native.nvim` done.\nPlease restart Neovim.") - end) - else - LazyVim.error("Failed to load `telescope-fzf-native.nvim`:\n" .. err) - end - end - end) - end, - }, - }, - keys = { - { - ",", - "Telescope buffers sort_mru=true sort_lastused=true", - desc = "Switch Buffer", - }, - { "/", LazyVim.pick("live_grep"), desc = "Grep (Root Dir)" }, - { ":", "Telescope command_history", desc = "Command History" }, - { "", LazyVim.pick("files"), desc = "Find Files (Root Dir)" }, - -- find - { - "fb", - "Telescope buffers sort_mru=true sort_lastused=true ignore_current_buffer=true", - desc = "Buffers", - }, - { "fB", "Telescope buffers", desc = "Buffers (all)" }, - { "fc", LazyVim.pick.config_files(), desc = "Find Config File" }, - { "ff", LazyVim.pick("files"), desc = "Find Files (Root Dir)" }, - { "fF", LazyVim.pick("files", { root = false }), desc = "Find Files (cwd)" }, - { "fg", "Telescope git_files", desc = "Find Files (git-files)" }, - { "fr", "Telescope oldfiles", desc = "Recent" }, - { "fR", LazyVim.pick("oldfiles", { cwd = vim.uv.cwd() }), desc = "Recent (cwd)" }, - -- git - { "gc", "Telescope git_commits", desc = "Commits" }, - { "gl", "Telescope git_commits", desc = "Commits" }, - { "gs", "Telescope git_status", desc = "Status" }, - { "gS", "Telescope git_stash", desc = "Git Stash" }, - -- search - { 's"', "Telescope registers", desc = "Registers" }, - { "s/", "Telescope search_history", desc = "Search History" }, - { "sa", "Telescope autocommands", desc = "Auto Commands" }, - { "sb", "Telescope current_buffer_fuzzy_find", desc = "Buffer Lines" }, - { "sc", "Telescope command_history", desc = "Command History" }, - { "sC", "Telescope commands", desc = "Commands" }, - { "sd", "Telescope diagnostics", desc = "Diagnostics" }, - { "sD", "Telescope diagnostics bufnr=0", desc = "Buffer Diagnostics" }, - { "sg", LazyVim.pick("live_grep"), desc = "Grep (Root Dir)" }, - { "sG", LazyVim.pick("live_grep", { root = false }), desc = "Grep (cwd)" }, - { "sh", "Telescope help_tags", desc = "Help Pages" }, - { "sH", "Telescope highlights", desc = "Search Highlight Groups" }, - { "sj", "Telescope jumplist", desc = "Jumplist" }, - { "sk", "Telescope keymaps", desc = "Key Maps" }, - { "sl", "Telescope loclist", desc = "Location List" }, - { "sM", "Telescope man_pages", desc = "Man Pages" }, - { "sm", "Telescope marks", desc = "Jump to Mark" }, - { "so", "Telescope vim_options", desc = "Options" }, - { "sR", "Telescope resume", desc = "Resume" }, - { "sq", "Telescope quickfix", desc = "Quickfix List" }, - { "sw", LazyVim.pick("grep_string", { word_match = "-w" }), desc = "Word (Root Dir)" }, - { "sW", LazyVim.pick("grep_string", { root = false, word_match = "-w" }), desc = "Word (cwd)" }, - { "sw", LazyVim.pick("grep_string"), mode = "x", desc = "Selection (Root Dir)" }, - { "sW", LazyVim.pick("grep_string", { root = false }), mode = "x", desc = "Selection (cwd)" }, - { "uC", LazyVim.pick("colorscheme", { enable_preview = true }), desc = "Colorscheme with Preview" }, - { - "ss", - function() - require("telescope.builtin").lsp_document_symbols({ - symbols = LazyVim.config.get_kind_filter(), - }) - end, - desc = "Goto Symbol", - }, - { - "sS", - function() - require("telescope.builtin").lsp_dynamic_workspace_symbols({ - symbols = LazyVim.config.get_kind_filter(), - }) - end, - desc = "Goto Symbol (Workspace)", - }, - }, - opts = function() - local actions = require("telescope.actions") - - local open_with_trouble = function(...) - return require("trouble.sources.telescope").open(...) - end - local find_files_no_ignore = function() - local action_state = require("telescope.actions.state") - local line = action_state.get_current_line() - LazyVim.pick("find_files", { no_ignore = true, default_text = line })() - end - local find_files_with_hidden = function() - local action_state = require("telescope.actions.state") - local line = action_state.get_current_line() - LazyVim.pick("find_files", { hidden = true, default_text = line })() - end - - local function find_command() - if 1 == vim.fn.executable("rg") then - return { "rg", "--files", "--color", "never", "-g", "!.git" } - elseif 1 == vim.fn.executable("fd") then - return { "fd", "--type", "f", "--color", "never", "-E", ".git" } - elseif 1 == vim.fn.executable("fdfind") then - return { "fdfind", "--type", "f", "--color", "never", "-E", ".git" } - elseif 1 == vim.fn.executable("find") and vim.fn.has("win32") == 0 then - return { "find", ".", "-type", "f" } - elseif 1 == vim.fn.executable("where") then - return { "where", "/r", ".", "*" } - end - end - - return { - defaults = { - prompt_prefix = " ", - selection_caret = " ", - -- open files in the first window that is an actual file. - -- use the current window if no other window is available. - get_selection_window = function() - local wins = vim.api.nvim_list_wins() - table.insert(wins, 1, vim.api.nvim_get_current_win()) - for _, win in ipairs(wins) do - local buf = vim.api.nvim_win_get_buf(win) - if vim.bo[buf].buftype == "" then - return win - end - end - return 0 - end, - mappings = { - i = { - [""] = open_with_trouble, - [""] = open_with_trouble, - [""] = find_files_no_ignore, - [""] = find_files_with_hidden, - [""] = actions.cycle_history_next, - [""] = actions.cycle_history_prev, - [""] = actions.preview_scrolling_down, - [""] = actions.preview_scrolling_up, - }, - n = { - ["q"] = actions.close, - }, - }, - }, - pickers = { - find_files = { - find_command = find_command, - hidden = true, - }, - }, - } - end, -} -``` - - - - - -## [dressing.nvim](https://github.com/stevearc/dressing.nvim) - - better vim.ui with telescope - - - - - - -```lua -opts = nil -``` - - - - - - -```lua -{ - "stevearc/dressing.nvim", - lazy = true, - init = function() - ---@diagnostic disable-next-line: duplicate-set-field - vim.ui.select = function(...) - require("lazy").load({ plugins = { "dressing.nvim" } }) - return vim.ui.select(...) - end - ---@diagnostic disable-next-line: duplicate-set-field - vim.ui.input = function(...) - require("lazy").load({ plugins = { "dressing.nvim" } }) - return vim.ui.input(...) - end - end, -} -``` - - - - - -## [telescope.nvim](https://github.com/nvim-telescope/telescope.nvim) - - Flash Telescope config - - - - - - -```lua -opts = function(_, opts) - if not LazyVim.has("flash.nvim") then - return - end - local function flash(prompt_bufnr) - require("flash").jump({ - pattern = "^", - label = { after = { 0, 0 } }, - search = { - mode = "search", - exclude = { - function(win) - return vim.bo[vim.api.nvim_win_get_buf(win)].filetype ~= "TelescopeResults" - end, - }, - }, - action = function(match) - local picker = require("telescope.actions.state").get_current_picker(prompt_bufnr) - picker:set_selection(match.pos[1] - 1) - end, - }) - end - opts.defaults = vim.tbl_deep_extend("force", opts.defaults or {}, { - mappings = { n = { s = flash }, i = { [""] = flash } }, - }) -end -``` - - - - - - -```lua -{ - "nvim-telescope/telescope.nvim", - optional = true, - opts = function(_, opts) - if not LazyVim.has("flash.nvim") then - return - end - local function flash(prompt_bufnr) - require("flash").jump({ - pattern = "^", - label = { after = { 0, 0 } }, - search = { - mode = "search", - exclude = { - function(win) - return vim.bo[vim.api.nvim_win_get_buf(win)].filetype ~= "TelescopeResults" - end, - }, - }, - action = function(match) - local picker = require("telescope.actions.state").get_current_picker(prompt_bufnr) - picker:set_selection(match.pos[1] - 1) - end, - }) - end - opts.defaults = vim.tbl_deep_extend("force", opts.defaults or {}, { - mappings = { n = { s = flash }, i = { [""] = flash } }, - }) - end, -} -``` - - - - - -## [telescope-fzf-native.nvim](https://github.com/nvim-telescope/telescope-fzf-native.nvim) - - - - - -```lua -opts = {} -``` - - - - - - -```lua -{ - "nvim-telescope/telescope-fzf-native.nvim", - build = (build_cmd ~= "cmake") and "make" - or "cmake -S. -Bbuild -DCMAKE_BUILD_TYPE=Release && cmake --build build --config Release && cmake --install build --prefix build", - enabled = build_cmd ~= nil, - config = function(plugin) - LazyVim.on_load("telescope.nvim", function() - local ok, err = pcall(require("telescope").load_extension, "fzf") - if not ok then - local lib = plugin.dir .. "/build/libfzf." .. (LazyVim.is_win() and "dll" or "so") - if not vim.uv.fs_stat(lib) then - LazyVim.warn("`telescope-fzf-native.nvim` not built. Rebuilding...") - require("lazy").build({ plugins = { plugin }, show = false }):wait(function() - LazyVim.info("Rebuilding `telescope-fzf-native.nvim` done.\nPlease restart Neovim.") - end) - else - LazyVim.error("Failed to load `telescope-fzf-native.nvim`:\n" .. err) - end - end - end) - end, -} -``` - - - - - -## [nvim-lspconfig](https://github.com/neovim/nvim-lspconfig) - - - - - -```lua -opts = function() - local Keys = require("lazyvim.plugins.lsp.keymaps").get() - -- stylua: ignore - vim.list_extend(Keys, { - { "gd", function() require("telescope.builtin").lsp_definitions({ reuse_win = true }) end, desc = "Goto Definition", has = "definition" }, - { "gr", "Telescope lsp_references", desc = "References", nowait = true }, - { "gI", function() require("telescope.builtin").lsp_implementations({ reuse_win = true }) end, desc = "Goto Implementation" }, - { "gy", function() require("telescope.builtin").lsp_type_definitions({ reuse_win = true }) end, desc = "Goto T[y]pe Definition" }, - }) -end -``` - - - - - - -```lua -{ - "neovim/nvim-lspconfig", - opts = function() - local Keys = require("lazyvim.plugins.lsp.keymaps").get() - -- stylua: ignore - vim.list_extend(Keys, { - { "gd", function() require("telescope.builtin").lsp_definitions({ reuse_win = true }) end, desc = "Goto Definition", has = "definition" }, - { "gr", "Telescope lsp_references", desc = "References", nowait = true }, - { "gI", function() require("telescope.builtin").lsp_implementations({ reuse_win = true }) end, desc = "Goto Implementation" }, - { "gy", function() require("telescope.builtin").lsp_type_definitions({ reuse_win = true }) end, desc = "Goto T[y]pe Definition" }, - }) - end, -} -``` - - - - - - diff --git a/docs/extras/formatting/biome.md b/docs/extras/formatting/biome.md deleted file mode 100644 index 7779155c9a..0000000000 --- a/docs/extras/formatting/biome.md +++ /dev/null @@ -1,143 +0,0 @@ -# `Biome` - - - -:::info -You can enable the extra with the `:LazyExtras` command. -Plugins marked as optional will only be configured if they are installed. -::: - -### Options - -Additional options for this extra can be configured in your [lua/config/options.lua](/configuration/general#options) file: - -```lua title="lua/config/options.lua" --- Enable this option to avoid conflicts with Prettier. -vim.g.lazyvim_prettier_needs_config = true -``` - -Below you can find a list of included plugins and their default settings. - -:::caution -You don't need to copy the default settings to your config. -They are only shown here for reference. -::: - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -## [mason.nvim](https://github.com/mason-org/mason.nvim) - - - - - -```lua -opts = { ensure_installed = { "biome" } } -``` - - - - - - -```lua -{ - "mason-org/mason.nvim", - opts = { ensure_installed = { "biome" } }, -} -``` - - - - - -## [conform.nvim](https://github.com/stevearc/conform.nvim) _(optional)_ - - - - - -```lua -opts = function(_, opts) - opts.formatters_by_ft = opts.formatters_by_ft or {} - for _, ft in ipairs(supported) do - opts.formatters_by_ft[ft] = opts.formatters_by_ft[ft] or {} - table.insert(opts.formatters_by_ft[ft], "biome") - end - - opts.formatters = opts.formatters or {} - opts.formatters.biome = { - require_cwd = true, - } -end -``` - - - - - - -```lua -{ - "stevearc/conform.nvim", - optional = true, - ---@param opts ConformOpts - opts = function(_, opts) - opts.formatters_by_ft = opts.formatters_by_ft or {} - for _, ft in ipairs(supported) do - opts.formatters_by_ft[ft] = opts.formatters_by_ft[ft] or {} - table.insert(opts.formatters_by_ft[ft], "biome") - end - - opts.formatters = opts.formatters or {} - opts.formatters.biome = { - require_cwd = true, - } - end, -} -``` - - - - - -## [none-ls.nvim](https://github.com/nvimtools/none-ls.nvim) _(optional)_ - - none-ls support - - - - - - -```lua -opts = function(_, opts) - local nls = require("null-ls") - opts.sources = opts.sources or {} - table.insert(opts.sources, nls.builtins.formatting.biome) -end -``` - - - - - - -```lua -{ - "nvimtools/none-ls.nvim", - optional = true, - opts = function(_, opts) - local nls = require("null-ls") - opts.sources = opts.sources or {} - table.insert(opts.sources, nls.builtins.formatting.biome) - end, -} -``` - - - - - - diff --git a/docs/extras/formatting/black.md b/docs/extras/formatting/black.md deleted file mode 100644 index cee7a9e135..0000000000 --- a/docs/extras/formatting/black.md +++ /dev/null @@ -1,120 +0,0 @@ -# Black Formatter - - - -:::info -You can enable the extra with the `:LazyExtras` command. -Plugins marked as optional will only be configured if they are installed. -::: - -Below you can find a list of included plugins and their default settings. - -:::caution -You don't need to copy the default settings to your config. -They are only shown here for reference. -::: - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -## [mason.nvim](https://github.com/mason-org/mason.nvim) - - - - - -```lua -opts = function(_, opts) - table.insert(opts.ensure_installed, "black") -end -``` - - - - - - -```lua -{ - "mason-org/mason.nvim", - opts = function(_, opts) - table.insert(opts.ensure_installed, "black") - end, -} -``` - - - - - -## [none-ls.nvim](https://github.com/nvimtools/none-ls.nvim) _(optional)_ - - - - - -```lua -opts = function(_, opts) - local nls = require("null-ls") - opts.sources = opts.sources or {} - table.insert(opts.sources, nls.builtins.formatting.black) -end -``` - - - - - - -```lua -{ - "nvimtools/none-ls.nvim", - optional = true, - opts = function(_, opts) - local nls = require("null-ls") - opts.sources = opts.sources or {} - table.insert(opts.sources, nls.builtins.formatting.black) - end, -} -``` - - - - - -## [conform.nvim](https://github.com/stevearc/conform.nvim) _(optional)_ - - - - - -```lua -opts = { - formatters_by_ft = { - ["python"] = { "black" }, - }, -} -``` - - - - - - -```lua -{ - "stevearc/conform.nvim", - optional = true, - opts = { - formatters_by_ft = { - ["python"] = { "black" }, - }, - }, -} -``` - - - - - - diff --git a/docs/extras/formatting/prettier.md b/docs/extras/formatting/prettier.md deleted file mode 100644 index b9f931d023..0000000000 --- a/docs/extras/formatting/prettier.md +++ /dev/null @@ -1,151 +0,0 @@ -# Prettier - - - -:::info -You can enable the extra with the `:LazyExtras` command. -Plugins marked as optional will only be configured if they are installed. -::: - -### Options - -Additional options for this extra can be configured in your [lua/config/options.lua](/configuration/general#options) file: - -```lua title="lua/config/options.lua" --- Enable the option to require a Prettier config file --- If no prettier config file is found, the formatter will not be used -vim.g.lazyvim_prettier_needs_config = false -``` - -Below you can find a list of included plugins and their default settings. - -:::caution -You don't need to copy the default settings to your config. -They are only shown here for reference. -::: - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -## [mason.nvim](https://github.com/mason-org/mason.nvim) - - - - - -```lua -opts = { ensure_installed = { "prettier" } } -``` - - - - - - -```lua -{ - "mason-org/mason.nvim", - opts = { ensure_installed = { "prettier" } }, -} -``` - - - - - -## [conform.nvim](https://github.com/stevearc/conform.nvim) _(optional)_ - - conform - - - - - - -```lua -opts = function(_, opts) - opts.formatters_by_ft = opts.formatters_by_ft or {} - for _, ft in ipairs(supported) do - opts.formatters_by_ft[ft] = opts.formatters_by_ft[ft] or {} - table.insert(opts.formatters_by_ft[ft], "prettier") - end - - opts.formatters = opts.formatters or {} - opts.formatters.prettier = { - condition = function(_, ctx) - return M.has_parser(ctx) and (vim.g.lazyvim_prettier_needs_config ~= true or M.has_config(ctx)) - end, - } -end -``` - - - - - - -```lua -{ - "stevearc/conform.nvim", - optional = true, - ---@param opts ConformOpts - opts = function(_, opts) - opts.formatters_by_ft = opts.formatters_by_ft or {} - for _, ft in ipairs(supported) do - opts.formatters_by_ft[ft] = opts.formatters_by_ft[ft] or {} - table.insert(opts.formatters_by_ft[ft], "prettier") - end - - opts.formatters = opts.formatters or {} - opts.formatters.prettier = { - condition = function(_, ctx) - return M.has_parser(ctx) and (vim.g.lazyvim_prettier_needs_config ~= true or M.has_config(ctx)) - end, - } - end, -} -``` - - - - - -## [none-ls.nvim](https://github.com/nvimtools/none-ls.nvim) _(optional)_ - - none-ls support - - - - - - -```lua -opts = function(_, opts) - local nls = require("null-ls") - opts.sources = opts.sources or {} - table.insert(opts.sources, nls.builtins.formatting.prettier) -end -``` - - - - - - -```lua -{ - "nvimtools/none-ls.nvim", - optional = true, - opts = function(_, opts) - local nls = require("null-ls") - opts.sources = opts.sources or {} - table.insert(opts.sources, nls.builtins.formatting.prettier) - end, -} -``` - - - - - - diff --git a/docs/extras/index.md b/docs/extras/index.md deleted file mode 100644 index 93f7ff181b..0000000000 --- a/docs/extras/index.md +++ /dev/null @@ -1,5 +0,0 @@ -# Extras - -The easiest way to install extras in **LazyVim** is with the `:LazyExtras` command. - -![image](https://github.com/LazyVim/lazyvim.github.io/assets/292349/e02f4a72-97bc-46cd-ab30-92127b1bbe4d) diff --git a/docs/extras/lang/angular.md b/docs/extras/lang/angular.md deleted file mode 100644 index a0c9b387a3..0000000000 --- a/docs/extras/lang/angular.md +++ /dev/null @@ -1,207 +0,0 @@ -# `Angular` - - - -:::info -You can enable the extra with the `:LazyExtras` command. -Plugins marked as optional will only be configured if they are installed. -::: - -Below you can find a list of included plugins and their default settings. - -:::caution -You don't need to copy the default settings to your config. -They are only shown here for reference. -::: - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -### Includes the following extras - -- [lang.typescript](/extras/lang/typescript) - -## [nvim-treesitter](https://github.com/nvim-treesitter/nvim-treesitter) - - - - - -```lua -opts = function(_, opts) - if type(opts.ensure_installed) == "table" then - vim.list_extend(opts.ensure_installed, { "angular", "scss" }) - end - vim.api.nvim_create_autocmd({ "BufReadPost", "BufNewFile" }, { - pattern = { "*.component.html", "*.container.html" }, - callback = function() - vim.treesitter.start(nil, "angular") - end, - }) -end -``` - - - - - - -```lua -{ - "nvim-treesitter", - opts = function(_, opts) - if type(opts.ensure_installed) == "table" then - vim.list_extend(opts.ensure_installed, { "angular", "scss" }) - end - vim.api.nvim_create_autocmd({ "BufReadPost", "BufNewFile" }, { - pattern = { "*.component.html", "*.container.html" }, - callback = function() - vim.treesitter.start(nil, "angular") - end, - }) - end, -} -``` - - - - - -## [nvim-lspconfig](https://github.com/neovim/nvim-lspconfig) - - LSP Servers - - - - - - -```lua -opts = { - servers = { - angularls = {}, - }, - setup = { - angularls = function() - LazyVim.lsp.on_attach(function(client) - --HACK: disable angular renaming capability due to duplicate rename popping up - client.server_capabilities.renameProvider = false - end, "angularls") - end, - }, -} -``` - - - - - - -```lua -{ - "neovim/nvim-lspconfig", - opts = { - servers = { - angularls = {}, - }, - setup = { - angularls = function() - LazyVim.lsp.on_attach(function(client) - --HACK: disable angular renaming capability due to duplicate rename popping up - client.server_capabilities.renameProvider = false - end, "angularls") - end, - }, - }, -} -``` - - - - - -## [nvim-lspconfig](https://github.com/neovim/nvim-lspconfig) - - Configure tsserver plugin - - - - - - -```lua -opts = function(_, opts) - LazyVim.extend(opts.servers.vtsls, "settings.vtsls.tsserver.globalPlugins", { - { - name = "@angular/language-server", - location = LazyVim.get_pkg_path("angular-language-server", "/node_modules/@angular/language-server"), - enableForWorkspaceTypeScriptVersions = false, - }, - }) -end -``` - - - - - - -```lua -{ - "neovim/nvim-lspconfig", - opts = function(_, opts) - LazyVim.extend(opts.servers.vtsls, "settings.vtsls.tsserver.globalPlugins", { - { - name = "@angular/language-server", - location = LazyVim.get_pkg_path("angular-language-server", "/node_modules/@angular/language-server"), - enableForWorkspaceTypeScriptVersions = false, - }, - }) - end, -} -``` - - - - - -## [conform.nvim](https://github.com/stevearc/conform.nvim) - - formatting - - - - - - -```lua -opts = function(_, opts) - if LazyVim.has_extra("formatting.prettier") then - opts.formatters_by_ft = opts.formatters_by_ft or {} - opts.formatters_by_ft.htmlangular = { "prettier" } - end -end -``` - - - - - - -```lua -{ - "conform.nvim", - opts = function(_, opts) - if LazyVim.has_extra("formatting.prettier") then - opts.formatters_by_ft = opts.formatters_by_ft or {} - opts.formatters_by_ft.htmlangular = { "prettier" } - end - end, -} -``` - - - - - - diff --git a/docs/extras/lang/ansible.md b/docs/extras/lang/ansible.md deleted file mode 100644 index d892f6c118..0000000000 --- a/docs/extras/lang/ansible.md +++ /dev/null @@ -1,117 +0,0 @@ -# `Ansible` - - - -:::info -You can enable the extra with the `:LazyExtras` command. -Plugins marked as optional will only be configured if they are installed. -::: - -Below you can find a list of included plugins and their default settings. - -:::caution -You don't need to copy the default settings to your config. -They are only shown here for reference. -::: - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -## [mason.nvim](https://github.com/mason-org/mason.nvim) - - - - - -```lua -opts = { ensure_installed = { "ansible-lint" } } -``` - - - - - - -```lua -{ - "mason-org/mason.nvim", - opts = { ensure_installed = { "ansible-lint" } }, -} -``` - - - - - -## [nvim-lspconfig](https://github.com/neovim/nvim-lspconfig) - - - - - -```lua -opts = { - servers = { - ansiblels = {}, - }, -} -``` - - - - - - -```lua -{ - "neovim/nvim-lspconfig", - opts = { - servers = { - ansiblels = {}, - }, - }, -} -``` - - - - - -## [nvim-ansible](https://github.com/mfussenegger/nvim-ansible) - - - - - -```lua -opts = nil -``` - - - - - - -```lua -{ - "mfussenegger/nvim-ansible", - ft = { "yaml" }, - keys = { - { - "ta", - function() - require("ansible").run() - end, - ft = "yaml.ansible", - desc = "Ansible Run Playbook/Role", - silent = true, - }, - }, -} -``` - - - - - - diff --git a/docs/extras/lang/astro.md b/docs/extras/lang/astro.md deleted file mode 100644 index 43f20394df..0000000000 --- a/docs/extras/lang/astro.md +++ /dev/null @@ -1,168 +0,0 @@ -# `Astro` - - - -:::info -You can enable the extra with the `:LazyExtras` command. -Plugins marked as optional will only be configured if they are installed. -::: - -Below you can find a list of included plugins and their default settings. - -:::caution -You don't need to copy the default settings to your config. -They are only shown here for reference. -::: - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -### Includes the following extras - -- [lang.typescript](/extras/lang/typescript) - -## [nvim-treesitter](https://github.com/nvim-treesitter/nvim-treesitter) - - - - - -```lua -opts = { ensure_installed = { "astro", "css" } } -``` - - - - - - -```lua -{ - "nvim-treesitter/nvim-treesitter", - opts = { ensure_installed = { "astro", "css" } }, -} -``` - - - - - -## [nvim-lspconfig](https://github.com/neovim/nvim-lspconfig) - - LSP Servers - - - - - - -```lua -opts = { - servers = { - astro = {}, - }, -} -``` - - - - - - -```lua -{ - "neovim/nvim-lspconfig", - opts = { - servers = { - astro = {}, - }, - }, -} -``` - - - - - -## [nvim-lspconfig](https://github.com/neovim/nvim-lspconfig) - - Configure tsserver plugin - - - - - - -```lua -opts = function(_, opts) - LazyVim.extend(opts.servers.vtsls, "settings.vtsls.tsserver.globalPlugins", { - { - name = "@astrojs/ts-plugin", - location = LazyVim.get_pkg_path("astro-language-server", "/node_modules/@astrojs/ts-plugin"), - enableForWorkspaceTypeScriptVersions = true, - }, - }) -end -``` - - - - - - -```lua -{ - "neovim/nvim-lspconfig", - opts = function(_, opts) - LazyVim.extend(opts.servers.vtsls, "settings.vtsls.tsserver.globalPlugins", { - { - name = "@astrojs/ts-plugin", - location = LazyVim.get_pkg_path("astro-language-server", "/node_modules/@astrojs/ts-plugin"), - enableForWorkspaceTypeScriptVersions = true, - }, - }) - end, -} -``` - - - - - -## [conform.nvim](https://github.com/stevearc/conform.nvim) - - - - - -```lua -opts = function(_, opts) - if LazyVim.has_extra("formatting.prettier") then - opts.formatters_by_ft = opts.formatters_by_ft or {} - opts.formatters_by_ft.astro = { "prettier" } - end -end -``` - - - - - - -```lua -{ - "conform.nvim", - opts = function(_, opts) - if LazyVim.has_extra("formatting.prettier") then - opts.formatters_by_ft = opts.formatters_by_ft or {} - opts.formatters_by_ft.astro = { "prettier" } - end - end, -} -``` - - - - - - diff --git a/docs/extras/lang/clangd.md b/docs/extras/lang/clangd.md deleted file mode 100644 index 65014a9ce8..0000000000 --- a/docs/extras/lang/clangd.md +++ /dev/null @@ -1,414 +0,0 @@ -# Clangd - - - -:::info -You can enable the extra with the `:LazyExtras` command. -Plugins marked as optional will only be configured if they are installed. -::: - -Below you can find a list of included plugins and their default settings. - -:::caution -You don't need to copy the default settings to your config. -They are only shown here for reference. -::: - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -## [nvim-treesitter](https://github.com/nvim-treesitter/nvim-treesitter) - - Add C/C++ to treesitter - - - - - - -```lua -opts = { ensure_installed = { "cpp" } } -``` - - - - - - -```lua -{ - "nvim-treesitter/nvim-treesitter", - opts = { ensure_installed = { "cpp" } }, -} -``` - - - - - -## [clangd_extensions.nvim](https://github.com/p00f/clangd_extensions.nvim) - - - - - -```lua -opts = { - inlay_hints = { - inline = false, - }, - ast = { - --These require codicons (https://github.com/microsoft/vscode-codicons) - role_icons = { - type = "", - declaration = "", - expression = "", - specifier = "", - statement = "", - ["template argument"] = "", - }, - kind_icons = { - Compound = "", - Recovery = "", - TranslationUnit = "", - PackExpansion = "", - TemplateTypeParm = "", - TemplateTemplateParm = "", - TemplateParamObject = "", - }, - }, -} -``` - - - - - - -```lua -{ - "p00f/clangd_extensions.nvim", - lazy = true, - config = function() end, - opts = { - inlay_hints = { - inline = false, - }, - ast = { - --These require codicons (https://github.com/microsoft/vscode-codicons) - role_icons = { - type = "", - declaration = "", - expression = "", - specifier = "", - statement = "", - ["template argument"] = "", - }, - kind_icons = { - Compound = "", - Recovery = "", - TranslationUnit = "", - PackExpansion = "", - TemplateTypeParm = "", - TemplateTemplateParm = "", - TemplateParamObject = "", - }, - }, - }, -} -``` - - - - - -## [nvim-lspconfig](https://github.com/neovim/nvim-lspconfig) - - Correctly setup lspconfig for clangd 🚀 - - - - - - -```lua -opts = { - servers = { - -- Ensure mason installs the server - clangd = { - keys = { - { "ch", "LspClangdSwitchSourceHeader", desc = "Switch Source/Header (C/C++)" }, - }, - root_markers = { - "compile_commands.json", - "compile_flags.txt", - "configure.ac", -- AutoTools - "Makefile", - "configure.ac", - "configure.in", - "config.h.in", - "meson.build", - "meson_options.txt", - "build.ninja", - ".git", - }, - capabilities = { - offsetEncoding = { "utf-16" }, - }, - cmd = { - "clangd", - "--background-index", - "--clang-tidy", - "--header-insertion=iwyu", - "--completion-style=detailed", - "--function-arg-placeholders", - "--fallback-style=llvm", - }, - init_options = { - usePlaceholders = true, - completeUnimported = true, - clangdFileStatus = true, - }, - }, - }, - setup = { - clangd = function(_, opts) - local clangd_ext_opts = LazyVim.opts("clangd_extensions.nvim") - require("clangd_extensions").setup(vim.tbl_deep_extend("force", clangd_ext_opts or {}, { server = opts })) - return false - end, - }, -} -``` - - - - - - -```lua -{ - "neovim/nvim-lspconfig", - opts = { - servers = { - -- Ensure mason installs the server - clangd = { - keys = { - { "ch", "LspClangdSwitchSourceHeader", desc = "Switch Source/Header (C/C++)" }, - }, - root_markers = { - "compile_commands.json", - "compile_flags.txt", - "configure.ac", -- AutoTools - "Makefile", - "configure.ac", - "configure.in", - "config.h.in", - "meson.build", - "meson_options.txt", - "build.ninja", - ".git", - }, - capabilities = { - offsetEncoding = { "utf-16" }, - }, - cmd = { - "clangd", - "--background-index", - "--clang-tidy", - "--header-insertion=iwyu", - "--completion-style=detailed", - "--function-arg-placeholders", - "--fallback-style=llvm", - }, - init_options = { - usePlaceholders = true, - completeUnimported = true, - clangdFileStatus = true, - }, - }, - }, - setup = { - clangd = function(_, opts) - local clangd_ext_opts = LazyVim.opts("clangd_extensions.nvim") - require("clangd_extensions").setup(vim.tbl_deep_extend("force", clangd_ext_opts or {}, { server = opts })) - return false - end, - }, - }, -} -``` - - - - - -## [nvim-cmp](https://github.com/hrsh7th/nvim-cmp) _(optional)_ - - - - - -```lua -opts = function(_, opts) - opts.sorting = opts.sorting or {} - opts.sorting.comparators = opts.sorting.comparators or {} - table.insert(opts.sorting.comparators, 1, require("clangd_extensions.cmp_scores")) -end -``` - - - - - - -```lua -{ - "hrsh7th/nvim-cmp", - optional = true, - opts = function(_, opts) - opts.sorting = opts.sorting or {} - opts.sorting.comparators = opts.sorting.comparators or {} - table.insert(opts.sorting.comparators, 1, require("clangd_extensions.cmp_scores")) - end, -} -``` - - - - - -## [nvim-dap](https://github.com/mfussenegger/nvim-dap) _(optional)_ - - - - - -```lua -opts = function() - local dap = require("dap") - if not dap.adapters["codelldb"] then - require("dap").adapters["codelldb"] = { - type = "server", - host = "localhost", - port = "${port}", - executable = { - command = "codelldb", - args = { - "--port", - "${port}", - }, - }, - } - end - for _, lang in ipairs({ "c", "cpp" }) do - dap.configurations[lang] = { - { - type = "codelldb", - request = "launch", - name = "Launch file", - program = function() - return vim.fn.input("Path to executable: ", vim.fn.getcwd() .. "/", "file") - end, - cwd = "${workspaceFolder}", - }, - { - type = "codelldb", - request = "attach", - name = "Attach to process", - pid = require("dap.utils").pick_process, - cwd = "${workspaceFolder}", - }, - } - end -end -``` - - - - - - -```lua -{ - "mfussenegger/nvim-dap", - optional = true, - dependencies = { - -- Ensure C/C++ debugger is installed - "mason-org/mason.nvim", - optional = true, - opts = { ensure_installed = { "codelldb" } }, - }, - opts = function() - local dap = require("dap") - if not dap.adapters["codelldb"] then - require("dap").adapters["codelldb"] = { - type = "server", - host = "localhost", - port = "${port}", - executable = { - command = "codelldb", - args = { - "--port", - "${port}", - }, - }, - } - end - for _, lang in ipairs({ "c", "cpp" }) do - dap.configurations[lang] = { - { - type = "codelldb", - request = "launch", - name = "Launch file", - program = function() - return vim.fn.input("Path to executable: ", vim.fn.getcwd() .. "/", "file") - end, - cwd = "${workspaceFolder}", - }, - { - type = "codelldb", - request = "attach", - name = "Attach to process", - pid = require("dap.utils").pick_process, - cwd = "${workspaceFolder}", - }, - } - end - end, -} -``` - - - - - -## [mason.nvim](https://github.com/mason-org/mason.nvim) _(optional)_ - - - - - -```lua -opts = { ensure_installed = { "codelldb" } } -``` - - - - - - -```lua -{ - -- Ensure C/C++ debugger is installed - "mason-org/mason.nvim", - optional = true, - opts = { ensure_installed = { "codelldb" } }, -} -``` - - - - - - diff --git a/docs/extras/lang/clojure.md b/docs/extras/lang/clojure.md deleted file mode 100644 index d29859fc10..0000000000 --- a/docs/extras/lang/clojure.md +++ /dev/null @@ -1,257 +0,0 @@ -# `Clojure` - - - -:::info -You can enable the extra with the `:LazyExtras` command. -Plugins marked as optional will only be configured if they are installed. -::: - -Below you can find a list of included plugins and their default settings. - -:::caution -You don't need to copy the default settings to your config. -They are only shown here for reference. -::: - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -## [nvim-treesitter](https://github.com/nvim-treesitter/nvim-treesitter) - - Add Clojure & related to treesitter - - - - - - -```lua -opts = { ensure_installed = { "clojure" } } -``` - - - - - - -```lua -{ - "nvim-treesitter/nvim-treesitter", - opts = { ensure_installed = { "clojure" } }, -} -``` - - - - - -## [cmp-conjure](https://github.com/PaterJason/cmp-conjure) - - - - - -```lua -opts = nil -``` - - - - - - -```lua -{ - "PaterJason/cmp-conjure", -} -``` - - - - - -## [nvim-paredit](https://github.com/julienvincent/nvim-paredit) - - Add s-exp mappings - - - - - - -```lua -opts = {} -``` - - - - - - -```lua -{ "julienvincent/nvim-paredit", opts = {}, event = "LazyFile" } -``` - - - - - -## [baleia.nvim](https://github.com/m00qek/baleia.nvim) - - Colorize the output of the log buffer - - - - - - -```lua -opts = { - line_starts_at = 3, -} -``` - - - - - - -```lua -{ - "m00qek/baleia.nvim", - opts = { - line_starts_at = 3, - }, - config = function(_, opts) - vim.g.conjure_baleia = require("baleia").setup(opts) - - vim.api.nvim_create_user_command("BaleiaColorize", function() - vim.g.conjure_baleia.once(vim.api.nvim_get_current_buf()) - end, { bang = true }) - - vim.api.nvim_create_user_command("BaleiaLogs", vim.g.conjure_baleia.logger.show, { bang = true }) - end, -} -``` - - - - - -## [conjure](https://github.com/Olical/conjure) - - Use Clojure REPL - - - - - - -```lua -opts = {} -``` - - - - - - -```lua -{ - "Olical/conjure", - event = "LazyFile", - config = function(_, _) - require("conjure.main").main() - require("conjure.mapping")["on-filetype"]() - end, - init = function() - -- print color codes if baleia.nvim is available - local colorize = require("lazyvim.util").has("baleia.nvim") - - if colorize then - vim.g["conjure#log#strip_ansi_escape_sequences_line_limit"] = 0 - else - vim.g["conjure#log#strip_ansi_escape_sequences_line_limit"] = 1 - end - - -- disable diagnostics in log buffer and colorize it - vim.api.nvim_create_autocmd({ "BufWinEnter" }, { - pattern = "conjure-log-*", - callback = function() - local buffer = vim.api.nvim_get_current_buf() - vim.diagnostic.enable(false, { bufnr = buffer }) - - if colorize and vim.g.conjure_baleia then - vim.g.conjure_baleia.automatically(buffer) - end - - vim.keymap.set( - { "n", "x" }, - "[c", - "call search('^; -\\+$', 'bw')", - { silent = true, buffer = true, desc = "Jumps to the begining of previous evaluation output." } - ) - vim.keymap.set( - { "n", "x" }, - "]c", - "call search('^; -\\+$', 'w')", - { silent = true, buffer = true, desc = "Jumps to the begining of next evaluation output." } - ) - end, - }) - - -- prefer LSP for jump-to-definition and symbol-doc, and use conjure - -- alternatives with K and gd - vim.g["conjure#mapping#doc_word"] = "K" - vim.g["conjure#mapping#def_word"] = "gd" - end, -} -``` - - - - - -## [nvim-cmp](https://github.com/hrsh7th/nvim-cmp) _(optional)_ - - Extend auto completion - - - - - - -```lua -opts = function(_, opts) - if type(opts.sources) == "table" then - vim.list_extend(opts.sources, { name = "conjure" }) - end -end -``` - - - - - - -```lua -{ - "hrsh7th/nvim-cmp", - optional = true, - dependencies = { - "PaterJason/cmp-conjure", - }, - opts = function(_, opts) - if type(opts.sources) == "table" then - vim.list_extend(opts.sources, { name = "conjure" }) - end - end, -} -``` - - - - - - diff --git a/docs/extras/lang/cmake.md b/docs/extras/lang/cmake.md deleted file mode 100644 index 5afda47776..0000000000 --- a/docs/extras/lang/cmake.md +++ /dev/null @@ -1,246 +0,0 @@ -# CMake - - - -:::info -You can enable the extra with the `:LazyExtras` command. -Plugins marked as optional will only be configured if they are installed. -::: - -Below you can find a list of included plugins and their default settings. - -:::caution -You don't need to copy the default settings to your config. -They are only shown here for reference. -::: - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -## [nvim-treesitter](https://github.com/nvim-treesitter/nvim-treesitter) - - - - - -```lua -opts = { ensure_installed = { "cmake" } } -``` - - - - - - -```lua -{ - "nvim-treesitter/nvim-treesitter", - opts = { ensure_installed = { "cmake" } }, -} -``` - - - - - -## [mason.nvim](https://github.com/mason-org/mason.nvim) - - - - - -```lua -opts = { ensure_installed = { "cmakelang", "cmakelint" } } -``` - - - - - - -```lua -{ - "mason.nvim", - opts = { ensure_installed = { "cmakelang", "cmakelint" } }, -} -``` - - - - - -## [nvim-lspconfig](https://github.com/neovim/nvim-lspconfig) - - - - - -```lua -opts = { - servers = { - neocmake = {}, - }, -} -``` - - - - - - -```lua -{ - "neovim/nvim-lspconfig", - opts = { - servers = { - neocmake = {}, - }, - }, -} -``` - - - - - -## [cmake-tools.nvim](https://github.com/Civitasv/cmake-tools.nvim) - - - - - -```lua -opts = {} -``` - - - - - - -```lua -{ - "Civitasv/cmake-tools.nvim", - lazy = true, - init = function() - local loaded = false - local function check() - local cwd = vim.uv.cwd() - if vim.fn.filereadable(cwd .. "/CMakeLists.txt") == 1 then - require("lazy").load({ plugins = { "cmake-tools.nvim" } }) - loaded = true - end - end - check() - vim.api.nvim_create_autocmd("DirChanged", { - callback = function() - if not loaded then - check() - end - end, - }) - end, - opts = {}, -} -``` - - - - - -## [cmake-tools.nvim](https://github.com/Civitasv/cmake-tools.nvim) - - - - - -```lua -opts = nil -``` - - - - - - -```lua -{ "cmake-tools.nvim" } -``` - - - - - -## [none-ls.nvim](https://github.com/nvimtools/none-ls.nvim) _(optional)_ - - - - - -```lua -opts = function(_, opts) - local nls = require("null-ls") - opts.sources = vim.list_extend(opts.sources or {}, { - nls.builtins.diagnostics.cmake_lint, - }) -end -``` - - - - - - -```lua -{ - "nvimtools/none-ls.nvim", - optional = true, - opts = function(_, opts) - local nls = require("null-ls") - opts.sources = vim.list_extend(opts.sources or {}, { - nls.builtins.diagnostics.cmake_lint, - }) - end, -} -``` - - - - - -## [nvim-lint](https://github.com/mfussenegger/nvim-lint) _(optional)_ - - - - - -```lua -opts = { - linters_by_ft = { - cmake = { "cmakelint" }, - }, -} -``` - - - - - - -```lua -{ - "mfussenegger/nvim-lint", - optional = true, - opts = { - linters_by_ft = { - cmake = { "cmakelint" }, - }, - }, -} -``` - - - - - - diff --git a/docs/extras/lang/dart.md b/docs/extras/lang/dart.md deleted file mode 100644 index 867830d2c6..0000000000 --- a/docs/extras/lang/dart.md +++ /dev/null @@ -1,177 +0,0 @@ -# `Dart` - - - -:::info -You can enable the extra with the `:LazyExtras` command. -Plugins marked as optional will only be configured if they are installed. -::: - -Below you can find a list of included plugins and their default settings. - -:::caution -You don't need to copy the default settings to your config. -They are only shown here for reference. -::: - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -## [nvim-lspconfig](https://github.com/neovim/nvim-lspconfig) - - - - - -```lua -opts = { - servers = { - dartls = {}, - }, -} -``` - - - - - - -```lua -{ - "neovim/nvim-lspconfig", - opts = { - servers = { - dartls = {}, - }, - }, -} -``` - - - - - -## [nvim-treesitter](https://github.com/nvim-treesitter/nvim-treesitter) - - - - - -```lua -opts = { ensure_installed = { "dart" } } -``` - - - - - - -```lua -{ - "nvim-treesitter/nvim-treesitter", - opts = { ensure_installed = { "dart" } }, -} -``` - - - - - -## [conform.nvim](https://github.com/stevearc/conform.nvim) - - - - - -```lua -opts = { - formatters_by_ft = { - dart = { "dart_format" }, - }, -} -``` - - - - - - -```lua -{ - "stevearc/conform.nvim", - opts = { - formatters_by_ft = { - dart = { "dart_format" }, - }, - }, -} -``` - - - - - -## [neotest-dart](https://github.com/sidlatau/neotest-dart) - - - - - -```lua -opts = nil -``` - - - - - - -```lua -{ - "sidlatau/neotest-dart", -} -``` - - - - - -## [neotest](https://github.com/nvim-neotest/neotest) _(optional)_ - - - - - -```lua -opts = { - adapters = { - ["neotest-dart"] = {}, - }, -} -``` - - - - - - -```lua -{ - "nvim-neotest/neotest", - optional = true, - dependencies = { - "sidlatau/neotest-dart", - }, - opts = { - adapters = { - ["neotest-dart"] = {}, - }, - }, -} -``` - - - - - - diff --git a/docs/extras/lang/docker.md b/docs/extras/lang/docker.md deleted file mode 100644 index edf1590581..0000000000 --- a/docs/extras/lang/docker.md +++ /dev/null @@ -1,180 +0,0 @@ -# Docker - - - -:::info -You can enable the extra with the `:LazyExtras` command. -Plugins marked as optional will only be configured if they are installed. -::: - -Below you can find a list of included plugins and their default settings. - -:::caution -You don't need to copy the default settings to your config. -They are only shown here for reference. -::: - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -## [nvim-treesitter](https://github.com/nvim-treesitter/nvim-treesitter) - - - - - -```lua -opts = { ensure_installed = { "dockerfile" } } -``` - - - - - - -```lua -{ - "nvim-treesitter/nvim-treesitter", - opts = { ensure_installed = { "dockerfile" } }, -} -``` - - - - - -## [mason.nvim](https://github.com/mason-org/mason.nvim) - - - - - -```lua -opts = { ensure_installed = { "hadolint" } } -``` - - - - - - -```lua -{ - "mason.nvim", - opts = { ensure_installed = { "hadolint" } }, -} -``` - - - - - -## [nvim-lspconfig](https://github.com/neovim/nvim-lspconfig) - - - - - -```lua -opts = { - servers = { - dockerls = {}, - docker_compose_language_service = {}, - }, -} -``` - - - - - - -```lua -{ - "neovim/nvim-lspconfig", - opts = { - servers = { - dockerls = {}, - docker_compose_language_service = {}, - }, - }, -} -``` - - - - - -## [none-ls.nvim](https://github.com/nvimtools/none-ls.nvim) _(optional)_ - - - - - -```lua -opts = function(_, opts) - local nls = require("null-ls") - opts.sources = vim.list_extend(opts.sources or {}, { - nls.builtins.diagnostics.hadolint, - }) -end -``` - - - - - - -```lua -{ - "nvimtools/none-ls.nvim", - optional = true, - opts = function(_, opts) - local nls = require("null-ls") - opts.sources = vim.list_extend(opts.sources or {}, { - nls.builtins.diagnostics.hadolint, - }) - end, -} -``` - - - - - -## [nvim-lint](https://github.com/mfussenegger/nvim-lint) _(optional)_ - - - - - -```lua -opts = { - linters_by_ft = { - dockerfile = { "hadolint" }, - }, -} -``` - - - - - - -```lua -{ - "mfussenegger/nvim-lint", - optional = true, - opts = { - linters_by_ft = { - dockerfile = { "hadolint" }, - }, - }, -} -``` - - - - - - diff --git a/docs/extras/lang/dotnet.md b/docs/extras/lang/dotnet.md deleted file mode 100644 index 912637076f..0000000000 --- a/docs/extras/lang/dotnet.md +++ /dev/null @@ -1,395 +0,0 @@ -# `Dotnet` - - - -:::info -You can enable the extra with the `:LazyExtras` command. -Plugins marked as optional will only be configured if they are installed. -::: - -Below you can find a list of included plugins and their default settings. - -:::caution -You don't need to copy the default settings to your config. -They are only shown here for reference. -::: - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -## [omnisharp-extended-lsp.nvim](https://github.com/Hoffs/omnisharp-extended-lsp.nvim) - - - - - -```lua -opts = nil -``` - - - - - - -```lua -{ "Hoffs/omnisharp-extended-lsp.nvim", lazy = true } -``` - - - - - -## [nvim-treesitter](https://github.com/nvim-treesitter/nvim-treesitter) - - - - - -```lua -opts = { ensure_installed = { "c_sharp", "fsharp" } } -``` - - - - - - -```lua -{ - "nvim-treesitter/nvim-treesitter", - opts = { ensure_installed = { "c_sharp", "fsharp" } }, -} -``` - - - - - -## [mason.nvim](https://github.com/mason-org/mason.nvim) - - - - - -```lua -opts = { ensure_installed = { "csharpier", "netcoredbg", "fantomas" } } -``` - - - - - - -```lua -{ - "mason-org/mason.nvim", - opts = { ensure_installed = { "csharpier", "netcoredbg", "fantomas" } }, -} -``` - - - - - -## [nvim-lspconfig](https://github.com/neovim/nvim-lspconfig) - - - - - -```lua -opts = { - servers = { - fsautocomplete = {}, - omnisharp = { - handlers = { - ["textDocument/definition"] = function(...) - return require("omnisharp_extended").handler(...) - end, - }, - keys = { - { - "gd", - LazyVim.has("telescope.nvim") and function() - require("omnisharp_extended").telescope_lsp_definitions() - end or function() - require("omnisharp_extended").lsp_definitions() - end, - desc = "Goto Definition", - }, - }, - enable_roslyn_analyzers = true, - organize_imports_on_format = true, - enable_import_completion = true, - }, - }, -} -``` - - - - - - -```lua -{ - "neovim/nvim-lspconfig", - opts = { - servers = { - fsautocomplete = {}, - omnisharp = { - handlers = { - ["textDocument/definition"] = function(...) - return require("omnisharp_extended").handler(...) - end, - }, - keys = { - { - "gd", - LazyVim.has("telescope.nvim") and function() - require("omnisharp_extended").telescope_lsp_definitions() - end or function() - require("omnisharp_extended").lsp_definitions() - end, - desc = "Goto Definition", - }, - }, - enable_roslyn_analyzers = true, - organize_imports_on_format = true, - enable_import_completion = true, - }, - }, - }, -} -``` - - - - - -## [neotest-vstest](https://github.com/Nsidorenco/neotest-vstest) - - - - - -```lua -opts = nil -``` - - - - - - -```lua -{ - "Nsidorenco/neotest-vstest", -} -``` - - - - - -## [none-ls.nvim](https://github.com/nvimtools/none-ls.nvim) _(optional)_ - - - - - -```lua -opts = function(_, opts) - local nls = require("null-ls") - opts.sources = opts.sources or {} - table.insert(opts.sources, nls.builtins.formatting.csharpier) - table.insert(opts.sources, nls.builtins.formatting.fantomas) -end -``` - - - - - - -```lua -{ - "nvimtools/none-ls.nvim", - optional = true, - opts = function(_, opts) - local nls = require("null-ls") - opts.sources = opts.sources or {} - table.insert(opts.sources, nls.builtins.formatting.csharpier) - table.insert(opts.sources, nls.builtins.formatting.fantomas) - end, -} -``` - - - - - -## [conform.nvim](https://github.com/stevearc/conform.nvim) _(optional)_ - - - - - -```lua -opts = { - formatters_by_ft = { - cs = { "csharpier" }, - fsharp = { "fantomas" }, - }, -} -``` - - - - - - -```lua -{ - "stevearc/conform.nvim", - optional = true, - opts = { - formatters_by_ft = { - cs = { "csharpier" }, - fsharp = { "fantomas" }, - }, - }, -} -``` - - - - - -## [nvim-dap](https://github.com/mfussenegger/nvim-dap) _(optional)_ - - - - - -```lua -opts = function() - local dap = require("dap") - if not dap.adapters["netcoredbg"] then - require("dap").adapters["netcoredbg"] = { - type = "executable", - command = vim.fn.exepath("netcoredbg"), - args = { "--interpreter=vscode" }, - options = { - detached = false, - }, - } - end - for _, lang in ipairs({ "cs", "fsharp", "vb" }) do - if not dap.configurations[lang] then - dap.configurations[lang] = { - { - type = "netcoredbg", - name = "Launch file", - request = "launch", - ---@diagnostic disable-next-line: redundant-parameter - program = function() - return vim.fn.input("Path to dll: ", vim.fn.getcwd() .. "/", "file") - end, - cwd = "${workspaceFolder}", - }, - } - end - end -end -``` - - - - - - -```lua -{ - "mfussenegger/nvim-dap", - optional = true, - opts = function() - local dap = require("dap") - if not dap.adapters["netcoredbg"] then - require("dap").adapters["netcoredbg"] = { - type = "executable", - command = vim.fn.exepath("netcoredbg"), - args = { "--interpreter=vscode" }, - options = { - detached = false, - }, - } - end - for _, lang in ipairs({ "cs", "fsharp", "vb" }) do - if not dap.configurations[lang] then - dap.configurations[lang] = { - { - type = "netcoredbg", - name = "Launch file", - request = "launch", - ---@diagnostic disable-next-line: redundant-parameter - program = function() - return vim.fn.input("Path to dll: ", vim.fn.getcwd() .. "/", "file") - end, - cwd = "${workspaceFolder}", - }, - } - end - end - end, -} -``` - - - - - -## [neotest](https://github.com/nvim-neotest/neotest) _(optional)_ - - - - - -```lua -opts = { - adapters = { - ["neotest-vstest"] = { - -- Here we can set options for neotest-vstest - }, - }, -} -``` - - - - - - -```lua -{ - "nvim-neotest/neotest", - optional = true, - dependencies = { - "Nsidorenco/neotest-vstest", - }, - opts = { - adapters = { - ["neotest-vstest"] = { - -- Here we can set options for neotest-vstest - }, - }, - }, -} -``` - - - - - - diff --git a/docs/extras/lang/elixir.md b/docs/extras/lang/elixir.md deleted file mode 100644 index 8e5d395fbe..0000000000 --- a/docs/extras/lang/elixir.md +++ /dev/null @@ -1,326 +0,0 @@ -# Elixir - - - -:::info -You can enable the extra with the `:LazyExtras` command. -Plugins marked as optional will only be configured if they are installed. -::: - -Below you can find a list of included plugins and their default settings. - -:::caution -You don't need to copy the default settings to your config. -They are only shown here for reference. -::: - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -## [nvim-lspconfig](https://github.com/neovim/nvim-lspconfig) - - - - - -```lua -opts = { - servers = { - elixirls = { - keys = { - { - "cp", - function() - local params = vim.lsp.util.make_position_params() - LazyVim.lsp.execute({ - command = "manipulatePipes:serverid", - arguments = { "toPipe", params.textDocument.uri, params.position.line, params.position.character }, - }) - end, - desc = "To Pipe", - }, - { - "cP", - function() - local params = vim.lsp.util.make_position_params() - LazyVim.lsp.execute({ - command = "manipulatePipes:serverid", - arguments = { "fromPipe", params.textDocument.uri, params.position.line, params.position.character }, - }) - end, - desc = "From Pipe", - }, - }, - }, - }, -} -``` - - - - - - -```lua -{ - "neovim/nvim-lspconfig", - opts = { - servers = { - elixirls = { - keys = { - { - "cp", - function() - local params = vim.lsp.util.make_position_params() - LazyVim.lsp.execute({ - command = "manipulatePipes:serverid", - arguments = { "toPipe", params.textDocument.uri, params.position.line, params.position.character }, - }) - end, - desc = "To Pipe", - }, - { - "cP", - function() - local params = vim.lsp.util.make_position_params() - LazyVim.lsp.execute({ - command = "manipulatePipes:serverid", - arguments = { "fromPipe", params.textDocument.uri, params.position.line, params.position.character }, - }) - end, - desc = "From Pipe", - }, - }, - }, - }, - }, -} -``` - - - - - -## [nvim-treesitter](https://github.com/nvim-treesitter/nvim-treesitter) - - - - - -```lua -opts = function(_, opts) - opts.ensure_installed = opts.ensure_installed or {} - vim.list_extend(opts.ensure_installed, { "elixir", "heex", "eex" }) - vim.treesitter.language.register("markdown", "livebook") -end -``` - - - - - - -```lua -{ - "nvim-treesitter/nvim-treesitter", - opts = function(_, opts) - opts.ensure_installed = opts.ensure_installed or {} - vim.list_extend(opts.ensure_installed, { "elixir", "heex", "eex" }) - vim.treesitter.language.register("markdown", "livebook") - end, -} -``` - - - - - -## [neotest-elixir](https://github.com/jfpedroza/neotest-elixir) - - - - - -```lua -opts = nil -``` - - - - - - -```lua -{ - "jfpedroza/neotest-elixir", -} -``` - - - - - -## [neotest](https://github.com/nvim-neotest/neotest) _(optional)_ - - - - - -```lua -opts = { - adapters = { - ["neotest-elixir"] = {}, - }, -} -``` - - - - - - -```lua -{ - "nvim-neotest/neotest", - optional = true, - dependencies = { - "jfpedroza/neotest-elixir", - }, - opts = { - adapters = { - ["neotest-elixir"] = {}, - }, - }, -} -``` - - - - - -## [none-ls.nvim](https://github.com/nvimtools/none-ls.nvim) _(optional)_ - - - - - -```lua -opts = function(_, opts) - local nls = require("null-ls") - opts.sources = vim.list_extend(opts.sources or {}, { - nls.builtins.diagnostics.credo.with({ - condition = function(utils) - return utils.root_has_file(".credo.exs") - end, - }), - }) -end -``` - - - - - - -```lua -{ - "nvimtools/none-ls.nvim", - optional = true, - opts = function(_, opts) - local nls = require("null-ls") - opts.sources = vim.list_extend(opts.sources or {}, { - nls.builtins.diagnostics.credo.with({ - condition = function(utils) - return utils.root_has_file(".credo.exs") - end, - }), - }) - end, -} -``` - - - - - -## [nvim-lint](https://github.com/mfussenegger/nvim-lint) _(optional)_ - - - - - -```lua -opts = function(_, opts) - opts.linters_by_ft = { - elixir = { "credo" }, - } - - opts.linters = { - credo = { - condition = function(ctx) - return vim.fs.find({ ".credo.exs" }, { path = ctx.filename, upward = true })[1] - end, - }, - } -end -``` - - - - - - -```lua -{ - "mfussenegger/nvim-lint", - optional = true, - opts = function(_, opts) - opts.linters_by_ft = { - elixir = { "credo" }, - } - - opts.linters = { - credo = { - condition = function(ctx) - return vim.fs.find({ ".credo.exs" }, { path = ctx.filename, upward = true })[1] - end, - }, - } - end, -} -``` - - - - - -## [render-markdown.nvim](https://github.com/MeanderingProgrammer/render-markdown.nvim) _(optional)_ - - - - - -```lua -opts = nil -``` - - - - - - -```lua -{ - "MeanderingProgrammer/render-markdown.nvim", - optional = true, - ft = function(_, ft) - vim.list_extend(ft, { "livebook" }) - end, -} -``` - - - - - - diff --git a/docs/extras/lang/elm.md b/docs/extras/lang/elm.md deleted file mode 100644 index 938920e05a..0000000000 --- a/docs/extras/lang/elm.md +++ /dev/null @@ -1,141 +0,0 @@ -# `Elm` - - - -:::info -You can enable the extra with the `:LazyExtras` command. -Plugins marked as optional will only be configured if they are installed. -::: - -Below you can find a list of included plugins and their default settings. - -:::caution -You don't need to copy the default settings to your config. -They are only shown here for reference. -::: - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -## [nvim-treesitter](https://github.com/nvim-treesitter/nvim-treesitter) - - - - - -```lua -opts = { ensure_installed = { "elm" } } -``` - - - - - - -```lua -{ - "nvim-treesitter/nvim-treesitter", - opts = { ensure_installed = { "elm" } }, -} -``` - - - - - -## [mason.nvim](https://github.com/mason-org/mason.nvim) - - - - - -```lua -opts = { ensure_installed = { "elm-format" } } -``` - - - - - - -```lua -{ - "mason-org/mason.nvim", - opts = { ensure_installed = { "elm-format" } }, -} -``` - - - - - -## [nvim-lspconfig](https://github.com/neovim/nvim-lspconfig) - - - - - -```lua -opts = { - servers = { - elmls = {}, - }, -} -``` - - - - - - -```lua -{ - "neovim/nvim-lspconfig", - opts = { - servers = { - elmls = {}, - }, - }, -} -``` - - - - - -## [conform.nvim](https://github.com/stevearc/conform.nvim) _(optional)_ - - - - - -```lua -opts = { - formatters_by_ft = { - elm = { "elm_format" }, - }, -} -``` - - - - - - -```lua -{ - "stevearc/conform.nvim", - optional = true, - opts = { - formatters_by_ft = { - elm = { "elm_format" }, - }, - }, -} -``` - - - - - - diff --git a/docs/extras/lang/ember.md b/docs/extras/lang/ember.md deleted file mode 100644 index 3b17d7cf0b..0000000000 --- a/docs/extras/lang/ember.md +++ /dev/null @@ -1,116 +0,0 @@ -# `Ember` - - - -:::info -You can enable the extra with the `:LazyExtras` command. -Plugins marked as optional will only be configured if they are installed. -::: - -Below you can find a list of included plugins and their default settings. - -:::caution -You don't need to copy the default settings to your config. -They are only shown here for reference. -::: - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -## [nvim-treesitter](https://github.com/nvim-treesitter/nvim-treesitter) - - - - - -```lua -opts = { ensure_installed = { "css", "glimmer", "glimmer_javascript", "glimmer_typescript" } } -``` - - - - - - -```lua -{ - "nvim-treesitter/nvim-treesitter", - opts = { ensure_installed = { "css", "glimmer", "glimmer_javascript", "glimmer_typescript" } }, -} -``` - - - - - -## [nvim-lspconfig](https://github.com/neovim/nvim-lspconfig) - - - - - -```lua -opts = { - servers = { - ember = {}, - }, -} -``` - - - - - - -```lua -{ - "neovim/nvim-lspconfig", - opts = { - servers = { - ember = {}, - }, - }, -} -``` - - - - - -## [conform.nvim](https://github.com/stevearc/conform.nvim) - - - - - -```lua -opts = function(_, opts) - if LazyVim.has_extra("formatting.prettier") then - opts.formatters_by_ft = opts.formatters_by_ft or {} - opts.formatters_by_ft.glimmer = { "prettier" } - end -end -``` - - - - - - -```lua -{ - "conform.nvim", - opts = function(_, opts) - if LazyVim.has_extra("formatting.prettier") then - opts.formatters_by_ft = opts.formatters_by_ft or {} - opts.formatters_by_ft.glimmer = { "prettier" } - end - end, -} -``` - - - - - - diff --git a/docs/extras/lang/erlang.md b/docs/extras/lang/erlang.md deleted file mode 100644 index 846b48d0ab..0000000000 --- a/docs/extras/lang/erlang.md +++ /dev/null @@ -1,80 +0,0 @@ -# `Erlang` - - - -:::info -You can enable the extra with the `:LazyExtras` command. -Plugins marked as optional will only be configured if they are installed. -::: - -Below you can find a list of included plugins and their default settings. - -:::caution -You don't need to copy the default settings to your config. -They are only shown here for reference. -::: - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -## [nvim-lspconfig](https://github.com/neovim/nvim-lspconfig) - - - - - -```lua -opts = { - servers = { - erlangls = {}, - }, -} -``` - - - - - - -```lua -{ - "neovim/nvim-lspconfig", - opts = { - servers = { - erlangls = {}, - }, - }, -} -``` - - - - - -## [nvim-treesitter](https://github.com/nvim-treesitter/nvim-treesitter) - - - - - -```lua -opts = { ensure_installed = { "erlang" } } -``` - - - - - - -```lua -{ - "nvim-treesitter/nvim-treesitter", - opts = { ensure_installed = { "erlang" } }, -} -``` - - - - - - diff --git a/docs/extras/lang/git.md b/docs/extras/lang/git.md deleted file mode 100644 index a347610219..0000000000 --- a/docs/extras/lang/git.md +++ /dev/null @@ -1,108 +0,0 @@ -# `Git` - - - -:::info -You can enable the extra with the `:LazyExtras` command. -Plugins marked as optional will only be configured if they are installed. -::: - -Below you can find a list of included plugins and their default settings. - -:::caution -You don't need to copy the default settings to your config. -They are only shown here for reference. -::: - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -## [nvim-treesitter](https://github.com/nvim-treesitter/nvim-treesitter) - - Treesitter git support - - - - - - -```lua -opts = { ensure_installed = { "git_config", "gitcommit", "git_rebase", "gitignore", "gitattributes" } } -``` - - - - - - -```lua -{ - "nvim-treesitter/nvim-treesitter", - opts = { ensure_installed = { "git_config", "gitcommit", "git_rebase", "gitignore", "gitattributes" } }, -} -``` - - - - - -## [cmp-git](https://github.com/petertriho/cmp-git) - - - - - -```lua -opts = {} -``` - - - - - - -```lua -{ "petertriho/cmp-git", opts = {} } -``` - - - - - -## [nvim-cmp](https://github.com/hrsh7th/nvim-cmp) _(optional)_ - - - - - -```lua -opts = function(_, opts) - table.insert(opts.sources, { name = "git" }) -end -``` - - - - - - -```lua -{ - "hrsh7th/nvim-cmp", - optional = true, - dependencies = { - { "petertriho/cmp-git", opts = {} }, - }, - ---@module 'cmp' - ---@param opts cmp.ConfigSchema - opts = function(_, opts) - table.insert(opts.sources, { name = "git" }) - end, -} -``` - - - - - - diff --git a/docs/extras/lang/gleam.md b/docs/extras/lang/gleam.md deleted file mode 100644 index ed1b62cb5f..0000000000 --- a/docs/extras/lang/gleam.md +++ /dev/null @@ -1,115 +0,0 @@ -# `Gleam` - - - -:::info -You can enable the extra with the `:LazyExtras` command. -Plugins marked as optional will only be configured if they are installed. -::: - -Below you can find a list of included plugins and their default settings. - -:::caution -You don't need to copy the default settings to your config. -They are only shown here for reference. -::: - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -## [nvim-treesitter](https://github.com/nvim-treesitter/nvim-treesitter) - - - - - -```lua -opts = { ensure_installed = { "gleam" } } -``` - - - - - - -```lua -{ - "nvim-treesitter/nvim-treesitter", - opts = { ensure_installed = { "gleam" } }, -} -``` - - - - - -## [nvim-lspconfig](https://github.com/neovim/nvim-lspconfig) - - - - - -```lua -opts = { - servers = { - gleam = {}, - }, -} -``` - - - - - - -```lua -{ - "neovim/nvim-lspconfig", - opts = { - servers = { - gleam = {}, - }, - }, -} -``` - - - - - -## [conform.nvim](https://github.com/stevearc/conform.nvim) _(optional)_ - - - - - -```lua -opts = { - formatters_by_ft = { - gleam = { "gleam" }, - }, -} -``` - - - - - - -```lua -{ - "conform.nvim", - optional = true, - opts = { - formatters_by_ft = { - gleam = { "gleam" }, - }, - }, -} -``` - - - - - - diff --git a/docs/extras/lang/go.md b/docs/extras/lang/go.md deleted file mode 100644 index 1eaeb8b754..0000000000 --- a/docs/extras/lang/go.md +++ /dev/null @@ -1,603 +0,0 @@ -# Go - - - -:::info -You can enable the extra with the `:LazyExtras` command. -Plugins marked as optional will only be configured if they are installed. -::: - -Below you can find a list of included plugins and their default settings. - -:::caution -You don't need to copy the default settings to your config. -They are only shown here for reference. -::: - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -## [nvim-treesitter](https://github.com/nvim-treesitter/nvim-treesitter) - - - - - -```lua -opts = { ensure_installed = { "go", "gomod", "gowork", "gosum" } } -``` - - - - - - -```lua -{ - "nvim-treesitter/nvim-treesitter", - opts = { ensure_installed = { "go", "gomod", "gowork", "gosum" } }, -} -``` - - - - - -## [nvim-lspconfig](https://github.com/neovim/nvim-lspconfig) - - - - - -```lua -opts = { - servers = { - gopls = { - settings = { - gopls = { - gofumpt = true, - codelenses = { - gc_details = false, - generate = true, - regenerate_cgo = true, - run_govulncheck = true, - test = true, - tidy = true, - upgrade_dependency = true, - vendor = true, - }, - hints = { - assignVariableTypes = true, - compositeLiteralFields = true, - compositeLiteralTypes = true, - constantValues = true, - functionTypeParameters = true, - parameterNames = true, - rangeVariableTypes = true, - }, - analyses = { - nilness = true, - unusedparams = true, - unusedwrite = true, - useany = true, - }, - usePlaceholders = true, - completeUnimported = true, - staticcheck = true, - directoryFilters = { "-.git", "-.vscode", "-.idea", "-.vscode-test", "-node_modules" }, - semanticTokens = true, - }, - }, - }, - }, - setup = { - gopls = function(_, opts) - -- workaround for gopls not supporting semanticTokensProvider - -- https://github.com/golang/go/issues/54531#issuecomment-1464982242 - LazyVim.lsp.on_attach(function(client, _) - if not client.server_capabilities.semanticTokensProvider then - local semantic = client.config.capabilities.textDocument.semanticTokens - client.server_capabilities.semanticTokensProvider = { - full = true, - legend = { - tokenTypes = semantic.tokenTypes, - tokenModifiers = semantic.tokenModifiers, - }, - range = true, - } - end - end, "gopls") - -- end workaround - end, - }, -} -``` - - - - - - -```lua -{ - "neovim/nvim-lspconfig", - opts = { - servers = { - gopls = { - settings = { - gopls = { - gofumpt = true, - codelenses = { - gc_details = false, - generate = true, - regenerate_cgo = true, - run_govulncheck = true, - test = true, - tidy = true, - upgrade_dependency = true, - vendor = true, - }, - hints = { - assignVariableTypes = true, - compositeLiteralFields = true, - compositeLiteralTypes = true, - constantValues = true, - functionTypeParameters = true, - parameterNames = true, - rangeVariableTypes = true, - }, - analyses = { - nilness = true, - unusedparams = true, - unusedwrite = true, - useany = true, - }, - usePlaceholders = true, - completeUnimported = true, - staticcheck = true, - directoryFilters = { "-.git", "-.vscode", "-.idea", "-.vscode-test", "-node_modules" }, - semanticTokens = true, - }, - }, - }, - }, - setup = { - gopls = function(_, opts) - -- workaround for gopls not supporting semanticTokensProvider - -- https://github.com/golang/go/issues/54531#issuecomment-1464982242 - LazyVim.lsp.on_attach(function(client, _) - if not client.server_capabilities.semanticTokensProvider then - local semantic = client.config.capabilities.textDocument.semanticTokens - client.server_capabilities.semanticTokensProvider = { - full = true, - legend = { - tokenTypes = semantic.tokenTypes, - tokenModifiers = semantic.tokenModifiers, - }, - range = true, - } - end - end, "gopls") - -- end workaround - end, - }, - }, -} -``` - - - - - -## [mason.nvim](https://github.com/mason-org/mason.nvim) - - Ensure Go tools are installed - - - - - - -```lua -opts = { ensure_installed = { "goimports", "gofumpt" } } -``` - - - - - - -```lua -{ - "mason-org/mason.nvim", - opts = { ensure_installed = { "goimports", "gofumpt" } }, -} -``` - - - - - -## [mason.nvim](https://github.com/mason-org/mason.nvim) - - - - - -```lua -opts = { ensure_installed = { "gomodifytags", "impl" } } -``` - - - - - - -```lua -{ - "mason-org/mason.nvim", - opts = { ensure_installed = { "gomodifytags", "impl" } }, -} -``` - - - - - -## [mason.nvim](https://github.com/mason-org/mason.nvim) - - - - - -```lua -opts = { ensure_installed = { "golangci-lint" } } -``` - - - - - - -```lua -{ - "mason-org/mason.nvim", - opts = { ensure_installed = { "golangci-lint" } }, -} -``` - - - - - -## [mason.nvim](https://github.com/mason-org/mason.nvim) - - - - - -```lua -opts = { ensure_installed = { "delve" } } -``` - - - - - - -```lua -{ - "mason-org/mason.nvim", - opts = { ensure_installed = { "delve" } }, -} -``` - - - - - -## [nvim-dap-go](https://github.com/leoluz/nvim-dap-go) - - - - - -```lua -opts = {} -``` - - - - - - -```lua -{ - "leoluz/nvim-dap-go", - opts = {}, -} -``` - - - - - -## [neotest-golang](https://github.com/fredrikaverpil/neotest-golang) - - - - - -```lua -opts = nil -``` - - - - - - -```lua -{ - "fredrikaverpil/neotest-golang", -} -``` - - - - - -## [mini.icons](https://github.com/nvim-mini/mini.icons) - - Filetype icons - - - - - - -```lua -opts = { - file = { - [".go-version"] = { glyph = "", hl = "MiniIconsBlue" }, - }, - filetype = { - gotmpl = { glyph = "󰟓", hl = "MiniIconsGrey" }, - }, -} -``` - - - - - - -```lua -{ - "nvim-mini/mini.icons", - opts = { - file = { - [".go-version"] = { glyph = "", hl = "MiniIconsBlue" }, - }, - filetype = { - gotmpl = { glyph = "󰟓", hl = "MiniIconsGrey" }, - }, - }, -} -``` - - - - - -## [none-ls.nvim](https://github.com/nvimtools/none-ls.nvim) _(optional)_ - - - - - -```lua -opts = function(_, opts) - local nls = require("null-ls") - opts.sources = vim.list_extend(opts.sources or {}, { - nls.builtins.code_actions.gomodifytags, - nls.builtins.code_actions.impl, - nls.builtins.formatting.goimports, - nls.builtins.formatting.gofumpt, - }) -end -``` - - - - - - -```lua -{ - "nvimtools/none-ls.nvim", - optional = true, - dependencies = { - { - "mason-org/mason.nvim", - opts = { ensure_installed = { "gomodifytags", "impl" } }, - }, - }, - opts = function(_, opts) - local nls = require("null-ls") - opts.sources = vim.list_extend(opts.sources or {}, { - nls.builtins.code_actions.gomodifytags, - nls.builtins.code_actions.impl, - nls.builtins.formatting.goimports, - nls.builtins.formatting.gofumpt, - }) - end, -} -``` - - - - - -## [nvim-lint](https://github.com/mfussenegger/nvim-lint) _(optional)_ - - Add linting - - - - - - -```lua -opts = { - linters_by_ft = { - go = { "golangcilint" }, - }, -} -``` - - - - - - -```lua -{ - "mfussenegger/nvim-lint", - optional = true, - dependencies = { - { - "mason-org/mason.nvim", - opts = { ensure_installed = { "golangci-lint" } }, - }, - }, - opts = { - linters_by_ft = { - go = { "golangcilint" }, - }, - }, -} -``` - - - - - -## [conform.nvim](https://github.com/stevearc/conform.nvim) _(optional)_ - - - - - -```lua -opts = { - formatters_by_ft = { - go = { "goimports", "gofumpt" }, - }, -} -``` - - - - - - -```lua -{ - "stevearc/conform.nvim", - optional = true, - opts = { - formatters_by_ft = { - go = { "goimports", "gofumpt" }, - }, - }, -} -``` - - - - - -## [nvim-dap](https://github.com/mfussenegger/nvim-dap) _(optional)_ - - - - - -```lua -opts = nil -``` - - - - - - -```lua -{ - "mfussenegger/nvim-dap", - optional = true, - dependencies = { - { - "mason-org/mason.nvim", - opts = { ensure_installed = { "delve" } }, - }, - { - "leoluz/nvim-dap-go", - opts = {}, - }, - }, -} -``` - - - - - -## [neotest](https://github.com/nvim-neotest/neotest) _(optional)_ - - - - - -```lua -opts = { - adapters = { - ["neotest-golang"] = { - -- Here we can set options for neotest-golang, e.g. - -- go_test_args = { "-v", "-race", "-count=1", "-timeout=60s" }, - dap_go_enabled = true, -- requires leoluz/nvim-dap-go - }, - }, -} -``` - - - - - - -```lua -{ - "nvim-neotest/neotest", - optional = true, - dependencies = { - "fredrikaverpil/neotest-golang", - }, - opts = { - adapters = { - ["neotest-golang"] = { - -- Here we can set options for neotest-golang, e.g. - -- go_test_args = { "-v", "-race", "-count=1", "-timeout=60s" }, - dap_go_enabled = true, -- requires leoluz/nvim-dap-go - }, - }, - }, -} -``` - - - - - - diff --git a/docs/extras/lang/haskell.md b/docs/extras/lang/haskell.md deleted file mode 100644 index 1c78c7d4e8..0000000000 --- a/docs/extras/lang/haskell.md +++ /dev/null @@ -1,509 +0,0 @@ -# `Haskell` - - - -:::info -You can enable the extra with the `:LazyExtras` command. -Plugins marked as optional will only be configured if they are installed. -::: - -Below you can find a list of included plugins and their default settings. - -:::caution -You don't need to copy the default settings to your config. -They are only shown here for reference. -::: - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -## [nvim-treesitter](https://github.com/nvim-treesitter/nvim-treesitter) - - Add Haskell to treesitter - - - - - - -```lua -opts = { ensure_installed = { "haskell" } } -``` - - - - - - -```lua -{ - "nvim-treesitter/nvim-treesitter", - opts = { ensure_installed = { "haskell" } }, -} -``` - - - - - -## [haskell-tools.nvim](https://github.com/mrcjkb/haskell-tools.nvim) - - - - - -```lua -opts = nil -``` - - - - - - -```lua -{ - "mrcjkb/haskell-tools.nvim", - version = false, - ft = { "haskell", "lhaskell", "cabal", "cabalproject" }, - keys = { - { - "e", - "HlsEvalAll", - ft = "haskell", - desc = "Evaluate All", - }, - { - "h", - function() - require("haskell-tools").hoogle.hoogle_signature() - end, - ft = "haskell", - desc = "Hoogle Signature", - }, - { - "r", - function() - require("haskell-tools").repl.toggle() - end, - ft = "haskell", - desc = "REPL (Package)", - }, - { - "R", - function() - require("haskell-tools").repl.toggle(vim.api.nvim_buf_get_name(0)) - end, - ft = "haskell", - desc = "REPL (Buffer)", - }, - }, -} -``` - - - - - -## [mason.nvim](https://github.com/mason-org/mason.nvim) - - - - - -```lua -opts = { ensure_installed = { "haskell-language-server" } } -``` - - - - - - -```lua -{ - "mason-org/mason.nvim", - opts = { ensure_installed = { "haskell-language-server" } }, -} -``` - - - - - -## [mason.nvim](https://github.com/mason-org/mason.nvim) - - - - - -```lua -opts = { ensure_installed = { "haskell-debug-adapter" } } -``` - - - - - - -```lua -{ - "mason-org/mason.nvim", - opts = { ensure_installed = { "haskell-debug-adapter" } }, -} -``` - - - - - -## [neotest-haskell](https://github.com/mrcjkb/neotest-haskell) - - - - - -```lua -opts = nil -``` - - - - - - -```lua -{ "mrcjkb/neotest-haskell" } -``` - - - - - -## [haskell-snippets.nvim](https://github.com/mrcjkb/haskell-snippets.nvim) - - - - - -```lua -opts = {} -``` - - - - - - -```lua -{ - "mrcjkb/haskell-snippets.nvim", - dependencies = { "L3MON4D3/LuaSnip" }, - ft = { "haskell", "lhaskell", "cabal", "cabalproject" }, - config = function() - local haskell_snippets = require("haskell-snippets").all - require("luasnip").add_snippets("haskell", haskell_snippets, { key = "haskell" }) - end, -} -``` - - - - - -## [LuaSnip](https://github.com/L3MON4D3/LuaSnip) - - - - - -```lua -opts = nil -``` - - - - - - -```lua -{ "L3MON4D3/LuaSnip" } -``` - - - - - -## [telescope_hoogle](https://github.com/luc-tielen/telescope_hoogle) - - - - - -```lua -opts = function() - LazyVim.on_load("telescope.nvim", function() - require("telescope").load_extension("ht") - end) -end -``` - - - - - - -```lua -{ - "luc-tielen/telescope_hoogle", - ft = { "haskell", "lhaskell", "cabal", "cabalproject" }, - opts = function() - LazyVim.on_load("telescope.nvim", function() - require("telescope").load_extension("ht") - end) - end, - keys = { - { - "H", - "Telescope hoogle", - ft = "haskell", - desc = "Hoogle", - }, - }, -} -``` - - - - - -## [nvim-lspconfig](https://github.com/neovim/nvim-lspconfig) - - Make sure lspconfig doesn't start hls, - as it conflicts with haskell-tools - - - - - - -```lua -opts = { - setup = { - hls = function() - return true - end, - }, -} -``` - - - - - - -```lua -{ - "neovim/nvim-lspconfig", - opts = { - setup = { - hls = function() - return true - end, - }, - }, -} -``` - - - - - -## [nvim-dap](https://github.com/mfussenegger/nvim-dap) _(optional)_ - - - - - -```lua -opts = nil -``` - - - - - - -```lua -{ - "mfussenegger/nvim-dap", - optional = true, - dependencies = { - { - "mason-org/mason.nvim", - opts = { ensure_installed = { "haskell-debug-adapter" } }, - }, - }, -} -``` - - - - - -## [neotest](https://github.com/nvim-neotest/neotest) _(optional)_ - - - - - -```lua -opts = { - adapters = { - ["neotest-haskell"] = {}, - }, -} -``` - - - - - - -```lua -{ - "nvim-neotest/neotest", - optional = true, - dependencies = { - { "mrcjkb/neotest-haskell" }, - }, - opts = { - adapters = { - ["neotest-haskell"] = {}, - }, - }, -} -``` - - - - - -## [telescope.nvim](https://github.com/nvim-telescope/telescope.nvim) _(optional)_ - - - - - -```lua -opts = nil -``` - - - - - - -```lua -{ - "nvim-telescope/telescope.nvim", - optional = true, - specs = { - { - "luc-tielen/telescope_hoogle", - ft = { "haskell", "lhaskell", "cabal", "cabalproject" }, - opts = function() - LazyVim.on_load("telescope.nvim", function() - require("telescope").load_extension("ht") - end) - end, - keys = { - { - "H", - "Telescope hoogle", - ft = "haskell", - desc = "Hoogle", - }, - }, - }, - }, -} -``` - - - - - -## [conform.nvim](https://github.com/stevearc/conform.nvim) _(optional)_ - - - - - -```lua -opts = { - formatters_by_ft = { - haskell = { "fourmolu" }, - cabal = { "cabal_fmt" }, - }, -} -``` - - - - - - -```lua -{ - "stevearc/conform.nvim", - optional = true, - opts = { - formatters_by_ft = { - haskell = { "fourmolu" }, - cabal = { "cabal_fmt" }, - }, - }, -} -``` - - - - - -## [nvim-lint](https://github.com/mfussenegger/nvim-lint) _(optional)_ - - - - - -```lua -opts = { - linters_by_ft = { - haskell = { "hlint" }, - }, -} -``` - - - - - - -```lua -{ - "mfussenegger/nvim-lint", - optional = true, - opts = { - linters_by_ft = { - haskell = { "hlint" }, - }, - }, -} -``` - - - - - - diff --git a/docs/extras/lang/helm.md b/docs/extras/lang/helm.md deleted file mode 100644 index f9bf6312cf..0000000000 --- a/docs/extras/lang/helm.md +++ /dev/null @@ -1,103 +0,0 @@ -# `Helm` - - - -:::info -You can enable the extra with the `:LazyExtras` command. -Plugins marked as optional will only be configured if they are installed. -::: - -Below you can find a list of included plugins and their default settings. - -:::caution -You don't need to copy the default settings to your config. -They are only shown here for reference. -::: - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -## [helm-ls.nvim](https://github.com/qvalentin/helm-ls.nvim) - - - - - -```lua -opts = nil -``` - - - - - - -```lua -{ "qvalentin/helm-ls.nvim", ft = "helm" } -``` - - - - - -## [nvim-treesitter](https://github.com/nvim-treesitter/nvim-treesitter) - - - - - -```lua -opts = { ensure_installed = { "helm" } } -``` - - - - - - -```lua -{ - "nvim-treesitter/nvim-treesitter", - opts = { ensure_installed = { "helm" } }, -} -``` - - - - - -## [nvim-lspconfig](https://github.com/neovim/nvim-lspconfig) - - - - - -```lua -opts = { - servers = { - helm_ls = {}, - }, -} -``` - - - - - - -```lua -{ - "neovim/nvim-lspconfig", - opts = { - servers = { - helm_ls = {}, - }, - }, -} -``` - - - - - - diff --git a/docs/extras/lang/java.md b/docs/extras/lang/java.md deleted file mode 100644 index b0bd8966df..0000000000 --- a/docs/extras/lang/java.md +++ /dev/null @@ -1,497 +0,0 @@ -# Java - - - -:::info -You can enable the extra with the `:LazyExtras` command. -Plugins marked as optional will only be configured if they are installed. -::: - -Below you can find a list of included plugins and their default settings. - -:::caution -You don't need to copy the default settings to your config. -They are only shown here for reference. -::: - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -## [nvim-treesitter](https://github.com/nvim-treesitter/nvim-treesitter) - - Add java to treesitter. - - - - - - -```lua -opts = { ensure_installed = { "java" } } -``` - - - - - - -```lua -{ - "nvim-treesitter/nvim-treesitter", - opts = { ensure_installed = { "java" } }, -} -``` - - - - - -## [mason.nvim](https://github.com/mason-org/mason.nvim) - - - - - -```lua -opts = { ensure_installed = { "java-debug-adapter", "java-test" } } -``` - - - - - - -```lua -{ - "mason-org/mason.nvim", - opts = { ensure_installed = { "java-debug-adapter", "java-test" } }, -} -``` - - - - - -## [nvim-lspconfig](https://github.com/neovim/nvim-lspconfig) - - Configure nvim-lspconfig to install the server automatically via mason, but - defer actually starting it to our configuration of nvim-jtdls below. - - - - - - -```lua -opts = { - -- make sure mason installs the server - servers = { - jdtls = {}, - }, - setup = { - jdtls = function() - return true -- avoid duplicate servers - end, - }, -} -``` - - - - - - -```lua -{ - "neovim/nvim-lspconfig", - opts = { - -- make sure mason installs the server - servers = { - jdtls = {}, - }, - setup = { - jdtls = function() - return true -- avoid duplicate servers - end, - }, - }, -} -``` - - - - - -## [nvim-jdtls](https://github.com/mfussenegger/nvim-jdtls) - - Set up nvim-jdtls to attach to java files. - - - - - - -```lua -opts = function() - local cmd = { vim.fn.exepath("jdtls") } - if LazyVim.has("mason.nvim") then - local lombok_jar = vim.fn.expand("$MASON/share/jdtls/lombok.jar") - table.insert(cmd, string.format("--jvm-arg=-javaagent:%s", lombok_jar)) - end - return { - root_dir = function(path) - return vim.fs.root(path, vim.lsp.config.jdtls.root_markers) - end, - - -- How to find the project name for a given root dir. - project_name = function(root_dir) - return root_dir and vim.fs.basename(root_dir) - end, - - -- Where are the config and workspace dirs for a project? - jdtls_config_dir = function(project_name) - return vim.fn.stdpath("cache") .. "/jdtls/" .. project_name .. "/config" - end, - jdtls_workspace_dir = function(project_name) - return vim.fn.stdpath("cache") .. "/jdtls/" .. project_name .. "/workspace" - end, - - -- How to run jdtls. This can be overridden to a full java command-line - -- if the Python wrapper script doesn't suffice. - cmd = cmd, - full_cmd = function(opts) - local fname = vim.api.nvim_buf_get_name(0) - local root_dir = opts.root_dir(fname) - local project_name = opts.project_name(root_dir) - local cmd = vim.deepcopy(opts.cmd) - if project_name then - vim.list_extend(cmd, { - "-configuration", - opts.jdtls_config_dir(project_name), - "-data", - opts.jdtls_workspace_dir(project_name), - }) - end - return cmd - end, - - -- These depend on nvim-dap, but can additionally be disabled by setting false here. - dap = { hotcodereplace = "auto", config_overrides = {} }, - -- Can set this to false to disable main class scan, which is a performance killer for large project - dap_main = {}, - test = true, - settings = { - java = { - inlayHints = { - parameterNames = { - enabled = "all", - }, - }, - }, - }, - } -end -``` - - - - - - -```lua -{ - "mfussenegger/nvim-jdtls", - dependencies = { "folke/which-key.nvim" }, - ft = java_filetypes, - opts = function() - local cmd = { vim.fn.exepath("jdtls") } - if LazyVim.has("mason.nvim") then - local lombok_jar = vim.fn.expand("$MASON/share/jdtls/lombok.jar") - table.insert(cmd, string.format("--jvm-arg=-javaagent:%s", lombok_jar)) - end - return { - root_dir = function(path) - return vim.fs.root(path, vim.lsp.config.jdtls.root_markers) - end, - - -- How to find the project name for a given root dir. - project_name = function(root_dir) - return root_dir and vim.fs.basename(root_dir) - end, - - -- Where are the config and workspace dirs for a project? - jdtls_config_dir = function(project_name) - return vim.fn.stdpath("cache") .. "/jdtls/" .. project_name .. "/config" - end, - jdtls_workspace_dir = function(project_name) - return vim.fn.stdpath("cache") .. "/jdtls/" .. project_name .. "/workspace" - end, - - -- How to run jdtls. This can be overridden to a full java command-line - -- if the Python wrapper script doesn't suffice. - cmd = cmd, - full_cmd = function(opts) - local fname = vim.api.nvim_buf_get_name(0) - local root_dir = opts.root_dir(fname) - local project_name = opts.project_name(root_dir) - local cmd = vim.deepcopy(opts.cmd) - if project_name then - vim.list_extend(cmd, { - "-configuration", - opts.jdtls_config_dir(project_name), - "-data", - opts.jdtls_workspace_dir(project_name), - }) - end - return cmd - end, - - -- These depend on nvim-dap, but can additionally be disabled by setting false here. - dap = { hotcodereplace = "auto", config_overrides = {} }, - -- Can set this to false to disable main class scan, which is a performance killer for large project - dap_main = {}, - test = true, - settings = { - java = { - inlayHints = { - parameterNames = { - enabled = "all", - }, - }, - }, - }, - } - end, - config = function(_, opts) - -- Find the extra bundles that should be passed on the jdtls command-line - -- if nvim-dap is enabled with java debug/test. - local bundles = {} ---@type string[] - if LazyVim.has("mason.nvim") then - local mason_registry = require("mason-registry") - if opts.dap and LazyVim.has("nvim-dap") and mason_registry.is_installed("java-debug-adapter") then - bundles = vim.fn.glob("$MASON/share/java-debug-adapter/com.microsoft.java.debug.plugin-*jar", false, true) - -- java-test also depends on java-debug-adapter. - if opts.test and mason_registry.is_installed("java-test") then - vim.list_extend(bundles, vim.fn.glob("$MASON/share/java-test/*.jar", false, true)) - end - end - end - local function attach_jdtls() - local fname = vim.api.nvim_buf_get_name(0) - - -- Configuration can be augmented and overridden by opts.jdtls - local config = extend_or_override({ - cmd = opts.full_cmd(opts), - root_dir = opts.root_dir(fname), - init_options = { - bundles = bundles, - }, - settings = opts.settings, - -- enable CMP capabilities - capabilities = LazyVim.has("blink.cmp") and require("blink.cmp").get_lsp_capabilities() or LazyVim.has( - "cmp-nvim-lsp" - ) and require("cmp_nvim_lsp").default_capabilities() or nil, - }, opts.jdtls) - - -- Existing server will be reused if the root_dir matches. - require("jdtls").start_or_attach(config) - -- not need to require("jdtls.setup").add_commands(), start automatically adds commands - end - - -- Attach the jdtls for each java buffer. HOWEVER, this plugin loads - -- depending on filetype, so this autocmd doesn't run for the first file. - -- For that, we call directly below. - vim.api.nvim_create_autocmd("FileType", { - pattern = java_filetypes, - callback = attach_jdtls, - }) - - -- Setup keymap and dap after the lsp is fully attached. - -- https://github.com/mfussenegger/nvim-jdtls#nvim-dap-configuration - -- https://neovim.io/doc/user/lsp.html#LspAttach - vim.api.nvim_create_autocmd("LspAttach", { - callback = function(args) - local client = vim.lsp.get_client_by_id(args.data.client_id) - if client and client.name == "jdtls" then - local wk = require("which-key") - wk.add({ - { - mode = "n", - buffer = args.buf, - { "cx", group = "extract" }, - { "cxv", require("jdtls").extract_variable_all, desc = "Extract Variable" }, - { "cxc", require("jdtls").extract_constant, desc = "Extract Constant" }, - { "cgs", require("jdtls").super_implementation, desc = "Goto Super" }, - { "cgS", require("jdtls.tests").goto_subjects, desc = "Goto Subjects" }, - { "co", require("jdtls").organize_imports, desc = "Organize Imports" }, - }, - }) - wk.add({ - { - mode = "x", - buffer = args.buf, - { "cx", group = "extract" }, - { - "cxm", - [[lua require('jdtls').extract_method(true)]], - desc = "Extract Method", - }, - { - "cxv", - [[lua require('jdtls').extract_variable_all(true)]], - desc = "Extract Variable", - }, - { - "cxc", - [[lua require('jdtls').extract_constant(true)]], - desc = "Extract Constant", - }, - }, - }) - - if LazyVim.has("mason.nvim") then - local mason_registry = require("mason-registry") - if opts.dap and LazyVim.has("nvim-dap") and mason_registry.is_installed("java-debug-adapter") then - -- custom init for Java debugger - require("jdtls").setup_dap(opts.dap) - if opts.dap_main then - require("jdtls.dap").setup_dap_main_class_configs(opts.dap_main) - end - - -- Java Test require Java debugger to work - if opts.test and mason_registry.is_installed("java-test") then - -- custom keymaps for Java test runner (not yet compatible with neotest) - wk.add({ - { - mode = "n", - buffer = args.buf, - { "t", group = "test" }, - { - "tt", - function() - require("jdtls.dap").test_class({ - config_overrides = type(opts.test) ~= "boolean" and opts.test.config_overrides or nil, - }) - end, - desc = "Run All Test", - }, - { - "tr", - function() - require("jdtls.dap").test_nearest_method({ - config_overrides = type(opts.test) ~= "boolean" and opts.test.config_overrides or nil, - }) - end, - desc = "Run Nearest Test", - }, - { "tT", require("jdtls.dap").pick_test, desc = "Run Test" }, - }, - }) - end - end - end - - -- User can set additional keymaps in opts.on_attach - if opts.on_attach then - opts.on_attach(args) - end - end - end, - }) - - -- Avoid race condition by calling attach the first time, since the autocmd won't fire. - attach_jdtls() - end, -} -``` - - - - - -## [which-key.nvim](https://github.com/folke/which-key.nvim) - - - - - -```lua -opts = nil -``` - - - - - - -```lua -{ "folke/which-key.nvim" } -``` - - - - - -## [nvim-dap](https://github.com/mfussenegger/nvim-dap) _(optional)_ - - Ensure java debugger and test packages are installed. - - - - - - -```lua -opts = function() - -- Simple configuration to attach to remote java debug process - -- Taken directly from https://github.com/mfussenegger/nvim-dap/wiki/Java - local dap = require("dap") - dap.configurations.java = { - { - type = "java", - request = "attach", - name = "Debug (Attach) - Remote", - hostName = "127.0.0.1", - port = 5005, - }, - } -end -``` - - - - - - -```lua -{ - "mfussenegger/nvim-dap", - optional = true, - opts = function() - -- Simple configuration to attach to remote java debug process - -- Taken directly from https://github.com/mfussenegger/nvim-dap/wiki/Java - local dap = require("dap") - dap.configurations.java = { - { - type = "java", - request = "attach", - name = "Debug (Attach) - Remote", - hostName = "127.0.0.1", - port = 5005, - }, - } - end, - dependencies = { - { - "mason-org/mason.nvim", - opts = { ensure_installed = { "java-debug-adapter", "java-test" } }, - }, - }, -} -``` - - - - - - diff --git a/docs/extras/lang/json.md b/docs/extras/lang/json.md deleted file mode 100644 index d46b14e072..0000000000 --- a/docs/extras/lang/json.md +++ /dev/null @@ -1,146 +0,0 @@ -# JSON - - - -:::info -You can enable the extra with the `:LazyExtras` command. -Plugins marked as optional will only be configured if they are installed. -::: - -Below you can find a list of included plugins and their default settings. - -:::caution -You don't need to copy the default settings to your config. -They are only shown here for reference. -::: - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -## [nvim-treesitter](https://github.com/nvim-treesitter/nvim-treesitter) - - add json to treesitter - - - - - - -```lua -opts = { ensure_installed = { "json5" } } -``` - - - - - - -```lua -{ - "nvim-treesitter/nvim-treesitter", - opts = { ensure_installed = { "json5" } }, -} -``` - - - - - -## [SchemaStore.nvim](https://github.com/b0o/SchemaStore.nvim) - - yaml schema support - - - - - - -```lua -opts = nil -``` - - - - - - -```lua -{ - "b0o/SchemaStore.nvim", - lazy = true, - version = false, -- last release is way too old -} -``` - - - - - -## [nvim-lspconfig](https://github.com/neovim/nvim-lspconfig) - - correctly setup lspconfig - - - - - - -```lua -opts = { - -- make sure mason installs the server - servers = { - jsonls = { - -- lazy-load schemastore when needed - before_init = function(_, new_config) - new_config.settings.json.schemas = new_config.settings.json.schemas or {} - vim.list_extend(new_config.settings.json.schemas, require("schemastore").json.schemas()) - end, - settings = { - json = { - format = { - enable = true, - }, - validate = { enable = true }, - }, - }, - }, - }, -} -``` - - - - - - -```lua -{ - "neovim/nvim-lspconfig", - opts = { - -- make sure mason installs the server - servers = { - jsonls = { - -- lazy-load schemastore when needed - before_init = function(_, new_config) - new_config.settings.json.schemas = new_config.settings.json.schemas or {} - vim.list_extend(new_config.settings.json.schemas, require("schemastore").json.schemas()) - end, - settings = { - json = { - format = { - enable = true, - }, - validate = { enable = true }, - }, - }, - }, - }, - }, -} -``` - - - - - - diff --git a/docs/extras/lang/julia.md b/docs/extras/lang/julia.md deleted file mode 100644 index 90f979cbb6..0000000000 --- a/docs/extras/lang/julia.md +++ /dev/null @@ -1,267 +0,0 @@ -# `Julia` - - - -:::info -You can enable the extra with the `:LazyExtras` command. -Plugins marked as optional will only be configured if they are installed. -::: - -Below you can find a list of included plugins and their default settings. - -:::caution -You don't need to copy the default settings to your config. -They are only shown here for reference. -::: - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -## [nvim-treesitter](https://github.com/nvim-treesitter/nvim-treesitter) - - - - - -```lua -opts = { ensure_installed = { "julia" } } -``` - - - - - - -```lua -{ - "nvim-treesitter/nvim-treesitter", - opts = { ensure_installed = { "julia" } }, -} -``` - - - - - -## [nvim-lspconfig](https://github.com/neovim/nvim-lspconfig) - - - - - -```lua -opts = { - servers = { - julials = { - settings = { - -- use the same default settings as the Julia VS Code extension - julia = { - completionmode = "qualify", - lint = { missingrefs = "none" }, - }, - }, - }, - }, -} -``` - - - - - - -```lua -{ - "neovim/nvim-lspconfig", - opts = { - servers = { - julials = { - settings = { - -- use the same default settings as the Julia VS Code extension - julia = { - completionmode = "qualify", - lint = { missingrefs = "none" }, - }, - }, - }, - }, - }, -} -``` - - - - - -## [cmp-latex-symbols](https://github.com/kdheepak/cmp-latex-symbols) - - - - - -```lua -opts = nil -``` - - - - - - -```lua -{ "kdheepak/cmp-latex-symbols" } -``` - - - - - -## [cmp-latex-symbols](https://github.com/kdheepak/cmp-latex-symbols) - - - - - -```lua -opts = nil -``` - - - - - - -```lua -{ "kdheepak/cmp-latex-symbols", "saghen/blink.compat" } -``` - - - - - -## [blink.compat](https://github.com/saghen/blink.compat) - - - - - -```lua -opts = nil -``` - - - - - - -```lua -"saghen/blink.compat" -``` - - - - - -## [nvim-cmp](https://github.com/hrsh7th/nvim-cmp) _(optional)_ - - cmp integration - - - - - - -```lua -opts = function(_, opts) - table.insert(opts.sources, { - name = "latex_symbols", - option = { - strategy = 0, -- mixed - }, - }) -end -``` - - - - - - -```lua -{ - "hrsh7th/nvim-cmp", - optional = true, - dependencies = { "kdheepak/cmp-latex-symbols" }, - opts = function(_, opts) - table.insert(opts.sources, { - name = "latex_symbols", - option = { - strategy = 0, -- mixed - }, - }) - end, -} -``` - - - - - -## [blink.cmp](https://github.com/saghen/blink.cmp) _(optional)_ - - blink.cmp integration - - - - - - -```lua -opts = { - sources = { - compat = { "latex_symbols" }, - providers = { - latex_symbols = { - kind = "LatexSymbols", - async = true, - opts = { - strategy = 0, -- mixed - }, - }, - }, - }, -} -``` - - - - - - -```lua -{ - "saghen/blink.cmp", - optional = true, - dependencies = { "kdheepak/cmp-latex-symbols", "saghen/blink.compat" }, - opts = { - sources = { - compat = { "latex_symbols" }, - providers = { - latex_symbols = { - kind = "LatexSymbols", - async = true, - opts = { - strategy = 0, -- mixed - }, - }, - }, - }, - }, -} -``` - - - - - - diff --git a/docs/extras/lang/kotlin.md b/docs/extras/lang/kotlin.md deleted file mode 100644 index a926807297..0000000000 --- a/docs/extras/lang/kotlin.md +++ /dev/null @@ -1,343 +0,0 @@ -# `Kotlin` - - - -:::info -You can enable the extra with the `:LazyExtras` command. -Plugins marked as optional will only be configured if they are installed. -::: - -Below you can find a list of included plugins and their default settings. - -:::caution -You don't need to copy the default settings to your config. -They are only shown here for reference. -::: - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -## [mason.nvim](https://github.com/mason-org/mason.nvim) - - Add packages(linting, debug adapter) - - - - - - -```lua -opts = { ensure_installed = { "ktlint" } } -``` - - - - - - -```lua -{ - "mason-org/mason.nvim", - opts = { ensure_installed = { "ktlint" } }, -} -``` - - - - - -## [nvim-treesitter](https://github.com/nvim-treesitter/nvim-treesitter) - - Add syntax highlighting - - - - - - -```lua -opts = { ensure_installed = { "kotlin" } } -``` - - - - - - -```lua -{ - "nvim-treesitter/nvim-treesitter", - opts = { ensure_installed = { "kotlin" } }, -} -``` - - - - - -## [nvim-lspconfig](https://github.com/neovim/nvim-lspconfig) - - Add language server - - - - - - -```lua -opts = { - servers = { - kotlin_language_server = {}, - }, -} -``` - - - - - - -```lua -{ - "neovim/nvim-lspconfig", - opts = { - servers = { - kotlin_language_server = {}, - }, - }, -} -``` - - - - - -## [nvim-lint](https://github.com/mfussenegger/nvim-lint) _(optional)_ - - Add linting - - - - - - -```lua -opts = { - linters_by_ft = { kotlin = { "ktlint" } }, -} -``` - - - - - - -```lua -{ - "mfussenegger/nvim-lint", - optional = true, - dependencies = "mason-org/mason.nvim", - opts = { - linters_by_ft = { kotlin = { "ktlint" } }, - }, -} -``` - - - - - -## [conform.nvim](https://github.com/stevearc/conform.nvim) _(optional)_ - - Add formatting - - - - - - -```lua -opts = { - formatters_by_ft = { kotlin = { "ktlint" } }, -} -``` - - - - - - -```lua -{ - "stevearc/conform.nvim", - optional = true, - opts = { - formatters_by_ft = { kotlin = { "ktlint" } }, - }, -} -``` - - - - - -## [none-ls.nvim](https://github.com/nvimtools/none-ls.nvim) _(optional)_ - - Add formatting and linting - - - - - - -```lua -opts = function(_, opts) - local nls = require("null-ls") - opts.sources = vim.list_extend(opts.sources or {}, { - nls.builtins.formatting.ktlint, - nls.builtins.diagnostics.ktlint, - }) -end -``` - - - - - - -```lua -{ - "nvimtools/none-ls.nvim", - optional = true, - opts = function(_, opts) - local nls = require("null-ls") - opts.sources = vim.list_extend(opts.sources or {}, { - nls.builtins.formatting.ktlint, - nls.builtins.diagnostics.ktlint, - }) - end, -} -``` - - - - - -## [nvim-dap](https://github.com/mfussenegger/nvim-dap) _(optional)_ - - Add debugger - - - - - - -```lua -opts = function() - local dap = require("dap") - if not dap.adapters.kotlin then - dap.adapters.kotlin = { - type = "executable", - command = "kotlin-debug-adapter", - options = { auto_continue_if_many_stopped = false }, - } - end - - dap.configurations.kotlin = { - { - type = "kotlin", - request = "launch", - name = "This file", - -- may differ, when in doubt, whatever your project structure may be, - -- it has to correspond to the class file located at `build/classes/` - -- and of course you have to build before you debug - mainClass = function() - local root = vim.fs.find("src", { path = vim.uv.cwd(), upward = true, stop = vim.env.HOME })[1] or "" - local fname = vim.api.nvim_buf_get_name(0) - -- src/main/kotlin/websearch/Main.kt -> websearch.MainKt - return fname:gsub(root, ""):gsub("main/kotlin/", ""):gsub(".kt", "Kt"):gsub("/", "."):sub(2, -1) - end, - projectRoot = "${workspaceFolder}", - jsonLogFile = "", - enableJsonLogging = false, - }, - { - -- Use this for unit tests - -- First, run - -- ./gradlew --info cleanTest test --debug-jvm - -- then attach the debugger to it - type = "kotlin", - request = "attach", - name = "Attach to debugging session", - port = 5005, - args = {}, - projectRoot = vim.fn.getcwd, - hostName = "localhost", - timeout = 2000, - }, - } -end -``` - - - - - - -```lua -{ - "mfussenegger/nvim-dap", - optional = true, - dependencies = "mason-org/mason.nvim", - opts = function() - local dap = require("dap") - if not dap.adapters.kotlin then - dap.adapters.kotlin = { - type = "executable", - command = "kotlin-debug-adapter", - options = { auto_continue_if_many_stopped = false }, - } - end - - dap.configurations.kotlin = { - { - type = "kotlin", - request = "launch", - name = "This file", - -- may differ, when in doubt, whatever your project structure may be, - -- it has to correspond to the class file located at `build/classes/` - -- and of course you have to build before you debug - mainClass = function() - local root = vim.fs.find("src", { path = vim.uv.cwd(), upward = true, stop = vim.env.HOME })[1] or "" - local fname = vim.api.nvim_buf_get_name(0) - -- src/main/kotlin/websearch/Main.kt -> websearch.MainKt - return fname:gsub(root, ""):gsub("main/kotlin/", ""):gsub(".kt", "Kt"):gsub("/", "."):sub(2, -1) - end, - projectRoot = "${workspaceFolder}", - jsonLogFile = "", - enableJsonLogging = false, - }, - { - -- Use this for unit tests - -- First, run - -- ./gradlew --info cleanTest test --debug-jvm - -- then attach the debugger to it - type = "kotlin", - request = "attach", - name = "Attach to debugging session", - port = 5005, - args = {}, - projectRoot = vim.fn.getcwd, - hostName = "localhost", - timeout = 2000, - }, - } - end, -} -``` - - - - - - diff --git a/docs/extras/lang/lean.md b/docs/extras/lang/lean.md deleted file mode 100644 index e26f513b5f..0000000000 --- a/docs/extras/lang/lean.md +++ /dev/null @@ -1,68 +0,0 @@ -# `Lean` - - - -:::info -You can enable the extra with the `:LazyExtras` command. -Plugins marked as optional will only be configured if they are installed. -::: - -Below you can find a list of included plugins and their default settings. - -:::caution -You don't need to copy the default settings to your config. -They are only shown here for reference. -::: - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -## [lean.nvim](https://github.com/Julian/lean.nvim) - - - - - -```lua -opts = nil -``` - - - - - - -```lua -"Julian/lean.nvim" -``` - - - - - -## [plenary.nvim](https://github.com/nvim-lua/plenary.nvim) - - - - - -```lua -opts = nil -``` - - - - - - -```lua -{ - "nvim-lua/plenary.nvim", -} -``` - - - - - - diff --git a/docs/extras/lang/markdown.md b/docs/extras/lang/markdown.md deleted file mode 100644 index 0eb0b66deb..0000000000 --- a/docs/extras/lang/markdown.md +++ /dev/null @@ -1,355 +0,0 @@ -# Markdown - - - -:::info -You can enable the extra with the `:LazyExtras` command. -Plugins marked as optional will only be configured if they are installed. -::: - -Below you can find a list of included plugins and their default settings. - -:::caution -You don't need to copy the default settings to your config. -They are only shown here for reference. -::: - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -## [mason.nvim](https://github.com/mason-org/mason.nvim) - - - - - -```lua -opts = { ensure_installed = { "markdownlint-cli2", "markdown-toc" } } -``` - - - - - - -```lua -{ - "mason-org/mason.nvim", - opts = { ensure_installed = { "markdownlint-cli2", "markdown-toc" } }, -} -``` - - - - - -## [nvim-lspconfig](https://github.com/neovim/nvim-lspconfig) - - - - - -```lua -opts = { - servers = { - marksman = {}, - }, -} -``` - - - - - - -```lua -{ - "neovim/nvim-lspconfig", - opts = { - servers = { - marksman = {}, - }, - }, -} -``` - - - - - -## [markdown-preview.nvim](https://github.com/iamcco/markdown-preview.nvim) - - Markdown preview - - - - - - -```lua -opts = {} -``` - - - - - - -```lua -{ - "iamcco/markdown-preview.nvim", - cmd = { "MarkdownPreviewToggle", "MarkdownPreview", "MarkdownPreviewStop" }, - build = function() - require("lazy").load({ plugins = { "markdown-preview.nvim" } }) - vim.fn["mkdp#util#install"]() - end, - keys = { - { - "cp", - ft = "markdown", - "MarkdownPreviewToggle", - desc = "Markdown Preview", - }, - }, - config = function() - vim.cmd([[do FileType]]) - end, -} -``` - - - - - -## [markdown-preview.nvim](https://github.com/iamcco/markdown-preview.nvim) - - - - - -```lua -opts = nil -``` - - - - - - -```lua -{ "markdown-preview.nvim" } -``` - - - - - -## [render-markdown.nvim](https://github.com/MeanderingProgrammer/render-markdown.nvim) - - - - - -```lua -opts = { - code = { - sign = false, - width = "block", - right_pad = 1, - }, - heading = { - sign = false, - icons = {}, - }, - checkbox = { - enabled = false, - }, -} -``` - - - - - - -```lua -{ - "MeanderingProgrammer/render-markdown.nvim", - opts = { - code = { - sign = false, - width = "block", - right_pad = 1, - }, - heading = { - sign = false, - icons = {}, - }, - checkbox = { - enabled = false, - }, - }, - ft = { "markdown", "norg", "rmd", "org", "codecompanion" }, - config = function(_, opts) - require("render-markdown").setup(opts) - Snacks.toggle({ - name = "Render Markdown", - get = require("render-markdown").get, - set = require("render-markdown").set, - }):map("um") - end, -} -``` - - - - - -## [conform.nvim](https://github.com/stevearc/conform.nvim) _(optional)_ - - - - - -```lua -opts = { - formatters = { - ["markdown-toc"] = { - condition = function(_, ctx) - for _, line in ipairs(vim.api.nvim_buf_get_lines(ctx.buf, 0, -1, false)) do - if line:find("") then - return true - end - end - end, - }, - ["markdownlint-cli2"] = { - condition = function(_, ctx) - local diag = vim.tbl_filter(function(d) - return d.source == "markdownlint" - end, vim.diagnostic.get(ctx.buf)) - return #diag > 0 - end, - }, - }, - formatters_by_ft = { - ["markdown"] = { "prettier", "markdownlint-cli2", "markdown-toc" }, - ["markdown.mdx"] = { "prettier", "markdownlint-cli2", "markdown-toc" }, - }, -} -``` - - - - - - -```lua -{ - "stevearc/conform.nvim", - optional = true, - opts = { - formatters = { - ["markdown-toc"] = { - condition = function(_, ctx) - for _, line in ipairs(vim.api.nvim_buf_get_lines(ctx.buf, 0, -1, false)) do - if line:find("") then - return true - end - end - end, - }, - ["markdownlint-cli2"] = { - condition = function(_, ctx) - local diag = vim.tbl_filter(function(d) - return d.source == "markdownlint" - end, vim.diagnostic.get(ctx.buf)) - return #diag > 0 - end, - }, - }, - formatters_by_ft = { - ["markdown"] = { "prettier", "markdownlint-cli2", "markdown-toc" }, - ["markdown.mdx"] = { "prettier", "markdownlint-cli2", "markdown-toc" }, - }, - }, -} -``` - - - - - -## [none-ls.nvim](https://github.com/nvimtools/none-ls.nvim) _(optional)_ - - - - - -```lua -opts = function(_, opts) - local nls = require("null-ls") - opts.sources = vim.list_extend(opts.sources or {}, { - nls.builtins.diagnostics.markdownlint_cli2, - }) -end -``` - - - - - - -```lua -{ - "nvimtools/none-ls.nvim", - optional = true, - opts = function(_, opts) - local nls = require("null-ls") - opts.sources = vim.list_extend(opts.sources or {}, { - nls.builtins.diagnostics.markdownlint_cli2, - }) - end, -} -``` - - - - - -## [nvim-lint](https://github.com/mfussenegger/nvim-lint) _(optional)_ - - - - - -```lua -opts = { - linters_by_ft = { - markdown = { "markdownlint-cli2" }, - }, -} -``` - - - - - - -```lua -{ - "mfussenegger/nvim-lint", - optional = true, - opts = { - linters_by_ft = { - markdown = { "markdownlint-cli2" }, - }, - }, -} -``` - - - - - - diff --git a/docs/extras/lang/nix.md b/docs/extras/lang/nix.md deleted file mode 100644 index 672c4053d5..0000000000 --- a/docs/extras/lang/nix.md +++ /dev/null @@ -1,150 +0,0 @@ -# `Nix` - - - -:::info -You can enable the extra with the `:LazyExtras` command. -Plugins marked as optional will only be configured if they are installed. -::: - -Below you can find a list of included plugins and their default settings. - -:::caution -You don't need to copy the default settings to your config. -They are only shown here for reference. -::: - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -## [nvim-treesitter](https://github.com/nvim-treesitter/nvim-treesitter) - - - - - -```lua -opts = { ensure_installed = { "nix" } } -``` - - - - - - -```lua -{ - "nvim-treesitter/nvim-treesitter", - opts = { ensure_installed = { "nix" } }, -} -``` - - - - - -## [nvim-lspconfig](https://github.com/neovim/nvim-lspconfig) - - - - - -```lua -opts = { - servers = { - nil_ls = {}, - }, -} -``` - - - - - - -```lua -{ - "neovim/nvim-lspconfig", - opts = { - servers = { - nil_ls = {}, - }, - }, -} -``` - - - - - -## [conform.nvim](https://github.com/stevearc/conform.nvim) _(optional)_ - - - - - -```lua -opts = { - formatters_by_ft = { - nix = { "nixfmt" }, - }, -} -``` - - - - - - -```lua -{ - "stevearc/conform.nvim", - optional = true, - opts = { - formatters_by_ft = { - nix = { "nixfmt" }, - }, - }, -} -``` - - - - - -## [nvim-lint](https://github.com/mfussenegger/nvim-lint) _(optional)_ - - - - - -```lua -opts = { - linters_by_ft = { - nix = { "statix" }, - }, -} -``` - - - - - - -```lua -{ - "mfussenegger/nvim-lint", - optional = true, - opts = { - linters_by_ft = { - nix = { "statix" }, - }, - }, -} -``` - - - - - - diff --git a/docs/extras/lang/nushell.md b/docs/extras/lang/nushell.md deleted file mode 100644 index 38ef76d96d..0000000000 --- a/docs/extras/lang/nushell.md +++ /dev/null @@ -1,80 +0,0 @@ -# `Nushell` - - - -:::info -You can enable the extra with the `:LazyExtras` command. -Plugins marked as optional will only be configured if they are installed. -::: - -Below you can find a list of included plugins and their default settings. - -:::caution -You don't need to copy the default settings to your config. -They are only shown here for reference. -::: - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -## [nvim-lspconfig](https://github.com/neovim/nvim-lspconfig) - - - - - -```lua -opts = { - servers = { - nushell = {}, - }, -} -``` - - - - - - -```lua -{ - "neovim/nvim-lspconfig", - opts = { - servers = { - nushell = {}, - }, - }, -} -``` - - - - - -## [nvim-treesitter](https://github.com/nvim-treesitter/nvim-treesitter) - - - - - -```lua -opts = { ensure_installed = { "nu" } } -``` - - - - - - -```lua -{ - "nvim-treesitter/nvim-treesitter", - opts = { ensure_installed = { "nu" } }, -} -``` - - - - - - diff --git a/docs/extras/lang/ocaml.md b/docs/extras/lang/ocaml.md deleted file mode 100644 index 4174ad4412..0000000000 --- a/docs/extras/lang/ocaml.md +++ /dev/null @@ -1,132 +0,0 @@ -# `Ocaml` - - - -:::info -You can enable the extra with the `:LazyExtras` command. -Plugins marked as optional will only be configured if they are installed. -::: - -Below you can find a list of included plugins and their default settings. - -:::caution -You don't need to copy the default settings to your config. -They are only shown here for reference. -::: - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -## [nvim-treesitter](https://github.com/nvim-treesitter/nvim-treesitter) - - - - - -```lua -opts = function(_, opts) - if type(opts.ensure_installed) == "table" then - vim.list_extend(opts.ensure_installed, { "ocaml" }) - end -end -``` - - - - - - -```lua -{ - "nvim-treesitter/nvim-treesitter", - opts = function(_, opts) - if type(opts.ensure_installed) == "table" then - vim.list_extend(opts.ensure_installed, { "ocaml" }) - end - end, -} -``` - - - - - -## [nvim-lspconfig](https://github.com/neovim/nvim-lspconfig) - - - - - -```lua -opts = { - servers = { - ocamllsp = { - filetypes = { - "ocaml", - "ocaml.menhir", - "ocaml.interface", - "ocaml.ocamllex", - "reason", - "dune", - }, - root_markers = { - function(name) - return name:match(".*%.opam$") - end, - "esy.json", - "package.json", - ".git", - "dune-project", - "dune-workspace", - function(name) - return name:match(".*%.ml$") - end, - }, - }, - }, -} -``` - - - - - - -```lua -{ - "neovim/nvim-lspconfig", - opts = { - servers = { - ocamllsp = { - filetypes = { - "ocaml", - "ocaml.menhir", - "ocaml.interface", - "ocaml.ocamllex", - "reason", - "dune", - }, - root_markers = { - function(name) - return name:match(".*%.opam$") - end, - "esy.json", - "package.json", - ".git", - "dune-project", - "dune-workspace", - function(name) - return name:match(".*%.ml$") - end, - }, - }, - }, - }, -} -``` - - - - - - diff --git a/docs/extras/lang/php.md b/docs/extras/lang/php.md deleted file mode 100644 index 075a37f7bd..0000000000 --- a/docs/extras/lang/php.md +++ /dev/null @@ -1,412 +0,0 @@ -# `PHP` - - - -:::info -You can enable the extra with the `:LazyExtras` command. -Plugins marked as optional will only be configured if they are installed. -::: - -### Options - -Additional options for this extra can be configured in your [lua/config/options.lua](/configuration/general#options) file: - -```lua title="lua/config/options.lua" --- LSP Server to use for PHP. --- Set to "intelephense" to use intelephense instead of phpactor. -vim.g.lazyvim_php_lsp = "intelephense" -``` - -Below you can find a list of included plugins and their default settings. - -:::caution -You don't need to copy the default settings to your config. -They are only shown here for reference. -::: - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -## [nvim-treesitter](https://github.com/nvim-treesitter/nvim-treesitter) - - - - - -```lua -opts = { ensure_installed = { "php" } } -``` - - - - - - -```lua -{ - "nvim-treesitter/nvim-treesitter", - opts = { ensure_installed = { "php" } }, -} -``` - - - - - -## [nvim-lspconfig](https://github.com/neovim/nvim-lspconfig) - - - - - -```lua -opts = { - servers = { - phpactor = { - enabled = lsp == "phpactor", - }, - intelephense = { - enabled = lsp == "intelephense", - }, - [lsp] = { - enabled = true, - }, - }, -} -``` - - - - - - -```lua -{ - "neovim/nvim-lspconfig", - opts = { - servers = { - phpactor = { - enabled = lsp == "phpactor", - }, - intelephense = { - enabled = lsp == "intelephense", - }, - [lsp] = { - enabled = true, - }, - }, - }, -} -``` - - - - - -## [mason.nvim](https://github.com/mason-org/mason.nvim) - - - - - -```lua -opts = { - ensure_installed = { - "phpcs", - "php-cs-fixer", - }, -} -``` - - - - - - -```lua -{ - "mason-org/mason.nvim", - opts = { - ensure_installed = { - "phpcs", - "php-cs-fixer", - }, - }, -} -``` - - - - - -## [neotest-pest](https://github.com/V13Axel/neotest-pest) - - - - - -```lua -opts = nil -``` - - - - - - -```lua -{ - "V13Axel/neotest-pest", - "olimorris/neotest-phpunit", -} -``` - - - - - -## [neotest-phpunit](https://github.com/olimorris/neotest-phpunit) - - - - - -```lua -opts = nil -``` - - - - - - -```lua -"olimorris/neotest-phpunit" -``` - - - - - -## [neotest-pest](https://github.com/V13Axel/neotest-pest) - - - - - -```lua -opts = nil -``` - - - - - - -```lua -{ - "neotest-pest", - ["neotest-phpunit"] = { - root_ignore_files = { "tests/Pest.php" }, - }, -} -``` - - - - - -## [nvim-dap](https://github.com/mfussenegger/nvim-dap) _(optional)_ - - - - - -```lua -opts = function() - local dap = require("dap") - dap.adapters.php = { - type = "executable", - command = "php-debug-adapter", - args = {}, - } -end -``` - - - - - - -```lua -{ - "mfussenegger/nvim-dap", - optional = true, - opts = function() - local dap = require("dap") - dap.adapters.php = { - type = "executable", - command = "php-debug-adapter", - args = {}, - } - end, -} -``` - - - - - -## [none-ls.nvim](https://github.com/nvimtools/none-ls.nvim) _(optional)_ - - - - - -```lua -opts = function(_, opts) - local nls = require("null-ls") - opts.sources = opts.sources or {} - table.insert(opts.sources, nls.builtins.formatting.phpcsfixer) - table.insert(opts.sources, nls.builtins.diagnostics.phpcs) -end -``` - - - - - - -```lua -{ - "nvimtools/none-ls.nvim", - optional = true, - opts = function(_, opts) - local nls = require("null-ls") - opts.sources = opts.sources or {} - table.insert(opts.sources, nls.builtins.formatting.phpcsfixer) - table.insert(opts.sources, nls.builtins.diagnostics.phpcs) - end, -} -``` - - - - - -## [nvim-lint](https://github.com/mfussenegger/nvim-lint) _(optional)_ - - - - - -```lua -opts = { - linters_by_ft = { - php = { "phpcs" }, - }, -} -``` - - - - - - -```lua -{ - "mfussenegger/nvim-lint", - optional = true, - opts = { - linters_by_ft = { - php = { "phpcs" }, - }, - }, -} -``` - - - - - -## [conform.nvim](https://github.com/stevearc/conform.nvim) _(optional)_ - - - - - -```lua -opts = { - formatters_by_ft = { - php = { "php_cs_fixer" }, - }, -} -``` - - - - - - -```lua -{ - "stevearc/conform.nvim", - optional = true, - opts = { - formatters_by_ft = { - php = { "php_cs_fixer" }, - }, - }, -} -``` - - - - - -## [neotest](https://github.com/nvim-neotest/neotest) _(optional)_ - - - - - -```lua -opts = { - adapters = { - "neotest-pest", - ["neotest-phpunit"] = { - root_ignore_files = { "tests/Pest.php" }, - }, - }, -} -``` - - - - - - -```lua -{ - "nvim-neotest/neotest", - optional = true, - dependencies = { - "V13Axel/neotest-pest", - "olimorris/neotest-phpunit", - }, - opts = { - adapters = { - "neotest-pest", - ["neotest-phpunit"] = { - root_ignore_files = { "tests/Pest.php" }, - }, - }, - }, -} -``` - - - - - - diff --git a/docs/extras/lang/prisma.md b/docs/extras/lang/prisma.md deleted file mode 100644 index 3c222765a8..0000000000 --- a/docs/extras/lang/prisma.md +++ /dev/null @@ -1,84 +0,0 @@ -# `Prisma` - - - -:::info -You can enable the extra with the `:LazyExtras` command. -Plugins marked as optional will only be configured if they are installed. -::: - -Below you can find a list of included plugins and their default settings. - -:::caution -You don't need to copy the default settings to your config. -They are only shown here for reference. -::: - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -## [nvim-treesitter](https://github.com/nvim-treesitter/nvim-treesitter) - - - - - -```lua -opts = { - ensure_installed = { "prisma" }, -} -``` - - - - - - -```lua -{ - "nvim-treesitter/nvim-treesitter", - opts = { - ensure_installed = { "prisma" }, - }, -} -``` - - - - - -## [nvim-lspconfig](https://github.com/neovim/nvim-lspconfig) - - - - - -```lua -opts = { - servers = { - prismals = {}, - }, -} -``` - - - - - - -```lua -{ - "neovim/nvim-lspconfig", - opts = { - servers = { - prismals = {}, - }, - }, -} -``` - - - - - - diff --git a/docs/extras/lang/python.md b/docs/extras/lang/python.md deleted file mode 100644 index 293afdf995..0000000000 --- a/docs/extras/lang/python.md +++ /dev/null @@ -1,442 +0,0 @@ -# Python - - - -:::info -You can enable the extra with the `:LazyExtras` command. -Plugins marked as optional will only be configured if they are installed. -::: - -### Options - -Additional options for this extra can be configured in your [lua/config/options.lua](/configuration/general#options) file: - -```lua title="lua/config/options.lua" --- LSP Server to use for Python. --- Set to "basedpyright" to use basedpyright instead of pyright. -vim.g.lazyvim_python_lsp = "pyright" --- Set to "ruff_lsp" to use the old LSP implementation version. -vim.g.lazyvim_python_ruff = "ruff" -``` - -Below you can find a list of included plugins and their default settings. - -:::caution -You don't need to copy the default settings to your config. -They are only shown here for reference. -::: - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -## [nvim-treesitter](https://github.com/nvim-treesitter/nvim-treesitter) - - - - - -```lua -opts = { ensure_installed = { "ninja", "rst" } } -``` - - - - - - -```lua -{ - "nvim-treesitter/nvim-treesitter", - opts = { ensure_installed = { "ninja", "rst" } }, -} -``` - - - - - -## [nvim-lspconfig](https://github.com/neovim/nvim-lspconfig) - - - - - -```lua -opts = { - servers = { - ruff = { - cmd_env = { RUFF_TRACE = "messages" }, - init_options = { - settings = { - logLevel = "error", - }, - }, - keys = { - { - "co", - LazyVim.lsp.action["source.organizeImports"], - desc = "Organize Imports", - }, - }, - }, - ruff_lsp = { - keys = { - { - "co", - LazyVim.lsp.action["source.organizeImports"], - desc = "Organize Imports", - }, - }, - }, - }, - setup = { - [ruff] = function() - LazyVim.lsp.on_attach(function(client, _) - -- Disable hover in favor of Pyright - client.server_capabilities.hoverProvider = false - end, ruff) - end, - }, -} -``` - - - - - - -```lua -{ - "neovim/nvim-lspconfig", - opts = { - servers = { - ruff = { - cmd_env = { RUFF_TRACE = "messages" }, - init_options = { - settings = { - logLevel = "error", - }, - }, - keys = { - { - "co", - LazyVim.lsp.action["source.organizeImports"], - desc = "Organize Imports", - }, - }, - }, - ruff_lsp = { - keys = { - { - "co", - LazyVim.lsp.action["source.organizeImports"], - desc = "Organize Imports", - }, - }, - }, - }, - setup = { - [ruff] = function() - LazyVim.lsp.on_attach(function(client, _) - -- Disable hover in favor of Pyright - client.server_capabilities.hoverProvider = false - end, ruff) - end, - }, - }, -} -``` - - - - - -## [nvim-lspconfig](https://github.com/neovim/nvim-lspconfig) - - - - - -```lua -opts = function(_, opts) - local servers = { "pyright", "basedpyright", "ruff", "ruff_lsp", ruff, lsp } - for _, server in ipairs(servers) do - opts.servers[server] = opts.servers[server] or {} - opts.servers[server].enabled = server == lsp or server == ruff - end -end -``` - - - - - - -```lua -{ - "neovim/nvim-lspconfig", - opts = function(_, opts) - local servers = { "pyright", "basedpyright", "ruff", "ruff_lsp", ruff, lsp } - for _, server in ipairs(servers) do - opts.servers[server] = opts.servers[server] or {} - opts.servers[server].enabled = server == lsp or server == ruff - end - end, -} -``` - - - - - -## [neotest-python](https://github.com/nvim-neotest/neotest-python) - - - - - -```lua -opts = nil -``` - - - - - - -```lua -{ - "nvim-neotest/neotest-python", -} -``` - - - - - -## [nvim-dap-python](https://github.com/mfussenegger/nvim-dap-python) - - - - - -```lua -opts = {} -``` - - - - - - -```lua -{ - "mfussenegger/nvim-dap-python", - -- stylua: ignore - keys = { - { "dPt", function() require('dap-python').test_method() end, desc = "Debug Method", ft = "python" }, - { "dPc", function() require('dap-python').test_class() end, desc = "Debug Class", ft = "python" }, - }, - config = function() - require("dap-python").setup("debugpy-adapter") - end, -} -``` - - - - - -## [venv-selector.nvim](https://github.com/linux-cultist/venv-selector.nvim) - - - - - -```lua -opts = { - options = { - notify_user_on_venv_activation = true, - }, -} -``` - - - - - - -```lua -{ - "linux-cultist/venv-selector.nvim", - cmd = "VenvSelect", - opts = { - options = { - notify_user_on_venv_activation = true, - }, - }, - -- Call config for Python files and load the cached venv automatically - ft = "python", - keys = { { "cv", ":VenvSelect", desc = "Select VirtualEnv", ft = "python" } }, -} -``` - - - - - -## [neotest](https://github.com/nvim-neotest/neotest) _(optional)_ - - - - - -```lua -opts = { - adapters = { - ["neotest-python"] = { - -- Here you can specify the settings for the adapter, i.e. - -- runner = "pytest", - -- python = ".venv/bin/python", - }, - }, -} -``` - - - - - - -```lua -{ - "nvim-neotest/neotest", - optional = true, - dependencies = { - "nvim-neotest/neotest-python", - }, - opts = { - adapters = { - ["neotest-python"] = { - -- Here you can specify the settings for the adapter, i.e. - -- runner = "pytest", - -- python = ".venv/bin/python", - }, - }, - }, -} -``` - - - - - -## [nvim-dap](https://github.com/mfussenegger/nvim-dap) _(optional)_ - - - - - -```lua -opts = nil -``` - - - - - - -```lua -{ - "mfussenegger/nvim-dap", - optional = true, - dependencies = { - "mfussenegger/nvim-dap-python", - -- stylua: ignore - keys = { - { "dPt", function() require('dap-python').test_method() end, desc = "Debug Method", ft = "python" }, - { "dPc", function() require('dap-python').test_class() end, desc = "Debug Class", ft = "python" }, - }, - config = function() - require("dap-python").setup("debugpy-adapter") - end, - }, -} -``` - - - - - -## [nvim-cmp](https://github.com/hrsh7th/nvim-cmp) _(optional)_ - - - - - -```lua -opts = function(_, opts) - opts.auto_brackets = opts.auto_brackets or {} - table.insert(opts.auto_brackets, "python") -end -``` - - - - - - -```lua -{ - "hrsh7th/nvim-cmp", - optional = true, - opts = function(_, opts) - opts.auto_brackets = opts.auto_brackets or {} - table.insert(opts.auto_brackets, "python") - end, -} -``` - - - - - -## [mason-nvim-dap.nvim](https://github.com/jay-babu/mason-nvim-dap.nvim) _(optional)_ - - Don't mess up DAP adapters provided by nvim-dap-python - - - - - - -```lua -opts = { - handlers = { - python = function() end, - }, -} -``` - - - - - - -```lua -{ - "jay-babu/mason-nvim-dap.nvim", - optional = true, - opts = { - handlers = { - python = function() end, - }, - }, -} -``` - - - - - - diff --git a/docs/extras/lang/r.md b/docs/extras/lang/r.md deleted file mode 100644 index ac20fae443..0000000000 --- a/docs/extras/lang/r.md +++ /dev/null @@ -1,300 +0,0 @@ -# `R` - - - -:::info -You can enable the extra with the `:LazyExtras` command. -Plugins marked as optional will only be configured if they are installed. -::: - -Below you can find a list of included plugins and their default settings. - -:::caution -You don't need to copy the default settings to your config. -They are only shown here for reference. -::: - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -## [R.nvim](https://github.com/R-nvim/R.nvim) - - - - - -```lua -opts = { - -- Create a table with the options to be passed to setup() - R_args = { "--quiet", "--no-save" }, - hook = { - on_filetype = function() - -- This function will be called at the FileType event - -- of files supported by R.nvim. This is an - -- opportunity to create mappings local to buffers. - vim.keymap.set("n", "", "RDSendLine", { buffer = true }) - vim.keymap.set("x", "", "RSendSelection", { buffer = true }) - - local wk = require("which-key") - wk.add({ - buffer = true, - mode = { "n", "x" }, - { "a", group = "all" }, - { "b", group = "between marks" }, - { "c", group = "chunks" }, - { "f", group = "functions" }, - { "g", group = "goto" }, - { "i", group = "install" }, - { "k", group = "knit" }, - { "p", group = "paragraph" }, - { "q", group = "quarto" }, - { "r", group = "r general" }, - { "s", group = "split or send" }, - { "t", group = "terminal" }, - { "v", group = "view" }, - }) - end, - }, - pdfviewer = "", -} -``` - - - - - - -```lua -{ - "R-nvim/R.nvim", - lazy = false, - opts = { - -- Create a table with the options to be passed to setup() - R_args = { "--quiet", "--no-save" }, - hook = { - on_filetype = function() - -- This function will be called at the FileType event - -- of files supported by R.nvim. This is an - -- opportunity to create mappings local to buffers. - vim.keymap.set("n", "", "RDSendLine", { buffer = true }) - vim.keymap.set("x", "", "RSendSelection", { buffer = true }) - - local wk = require("which-key") - wk.add({ - buffer = true, - mode = { "n", "x" }, - { "a", group = "all" }, - { "b", group = "between marks" }, - { "c", group = "chunks" }, - { "f", group = "functions" }, - { "g", group = "goto" }, - { "i", group = "install" }, - { "k", group = "knit" }, - { "p", group = "paragraph" }, - { "q", group = "quarto" }, - { "r", group = "r general" }, - { "s", group = "split or send" }, - { "t", group = "terminal" }, - { "v", group = "view" }, - }) - end, - }, - pdfviewer = "", - }, - config = function(_, opts) - vim.g.rout_follow_colorscheme = true - require("r").setup(opts) - require("r.pdf.generic").open = vim.ui.open - end, -} -``` - - - - - -## [cmp-r](https://github.com/R-nvim/cmp-r) - - - - - -```lua -opts = nil -``` - - - - - - -```lua -{ "R-nvim/cmp-r" } -``` - - - - - -## [nvim-treesitter](https://github.com/nvim-treesitter/nvim-treesitter) - - - - - -```lua -opts = { ensure_installed = { "r", "rnoweb" } } -``` - - - - - - -```lua -{ - "nvim-treesitter/nvim-treesitter", - opts = { ensure_installed = { "r", "rnoweb" } }, -} -``` - - - - - -## [nvim-lspconfig](https://github.com/neovim/nvim-lspconfig) - - - - - -```lua -opts = { - servers = { - r_language_server = { - root_markers = { "DESCRIPTION", "NAMESPACE", ".Rbuildignore" }, - }, - }, -} -``` - - - - - - -```lua -{ - "neovim/nvim-lspconfig", - opts = { - servers = { - r_language_server = { - root_markers = { "DESCRIPTION", "NAMESPACE", ".Rbuildignore" }, - }, - }, - }, -} -``` - - - - - -## [neotest-testthat](https://github.com/shunsambongi/neotest-testthat) - - - - - -```lua -opts = nil -``` - - - - - - -```lua -{ - "shunsambongi/neotest-testthat", -} -``` - - - - - -## [nvim-cmp](https://github.com/hrsh7th/nvim-cmp) _(optional)_ - - - - - -```lua -opts = function(_, opts) - opts.sources = opts.sources or {} - table.insert(opts.sources, { name = "cmp_r" }) -end -``` - - - - - - -```lua -{ - "hrsh7th/nvim-cmp", - optional = true, - dependencies = { "R-nvim/cmp-r" }, - opts = function(_, opts) - opts.sources = opts.sources or {} - table.insert(opts.sources, { name = "cmp_r" }) - end, -} -``` - - - - - -## [neotest](https://github.com/nvim-neotest/neotest) _(optional)_ - - - - - -```lua -opts = { - adapters = { - ["neotest-testthat"] = {}, - }, -} -``` - - - - - - -```lua -{ - "nvim-neotest/neotest", - optional = true, - dependencies = { - "shunsambongi/neotest-testthat", - }, - opts = { - adapters = { - ["neotest-testthat"] = {}, - }, - }, -} -``` - - - - - - diff --git a/docs/extras/lang/rego.md b/docs/extras/lang/rego.md deleted file mode 100644 index f6e26aa071..0000000000 --- a/docs/extras/lang/rego.md +++ /dev/null @@ -1,86 +0,0 @@ -# `Rego` - - - -:::info -You can enable the extra with the `:LazyExtras` command. -Plugins marked as optional will only be configured if they are installed. -::: - -Below you can find a list of included plugins and their default settings. - -:::caution -You don't need to copy the default settings to your config. -They are only shown here for reference. -::: - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -## [nvim-lspconfig](https://github.com/neovim/nvim-lspconfig) - - - - - -```lua -opts = { - servers = { - regols = {}, - regal = {}, - }, -} -``` - - - - - - -```lua -{ - "neovim/nvim-lspconfig", - opts = { - servers = { - regols = {}, - regal = {}, - }, - }, -} -``` - - - - - -## [nvim-treesitter](https://github.com/nvim-treesitter/nvim-treesitter) - - - - - -```lua -opts = { - ensure_installed = { "rego" }, -} -``` - - - - - - -```lua -{ - "nvim-treesitter/nvim-treesitter", - opts = { - ensure_installed = { "rego" }, - }, -} -``` - - - - - - diff --git a/docs/extras/lang/ruby.md b/docs/extras/lang/ruby.md deleted file mode 100644 index f70d5bfd49..0000000000 --- a/docs/extras/lang/ruby.md +++ /dev/null @@ -1,324 +0,0 @@ -# Ruby - - - -:::info -You can enable the extra with the `:LazyExtras` command. -Plugins marked as optional will only be configured if they are installed. -::: - -### Options - -Additional options for this extra can be configured in your [lua/config/options.lua](/configuration/general#options) file: - -```lua title="lua/config/options.lua" --- LSP Server to use for Ruby. --- Set to "solargraph" to use solargraph instead of ruby_lsp. -vim.g.lazyvim_ruby_lsp = "ruby_lsp" -vim.g.lazyvim_ruby_formatter = "rubocop" -``` - -Below you can find a list of included plugins and their default settings. - -:::caution -You don't need to copy the default settings to your config. -They are only shown here for reference. -::: - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -## [nvim-treesitter](https://github.com/nvim-treesitter/nvim-treesitter) - - - - - -```lua -opts = { ensure_installed = { "ruby" } } -``` - - - - - - -```lua -{ - "nvim-treesitter/nvim-treesitter", - opts = { ensure_installed = { "ruby" } }, -} -``` - - - - - -## [nvim-lspconfig](https://github.com/neovim/nvim-lspconfig) - - - - - -```lua -opts = { - servers = { - ruby_lsp = { - enabled = lsp == "ruby_lsp", - }, - solargraph = { - enabled = lsp == "solargraph", - }, - rubocop = { - -- If Solargraph and Rubocop are both enabled as an LSP, - -- diagnostics will be duplicated because Solargraph - -- already calls Rubocop if it is installed - enabled = formatter == "rubocop" and lsp ~= "solargraph", - }, - standardrb = { - enabled = formatter == "standardrb", - }, - }, -} -``` - - - - - - -```lua -{ - "neovim/nvim-lspconfig", - ---@type PluginLspOpts - opts = { - servers = { - ruby_lsp = { - enabled = lsp == "ruby_lsp", - }, - solargraph = { - enabled = lsp == "solargraph", - }, - rubocop = { - -- If Solargraph and Rubocop are both enabled as an LSP, - -- diagnostics will be duplicated because Solargraph - -- already calls Rubocop if it is installed - enabled = formatter == "rubocop" and lsp ~= "solargraph", - }, - standardrb = { - enabled = formatter == "standardrb", - }, - }, - }, -} -``` - - - - - -## [mason.nvim](https://github.com/mason-org/mason.nvim) - - - - - -```lua -opts = { ensure_installed = { "erb-formatter", "erb-lint" } } -``` - - - - - - -```lua -{ - "mason-org/mason.nvim", - opts = { ensure_installed = { "erb-formatter", "erb-lint" } }, -} -``` - - - - - -## [nvim-dap-ruby](https://github.com/suketa/nvim-dap-ruby) - - - - - -```lua -opts = {} -``` - - - - - - -```lua -{ - "suketa/nvim-dap-ruby", - config = function() - require("dap-ruby").setup() - end, -} -``` - - - - - -## [neotest-rspec](https://github.com/olimorris/neotest-rspec) - - - - - -```lua -opts = nil -``` - - - - - - -```lua -{ - "olimorris/neotest-rspec", -} -``` - - - - - -## [nvim-dap](https://github.com/mfussenegger/nvim-dap) _(optional)_ - - - - - -```lua -opts = nil -``` - - - - - - -```lua -{ - "mfussenegger/nvim-dap", - optional = true, - dependencies = { - "suketa/nvim-dap-ruby", - config = function() - require("dap-ruby").setup() - end, - }, -} -``` - - - - - -## [conform.nvim](https://github.com/stevearc/conform.nvim) _(optional)_ - - - - - -```lua -opts = { - formatters_by_ft = { - ruby = { formatter }, - eruby = { "erb_format" }, - }, -} -``` - - - - - - -```lua -{ - "stevearc/conform.nvim", - optional = true, - opts = { - formatters_by_ft = { - ruby = { formatter }, - eruby = { "erb_format" }, - }, - }, -} -``` - - - - - -## [neotest](https://github.com/nvim-neotest/neotest) _(optional)_ - - - - - -```lua -opts = { - adapters = { - ["neotest-rspec"] = { - -- NOTE: By default neotest-rspec uses the system wide rspec gem instead of the one through bundler - -- rspec_cmd = function() - -- return vim.tbl_flatten({ - -- "bundle", - -- "exec", - -- "rspec", - -- }) - -- end, - }, - }, -} -``` - - - - - - -```lua -{ - "nvim-neotest/neotest", - optional = true, - dependencies = { - "olimorris/neotest-rspec", - }, - opts = { - adapters = { - ["neotest-rspec"] = { - -- NOTE: By default neotest-rspec uses the system wide rspec gem instead of the one through bundler - -- rspec_cmd = function() - -- return vim.tbl_flatten({ - -- "bundle", - -- "exec", - -- "rspec", - -- }) - -- end, - }, - }, - }, -} -``` - - - - - - diff --git a/docs/extras/lang/rust.md b/docs/extras/lang/rust.md deleted file mode 100644 index aad3506764..0000000000 --- a/docs/extras/lang/rust.md +++ /dev/null @@ -1,375 +0,0 @@ -# Rust - - - -:::info -You can enable the extra with the `:LazyExtras` command. -Plugins marked as optional will only be configured if they are installed. -::: - -### Options - -Additional options for this extra can be configured in your [lua/config/options.lua](/configuration/general#options) file: - -```lua title="lua/config/options.lua" --- LSP Server to use for Rust. --- Set to "bacon-ls" to use bacon-ls instead of rust-analyzer. --- only for diagnostics. The rest of LSP support will still be --- provided by rust-analyzer. -vim.g.lazyvim_rust_diagnostics = "rust-analyzer" -``` - -Below you can find a list of included plugins and their default settings. - -:::caution -You don't need to copy the default settings to your config. -They are only shown here for reference. -::: - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -## [crates.nvim](https://github.com/Saecki/crates.nvim) - - LSP for Cargo.toml - - - - - - -```lua -opts = { - completion = { - crates = { - enabled = true, - }, - }, - lsp = { - enabled = true, - actions = true, - completion = true, - hover = true, - }, -} -``` - - - - - - -```lua -{ - "Saecki/crates.nvim", - event = { "BufRead Cargo.toml" }, - opts = { - completion = { - crates = { - enabled = true, - }, - }, - lsp = { - enabled = true, - actions = true, - completion = true, - hover = true, - }, - }, -} -``` - - - - - -## [nvim-treesitter](https://github.com/nvim-treesitter/nvim-treesitter) - - Add Rust & related to treesitter - - - - - - -```lua -opts = { ensure_installed = { "rust", "ron" } } -``` - - - - - - -```lua -{ - "nvim-treesitter/nvim-treesitter", - opts = { ensure_installed = { "rust", "ron" } }, -} -``` - - - - - -## [rustaceanvim](https://github.com/mrcjkb/rustaceanvim) - - - - - -```lua -opts = { - server = { - on_attach = function(_, bufnr) - vim.keymap.set("n", "cR", function() - vim.cmd.RustLsp("codeAction") - end, { desc = "Code Action", buffer = bufnr }) - vim.keymap.set("n", "dr", function() - vim.cmd.RustLsp("debuggables") - end, { desc = "Rust Debuggables", buffer = bufnr }) - end, - default_settings = { - -- rust-analyzer language server configuration - ["rust-analyzer"] = { - cargo = { - allFeatures = true, - loadOutDirsFromCheck = true, - buildScripts = { - enable = true, - }, - }, - -- Add clippy lints for Rust if using rust-analyzer - checkOnSave = diagnostics == "rust-analyzer", - -- Enable diagnostics if using rust-analyzer - diagnostics = { - enable = diagnostics == "rust-analyzer", - }, - procMacro = { - enable = true, - }, - files = { - exclude = { - ".direnv", - ".git", - ".jj", - ".github", - ".gitlab", - "bin", - "node_modules", - "target", - "venv", - ".venv", - }, - -- Avoid Roots Scanned hanging, see https://github.com/rust-lang/rust-analyzer/issues/12613#issuecomment-2096386344 - watcher = "client", - }, - }, - }, - }, -} -``` - - - - - - -```lua -{ - "mrcjkb/rustaceanvim", - ft = { "rust" }, - opts = { - server = { - on_attach = function(_, bufnr) - vim.keymap.set("n", "cR", function() - vim.cmd.RustLsp("codeAction") - end, { desc = "Code Action", buffer = bufnr }) - vim.keymap.set("n", "dr", function() - vim.cmd.RustLsp("debuggables") - end, { desc = "Rust Debuggables", buffer = bufnr }) - end, - default_settings = { - -- rust-analyzer language server configuration - ["rust-analyzer"] = { - cargo = { - allFeatures = true, - loadOutDirsFromCheck = true, - buildScripts = { - enable = true, - }, - }, - -- Add clippy lints for Rust if using rust-analyzer - checkOnSave = diagnostics == "rust-analyzer", - -- Enable diagnostics if using rust-analyzer - diagnostics = { - enable = diagnostics == "rust-analyzer", - }, - procMacro = { - enable = true, - }, - files = { - exclude = { - ".direnv", - ".git", - ".jj", - ".github", - ".gitlab", - "bin", - "node_modules", - "target", - "venv", - ".venv", - }, - -- Avoid Roots Scanned hanging, see https://github.com/rust-lang/rust-analyzer/issues/12613#issuecomment-2096386344 - watcher = "client", - }, - }, - }, - }, - }, - config = function(_, opts) - if LazyVim.has("mason.nvim") then - local codelldb = vim.fn.exepath("codelldb") - local codelldb_lib_ext = io.popen("uname"):read("*l") == "Linux" and ".so" or ".dylib" - local library_path = vim.fn.expand("$MASON/opt/lldb/lib/liblldb" .. codelldb_lib_ext) - opts.dap = { - adapter = require("rustaceanvim.config").get_codelldb_adapter(codelldb, library_path), - } - end - vim.g.rustaceanvim = vim.tbl_deep_extend("keep", vim.g.rustaceanvim or {}, opts or {}) - if vim.fn.executable("rust-analyzer") == 0 then - LazyVim.error( - "**rust-analyzer** not found in PATH, please install it.\nhttps://rust-analyzer.github.io/", - { title = "rustaceanvim" } - ) - end - end, -} -``` - - - - - -## [nvim-lspconfig](https://github.com/neovim/nvim-lspconfig) - - Correctly setup lspconfig for Rust 🚀 - - - - - - -```lua -opts = { - servers = { - bacon_ls = { - enabled = diagnostics == "bacon-ls", - }, - rust_analyzer = { enabled = false }, - }, -} -``` - - - - - - -```lua -{ - "neovim/nvim-lspconfig", - opts = { - servers = { - bacon_ls = { - enabled = diagnostics == "bacon-ls", - }, - rust_analyzer = { enabled = false }, - }, - }, -} -``` - - - - - -## [mason.nvim](https://github.com/mason-org/mason.nvim) _(optional)_ - - Ensure Rust debugger is installed - - - - - - -```lua -opts = function(_, opts) - opts.ensure_installed = opts.ensure_installed or {} - vim.list_extend(opts.ensure_installed, { "codelldb" }) - if diagnostics == "bacon-ls" then - vim.list_extend(opts.ensure_installed, { "bacon" }) - end -end -``` - - - - - - -```lua -{ - "mason-org/mason.nvim", - optional = true, - opts = function(_, opts) - opts.ensure_installed = opts.ensure_installed or {} - vim.list_extend(opts.ensure_installed, { "codelldb" }) - if diagnostics == "bacon-ls" then - vim.list_extend(opts.ensure_installed, { "bacon" }) - end - end, -} -``` - - - - - -## [neotest](https://github.com/nvim-neotest/neotest) _(optional)_ - - - - - -```lua -opts = { - adapters = { - ["rustaceanvim.neotest"] = {}, - }, -} -``` - - - - - - -```lua -{ - "nvim-neotest/neotest", - optional = true, - opts = { - adapters = { - ["rustaceanvim.neotest"] = {}, - }, - }, -} -``` - - - - - - diff --git a/docs/extras/lang/scala.md b/docs/extras/lang/scala.md deleted file mode 100644 index 7c7a4ff731..0000000000 --- a/docs/extras/lang/scala.md +++ /dev/null @@ -1,255 +0,0 @@ -# `Scala` - - - -:::info -You can enable the extra with the `:LazyExtras` command. -Plugins marked as optional will only be configured if they are installed. -::: - -Below you can find a list of included plugins and their default settings. - -:::caution -You don't need to copy the default settings to your config. -They are only shown here for reference. -::: - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -## [nvim-treesitter](https://github.com/nvim-treesitter/nvim-treesitter) - - - - - -```lua -opts = { ensure_installed = { "scala" } } -``` - - - - - - -```lua -{ - "nvim-treesitter/nvim-treesitter", - opts = { ensure_installed = { "scala" } }, -} -``` - - - - - -## [nvim-metals](https://github.com/scalameta/nvim-metals) - - - - - -```lua -opts = function() - local metals_config = require("metals").bare_config() - - metals_config.init_options.statusBarProvider = "off" - - metals_config.settings = { - verboseCompilation = true, - showImplicitArguments = true, - showImplicitConversionsAndClasses = true, - showInferredType = true, - superMethodLensesEnabled = true, - excludedPackages = { - "akka.actor.typed.javadsl", - "org.apache.pekko.actor.typed.javadsl", - "com.github.swagger.akka.javadsl", - }, - testUserInterface = "Test Explorer", - } - - metals_config.on_attach = function(client, bufnr) - -- your on_attach function - require("metals").setup_dap() - end - - return metals_config -end -``` - - - - - - -```lua -{ - "scalameta/nvim-metals", - dependencies = { - "nvim-lua/plenary.nvim", - }, - keys = { - { - "me", - function() - require("telescope").extensions.metals.commands() - end, - desc = "Metals commands", - }, - { - "mc", - function() - require("metals").compile_cascade() - end, - desc = "Metals compile cascade", - }, - { - "mh", - function() - require("metals").hover_worksheet() - end, - desc = "Metals hover worksheet", - }, - }, - ft = { "scala", "sbt", "java" }, - opts = function() - local metals_config = require("metals").bare_config() - - metals_config.init_options.statusBarProvider = "off" - - metals_config.settings = { - verboseCompilation = true, - showImplicitArguments = true, - showImplicitConversionsAndClasses = true, - showInferredType = true, - superMethodLensesEnabled = true, - excludedPackages = { - "akka.actor.typed.javadsl", - "org.apache.pekko.actor.typed.javadsl", - "com.github.swagger.akka.javadsl", - }, - testUserInterface = "Test Explorer", - } - - metals_config.on_attach = function(client, bufnr) - -- your on_attach function - require("metals").setup_dap() - end - - return metals_config - end, - config = function(self, metals_config) - local nvim_metals_group = vim.api.nvim_create_augroup("nvim-metals", { clear = true }) - vim.api.nvim_create_autocmd("FileType", { - pattern = self.ft, - callback = function() - require("metals").initialize_or_attach(metals_config) - end, - group = nvim_metals_group, - }) - end, -} -``` - - - - - -## [plenary.nvim](https://github.com/nvim-lua/plenary.nvim) - - - - - -```lua -opts = nil -``` - - - - - - -```lua -{ - "nvim-lua/plenary.nvim", -} -``` - - - - - -## [nvim-dap](https://github.com/mfussenegger/nvim-dap) _(optional)_ - - - - - -```lua -opts = function() - -- Debug settings - local dap = require("dap") - dap.configurations.scala = { - { - type = "scala", - request = "launch", - name = "RunOrTest", - metals = { - runType = "runOrTestFile", - --args = { "firstArg", "secondArg", "thirdArg" }, -- here just as an example - }, - }, - { - type = "scala", - request = "launch", - name = "Test Target", - metals = { - runType = "testTarget", - }, - }, - } -end -``` - - - - - - -```lua -{ - "mfussenegger/nvim-dap", - optional = true, - opts = function() - -- Debug settings - local dap = require("dap") - dap.configurations.scala = { - { - type = "scala", - request = "launch", - name = "RunOrTest", - metals = { - runType = "runOrTestFile", - --args = { "firstArg", "secondArg", "thirdArg" }, -- here just as an example - }, - }, - { - type = "scala", - request = "launch", - name = "Test Target", - metals = { - runType = "testTarget", - }, - }, - } - end, -} -``` - - - - - - diff --git a/docs/extras/lang/solidity.md b/docs/extras/lang/solidity.md deleted file mode 100644 index 0eda4c9f02..0000000000 --- a/docs/extras/lang/solidity.md +++ /dev/null @@ -1,124 +0,0 @@ -# `Solidity` - - - -:::info -You can enable the extra with the `:LazyExtras` command. -Plugins marked as optional will only be configured if they are installed. -::: - -Below you can find a list of included plugins and their default settings. - -:::caution -You don't need to copy the default settings to your config. -They are only shown here for reference. -::: - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -## [nvim-treesitter](https://github.com/nvim-treesitter/nvim-treesitter) - - Add Solidity & related to treesitter - - - - - - -```lua -opts = { ensure_installed = { "solidity" } } -``` - - - - - - -```lua -{ - "nvim-treesitter/nvim-treesitter", - opts = { ensure_installed = { "solidity" } }, -} -``` - - - - - -## [nvim-lspconfig](https://github.com/neovim/nvim-lspconfig) - - Correctly setup lspconfig for Solidity - - - - - - -```lua -opts = { - servers = { - solidity_ls = {}, - }, -} -``` - - - - - - -```lua -{ - "neovim/nvim-lspconfig", - opts = { - servers = { - solidity_ls = {}, - }, - }, -} -``` - - - - - -## [conform.nvim](https://github.com/stevearc/conform.nvim) _(optional)_ - - Formatter for Solidity - - - - - - -```lua -opts = { - formatters_by_ft = { - solidity = { "forge_fmt" }, - }, -} -``` - - - - - - -```lua -{ - "stevearc/conform.nvim", - optional = true, - opts = { - formatters_by_ft = { - solidity = { "forge_fmt" }, - }, - }, -} -``` - - - - - - diff --git a/docs/extras/lang/sql.md b/docs/extras/lang/sql.md deleted file mode 100644 index 1e7b7f71a9..0000000000 --- a/docs/extras/lang/sql.md +++ /dev/null @@ -1,448 +0,0 @@ -# `Sql` - - - -:::info -You can enable the extra with the `:LazyExtras` command. -Plugins marked as optional will only be configured if they are installed. -::: - -### Options - -Additional options for this extra can be configured in your [lua/config/options.lua](/configuration/general#options) file: - -```lua title="lua/config/options.lua" --- The setup below will automatically configure connections without the need for manual input each time. - --- Example configuration using dictionary with keys: --- vim.g.dbs = { --- dev = "Replace with your database connection URL.", --- staging = "Replace with your database connection URL.", --- } --- or --- Example configuration using a list of dictionaries: --- vim.g.dbs = { --- { name = "dev", url = "Replace with your database connection URL." }, --- { name = "staging", url = "Replace with your database connection URL." }, --- } - --- or --- Create a `.lazy.lua` file in your project and set your connections like this: --- ```lua --- vim.g.dbs = {...} --- --- return {} --- ``` - --- Alternatively, you can also use other methods to inject your environment variables. - --- Finally, please make sure to add `.lazy.lua` to your `.gitignore` file to protect your secrets. -``` - -Below you can find a list of included plugins and their default settings. - -:::caution -You don't need to copy the default settings to your config. -They are only shown here for reference. -::: - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -## [vim-dadbod](https://github.com/tpope/vim-dadbod) - - - - - -```lua -opts = nil -``` - - - - - - -```lua -{ - "tpope/vim-dadbod", - cmd = "DB", -} -``` - - - - - -## [vim-dadbod-completion](https://github.com/kristijanhusak/vim-dadbod-completion) - - - - - -```lua -opts = nil -``` - - - - - - -```lua -{ - "kristijanhusak/vim-dadbod-completion", - dependencies = "vim-dadbod", - ft = sql_ft, - init = function() - vim.api.nvim_create_autocmd("FileType", { - pattern = sql_ft, - callback = function() - if LazyVim.has_extra("coding.nvim-cmp") then - local cmp = require("cmp") - - -- global sources - ---@param source cmp.SourceConfig - local sources = vim.tbl_map(function(source) - return { name = source.name } - end, cmp.get_config().sources) - - -- add vim-dadbod-completion source - table.insert(sources, { name = "vim-dadbod-completion" }) - - -- update sources for the current buffer - cmp.setup.buffer({ sources = sources }) - end - end, - }) - end, -} -``` - - - - - -## [vim-dadbod-ui](https://github.com/kristijanhusak/vim-dadbod-ui) - - - - - -```lua -opts = nil -``` - - - - - - -```lua -{ - "kristijanhusak/vim-dadbod-ui", - cmd = { "DBUI", "DBUIToggle", "DBUIAddConnection", "DBUIFindBuffer" }, - dependencies = "vim-dadbod", - keys = { - { "D", "DBUIToggle", desc = "Toggle DBUI" }, - }, - init = function() - local data_path = vim.fn.stdpath("data") - - vim.g.db_ui_auto_execute_table_helpers = 1 - vim.g.db_ui_save_location = data_path .. "/dadbod_ui" - vim.g.db_ui_show_database_icon = true - vim.g.db_ui_tmp_query_location = data_path .. "/dadbod_ui/tmp" - vim.g.db_ui_use_nerd_fonts = true - vim.g.db_ui_use_nvim_notify = true - - -- NOTE: The default behavior of auto-execution of queries on save is disabled - -- this is useful when you have a big query that you don't want to run every time - -- you save the file running those queries can crash neovim to run use the - -- default keymap: S - vim.g.db_ui_execute_on_save = false - end, -} -``` - - - - - -## [vim-dadbod-completion](https://github.com/kristijanhusak/vim-dadbod-completion) - - - - - -```lua -opts = nil -``` - - - - - - -```lua -{ - "kristijanhusak/vim-dadbod-completion", -} -``` - - - - - -## [mason.nvim](https://github.com/mason-org/mason.nvim) - - Linters & formatters - - - - - - -```lua -opts = { ensure_installed = { "sqlfluff" } } -``` - - - - - - -```lua -{ - "mason-org/mason.nvim", - opts = { ensure_installed = { "sqlfluff" } }, -} -``` - - - - - -## [nvim-treesitter](https://github.com/nvim-treesitter/nvim-treesitter) _(optional)_ - - Treesitter - - - - - - -```lua -opts = { ensure_installed = { "sql" } } -``` - - - - - - -```lua -{ - "nvim-treesitter/nvim-treesitter", - optional = true, - opts = { ensure_installed = { "sql" } }, -} -``` - - - - - -## [edgy.nvim](https://github.com/folke/edgy.nvim) _(optional)_ - - Edgy integration - - - - - - -```lua -opts = function(_, opts) - opts.right = opts.right or {} - table.insert(opts.right, { - title = "Database", - ft = "dbui", - pinned = true, - width = 0.3, - open = function() - vim.cmd("DBUI") - end, - }) - - opts.bottom = opts.bottom or {} - table.insert(opts.bottom, { - title = "DB Query Result", - ft = "dbout", - }) -end -``` - - - - - - -```lua -{ - "folke/edgy.nvim", - optional = true, - opts = function(_, opts) - opts.right = opts.right or {} - table.insert(opts.right, { - title = "Database", - ft = "dbui", - pinned = true, - width = 0.3, - open = function() - vim.cmd("DBUI") - end, - }) - - opts.bottom = opts.bottom or {} - table.insert(opts.bottom, { - title = "DB Query Result", - ft = "dbout", - }) - end, -} -``` - - - - - -## [blink.cmp](https://github.com/saghen/blink.cmp) _(optional)_ - - blink.cmp integration - - - - - - -```lua -opts = { - sources = { - default = { "dadbod" }, - providers = { - dadbod = { name = "Dadbod", module = "vim_dadbod_completion.blink" }, - }, - }, -} -``` - - - - - - -```lua -{ - "saghen/blink.cmp", - optional = true, - opts = { - sources = { - default = { "dadbod" }, - providers = { - dadbod = { name = "Dadbod", module = "vim_dadbod_completion.blink" }, - }, - }, - }, - dependencies = { - "kristijanhusak/vim-dadbod-completion", - }, -} -``` - - - - - -## [nvim-lint](https://github.com/mfussenegger/nvim-lint) _(optional)_ - - - - - -```lua -opts = function(_, opts) - for _, ft in ipairs(sql_ft) do - opts.linters_by_ft[ft] = opts.linters_by_ft[ft] or {} - table.insert(opts.linters_by_ft[ft], "sqlfluff") - end -end -``` - - - - - - -```lua -{ - "mfussenegger/nvim-lint", - optional = true, - opts = function(_, opts) - for _, ft in ipairs(sql_ft) do - opts.linters_by_ft[ft] = opts.linters_by_ft[ft] or {} - table.insert(opts.linters_by_ft[ft], "sqlfluff") - end - end, -} -``` - - - - - -## [conform.nvim](https://github.com/stevearc/conform.nvim) _(optional)_ - - - - - -```lua -opts = function(_, opts) - opts.formatters.sqlfluff = { - args = { "format", "--dialect=ansi", "-" }, - } - for _, ft in ipairs(sql_ft) do - opts.formatters_by_ft[ft] = opts.formatters_by_ft[ft] or {} - table.insert(opts.formatters_by_ft[ft], "sqlfluff") - end -end -``` - - - - - - -```lua -{ - "stevearc/conform.nvim", - optional = true, - opts = function(_, opts) - opts.formatters.sqlfluff = { - args = { "format", "--dialect=ansi", "-" }, - } - for _, ft in ipairs(sql_ft) do - opts.formatters_by_ft[ft] = opts.formatters_by_ft[ft] or {} - table.insert(opts.formatters_by_ft[ft], "sqlfluff") - end - end, -} -``` - - - - - - diff --git a/docs/extras/lang/svelte.md b/docs/extras/lang/svelte.md deleted file mode 100644 index a9d491129f..0000000000 --- a/docs/extras/lang/svelte.md +++ /dev/null @@ -1,184 +0,0 @@ -# `Svelte` - - - -:::info -You can enable the extra with the `:LazyExtras` command. -Plugins marked as optional will only be configured if they are installed. -::: - -Below you can find a list of included plugins and their default settings. - -:::caution -You don't need to copy the default settings to your config. -They are only shown here for reference. -::: - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -### Includes the following extras - -- [lang.typescript](/extras/lang/typescript) - -## [nvim-treesitter](https://github.com/nvim-treesitter/nvim-treesitter) - - - - - -```lua -opts = { ensure_installed = { "svelte" } } -``` - - - - - - -```lua -{ - "nvim-treesitter/nvim-treesitter", - opts = { ensure_installed = { "svelte" } }, -} -``` - - - - - -## [nvim-lspconfig](https://github.com/neovim/nvim-lspconfig) - - LSP Servers - - - - - - -```lua -opts = { - servers = { - svelte = { - keys = { - { - "co", - LazyVim.lsp.action["source.organizeImports"], - desc = "Organize Imports", - }, - }, - }, - }, -} -``` - - - - - - -```lua -{ - "neovim/nvim-lspconfig", - opts = { - servers = { - svelte = { - keys = { - { - "co", - LazyVim.lsp.action["source.organizeImports"], - desc = "Organize Imports", - }, - }, - }, - }, - }, -} -``` - - - - - -## [nvim-lspconfig](https://github.com/neovim/nvim-lspconfig) - - Configure tsserver plugin - - - - - - -```lua -opts = function(_, opts) - LazyVim.extend(opts.servers.vtsls, "settings.vtsls.tsserver.globalPlugins", { - { - name = "typescript-svelte-plugin", - location = LazyVim.get_pkg_path("svelte-language-server", "/node_modules/typescript-svelte-plugin"), - enableForWorkspaceTypeScriptVersions = true, - }, - }) -end -``` - - - - - - -```lua -{ - "neovim/nvim-lspconfig", - opts = function(_, opts) - LazyVim.extend(opts.servers.vtsls, "settings.vtsls.tsserver.globalPlugins", { - { - name = "typescript-svelte-plugin", - location = LazyVim.get_pkg_path("svelte-language-server", "/node_modules/typescript-svelte-plugin"), - enableForWorkspaceTypeScriptVersions = true, - }, - }) - end, -} -``` - - - - - -## [conform.nvim](https://github.com/stevearc/conform.nvim) - - - - - -```lua -opts = function(_, opts) - if LazyVim.has_extra("formatting.prettier") then - opts.formatters_by_ft = opts.formatters_by_ft or {} - opts.formatters_by_ft.svelte = { "prettier" } - end -end -``` - - - - - - -```lua -{ - "conform.nvim", - opts = function(_, opts) - if LazyVim.has_extra("formatting.prettier") then - opts.formatters_by_ft = opts.formatters_by_ft or {} - opts.formatters_by_ft.svelte = { "prettier" } - end - end, -} -``` - - - - - - diff --git a/docs/extras/lang/tailwind.md b/docs/extras/lang/tailwind.md deleted file mode 100644 index c5217b7ecb..0000000000 --- a/docs/extras/lang/tailwind.md +++ /dev/null @@ -1,197 +0,0 @@ -# Tailwind CSS - - - -:::info -You can enable the extra with the `:LazyExtras` command. -Plugins marked as optional will only be configured if they are installed. -::: - -Below you can find a list of included plugins and their default settings. - -:::caution -You don't need to copy the default settings to your config. -They are only shown here for reference. -::: - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -## [nvim-lspconfig](https://github.com/neovim/nvim-lspconfig) - - - - - -```lua -opts = { - servers = { - tailwindcss = { - -- exclude a filetype from the default_config - filetypes_exclude = { "markdown" }, - -- add additional filetypes to the default_config - filetypes_include = {}, - -- to fully override the default_config, change the below - -- filetypes = {} - - -- additional settings for the server, e.g: - -- tailwindCSS = { includeLanguages = { someLang = "html" } } - -- can be addeded to the settings table and will be merged with - -- this defaults for Phoenix projects - settings = { - tailwindCSS = { - includeLanguages = { - elixir = "html-eex", - eelixir = "html-eex", - heex = "html-eex", - }, - }, - }, - }, - }, - setup = { - tailwindcss = function(_, opts) - opts.filetypes = opts.filetypes or {} - - -- Add default filetypes - vim.list_extend(opts.filetypes, vim.lsp.config.tailwindcss.filetypes) - - -- Remove excluded filetypes - --- @param ft string - opts.filetypes = vim.tbl_filter(function(ft) - return not vim.tbl_contains(opts.filetypes_exclude or {}, ft) - end, opts.filetypes) - - -- Add additional filetypes - vim.list_extend(opts.filetypes, opts.filetypes_include or {}) - end, - }, -} -``` - - - - - - -```lua -{ - "neovim/nvim-lspconfig", - opts = { - servers = { - tailwindcss = { - -- exclude a filetype from the default_config - filetypes_exclude = { "markdown" }, - -- add additional filetypes to the default_config - filetypes_include = {}, - -- to fully override the default_config, change the below - -- filetypes = {} - - -- additional settings for the server, e.g: - -- tailwindCSS = { includeLanguages = { someLang = "html" } } - -- can be addeded to the settings table and will be merged with - -- this defaults for Phoenix projects - settings = { - tailwindCSS = { - includeLanguages = { - elixir = "html-eex", - eelixir = "html-eex", - heex = "html-eex", - }, - }, - }, - }, - }, - setup = { - tailwindcss = function(_, opts) - opts.filetypes = opts.filetypes or {} - - -- Add default filetypes - vim.list_extend(opts.filetypes, vim.lsp.config.tailwindcss.filetypes) - - -- Remove excluded filetypes - --- @param ft string - opts.filetypes = vim.tbl_filter(function(ft) - return not vim.tbl_contains(opts.filetypes_exclude or {}, ft) - end, opts.filetypes) - - -- Add additional filetypes - vim.list_extend(opts.filetypes, opts.filetypes_include or {}) - end, - }, - }, -} -``` - - - - - -## [tailwindcss-colorizer-cmp.nvim](https://github.com/roobert/tailwindcss-colorizer-cmp.nvim) - - - - - -```lua -opts = {} -``` - - - - - - -```lua -{ "roobert/tailwindcss-colorizer-cmp.nvim", opts = {} } -``` - - - - - -## [nvim-cmp](https://github.com/hrsh7th/nvim-cmp) _(optional)_ - - - - - -```lua -opts = function(_, opts) - -- original LazyVim kind icon formatter - local format_kinds = opts.formatting.format - opts.formatting.format = function(entry, item) - format_kinds(entry, item) -- add icons - return require("tailwindcss-colorizer-cmp").formatter(entry, item) - end -end -``` - - - - - - -```lua -{ - "hrsh7th/nvim-cmp", - optional = true, - dependencies = { - { "roobert/tailwindcss-colorizer-cmp.nvim", opts = {} }, - }, - opts = function(_, opts) - -- original LazyVim kind icon formatter - local format_kinds = opts.formatting.format - opts.formatting.format = function(entry, item) - format_kinds(entry, item) -- add icons - return require("tailwindcss-colorizer-cmp").formatter(entry, item) - end - end, -} -``` - - - - - - diff --git a/docs/extras/lang/terraform.md b/docs/extras/lang/terraform.md deleted file mode 100644 index b7db716f7e..0000000000 --- a/docs/extras/lang/terraform.md +++ /dev/null @@ -1,336 +0,0 @@ -# Terraform - - - -:::info -You can enable the extra with the `:LazyExtras` command. -Plugins marked as optional will only be configured if they are installed. -::: - -Below you can find a list of included plugins and their default settings. - -:::caution -You don't need to copy the default settings to your config. -They are only shown here for reference. -::: - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -## [nvim-treesitter](https://github.com/nvim-treesitter/nvim-treesitter) - - - - - -```lua -opts = { ensure_installed = { "terraform", "hcl" } } -``` - - - - - - -```lua -{ - "nvim-treesitter/nvim-treesitter", - opts = { ensure_installed = { "terraform", "hcl" } }, -} -``` - - - - - -## [nvim-lspconfig](https://github.com/neovim/nvim-lspconfig) - - - - - -```lua -opts = { - servers = { - terraformls = {}, - }, -} -``` - - - - - - -```lua -{ - "neovim/nvim-lspconfig", - opts = { - servers = { - terraformls = {}, - }, - }, -} -``` - - - - - -## [mason.nvim](https://github.com/mason-org/mason.nvim) - - ensure terraform tools are installed - - - - - - -```lua -opts = { ensure_installed = { "tflint" } } -``` - - - - - - -```lua -{ - "mason-org/mason.nvim", - opts = { ensure_installed = { "tflint" } }, -} -``` - - - - - -## [telescope-terraform-doc.nvim](https://github.com/ANGkeith/telescope-terraform-doc.nvim) - - - - - -```lua -opts = {} -``` - - - - - - -```lua -{ - "ANGkeith/telescope-terraform-doc.nvim", - ft = { "terraform", "hcl" }, - config = function() - LazyVim.on_load("telescope.nvim", function() - require("telescope").load_extension("terraform_doc") - end) - end, -} -``` - - - - - -## [telescope-terraform.nvim](https://github.com/cappyzawa/telescope-terraform.nvim) - - - - - -```lua -opts = {} -``` - - - - - - -```lua -{ - "cappyzawa/telescope-terraform.nvim", - ft = { "terraform", "hcl" }, - config = function() - LazyVim.on_load("telescope.nvim", function() - require("telescope").load_extension("terraform") - end) - end, -} -``` - - - - - -## [none-ls.nvim](https://github.com/nvimtools/none-ls.nvim) _(optional)_ - - - - - -```lua -opts = function(_, opts) - local null_ls = require("null-ls") - opts.sources = vim.list_extend(opts.sources or {}, { - null_ls.builtins.formatting.packer, - null_ls.builtins.formatting.terraform_fmt, - null_ls.builtins.diagnostics.terraform_validate, - }) -end -``` - - - - - - -```lua -{ - "nvimtools/none-ls.nvim", - optional = true, - opts = function(_, opts) - local null_ls = require("null-ls") - opts.sources = vim.list_extend(opts.sources or {}, { - null_ls.builtins.formatting.packer, - null_ls.builtins.formatting.terraform_fmt, - null_ls.builtins.diagnostics.terraform_validate, - }) - end, -} -``` - - - - - -## [nvim-lint](https://github.com/mfussenegger/nvim-lint) _(optional)_ - - - - - -```lua -opts = { - linters_by_ft = { - terraform = { "terraform_validate" }, - tf = { "terraform_validate" }, - }, -} -``` - - - - - - -```lua -{ - "mfussenegger/nvim-lint", - optional = true, - opts = { - linters_by_ft = { - terraform = { "terraform_validate" }, - tf = { "terraform_validate" }, - }, - }, -} -``` - - - - - -## [conform.nvim](https://github.com/stevearc/conform.nvim) _(optional)_ - - - - - -```lua -opts = { - formatters_by_ft = { - hcl = { "packer_fmt" }, - terraform = { "terraform_fmt" }, - tf = { "terraform_fmt" }, - ["terraform-vars"] = { "terraform_fmt" }, - }, -} -``` - - - - - - -```lua -{ - "stevearc/conform.nvim", - optional = true, - opts = { - formatters_by_ft = { - hcl = { "packer_fmt" }, - terraform = { "terraform_fmt" }, - tf = { "terraform_fmt" }, - ["terraform-vars"] = { "terraform_fmt" }, - }, - }, -} -``` - - - - - -## [telescope.nvim](https://github.com/nvim-telescope/telescope.nvim) _(optional)_ - - - - - -```lua -opts = nil -``` - - - - - - -```lua -{ - "nvim-telescope/telescope.nvim", - optional = true, - specs = { - { - "ANGkeith/telescope-terraform-doc.nvim", - ft = { "terraform", "hcl" }, - config = function() - LazyVim.on_load("telescope.nvim", function() - require("telescope").load_extension("terraform_doc") - end) - end, - }, - { - "cappyzawa/telescope-terraform.nvim", - ft = { "terraform", "hcl" }, - config = function() - LazyVim.on_load("telescope.nvim", function() - require("telescope").load_extension("terraform") - end) - end, - }, - }, -} -``` - - - - - - diff --git a/docs/extras/lang/tex.md b/docs/extras/lang/tex.md deleted file mode 100644 index 76a406b459..0000000000 --- a/docs/extras/lang/tex.md +++ /dev/null @@ -1,148 +0,0 @@ -# Tex - - - -:::info -You can enable the extra with the `:LazyExtras` command. -Plugins marked as optional will only be configured if they are installed. -::: - -Below you can find a list of included plugins and their default settings. - -:::caution -You don't need to copy the default settings to your config. -They are only shown here for reference. -::: - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -## [nvim-treesitter](https://github.com/nvim-treesitter/nvim-treesitter) - - Add BibTeX/LaTeX to treesitter - - - - - - -```lua -opts = function(_, opts) - opts.highlight = opts.highlight or {} - if type(opts.ensure_installed) == "table" then - vim.list_extend(opts.ensure_installed, { "bibtex", "latex" }) - end - if type(opts.highlight.disable) == "table" then - vim.list_extend(opts.highlight.disable, { "latex" }) - else - opts.highlight.disable = { "latex" } - end -end -``` - - - - - - -```lua -{ - "nvim-treesitter/nvim-treesitter", - opts = function(_, opts) - opts.highlight = opts.highlight or {} - if type(opts.ensure_installed) == "table" then - vim.list_extend(opts.ensure_installed, { "bibtex", "latex" }) - end - if type(opts.highlight.disable) == "table" then - vim.list_extend(opts.highlight.disable, { "latex" }) - else - opts.highlight.disable = { "latex" } - end - end, -} -``` - - - - - -## [vimtex](https://github.com/lervag/vimtex) - - - - - -```lua -opts = {} -``` - - - - - - -```lua -{ - "lervag/vimtex", - lazy = false, -- lazy-loading will disable inverse search - config = function() - vim.g.vimtex_mappings_disable = { ["n"] = { "K" } } -- disable `K` as it conflicts with LSP hover - vim.g.vimtex_quickfix_method = vim.fn.executable("pplatex") == 1 and "pplatex" or "latexlog" - end, - keys = { - { "l", "", desc = "+vimtex", ft = "tex" }, - }, -} -``` - - - - - -## [nvim-lspconfig](https://github.com/neovim/nvim-lspconfig) _(optional)_ - - Correctly setup lspconfig for LaTeX 🚀 - - - - - - -```lua -opts = { - servers = { - texlab = { - keys = { - { "K", "(vimtex-doc-package)", desc = "Vimtex Docs", silent = true }, - }, - }, - }, -} -``` - - - - - - -```lua -{ - "neovim/nvim-lspconfig", - optional = true, - opts = { - servers = { - texlab = { - keys = { - { "K", "(vimtex-doc-package)", desc = "Vimtex Docs", silent = true }, - }, - }, - }, - }, -} -``` - - - - - - diff --git a/docs/extras/lang/thrift.md b/docs/extras/lang/thrift.md deleted file mode 100644 index c1a0b28fd0..0000000000 --- a/docs/extras/lang/thrift.md +++ /dev/null @@ -1,81 +0,0 @@ -# `Thrift` - - - -:::info -You can enable the extra with the `:LazyExtras` command. -Plugins marked as optional will only be configured if they are installed. -::: - -Below you can find a list of included plugins and their default settings. - -:::caution -You don't need to copy the default settings to your config. -They are only shown here for reference. -::: - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -## [nvim-treesitter](https://github.com/nvim-treesitter/nvim-treesitter) - - - - - -```lua -opts = { ensure_installed = { "thrift" } } -``` - - - - - - -```lua -{ - "nvim-treesitter", - opts = { ensure_installed = { "thrift" } }, -} -``` - - - - - -## [nvim-lspconfig](https://github.com/neovim/nvim-lspconfig) _(optional)_ - - - - - -```lua -opts = { - servers = { - thriftls = {}, - }, -} -``` - - - - - - -```lua -{ - "nvim-lspconfig", - optional = true, - opts = { - servers = { - thriftls = {}, - }, - }, -} -``` - - - - - - diff --git a/docs/extras/lang/toml.md b/docs/extras/lang/toml.md deleted file mode 100644 index 0d091c8d2a..0000000000 --- a/docs/extras/lang/toml.md +++ /dev/null @@ -1,43 +0,0 @@ -# `Toml` - - - -:::info -You can enable the extra with the `:LazyExtras` command. -Plugins marked as optional will only be configured if they are installed. -::: - -Below you can find a list of included plugins and their default settings. - -:::caution -You don't need to copy the default settings to your config. -They are only shown here for reference. -::: - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -## [nvim-lspconfig](https://github.com/neovim/nvim-lspconfig) - - - - - -```lua -opts = nil -``` - - - - - - -```lua -"neovim/nvim-lspconfig" -``` - - - - - - diff --git a/docs/extras/lang/twig.md b/docs/extras/lang/twig.md deleted file mode 100644 index 13f7bf05ad..0000000000 --- a/docs/extras/lang/twig.md +++ /dev/null @@ -1,227 +0,0 @@ -# `Twig` - - - -:::info -You can enable the extra with the `:LazyExtras` command. -Plugins marked as optional will only be configured if they are installed. -::: - -Below you can find a list of included plugins and their default settings. - -:::caution -You don't need to copy the default settings to your config. -They are only shown here for reference. -::: - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -## [nvim-treesitter](https://github.com/nvim-treesitter/nvim-treesitter) - - - - - -```lua -opts = { ensure_installed = { "twig" } } -``` - - - - - - -```lua -{ - "nvim-treesitter/nvim-treesitter", - opts = { ensure_installed = { "twig" } }, -} -``` - - - - - -## [mason.nvim](https://github.com/mason-org/mason.nvim) - - - - - -```lua -opts = { - ensure_installed = { - "twigcs", - "twig-cs-fixer", - }, -} -``` - - - - - - -```lua -{ - "mason-org/mason.nvim", - opts = { - ensure_installed = { - "twigcs", - "twig-cs-fixer", - }, - }, -} -``` - - - - - -## [nvim-lspconfig](https://github.com/neovim/nvim-lspconfig) - - - - - -```lua -opts = { - servers = { - twiggy_language_server = { - enabled = true, - }, - }, -} -``` - - - - - - -```lua -{ - "neovim/nvim-lspconfig", - opts = { - servers = { - twiggy_language_server = { - enabled = true, - }, - }, - }, -} -``` - - - - - -## [none-ls.nvim](https://github.com/nvimtools/none-ls.nvim) _(optional)_ - - - - - -```lua -opts = function(_, opts) - local nls = require("null-ls") - opts.sources = opts.sources or {} - table.insert(opts.sources, nls.builtins.diagnostics.twigcs) - -- Twig-CS-Fixer builtin not available in none-ls -end -``` - - - - - - -```lua -{ - "nvimtools/none-ls.nvim", - optional = true, - opts = function(_, opts) - local nls = require("null-ls") - opts.sources = opts.sources or {} - table.insert(opts.sources, nls.builtins.diagnostics.twigcs) - -- Twig-CS-Fixer builtin not available in none-ls - end, -} -``` - - - - - -## [nvim-lint](https://github.com/mfussenegger/nvim-lint) _(optional)_ - - - - - -```lua -opts = { - linters_by_ft = { - twig = { "twigcs" }, - }, -} -``` - - - - - - -```lua -{ - "mfussenegger/nvim-lint", - optional = true, - opts = { - linters_by_ft = { - twig = { "twigcs" }, - }, - }, -} -``` - - - - - -## [conform.nvim](https://github.com/stevearc/conform.nvim) _(optional)_ - - - - - -```lua -opts = { - formatters_by_ft = { - twig = { "twig-cs-fixer" }, - }, -} -``` - - - - - - -```lua -{ - "stevearc/conform.nvim", - optional = true, - opts = { - formatters_by_ft = { - twig = { "twig-cs-fixer" }, - }, - }, -} -``` - - - - - - diff --git a/docs/extras/lang/typescript.md b/docs/extras/lang/typescript.md deleted file mode 100644 index 4cb656c1dd..0000000000 --- a/docs/extras/lang/typescript.md +++ /dev/null @@ -1,757 +0,0 @@ -# Typescript - - - -:::info -You can enable the extra with the `:LazyExtras` command. -Plugins marked as optional will only be configured if they are installed. -::: - -Below you can find a list of included plugins and their default settings. - -:::caution -You don't need to copy the default settings to your config. -They are only shown here for reference. -::: - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -## [nvim-lspconfig](https://github.com/neovim/nvim-lspconfig) - - correctly setup lspconfig - - - - - - -```lua -opts = { - -- make sure mason installs the server - servers = { - --- @deprecated -- tsserver renamed to ts_ls but not yet released, so keep this for now - --- the proper approach is to check the nvim-lspconfig release version when it's released to determine the server name dynamically - tsserver = { - enabled = false, - }, - ts_ls = { - enabled = false, - }, - vtsls = { - -- explicitly add default filetypes, so that we can extend - -- them in related extras - filetypes = { - "javascript", - "javascriptreact", - "javascript.jsx", - "typescript", - "typescriptreact", - "typescript.tsx", - }, - settings = { - complete_function_calls = true, - vtsls = { - enableMoveToFileCodeAction = true, - autoUseWorkspaceTsdk = true, - experimental = { - maxInlayHintLength = 30, - completion = { - enableServerSideFuzzyMatch = true, - }, - }, - }, - typescript = { - updateImportsOnFileMove = { enabled = "always" }, - suggest = { - completeFunctionCalls = true, - }, - inlayHints = { - enumMemberValues = { enabled = true }, - functionLikeReturnTypes = { enabled = true }, - parameterNames = { enabled = "literals" }, - parameterTypes = { enabled = true }, - propertyDeclarationTypes = { enabled = true }, - variableTypes = { enabled = false }, - }, - }, - }, - keys = { - { - "gD", - function() - local win = vim.api.nvim_get_current_win() - local params = vim.lsp.util.make_position_params(win, "utf-16") - LazyVim.lsp.execute({ - command = "typescript.goToSourceDefinition", - arguments = { params.textDocument.uri, params.position }, - open = true, - }) - end, - desc = "Goto Source Definition", - }, - { - "gR", - function() - LazyVim.lsp.execute({ - command = "typescript.findAllFileReferences", - arguments = { vim.uri_from_bufnr(0) }, - open = true, - }) - end, - desc = "File References", - }, - { - "co", - LazyVim.lsp.action["source.organizeImports"], - desc = "Organize Imports", - }, - { - "cM", - LazyVim.lsp.action["source.addMissingImports.ts"], - desc = "Add missing imports", - }, - { - "cu", - LazyVim.lsp.action["source.removeUnused.ts"], - desc = "Remove unused imports", - }, - { - "cD", - LazyVim.lsp.action["source.fixAll.ts"], - desc = "Fix all diagnostics", - }, - { - "cV", - function() - LazyVim.lsp.execute({ command = "typescript.selectTypeScriptVersion" }) - end, - desc = "Select TS workspace version", - }, - }, - }, - }, - setup = { - --- @deprecated -- tsserver renamed to ts_ls but not yet released, so keep this for now - --- the proper approach is to check the nvim-lspconfig release version when it's released to determine the server name dynamically - tsserver = function() - -- disable tsserver - return true - end, - ts_ls = function() - -- disable tsserver - return true - end, - vtsls = function(_, opts) - if vim.lsp.config.denols and vim.lsp.config.vtsls then - ---@param server string - local resolve = function(server) - local markers, root_dir = vim.lsp.config[server].root_markers, vim.lsp.config[server].root_dir - vim.lsp.config(server, { - root_dir = function(bufnr, on_dir) - local is_deno = vim.fs.root(bufnr, { "deno.json", "deno.jsonc" }) ~= nil - if is_deno == (server == "denols") then - if root_dir then - return root_dir(bufnr, on_dir) - elseif type(markers) == "table" then - local root = vim.fs.root(bufnr, markers) - return root and on_dir(root) - end - end - end, - }) - end - resolve("denols") - resolve("vtsls") - end - - LazyVim.lsp.on_attach(function(client, buffer) - client.commands["_typescript.moveToFileRefactoring"] = function(command, ctx) - ---@type string, string, lsp.Range - local action, uri, range = unpack(command.arguments) - - local function move(newf) - client:request("workspace/executeCommand", { - command = command.command, - arguments = { action, uri, range, newf }, - }) - end - - local fname = vim.uri_to_fname(uri) - client:request("workspace/executeCommand", { - command = "typescript.tsserverRequest", - arguments = { - "getMoveToRefactoringFileSuggestions", - { - file = fname, - startLine = range.start.line + 1, - startOffset = range.start.character + 1, - endLine = range["end"].line + 1, - endOffset = range["end"].character + 1, - }, - }, - }, function(_, result) - ---@type string[] - local files = result.body.files - table.insert(files, 1, "Enter new path...") - vim.ui.select(files, { - prompt = "Select move destination:", - format_item = function(f) - return vim.fn.fnamemodify(f, ":~:.") - end, - }, function(f) - if f and f:find("^Enter new path") then - vim.ui.input({ - prompt = "Enter move destination:", - default = vim.fn.fnamemodify(fname, ":h") .. "/", - completion = "file", - }, function(newf) - return newf and move(newf) - end) - elseif f then - move(f) - end - end) - end) - end - end, "vtsls") - -- copy typescript settings to javascript - opts.settings.javascript = - vim.tbl_deep_extend("force", {}, opts.settings.typescript, opts.settings.javascript or {}) - end, - }, -} -``` - - - - - - -```lua -{ - "neovim/nvim-lspconfig", - opts = { - -- make sure mason installs the server - servers = { - --- @deprecated -- tsserver renamed to ts_ls but not yet released, so keep this for now - --- the proper approach is to check the nvim-lspconfig release version when it's released to determine the server name dynamically - tsserver = { - enabled = false, - }, - ts_ls = { - enabled = false, - }, - vtsls = { - -- explicitly add default filetypes, so that we can extend - -- them in related extras - filetypes = { - "javascript", - "javascriptreact", - "javascript.jsx", - "typescript", - "typescriptreact", - "typescript.tsx", - }, - settings = { - complete_function_calls = true, - vtsls = { - enableMoveToFileCodeAction = true, - autoUseWorkspaceTsdk = true, - experimental = { - maxInlayHintLength = 30, - completion = { - enableServerSideFuzzyMatch = true, - }, - }, - }, - typescript = { - updateImportsOnFileMove = { enabled = "always" }, - suggest = { - completeFunctionCalls = true, - }, - inlayHints = { - enumMemberValues = { enabled = true }, - functionLikeReturnTypes = { enabled = true }, - parameterNames = { enabled = "literals" }, - parameterTypes = { enabled = true }, - propertyDeclarationTypes = { enabled = true }, - variableTypes = { enabled = false }, - }, - }, - }, - keys = { - { - "gD", - function() - local win = vim.api.nvim_get_current_win() - local params = vim.lsp.util.make_position_params(win, "utf-16") - LazyVim.lsp.execute({ - command = "typescript.goToSourceDefinition", - arguments = { params.textDocument.uri, params.position }, - open = true, - }) - end, - desc = "Goto Source Definition", - }, - { - "gR", - function() - LazyVim.lsp.execute({ - command = "typescript.findAllFileReferences", - arguments = { vim.uri_from_bufnr(0) }, - open = true, - }) - end, - desc = "File References", - }, - { - "co", - LazyVim.lsp.action["source.organizeImports"], - desc = "Organize Imports", - }, - { - "cM", - LazyVim.lsp.action["source.addMissingImports.ts"], - desc = "Add missing imports", - }, - { - "cu", - LazyVim.lsp.action["source.removeUnused.ts"], - desc = "Remove unused imports", - }, - { - "cD", - LazyVim.lsp.action["source.fixAll.ts"], - desc = "Fix all diagnostics", - }, - { - "cV", - function() - LazyVim.lsp.execute({ command = "typescript.selectTypeScriptVersion" }) - end, - desc = "Select TS workspace version", - }, - }, - }, - }, - setup = { - --- @deprecated -- tsserver renamed to ts_ls but not yet released, so keep this for now - --- the proper approach is to check the nvim-lspconfig release version when it's released to determine the server name dynamically - tsserver = function() - -- disable tsserver - return true - end, - ts_ls = function() - -- disable tsserver - return true - end, - vtsls = function(_, opts) - if vim.lsp.config.denols and vim.lsp.config.vtsls then - ---@param server string - local resolve = function(server) - local markers, root_dir = vim.lsp.config[server].root_markers, vim.lsp.config[server].root_dir - vim.lsp.config(server, { - root_dir = function(bufnr, on_dir) - local is_deno = vim.fs.root(bufnr, { "deno.json", "deno.jsonc" }) ~= nil - if is_deno == (server == "denols") then - if root_dir then - return root_dir(bufnr, on_dir) - elseif type(markers) == "table" then - local root = vim.fs.root(bufnr, markers) - return root and on_dir(root) - end - end - end, - }) - end - resolve("denols") - resolve("vtsls") - end - - LazyVim.lsp.on_attach(function(client, buffer) - client.commands["_typescript.moveToFileRefactoring"] = function(command, ctx) - ---@type string, string, lsp.Range - local action, uri, range = unpack(command.arguments) - - local function move(newf) - client:request("workspace/executeCommand", { - command = command.command, - arguments = { action, uri, range, newf }, - }) - end - - local fname = vim.uri_to_fname(uri) - client:request("workspace/executeCommand", { - command = "typescript.tsserverRequest", - arguments = { - "getMoveToRefactoringFileSuggestions", - { - file = fname, - startLine = range.start.line + 1, - startOffset = range.start.character + 1, - endLine = range["end"].line + 1, - endOffset = range["end"].character + 1, - }, - }, - }, function(_, result) - ---@type string[] - local files = result.body.files - table.insert(files, 1, "Enter new path...") - vim.ui.select(files, { - prompt = "Select move destination:", - format_item = function(f) - return vim.fn.fnamemodify(f, ":~:.") - end, - }, function(f) - if f and f:find("^Enter new path") then - vim.ui.input({ - prompt = "Enter move destination:", - default = vim.fn.fnamemodify(fname, ":h") .. "/", - completion = "file", - }, function(newf) - return newf and move(newf) - end) - elseif f then - move(f) - end - end) - end) - end - end, "vtsls") - -- copy typescript settings to javascript - opts.settings.javascript = - vim.tbl_deep_extend("force", {}, opts.settings.typescript, opts.settings.javascript or {}) - end, - }, - }, -} -``` - - - - - -## [mason.nvim](https://github.com/mason-org/mason.nvim) - - - - - -```lua -opts = function(_, opts) - opts.ensure_installed = opts.ensure_installed or {} - table.insert(opts.ensure_installed, "js-debug-adapter") -end -``` - - - - - - -```lua -{ - "mason-org/mason.nvim", - opts = function(_, opts) - opts.ensure_installed = opts.ensure_installed or {} - table.insert(opts.ensure_installed, "js-debug-adapter") - end, -} -``` - - - - - -## [mini.icons](https://github.com/nvim-mini/mini.icons) - - Filetype icons - - - - - - -```lua -opts = { - file = { - [".eslintrc.js"] = { glyph = "󰱺", hl = "MiniIconsYellow" }, - [".node-version"] = { glyph = "", hl = "MiniIconsGreen" }, - [".prettierrc"] = { glyph = "", hl = "MiniIconsPurple" }, - [".yarnrc.yml"] = { glyph = "", hl = "MiniIconsBlue" }, - ["eslint.config.js"] = { glyph = "󰱺", hl = "MiniIconsYellow" }, - ["package.json"] = { glyph = "", hl = "MiniIconsGreen" }, - ["tsconfig.json"] = { glyph = "", hl = "MiniIconsAzure" }, - ["tsconfig.build.json"] = { glyph = "", hl = "MiniIconsAzure" }, - ["yarn.lock"] = { glyph = "", hl = "MiniIconsBlue" }, - }, -} -``` - - - - - - -```lua -{ - "nvim-mini/mini.icons", - opts = { - file = { - [".eslintrc.js"] = { glyph = "󰱺", hl = "MiniIconsYellow" }, - [".node-version"] = { glyph = "", hl = "MiniIconsGreen" }, - [".prettierrc"] = { glyph = "", hl = "MiniIconsPurple" }, - [".yarnrc.yml"] = { glyph = "", hl = "MiniIconsBlue" }, - ["eslint.config.js"] = { glyph = "󰱺", hl = "MiniIconsYellow" }, - ["package.json"] = { glyph = "", hl = "MiniIconsGreen" }, - ["tsconfig.json"] = { glyph = "", hl = "MiniIconsAzure" }, - ["tsconfig.build.json"] = { glyph = "", hl = "MiniIconsAzure" }, - ["yarn.lock"] = { glyph = "", hl = "MiniIconsBlue" }, - }, - }, -} -``` - - - - - -## [nvim-dap](https://github.com/mfussenegger/nvim-dap) _(optional)_ - - - - - -```lua -opts = function() - local dap = require("dap") - - for _, adapterType in ipairs({ "node", "chrome", "msedge" }) do - local pwaType = "pwa-" .. adapterType - - if not dap.adapters[pwaType] then - dap.adapters[pwaType] = { - type = "server", - host = "localhost", - port = "${port}", - executable = { - command = "js-debug-adapter", - args = { "${port}" }, - }, - } - end - - -- Define adapters without the "pwa-" prefix for VSCode compatibility - if not dap.adapters[adapterType] then - dap.adapters[adapterType] = function(cb, config) - local nativeAdapter = dap.adapters[pwaType] - - config.type = pwaType - - if type(nativeAdapter) == "function" then - nativeAdapter(cb, config) - else - cb(nativeAdapter) - end - end - end - end - - local js_filetypes = { "typescript", "javascript", "typescriptreact", "javascriptreact" } - - local vscode = require("dap.ext.vscode") - vscode.type_to_filetypes["node"] = js_filetypes - vscode.type_to_filetypes["pwa-node"] = js_filetypes - - for _, language in ipairs(js_filetypes) do - if not dap.configurations[language] then - local runtimeExecutable = nil - if language:find("typescript") then - runtimeExecutable = vim.fn.executable("tsx") == 1 and "tsx" or "ts-node" - end - dap.configurations[language] = { - { - type = "pwa-node", - request = "launch", - name = "Launch file", - program = "${file}", - cwd = "${workspaceFolder}", - sourceMaps = true, - runtimeExecutable = runtimeExecutable, - skipFiles = { - "/**", - "node_modules/**", - }, - resolveSourceMapLocations = { - "${workspaceFolder}/**", - "!**/node_modules/**", - }, - }, - { - type = "pwa-node", - request = "attach", - name = "Attach", - processId = require("dap.utils").pick_process, - cwd = "${workspaceFolder}", - sourceMaps = true, - runtimeExecutable = runtimeExecutable, - skipFiles = { - "/**", - "node_modules/**", - }, - resolveSourceMapLocations = { - "${workspaceFolder}/**", - "!**/node_modules/**", - }, - }, - } - end - end -end -``` - - - - - - -```lua -{ - "mfussenegger/nvim-dap", - optional = true, - dependencies = { - { - "mason-org/mason.nvim", - opts = function(_, opts) - opts.ensure_installed = opts.ensure_installed or {} - table.insert(opts.ensure_installed, "js-debug-adapter") - end, - }, - }, - opts = function() - local dap = require("dap") - - for _, adapterType in ipairs({ "node", "chrome", "msedge" }) do - local pwaType = "pwa-" .. adapterType - - if not dap.adapters[pwaType] then - dap.adapters[pwaType] = { - type = "server", - host = "localhost", - port = "${port}", - executable = { - command = "js-debug-adapter", - args = { "${port}" }, - }, - } - end - - -- Define adapters without the "pwa-" prefix for VSCode compatibility - if not dap.adapters[adapterType] then - dap.adapters[adapterType] = function(cb, config) - local nativeAdapter = dap.adapters[pwaType] - - config.type = pwaType - - if type(nativeAdapter) == "function" then - nativeAdapter(cb, config) - else - cb(nativeAdapter) - end - end - end - end - - local js_filetypes = { "typescript", "javascript", "typescriptreact", "javascriptreact" } - - local vscode = require("dap.ext.vscode") - vscode.type_to_filetypes["node"] = js_filetypes - vscode.type_to_filetypes["pwa-node"] = js_filetypes - - for _, language in ipairs(js_filetypes) do - if not dap.configurations[language] then - local runtimeExecutable = nil - if language:find("typescript") then - runtimeExecutable = vim.fn.executable("tsx") == 1 and "tsx" or "ts-node" - end - dap.configurations[language] = { - { - type = "pwa-node", - request = "launch", - name = "Launch file", - program = "${file}", - cwd = "${workspaceFolder}", - sourceMaps = true, - runtimeExecutable = runtimeExecutable, - skipFiles = { - "/**", - "node_modules/**", - }, - resolveSourceMapLocations = { - "${workspaceFolder}/**", - "!**/node_modules/**", - }, - }, - { - type = "pwa-node", - request = "attach", - name = "Attach", - processId = require("dap.utils").pick_process, - cwd = "${workspaceFolder}", - sourceMaps = true, - runtimeExecutable = runtimeExecutable, - skipFiles = { - "/**", - "node_modules/**", - }, - resolveSourceMapLocations = { - "${workspaceFolder}/**", - "!**/node_modules/**", - }, - }, - } - end - end - end, -} -``` - - - - - -## [mason-nvim-dap.nvim](https://github.com/jay-babu/mason-nvim-dap.nvim) _(optional)_ - - - - - -```lua -opts = { - -- chrome adapter is deprecated, use js-debug-adapter instead - automatic_installation = { exclude = { "chrome" } }, -} -``` - - - - - - -```lua -{ - "jay-babu/mason-nvim-dap.nvim", - optional = true, - opts = { - -- chrome adapter is deprecated, use js-debug-adapter instead - automatic_installation = { exclude = { "chrome" } }, - }, -} -``` - - - - - - diff --git a/docs/extras/lang/typst.md b/docs/extras/lang/typst.md deleted file mode 100644 index a0e8e54b0b..0000000000 --- a/docs/extras/lang/typst.md +++ /dev/null @@ -1,236 +0,0 @@ -# `Typst` - - - -:::info -You can enable the extra with the `:LazyExtras` command. -Plugins marked as optional will only be configured if they are installed. -::: - -Below you can find a list of included plugins and their default settings. - -:::caution -You don't need to copy the default settings to your config. -They are only shown here for reference. -::: - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -## [nvim-treesitter](https://github.com/nvim-treesitter/nvim-treesitter) - - - - - -```lua -opts = { - ensure_installed = { "typst" }, -} -``` - - - - - - -```lua -{ - "nvim-treesitter/nvim-treesitter", - opts = { - ensure_installed = { "typst" }, - }, -} -``` - - - - - -## [nvim-lspconfig](https://github.com/neovim/nvim-lspconfig) - - - - - -```lua -opts = { - servers = { - tinymist = { - keys = { - { - "cP", - function() - local buf_name = vim.api.nvim_buf_get_name(0) - local file_name = vim.fn.fnamemodify(buf_name, ":t") - LazyVim.lsp.execute({ - command = "tinymist.pinMain", - arguments = { buf_name }, - }) - LazyVim.info("Tinymist: Pinned " .. file_name) - end, - desc = "Pin main file", - }, - }, - single_file_support = true, -- Fixes LSP attachment in non-Git directories - settings = { - formatterMode = "typstyle", - }, - }, - }, -} -``` - - - - - - -```lua -{ - "neovim/nvim-lspconfig", - opts = { - servers = { - tinymist = { - keys = { - { - "cP", - function() - local buf_name = vim.api.nvim_buf_get_name(0) - local file_name = vim.fn.fnamemodify(buf_name, ":t") - LazyVim.lsp.execute({ - command = "tinymist.pinMain", - arguments = { buf_name }, - }) - LazyVim.info("Tinymist: Pinned " .. file_name) - end, - desc = "Pin main file", - }, - }, - single_file_support = true, -- Fixes LSP attachment in non-Git directories - settings = { - formatterMode = "typstyle", - }, - }, - }, - }, -} -``` - - - - - -## [typst-preview.nvim](https://github.com/chomosuke/typst-preview.nvim) - - - - - -```lua -opts = { - dependencies_bin = { - tinymist = "tinymist", - }, -} -``` - - - - - - -```lua -{ - "chomosuke/typst-preview.nvim", - cmd = { "TypstPreview", "TypstPreviewToggle", "TypstPreviewUpdate" }, - keys = { - { - "cp", - ft = "typst", - "TypstPreviewToggle", - desc = "Toggle Typst Preview", - }, - }, - opts = { - dependencies_bin = { - tinymist = "tinymist", - }, - }, -} -``` - - - - - -## [ts-comments.nvim](https://github.com/folke/ts-comments.nvim) - - - - - -```lua -opts = { - lang = { - typst = { "// %s", "/* %s */" }, - }, -} -``` - - - - - - -```lua -{ - "folke/ts-comments.nvim", - opts = { - lang = { - typst = { "// %s", "/* %s */" }, - }, - }, -} -``` - - - - - -## [conform.nvim](https://github.com/stevearc/conform.nvim) _(optional)_ - - - - - -```lua -opts = { - formatters_by_ft = { - typst = { "typstyle", lsp_format = "prefer" }, - }, -} -``` - - - - - - -```lua -{ - "stevearc/conform.nvim", - optional = true, - opts = { - formatters_by_ft = { - typst = { "typstyle", lsp_format = "prefer" }, - }, - }, -} -``` - - - - - - diff --git a/docs/extras/lang/vue.md b/docs/extras/lang/vue.md deleted file mode 100644 index 1ffe66ff65..0000000000 --- a/docs/extras/lang/vue.md +++ /dev/null @@ -1,140 +0,0 @@ -# `Vue` - - - -:::info -You can enable the extra with the `:LazyExtras` command. -Plugins marked as optional will only be configured if they are installed. -::: - -Below you can find a list of included plugins and their default settings. - -:::caution -You don't need to copy the default settings to your config. -They are only shown here for reference. -::: - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -### Includes the following extras - -- [lang.typescript](/extras/lang/typescript) - -## [nvim-treesitter](https://github.com/nvim-treesitter/nvim-treesitter) - - - - - -```lua -opts = { ensure_installed = { "vue", "css" } } -``` - - - - - - -```lua -{ - "nvim-treesitter/nvim-treesitter", - opts = { ensure_installed = { "vue", "css" } }, -} -``` - - - - - -## [nvim-lspconfig](https://github.com/neovim/nvim-lspconfig) - - Add LSP servers - - - - - - -```lua -opts = { - servers = { - vue_ls = {}, - vtsls = {}, - }, -} -``` - - - - - - -```lua -{ - "neovim/nvim-lspconfig", - opts = { - servers = { - vue_ls = {}, - vtsls = {}, - }, - }, -} -``` - - - - - -## [nvim-lspconfig](https://github.com/neovim/nvim-lspconfig) - - Configure tsserver plugin - - - - - - -```lua -opts = function(_, opts) - table.insert(opts.servers.vtsls.filetypes, "vue") - LazyVim.extend(opts.servers.vtsls, "settings.vtsls.tsserver.globalPlugins", { - { - name = "@vue/typescript-plugin", - location = LazyVim.get_pkg_path("vue-language-server", "/node_modules/@vue/language-server"), - languages = { "vue" }, - configNamespace = "typescript", - enableForWorkspaceTypeScriptVersions = true, - }, - }) -end -``` - - - - - - -```lua -{ - "neovim/nvim-lspconfig", - opts = function(_, opts) - table.insert(opts.servers.vtsls.filetypes, "vue") - LazyVim.extend(opts.servers.vtsls, "settings.vtsls.tsserver.globalPlugins", { - { - name = "@vue/typescript-plugin", - location = LazyVim.get_pkg_path("vue-language-server", "/node_modules/@vue/language-server"), - languages = { "vue" }, - configNamespace = "typescript", - enableForWorkspaceTypeScriptVersions = true, - }, - }) - end, -} -``` - - - - - - diff --git a/docs/extras/lang/yaml.md b/docs/extras/lang/yaml.md deleted file mode 100644 index 042ee19fb0..0000000000 --- a/docs/extras/lang/yaml.md +++ /dev/null @@ -1,159 +0,0 @@ -# YAML - - - -:::info -You can enable the extra with the `:LazyExtras` command. -Plugins marked as optional will only be configured if they are installed. -::: - -Below you can find a list of included plugins and their default settings. - -:::caution -You don't need to copy the default settings to your config. -They are only shown here for reference. -::: - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -## [SchemaStore.nvim](https://github.com/b0o/SchemaStore.nvim) - - yaml schema support - - - - - - -```lua -opts = nil -``` - - - - - - -```lua -{ - "b0o/SchemaStore.nvim", - lazy = true, - version = false, -- last release is way too old -} -``` - - - - - -## [nvim-lspconfig](https://github.com/neovim/nvim-lspconfig) - - correctly setup lspconfig - - - - - - -```lua -opts = { - -- make sure mason installs the server - servers = { - yamlls = { - -- Have to add this for yamlls to understand that we support line folding - capabilities = { - textDocument = { - foldingRange = { - dynamicRegistration = false, - lineFoldingOnly = true, - }, - }, - }, - -- lazy-load schemastore when needed - before_init = function(_, new_config) - new_config.settings.yaml.schemas = vim.tbl_deep_extend( - "force", - new_config.settings.yaml.schemas or {}, - require("schemastore").yaml.schemas() - ) - end, - settings = { - redhat = { telemetry = { enabled = false } }, - yaml = { - keyOrdering = false, - format = { - enable = true, - }, - validate = true, - schemaStore = { - -- Must disable built-in schemaStore support to use - -- schemas from SchemaStore.nvim plugin - enable = false, - -- Avoid TypeError: Cannot read properties of undefined (reading 'length') - url = "", - }, - }, - }, - }, - }, -} -``` - - - - - - -```lua -{ - "neovim/nvim-lspconfig", - opts = { - -- make sure mason installs the server - servers = { - yamlls = { - -- Have to add this for yamlls to understand that we support line folding - capabilities = { - textDocument = { - foldingRange = { - dynamicRegistration = false, - lineFoldingOnly = true, - }, - }, - }, - -- lazy-load schemastore when needed - before_init = function(_, new_config) - new_config.settings.yaml.schemas = vim.tbl_deep_extend( - "force", - new_config.settings.yaml.schemas or {}, - require("schemastore").yaml.schemas() - ) - end, - settings = { - redhat = { telemetry = { enabled = false } }, - yaml = { - keyOrdering = false, - format = { - enable = true, - }, - validate = true, - schemaStore = { - -- Must disable built-in schemaStore support to use - -- schemas from SchemaStore.nvim plugin - enable = false, - -- Avoid TypeError: Cannot read properties of undefined (reading 'length') - url = "", - }, - }, - }, - }, - }, - }, -} -``` - - - - - - diff --git a/docs/extras/lang/zig.md b/docs/extras/lang/zig.md deleted file mode 100644 index ce82de8539..0000000000 --- a/docs/extras/lang/zig.md +++ /dev/null @@ -1,143 +0,0 @@ -# `Zig` - - - -:::info -You can enable the extra with the `:LazyExtras` command. -Plugins marked as optional will only be configured if they are installed. -::: - -Below you can find a list of included plugins and their default settings. - -:::caution -You don't need to copy the default settings to your config. -They are only shown here for reference. -::: - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -## [nvim-treesitter](https://github.com/nvim-treesitter/nvim-treesitter) - - - - - -```lua -opts = { ensure_installed = { "zig" } } -``` - - - - - - -```lua -{ - "nvim-treesitter/nvim-treesitter", - opts = { ensure_installed = { "zig" } }, -} -``` - - - - - -## [nvim-lspconfig](https://github.com/neovim/nvim-lspconfig) - - - - - -```lua -opts = { - servers = { - zls = {}, - }, -} -``` - - - - - - -```lua -{ - "neovim/nvim-lspconfig", - opts = { - servers = { - zls = {}, - }, - }, -} -``` - - - - - -## [neotest-zig](https://github.com/lawrence-laz/neotest-zig) - - - - - -```lua -opts = nil -``` - - - - - - -```lua -{ - "lawrence-laz/neotest-zig", -} -``` - - - - - -## [neotest](https://github.com/nvim-neotest/neotest) _(optional)_ - - - - - -```lua -opts = { - adapters = { - ["neotest-zig"] = {}, - }, -} -``` - - - - - - -```lua -{ - "nvim-neotest/neotest", - optional = true, - dependencies = { - "lawrence-laz/neotest-zig", - }, - opts = { - adapters = { - ["neotest-zig"] = {}, - }, - }, -} -``` - - - - - - diff --git a/docs/extras/linting/eslint.md b/docs/extras/linting/eslint.md deleted file mode 100644 index 62a997c722..0000000000 --- a/docs/extras/linting/eslint.md +++ /dev/null @@ -1,112 +0,0 @@ -# Eslint - - - -:::info -You can enable the extra with the `:LazyExtras` command. -Plugins marked as optional will only be configured if they are installed. -::: - -### Options - -Additional options for this extra can be configured in your [lua/config/options.lua](/configuration/general#options) file: - -```lua title="lua/config/options.lua" --- Set to false to disable auto format -vim.g.lazyvim_eslint_auto_format = true -``` - -Below you can find a list of included plugins and their default settings. - -:::caution -You don't need to copy the default settings to your config. -They are only shown here for reference. -::: - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -## [nvim-lspconfig](https://github.com/neovim/nvim-lspconfig) - - - - - -```lua -opts = { - ---@type table - servers = { - eslint = { - settings = { - -- helps eslint find the eslintrc when it's placed in a subfolder instead of the cwd root - workingDirectories = { mode = "auto" }, - format = auto_format, - }, - }, - }, - setup = { - eslint = function() - if not auto_format then - return - end - - local formatter = LazyVim.lsp.formatter({ - name = "eslint: lsp", - primary = false, - priority = 200, - filter = "eslint", - }) - - -- register the formatter with LazyVim - LazyVim.format.register(formatter) - end, - }, -} -``` - - - - - - -```lua -{ - "neovim/nvim-lspconfig", - -- other settings removed for brevity - opts = { - ---@type table - servers = { - eslint = { - settings = { - -- helps eslint find the eslintrc when it's placed in a subfolder instead of the cwd root - workingDirectories = { mode = "auto" }, - format = auto_format, - }, - }, - }, - setup = { - eslint = function() - if not auto_format then - return - end - - local formatter = LazyVim.lsp.formatter({ - name = "eslint: lsp", - primary = false, - priority = 200, - filter = "eslint", - }) - - -- register the formatter with LazyVim - LazyVim.format.register(formatter) - end, - }, - }, -} -``` - - - - - - diff --git a/docs/extras/lsp/neoconf.md b/docs/extras/lsp/neoconf.md deleted file mode 100644 index a560647b37..0000000000 --- a/docs/extras/lsp/neoconf.md +++ /dev/null @@ -1,79 +0,0 @@ -# `Neoconf` - - - -:::info -You can enable the extra with the `:LazyExtras` command. -Plugins marked as optional will only be configured if they are installed. -::: - -Below you can find a list of included plugins and their default settings. - -:::caution -You don't need to copy the default settings to your config. -They are only shown here for reference. -::: - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -## [nvim-lspconfig](https://github.com/neovim/nvim-lspconfig) - - - - - -```lua -opts = nil -``` - - - - - - -```lua -{ - "neovim/nvim-lspconfig", - dependencies = { - { - "folke/neoconf.nvim", - cmd = "Neoconf", - opts = {}, - }, - }, -} -``` - - - - - -## [neoconf.nvim](https://github.com/folke/neoconf.nvim) - - - - - -```lua -opts = {} -``` - - - - - - -```lua -{ - "folke/neoconf.nvim", - cmd = "Neoconf", - opts = {}, -} -``` - - - - - - diff --git a/docs/extras/lsp/none-ls.md b/docs/extras/lsp/none-ls.md deleted file mode 100644 index ddb5f4f81c..0000000000 --- a/docs/extras/lsp/none-ls.md +++ /dev/null @@ -1,118 +0,0 @@ -# none-ls - - - -:::info -You can enable the extra with the `:LazyExtras` command. -Plugins marked as optional will only be configured if they are installed. -::: - -Below you can find a list of included plugins and their default settings. - -:::caution -You don't need to copy the default settings to your config. -They are only shown here for reference. -::: - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -## [none-ls.nvim](https://github.com/nvimtools/none-ls.nvim) - - none-ls - - - - - - -```lua -opts = function(_, opts) - local nls = require("null-ls") - opts.root_dir = opts.root_dir - or require("null-ls.utils").root_pattern(".null-ls-root", ".neoconf.json", "Makefile", ".git") - opts.sources = vim.list_extend(opts.sources or {}, { - nls.builtins.formatting.fish_indent, - nls.builtins.diagnostics.fish, - nls.builtins.formatting.stylua, - nls.builtins.formatting.shfmt, - }) -end -``` - - - - - - -```lua -{ - "nvimtools/none-ls.nvim", - event = "LazyFile", - dependencies = { "mason.nvim" }, - init = function() - LazyVim.on_very_lazy(function() - -- register the formatter with LazyVim - LazyVim.format.register({ - name = "none-ls.nvim", - priority = 200, -- set higher than conform, the builtin formatter - primary = true, - format = function(buf) - return LazyVim.lsp.format({ - bufnr = buf, - filter = function(client) - return client.name == "null-ls" - end, - }) - end, - sources = function(buf) - local ret = require("null-ls.sources").get_available(vim.bo[buf].filetype, "NULL_LS_FORMATTING") or {} - return vim.tbl_map(function(source) - return source.name - end, ret) - end, - }) - end) - end, - opts = function(_, opts) - local nls = require("null-ls") - opts.root_dir = opts.root_dir - or require("null-ls.utils").root_pattern(".null-ls-root", ".neoconf.json", "Makefile", ".git") - opts.sources = vim.list_extend(opts.sources or {}, { - nls.builtins.formatting.fish_indent, - nls.builtins.diagnostics.fish, - nls.builtins.formatting.stylua, - nls.builtins.formatting.shfmt, - }) - end, -} -``` - - - - - -## [mason.nvim](https://github.com/mason-org/mason.nvim) - - - - - -```lua -opts = nil -``` - - - - - - -```lua -{ "mason.nvim" } -``` - - - - - - diff --git a/docs/extras/test/core.md b/docs/extras/test/core.md deleted file mode 100644 index ab6e7c9847..0000000000 --- a/docs/extras/test/core.md +++ /dev/null @@ -1,250 +0,0 @@ -# Neotest - -Please make sure to read the **neotest** docs on how to add test adapters. - -Example on adding the plenary test adapter: - -```lua title="~/.config/nvim/lua/plugins/test.lua" -return { - { "nvim-neotest/neotest-plenary" }, - { - "nvim-neotest/neotest", - opts = { adapters = { "neotest-plenary" } }, - }, -} -``` - - - -:::info -You can enable the extra with the `:LazyExtras` command. -Plugins marked as optional will only be configured if they are installed. -::: - -Below you can find a list of included plugins and their default settings. - -:::caution -You don't need to copy the default settings to your config. -They are only shown here for reference. -::: - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -## [neotest](https://github.com/nvim-neotest/neotest) - - - - - -```lua -opts = { - -- Can be a list of adapters like what neotest expects, - -- or a list of adapter names, - -- or a table of adapter names, mapped to adapter configs. - -- The adapter will then be automatically loaded with the config. - adapters = {}, - -- Example for loading neotest-golang with a custom config - -- adapters = { - -- ["neotest-golang"] = { - -- go_test_args = { "-v", "-race", "-count=1", "-timeout=60s" }, - -- dap_go_enabled = true, - -- }, - -- }, - status = { virtual_text = true }, - output = { open_on_run = true }, - quickfix = { - open = function() - if LazyVim.has("trouble.nvim") then - require("trouble").open({ mode = "quickfix", focus = false }) - else - vim.cmd("copen") - end - end, - }, -} -``` - - - - - - -```lua -{ - "nvim-neotest/neotest", - dependencies = { "nvim-neotest/nvim-nio" }, - opts = { - -- Can be a list of adapters like what neotest expects, - -- or a list of adapter names, - -- or a table of adapter names, mapped to adapter configs. - -- The adapter will then be automatically loaded with the config. - adapters = {}, - -- Example for loading neotest-golang with a custom config - -- adapters = { - -- ["neotest-golang"] = { - -- go_test_args = { "-v", "-race", "-count=1", "-timeout=60s" }, - -- dap_go_enabled = true, - -- }, - -- }, - status = { virtual_text = true }, - output = { open_on_run = true }, - quickfix = { - open = function() - if LazyVim.has("trouble.nvim") then - require("trouble").open({ mode = "quickfix", focus = false }) - else - vim.cmd("copen") - end - end, - }, - }, - config = function(_, opts) - local neotest_ns = vim.api.nvim_create_namespace("neotest") - vim.diagnostic.config({ - virtual_text = { - format = function(diagnostic) - -- Replace newline and tab characters with space for more compact diagnostics - local message = diagnostic.message:gsub("\n", " "):gsub("\t", " "):gsub("%s+", " "):gsub("^%s+", "") - return message - end, - }, - }, neotest_ns) - - if LazyVim.has("trouble.nvim") then - opts.consumers = opts.consumers or {} - -- Refresh and auto close trouble after running tests - ---@type neotest.Consumer - opts.consumers.trouble = function(client) - client.listeners.results = function(adapter_id, results, partial) - if partial then - return - end - local tree = assert(client:get_position(nil, { adapter = adapter_id })) - - local failed = 0 - for pos_id, result in pairs(results) do - if result.status == "failed" and tree:get_key(pos_id) then - failed = failed + 1 - end - end - vim.schedule(function() - local trouble = require("trouble") - if trouble.is_open() then - trouble.refresh() - if failed == 0 then - trouble.close() - end - end - end) - return {} - end - end - end - - if opts.adapters then - local adapters = {} - for name, config in pairs(opts.adapters or {}) do - if type(name) == "number" then - if type(config) == "string" then - config = require(config) - end - adapters[#adapters + 1] = config - elseif config ~= false then - local adapter = require(name) - if type(config) == "table" and not vim.tbl_isempty(config) then - local meta = getmetatable(adapter) - if adapter.setup then - adapter.setup(config) - elseif adapter.adapter then - adapter.adapter(config) - adapter = adapter.adapter - elseif meta and meta.__call then - adapter = adapter(config) - else - error("Adapter " .. name .. " does not support setup") - end - end - adapters[#adapters + 1] = adapter - end - end - opts.adapters = adapters - end - - require("neotest").setup(opts) - end, - -- stylua: ignore - keys = { - {"t", "", desc = "+test"}, - { "ta", function() require("neotest").run.attach() end, desc = "Attach to Test (Neotest)" }, - { "tt", function() require("neotest").run.run(vim.fn.expand("%")) end, desc = "Run File (Neotest)" }, - { "tT", function() require("neotest").run.run(vim.uv.cwd()) end, desc = "Run All Test Files (Neotest)" }, - { "tr", function() require("neotest").run.run() end, desc = "Run Nearest (Neotest)" }, - { "tl", function() require("neotest").run.run_last() end, desc = "Run Last (Neotest)" }, - { "ts", function() require("neotest").summary.toggle() end, desc = "Toggle Summary (Neotest)" }, - { "to", function() require("neotest").output.open({ enter = true, auto_close = true }) end, desc = "Show Output (Neotest)" }, - { "tO", function() require("neotest").output_panel.toggle() end, desc = "Toggle Output Panel (Neotest)" }, - { "tS", function() require("neotest").run.stop() end, desc = "Stop (Neotest)" }, - { "tw", function() require("neotest").watch.toggle(vim.fn.expand("%")) end, desc = "Toggle Watch (Neotest)" }, - }, -} -``` - - - - - -## [nvim-nio](https://github.com/nvim-neotest/nvim-nio) - - - - - -```lua -opts = nil -``` - - - - - - -```lua -{ "nvim-neotest/nvim-nio" } -``` - - - - - -## [nvim-dap](https://github.com/mfussenegger/nvim-dap) _(optional)_ - - - - - -```lua -opts = nil -``` - - - - - - -```lua -{ - "mfussenegger/nvim-dap", - optional = true, - -- stylua: ignore - keys = { - { "td", function() require("neotest").run.run({strategy = "dap"}) end, desc = "Debug Nearest" }, - }, -} -``` - - - - - - diff --git a/docs/extras/ui/alpha.md b/docs/extras/ui/alpha.md deleted file mode 100644 index 83fe60843f..0000000000 --- a/docs/extras/ui/alpha.md +++ /dev/null @@ -1,174 +0,0 @@ -# Alpha - - - -:::info -You can enable the extra with the `:LazyExtras` command. -Plugins marked as optional will only be configured if they are installed. -::: - -Below you can find a list of included plugins and their default settings. - -:::caution -You don't need to copy the default settings to your config. -They are only shown here for reference. -::: - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -## [snacks.nvim](https://github.com/folke/snacks.nvim) - - - - - -```lua -opts = { dashboard = { enabled = false } } -``` - - - - - - -```lua -{ "folke/snacks.nvim", opts = { dashboard = { enabled = false } } } -``` - - - - - -## [alpha-nvim](https://github.com/goolord/alpha-nvim) - - Dashboard. This runs when neovim starts, and is what displays - the "LAZYVIM" banner. - - - - - - -```lua -opts = function() - local dashboard = require("alpha.themes.dashboard") - local logo = [[ - ██╗ █████╗ ███████╗██╗ ██╗██╗ ██╗██╗███╗ ███╗ Z - ██║ ██╔══██╗╚══███╔╝╚██╗ ██╔╝██║ ██║██║████╗ ████║ Z - ██║ ███████║ ███╔╝ ╚████╔╝ ██║ ██║██║██╔████╔██║ z - ██║ ██╔══██║ ███╔╝ ╚██╔╝ ╚██╗ ██╔╝██║██║╚██╔╝██║ z - ███████╗██║ ██║███████╗ ██║ ╚████╔╝ ██║██║ ╚═╝ ██║ - ╚══════╝╚═╝ ╚═╝╚══════╝ ╚═╝ ╚═══╝ ╚═╝╚═╝ ╚═╝ - ]] - - dashboard.section.header.val = vim.split(logo, "\n") - -- stylua: ignore - dashboard.section.buttons.val = { - dashboard.button("f", " " .. " Find file", " lua LazyVim.pick()() "), - dashboard.button("n", " " .. " New file", [[ ene startinsert ]]), - dashboard.button("r", " " .. " Recent files", [[ lua LazyVim.pick("oldfiles")() ]]), - dashboard.button("g", " " .. " Find text", [[ lua LazyVim.pick("live_grep")() ]]), - dashboard.button("c", " " .. " Config", " lua LazyVim.pick.config_files()() "), - dashboard.button("s", " " .. " Restore Session", [[ lua require("persistence").load() ]]), - dashboard.button("x", " " .. " Lazy Extras", " LazyExtras "), - dashboard.button("l", "󰒲 " .. " Lazy", " Lazy "), - dashboard.button("q", " " .. " Quit", " qa "), - } - for _, button in ipairs(dashboard.section.buttons.val) do - button.opts.hl = "AlphaButtons" - button.opts.hl_shortcut = "AlphaShortcut" - end - dashboard.section.header.opts.hl = "AlphaHeader" - dashboard.section.buttons.opts.hl = "AlphaButtons" - dashboard.section.footer.opts.hl = "AlphaFooter" - dashboard.opts.layout[1].val = 8 - return dashboard -end -``` - - - - - - -```lua -{ - "goolord/alpha-nvim", - event = "VimEnter", - enabled = true, - init = false, - opts = function() - local dashboard = require("alpha.themes.dashboard") - local logo = [[ - ██╗ █████╗ ███████╗██╗ ██╗██╗ ██╗██╗███╗ ███╗ Z - ██║ ██╔══██╗╚══███╔╝╚██╗ ██╔╝██║ ██║██║████╗ ████║ Z - ██║ ███████║ ███╔╝ ╚████╔╝ ██║ ██║██║██╔████╔██║ z - ██║ ██╔══██║ ███╔╝ ╚██╔╝ ╚██╗ ██╔╝██║██║╚██╔╝██║ z - ███████╗██║ ██║███████╗ ██║ ╚████╔╝ ██║██║ ╚═╝ ██║ - ╚══════╝╚═╝ ╚═╝╚══════╝ ╚═╝ ╚═══╝ ╚═╝╚═╝ ╚═╝ - ]] - - dashboard.section.header.val = vim.split(logo, "\n") - -- stylua: ignore - dashboard.section.buttons.val = { - dashboard.button("f", " " .. " Find file", " lua LazyVim.pick()() "), - dashboard.button("n", " " .. " New file", [[ ene startinsert ]]), - dashboard.button("r", " " .. " Recent files", [[ lua LazyVim.pick("oldfiles")() ]]), - dashboard.button("g", " " .. " Find text", [[ lua LazyVim.pick("live_grep")() ]]), - dashboard.button("c", " " .. " Config", " lua LazyVim.pick.config_files()() "), - dashboard.button("s", " " .. " Restore Session", [[ lua require("persistence").load() ]]), - dashboard.button("x", " " .. " Lazy Extras", " LazyExtras "), - dashboard.button("l", "󰒲 " .. " Lazy", " Lazy "), - dashboard.button("q", " " .. " Quit", " qa "), - } - for _, button in ipairs(dashboard.section.buttons.val) do - button.opts.hl = "AlphaButtons" - button.opts.hl_shortcut = "AlphaShortcut" - end - dashboard.section.header.opts.hl = "AlphaHeader" - dashboard.section.buttons.opts.hl = "AlphaButtons" - dashboard.section.footer.opts.hl = "AlphaFooter" - dashboard.opts.layout[1].val = 8 - return dashboard - end, - config = function(_, dashboard) - -- close Lazy and re-open when the dashboard is ready - if vim.o.filetype == "lazy" then - vim.cmd.close() - vim.api.nvim_create_autocmd("User", { - once = true, - pattern = "AlphaReady", - callback = function() - require("lazy").show() - end, - }) - end - - require("alpha").setup(dashboard.opts) - - vim.api.nvim_create_autocmd("User", { - once = true, - pattern = "LazyVimStarted", - callback = function() - local stats = require("lazy").stats() - local ms = (math.floor(stats.startuptime * 100 + 0.5) / 100) - dashboard.section.footer.val = "⚡ Neovim loaded " - .. stats.loaded - .. "/" - .. stats.count - .. " plugins in " - .. ms - .. "ms" - pcall(vim.cmd.AlphaRedraw) - end, - }) - end, -} -``` - - - - - - diff --git a/docs/extras/ui/dashboard-nvim.md b/docs/extras/ui/dashboard-nvim.md deleted file mode 100644 index 8d31c7aa6a..0000000000 --- a/docs/extras/ui/dashboard-nvim.md +++ /dev/null @@ -1,190 +0,0 @@ -# `Dashboard-nvim` - - - -:::info -You can enable the extra with the `:LazyExtras` command. -Plugins marked as optional will only be configured if they are installed. -::: - -Below you can find a list of included plugins and their default settings. - -:::caution -You don't need to copy the default settings to your config. -They are only shown here for reference. -::: - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -## [snacks.nvim](https://github.com/folke/snacks.nvim) - - - - - -```lua -opts = { dashboard = { enabled = false } } -``` - - - - - - -```lua -{ "folke/snacks.nvim", opts = { dashboard = { enabled = false } } } -``` - - - - - -## [dashboard-nvim](https://github.com/nvimdev/dashboard-nvim) - - - - - -```lua -opts = function() - local logo = [[ - ██╗ █████╗ ███████╗██╗ ██╗██╗ ██╗██╗███╗ ███╗ Z - ██║ ██╔══██╗╚══███╔╝╚██╗ ██╔╝██║ ██║██║████╗ ████║ Z - ██║ ███████║ ███╔╝ ╚████╔╝ ██║ ██║██║██╔████╔██║ z - ██║ ██╔══██║ ███╔╝ ╚██╔╝ ╚██╗ ██╔╝██║██║╚██╔╝██║ z - ███████╗██║ ██║███████╗ ██║ ╚████╔╝ ██║██║ ╚═╝ ██║ - ╚══════╝╚═╝ ╚═╝╚══════╝ ╚═╝ ╚═══╝ ╚═╝╚═╝ ╚═╝ - ]] - - logo = string.rep("\n", 8) .. logo .. "\n\n" - - local opts = { - theme = "doom", - hide = { - -- this is taken care of by lualine - -- enabling this messes up the actual laststatus setting after loading a file - statusline = false, - }, - config = { - header = vim.split(logo, "\n"), - -- stylua: ignore - center = { - { action = 'lua LazyVim.pick()()', desc = " Find File", icon = " ", key = "f" }, - { action = "ene | startinsert", desc = " New File", icon = " ", key = "n" }, - { action = 'lua LazyVim.pick("oldfiles")()', desc = " Recent Files", icon = " ", key = "r" }, - { action = 'lua LazyVim.pick("live_grep")()', desc = " Find Text", icon = " ", key = "g" }, - { action = 'lua LazyVim.pick.config_files()()', desc = " Config", icon = " ", key = "c" }, - { action = 'lua require("persistence").load()', desc = " Restore Session", icon = " ", key = "s" }, - { action = "LazyExtras", desc = " Lazy Extras", icon = " ", key = "x" }, - { action = "Lazy", desc = " Lazy", icon = "󰒲 ", key = "l" }, - { action = function() vim.api.nvim_input("qa") end, desc = " Quit", icon = " ", key = "q" }, - }, - footer = function() - local stats = require("lazy").stats() - local ms = (math.floor(stats.startuptime * 100 + 0.5) / 100) - return { "⚡ Neovim loaded " .. stats.loaded .. "/" .. stats.count .. " plugins in " .. ms .. "ms" } - end, - }, - } - - for _, button in ipairs(opts.config.center) do - button.desc = button.desc .. string.rep(" ", 43 - #button.desc) - button.key_format = " %s" - end - - -- open dashboard after closing lazy - if vim.o.filetype == "lazy" then - vim.api.nvim_create_autocmd("WinClosed", { - pattern = tostring(vim.api.nvim_get_current_win()), - once = true, - callback = function() - vim.schedule(function() - vim.api.nvim_exec_autocmds("UIEnter", { group = "dashboard" }) - end) - end, - }) - end - - return opts -end -``` - - - - - - -```lua -{ - "nvimdev/dashboard-nvim", - lazy = false, -- As https://github.com/nvimdev/dashboard-nvim/pull/450, dashboard-nvim shouldn't be lazy-loaded to properly handle stdin. - opts = function() - local logo = [[ - ██╗ █████╗ ███████╗██╗ ██╗██╗ ██╗██╗███╗ ███╗ Z - ██║ ██╔══██╗╚══███╔╝╚██╗ ██╔╝██║ ██║██║████╗ ████║ Z - ██║ ███████║ ███╔╝ ╚████╔╝ ██║ ██║██║██╔████╔██║ z - ██║ ██╔══██║ ███╔╝ ╚██╔╝ ╚██╗ ██╔╝██║██║╚██╔╝██║ z - ███████╗██║ ██║███████╗ ██║ ╚████╔╝ ██║██║ ╚═╝ ██║ - ╚══════╝╚═╝ ╚═╝╚══════╝ ╚═╝ ╚═══╝ ╚═╝╚═╝ ╚═╝ - ]] - - logo = string.rep("\n", 8) .. logo .. "\n\n" - - local opts = { - theme = "doom", - hide = { - -- this is taken care of by lualine - -- enabling this messes up the actual laststatus setting after loading a file - statusline = false, - }, - config = { - header = vim.split(logo, "\n"), - -- stylua: ignore - center = { - { action = 'lua LazyVim.pick()()', desc = " Find File", icon = " ", key = "f" }, - { action = "ene | startinsert", desc = " New File", icon = " ", key = "n" }, - { action = 'lua LazyVim.pick("oldfiles")()', desc = " Recent Files", icon = " ", key = "r" }, - { action = 'lua LazyVim.pick("live_grep")()', desc = " Find Text", icon = " ", key = "g" }, - { action = 'lua LazyVim.pick.config_files()()', desc = " Config", icon = " ", key = "c" }, - { action = 'lua require("persistence").load()', desc = " Restore Session", icon = " ", key = "s" }, - { action = "LazyExtras", desc = " Lazy Extras", icon = " ", key = "x" }, - { action = "Lazy", desc = " Lazy", icon = "󰒲 ", key = "l" }, - { action = function() vim.api.nvim_input("qa") end, desc = " Quit", icon = " ", key = "q" }, - }, - footer = function() - local stats = require("lazy").stats() - local ms = (math.floor(stats.startuptime * 100 + 0.5) / 100) - return { "⚡ Neovim loaded " .. stats.loaded .. "/" .. stats.count .. " plugins in " .. ms .. "ms" } - end, - }, - } - - for _, button in ipairs(opts.config.center) do - button.desc = button.desc .. string.rep(" ", 43 - #button.desc) - button.key_format = " %s" - end - - -- open dashboard after closing lazy - if vim.o.filetype == "lazy" then - vim.api.nvim_create_autocmd("WinClosed", { - pattern = tostring(vim.api.nvim_get_current_win()), - once = true, - callback = function() - vim.schedule(function() - vim.api.nvim_exec_autocmds("UIEnter", { group = "dashboard" }) - end) - end, - }) - end - - return opts - end, -} -``` - - - - - - diff --git a/docs/extras/ui/edgy.md b/docs/extras/ui/edgy.md deleted file mode 100644 index fb0674244b..0000000000 --- a/docs/extras/ui/edgy.md +++ /dev/null @@ -1,453 +0,0 @@ -# edgy.nvim - - - -:::info -You can enable the extra with the `:LazyExtras` command. -Plugins marked as optional will only be configured if they are installed. -::: - -Below you can find a list of included plugins and their default settings. - -:::caution -You don't need to copy the default settings to your config. -They are only shown here for reference. -::: - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -## [edgy.nvim](https://github.com/folke/edgy.nvim) - - Create and display predefined window layouts. - - - - - - -```lua -opts = function() - local opts = { - bottom = { - { - ft = "toggleterm", - size = { height = 0.4 }, - filter = function(buf, win) - return vim.api.nvim_win_get_config(win).relative == "" - end, - }, - { - ft = "noice", - size = { height = 0.4 }, - filter = function(buf, win) - return vim.api.nvim_win_get_config(win).relative == "" - end, - }, - "Trouble", - { ft = "qf", title = "QuickFix" }, - { - ft = "help", - size = { height = 20 }, - -- don't open help files in edgy that we're editing - filter = function(buf) - return vim.bo[buf].buftype == "help" - end, - }, - { title = "Spectre", ft = "spectre_panel", size = { height = 0.4 } }, - { title = "Neotest Output", ft = "neotest-output-panel", size = { height = 15 } }, - }, - left = { - { title = "Neotest Summary", ft = "neotest-summary" }, - -- "neo-tree", - }, - right = { - { title = "Grug Far", ft = "grug-far", size = { width = 0.4 } }, - }, - keys = { - -- increase width - [""] = function(win) - win:resize("width", 2) - end, - -- decrease width - [""] = function(win) - win:resize("width", -2) - end, - -- increase height - [""] = function(win) - win:resize("height", 2) - end, - -- decrease height - [""] = function(win) - win:resize("height", -2) - end, - }, - } - - if LazyVim.has("neo-tree.nvim") then - local pos = { - filesystem = "left", - buffers = "top", - git_status = "right", - document_symbols = "bottom", - diagnostics = "bottom", - } - local sources = LazyVim.opts("neo-tree.nvim").sources or {} - for i, v in ipairs(sources) do - table.insert(opts.left, i, { - title = "Neo-Tree " .. v:gsub("_", " "):gsub("^%l", string.upper), - ft = "neo-tree", - filter = function(buf) - return vim.b[buf].neo_tree_source == v - end, - pinned = true, - open = function() - vim.cmd(("Neotree show position=%s %s dir=%s"):format(pos[v] or "bottom", v, LazyVim.root())) - end, - }) - end - end - - -- trouble - for _, pos in ipairs({ "top", "bottom", "left", "right" }) do - opts[pos] = opts[pos] or {} - table.insert(opts[pos], { - ft = "trouble", - filter = function(_buf, win) - return vim.w[win].trouble - and vim.w[win].trouble.position == pos - and vim.w[win].trouble.type == "split" - and vim.w[win].trouble.relative == "editor" - and not vim.w[win].trouble_preview - end, - }) - end - - -- snacks terminal - for _, pos in ipairs({ "top", "bottom", "left", "right" }) do - opts[pos] = opts[pos] or {} - table.insert(opts[pos], { - ft = "snacks_terminal", - size = { height = 0.4 }, - title = "%{b:snacks_terminal.id}: %{b:term_title}", - filter = function(_buf, win) - return vim.w[win].snacks_win - and vim.w[win].snacks_win.position == pos - and vim.w[win].snacks_win.relative == "editor" - and not vim.w[win].trouble_preview - end, - }) - end - return opts -end -``` - - - - - - -```lua -{ - "folke/edgy.nvim", - event = "VeryLazy", - keys = { - { - "ue", - function() - require("edgy").toggle() - end, - desc = "Edgy Toggle", - }, - -- stylua: ignore - { "uE", function() require("edgy").select() end, desc = "Edgy Select Window" }, - }, - opts = function() - local opts = { - bottom = { - { - ft = "toggleterm", - size = { height = 0.4 }, - filter = function(buf, win) - return vim.api.nvim_win_get_config(win).relative == "" - end, - }, - { - ft = "noice", - size = { height = 0.4 }, - filter = function(buf, win) - return vim.api.nvim_win_get_config(win).relative == "" - end, - }, - "Trouble", - { ft = "qf", title = "QuickFix" }, - { - ft = "help", - size = { height = 20 }, - -- don't open help files in edgy that we're editing - filter = function(buf) - return vim.bo[buf].buftype == "help" - end, - }, - { title = "Spectre", ft = "spectre_panel", size = { height = 0.4 } }, - { title = "Neotest Output", ft = "neotest-output-panel", size = { height = 15 } }, - }, - left = { - { title = "Neotest Summary", ft = "neotest-summary" }, - -- "neo-tree", - }, - right = { - { title = "Grug Far", ft = "grug-far", size = { width = 0.4 } }, - }, - keys = { - -- increase width - [""] = function(win) - win:resize("width", 2) - end, - -- decrease width - [""] = function(win) - win:resize("width", -2) - end, - -- increase height - [""] = function(win) - win:resize("height", 2) - end, - -- decrease height - [""] = function(win) - win:resize("height", -2) - end, - }, - } - - if LazyVim.has("neo-tree.nvim") then - local pos = { - filesystem = "left", - buffers = "top", - git_status = "right", - document_symbols = "bottom", - diagnostics = "bottom", - } - local sources = LazyVim.opts("neo-tree.nvim").sources or {} - for i, v in ipairs(sources) do - table.insert(opts.left, i, { - title = "Neo-Tree " .. v:gsub("_", " "):gsub("^%l", string.upper), - ft = "neo-tree", - filter = function(buf) - return vim.b[buf].neo_tree_source == v - end, - pinned = true, - open = function() - vim.cmd(("Neotree show position=%s %s dir=%s"):format(pos[v] or "bottom", v, LazyVim.root())) - end, - }) - end - end - - -- trouble - for _, pos in ipairs({ "top", "bottom", "left", "right" }) do - opts[pos] = opts[pos] or {} - table.insert(opts[pos], { - ft = "trouble", - filter = function(_buf, win) - return vim.w[win].trouble - and vim.w[win].trouble.position == pos - and vim.w[win].trouble.type == "split" - and vim.w[win].trouble.relative == "editor" - and not vim.w[win].trouble_preview - end, - }) - end - - -- snacks terminal - for _, pos in ipairs({ "top", "bottom", "left", "right" }) do - opts[pos] = opts[pos] or {} - table.insert(opts[pos], { - ft = "snacks_terminal", - size = { height = 0.4 }, - title = "%{b:snacks_terminal.id}: %{b:term_title}", - filter = function(_buf, win) - return vim.w[win].snacks_win - and vim.w[win].snacks_win.position == pos - and vim.w[win].snacks_win.relative == "editor" - and not vim.w[win].trouble_preview - end, - }) - end - return opts - end, -} -``` - - - - - -## [telescope.nvim](https://github.com/nvim-telescope/telescope.nvim) _(optional)_ - - use edgy's selection window - - - - - - -```lua -opts = { - defaults = { - get_selection_window = function() - require("edgy").goto_main() - return 0 - end, - }, -} -``` - - - - - - -```lua -{ - "nvim-telescope/telescope.nvim", - optional = true, - opts = { - defaults = { - get_selection_window = function() - require("edgy").goto_main() - return 0 - end, - }, - }, -} -``` - - - - - -## [neo-tree.nvim](https://github.com/nvim-neo-tree/neo-tree.nvim) _(optional)_ - - prevent neo-tree from opening files in edgy windows - - - - - - -```lua -opts = function(_, opts) - opts.open_files_do_not_replace_types = opts.open_files_do_not_replace_types - or { "terminal", "Trouble", "qf", "Outline", "trouble" } - table.insert(opts.open_files_do_not_replace_types, "edgy") -end -``` - - - - - - -```lua -{ - "nvim-neo-tree/neo-tree.nvim", - optional = true, - opts = function(_, opts) - opts.open_files_do_not_replace_types = opts.open_files_do_not_replace_types - or { "terminal", "Trouble", "qf", "Outline", "trouble" } - table.insert(opts.open_files_do_not_replace_types, "edgy") - end, -} -``` - - - - - -## [bufferline.nvim](https://github.com/akinsho/bufferline.nvim) _(optional)_ - - Fix bufferline offsets when edgy is loaded - - - - - - -```lua -opts = function() - local Offset = require("bufferline.offset") - if not Offset.edgy then - local get = Offset.get - Offset.get = function() - if package.loaded.edgy then - local old_offset = get() - local layout = require("edgy.config").layout - local ret = { left = "", left_size = 0, right = "", right_size = 0 } - for _, pos in ipairs({ "left", "right" }) do - local sb = layout[pos] - local title = " Sidebar" .. string.rep(" ", sb.bounds.width - 8) - if sb and #sb.wins > 0 then - ret[pos] = old_offset[pos .. "_size"] > 0 and old_offset[pos] - or pos == "left" and ("%#Bold#" .. title .. "%*" .. "%#BufferLineOffsetSeparator#│%*") - or pos == "right" and ("%#BufferLineOffsetSeparator#│%*" .. "%#Bold#" .. title .. "%*") - ret[pos .. "_size"] = old_offset[pos .. "_size"] > 0 and old_offset[pos .. "_size"] or sb.bounds.width - end - end - ret.total_size = ret.left_size + ret.right_size - if ret.total_size > 0 then - return ret - end - end - return get() - end - Offset.edgy = true - end -end -``` - - - - - - -```lua -{ - "akinsho/bufferline.nvim", - optional = true, - opts = function() - local Offset = require("bufferline.offset") - if not Offset.edgy then - local get = Offset.get - Offset.get = function() - if package.loaded.edgy then - local old_offset = get() - local layout = require("edgy.config").layout - local ret = { left = "", left_size = 0, right = "", right_size = 0 } - for _, pos in ipairs({ "left", "right" }) do - local sb = layout[pos] - local title = " Sidebar" .. string.rep(" ", sb.bounds.width - 8) - if sb and #sb.wins > 0 then - ret[pos] = old_offset[pos .. "_size"] > 0 and old_offset[pos] - or pos == "left" and ("%#Bold#" .. title .. "%*" .. "%#BufferLineOffsetSeparator#│%*") - or pos == "right" and ("%#BufferLineOffsetSeparator#│%*" .. "%#Bold#" .. title .. "%*") - ret[pos .. "_size"] = old_offset[pos .. "_size"] > 0 and old_offset[pos .. "_size"] or sb.bounds.width - end - end - ret.total_size = ret.left_size + ret.right_size - if ret.total_size > 0 then - return ret - end - end - return get() - end - Offset.edgy = true - end - end, -} -``` - - - - - - diff --git a/docs/extras/ui/indent-blankline.md b/docs/extras/ui/indent-blankline.md deleted file mode 100644 index c626c06ac5..0000000000 --- a/docs/extras/ui/indent-blankline.md +++ /dev/null @@ -1,153 +0,0 @@ -# `Indent-blankline` - - - -:::info -You can enable the extra with the `:LazyExtras` command. -Plugins marked as optional will only be configured if they are installed. -::: - -Below you can find a list of included plugins and their default settings. - -:::caution -You don't need to copy the default settings to your config. -They are only shown here for reference. -::: - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -## [snacks.nvim](https://github.com/folke/snacks.nvim) - - disable snacks indent when indent-blankline is enabled - - - - - - -```lua -opts = { - indent = { enabled = false }, -} -``` - - - - - - -```lua -{ - "snacks.nvim", - opts = { - indent = { enabled = false }, - }, -} -``` - - - - - -## [indent-blankline.nvim](https://github.com/lukas-reineke/indent-blankline.nvim) - - - - - -```lua -opts = function() - Snacks.toggle({ - name = "Indention Guides", - get = function() - return require("ibl.config").get_config(0).enabled - end, - set = function(state) - require("ibl").setup_buffer(0, { enabled = state }) - end, - }):map("ug") - - return { - indent = { - char = "│", - tab_char = "│", - }, - scope = { show_start = false, show_end = false }, - exclude = { - filetypes = { - "Trouble", - "alpha", - "dashboard", - "help", - "lazy", - "mason", - "neo-tree", - "notify", - "snacks_dashboard", - "snacks_notif", - "snacks_terminal", - "snacks_win", - "toggleterm", - "trouble", - }, - }, - } -end -``` - - - - - - -```lua -{ - "lukas-reineke/indent-blankline.nvim", - event = "LazyFile", - opts = function() - Snacks.toggle({ - name = "Indention Guides", - get = function() - return require("ibl.config").get_config(0).enabled - end, - set = function(state) - require("ibl").setup_buffer(0, { enabled = state }) - end, - }):map("ug") - - return { - indent = { - char = "│", - tab_char = "│", - }, - scope = { show_start = false, show_end = false }, - exclude = { - filetypes = { - "Trouble", - "alpha", - "dashboard", - "help", - "lazy", - "mason", - "neo-tree", - "notify", - "snacks_dashboard", - "snacks_notif", - "snacks_terminal", - "snacks_win", - "toggleterm", - "trouble", - }, - }, - } - end, - main = "ibl", -} -``` - - - - - - diff --git a/docs/extras/ui/mini-animate.md b/docs/extras/ui/mini-animate.md deleted file mode 100644 index 4712be29b2..0000000000 --- a/docs/extras/ui/mini-animate.md +++ /dev/null @@ -1,185 +0,0 @@ -# Mini Animate - - - -:::info -You can enable the extra with the `:LazyExtras` command. -Plugins marked as optional will only be configured if they are installed. -::: - -Below you can find a list of included plugins and their default settings. - -:::caution -You don't need to copy the default settings to your config. -They are only shown here for reference. -::: - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -## [snacks.nvim](https://github.com/folke/snacks.nvim) - - disable snacks scroll when animate is enabled - - - - - - -```lua -opts = { - scroll = { enabled = false }, -} -``` - - - - - - -```lua -{ - "snacks.nvim", - opts = { - scroll = { enabled = false }, - }, -} -``` - - - - - -## [mini.animate](https://github.com/nvim-mini/mini.animate) - - Animates many common Neovim actions, like scrolling, - moving the cursor, and resizing windows. - - - - - - -```lua -opts = function(_, opts) - -- don't use animate when scrolling with the mouse - local mouse_scrolled = false - for _, scroll in ipairs({ "Up", "Down" }) do - local key = "" - vim.keymap.set({ "", "i" }, key, function() - mouse_scrolled = true - return key - end, { expr = true }) - end - - vim.api.nvim_create_autocmd("FileType", { - pattern = "grug-far", - callback = function() - vim.b.minianimate_disable = true - end, - }) - - -- schedule setting the mapping to override the default mapping from `keymaps.lua` - -- seems `keymaps.lua` is the last event to execute on `VeryLazy` and it overwrites it - vim.schedule(function() - Snacks.toggle({ - name = "Mini Animate", - get = function() - return not vim.g.minianimate_disable - end, - set = function(state) - vim.g.minianimate_disable = not state - end, - }):map("ua") - end) - - local animate = require("mini.animate") - return vim.tbl_deep_extend("force", opts, { - resize = { - timing = animate.gen_timing.linear({ duration = 50, unit = "total" }), - }, - scroll = { - timing = animate.gen_timing.linear({ duration = 150, unit = "total" }), - subscroll = animate.gen_subscroll.equal({ - predicate = function(total_scroll) - if mouse_scrolled then - mouse_scrolled = false - return false - end - return total_scroll > 1 - end, - }), - }, - }) -end -``` - - - - - - -```lua -{ - "nvim-mini/mini.animate", - event = "VeryLazy", - cond = vim.g.neovide == nil, - opts = function(_, opts) - -- don't use animate when scrolling with the mouse - local mouse_scrolled = false - for _, scroll in ipairs({ "Up", "Down" }) do - local key = "" - vim.keymap.set({ "", "i" }, key, function() - mouse_scrolled = true - return key - end, { expr = true }) - end - - vim.api.nvim_create_autocmd("FileType", { - pattern = "grug-far", - callback = function() - vim.b.minianimate_disable = true - end, - }) - - -- schedule setting the mapping to override the default mapping from `keymaps.lua` - -- seems `keymaps.lua` is the last event to execute on `VeryLazy` and it overwrites it - vim.schedule(function() - Snacks.toggle({ - name = "Mini Animate", - get = function() - return not vim.g.minianimate_disable - end, - set = function(state) - vim.g.minianimate_disable = not state - end, - }):map("ua") - end) - - local animate = require("mini.animate") - return vim.tbl_deep_extend("force", opts, { - resize = { - timing = animate.gen_timing.linear({ duration = 50, unit = "total" }), - }, - scroll = { - timing = animate.gen_timing.linear({ duration = 150, unit = "total" }), - subscroll = animate.gen_subscroll.equal({ - predicate = function(total_scroll) - if mouse_scrolled then - mouse_scrolled = false - return false - end - return total_scroll > 1 - end, - }), - }, - }) - end, -} -``` - - - - - - diff --git a/docs/extras/ui/mini-indentscope.md b/docs/extras/ui/mini-indentscope.md deleted file mode 100644 index 084917e5f9..0000000000 --- a/docs/extras/ui/mini-indentscope.md +++ /dev/null @@ -1,165 +0,0 @@ -# `Mini-indentscope` - - - -:::info -You can enable the extra with the `:LazyExtras` command. -Plugins marked as optional will only be configured if they are installed. -::: - -Below you can find a list of included plugins and their default settings. - -:::caution -You don't need to copy the default settings to your config. -They are only shown here for reference. -::: - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -## [mini.indentscope](https://github.com/nvim-mini/mini.indentscope) - - Active indent guide and indent text objects. When you're browsing - code, this highlights the current level of indentation, and animates - the highlighting. - - - - - - -```lua -opts = { - -- symbol = "▏", - symbol = "│", - options = { try_as_border = true }, -} -``` - - - - - - -```lua -{ - "nvim-mini/mini.indentscope", - version = false, -- wait till new 0.7.0 release to put it back on semver - event = "LazyFile", - opts = { - -- symbol = "▏", - symbol = "│", - options = { try_as_border = true }, - }, - init = function() - vim.api.nvim_create_autocmd("FileType", { - pattern = { - "Trouble", - "alpha", - "dashboard", - "fzf", - "help", - "lazy", - "mason", - "neo-tree", - "notify", - "sidekick_terminal", - "snacks_dashboard", - "snacks_notif", - "snacks_terminal", - "snacks_win", - "toggleterm", - "trouble", - }, - callback = function() - vim.b.miniindentscope_disable = true - end, - }) - - vim.api.nvim_create_autocmd("User", { - pattern = "SnacksDashboardOpened", - callback = function(data) - vim.b[data.buf].miniindentscope_disable = true - end, - }) - end, -} -``` - - - - - -## [snacks.nvim](https://github.com/folke/snacks.nvim) - - disable snacks scroll when mini-indentscope is enabled - - - - - - -```lua -opts = { - indent = { - scope = { enabled = false }, - }, -} -``` - - - - - - -```lua -{ - "snacks.nvim", - opts = { - indent = { - scope = { enabled = false }, - }, - }, -} -``` - - - - - -## [indent-blankline.nvim](https://github.com/lukas-reineke/indent-blankline.nvim) _(optional)_ - - disable indent-blankline scope when mini-indentscope is enabled - - - - - - -```lua -opts = { - scope = { enabled = false }, -} -``` - - - - - - -```lua -{ - "lukas-reineke/indent-blankline.nvim", - optional = true, - event = "LazyFile", - opts = { - scope = { enabled = false }, - }, -} -``` - - - - - - diff --git a/docs/extras/ui/mini-starter.md b/docs/extras/ui/mini-starter.md deleted file mode 100644 index 5fe94a2461..0000000000 --- a/docs/extras/ui/mini-starter.md +++ /dev/null @@ -1,178 +0,0 @@ -# Mini Starter - - - -:::info -You can enable the extra with the `:LazyExtras` command. -Plugins marked as optional will only be configured if they are installed. -::: - -Below you can find a list of included plugins and their default settings. - -:::caution -You don't need to copy the default settings to your config. -They are only shown here for reference. -::: - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -## [snacks.nvim](https://github.com/folke/snacks.nvim) - - disable alpha - - - - - - -```lua -opts = { dashboard = { enabled = false } } -``` - - - - - - -```lua -{ "folke/snacks.nvim", opts = { dashboard = { enabled = false } } } -``` - - - - - -## [mini.starter](https://github.com/nvim-mini/mini.starter) - - enable mini.starter - - - - - - -```lua -opts = function() - local logo = table.concat({ - " ██╗ █████╗ ███████╗██╗ ██╗██╗ ██╗██╗███╗ ███╗ Z", - " ██║ ██╔══██╗╚══███╔╝╚██╗ ██╔╝██║ ██║██║████╗ ████║ Z ", - " ██║ ███████║ ███╔╝ ╚████╔╝ ██║ ██║██║██╔████╔██║ z ", - " ██║ ██╔══██║ ███╔╝ ╚██╔╝ ╚██╗ ██╔╝██║██║╚██╔╝██║ z ", - " ███████╗██║ ██║███████╗ ██║ ╚████╔╝ ██║██║ ╚═╝ ██║ ", - " ╚══════╝╚═╝ ╚═╝╚══════╝ ╚═╝ ╚═══╝ ╚═╝╚═╝ ╚═╝ ", - }, "\n") - local pad = string.rep(" ", 22) - local new_section = function(name, action, section) - return { name = name, action = action, section = pad .. section } - end - - local starter = require("mini.starter") - --stylua: ignore - local config = { - evaluate_single = true, - header = logo, - items = { - new_section("Find file", LazyVim.pick(), "Telescope"), - new_section("New file", "ene | startinsert", "Built-in"), - new_section("Recent files", LazyVim.pick("oldfiles"), "Telescope"), - new_section("Find text", LazyVim.pick("live_grep"), "Telescope"), - new_section("Config", LazyVim.pick.config_files(), "Config"), - new_section("Restore session", [[lua require("persistence").load()]], "Session"), - new_section("Lazy Extras", "LazyExtras", "Config"), - new_section("Lazy", "Lazy", "Config"), - new_section("Quit", "qa", "Built-in"), - }, - content_hooks = { - starter.gen_hook.adding_bullet(pad .. "░ ", false), - starter.gen_hook.aligning("center", "center"), - }, - } - return config -end -``` - - - - - - -```lua -{ - "nvim-mini/mini.starter", - version = false, -- wait till new 0.7.0 release to put it back on semver - event = "VimEnter", - opts = function() - local logo = table.concat({ - " ██╗ █████╗ ███████╗██╗ ██╗██╗ ██╗██╗███╗ ███╗ Z", - " ██║ ██╔══██╗╚══███╔╝╚██╗ ██╔╝██║ ██║██║████╗ ████║ Z ", - " ██║ ███████║ ███╔╝ ╚████╔╝ ██║ ██║██║██╔████╔██║ z ", - " ██║ ██╔══██║ ███╔╝ ╚██╔╝ ╚██╗ ██╔╝██║██║╚██╔╝██║ z ", - " ███████╗██║ ██║███████╗ ██║ ╚████╔╝ ██║██║ ╚═╝ ██║ ", - " ╚══════╝╚═╝ ╚═╝╚══════╝ ╚═╝ ╚═══╝ ╚═╝╚═╝ ╚═╝ ", - }, "\n") - local pad = string.rep(" ", 22) - local new_section = function(name, action, section) - return { name = name, action = action, section = pad .. section } - end - - local starter = require("mini.starter") - --stylua: ignore - local config = { - evaluate_single = true, - header = logo, - items = { - new_section("Find file", LazyVim.pick(), "Telescope"), - new_section("New file", "ene | startinsert", "Built-in"), - new_section("Recent files", LazyVim.pick("oldfiles"), "Telescope"), - new_section("Find text", LazyVim.pick("live_grep"), "Telescope"), - new_section("Config", LazyVim.pick.config_files(), "Config"), - new_section("Restore session", [[lua require("persistence").load()]], "Session"), - new_section("Lazy Extras", "LazyExtras", "Config"), - new_section("Lazy", "Lazy", "Config"), - new_section("Quit", "qa", "Built-in"), - }, - content_hooks = { - starter.gen_hook.adding_bullet(pad .. "░ ", false), - starter.gen_hook.aligning("center", "center"), - }, - } - return config - end, - config = function(_, config) - -- close Lazy and re-open when starter is ready - if vim.o.filetype == "lazy" then - vim.cmd.close() - vim.api.nvim_create_autocmd("User", { - pattern = "MiniStarterOpened", - callback = function() - require("lazy").show() - end, - }) - end - - local starter = require("mini.starter") - starter.setup(config) - - vim.api.nvim_create_autocmd("User", { - pattern = "LazyVimStarted", - callback = function(ev) - local stats = require("lazy").stats() - local ms = (math.floor(stats.startuptime * 100 + 0.5) / 100) - local pad_footer = string.rep(" ", 8) - starter.config.footer = pad_footer .. "⚡ Neovim loaded " .. stats.count .. " plugins in " .. ms .. "ms" - -- INFO: based on @nvim-mini's recommendation (thanks a lot!!!) - if vim.bo[ev.buf].filetype == "ministarter" then - pcall(starter.refresh) - end - end, - }) - end, -} -``` - - - - - - diff --git a/docs/extras/ui/smear-cursor.md b/docs/extras/ui/smear-cursor.md deleted file mode 100644 index bfb003bbf4..0000000000 --- a/docs/extras/ui/smear-cursor.md +++ /dev/null @@ -1,98 +0,0 @@ -# `Smear-cursor` - - - -:::info -You can enable the extra with the `:LazyExtras` command. -Plugins marked as optional will only be configured if they are installed. -::: - -Below you can find a list of included plugins and their default settings. - -:::caution -You don't need to copy the default settings to your config. -They are only shown here for reference. -::: - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -## [smear-cursor.nvim](https://github.com/sphamba/smear-cursor.nvim) - - - - - -```lua -opts = { - hide_target_hack = true, - cursor_color = "none", -} -``` - - - - - - -```lua -{ - "sphamba/smear-cursor.nvim", - event = "VeryLazy", - cond = vim.g.neovide == nil, - opts = { - hide_target_hack = true, - cursor_color = "none", - }, - specs = { - -- disable mini.animate cursor - { - "nvim-mini/mini.animate", - optional = true, - opts = { - cursor = { enable = false }, - }, - }, - }, -} -``` - - - - - -## [mini.animate](https://github.com/nvim-mini/mini.animate) _(optional)_ - - disable mini.animate cursor - - - - - - -```lua -opts = { - cursor = { enable = false }, -} -``` - - - - - - -```lua -{ - "nvim-mini/mini.animate", - optional = true, - opts = { - cursor = { enable = false }, - }, -} -``` - - - - - - diff --git a/docs/extras/ui/treesitter-context.md b/docs/extras/ui/treesitter-context.md deleted file mode 100644 index d7bad09730..0000000000 --- a/docs/extras/ui/treesitter-context.md +++ /dev/null @@ -1,75 +0,0 @@ -# `Treesitter-context` - - - -:::info -You can enable the extra with the `:LazyExtras` command. -Plugins marked as optional will only be configured if they are installed. -::: - -Below you can find a list of included plugins and their default settings. - -:::caution -You don't need to copy the default settings to your config. -They are only shown here for reference. -::: - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -## [nvim-treesitter-context](https://github.com/nvim-treesitter/nvim-treesitter-context) - - - - - -```lua -opts = function() - local tsc = require("treesitter-context") - Snacks.toggle({ - name = "Treesitter Context", - get = tsc.enabled, - set = function(state) - if state then - tsc.enable() - else - tsc.disable() - end - end, - }):map("ut") - return { mode = "cursor", max_lines = 3 } -end -``` - - - - - - -```lua -{ - "nvim-treesitter/nvim-treesitter-context", - event = "LazyFile", - opts = function() - local tsc = require("treesitter-context") - Snacks.toggle({ - name = "Treesitter Context", - get = tsc.enabled, - set = function(state) - if state then - tsc.enable() - else - tsc.disable() - end - end, - }):map("ut") - return { mode = "cursor", max_lines = 3 } - end, -} -``` - - - - - - diff --git a/docs/extras/util/chezmoi.md b/docs/extras/util/chezmoi.md deleted file mode 100644 index a96dcc6508..0000000000 --- a/docs/extras/util/chezmoi.md +++ /dev/null @@ -1,300 +0,0 @@ -# `Chezmoi` - - - -:::info -You can enable the extra with the `:LazyExtras` command. -Plugins marked as optional will only be configured if they are installed. -::: - -Below you can find a list of included plugins and their default settings. - -:::caution -You don't need to copy the default settings to your config. -They are only shown here for reference. -::: - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -## [chezmoi.vim](https://github.com/alker0/chezmoi.vim) - - - - - -```lua -opts = nil -``` - - - - - - -```lua -{ - -- highlighting for chezmoi files template files - "alker0/chezmoi.vim", - init = function() - vim.g["chezmoi#use_tmp_buffer"] = 1 - vim.g["chezmoi#source_dir_path"] = vim.env.HOME .. "/.local/share/chezmoi" - end, -} -``` - - - - - -## [chezmoi.nvim](https://github.com/xvzc/chezmoi.nvim) - - - - - -```lua -opts = { - edit = { - watch = false, - force = false, - }, - notification = { - on_open = true, - on_apply = true, - on_watch = false, - }, - telescope = { - select = { "" }, - }, -} -``` - - - - - - -```lua -{ - "xvzc/chezmoi.nvim", - cmd = { "ChezmoiEdit" }, - keys = { - { - "sz", - pick_chezmoi, - desc = "Chezmoi", - }, - }, - opts = { - edit = { - watch = false, - force = false, - }, - notification = { - on_open = true, - on_apply = true, - on_watch = false, - }, - telescope = { - select = { "" }, - }, - }, - init = function() - -- run chezmoi edit on file enter - vim.api.nvim_create_autocmd({ "BufRead", "BufNewFile" }, { - pattern = { vim.env.HOME .. "/.local/share/chezmoi/*" }, - callback = function() - vim.schedule(require("chezmoi.commands.__edit").watch) - end, - }) - end, -} -``` - - - - - -## [mini.icons](https://github.com/nvim-mini/mini.icons) - - Filetype icons - - - - - - -```lua -opts = { - file = { - [".chezmoiignore"] = { glyph = "", hl = "MiniIconsGrey" }, - [".chezmoiremove"] = { glyph = "", hl = "MiniIconsGrey" }, - [".chezmoiroot"] = { glyph = "", hl = "MiniIconsGrey" }, - [".chezmoiversion"] = { glyph = "", hl = "MiniIconsGrey" }, - ["bash.tmpl"] = { glyph = "", hl = "MiniIconsGrey" }, - ["json.tmpl"] = { glyph = "", hl = "MiniIconsGrey" }, - ["ps1.tmpl"] = { glyph = "󰨊", hl = "MiniIconsGrey" }, - ["sh.tmpl"] = { glyph = "", hl = "MiniIconsGrey" }, - ["toml.tmpl"] = { glyph = "", hl = "MiniIconsGrey" }, - ["yaml.tmpl"] = { glyph = "", hl = "MiniIconsGrey" }, - ["zsh.tmpl"] = { glyph = "", hl = "MiniIconsGrey" }, - }, -} -``` - - - - - - -```lua -{ - "nvim-mini/mini.icons", - opts = { - file = { - [".chezmoiignore"] = { glyph = "", hl = "MiniIconsGrey" }, - [".chezmoiremove"] = { glyph = "", hl = "MiniIconsGrey" }, - [".chezmoiroot"] = { glyph = "", hl = "MiniIconsGrey" }, - [".chezmoiversion"] = { glyph = "", hl = "MiniIconsGrey" }, - ["bash.tmpl"] = { glyph = "", hl = "MiniIconsGrey" }, - ["json.tmpl"] = { glyph = "", hl = "MiniIconsGrey" }, - ["ps1.tmpl"] = { glyph = "󰨊", hl = "MiniIconsGrey" }, - ["sh.tmpl"] = { glyph = "", hl = "MiniIconsGrey" }, - ["toml.tmpl"] = { glyph = "", hl = "MiniIconsGrey" }, - ["yaml.tmpl"] = { glyph = "", hl = "MiniIconsGrey" }, - ["zsh.tmpl"] = { glyph = "", hl = "MiniIconsGrey" }, - }, - }, -} -``` - - - - - -## [dashboard-nvim](https://github.com/nvimdev/dashboard-nvim) _(optional)_ - - - - - -```lua -opts = function(_, opts) - local projects = { - action = pick_chezmoi, - desc = " Config", - icon = "", - key = "c", - } - - projects.desc = projects.desc .. string.rep(" ", 43 - #projects.desc) - projects.key_format = " %s" - - -- remove lazyvim config property - for i = #opts.config.center, 1, -1 do - if opts.config.center[i].key == "c" then - table.remove(opts.config.center, i) - end - end - - table.insert(opts.config.center, 5, projects) -end -``` - - - - - - -```lua -{ - "nvimdev/dashboard-nvim", - optional = true, - opts = function(_, opts) - local projects = { - action = pick_chezmoi, - desc = " Config", - icon = "", - key = "c", - } - - projects.desc = projects.desc .. string.rep(" ", 43 - #projects.desc) - projects.key_format = " %s" - - -- remove lazyvim config property - for i = #opts.config.center, 1, -1 do - if opts.config.center[i].key == "c" then - table.remove(opts.config.center, i) - end - end - - table.insert(opts.config.center, 5, projects) - end, -} -``` - - - - - -## [snacks.nvim](https://github.com/folke/snacks.nvim) _(optional)_ - - - - - -```lua -opts = function(_, opts) - local chezmoi_entry = { - icon = " ", - key = "c", - desc = "Config", - action = pick_chezmoi, - } - local config_index - for i = #opts.dashboard.preset.keys, 1, -1 do - if opts.dashboard.preset.keys[i].key == "c" then - table.remove(opts.dashboard.preset.keys, i) - config_index = i - break - end - end - table.insert(opts.dashboard.preset.keys, config_index, chezmoi_entry) -end -``` - - - - - - -```lua -{ - "folke/snacks.nvim", - optional = true, - opts = function(_, opts) - local chezmoi_entry = { - icon = " ", - key = "c", - desc = "Config", - action = pick_chezmoi, - } - local config_index - for i = #opts.dashboard.preset.keys, 1, -1 do - if opts.dashboard.preset.keys[i].key == "c" then - table.remove(opts.dashboard.preset.keys, i) - config_index = i - break - end - end - table.insert(opts.dashboard.preset.keys, config_index, chezmoi_entry) - end, -} -``` - - - - - - diff --git a/docs/extras/util/dot.md b/docs/extras/util/dot.md deleted file mode 100644 index f58d86c62d..0000000000 --- a/docs/extras/util/dot.md +++ /dev/null @@ -1,179 +0,0 @@ -# Dot Files - - - -:::info -You can enable the extra with the `:LazyExtras` command. -Plugins marked as optional will only be configured if they are installed. -::: - -Below you can find a list of included plugins and their default settings. - -:::caution -You don't need to copy the default settings to your config. -They are only shown here for reference. -::: - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -## [nvim-lspconfig](https://github.com/neovim/nvim-lspconfig) - - - - - -```lua -opts = { - servers = { - bashls = {}, - }, -} -``` - - - - - - -```lua -{ - "neovim/nvim-lspconfig", - opts = { - servers = { - bashls = {}, - }, - }, -} -``` - - - - - -## [mason.nvim](https://github.com/mason-org/mason.nvim) - - - - - -```lua -opts = { ensure_installed = { "shellcheck" } } -``` - - - - - - -```lua -{ - "mason-org/mason.nvim", - opts = { ensure_installed = { "shellcheck" } }, -} -``` - - - - - -## [nvim-treesitter](https://github.com/nvim-treesitter/nvim-treesitter) - - add some stuff to treesitter - - - - - - -```lua -opts = function(_, opts) - local function add(lang) - if type(opts.ensure_installed) == "table" then - table.insert(opts.ensure_installed, lang) - end - end - - vim.filetype.add({ - extension = { rasi = "rasi", rofi = "rasi", wofi = "rasi" }, - filename = { - ["vifmrc"] = "vim", - }, - pattern = { - [".*/waybar/config"] = "jsonc", - [".*/mako/config"] = "dosini", - [".*/kitty/.+%.conf"] = "kitty", - [".*/hypr/.+%.conf"] = "hyprlang", - ["%.env%.[%w_.-]+"] = "sh", - }, - }) - vim.treesitter.language.register("bash", "kitty") - - add("git_config") - - if have("hypr") then - add("hyprlang") - end - - if have("fish") then - add("fish") - end - - if have("rofi") or have("wofi") then - add("rasi") - end -end -``` - - - - - - -```lua -{ - "nvim-treesitter/nvim-treesitter", - opts = function(_, opts) - local function add(lang) - if type(opts.ensure_installed) == "table" then - table.insert(opts.ensure_installed, lang) - end - end - - vim.filetype.add({ - extension = { rasi = "rasi", rofi = "rasi", wofi = "rasi" }, - filename = { - ["vifmrc"] = "vim", - }, - pattern = { - [".*/waybar/config"] = "jsonc", - [".*/mako/config"] = "dosini", - [".*/kitty/.+%.conf"] = "kitty", - [".*/hypr/.+%.conf"] = "hyprlang", - ["%.env%.[%w_.-]+"] = "sh", - }, - }) - vim.treesitter.language.register("bash", "kitty") - - add("git_config") - - if have("hypr") then - add("hyprlang") - end - - if have("fish") then - add("fish") - end - - if have("rofi") or have("wofi") then - add("rasi") - end - end, -} -``` - - - - - - diff --git a/docs/extras/util/gh.md b/docs/extras/util/gh.md deleted file mode 100644 index 71c5469ed1..0000000000 --- a/docs/extras/util/gh.md +++ /dev/null @@ -1,114 +0,0 @@ -# `Gh` - - - -:::info -You can enable the extra with the `:LazyExtras` command. -Plugins marked as optional will only be configured if they are installed. -::: - -Below you can find a list of included plugins and their default settings. - -:::caution -You don't need to copy the default settings to your config. -They are only shown here for reference. -::: - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -### Includes the following extras - -- [lang.git](/extras/lang/git) - -## [litee.nvim](https://github.com/ldelossa/litee.nvim) - - - - - -```lua -opts = nil -``` - - - - - - -```lua -{ "ldelossa/litee.nvim", lazy = true } -``` - - - - - -## [gh.nvim](https://github.com/ldelossa/gh.nvim) - - gh.nvim - - - - - - -```lua -opts = {} -``` - - - - - - -```lua -{ - "ldelossa/gh.nvim", - opts = {}, - config = function(_, opts) - require("litee.lib").setup() - require("litee.gh").setup(opts) - end, - keys = { - { "G", "", desc = "+Github" }, - { "Gc", "", desc = "+Commits" }, - { "Gcc", "GHCloseCommit", desc = "Close" }, - { "Gce", "GHExpandCommit", desc = "Expand" }, - { "Gco", "GHOpenToCommit", desc = "Open To" }, - { "Gcp", "GHPopOutCommit", desc = "Pop Out" }, - { "Gcz", "GHCollapseCommit", desc = "Collapse" }, - { "Gi", "", desc = "+Issues" }, - { "Gip", "GHPreviewIssue", desc = "Preview" }, - { "Gio", "GHOpenIssue", desc = "Open" }, - { "Gl", "", desc = "+Litee" }, - { "Glt", "LTPanel", desc = "Toggle Panel" }, - { "Gp", "", desc = "+Pull Request" }, - { "Gpc", "GHClosePR", desc = "Close" }, - { "Gpd", "GHPRDetails", desc = "Details" }, - { "Gpe", "GHExpandPR", desc = "Expand" }, - { "Gpo", "GHOpenPR", desc = "Open" }, - { "Gpp", "GHPopOutPR", desc = "PopOut" }, - { "Gpr", "GHRefreshPR", desc = "Refresh" }, - { "Gpt", "GHOpenToPR", desc = "Open To" }, - { "Gpz", "GHCollapsePR", desc = "Collapse" }, - { "Gr", "", desc = "+Review" }, - { "Grb", "GHStartReview", desc = "Begin" }, - { "Grc", "GHCloseReview", desc = "Close" }, - { "Grd", "GHDeleteReview", desc = "Delete" }, - { "Gre", "GHExpandReview", desc = "Expand" }, - { "Grs", "GHSubmitReview", desc = "Submit" }, - { "Grz", "GHCollapseReview", desc = "Collapse" }, - { "Gt", "", desc = "+Threads" }, - { "Gtc", "GHCreateThread", desc = "Create" }, - { "Gtn", "GHNextThread", desc = "Next" }, - { "Gtt", "GHToggleThread", desc = "Toggle" }, - }, -} -``` - - - - - - diff --git a/docs/extras/util/gitui.md b/docs/extras/util/gitui.md deleted file mode 100644 index b258db9cf5..0000000000 --- a/docs/extras/util/gitui.md +++ /dev/null @@ -1,76 +0,0 @@ -# `Gitui` - - - -:::info -You can enable the extra with the `:LazyExtras` command. -Plugins marked as optional will only be configured if they are installed. -::: - -Below you can find a list of included plugins and their default settings. - -:::caution -You don't need to copy the default settings to your config. -They are only shown here for reference. -::: - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -## [mason.nvim](https://github.com/mason-org/mason.nvim) - - Ensure GitUI tool is installed - - - - - - -```lua -opts = { ensure_installed = { "gitui" } } -``` - - - - - - -```lua -{ - "mason-org/mason.nvim", - opts = { ensure_installed = { "gitui" } }, - keys = { - { - "gG", - function() - Snacks.terminal({ "gitui" }) - end, - desc = "GitUi (cwd)", - }, - { - "gg", - function() - Snacks.terminal({ "gitui" }, { cwd = LazyVim.root.get() }) - end, - desc = "GitUi (Root Dir)", - }, - }, - init = function() - -- delete lazygit keymap for file history - vim.api.nvim_create_autocmd("User", { - pattern = "LazyVimKeymaps", - once = true, - callback = function() - pcall(vim.keymap.del, "n", "gf") - pcall(vim.keymap.del, "n", "gl") - end, - }) - end, -} -``` - - - - - - diff --git a/docs/extras/util/mini-hipatterns.md b/docs/extras/util/mini-hipatterns.md deleted file mode 100644 index a58f74acba..0000000000 --- a/docs/extras/util/mini-hipatterns.md +++ /dev/null @@ -1,171 +0,0 @@ -# Mini Hipatterns - - - -:::info -You can enable the extra with the `:LazyExtras` command. -Plugins marked as optional will only be configured if they are installed. -::: - -Below you can find a list of included plugins and their default settings. - -:::caution -You don't need to copy the default settings to your config. -They are only shown here for reference. -::: - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -## [mini.hipatterns](https://github.com/nvim-mini/mini.hipatterns) - - - - - -```lua -opts = function() - local hi = require("mini.hipatterns") - return { - -- custom LazyVim option to enable the tailwind integration - tailwind = { - enabled = true, - ft = { - "astro", - "css", - "heex", - "html", - "html-eex", - "javascript", - "javascriptreact", - "rust", - "svelte", - "typescript", - "typescriptreact", - "vue", - }, - -- full: the whole css class will be highlighted - -- compact: only the color will be highlighted - style = "full", - }, - highlighters = { - hex_color = hi.gen_highlighter.hex_color({ priority = 2000 }), - shorthand = { - pattern = "()#%x%x%x()%f[^%x%w]", - group = function(_, _, data) - ---@type string - local match = data.full_match - local r, g, b = match:sub(2, 2), match:sub(3, 3), match:sub(4, 4) - local hex_color = "#" .. r .. r .. g .. g .. b .. b - - return MiniHipatterns.compute_hex_color_group(hex_color, "bg") - end, - extmark_opts = { priority = 2000 }, - }, - }, - } -end -``` - - - - - - -```lua -{ - "nvim-mini/mini.hipatterns", - recommended = true, - desc = "Highlight colors in your code. Also includes Tailwind CSS support.", - event = "LazyFile", - opts = function() - local hi = require("mini.hipatterns") - return { - -- custom LazyVim option to enable the tailwind integration - tailwind = { - enabled = true, - ft = { - "astro", - "css", - "heex", - "html", - "html-eex", - "javascript", - "javascriptreact", - "rust", - "svelte", - "typescript", - "typescriptreact", - "vue", - }, - -- full: the whole css class will be highlighted - -- compact: only the color will be highlighted - style = "full", - }, - highlighters = { - hex_color = hi.gen_highlighter.hex_color({ priority = 2000 }), - shorthand = { - pattern = "()#%x%x%x()%f[^%x%w]", - group = function(_, _, data) - ---@type string - local match = data.full_match - local r, g, b = match:sub(2, 2), match:sub(3, 3), match:sub(4, 4) - local hex_color = "#" .. r .. r .. g .. g .. b .. b - - return MiniHipatterns.compute_hex_color_group(hex_color, "bg") - end, - extmark_opts = { priority = 2000 }, - }, - }, - } - end, - config = function(_, opts) - if type(opts.tailwind) == "table" and opts.tailwind.enabled then - -- reset hl groups when colorscheme changes - vim.api.nvim_create_autocmd("ColorScheme", { - callback = function() - M.hl = {} - end, - }) - opts.highlighters.tailwind = { - pattern = function() - if not vim.tbl_contains(opts.tailwind.ft, vim.bo.filetype) then - return - end - if opts.tailwind.style == "full" then - return "%f[%w:-]()[%w:-]+%-[a-z%-]+%-%d+()%f[^%w:-]" - elseif opts.tailwind.style == "compact" then - return "%f[%w:-][%w:-]+%-()[a-z%-]+%-%d+()%f[^%w:-]" - end - end, - group = function(_, _, m) - ---@type string - local match = m.full_match - ---@type string, number - local color, shade = match:match("[%w-]+%-([a-z%-]+)%-(%d+)") - shade = tonumber(shade) - local bg = vim.tbl_get(M.colors, color, shade) - if bg then - local hl = "MiniHipatternsTailwind" .. color .. shade - if not M.hl[hl] then - M.hl[hl] = true - local bg_shade = shade == 500 and 950 or shade < 500 and 900 or 100 - local fg = vim.tbl_get(M.colors, color, bg_shade) - vim.api.nvim_set_hl(0, hl, { bg = "#" .. bg, fg = "#" .. fg }) - end - return hl - end - end, - extmark_opts = { priority = 2000 }, - } - end - require("mini.hipatterns").setup(opts) - end, -} -``` - - - - - - diff --git a/docs/extras/util/octo.md b/docs/extras/util/octo.md deleted file mode 100644 index e9c2660a4d..0000000000 --- a/docs/extras/util/octo.md +++ /dev/null @@ -1,165 +0,0 @@ -# `Octo` - - - -:::info -You can enable the extra with the `:LazyExtras` command. -Plugins marked as optional will only be configured if they are installed. -::: - -Below you can find a list of included plugins and their default settings. - -:::caution -You don't need to copy the default settings to your config. -They are only shown here for reference. -::: - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -### Includes the following extras - -- [lang.git](/extras/lang/git) - -## [octo.nvim](https://github.com/pwntester/octo.nvim) - - Octo - - - - - - -```lua -opts = { - enable_builtin = true, - default_to_projects_v2 = true, - default_merge_method = "squash", - picker = "telescope", -} -``` - - - - - - -```lua -{ - "pwntester/octo.nvim", - cmd = "Octo", - event = { { event = "BufReadCmd", pattern = "octo://*" } }, - opts = { - enable_builtin = true, - default_to_projects_v2 = true, - default_merge_method = "squash", - picker = "telescope", - }, - keys = { - { "gi", "Octo issue list", desc = "List Issues (Octo)" }, - { "gI", "Octo issue search", desc = "Search Issues (Octo)" }, - { "gp", "Octo pr list", desc = "List PRs (Octo)" }, - { "gP", "Octo pr search", desc = "Search PRs (Octo)" }, - { "gr", "Octo repo list", desc = "List Repos (Octo)" }, - { "gS", "Octo search", desc = "Search (Octo)" }, - - { "a", "", desc = "+assignee (Octo)", ft = "octo" }, - { "c", "", desc = "+comment/code (Octo)", ft = "octo" }, - { "l", "", desc = "+label (Octo)", ft = "octo" }, - { "i", "", desc = "+issue (Octo)", ft = "octo" }, - { "r", "", desc = "+react (Octo)", ft = "octo" }, - { "p", "", desc = "+pr (Octo)", ft = "octo" }, - { "pr", "", desc = "+rebase (Octo)", ft = "octo" }, - { "ps", "", desc = "+squash (Octo)", ft = "octo" }, - { "v", "", desc = "+review (Octo)", ft = "octo" }, - { "g", "", desc = "+goto_issue (Octo)", ft = "octo" }, - { "@", "@", mode = "i", ft = "octo", silent = true }, - { "#", "#", mode = "i", ft = "octo", silent = true }, - }, -} -``` - - - - - -## [octo.nvim](https://github.com/pwntester/octo.nvim) - - Octo Picker - - - - - - -```lua -opts = function(_, opts) - vim.treesitter.language.register("markdown", "octo") - if LazyVim.has_extra("editor.telescope") then - opts.picker = "telescope" - elseif LazyVim.has_extra("editor.fzf") then - opts.picker = "fzf-lua" - elseif LazyVim.has_extra("editor.snacks_picker") then - opts.picker = "snacks" - else - LazyVim.error("`octo.nvim` requires `telescope.nvim` or `fzf-lua` or `snacks.nvim`") - end - - -- Keep some empty windows in sessions - vim.api.nvim_create_autocmd("ExitPre", { - group = vim.api.nvim_create_augroup("octo_exit_pre", { clear = true }), - callback = function(ev) - local keep = { "octo" } - for _, win in ipairs(vim.api.nvim_list_wins()) do - local buf = vim.api.nvim_win_get_buf(win) - if vim.tbl_contains(keep, vim.bo[buf].filetype) then - vim.bo[buf].buftype = "" -- set buftype to empty to keep the window - end - end - end, - }) -end -``` - - - - - - -```lua -{ - "pwntester/octo.nvim", - opts = function(_, opts) - vim.treesitter.language.register("markdown", "octo") - if LazyVim.has_extra("editor.telescope") then - opts.picker = "telescope" - elseif LazyVim.has_extra("editor.fzf") then - opts.picker = "fzf-lua" - elseif LazyVim.has_extra("editor.snacks_picker") then - opts.picker = "snacks" - else - LazyVim.error("`octo.nvim` requires `telescope.nvim` or `fzf-lua` or `snacks.nvim`") - end - - -- Keep some empty windows in sessions - vim.api.nvim_create_autocmd("ExitPre", { - group = vim.api.nvim_create_augroup("octo_exit_pre", { clear = true }), - callback = function(ev) - local keep = { "octo" } - for _, win in ipairs(vim.api.nvim_list_wins()) do - local buf = vim.api.nvim_win_get_buf(win) - if vim.tbl_contains(keep, vim.bo[buf].filetype) then - vim.bo[buf].buftype = "" -- set buftype to empty to keep the window - end - end - end, - }) - end, -} -``` - - - - - - diff --git a/docs/extras/util/project.md b/docs/extras/util/project.md deleted file mode 100644 index 4514dd451d..0000000000 --- a/docs/extras/util/project.md +++ /dev/null @@ -1,304 +0,0 @@ -# Project - - - -:::info -You can enable the extra with the `:LazyExtras` command. -Plugins marked as optional will only be configured if they are installed. -::: - -Below you can find a list of included plugins and their default settings. - -:::caution -You don't need to copy the default settings to your config. -They are only shown here for reference. -::: - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -## [project.nvim](https://github.com/ahmedkhalf/project.nvim) - - - - - -```lua -opts = { - manual_mode = true, -} -``` - - - - - - -```lua -{ - "ahmedkhalf/project.nvim", - opts = { - manual_mode = true, - }, - event = "VeryLazy", - config = function(_, opts) - require("project_nvim").setup(opts) - local history = require("project_nvim.utils.history") - history.delete_project = function(project) - for k, v in pairs(history.recent_projects) do - if v == project.value then - history.recent_projects[k] = nil - return - end - end - end - LazyVim.on_load("telescope.nvim", function() - require("telescope").load_extension("projects") - end) - end, -} -``` - - - - - -## [telescope.nvim](https://github.com/nvim-telescope/telescope.nvim) _(optional)_ - - - - - -```lua -opts = nil -``` - - - - - - -```lua -{ - "nvim-telescope/telescope.nvim", - optional = true, - keys = { - { "fp", pick, desc = "Projects" }, - }, -} -``` - - - - - -## [fzf-lua](https://github.com/ibhagwan/fzf-lua) _(optional)_ - - - - - -```lua -opts = nil -``` - - - - - - -```lua -{ - "ibhagwan/fzf-lua", - optional = true, - keys = { - { "fp", pick, desc = "Projects" }, - }, -} -``` - - - - - -## [alpha-nvim](https://github.com/goolord/alpha-nvim) _(optional)_ - - - - - -```lua -opts = function(_, dashboard) - local button = dashboard.button("P", " " .. " Projects (util.project)", pick) - button.opts.hl = "AlphaButtons" - button.opts.hl_shortcut = "AlphaShortcut" - table.insert(dashboard.section.buttons.val, 4, button) -end -``` - - - - - - -```lua -{ - "goolord/alpha-nvim", - optional = true, - opts = function(_, dashboard) - local button = dashboard.button("P", " " .. " Projects (util.project)", pick) - button.opts.hl = "AlphaButtons" - button.opts.hl_shortcut = "AlphaShortcut" - table.insert(dashboard.section.buttons.val, 4, button) - end, -} -``` - - - - - -## [mini.starter](https://github.com/nvim-mini/mini.starter) _(optional)_ - - - - - -```lua -opts = function(_, opts) - local items = { - { - name = "Projects (util.project)", - action = pick, - section = string.rep(" ", 22) .. "Telescope", - }, - } - vim.list_extend(opts.items, items) -end -``` - - - - - - -```lua -{ - "nvim-mini/mini.starter", - optional = true, - opts = function(_, opts) - local items = { - { - name = "Projects (util.project)", - action = pick, - section = string.rep(" ", 22) .. "Telescope", - }, - } - vim.list_extend(opts.items, items) - end, -} -``` - - - - - -## [dashboard-nvim](https://github.com/nvimdev/dashboard-nvim) _(optional)_ - - - - - -```lua -opts = function(_, opts) - if not vim.tbl_get(opts, "config", "center") then - return - end - local projects = { - action = pick, - desc = " Projects (util.project)", - icon = " ", - key = "P", - } - - projects.desc = projects.desc .. string.rep(" ", 43 - #projects.desc) - projects.key_format = " %s" - - table.insert(opts.config.center, 3, projects) -end -``` - - - - - - -```lua -{ - "nvimdev/dashboard-nvim", - optional = true, - opts = function(_, opts) - if not vim.tbl_get(opts, "config", "center") then - return - end - local projects = { - action = pick, - desc = " Projects (util.project)", - icon = " ", - key = "P", - } - - projects.desc = projects.desc .. string.rep(" ", 43 - #projects.desc) - projects.key_format = " %s" - - table.insert(opts.config.center, 3, projects) - end, -} -``` - - - - - -## [snacks.nvim](https://github.com/folke/snacks.nvim) _(optional)_ - - - - - -```lua -opts = function(_, opts) - table.insert(opts.dashboard.preset.keys, 3, { - action = pick, - desc = "Projects (util.project)", - icon = " ", - key = "P", - }) -end -``` - - - - - - -```lua -{ - "folke/snacks.nvim", - optional = true, - opts = function(_, opts) - table.insert(opts.dashboard.preset.keys, 3, { - action = pick, - desc = "Projects (util.project)", - icon = " ", - key = "P", - }) - end, -} -``` - - - - - - diff --git a/docs/extras/util/rest.md b/docs/extras/util/rest.md deleted file mode 100644 index b828adc996..0000000000 --- a/docs/extras/util/rest.md +++ /dev/null @@ -1,98 +0,0 @@ -# `Rest` - - - -:::info -You can enable the extra with the `:LazyExtras` command. -Plugins marked as optional will only be configured if they are installed. -::: - -Below you can find a list of included plugins and their default settings. - -:::caution -You don't need to copy the default settings to your config. -They are only shown here for reference. -::: - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -## [kulala.nvim](https://github.com/mistweaverco/kulala.nvim) - - - - - -```lua -opts = {} -``` - - - - - - -```lua -{ - "mistweaverco/kulala.nvim", - ft = "http", - keys = { - { "R", "", desc = "+Rest" }, - { "Rb", "lua require('kulala').scratchpad()", desc = "Open scratchpad" }, - { "Rc", "lua require('kulala').copy()", desc = "Copy as cURL", ft = "http" }, - { "RC", "lua require('kulala').from_curl()", desc = "Paste from curl", ft = "http" }, - { "Re", "lua require('kulala').set_selected_env()", desc = "Set environment", ft = "http" }, - { - "Rg", - "lua require('kulala').download_graphql_schema()", - desc = "Download GraphQL schema", - ft = "http", - }, - { "Ri", "lua require('kulala').inspect()", desc = "Inspect current request", ft = "http" }, - { "Rn", "lua require('kulala').jump_next()", desc = "Jump to next request", ft = "http" }, - { "Rp", "lua require('kulala').jump_prev()", desc = "Jump to previous request", ft = "http" }, - { "Rq", "lua require('kulala').close()", desc = "Close window", ft = "http" }, - { "Rr", "lua require('kulala').replay()", desc = "Replay the last request" }, - { "Rs", "lua require('kulala').run()", desc = "Send the request", ft = "http" }, - { "RS", "lua require('kulala').show_stats()", desc = "Show stats", ft = "http" }, - { "Rt", "lua require('kulala').toggle_view()", desc = "Toggle headers/body", ft = "http" }, - }, - opts = {}, -} -``` - - - - - -## [nvim-treesitter](https://github.com/nvim-treesitter/nvim-treesitter) - - - - - -```lua -opts = { - ensure_installed = { "http", "graphql" }, -} -``` - - - - - - -```lua -{ - "nvim-treesitter/nvim-treesitter", - opts = { - ensure_installed = { "http", "graphql" }, - }, -} -``` - - - - - - diff --git a/docs/extras/util/startuptime.md b/docs/extras/util/startuptime.md deleted file mode 100644 index 6f3a4b2406..0000000000 --- a/docs/extras/util/startuptime.md +++ /dev/null @@ -1,49 +0,0 @@ -# `Startuptime` - - - -:::info -You can enable the extra with the `:LazyExtras` command. -Plugins marked as optional will only be configured if they are installed. -::: - -Below you can find a list of included plugins and their default settings. - -:::caution -You don't need to copy the default settings to your config. -They are only shown here for reference. -::: - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -## [vim-startuptime](https://github.com/dstein64/vim-startuptime) - - - - - -```lua -opts = {} -``` - - - - - - -```lua -{ - "dstein64/vim-startuptime", - cmd = "StartupTime", - config = function() - vim.g.startuptime_tries = 10 - end, -} -``` - - - - - - diff --git a/docs/extras/vscode.md b/docs/extras/vscode.md deleted file mode 100644 index e65c5ce642..0000000000 --- a/docs/extras/vscode.md +++ /dev/null @@ -1,48 +0,0 @@ -# VS Code - -This extra will only load when `vim.g.vscode` is set. - -Enabled plugins: - -```lua -{ - "dial.nvim", - "flit.nvim", - "lazy.nvim", - "leap.nvim", - "mini.ai", - "mini.comment", - "mini.move", - "mini.pairs", - "mini.surround", - "nvim-treesitter", - "nvim-treesitter-textobjects", - "nvim-ts-context-commentstring", - "vim-repeat", - "yanky.nvim", -} -``` - -Some additional keymaps are added similar to the ones in regular LazyVim. - -If you want to include any additional plugins in **vscode**, -you can set `vscode=true` on a plugin spec. - - - -:::info -You can enable the extra with the `:LazyExtras` command. -Plugins marked as optional will only be configured if they are installed. -::: - -Below you can find a list of included plugins and their default settings. - -:::caution -You don't need to copy the default settings to your config. -They are only shown here for reference. -::: - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - - diff --git a/docs/installation.md b/docs/installation.md deleted file mode 100644 index 253464b3e6..0000000000 --- a/docs/installation.md +++ /dev/null @@ -1,108 +0,0 @@ ---- -sidebar_position: 2 ---- - -# 🛠️ Installation - -You can find a starter template for **LazyVim** [here](https://github.com/LazyVim/starter) - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - - - - -Install the [LazyVim Starter](https://github.com/LazyVim/starter) - -- Make a backup of your current Neovim files: - - ```sh - # required - mv ~/.config/nvim{,.bak} - - # optional but recommended - mv ~/.local/share/nvim{,.bak} - mv ~/.local/state/nvim{,.bak} - mv ~/.cache/nvim{,.bak} - ``` - -- Clone the starter - - ```sh - git clone https://github.com/LazyVim/starter ~/.config/nvim - ``` - -- Remove the `.git` folder, so you can add it to your own repo later - - ```sh - rm -rf ~/.config/nvim/.git - ``` - -- Start Neovim! - - ```sh - nvim - ``` - - Refer to the comments in the files on how to customize **LazyVim**. - - - - - -Install the [LazyVim Starter](https://github.com/LazyVim/starter) -with [PowerShell](https://github.com/PowerShell/PowerShell) - -- Make a backup of your current Neovim files: - - ```powershell - # required - Move-Item $env:LOCALAPPDATA\nvim $env:LOCALAPPDATA\nvim.bak - - # optional but recommended - Move-Item $env:LOCALAPPDATA\nvim-data $env:LOCALAPPDATA\nvim-data.bak - ``` - -- Clone the starter - - ```powershell - git clone https://github.com/LazyVim/starter $env:LOCALAPPDATA\nvim - ``` - -- Remove the `.git` folder, so you can add it to your own repo later - - ```powershell - Remove-Item $env:LOCALAPPDATA\nvim\.git -Recurse -Force - ``` - -- Start Neovim! - - ```powershell - nvim - ``` - - Refer to the comments in the files on how to customize **LazyVim**. - - - - - -```sh -docker run -w /root -it --rm fedora:latest sh -uelic ' - dnf copr enable -y dejan/lazygit - dnf install -y git lazygit fd-find curl ripgrep tree-sitter-cli neovim - git clone https://github.com/LazyVim/starter ~/.config/nvim - cd ~/.config/nvim - nvim -' -``` - - - - -:::tip - -It is recommended to run `:LazyHealth` after installation. -This will load all plugins and check if everything is working correctly. - -::: diff --git a/docs/intro.md b/docs/intro.md deleted file mode 100644 index fe77ec4658..0000000000 --- a/docs/intro.md +++ /dev/null @@ -1,53 +0,0 @@ ---- -slug: / -sidebar_position: 1 ---- - -# 🚀 Getting Started - -import LogoSvg from '/img/logo.svg'; - - - -LazyVim is a Neovim setup powered by [💤 lazy.nvim](https://github.com/folke/lazy.nvim) -to make it easy to customize and extend your config. - -![image](https://user-images.githubusercontent.com/292349/213447056-92290767-ea16-430c-8727-ce994c93e9cc.png) - -## ✨ Features - -- 🔥 Transform your Neovim into a full-fledged IDE -- 💤 Easily customize and extend your config with [lazy.nvim](https://github.com/folke/lazy.nvim) -- 🚀 Blazingly fast -- 🧹 Sane default settings for options, autocmds, and keymaps -- 📦 Comes with a wealth of plugins pre-configured and ready to use - -## ⚡️ Requirements - -- Neovim >= **0.11.2** (needs to be built with **LuaJIT**) -- Git >= **2.19.0** (for partial clones support) -- a [Nerd Font](https://www.nerdfonts.com/)(v3.0 or greater) **_(optional, but needed to display some icons)_** -- [lazygit](https://github.com/jesseduffield/lazygit) **_(optional)_** -- **tree-sitter-cli** and a **C** compiler for `nvim-treesitter`. See [here](https://github.com/nvim-treesitter/nvim-treesitter/tree/main?tab=readme-ov-file#requirements) -- **curl** for [blink.cmp](https://github.com/Saghen/blink.cmp) **(completion engine)** -- for [fzf-lua](https://github.com/ibhagwan/fzf-lua) **_(optional)_** - - **fzf**: [fzf](https://github.com/junegunn/fzf) **(v0.25.1 or greater)** - - **live grep**: [ripgrep](https://github.com/BurntSushi/ripgrep) - - **find files**: [fd](https://github.com/sharkdp/fd) -- a terminal that support true color and _undercurl_: - - [kitty](https://github.com/kovidgoyal/kitty) **_(Linux & Macos)_** - - [wezterm](https://github.com/wez/wezterm) **_(Linux, Macos & Windows)_** - - [alacritty](https://github.com/alacritty/alacritty) **_(Linux, Macos & Windows)_** - - [iterm2](https://iterm2.com/) **_(Macos)_** - - [ghostty](https://ghostty.org/) **_(Linux, Macos & Windows)_** - -## 🎓 Learn - -There's a great video created by [@elijahmanor](https://github.com/elijahmanor) -with a walkthrough to get started. - -[![Watch the video](https://img.youtube.com/vi/N93cTbtLCIM/hqdefault.jpg)](https://www.youtube.com/watch?v=N93cTbtLCIM) - -[@dusty-phillips](https://github.com/dusty-phillips) is working on a book called -[LazyVim for Ambitious Developers](https://lazyvim-ambitious-devs.phillips.codes) -available for free online. diff --git a/docs/keymaps.md b/docs/keymaps.md deleted file mode 100644 index 232b38f898..0000000000 --- a/docs/keymaps.md +++ /dev/null @@ -1,828 +0,0 @@ ---- -sidebar_position: 3 ---- - -# ⌨️ Keymaps - -**LazyVim** uses [which-key.nvim](https://github.com/folke/which-key.nvim) to help you remember your -keymaps. Just press any key like `` and you'll see a popup with all -possible keymaps starting with ``. - -![image](https://user-images.githubusercontent.com/292349/211862473-1ff5ee7a-3bb9-4782-a9f6-014f0e5d4474.png) - -- default `` is `` -- default `` is `\` - - - -## General - -| Key | Description | Mode | -| --- | --- | --- | -| j | Down | **n**, **x** | -| <Down> | Down | **n**, **x** | -| k | Up | **n**, **x** | -| <Up> | Up | **n**, **x** | -| <C-h> | Go to Left Window | **n** | -| <C-j> | Go to Lower Window | **n** | -| <C-k> | Go to Upper Window | **n** | -| <C-l> | Go to Right Window | **n** | -| <C-Up> | Increase Window Height | **n** | -| <C-Down> | Decrease Window Height | **n** | -| <C-Left> | Decrease Window Width | **n** | -| <C-Right> | Increase Window Width | **n** | -| <A-j> | Move Down | **n**, **i**, **v** | -| <A-k> | Move Up | **n**, **i**, **v** | -| <S-h> | Prev Buffer | **n** | -| <S-l> | Next Buffer | **n** | -| [b | Prev Buffer | **n** | -| ]b | Next Buffer | **n** | -| <leader>bb | Switch to Other Buffer | **n** | -| <leader>` | Switch to Other Buffer | **n** | -| <leader>bd | Delete Buffer | **n** | -| <leader>bo | Delete Other Buffers | **n** | -| <leader>bD | Delete Buffer and Window | **n** | -| <esc> | Escape and Clear hlsearch | **i**, **n**, **s** | -| <leader>ur | Redraw / Clear hlsearch / Diff Update | **n** | -| n | Next Search Result | **n**, **x**, **o** | -| N | Prev Search Result | **n**, **x**, **o** | -| <C-s> | Save File | **i**, **x**, **n**, **s** | -| <leader>K | Keywordprg | **n** | -| gco | Add Comment Below | **n** | -| gcO | Add Comment Above | **n** | -| <leader>l | Lazy | **n** | -| <leader>fn | New File | **n** | -| <leader>xl | Location List | **n** | -| <leader>xq | Quickfix List | **n** | -| [q | Previous Quickfix | **n** | -| ]q | Next Quickfix | **n** | -| <leader>cf | Format | **n**, **x** | -| <leader>cd | Line Diagnostics | **n** | -| ]d | Next Diagnostic | **n** | -| [d | Prev Diagnostic | **n** | -| ]e | Next Error | **n** | -| [e | Prev Error | **n** | -| ]w | Next Warning | **n** | -| [w | Prev Warning | **n** | -| <leader>uf | Toggle Auto Format (Global) | **n** | -| <leader>uF | Toggle Auto Format (Buffer) | **n** | -| <leader>us | Toggle Spelling | **n** | -| <leader>uw | Toggle Wrap | **n** | -| <leader>uL | Toggle Relative Number | **n** | -| <leader>ud | Toggle Diagnostics | **n** | -| <leader>ul | Toggle Line Numbers | **n** | -| <leader>uc | Toggle Conceal Level | **n** | -| <leader>uA | Toggle Tabline | **n** | -| <leader>uT | Toggle Treesitter Highlight | **n** | -| <leader>ub | Toggle Dark Background | **n** | -| <leader>uD | Toggle Dimming | **n** | -| <leader>ua | Toggle Animations | **n** | -| <leader>ug | Toggle Indent Guides | **n** | -| <leader>uS | Toggle Smooth Scroll | **n** | -| <leader>dpp | Toggle Profiler | **n** | -| <leader>dph | Toggle Profiler Highlights | **n** | -| <leader>uh | Toggle Inlay Hints | **n** | -| <leader>gL | Git Log (cwd) | **n** | -| <leader>gb | Git Blame Line | **n** | -| <leader>gf | Git Current File History | **n** | -| <leader>gl | Git Log | **n** | -| <leader>gB | Git Browse (open) | **n**, **x** | -| <leader>gY | Git Browse (copy) | **n**, **x** | -| <leader>qq | Quit All | **n** | -| <leader>ui | Inspect Pos | **n** | -| <leader>uI | Inspect Tree | **n** | -| <leader>L | LazyVim Changelog | **n** | -| <leader>fT | Terminal (cwd) | **n** | -| <leader>ft | Terminal (Root Dir) | **n** | -| <c-/> | Terminal (Root Dir) | **n**, **t** | -| <c-_> | which_key_ignore | **n**, **t** | -| <leader>- | Split Window Below | **n** | -| <leader>| | Split Window Right | **n** | -| <leader>wd | Delete Window | **n** | -| <leader>wm | Toggle Zoom Mode | **n** | -| <leader>uZ | Toggle Zoom Mode | **n** | -| <leader>uz | Toggle Zen Mode | **n** | -| <leader><tab>l | Last Tab | **n** | -| <leader><tab>o | Close Other Tabs | **n** | -| <leader><tab>f | First Tab | **n** | -| <leader><tab><tab> | New Tab | **n** | -| <leader><tab>] | Next Tab | **n** | -| <leader><tab>d | Close Tab | **n** | -| <leader><tab>[ | Previous Tab | **n** | - -## LSP - -| Key | Description | Mode | -| --- | --- | --- | -| <leader>cl | Lsp Info | **n** | -| gd | Goto Definition | **n** | -| gr | References | **n** | -| gI | Goto Implementation | **n** | -| gy | Goto T[y]pe Definition | **n** | -| gD | Goto Declaration | **n** | -| K | Hover | **n** | -| gK | Signature Help | **n** | -| <c-k> | Signature Help | **i** | -| <leader>ca | Code Action | **n**, **x** | -| <leader>cc | Run Codelens | **n**, **x** | -| <leader>cC | Refresh & Display Codelens | **n** | -| <leader>cR | Rename File | **n** | -| <leader>cr | Rename | **n** | -| <leader>cA | Source Action | **n** | -| ]] | Next Reference | **n** | -| [[ | Prev Reference | **n** | -| <a-n> | Next Reference | **n** | -| <a-p> | Prev Reference | **n** | - -## [bufferline.nvim](https://github.com/akinsho/bufferline.nvim.git) - -| Key | Description | Mode | -| --- | --- | --- | -| <leader>bl | Delete Buffers to the Left | **n** | -| <leader>bp | Toggle Pin | **n** | -| <leader>bP | Delete Non-Pinned Buffers | **n** | -| <leader>br | Delete Buffers to the Right | **n** | -| [b | Prev Buffer | **n** | -| [B | Move buffer prev | **n** | -| ]b | Next Buffer | **n** | -| ]B | Move buffer next | **n** | -| <S-h> | Prev Buffer | **n** | -| <S-l> | Next Buffer | **n** | - -## [conform.nvim](https://github.com/stevearc/conform.nvim.git) - -| Key | Description | Mode | -| --- | --- | --- | -| <leader>cF | Format Injected Langs | **n**, **x** | - -## [flash.nvim](https://github.com/folke/flash.nvim.git) - -| Key | Description | Mode | -| --- | --- | --- | -| <c-s> | Toggle Flash Search | **c** | -| r | Remote Flash | **o** | -| R | Treesitter Search | **o**, **x** | -| s | Flash | **n**, **o**, **x** | -| S | Flash Treesitter | **n**, **o**, **x** | -| <c-space> | Treesitter Incremental Selection | **n**, **o**, **x** | - -## [grug-far.nvim](https://github.com/MagicDuck/grug-far.nvim.git) - -| Key | Description | Mode | -| --- | --- | --- | -| <leader>sr | Search and Replace | **n**, **x** | - -## [mason.nvim](https://github.com/mason-org/mason.nvim.git) - -| Key | Description | Mode | -| --- | --- | --- | -| <leader>cm | Mason | **n** | - -## [noice.nvim](https://github.com/folke/noice.nvim.git) - -| Key | Description | Mode | -| --- | --- | --- | -| <c-b> | Scroll Backward | **n**, **i**, **s** | -| <c-f> | Scroll Forward | **n**, **i**, **s** | -| <leader>sn | +noice | **n** | -| <leader>sna | Noice All | **n** | -| <leader>snd | Dismiss All | **n** | -| <leader>snh | Noice History | **n** | -| <leader>snl | Noice Last Message | **n** | -| <leader>snt | Noice Picker (Telescope/FzfLua) | **n** | -| <S-Enter> | Redirect Cmdline | **c** | - -## [persistence.nvim](https://github.com/folke/persistence.nvim.git) - -| Key | Description | Mode | -| --- | --- | --- | -| <leader>qd | Don't Save Current Session | **n** | -| <leader>ql | Restore Last Session | **n** | -| <leader>qs | Restore Session | **n** | -| <leader>qS | Select Session | **n** | - -## [snacks.nvim](https://github.com/folke/snacks.nvim.git) - -| Key | Description | Mode | -| --- | --- | --- | -| <leader><space> | Find Files (Root Dir) | **n** | -| <leader>, | Buffers | **n** | -| <leader>. | Toggle Scratch Buffer | **n** | -| <leader>/ | Grep (Root Dir) | **n** | -| <leader>: | Command History | **n** | -| <leader>dps | Profiler Scratch Buffer | **n** | -| <leader>e | Explorer Snacks (root dir) | **n** | -| <leader>E | Explorer Snacks (cwd) | **n** | -| <leader>fb | Buffers | **n** | -| <leader>fB | Buffers (all) | **n** | -| <leader>fc | Find Config File | **n** | -| <leader>fe | Explorer Snacks (root dir) | **n** | -| <leader>fE | Explorer Snacks (cwd) | **n** | -| <leader>ff | Find Files (Root Dir) | **n** | -| <leader>fF | Find Files (cwd) | **n** | -| <leader>fg | Find Files (git-files) | **n** | -| <leader>fp | Projects | **n** | -| <leader>fr | Recent | **n** | -| <leader>fR | Recent (cwd) | **n** | -| <leader>gd | Git Diff (hunks) | **n** | -| <leader>gD | Git Diff (origin) | **n** | -| <leader>gs | Git Status | **n** | -| <leader>gS | Git Stash | **n** | -| <leader>n | Notification History | **n** | -| <leader>S | Select Scratch Buffer | **n** | -| <leader>s" | Registers | **n** | -| <leader>s/ | Search History | **n** | -| <leader>sa | Autocmds | **n** | -| <leader>sb | Buffer Lines | **n** | -| <leader>sB | Grep Open Buffers | **n** | -| <leader>sc | Command History | **n** | -| <leader>sC | Commands | **n** | -| <leader>sd | Diagnostics | **n** | -| <leader>sD | Buffer Diagnostics | **n** | -| <leader>sg | Grep (Root Dir) | **n** | -| <leader>sG | Grep (cwd) | **n** | -| <leader>sh | Help Pages | **n** | -| <leader>sH | Highlights | **n** | -| <leader>si | Icons | **n** | -| <leader>sj | Jumps | **n** | -| <leader>sk | Keymaps | **n** | -| <leader>sl | Location List | **n** | -| <leader>sm | Marks | **n** | -| <leader>sM | Man Pages | **n** | -| <leader>sp | Search for Plugin Spec | **n** | -| <leader>sq | Quickfix List | **n** | -| <leader>sR | Resume | **n** | -| <leader>su | Undotree | **n** | -| <leader>sw | Visual selection or word (Root Dir) | **n**, **x** | -| <leader>sW | Visual selection or word (cwd) | **n**, **x** | -| <leader>uC | Colorschemes | **n** | -| <leader>un | Dismiss All Notifications | **n** | - -## [todo-comments.nvim](https://github.com/folke/todo-comments.nvim.git) - -| Key | Description | Mode | -| --- | --- | --- | -| <leader>st | Todo | **n** | -| <leader>sT | Todo/Fix/Fixme | **n** | -| <leader>xt | Todo (Trouble) | **n** | -| <leader>xT | Todo/Fix/Fixme (Trouble) | **n** | -| [t | Previous Todo Comment | **n** | -| ]t | Next Todo Comment | **n** | - -## [trouble.nvim](https://github.com/folke/trouble.nvim.git) - -| Key | Description | Mode | -| --- | --- | --- | -| <leader>cs | Symbols (Trouble) | **n** | -| <leader>cS | LSP references/definitions/... (Trouble) | **n** | -| <leader>xL | Location List (Trouble) | **n** | -| <leader>xQ | Quickfix List (Trouble) | **n** | -| <leader>xx | Diagnostics (Trouble) | **n** | -| <leader>xX | Buffer Diagnostics (Trouble) | **n** | -| [q | Previous Trouble/Quickfix Item | **n** | -| ]q | Next Trouble/Quickfix Item | **n** | - -## [which-key.nvim](https://github.com/folke/which-key.nvim.git) - -| Key | Description | Mode | -| --- | --- | --- | -| <c-w><space> | Window Hydra Mode (which-key) | **n** | -| <leader>? | Buffer Keymaps (which-key) | **n** | - -## [avante.nvim](https://github.com/yetone/avante.nvim.git) -Part of [lazyvim.plugins.extras.ai.avante](/extras/ai/avante) - -| Key | Description | Mode | -| --- | --- | --- | -| <leader>aa | Ask Avante | **n** | -| <leader>ac | Chat with Avante | **n** | -| <leader>ae | Edit Avante | **n** | -| <leader>af | Focus Avante | **n** | -| <leader>ah | Avante History | **n** | -| <leader>am | Select Avante Model | **n** | -| <leader>an | New Avante Chat | **n** | -| <leader>ap | Switch Avante Provider | **n** | -| <leader>ar | Refresh Avante | **n** | -| <leader>as | Stop Avante | **n** | -| <leader>at | Toggle Avante | **n** | - -## [claudecode.nvim](https://github.com/coder/claudecode.nvim.git) -Part of [lazyvim.plugins.extras.ai.claudecode](/extras/ai/claudecode) - -| Key | Description | Mode | -| --- | --- | --- | -| <leader>a | +ai | **n**, **v** | -| <leader>aa | Accept diff | **n** | -| <leader>ab | Add current buffer | **n** | -| <leader>ac | Toggle Claude | **n** | -| <leader>aC | Continue Claude | **n** | -| <leader>ad | Deny diff | **n** | -| <leader>af | Focus Claude | **n** | -| <leader>ar | Resume Claude | **n** | -| <leader>as | Add file | **n** | -| <leader>as | Send to Claude | **v** | - -## [CopilotChat.nvim](https://github.com/CopilotC-Nvim/CopilotChat.nvim.git) -Part of [lazyvim.plugins.extras.ai.copilot-chat](/extras/ai/copilot-chat) - -| Key | Description | Mode | -| --- | --- | --- | -| <c-s> | Submit Prompt | **n** | -| <leader>a | +ai | **n**, **x** | -| <leader>aa | Toggle (CopilotChat) | **n**, **x** | -| <leader>ap | Prompt Actions (CopilotChat) | **n**, **x** | -| <leader>aq | Quick Chat (CopilotChat) | **n**, **x** | -| <leader>ax | Clear (CopilotChat) | **n**, **x** | - -## [sidekick.nvim](https://github.com/folke/sidekick.nvim.git) -Part of [lazyvim.plugins.extras.ai.sidekick](/extras/ai/sidekick) - -| Key | Description | Mode | -| --- | --- | --- | -| <leader>a | +ai | **n**, **v** | -| <leader>aa | Sidekick Toggle CLI | **n** | -| <leader>ad | Detach a CLI Session | **n** | -| <leader>af | Send File | **n** | -| <leader>ap | Sidekick Select Prompt | **n**, **x** | -| <leader>as | Select CLI | **n** | -| <leader>at | Send This | **n**, **x** | -| <leader>av | Send Visual Selection | **x** | -| <c-.> | Sidekick Toggle | **n**, **i**, **t**, **x** | - -## [mini.surround](https://github.com/nvim-mini/mini.surround.git) -Part of [lazyvim.plugins.extras.coding.mini-surround](/extras/coding/mini-surround) - -| Key | Description | Mode | -| --- | --- | --- | -| gsa | Add Surrounding | **n**, **x** | -| gsd | Delete Surrounding | **n** | -| gsf | Find Right Surrounding | **n** | -| gsF | Find Left Surrounding | **n** | -| gsh | Highlight Surrounding | **n** | -| gsn | Update `MiniSurround.config.n_lines` | **n** | -| gsr | Replace Surrounding | **n** | - -## [neogen](https://github.com/danymat/neogen.git) -Part of [lazyvim.plugins.extras.coding.neogen](/extras/coding/neogen) - -| Key | Description | Mode | -| --- | --- | --- | -| <leader>cn | Generate Annotations (Neogen) | **n** | - -## [yanky.nvim](https://github.com/gbprod/yanky.nvim.git) -Part of [lazyvim.plugins.extras.coding.yanky](/extras/coding/yanky) - -| Key | Description | Mode | -| --- | --- | --- | -| <leader>p | Open Yank History | **n**, **x** | -| <p | Put and Indent Left | **n** | -| <P | Put Before and Indent Left | **n** | -| =p | Put After Applying a Filter | **n** | -| =P | Put Before Applying a Filter | **n** | -| >p | Put and Indent Right | **n** | -| >P | Put Before and Indent Right | **n** | -| [p | Put Indented Before Cursor (Linewise) | **n** | -| [P | Put Indented Before Cursor (Linewise) | **n** | -| [y | Cycle Forward Through Yank History | **n** | -| ]p | Put Indented After Cursor (Linewise) | **n** | -| ]P | Put Indented After Cursor (Linewise) | **n** | -| ]y | Cycle Backward Through Yank History | **n** | -| gp | Put Text After Selection | **n**, **x** | -| gP | Put Text Before Selection | **n**, **x** | -| p | Put Text After Cursor | **n**, **x** | -| P | Put Text Before Cursor | **n**, **x** | -| y | Yank Text | **n**, **x** | - -## [nvim-dap](https://github.com/mfussenegger/nvim-dap.git) -Part of [lazyvim.plugins.extras.dap.core](/extras/dap/core) - -| Key | Description | Mode | -| --- | --- | --- | -| <leader>da | Run with Args | **n** | -| <leader>db | Toggle Breakpoint | **n** | -| <leader>dB | Breakpoint Condition | **n** | -| <leader>dc | Run/Continue | **n** | -| <leader>dC | Run to Cursor | **n** | -| <leader>dg | Go to Line (No Execute) | **n** | -| <leader>di | Step Into | **n** | -| <leader>dj | Down | **n** | -| <leader>dk | Up | **n** | -| <leader>dl | Run Last | **n** | -| <leader>do | Step Out | **n** | -| <leader>dO | Step Over | **n** | -| <leader>dP | Pause | **n** | -| <leader>dr | Toggle REPL | **n** | -| <leader>ds | Session | **n** | -| <leader>dt | Terminate | **n** | -| <leader>dw | Widgets | **n** | - -## [nvim-dap-ui](https://github.com/rcarriga/nvim-dap-ui.git) -Part of [lazyvim.plugins.extras.dap.core](/extras/dap/core) - -| Key | Description | Mode | -| --- | --- | --- | -| <leader>de | Eval | **n**, **x** | -| <leader>du | Dap UI | **n** | - -## [aerial.nvim](https://github.com/stevearc/aerial.nvim.git) -Part of [lazyvim.plugins.extras.editor.aerial](/extras/editor/aerial) - -| Key | Description | Mode | -| --- | --- | --- | -| <leader>cs | Aerial (Symbols) | **n** | - -## [telescope.nvim](https://github.com/nvim-telescope/telescope.nvim.git) -Part of [lazyvim.plugins.extras.editor.aerial](/extras/editor/aerial) - -| Key | Description | Mode | -| --- | --- | --- | -| <leader>ss | Goto Symbol (Aerial) | **n** | - -## [dial.nvim](https://github.com/monaqa/dial.nvim.git) -Part of [lazyvim.plugins.extras.editor.dial](/extras/editor/dial) - -| Key | Description | Mode | -| --- | --- | --- | -| <C-a> | Increment | **n**, **v** | -| <C-x> | Decrement | **n**, **v** | -| g<C-a> | Increment | **n**, **x** | -| g<C-x> | Decrement | **n**, **x** | - -## [harpoon](https://github.com/ThePrimeagen/harpoon.git) -Part of [lazyvim.plugins.extras.editor.harpoon2](/extras/editor/harpoon2) - -| Key | Description | Mode | -| --- | --- | --- | -| <leader>1 | Harpoon to File 1 | **n** | -| <leader>2 | Harpoon to File 2 | **n** | -| <leader>3 | Harpoon to File 3 | **n** | -| <leader>4 | Harpoon to File 4 | **n** | -| <leader>5 | Harpoon to File 5 | **n** | -| <leader>6 | Harpoon to File 6 | **n** | -| <leader>7 | Harpoon to File 7 | **n** | -| <leader>8 | Harpoon to File 8 | **n** | -| <leader>9 | Harpoon to File 9 | **n** | -| <leader>h | Harpoon Quick Menu | **n** | -| <leader>H | Harpoon File | **n** | - -## [vim-illuminate](https://github.com/RRethy/vim-illuminate.git) -Part of [lazyvim.plugins.extras.editor.illuminate](/extras/editor/illuminate) - -| Key | Description | Mode | -| --- | --- | --- | -| [[ | Prev Reference | **n** | -| ]] | Next Reference | **n** | - -## [leap.nvim](https://github.com/ggandor/leap.nvim.git) -Part of [lazyvim.plugins.extras.editor.leap](/extras/editor/leap) - -| Key | Description | Mode | -| --- | --- | --- | -| gs | Leap from Windows | **n**, **o**, **x** | -| s | Leap Forward to | **n**, **o**, **x** | -| S | Leap Backward to | **n**, **o**, **x** | - -## [mini.surround](https://github.com/nvim-mini/mini.surround.git) -Part of [lazyvim.plugins.extras.editor.leap](/extras/editor/leap) - -| Key | Description | Mode | -| --- | --- | --- | -| gz | +surround | **n** | - -## [mini.diff](https://github.com/nvim-mini/mini.diff.git) -Part of [lazyvim.plugins.extras.editor.mini-diff](/extras/editor/mini-diff) - -| Key | Description | Mode | -| --- | --- | --- | -| <leader>go | Toggle mini.diff overlay | **n** | - -## [mini.files](https://github.com/nvim-mini/mini.files.git) -Part of [lazyvim.plugins.extras.editor.mini-files](/extras/editor/mini-files) - -| Key | Description | Mode | -| --- | --- | --- | -| <leader>fm | Open mini.files (Directory of Current File) | **n** | -| <leader>fM | Open mini.files (cwd) | **n** | - -## [outline.nvim](https://github.com/hedyhli/outline.nvim.git) -Part of [lazyvim.plugins.extras.editor.outline](/extras/editor/outline) - -| Key | Description | Mode | -| --- | --- | --- | -| <leader>cs | Toggle Outline | **n** | - -## [overseer.nvim](https://github.com/stevearc/overseer.nvim.git) -Part of [lazyvim.plugins.extras.editor.overseer](/extras/editor/overseer) - -| Key | Description | Mode | -| --- | --- | --- | -| <leader>ob | Task builder | **n** | -| <leader>oc | Clear cache | **n** | -| <leader>oi | Overseer Info | **n** | -| <leader>oo | Run task | **n** | -| <leader>oq | Action recent task | **n** | -| <leader>ot | Task action | **n** | -| <leader>ow | Task list | **n** | - -## [refactoring.nvim](https://github.com/ThePrimeagen/refactoring.nvim.git) -Part of [lazyvim.plugins.extras.editor.refactoring](/extras/editor/refactoring) - -| Key | Description | Mode | -| --- | --- | --- | -| <leader>r | +refactor | **n**, **x** | -| <leader>rb | Extract Block | **n**, **x** | -| <leader>rc | Debug Cleanup | **n** | -| <leader>rf | Extract Function | **n**, **x** | -| <leader>rF | Extract Function To File | **n**, **x** | -| <leader>ri | Inline Variable | **n**, **x** | -| <leader>rp | Debug Print Variable | **n**, **x** | -| <leader>rP | Debug Print | **n** | -| <leader>rs | Refactor | **n**, **x** | -| <leader>rx | Extract Variable | **n**, **x** | - -## [snacks.nvim](https://github.com/folke/snacks.nvim.git) -Part of [lazyvim.plugins.extras.editor.snacks_explorer](/extras/editor/snacks_explorer) - -| Key | Description | Mode | -| --- | --- | --- | -| <leader>e | Explorer Snacks (root dir) | **n** | -| <leader>E | Explorer Snacks (cwd) | **n** | -| <leader>fe | Explorer Snacks (root dir) | **n** | -| <leader>fE | Explorer Snacks (cwd) | **n** | - -## [snacks.nvim](https://github.com/folke/snacks.nvim.git) -Part of [lazyvim.plugins.extras.editor.snacks_picker](/extras/editor/snacks_picker) - -| Key | Description | Mode | -| --- | --- | --- | -| <leader><space> | Find Files (Root Dir) | **n** | -| <leader>, | Buffers | **n** | -| <leader>/ | Grep (Root Dir) | **n** | -| <leader>: | Command History | **n** | -| <leader>fb | Buffers | **n** | -| <leader>fB | Buffers (all) | **n** | -| <leader>fc | Find Config File | **n** | -| <leader>ff | Find Files (Root Dir) | **n** | -| <leader>fF | Find Files (cwd) | **n** | -| <leader>fg | Find Files (git-files) | **n** | -| <leader>fp | Projects | **n** | -| <leader>fr | Recent | **n** | -| <leader>fR | Recent (cwd) | **n** | -| <leader>gd | Git Diff (hunks) | **n** | -| <leader>gD | Git Diff (origin) | **n** | -| <leader>gs | Git Status | **n** | -| <leader>gS | Git Stash | **n** | -| <leader>n | Notification History | **n** | -| <leader>s" | Registers | **n** | -| <leader>s/ | Search History | **n** | -| <leader>sa | Autocmds | **n** | -| <leader>sb | Buffer Lines | **n** | -| <leader>sB | Grep Open Buffers | **n** | -| <leader>sc | Command History | **n** | -| <leader>sC | Commands | **n** | -| <leader>sd | Diagnostics | **n** | -| <leader>sD | Buffer Diagnostics | **n** | -| <leader>sg | Grep (Root Dir) | **n** | -| <leader>sG | Grep (cwd) | **n** | -| <leader>sh | Help Pages | **n** | -| <leader>sH | Highlights | **n** | -| <leader>si | Icons | **n** | -| <leader>sj | Jumps | **n** | -| <leader>sk | Keymaps | **n** | -| <leader>sl | Location List | **n** | -| <leader>sm | Marks | **n** | -| <leader>sM | Man Pages | **n** | -| <leader>sp | Search for Plugin Spec | **n** | -| <leader>sq | Quickfix List | **n** | -| <leader>sR | Resume | **n** | -| <leader>su | Undotree | **n** | -| <leader>sw | Visual selection or word (Root Dir) | **n**, **x** | -| <leader>sW | Visual selection or word (cwd) | **n**, **x** | -| <leader>uC | Colorschemes | **n** | - -## [todo-comments.nvim](https://github.com/folke/todo-comments.nvim.git) -Part of [lazyvim.plugins.extras.editor.snacks_picker](/extras/editor/snacks_picker) - -| Key | Description | Mode | -| --- | --- | --- | -| <leader>st | Todo | **n** | -| <leader>sT | Todo/Fix/Fixme | **n** | - -## [nvim-ansible](https://github.com/mfussenegger/nvim-ansible.git) -Part of [lazyvim.plugins.extras.lang.ansible](/extras/lang/ansible) - -| Key | Description | Mode | -| --- | --- | --- | -| <leader>ta | Ansible Run Playbook/Role | **n** | - -## [haskell-tools.nvim](https://github.com/mrcjkb/haskell-tools.nvim.git) -Part of [lazyvim.plugins.extras.lang.haskell](/extras/lang/haskell) - -| Key | Description | Mode | -| --- | --- | --- | -| <localleader>e | Evaluate All | **n** | -| <localleader>h | Hoogle Signature | **n** | -| <localleader>r | REPL (Package) | **n** | -| <localleader>R | REPL (Buffer) | **n** | - -## [telescope_hoogle](https://github.com/luc-tielen/telescope_hoogle.git) -Part of [lazyvim.plugins.extras.lang.haskell](/extras/lang/haskell) - -| Key | Description | Mode | -| --- | --- | --- | -| <localleader>H | Hoogle | **n** | - -## [markdown-preview.nvim](https://github.com/iamcco/markdown-preview.nvim.git) -Part of [lazyvim.plugins.extras.lang.markdown](/extras/lang/markdown) - -| Key | Description | Mode | -| --- | --- | --- | -| <leader>cp | Markdown Preview | **n** | - -## [nvim-dap-python](https://github.com/mfussenegger/nvim-dap-python.git) -Part of [lazyvim.plugins.extras.lang.python](/extras/lang/python) - -| Key | Description | Mode | -| --- | --- | --- | -| <leader>dPc | Debug Class | **n** | -| <leader>dPt | Debug Method | **n** | - -## [venv-selector.nvim](https://github.com/linux-cultist/venv-selector.nvim.git) -Part of [lazyvim.plugins.extras.lang.python](/extras/lang/python) - -| Key | Description | Mode | -| --- | --- | --- | -| <leader>cv | Select VirtualEnv | **n** | - -## [nvim-metals](https://github.com/scalameta/nvim-metals.git) -Part of [lazyvim.plugins.extras.lang.scala](/extras/lang/scala) - -| Key | Description | Mode | -| --- | --- | --- | -| <leader>mc | Metals compile cascade | **n** | -| <leader>me | Metals commands | **n** | -| <leader>mh | Metals hover worksheet | **n** | - -## [vim-dadbod-ui](https://github.com/kristijanhusak/vim-dadbod-ui.git) -Part of [lazyvim.plugins.extras.lang.sql](/extras/lang/sql) - -| Key | Description | Mode | -| --- | --- | --- | -| <leader>D | Toggle DBUI | **n** | - -## [vimtex](https://github.com/lervag/vimtex.git) -Part of [lazyvim.plugins.extras.lang.tex](/extras/lang/tex) - -| Key | Description | Mode | -| --- | --- | --- | -| <localLeader>l | +vimtex | **n** | - -## [typst-preview.nvim](https://github.com/chomosuke/typst-preview.nvim.git) -Part of [lazyvim.plugins.extras.lang.typst](/extras/lang/typst) - -| Key | Description | Mode | -| --- | --- | --- | -| <leader>cp | Toggle Typst Preview | **n** | - -## [neotest](https://github.com/nvim-neotest/neotest.git) -Part of [lazyvim.plugins.extras.test.core](/extras/test/core) - -| Key | Description | Mode | -| --- | --- | --- | -| <leader>t | +test | **n** | -| <leader>ta | Attach to Test (Neotest) | **n** | -| <leader>tl | Run Last (Neotest) | **n** | -| <leader>to | Show Output (Neotest) | **n** | -| <leader>tO | Toggle Output Panel (Neotest) | **n** | -| <leader>tr | Run Nearest (Neotest) | **n** | -| <leader>ts | Toggle Summary (Neotest) | **n** | -| <leader>tS | Stop (Neotest) | **n** | -| <leader>tt | Run File (Neotest) | **n** | -| <leader>tT | Run All Test Files (Neotest) | **n** | -| <leader>tw | Toggle Watch (Neotest) | **n** | - -## [nvim-dap](https://github.com/mfussenegger/nvim-dap.git) -Part of [lazyvim.plugins.extras.test.core](/extras/test/core) - -| Key | Description | Mode | -| --- | --- | --- | -| <leader>td | Debug Nearest | **n** | - -## [edgy.nvim](https://github.com/folke/edgy.nvim.git) -Part of [lazyvim.plugins.extras.ui.edgy](/extras/ui/edgy) - -| Key | Description | Mode | -| --- | --- | --- | -| <leader>ue | Edgy Toggle | **n** | -| <leader>uE | Edgy Select Window | **n** | - -## [chezmoi.nvim](https://github.com/xvzc/chezmoi.nvim.git) -Part of [lazyvim.plugins.extras.util.chezmoi](/extras/util/chezmoi) - -| Key | Description | Mode | -| --- | --- | --- | -| <leader>sz | Chezmoi | **n** | - -## [gh.nvim](https://github.com/ldelossa/gh.nvim.git) -Part of [lazyvim.plugins.extras.util.gh](/extras/util/gh) - -| Key | Description | Mode | -| --- | --- | --- | -| <leader>G | +Github | **n** | -| <leader>Gc | +Commits | **n** | -| <leader>Gcc | Close | **n** | -| <leader>Gce | Expand | **n** | -| <leader>Gco | Open To | **n** | -| <leader>Gcp | Pop Out | **n** | -| <leader>Gcz | Collapse | **n** | -| <leader>Gi | +Issues | **n** | -| <leader>Gio | Open | **n** | -| <leader>Gip | Preview | **n** | -| <leader>Gl | +Litee | **n** | -| <leader>Glt | Toggle Panel | **n** | -| <leader>Gp | +Pull Request | **n** | -| <leader>Gpc | Close | **n** | -| <leader>Gpd | Details | **n** | -| <leader>Gpe | Expand | **n** | -| <leader>Gpo | Open | **n** | -| <leader>Gpp | PopOut | **n** | -| <leader>Gpr | Refresh | **n** | -| <leader>Gpt | Open To | **n** | -| <leader>Gpz | Collapse | **n** | -| <leader>Gr | +Review | **n** | -| <leader>Grb | Begin | **n** | -| <leader>Grc | Close | **n** | -| <leader>Grd | Delete | **n** | -| <leader>Gre | Expand | **n** | -| <leader>Grs | Submit | **n** | -| <leader>Grz | Collapse | **n** | -| <leader>Gt | +Threads | **n** | -| <leader>Gtc | Create | **n** | -| <leader>Gtn | Next | **n** | -| <leader>Gtt | Toggle | **n** | - -## [mason.nvim](https://github.com/mason-org/mason.nvim.git) -Part of [lazyvim.plugins.extras.util.gitui](/extras/util/gitui) - -| Key | Description | Mode | -| --- | --- | --- | -| <leader>gg | GitUi (Root Dir) | **n** | -| <leader>gG | GitUi (cwd) | **n** | - -## [octo.nvim](https://github.com/pwntester/octo.nvim.git) -Part of [lazyvim.plugins.extras.util.octo](/extras/util/octo) - -| Key | Description | Mode | -| --- | --- | --- | -| <leader>gi | List Issues (Octo) | **n** | -| <leader>gI | Search Issues (Octo) | **n** | -| <leader>gp | List PRs (Octo) | **n** | -| <leader>gP | Search PRs (Octo) | **n** | -| <leader>gr | List Repos (Octo) | **n** | -| <leader>gS | Search (Octo) | **n** | -| <localleader>a | +assignee (Octo) | **n** | -| <localleader>c | +comment/code (Octo) | **n** | -| <localleader>g | +goto_issue (Octo) | **n** | -| <localleader>i | +issue (Octo) | **n** | -| <localleader>l | +label (Octo) | **n** | -| <localleader>p | +pr (Octo) | **n** | -| <localleader>pr | +rebase (Octo) | **n** | -| <localleader>ps | +squash (Octo) | **n** | -| <localleader>r | +react (Octo) | **n** | -| <localleader>v | +review (Octo) | **n** | - -## [fzf-lua](https://github.com/ibhagwan/fzf-lua.git) -Part of [lazyvim.plugins.extras.util.project](/extras/util/project) - -| Key | Description | Mode | -| --- | --- | --- | -| <leader>fp | Projects | **n** | - -## [telescope.nvim](https://github.com/nvim-telescope/telescope.nvim.git) -Part of [lazyvim.plugins.extras.util.project](/extras/util/project) - -| Key | Description | Mode | -| --- | --- | --- | -| <leader>fp | Projects | **n** | - -## [kulala.nvim](https://github.com/mistweaverco/kulala.nvim.git) -Part of [lazyvim.plugins.extras.util.rest](/extras/util/rest) - -| Key | Description | Mode | -| --- | --- | --- | -| <leader>R | +Rest | **n** | -| <leader>Rb | Open scratchpad | **n** | -| <leader>Rc | Copy as cURL | **n** | -| <leader>RC | Paste from curl | **n** | -| <leader>Re | Set environment | **n** | -| <leader>Rg | Download GraphQL schema | **n** | -| <leader>Ri | Inspect current request | **n** | -| <leader>Rn | Jump to next request | **n** | -| <leader>Rp | Jump to previous request | **n** | -| <leader>Rq | Close window | **n** | -| <leader>Rr | Replay the last request | **n** | -| <leader>Rs | Send the request | **n** | -| <leader>RS | Show stats | **n** | -| <leader>Rt | Toggle headers/body | **n** | - - diff --git a/docs/news.md b/docs/news.md deleted file mode 100644 index feec7aef4c..0000000000 --- a/docs/news.md +++ /dev/null @@ -1,282 +0,0 @@ ---- -sidebar_position: 2 ---- - -# 📰 What's new? - -## 15.x - -**Neovim** `>= 0.11.2` includes a lot of changes to the underlying LSP implementation. - -Going forward, **LazyVim** requires **Neovim** `>= 0.11.2`, and drops support for older versions. - -### Changes - -- removed compatibility code for Neovim `< 0.11.2` -- configure **LSP** with the native `vim.lsp.config` -- migrated **mason.nvim** and **mason-lspconfig.nvim** to `v2.x` -- migrated to [nvim-treesitter](https://github.com/nvim-treesitter/nvim-treesitter/tree/main) **main** branch - - with the new version, the `tree-sitter` cli is **required** to install parsers - - best to run `:checkhealth nvim-treesitter` after updating -- replace `nvim-treesitter` incremental selection with `flash.nvim`, since it is no longer supported -- enabled [blink.cmp](https://github.com/saghen/blink.cmp) **cmdline** completions -- use **LSP** based folding when available (disable with `nvim-lspconfig.folds.enabled = false`) - -## 14.x - -Big new release with a lot of changes and improvements! -Two new plugins have been added, and a lot of plugins have been replaced. -With these changes, default **LazyVim** is now just `34` plugins. - -### Added Plugins - -- [fzf-lua](https://github.com/ibhagwan/fzf-lua) as a replacement for [telescope.nvim](https://github.com/nvim-telescope/telescope.nvim) - - to use **telescope.nvim** instead, enable the `editor.telescope` extra -- [blink.cmp](https://github.com/saghen/blink.cmp) as a replacement for [nvim-cmp](https://github.com/hrsh7th/nvim-cmp) - - to use **nvim-cmp** instead, enable the `coding.nvim-cmp` extra - -### Removed Plugins - -- [dressing.nvim](https://github.com/stevearc/dressing.nvim) (replaced with [fzf-lua](https://github.com/ibhagwan/fzf-lua) and [snacks.input](https://github.com/folke/snacks.nvim)) -- [telescope-fzf-native.nvim](https://github.com/nvim-telescope/telescope-fzf-native.nvim) (replaced with [fzf-lua](https://github.com/ibhagwan/fzf-lua)) -- [telescope.nvim](https://github.com/nvim-telescope/telescope.nvim) (replaced with [fzf-lua](https://github.com/ibhagwan/fzf-lua)) -- [indent-blankline.nvim](https://github.com/lukas-reineke/indent-blankline.nvim) (replaced with [snacks.indent](https://github.com/Folke/snacks.nvim)) - - to use **indent-blankline.nvim** instead, enable the `indent-blankline` extra -- [nvim-cmp](https://github.com/hrsh7th/nvim-cmp) (replaced with [blink](https://github.com/Saghen/blink.cmp)) -- [nvim-snippets](https://github.com/hrsh7th/vim-vsnip) (replaced with [blink](https://github.com/Saghen/blink.cmp)) -- [cmp-buffer](https://github.com/hrsh7th/cmp-buffer) (replaced with [blink](https://github.com/Saghen/blink.cmp)) -- [cmp-nvim-lsp](https://github.com/hrsh7th/cmp-nvim-lsp) (replaced with [blink](https://github.com/Saghen/blink.cmp)) -- [cmp-path](https://github.com/hrsh7th/cmp-path) (replaced with [blink](https://github.com/Saghen/blink.cmp)) - -### Changes - -- added [`snacks.input`](https://github.com/folke/snacks.nvim/blob/main/docs/input.md) -- added [`snacks.scroll`](https://github.com/folke/snacks.nvim/blob/main/docs/scroll.md) -- added [`snacks.indent`](https://github.com/folke/snacks.nvim/blob/main/docs/indent.md) -- added [`snacks.scope`](https://github.com/folke/snacks.nvim/blob/main/docs/scope.md) -- added [`snacks.dim`](https://github.com/folke/snacks.nvim/blob/main/docs/dim.md) -- added [`snacks.zen`](https://github.com/folke/snacks.nvim/blob/main/docs/zen.md) -- changed default [`which-key`](https://github.com/folke/which-key.nvim) preset to `helix` -- drop `LazyVim.ui.fg` in favor of [`Snacks.util.color`](https://github.com/folke/snacks.nvim/blob/main/docs/util.md) - -To disable **all animations**, add the following to your `options.lua`: - -```lua -vim.g.snacks_animate = false -``` - -### Keymaps - -- `uz` to toggle [zen mode](https://github.com/folke/snacks.nvim/blob/main/docs/zen.md) -- `uZ` & `wm` to toggle [zoom mode](https://github.com/folke/snacks.nvim/blob/main/docs/zen.md) -- `uD` to toggle [dimming](https://github.com/folke/snacks.nvim/blob/main/docs/dim.md) -- `ua` to toggle [animations](https://github.com/folke/snacks.nvim/blob/main/docs/animate.md) -- `uS` to toggle [scroll](https://github.com/folke/snacks.nvim/blob/main/docs/scroll.md) -- `ug` to toggle [indent guides](https://github.com/folke/snacks.nvim/blob/main/docs/indent.md) -- [`snacks.profiler`](https://github.com/folke/snacks.nvim/blob/main/docs/profiler.md) keymaps under `dp` - ---- - -## 13.x - -- **LazyVim** now uses `Snacks.dashboard` as the default dashboard. - Check the [docs](https://github.com/folke/snacks.nvim/blob/main/docs/dashboard.md), - for more information and examples. - -- A new [dashboard-nvim](https://github.com/nvimdev/dashboard-nvim) extra - is available for those who prefer the old dashboard. - -- Big new release with a lot of changes and improvements! - -- The biggest change is the move of a bunch of core features to - [snacks.nvim](https://github.com/folke/snacks.nvim) and fully - integrating it into **LazyVim**. - -- I highly suggest having a look at the **snacks.nvim** documentation - to see all the new features and improvements. Most important changes: - - `Snacks.notifier` for notifications instead of `nvim-notify` - - `Snacks.terminal` is similar to `lazyterm`, but has more features - and creates bottom splits by default (similar to the `edgy` integrating) - ---- - -## 12.x - -- **Markdown Extra**: [headlines.nvim](https://github.com/lukas-reineke/headlines.nvim) has been removed in favor of [markdown.nvim](https://github.com/MeanderingProgrammer/markdown.nvim) - to spice up your markdown files. - -- [nvim-spectre](https://github.com/nvim-pack/nvim-spectre) has been removed in favor of [grug-far.nvim](https://github.com/MagicDuck/grug-far.nvim). - **grug-far.nvim** has a great UI and feels more intuitive to use. - -- This **news** is now also available on the website at [https://www.lazyvim.org/news](https://www.lazyvim.org/news) - -- **prettier** extra now works for all prettier supported filetypes - and will be enabled for astro/svelte extra if you have a proper - config file with the correct prettier plugin - -- **New Language Support:** SQL, Clojure, Thrift, Elm, Gleam, Angular, - NuShell, Svelte, Kotlin, Astro, Toml and PHP - -- **New Extras:** `copilot-chat`, `git`, `octo`, `inc-rename` and `neogen` - -- The **typescript** extra now uses `vtsls` instead of `tsserver` - -- **Neovim >= 0.10** now uses the much faster [lazydev.nvim](https://github.com/folke/lazydev.nvim) - instead of `neodev.nvim` - -- moved `neoconf.nvim` to extras. Project specific LSP settings - can be done with a `.lazy.lua` file instead. - ---- - -## 11.x - -- **Keymaps:** - - `gB` to open the current repo in the browser - - `gco` and `gcO` to add a comment below or above the current line - - `wm` to toggle window maximize - -- **lazydev.nvim:** faster alternative to `neodev.nvim` - -- **Options:** Added `linebreak=true` to default options. - -- `mini.ai` is back as a default plugin! Removing it was a mistake. - It's a great plugin that enhances the native text objects. - -- `:LazyExtras` now has multiple new sections: - - **Enabled**: extras that are currently enabled - - **Recommended Languages**: language extras recommended for the current buffer / directory - - **Recommended Plugins**: extras that are recommended for most users - - **Plugins**: other plugin extras - - **Languages**: other language extras - -- new option `vim.g.deprecation_warnings` to disable deprecation warnings - Defaults to `false`. To enable deprecation warnings, set it to `true` in your `options.lua` - -- `vim-illuminate` move to extras - Document highlights now use native lsp functionality by default - -Since Neovim 0.10 has been released, I've been working on a new version of **LazyVim** -that is fully compatible with all the latest Neovim features. - -Additionally, some core plugins have been moved to extras. - -- `native snippets` are now the default on Neovim 0.10 - Older versions of Neovim will use the new `luasnip` extra. - -- `native comments` are now the default on Neovim 0.10 - Older versions of Neovim will use the new `mini-comment` extra. - `nvim-ts-context-commentstring` has been integrated in the native comments. - -- `inlay hints` have been in **LazyVim** for a while, but are now - enabled by default. To disable them: - - ```lua - { - "nvim-lspconfig", - opts = { - inlay_hints = { enabled = false }, - } - } - ``` - -- plugins moved to extras: - - `mini.surround` - - `mini.indentscope` scopes are now also highlighted with `indent-blankline` - - `nvim-treesitter-context` - ---- - -## 10.x - -- added new extra for [mini.diff](https://github.com/echasnovski/mini.nvim/blob/main/readmes/mini-diff.md) - This is a plugin similar to gitsigns but with a neat diff overlay - that can be toggled with `go`. - -- **trouble.nvim** has been rewritten from scratch and is now in beta. - I've added a new extra for it (`trouble-v3`) for those of you who want to try it out. - You can find the updated docs [here](https://github.com/folke/trouble.nvim/tree/dev) - -- The **lazygit** integration now configures: - - the theme based on the colorscheme - - nerd font icons (v3) - - editor preset is set to `nvim-remote` for better interop with Neovim - -- The option `vim.g.lazygit_theme` was renamed to `vim.g.lazygit_config` - -- **lazygit** now automatically uses the colors of your current colorscheme. - This is enabled by default. To disable, add the below to your `options.lua`: - - ```lua - vim.g.lazygit_config = false - ``` - -- Added support for `basedpyright` to the **python** extra. - Enable in your `options.lua` with: - - ```lua - vim.g.lazyvim_python_lsp = "basedpyright" - ``` - - Be aware that `basedpyright` is still in development and - may not work exactly the same as `pyright`. - -- User extras under `lua/plugins/extras` can now also be managed - with **LazyExtras** - -- `nvim-ts-autotag` is now included by default - -- `nvim-treesitter-context` is now included by default - -- Added extra for `symbols-outline.nvim` - -- Added extra for `aerial.nvim` - -- `nvim-navic` has been removed. If you want to keep using `nvim-navic`, - you can enable the **editor.navic** extra - -- New `:LazyExtras` command for managing **LazyVim** extras - -- Improved **formatting**: - - **LazyVim** can now work with multiple formatters. Types: - - **primary**: only one primary formatter can be active at a time. - _(conform, none-ls, LSP)_ - - **secondary**: multiple secondary formatters can be active _(eslint, ...)_ - - - **LazyVim** automatically selects the primary formatter based on the - current available sources and priorities. - - - New `:LazyFormat` command for formatting the current selection or buffer - - New `:LazyFormatInfo` command for displaying the active formatters - for the current buffer - - Auto-formatting can be disabled with: - - ```lua - vim.g.autoformat = false -- globally - vim.b.autoformat = false -- buffer-local - ``` - -- `none-ls.nvim` is no longer installed by default - - `conform.nvim` is now the default formatter - - `nvim-lint` is now the default linter - - If you want to keep using `none-ls.nvim`, - you can enable the **lsp.none-ls** extra - -- `dashboard.nvim` is the new default dashboard plugin - - If you want to keep using `alpha.nvim`, you can enable the **ui.alpha** extra - -- Improved **root detection**: - - New `:LazyRoot` command that shows info about the root dir detection - - Configurable with `vim.g.root_spec` - - ```lua - -- LazyVim root dir detection - -- Each entry can be: - -- * the name of a detector function like `lsp` or `cwd` - -- * a pattern or array of patterns like `.git` or `lua`. - -- * a function with signature `function(buf) -> string|string[]` - vim.g.root_spec = { "lsp", { ".git", "lua" }, "cwd" } - - -- To disable root detection set to just "cwd" - vim.g.root_spec = { "cwd" } - ``` diff --git a/docs/plugins/_category_.yml b/docs/plugins/_category_.yml deleted file mode 100644 index dee4d9d0a6..0000000000 --- a/docs/plugins/_category_.yml +++ /dev/null @@ -1,2 +0,0 @@ -label: 📦 Plugins -position: 6 diff --git a/docs/plugins/coding.md b/docs/plugins/coding.md deleted file mode 100644 index d9fd2ab346..0000000000 --- a/docs/plugins/coding.md +++ /dev/null @@ -1,227 +0,0 @@ -# Coding - - - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -## [mini.pairs](https://github.com/nvim-mini/mini.pairs) - - Auto pairs - Automatically inserts a matching closing character - when you type an opening character like `"`, `[`, or `(`. - - - - - - -```lua -opts = { - modes = { insert = true, command = true, terminal = false }, - -- skip autopair when next character is one of these - skip_next = [=[[%w%%%'%[%"%.%`%$]]=], - -- skip autopair when the cursor is inside these treesitter nodes - skip_ts = { "string" }, - -- skip autopair when next character is closing pair - -- and there are more closing pairs than opening pairs - skip_unbalanced = true, - -- better deal with markdown code blocks - markdown = true, -} -``` - - - - - - -```lua -{ - "nvim-mini/mini.pairs", - event = "VeryLazy", - opts = { - modes = { insert = true, command = true, terminal = false }, - -- skip autopair when next character is one of these - skip_next = [=[[%w%%%'%[%"%.%`%$]]=], - -- skip autopair when the cursor is inside these treesitter nodes - skip_ts = { "string" }, - -- skip autopair when next character is closing pair - -- and there are more closing pairs than opening pairs - skip_unbalanced = true, - -- better deal with markdown code blocks - markdown = true, - }, - config = function(_, opts) - LazyVim.mini.pairs(opts) - end, -} -``` - - - - - -## [ts-comments.nvim](https://github.com/folke/ts-comments.nvim) - - Improves comment syntax, lets Neovim handle multiple - types of comments for a single language, and relaxes rules - for uncommenting. - - - - - - -```lua -opts = {} -``` - - - - - - -```lua -{ - "folke/ts-comments.nvim", - event = "VeryLazy", - opts = {}, -} -``` - - - - - -## [mini.ai](https://github.com/nvim-mini/mini.ai) - - Extends the a & i text objects, this adds the ability to select - arguments, function calls, text within quotes and brackets, and to - repeat those selections to select an outer text object. - - - - - - -```lua -opts = function() - local ai = require("mini.ai") - return { - n_lines = 500, - custom_textobjects = { - o = ai.gen_spec.treesitter({ -- code block - a = { "@block.outer", "@conditional.outer", "@loop.outer" }, - i = { "@block.inner", "@conditional.inner", "@loop.inner" }, - }), - f = ai.gen_spec.treesitter({ a = "@function.outer", i = "@function.inner" }), -- function - c = ai.gen_spec.treesitter({ a = "@class.outer", i = "@class.inner" }), -- class - t = { "<([%p%w]-)%f[^<%w][^<>]->.-", "^<.->().*()$" }, -- tags - d = { "%f[%d]%d+" }, -- digits - e = { -- Word with case - { "%u[%l%d]+%f[^%l%d]", "%f[%S][%l%d]+%f[^%l%d]", "%f[%P][%l%d]+%f[^%l%d]", "^[%l%d]+%f[^%l%d]" }, - "^().*()$", - }, - g = LazyVim.mini.ai_buffer, -- buffer - u = ai.gen_spec.function_call(), -- u for "Usage" - U = ai.gen_spec.function_call({ name_pattern = "[%w_]" }), -- without dot in function name - }, - } -end -``` - - - - - - -```lua -{ - "nvim-mini/mini.ai", - event = "VeryLazy", - opts = function() - local ai = require("mini.ai") - return { - n_lines = 500, - custom_textobjects = { - o = ai.gen_spec.treesitter({ -- code block - a = { "@block.outer", "@conditional.outer", "@loop.outer" }, - i = { "@block.inner", "@conditional.inner", "@loop.inner" }, - }), - f = ai.gen_spec.treesitter({ a = "@function.outer", i = "@function.inner" }), -- function - c = ai.gen_spec.treesitter({ a = "@class.outer", i = "@class.inner" }), -- class - t = { "<([%p%w]-)%f[^<%w][^<>]->.-", "^<.->().*()$" }, -- tags - d = { "%f[%d]%d+" }, -- digits - e = { -- Word with case - { "%u[%l%d]+%f[^%l%d]", "%f[%S][%l%d]+%f[^%l%d]", "%f[%P][%l%d]+%f[^%l%d]", "^[%l%d]+%f[^%l%d]" }, - "^().*()$", - }, - g = LazyVim.mini.ai_buffer, -- buffer - u = ai.gen_spec.function_call(), -- u for "Usage" - U = ai.gen_spec.function_call({ name_pattern = "[%w_]" }), -- without dot in function name - }, - } - end, - config = function(_, opts) - require("mini.ai").setup(opts) - LazyVim.on_load("which-key.nvim", function() - vim.schedule(function() - LazyVim.mini.ai_whichkey(opts) - end) - end) - end, -} -``` - - - - - -## [lazydev.nvim](https://github.com/folke/lazydev.nvim) - - Configures LuaLS to support auto-completion and type checking - while editing your Neovim configuration. - - - - - - -```lua -opts = { - library = { - { path = "${3rd}/luv/library", words = { "vim%.uv" } }, - { path = "LazyVim", words = { "LazyVim" } }, - { path = "snacks.nvim", words = { "Snacks" } }, - { path = "lazy.nvim", words = { "LazyVim" } }, - }, -} -``` - - - - - - -```lua -{ - "folke/lazydev.nvim", - ft = "lua", - cmd = "LazyDev", - opts = { - library = { - { path = "${3rd}/luv/library", words = { "vim%.uv" } }, - { path = "LazyVim", words = { "LazyVim" } }, - { path = "snacks.nvim", words = { "Snacks" } }, - { path = "lazy.nvim", words = { "LazyVim" } }, - }, - }, -} -``` - - - - - - diff --git a/docs/plugins/colorscheme.md b/docs/plugins/colorscheme.md deleted file mode 100644 index 4edf96b084..0000000000 --- a/docs/plugins/colorscheme.md +++ /dev/null @@ -1,202 +0,0 @@ -# Colorscheme - -Example for changing the colorscheme to [Gruvbox](https://github.com/ellisonleao/gruvbox.nvim): - -```lua title="lua/plugins/colorscheme.lua" {2,8} -return { - -- add gruvbox - { "ellisonleao/gruvbox.nvim" }, - - -- Configure LazyVim to load gruvbox - { - "LazyVim/LazyVim", - opts = { - colorscheme = "gruvbox", - }, - } -} -``` - - - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -## [tokyonight.nvim](https://github.com/folke/tokyonight.nvim) - - tokyonight - - - - - - -```lua -opts = { style = "moon" } -``` - - - - - - -```lua -{ - "folke/tokyonight.nvim", - lazy = true, - opts = { style = "moon" }, -} -``` - - - - - -## [catppuccin](https://github.com/catppuccin/nvim) - - catppuccin - - - - - - -```lua -opts = { - lsp_styles = { - underlines = { - errors = { "undercurl" }, - hints = { "undercurl" }, - warnings = { "undercurl" }, - information = { "undercurl" }, - }, - }, - integrations = { - aerial = true, - alpha = true, - cmp = true, - dashboard = true, - flash = true, - fzf = true, - grug_far = true, - gitsigns = true, - headlines = true, - illuminate = true, - indent_blankline = { enabled = true }, - leap = true, - lsp_trouble = true, - mason = true, - mini = true, - navic = { enabled = true, custom_bg = "lualine" }, - neotest = true, - neotree = true, - noice = true, - notify = true, - snacks = true, - telescope = true, - treesitter_context = true, - which_key = true, - }, -} -``` - - - - - - -```lua -{ - "catppuccin/nvim", - lazy = true, - name = "catppuccin", - opts = { - lsp_styles = { - underlines = { - errors = { "undercurl" }, - hints = { "undercurl" }, - warnings = { "undercurl" }, - information = { "undercurl" }, - }, - }, - integrations = { - aerial = true, - alpha = true, - cmp = true, - dashboard = true, - flash = true, - fzf = true, - grug_far = true, - gitsigns = true, - headlines = true, - illuminate = true, - indent_blankline = { enabled = true }, - leap = true, - lsp_trouble = true, - mason = true, - mini = true, - navic = { enabled = true, custom_bg = "lualine" }, - neotest = true, - neotree = true, - noice = true, - notify = true, - snacks = true, - telescope = true, - treesitter_context = true, - which_key = true, - }, - }, - specs = { - { - "akinsho/bufferline.nvim", - optional = true, - opts = function(_, opts) - if (vim.g.colors_name or ""):find("catppuccin") then - opts.highlights = require("catppuccin.special.bufferline").get_theme() - end - end, - }, - }, -} -``` - - - - - -## [bufferline.nvim](https://github.com/akinsho/bufferline.nvim) _(optional)_ - - - - - -```lua -opts = function(_, opts) - if (vim.g.colors_name or ""):find("catppuccin") then - opts.highlights = require("catppuccin.special.bufferline").get_theme() - end -end -``` - - - - - - -```lua -{ - "akinsho/bufferline.nvim", - optional = true, - opts = function(_, opts) - if (vim.g.colors_name or ""):find("catppuccin") then - opts.highlights = require("catppuccin.special.bufferline").get_theme() - end - end, -} -``` - - - - - - diff --git a/docs/plugins/editor.md b/docs/plugins/editor.md deleted file mode 100644 index 06235c04da..0000000000 --- a/docs/plugins/editor.md +++ /dev/null @@ -1,546 +0,0 @@ -# Editor - - - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -## [grug-far.nvim](https://github.com/MagicDuck/grug-far.nvim) - - search/replace in multiple files - - - - - - -```lua -opts = { headerMaxWidth = 80 } -``` - - - - - - -```lua -{ - "MagicDuck/grug-far.nvim", - opts = { headerMaxWidth = 80 }, - cmd = { "GrugFar", "GrugFarWithin" }, - keys = { - { - "sr", - function() - local grug = require("grug-far") - local ext = vim.bo.buftype == "" and vim.fn.expand("%:e") - grug.open({ - transient = true, - prefills = { - filesFilter = ext and ext ~= "" and "*." .. ext or nil, - }, - }) - end, - mode = { "n", "x" }, - desc = "Search and Replace", - }, - }, -} -``` - - - - - -## [flash.nvim](https://github.com/folke/flash.nvim) - - Flash enhances the built-in search functionality by showing labels - at the end of each match, letting you quickly jump to a specific - location. - - - - - - -```lua -opts = {} -``` - - - - - - -```lua -{ - "folke/flash.nvim", - event = "VeryLazy", - vscode = true, - ---@type Flash.Config - opts = {}, - -- stylua: ignore - keys = { - { "s", mode = { "n", "x", "o" }, function() require("flash").jump() end, desc = "Flash" }, - { "S", mode = { "n", "o", "x" }, function() require("flash").treesitter() end, desc = "Flash Treesitter" }, - { "r", mode = "o", function() require("flash").remote() end, desc = "Remote Flash" }, - { "R", mode = { "o", "x" }, function() require("flash").treesitter_search() end, desc = "Treesitter Search" }, - { "", mode = { "c" }, function() require("flash").toggle() end, desc = "Toggle Flash Search" }, - -- Simulate nvim-treesitter incremental selection - { "", mode = { "n", "o", "x" }, - function() - require("flash").treesitter({ - actions = { - [""] = "next", - [""] = "prev" - } - }) - end, desc = "Treesitter Incremental Selection" }, - }, -} -``` - - - - - -## [which-key.nvim](https://github.com/folke/which-key.nvim) - - which-key helps you remember key bindings by showing a popup - with the active keybindings of the command you started typing. - - - - - - -```lua -opts = { - preset = "helix", - defaults = {}, - spec = { - { - mode = { "n", "x" }, - { "", group = "tabs" }, - { "c", group = "code" }, - { "d", group = "debug" }, - { "dp", group = "profiler" }, - { "f", group = "file/find" }, - { "g", group = "git" }, - { "gh", group = "hunks" }, - { "q", group = "quit/session" }, - { "s", group = "search" }, - { "u", group = "ui" }, - { "x", group = "diagnostics/quickfix" }, - { "[", group = "prev" }, - { "]", group = "next" }, - { "g", group = "goto" }, - { "gs", group = "surround" }, - { "z", group = "fold" }, - { - "b", - group = "buffer", - expand = function() - return require("which-key.extras").expand.buf() - end, - }, - { - "w", - group = "windows", - proxy = "", - expand = function() - return require("which-key.extras").expand.win() - end, - }, - -- better descriptions - { "gx", desc = "Open with system app" }, - }, - }, -} -``` - - - - - - -```lua -{ - "folke/which-key.nvim", - event = "VeryLazy", - opts_extend = { "spec" }, - opts = { - preset = "helix", - defaults = {}, - spec = { - { - mode = { "n", "x" }, - { "", group = "tabs" }, - { "c", group = "code" }, - { "d", group = "debug" }, - { "dp", group = "profiler" }, - { "f", group = "file/find" }, - { "g", group = "git" }, - { "gh", group = "hunks" }, - { "q", group = "quit/session" }, - { "s", group = "search" }, - { "u", group = "ui" }, - { "x", group = "diagnostics/quickfix" }, - { "[", group = "prev" }, - { "]", group = "next" }, - { "g", group = "goto" }, - { "gs", group = "surround" }, - { "z", group = "fold" }, - { - "b", - group = "buffer", - expand = function() - return require("which-key.extras").expand.buf() - end, - }, - { - "w", - group = "windows", - proxy = "", - expand = function() - return require("which-key.extras").expand.win() - end, - }, - -- better descriptions - { "gx", desc = "Open with system app" }, - }, - }, - }, - keys = { - { - "?", - function() - require("which-key").show({ global = false }) - end, - desc = "Buffer Keymaps (which-key)", - }, - { - "", - function() - require("which-key").show({ keys = "", loop = true }) - end, - desc = "Window Hydra Mode (which-key)", - }, - }, - config = function(_, opts) - local wk = require("which-key") - wk.setup(opts) - if not vim.tbl_isempty(opts.defaults) then - LazyVim.warn("which-key: opts.defaults is deprecated. Please use opts.spec instead.") - wk.register(opts.defaults) - end - end, -} -``` - - - - - -## [gitsigns.nvim](https://github.com/lewis6991/gitsigns.nvim) - - git signs highlights text that has changed since the list - git commit, and also lets you interactively stage & unstage - hunks in a commit. - - - - - - -```lua -opts = { - signs = { - add = { text = "▎" }, - change = { text = "▎" }, - delete = { text = "" }, - topdelete = { text = "" }, - changedelete = { text = "▎" }, - untracked = { text = "▎" }, - }, - signs_staged = { - add = { text = "▎" }, - change = { text = "▎" }, - delete = { text = "" }, - topdelete = { text = "" }, - changedelete = { text = "▎" }, - }, - on_attach = function(buffer) - local gs = package.loaded.gitsigns - - local function map(mode, l, r, desc) - vim.keymap.set(mode, l, r, { buffer = buffer, desc = desc, silent = true }) - end - - -- stylua: ignore start - map("n", "]h", function() - if vim.wo.diff then - vim.cmd.normal({ "]c", bang = true }) - else - gs.nav_hunk("next") - end - end, "Next Hunk") - map("n", "[h", function() - if vim.wo.diff then - vim.cmd.normal({ "[c", bang = true }) - else - gs.nav_hunk("prev") - end - end, "Prev Hunk") - map("n", "]H", function() gs.nav_hunk("last") end, "Last Hunk") - map("n", "[H", function() gs.nav_hunk("first") end, "First Hunk") - map({ "n", "x" }, "ghs", ":Gitsigns stage_hunk", "Stage Hunk") - map({ "n", "x" }, "ghr", ":Gitsigns reset_hunk", "Reset Hunk") - map("n", "ghS", gs.stage_buffer, "Stage Buffer") - map("n", "ghu", gs.undo_stage_hunk, "Undo Stage Hunk") - map("n", "ghR", gs.reset_buffer, "Reset Buffer") - map("n", "ghp", gs.preview_hunk_inline, "Preview Hunk Inline") - map("n", "ghb", function() gs.blame_line({ full = true }) end, "Blame Line") - map("n", "ghB", function() gs.blame() end, "Blame Buffer") - map("n", "ghd", gs.diffthis, "Diff This") - map("n", "ghD", function() gs.diffthis("~") end, "Diff This ~") - map({ "o", "x" }, "ih", ":Gitsigns select_hunk", "GitSigns Select Hunk") - end, -} -``` - - - - - - -```lua -{ - "lewis6991/gitsigns.nvim", - event = "LazyFile", - opts = { - signs = { - add = { text = "▎" }, - change = { text = "▎" }, - delete = { text = "" }, - topdelete = { text = "" }, - changedelete = { text = "▎" }, - untracked = { text = "▎" }, - }, - signs_staged = { - add = { text = "▎" }, - change = { text = "▎" }, - delete = { text = "" }, - topdelete = { text = "" }, - changedelete = { text = "▎" }, - }, - on_attach = function(buffer) - local gs = package.loaded.gitsigns - - local function map(mode, l, r, desc) - vim.keymap.set(mode, l, r, { buffer = buffer, desc = desc, silent = true }) - end - - -- stylua: ignore start - map("n", "]h", function() - if vim.wo.diff then - vim.cmd.normal({ "]c", bang = true }) - else - gs.nav_hunk("next") - end - end, "Next Hunk") - map("n", "[h", function() - if vim.wo.diff then - vim.cmd.normal({ "[c", bang = true }) - else - gs.nav_hunk("prev") - end - end, "Prev Hunk") - map("n", "]H", function() gs.nav_hunk("last") end, "Last Hunk") - map("n", "[H", function() gs.nav_hunk("first") end, "First Hunk") - map({ "n", "x" }, "ghs", ":Gitsigns stage_hunk", "Stage Hunk") - map({ "n", "x" }, "ghr", ":Gitsigns reset_hunk", "Reset Hunk") - map("n", "ghS", gs.stage_buffer, "Stage Buffer") - map("n", "ghu", gs.undo_stage_hunk, "Undo Stage Hunk") - map("n", "ghR", gs.reset_buffer, "Reset Buffer") - map("n", "ghp", gs.preview_hunk_inline, "Preview Hunk Inline") - map("n", "ghb", function() gs.blame_line({ full = true }) end, "Blame Line") - map("n", "ghB", function() gs.blame() end, "Blame Buffer") - map("n", "ghd", gs.diffthis, "Diff This") - map("n", "ghD", function() gs.diffthis("~") end, "Diff This ~") - map({ "o", "x" }, "ih", ":Gitsigns select_hunk", "GitSigns Select Hunk") - end, - }, -} -``` - - - - - -## [gitsigns.nvim](https://github.com/lewis6991/gitsigns.nvim) - - - - - -```lua -opts = function() - Snacks.toggle({ - name = "Git Signs", - get = function() - return require("gitsigns.config").config.signcolumn - end, - set = function(state) - require("gitsigns").toggle_signs(state) - end, - }):map("uG") -end -``` - - - - - - -```lua -{ - "gitsigns.nvim", - opts = function() - Snacks.toggle({ - name = "Git Signs", - get = function() - return require("gitsigns.config").config.signcolumn - end, - set = function(state) - require("gitsigns").toggle_signs(state) - end, - }):map("uG") - end, -} -``` - - - - - -## [trouble.nvim](https://github.com/folke/trouble.nvim) - - better diagnostics list and others - - - - - - -```lua -opts = { - modes = { - lsp = { - win = { position = "right" }, - }, - }, -} -``` - - - - - - -```lua -{ - "folke/trouble.nvim", - cmd = { "Trouble" }, - opts = { - modes = { - lsp = { - win = { position = "right" }, - }, - }, - }, - keys = { - { "xx", "Trouble diagnostics toggle", desc = "Diagnostics (Trouble)" }, - { "xX", "Trouble diagnostics toggle filter.buf=0", desc = "Buffer Diagnostics (Trouble)" }, - { "cs", "Trouble symbols toggle", desc = "Symbols (Trouble)" }, - { "cS", "Trouble lsp toggle", desc = "LSP references/definitions/... (Trouble)" }, - { "xL", "Trouble loclist toggle", desc = "Location List (Trouble)" }, - { "xQ", "Trouble qflist toggle", desc = "Quickfix List (Trouble)" }, - { - "[q", - function() - if require("trouble").is_open() then - require("trouble").prev({ skip_groups = true, jump = true }) - else - local ok, err = pcall(vim.cmd.cprev) - if not ok then - vim.notify(err, vim.log.levels.ERROR) - end - end - end, - desc = "Previous Trouble/Quickfix Item", - }, - { - "]q", - function() - if require("trouble").is_open() then - require("trouble").next({ skip_groups = true, jump = true }) - else - local ok, err = pcall(vim.cmd.cnext) - if not ok then - vim.notify(err, vim.log.levels.ERROR) - end - end - end, - desc = "Next Trouble/Quickfix Item", - }, - }, -} -``` - - - - - -## [todo-comments.nvim](https://github.com/folke/todo-comments.nvim) - - Finds and lists all of the TODO, HACK, BUG, etc comment - in your project and loads them into a browsable list. - - - - - - -```lua -opts = {} -``` - - - - - - -```lua -{ - "folke/todo-comments.nvim", - cmd = { "TodoTrouble", "TodoTelescope" }, - event = "LazyFile", - opts = {}, - -- stylua: ignore - keys = { - { "]t", function() require("todo-comments").jump_next() end, desc = "Next Todo Comment" }, - { "[t", function() require("todo-comments").jump_prev() end, desc = "Previous Todo Comment" }, - { "xt", "Trouble todo toggle", desc = "Todo (Trouble)" }, - { "xT", "Trouble todo toggle filter = {tag = {TODO,FIX,FIXME}}", desc = "Todo/Fix/Fixme (Trouble)" }, - { "st", "TodoTelescope", desc = "Todo" }, - { "sT", "TodoTelescope keywords=TODO,FIX,FIXME", desc = "Todo/Fix/Fixme" }, - }, -} -``` - - - - - - diff --git a/docs/plugins/formatting.md b/docs/plugins/formatting.md deleted file mode 100644 index 37ccf3e1de..0000000000 --- a/docs/plugins/formatting.md +++ /dev/null @@ -1,187 +0,0 @@ -# Formatting - -**LazyVim** uses `conform.nvim` for formatting. - -Configuring `conform.nvim`: - -- `opts.format`: extra options passed to `require("conform").format(options)` -- `opts.formatters`: options will be merged with builtin formatters, or you can specify a new formatter. -- `opts.formatters[NAME].prepend_args`: extra arguments passed to the formatter command. - If you want to fully override the `args`, just use `args` instead of `prepend_args`. -- `opts.formatters_by_ft`: specify which formatters to use for each filetype. - -:::caution -Don't override `plugin.config` directly, since this **will** break LazyVim formatting. -::: - - - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -## [conform.nvim](https://github.com/stevearc/conform.nvim) - - - - - -```lua -opts = function() - local plugin = require("lazy.core.config").plugins["conform.nvim"] - if plugin.config ~= M.setup then - LazyVim.error({ - "Don't set `plugin.config` for `conform.nvim`.\n", - "This will break **LazyVim** formatting.\n", - "Please refer to the docs at https://www.lazyvim.org/plugins/formatting", - }, { title = "LazyVim" }) - end - ---@type conform.setupOpts - local opts = { - default_format_opts = { - timeout_ms = 3000, - async = false, -- not recommended to change - quiet = false, -- not recommended to change - lsp_format = "fallback", -- not recommended to change - }, - formatters_by_ft = { - lua = { "stylua" }, - fish = { "fish_indent" }, - sh = { "shfmt" }, - }, - -- The options you set here will be merged with the builtin formatters. - -- You can also define any custom formatters here. - ---@type table - formatters = { - injected = { options = { ignore_errors = true } }, - -- # Example of using dprint only when a dprint.json file is present - -- dprint = { - -- condition = function(ctx) - -- return vim.fs.find({ "dprint.json" }, { path = ctx.filename, upward = true })[1] - -- end, - -- }, - -- - -- # Example of using shfmt with extra args - -- shfmt = { - -- prepend_args = { "-i", "2", "-ci" }, - -- }, - }, - } - return opts -end -``` - - - - - - -```lua -{ - "stevearc/conform.nvim", - dependencies = { "mason.nvim" }, - lazy = true, - cmd = "ConformInfo", - keys = { - { - "cF", - function() - require("conform").format({ formatters = { "injected" }, timeout_ms = 3000 }) - end, - mode = { "n", "x" }, - desc = "Format Injected Langs", - }, - }, - init = function() - -- Install the conform formatter on VeryLazy - LazyVim.on_very_lazy(function() - LazyVim.format.register({ - name = "conform.nvim", - priority = 100, - primary = true, - format = function(buf) - require("conform").format({ bufnr = buf }) - end, - sources = function(buf) - local ret = require("conform").list_formatters(buf) - ---@param v conform.FormatterInfo - return vim.tbl_map(function(v) - return v.name - end, ret) - end, - }) - end) - end, - opts = function() - local plugin = require("lazy.core.config").plugins["conform.nvim"] - if plugin.config ~= M.setup then - LazyVim.error({ - "Don't set `plugin.config` for `conform.nvim`.\n", - "This will break **LazyVim** formatting.\n", - "Please refer to the docs at https://www.lazyvim.org/plugins/formatting", - }, { title = "LazyVim" }) - end - ---@type conform.setupOpts - local opts = { - default_format_opts = { - timeout_ms = 3000, - async = false, -- not recommended to change - quiet = false, -- not recommended to change - lsp_format = "fallback", -- not recommended to change - }, - formatters_by_ft = { - lua = { "stylua" }, - fish = { "fish_indent" }, - sh = { "shfmt" }, - }, - -- The options you set here will be merged with the builtin formatters. - -- You can also define any custom formatters here. - ---@type table - formatters = { - injected = { options = { ignore_errors = true } }, - -- # Example of using dprint only when a dprint.json file is present - -- dprint = { - -- condition = function(ctx) - -- return vim.fs.find({ "dprint.json" }, { path = ctx.filename, upward = true })[1] - -- end, - -- }, - -- - -- # Example of using shfmt with extra args - -- shfmt = { - -- prepend_args = { "-i", "2", "-ci" }, - -- }, - }, - } - return opts - end, - config = M.setup, -} -``` - - - - - -## [mason.nvim](https://github.com/mason-org/mason.nvim) - - - - - -```lua -opts = nil -``` - - - - - - -```lua -{ "mason.nvim" } -``` - - - - - - diff --git a/docs/plugins/index.md b/docs/plugins/index.md deleted file mode 100644 index 0e0ee7276c..0000000000 --- a/docs/plugins/index.md +++ /dev/null @@ -1,17 +0,0 @@ -# Core Plugins - -**LazyVim** provides a set of preconfigured plugins enabled by default. -All you need to do to utilize these plugins is install the **LazyVim** starter template. - -- [Coding](./coding.md): Faster coding with features such as snippets, autocompletion, and more. -- [Colorscheme](./colorscheme.md): Default color schemes (**TokyoNight** and **Catppuccin**). -- [Editor](./editor.md): Provides functionality like a file explorer, search and replace, fuzzy finding, git integration. -- [Formatting](./formatting.md): Set up formatters using **conform.nvim**. -- [Linting](./linting.md): Manage linters with the **nvim-lint** plugin. -- [LSP](./lsp.md): configure the Language Server Protocol (LSP) client. -- [TreeSitter](./treesitter.md): advanced syntax highlighting and plugins that use **Treesitter** parsers -- [UI](./ui.md): Enhance the user interface with features such as status line, buffer line, indentation guides, dashboard, and icons. -- [Util](./util.md): Contains utilities for session management, shared functionality, and other handy tools. - -For detailed information on the default configurations of each plugin set and -instructions on customizing them, refer to the respective documentation linked above. diff --git a/docs/plugins/linting.md b/docs/plugins/linting.md deleted file mode 100644 index 11392c5c6e..0000000000 --- a/docs/plugins/linting.md +++ /dev/null @@ -1,155 +0,0 @@ -# Linting - - - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -## [nvim-lint](https://github.com/mfussenegger/nvim-lint) - - Asynchronously calls language-specific linter tools and reports - their results via the `vim.diagnostic` module. - - - - - - -```lua -opts = { - -- Event to trigger linters - events = { "BufWritePost", "BufReadPost", "InsertLeave" }, - linters_by_ft = { - fish = { "fish" }, - -- Use the "*" filetype to run linters on all filetypes. - -- ['*'] = { 'global linter' }, - -- Use the "_" filetype to run linters on filetypes that don't have other linters configured. - -- ['_'] = { 'fallback linter' }, - -- ["*"] = { "typos" }, - }, - -- LazyVim extension to easily override linter options - -- or add custom linters. - ---@type table - linters = { - -- -- Example of using selene only when a selene.toml file is present - -- selene = { - -- -- `condition` is another LazyVim extension that allows you to - -- -- dynamically enable/disable linters based on the context. - -- condition = function(ctx) - -- return vim.fs.find({ "selene.toml" }, { path = ctx.filename, upward = true })[1] - -- end, - -- }, - }, -} -``` - - - - - - -```lua -{ - "mfussenegger/nvim-lint", - event = "LazyFile", - opts = { - -- Event to trigger linters - events = { "BufWritePost", "BufReadPost", "InsertLeave" }, - linters_by_ft = { - fish = { "fish" }, - -- Use the "*" filetype to run linters on all filetypes. - -- ['*'] = { 'global linter' }, - -- Use the "_" filetype to run linters on filetypes that don't have other linters configured. - -- ['_'] = { 'fallback linter' }, - -- ["*"] = { "typos" }, - }, - -- LazyVim extension to easily override linter options - -- or add custom linters. - ---@type table - linters = { - -- -- Example of using selene only when a selene.toml file is present - -- selene = { - -- -- `condition` is another LazyVim extension that allows you to - -- -- dynamically enable/disable linters based on the context. - -- condition = function(ctx) - -- return vim.fs.find({ "selene.toml" }, { path = ctx.filename, upward = true })[1] - -- end, - -- }, - }, - }, - config = function(_, opts) - local M = {} - - local lint = require("lint") - for name, linter in pairs(opts.linters) do - if type(linter) == "table" and type(lint.linters[name]) == "table" then - lint.linters[name] = vim.tbl_deep_extend("force", lint.linters[name], linter) - if type(linter.prepend_args) == "table" then - lint.linters[name].args = lint.linters[name].args or {} - vim.list_extend(lint.linters[name].args, linter.prepend_args) - end - else - lint.linters[name] = linter - end - end - lint.linters_by_ft = opts.linters_by_ft - - function M.debounce(ms, fn) - local timer = vim.uv.new_timer() - return function(...) - local argv = { ... } - timer:start(ms, 0, function() - timer:stop() - vim.schedule_wrap(fn)(unpack(argv)) - end) - end - end - - function M.lint() - -- Use nvim-lint's logic first: - -- * checks if linters exist for the full filetype first - -- * otherwise will split filetype by "." and add all those linters - -- * this differs from conform.nvim which only uses the first filetype that has a formatter - local names = lint._resolve_linter_by_ft(vim.bo.filetype) - - -- Create a copy of the names table to avoid modifying the original. - names = vim.list_extend({}, names) - - -- Add fallback linters. - if #names == 0 then - vim.list_extend(names, lint.linters_by_ft["_"] or {}) - end - - -- Add global linters. - vim.list_extend(names, lint.linters_by_ft["*"] or {}) - - -- Filter out linters that don't exist or don't match the condition. - local ctx = { filename = vim.api.nvim_buf_get_name(0) } - ctx.dirname = vim.fn.fnamemodify(ctx.filename, ":h") - names = vim.tbl_filter(function(name) - local linter = lint.linters[name] - if not linter then - LazyVim.warn("Linter not found: " .. name, { title = "nvim-lint" }) - end - return linter and not (type(linter) == "table" and linter.condition and not linter.condition(ctx)) - end, names) - - -- Run linters. - if #names > 0 then - lint.try_lint(names) - end - end - - vim.api.nvim_create_autocmd(opts.events, { - group = vim.api.nvim_create_augroup("nvim-lint", { clear = true }), - callback = M.debounce(100, M.lint), - }) - end, -} -``` - - - - - - diff --git a/docs/plugins/lsp.md b/docs/plugins/lsp.md deleted file mode 100644 index 2bc56ff488..0000000000 --- a/docs/plugins/lsp.md +++ /dev/null @@ -1,504 +0,0 @@ -# LSP - -## ⌨️ Customizing [LSP Keymaps](/keymaps#lsp) - -The syntax for adding, deleting and changing [LSP Keymaps](/keymaps#lsp), -is the same as for [plugin keymaps](/configuration/plugins#%EF%B8%8F-adding--disabling-plugin-keymaps), -but you need to configure it using the `opts()` method. - -```lua --- LSP keymaps -{ - "neovim/nvim-lspconfig", - opts = function() - local keys = require("lazyvim.plugins.lsp.keymaps").get() - -- change a keymap - keys[#keys + 1] = { "K", "echo 'hello'" } - -- disable a keymap - keys[#keys + 1] = { "K", false } - -- add a keymap - keys[#keys + 1] = { "H", "echo 'hello'" } - end, -} -``` - - - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -## [nvim-lspconfig](https://github.com/neovim/nvim-lspconfig) - - lspconfig - - - - - - -```lua -opts = function() - ---@class PluginLspOpts - local ret = { - -- options for vim.diagnostic.config() - ---@type vim.diagnostic.Opts - diagnostics = { - underline = true, - update_in_insert = false, - virtual_text = { - spacing = 4, - source = "if_many", - prefix = "●", - -- this will set set the prefix to a function that returns the diagnostics icon based on the severity - -- prefix = "icons", - }, - severity_sort = true, - signs = { - text = { - [vim.diagnostic.severity.ERROR] = LazyVim.config.icons.diagnostics.Error, - [vim.diagnostic.severity.WARN] = LazyVim.config.icons.diagnostics.Warn, - [vim.diagnostic.severity.HINT] = LazyVim.config.icons.diagnostics.Hint, - [vim.diagnostic.severity.INFO] = LazyVim.config.icons.diagnostics.Info, - }, - }, - }, - -- Enable this to enable the builtin LSP inlay hints on Neovim. - -- Be aware that you also will need to properly configure your LSP server to - -- provide the inlay hints. - inlay_hints = { - enabled = true, - exclude = { "vue" }, -- filetypes for which you don't want to enable inlay hints - }, - -- Enable this to enable the builtin LSP code lenses on Neovim. - -- Be aware that you also will need to properly configure your LSP server to - -- provide the code lenses. - codelens = { - enabled = false, - }, - -- Enable this to enable the builtin LSP folding on Neovim. - -- Be aware that you also will need to properly configure your LSP server to - -- provide the folds. - folds = { - enabled = true, - }, - -- add any global capabilities here - capabilities = { - workspace = { - fileOperations = { - didRename = true, - willRename = true, - }, - }, - }, - -- options for vim.lsp.buf.format - -- `bufnr` and `filter` is handled by the LazyVim formatter, - -- but can be also overridden when specified - format = { - formatting_options = nil, - timeout_ms = nil, - }, - -- LSP Server Settings - ---@alias lazyvim.lsp.Config vim.lsp.Config|{mason?:boolean, enabled?:boolean} - ---@type table - servers = { - stylua = { enabled = false }, - lua_ls = { - -- mason = false, -- set to false if you don't want this server to be installed with mason - -- Use this to add any additional keymaps - -- for specific lsp servers - -- ---@type LazyKeysSpec[] - -- keys = {}, - settings = { - Lua = { - workspace = { - checkThirdParty = false, - }, - codeLens = { - enable = true, - }, - completion = { - callSnippet = "Replace", - }, - doc = { - privateName = { "^_" }, - }, - hint = { - enable = true, - setType = false, - paramType = true, - paramName = "Disable", - semicolon = "Disable", - arrayIndex = "Disable", - }, - }, - }, - }, - }, - -- you can do any additional lsp server setup here - -- return true if you don't want this server to be setup with lspconfig - ---@type table - setup = { - -- example to setup with typescript.nvim - -- tsserver = function(_, opts) - -- require("typescript").setup({ server = opts }) - -- return true - -- end, - -- Specify * to use this function as a fallback for any server - -- ["*"] = function(server, opts) end, - }, - } - return ret -end -``` - - - - - - -```lua -{ - "neovim/nvim-lspconfig", - event = "LazyFile", - dependencies = { - "mason.nvim", - { "mason-org/mason-lspconfig.nvim", config = function() end }, - }, - opts = function() - ---@class PluginLspOpts - local ret = { - -- options for vim.diagnostic.config() - ---@type vim.diagnostic.Opts - diagnostics = { - underline = true, - update_in_insert = false, - virtual_text = { - spacing = 4, - source = "if_many", - prefix = "●", - -- this will set set the prefix to a function that returns the diagnostics icon based on the severity - -- prefix = "icons", - }, - severity_sort = true, - signs = { - text = { - [vim.diagnostic.severity.ERROR] = LazyVim.config.icons.diagnostics.Error, - [vim.diagnostic.severity.WARN] = LazyVim.config.icons.diagnostics.Warn, - [vim.diagnostic.severity.HINT] = LazyVim.config.icons.diagnostics.Hint, - [vim.diagnostic.severity.INFO] = LazyVim.config.icons.diagnostics.Info, - }, - }, - }, - -- Enable this to enable the builtin LSP inlay hints on Neovim. - -- Be aware that you also will need to properly configure your LSP server to - -- provide the inlay hints. - inlay_hints = { - enabled = true, - exclude = { "vue" }, -- filetypes for which you don't want to enable inlay hints - }, - -- Enable this to enable the builtin LSP code lenses on Neovim. - -- Be aware that you also will need to properly configure your LSP server to - -- provide the code lenses. - codelens = { - enabled = false, - }, - -- Enable this to enable the builtin LSP folding on Neovim. - -- Be aware that you also will need to properly configure your LSP server to - -- provide the folds. - folds = { - enabled = true, - }, - -- add any global capabilities here - capabilities = { - workspace = { - fileOperations = { - didRename = true, - willRename = true, - }, - }, - }, - -- options for vim.lsp.buf.format - -- `bufnr` and `filter` is handled by the LazyVim formatter, - -- but can be also overridden when specified - format = { - formatting_options = nil, - timeout_ms = nil, - }, - -- LSP Server Settings - ---@alias lazyvim.lsp.Config vim.lsp.Config|{mason?:boolean, enabled?:boolean} - ---@type table - servers = { - stylua = { enabled = false }, - lua_ls = { - -- mason = false, -- set to false if you don't want this server to be installed with mason - -- Use this to add any additional keymaps - -- for specific lsp servers - -- ---@type LazyKeysSpec[] - -- keys = {}, - settings = { - Lua = { - workspace = { - checkThirdParty = false, - }, - codeLens = { - enable = true, - }, - completion = { - callSnippet = "Replace", - }, - doc = { - privateName = { "^_" }, - }, - hint = { - enable = true, - setType = false, - paramType = true, - paramName = "Disable", - semicolon = "Disable", - arrayIndex = "Disable", - }, - }, - }, - }, - }, - -- you can do any additional lsp server setup here - -- return true if you don't want this server to be setup with lspconfig - ---@type table - setup = { - -- example to setup with typescript.nvim - -- tsserver = function(_, opts) - -- require("typescript").setup({ server = opts }) - -- return true - -- end, - -- Specify * to use this function as a fallback for any server - -- ["*"] = function(server, opts) end, - }, - } - return ret - end, - ---@param opts PluginLspOpts - config = vim.schedule_wrap(function(_, opts) - -- setup autoformat - LazyVim.format.register(LazyVim.lsp.formatter()) - - -- setup keymaps - LazyVim.lsp.on_attach(function(client, buffer) - require("lazyvim.plugins.lsp.keymaps").on_attach(client, buffer) - end) - - LazyVim.lsp.setup() - LazyVim.lsp.on_dynamic_capability(require("lazyvim.plugins.lsp.keymaps").on_attach) - - -- inlay hints - if opts.inlay_hints.enabled then - LazyVim.lsp.on_supports_method("textDocument/inlayHint", function(client, buffer) - if - vim.api.nvim_buf_is_valid(buffer) - and vim.bo[buffer].buftype == "" - and not vim.tbl_contains(opts.inlay_hints.exclude, vim.bo[buffer].filetype) - then - vim.lsp.inlay_hint.enable(true, { bufnr = buffer }) - end - end) - end - - -- folds - if opts.folds.enabled then - LazyVim.lsp.on_supports_method("textDocument/foldingRange", function(client, buffer) - if LazyVim.set_default("foldmethod", "expr") then - LazyVim.set_default("foldexpr", "v:lua.vim.lsp.foldexpr()") - end - end) - end - - -- code lens - if opts.codelens.enabled and vim.lsp.codelens then - LazyVim.lsp.on_supports_method("textDocument/codeLens", function(client, buffer) - vim.lsp.codelens.refresh() - vim.api.nvim_create_autocmd({ "BufEnter", "CursorHold", "InsertLeave" }, { - buffer = buffer, - callback = vim.lsp.codelens.refresh, - }) - end) - end - - -- diagnostics - if type(opts.diagnostics.virtual_text) == "table" and opts.diagnostics.virtual_text.prefix == "icons" then - opts.diagnostics.virtual_text.prefix = function(diagnostic) - local icons = LazyVim.config.icons.diagnostics - for d, icon in pairs(icons) do - if diagnostic.severity == vim.diagnostic.severity[d:upper()] then - return icon - end - end - return "●" - end - end - vim.diagnostic.config(vim.deepcopy(opts.diagnostics)) - - if opts.capabilities then - vim.lsp.config("*", { capabilities = opts.capabilities }) - end - - -- get all the servers that are available through mason-lspconfig - local have_mason = LazyVim.has("mason-lspconfig.nvim") - local mason_all = have_mason - and vim.tbl_keys(require("mason-lspconfig.mappings").get_mason_map().lspconfig_to_package) - or {} --[[ @as string[] ]] - local mason_exclude = {} ---@type string[] - - ---@return boolean? exclude automatic setup - local function configure(server) - local sopts = opts.servers[server] - sopts = sopts == true and {} or (not sopts) and { enabled = false } or sopts --[[@as lazyvim.lsp.Config]] - - if sopts.enabled == false then - mason_exclude[#mason_exclude + 1] = server - return - end - - local use_mason = sopts.mason ~= false and vim.tbl_contains(mason_all, server) - local setup = opts.setup[server] or opts.setup["*"] - if setup and setup(server, sopts) then - mason_exclude[#mason_exclude + 1] = server - else - vim.lsp.config(server, sopts) -- configure the server - if not use_mason then - vim.lsp.enable(server) - end - end - return use_mason - end - - local install = vim.tbl_filter(configure, vim.tbl_keys(opts.servers)) - if have_mason then - require("mason-lspconfig").setup({ - ensure_installed = vim.list_extend(install, LazyVim.opts("mason-lspconfig.nvim").ensure_installed or {}), - automatic_enable = { exclude = mason_exclude }, - }) - end - end), -} -``` - - - - - -## [mason.nvim](https://github.com/mason-org/mason.nvim) - - - - - -```lua -opts = nil -``` - - - - - - -```lua -{ - "mason.nvim", - { "mason-org/mason-lspconfig.nvim", config = function() end }, -} -``` - - - - - -## [mason-lspconfig.nvim](https://github.com/mason-org/mason-lspconfig.nvim) - - - - - -```lua -opts = {} -``` - - - - - - -```lua -{ "mason-org/mason-lspconfig.nvim", config = function() end } -``` - - - - - -## [mason.nvim](https://github.com/mason-org/mason.nvim) - - cmdline tools and lsp servers - - - - - - -```lua -opts = { - ensure_installed = { - "stylua", - "shfmt", - }, -} -``` - - - - - - -```lua -{ - - "mason-org/mason.nvim", - cmd = "Mason", - keys = { { "cm", "Mason", desc = "Mason" } }, - build = ":MasonUpdate", - opts_extend = { "ensure_installed" }, - opts = { - ensure_installed = { - "stylua", - "shfmt", - }, - }, - ---@param opts MasonSettings | {ensure_installed: string[]} - config = function(_, opts) - require("mason").setup(opts) - local mr = require("mason-registry") - mr:on("package:install:success", function() - vim.defer_fn(function() - -- trigger FileType event to possibly load this newly installed LSP server - require("lazy.core.handler.event").trigger({ - event = "FileType", - buf = vim.api.nvim_get_current_buf(), - }) - end, 100) - end) - - mr.refresh(function() - for _, tool in ipairs(opts.ensure_installed) do - local p = mr.get_package(tool) - if not p:is_installed() then - p:install() - end - end - end) - end, -} -``` - - - - - - diff --git a/docs/plugins/treesitter.md b/docs/plugins/treesitter.md deleted file mode 100644 index 881fa6d09c..0000000000 --- a/docs/plugins/treesitter.md +++ /dev/null @@ -1,323 +0,0 @@ -# TreeSitter - - - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -## [nvim-treesitter](https://github.com/nvim-treesitter/nvim-treesitter) - - Treesitter is a new parser generator tool that we can - use in Neovim to power faster and more accurate - syntax highlighting. - - - - - - -```lua -opts = { - -- LazyVim config for treesitter - indent = { enable = true }, ---@type lazyvim.TSFeat - highlight = { enable = true }, ---@type lazyvim.TSFeat - folds = { enable = true }, ---@type lazyvim.TSFeat - ensure_installed = { - "bash", - "c", - "diff", - "html", - "javascript", - "jsdoc", - "json", - "jsonc", - "lua", - "luadoc", - "luap", - "markdown", - "markdown_inline", - "printf", - "python", - "query", - "regex", - "toml", - "tsx", - "typescript", - "vim", - "vimdoc", - "xml", - "yaml", - }, -} -``` - - - - - - -```lua -{ - "nvim-treesitter/nvim-treesitter", - branch = "main", - version = false, -- last release is way too old and doesn't work on Windows - build = function() - local TS = require("nvim-treesitter") - if not TS.get_installed then - LazyVim.error("Please restart Neovim and run `:TSUpdate` to use the `nvim-treesitter` **main** branch.") - return - end - -- make sure we're using the latest treesitter util - package.loaded["lazyvim.util.treesitter"] = nil - LazyVim.treesitter.build(function() - TS.update(nil, { summary = true }) - end) - end, - event = { "LazyFile", "VeryLazy" }, - cmd = { "TSUpdate", "TSInstall", "TSLog", "TSUninstall" }, - opts_extend = { "ensure_installed" }, - ---@alias lazyvim.TSFeat { enable?: boolean, disable?: string[] } - ---@class lazyvim.TSConfig: TSConfig - opts = { - -- LazyVim config for treesitter - indent = { enable = true }, ---@type lazyvim.TSFeat - highlight = { enable = true }, ---@type lazyvim.TSFeat - folds = { enable = true }, ---@type lazyvim.TSFeat - ensure_installed = { - "bash", - "c", - "diff", - "html", - "javascript", - "jsdoc", - "json", - "jsonc", - "lua", - "luadoc", - "luap", - "markdown", - "markdown_inline", - "printf", - "python", - "query", - "regex", - "toml", - "tsx", - "typescript", - "vim", - "vimdoc", - "xml", - "yaml", - }, - }, - ---@param opts lazyvim.TSConfig - config = function(_, opts) - local TS = require("nvim-treesitter") - - setmetatable(require("nvim-treesitter.install"), { - __newindex = function(_, k) - if k == "compilers" then - vim.schedule(function() - LazyVim.error({ - "Setting custom compilers for `nvim-treesitter` is no longer supported.", - "", - "For more info, see:", - "- [compilers](https://docs.rs/cc/latest/cc/#compile-time-requirements)", - }) - end) - end - end, - }) - - -- some quick sanity checks - if not TS.get_installed then - return LazyVim.error("Please use `:Lazy` and update `nvim-treesitter`") - elseif type(opts.ensure_installed) ~= "table" then - return LazyVim.error("`nvim-treesitter` opts.ensure_installed must be a table") - end - - -- setup treesitter - TS.setup(opts) - LazyVim.treesitter.get_installed(true) -- initialize the installed langs - - -- install missing parsers - local install = vim.tbl_filter(function(lang) - return not LazyVim.treesitter.have(lang) - end, opts.ensure_installed or {}) - if #install > 0 then - LazyVim.treesitter.build(function() - TS.install(install, { summary = true }):await(function() - LazyVim.treesitter.get_installed(true) -- refresh the installed langs - end) - end) - end - - vim.api.nvim_create_autocmd("FileType", { - group = vim.api.nvim_create_augroup("lazyvim_treesitter", { clear = true }), - callback = function(ev) - local ft, lang = ev.match, vim.treesitter.language.get_lang(ev.match) - if not LazyVim.treesitter.have(ft) then - return - end - - ---@param feat string - ---@param query string - local function enabled(feat, query) - local f = opts[feat] or {} ---@type lazyvim.TSFeat - return f.enable ~= false - and not (type(f.disable) == "table" and vim.tbl_contains(f.disable, lang)) - and LazyVim.treesitter.have(ft, query) - end - - -- highlighting - if enabled("highlight", "highlights") then - pcall(vim.treesitter.start, ev.buf) - end - - -- indents - if enabled("indent", "indents") then - LazyVim.set_default("indentexpr", "v:lua.LazyVim.treesitter.indentexpr()") - end - - -- folds - if enabled("folds", "folds") then - if LazyVim.set_default("foldmethod", "expr") then - LazyVim.set_default("foldexpr", "v:lua.LazyVim.treesitter.foldexpr()") - end - end - end, - }) - end, -} -``` - - - - - -## [nvim-treesitter-textobjects](https://github.com/nvim-treesitter/nvim-treesitter-textobjects) - - - - - -```lua -opts = { - move = { - enable = true, - set_jumps = true, -- whether to set jumps in the jumplist - -- LazyVim extention to create buffer-local keymaps - keys = { - goto_next_start = { ["]f"] = "@function.outer", ["]c"] = "@class.outer", ["]a"] = "@parameter.inner" }, - goto_next_end = { ["]F"] = "@function.outer", ["]C"] = "@class.outer", ["]A"] = "@parameter.inner" }, - goto_previous_start = { ["[f"] = "@function.outer", ["[c"] = "@class.outer", ["[a"] = "@parameter.inner" }, - goto_previous_end = { ["[F"] = "@function.outer", ["[C"] = "@class.outer", ["[A"] = "@parameter.inner" }, - }, - }, -} -``` - - - - - - -```lua -{ - "nvim-treesitter/nvim-treesitter-textobjects", - branch = "main", - event = "VeryLazy", - opts = { - move = { - enable = true, - set_jumps = true, -- whether to set jumps in the jumplist - -- LazyVim extention to create buffer-local keymaps - keys = { - goto_next_start = { ["]f"] = "@function.outer", ["]c"] = "@class.outer", ["]a"] = "@parameter.inner" }, - goto_next_end = { ["]F"] = "@function.outer", ["]C"] = "@class.outer", ["]A"] = "@parameter.inner" }, - goto_previous_start = { ["[f"] = "@function.outer", ["[c"] = "@class.outer", ["[a"] = "@parameter.inner" }, - goto_previous_end = { ["[F"] = "@function.outer", ["[C"] = "@class.outer", ["[A"] = "@parameter.inner" }, - }, - }, - }, - config = function(_, opts) - local TS = require("nvim-treesitter-textobjects") - if not TS.setup then - LazyVim.error("Please use `:Lazy` and update `nvim-treesitter`") - return - end - TS.setup(opts) - - local function attach(buf) - local ft = vim.bo[buf].filetype - if not (vim.tbl_get(opts, "move", "enable") and LazyVim.treesitter.have(ft, "textobjects")) then - return - end - ---@type table> - local moves = vim.tbl_get(opts, "move", "keys") or {} - - for method, keymaps in pairs(moves) do - for key, query in pairs(keymaps) do - local desc = query:gsub("@", ""):gsub("%..*", "") - desc = desc:sub(1, 1):upper() .. desc:sub(2) - desc = (key:sub(1, 1) == "[" and "Prev " or "Next ") .. desc - desc = desc .. (key:sub(2, 2) == key:sub(2, 2):upper() and " End" or " Start") - if not (vim.wo.diff and key:find("[cC]")) then - vim.keymap.set({ "n", "x", "o" }, key, function() - require("nvim-treesitter-textobjects.move")[method](query, "textobjects") - end, { - buffer = buf, - desc = desc, - silent = true, - }) - end - end - end - end - - vim.api.nvim_create_autocmd("FileType", { - group = vim.api.nvim_create_augroup("lazyvim_treesitter_textobjects", { clear = true }), - callback = function(ev) - attach(ev.buf) - end, - }) - vim.tbl_map(attach, vim.api.nvim_list_bufs()) - end, -} -``` - - - - - -## [nvim-ts-autotag](https://github.com/windwp/nvim-ts-autotag) - - Automatically add closing tags for HTML and JSX - - - - - - -```lua -opts = {} -``` - - - - - - -```lua -{ - "windwp/nvim-ts-autotag", - event = "LazyFile", - opts = {}, -} -``` - - - - - - diff --git a/docs/plugins/ui.md b/docs/plugins/ui.md deleted file mode 100644 index 6eedca753c..0000000000 --- a/docs/plugins/ui.md +++ /dev/null @@ -1,707 +0,0 @@ -# UI - - - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -## [bufferline.nvim](https://github.com/akinsho/bufferline.nvim) - - This is what powers LazyVim's fancy-looking - tabs, which include filetype icons and close buttons. - - - - - - -```lua -opts = { - options = { - -- stylua: ignore - close_command = function(n) Snacks.bufdelete(n) end, - -- stylua: ignore - right_mouse_command = function(n) Snacks.bufdelete(n) end, - diagnostics = "nvim_lsp", - always_show_bufferline = false, - diagnostics_indicator = function(_, _, diag) - local icons = LazyVim.config.icons.diagnostics - local ret = (diag.error and icons.Error .. diag.error .. " " or "") - .. (diag.warning and icons.Warn .. diag.warning or "") - return vim.trim(ret) - end, - offsets = { - { - filetype = "neo-tree", - text = "Neo-tree", - highlight = "Directory", - text_align = "left", - }, - { - filetype = "snacks_layout_box", - }, - }, - ---@param opts bufferline.IconFetcherOpts - get_element_icon = function(opts) - return LazyVim.config.icons.ft[opts.filetype] - end, - }, -} -``` - - - - - - -```lua -{ - "akinsho/bufferline.nvim", - event = "VeryLazy", - keys = { - { "bp", "BufferLineTogglePin", desc = "Toggle Pin" }, - { "bP", "BufferLineGroupClose ungrouped", desc = "Delete Non-Pinned Buffers" }, - { "br", "BufferLineCloseRight", desc = "Delete Buffers to the Right" }, - { "bl", "BufferLineCloseLeft", desc = "Delete Buffers to the Left" }, - { "", "BufferLineCyclePrev", desc = "Prev Buffer" }, - { "", "BufferLineCycleNext", desc = "Next Buffer" }, - { "[b", "BufferLineCyclePrev", desc = "Prev Buffer" }, - { "]b", "BufferLineCycleNext", desc = "Next Buffer" }, - { "[B", "BufferLineMovePrev", desc = "Move buffer prev" }, - { "]B", "BufferLineMoveNext", desc = "Move buffer next" }, - }, - opts = { - options = { - -- stylua: ignore - close_command = function(n) Snacks.bufdelete(n) end, - -- stylua: ignore - right_mouse_command = function(n) Snacks.bufdelete(n) end, - diagnostics = "nvim_lsp", - always_show_bufferline = false, - diagnostics_indicator = function(_, _, diag) - local icons = LazyVim.config.icons.diagnostics - local ret = (diag.error and icons.Error .. diag.error .. " " or "") - .. (diag.warning and icons.Warn .. diag.warning or "") - return vim.trim(ret) - end, - offsets = { - { - filetype = "neo-tree", - text = "Neo-tree", - highlight = "Directory", - text_align = "left", - }, - { - filetype = "snacks_layout_box", - }, - }, - ---@param opts bufferline.IconFetcherOpts - get_element_icon = function(opts) - return LazyVim.config.icons.ft[opts.filetype] - end, - }, - }, - config = function(_, opts) - require("bufferline").setup(opts) - -- Fix bufferline when restoring a session - vim.api.nvim_create_autocmd({ "BufAdd", "BufDelete" }, { - callback = function() - vim.schedule(function() - pcall(nvim_bufferline) - end) - end, - }) - end, -} -``` - - - - - -## [lualine.nvim](https://github.com/nvim-lualine/lualine.nvim) - - Displays a fancy status line with git status, - LSP diagnostics, filetype information, and more. - - - - - - -```lua -opts = function() - -- PERF: we don't need this lualine require madness 🤷 - local lualine_require = require("lualine_require") - lualine_require.require = require - - local icons = LazyVim.config.icons - - vim.o.laststatus = vim.g.lualine_laststatus - - local opts = { - options = { - theme = "auto", - globalstatus = vim.o.laststatus == 3, - disabled_filetypes = { statusline = { "dashboard", "alpha", "ministarter", "snacks_dashboard" } }, - }, - sections = { - lualine_a = { "mode" }, - lualine_b = { "branch" }, - - lualine_c = { - LazyVim.lualine.root_dir(), - { - "diagnostics", - symbols = { - error = icons.diagnostics.Error, - warn = icons.diagnostics.Warn, - info = icons.diagnostics.Info, - hint = icons.diagnostics.Hint, - }, - }, - { "filetype", icon_only = true, separator = "", padding = { left = 1, right = 0 } }, - { LazyVim.lualine.pretty_path() }, - }, - lualine_x = { - Snacks.profiler.status(), - -- stylua: ignore - { - function() return require("noice").api.status.command.get() end, - cond = function() return package.loaded["noice"] and require("noice").api.status.command.has() end, - color = function() return { fg = Snacks.util.color("Statement") } end, - }, - -- stylua: ignore - { - function() return require("noice").api.status.mode.get() end, - cond = function() return package.loaded["noice"] and require("noice").api.status.mode.has() end, - color = function() return { fg = Snacks.util.color("Constant") } end, - }, - -- stylua: ignore - { - function() return " " .. require("dap").status() end, - cond = function() return package.loaded["dap"] and require("dap").status() ~= "" end, - color = function() return { fg = Snacks.util.color("Debug") } end, - }, - -- stylua: ignore - { - require("lazy.status").updates, - cond = require("lazy.status").has_updates, - color = function() return { fg = Snacks.util.color("Special") } end, - }, - { - "diff", - symbols = { - added = icons.git.added, - modified = icons.git.modified, - removed = icons.git.removed, - }, - source = function() - local gitsigns = vim.b.gitsigns_status_dict - if gitsigns then - return { - added = gitsigns.added, - modified = gitsigns.changed, - removed = gitsigns.removed, - } - end - end, - }, - }, - lualine_y = { - { "progress", separator = " ", padding = { left = 1, right = 0 } }, - { "location", padding = { left = 0, right = 1 } }, - }, - lualine_z = { - function() - return " " .. os.date("%R") - end, - }, - }, - extensions = { "neo-tree", "lazy", "fzf" }, - } - - -- do not add trouble symbols if aerial is enabled - -- And allow it to be overriden for some buffer types (see autocmds) - if vim.g.trouble_lualine and LazyVim.has("trouble.nvim") then - local trouble = require("trouble") - local symbols = trouble.statusline({ - mode = "symbols", - groups = {}, - title = false, - filter = { range = true }, - format = "{kind_icon}{symbol.name:Normal}", - hl_group = "lualine_c_normal", - }) - table.insert(opts.sections.lualine_c, { - symbols and symbols.get, - cond = function() - return vim.b.trouble_lualine ~= false and symbols.has() - end, - }) - end - - return opts -end -``` - - - - - - -```lua -{ - "nvim-lualine/lualine.nvim", - event = "VeryLazy", - init = function() - vim.g.lualine_laststatus = vim.o.laststatus - if vim.fn.argc(-1) > 0 then - -- set an empty statusline till lualine loads - vim.o.statusline = " " - else - -- hide the statusline on the starter page - vim.o.laststatus = 0 - end - end, - opts = function() - -- PERF: we don't need this lualine require madness 🤷 - local lualine_require = require("lualine_require") - lualine_require.require = require - - local icons = LazyVim.config.icons - - vim.o.laststatus = vim.g.lualine_laststatus - - local opts = { - options = { - theme = "auto", - globalstatus = vim.o.laststatus == 3, - disabled_filetypes = { statusline = { "dashboard", "alpha", "ministarter", "snacks_dashboard" } }, - }, - sections = { - lualine_a = { "mode" }, - lualine_b = { "branch" }, - - lualine_c = { - LazyVim.lualine.root_dir(), - { - "diagnostics", - symbols = { - error = icons.diagnostics.Error, - warn = icons.diagnostics.Warn, - info = icons.diagnostics.Info, - hint = icons.diagnostics.Hint, - }, - }, - { "filetype", icon_only = true, separator = "", padding = { left = 1, right = 0 } }, - { LazyVim.lualine.pretty_path() }, - }, - lualine_x = { - Snacks.profiler.status(), - -- stylua: ignore - { - function() return require("noice").api.status.command.get() end, - cond = function() return package.loaded["noice"] and require("noice").api.status.command.has() end, - color = function() return { fg = Snacks.util.color("Statement") } end, - }, - -- stylua: ignore - { - function() return require("noice").api.status.mode.get() end, - cond = function() return package.loaded["noice"] and require("noice").api.status.mode.has() end, - color = function() return { fg = Snacks.util.color("Constant") } end, - }, - -- stylua: ignore - { - function() return " " .. require("dap").status() end, - cond = function() return package.loaded["dap"] and require("dap").status() ~= "" end, - color = function() return { fg = Snacks.util.color("Debug") } end, - }, - -- stylua: ignore - { - require("lazy.status").updates, - cond = require("lazy.status").has_updates, - color = function() return { fg = Snacks.util.color("Special") } end, - }, - { - "diff", - symbols = { - added = icons.git.added, - modified = icons.git.modified, - removed = icons.git.removed, - }, - source = function() - local gitsigns = vim.b.gitsigns_status_dict - if gitsigns then - return { - added = gitsigns.added, - modified = gitsigns.changed, - removed = gitsigns.removed, - } - end - end, - }, - }, - lualine_y = { - { "progress", separator = " ", padding = { left = 1, right = 0 } }, - { "location", padding = { left = 0, right = 1 } }, - }, - lualine_z = { - function() - return " " .. os.date("%R") - end, - }, - }, - extensions = { "neo-tree", "lazy", "fzf" }, - } - - -- do not add trouble symbols if aerial is enabled - -- And allow it to be overriden for some buffer types (see autocmds) - if vim.g.trouble_lualine and LazyVim.has("trouble.nvim") then - local trouble = require("trouble") - local symbols = trouble.statusline({ - mode = "symbols", - groups = {}, - title = false, - filter = { range = true }, - format = "{kind_icon}{symbol.name:Normal}", - hl_group = "lualine_c_normal", - }) - table.insert(opts.sections.lualine_c, { - symbols and symbols.get, - cond = function() - return vim.b.trouble_lualine ~= false and symbols.has() - end, - }) - end - - return opts - end, -} -``` - - - - - -## [noice.nvim](https://github.com/folke/noice.nvim) - - Highly experimental plugin that completely replaces the UI for messages, cmdline and the popupmenu. - - - - - - -```lua -opts = { - lsp = { - override = { - ["vim.lsp.util.convert_input_to_markdown_lines"] = true, - ["vim.lsp.util.stylize_markdown"] = true, - ["cmp.entry.get_documentation"] = true, - }, - }, - routes = { - { - filter = { - event = "msg_show", - any = { - { find = "%d+L, %d+B" }, - { find = "; after #%d+" }, - { find = "; before #%d+" }, - }, - }, - view = "mini", - }, - }, - presets = { - bottom_search = true, - command_palette = true, - long_message_to_split = true, - }, -} -``` - - - - - - -```lua -{ - "folke/noice.nvim", - event = "VeryLazy", - opts = { - lsp = { - override = { - ["vim.lsp.util.convert_input_to_markdown_lines"] = true, - ["vim.lsp.util.stylize_markdown"] = true, - ["cmp.entry.get_documentation"] = true, - }, - }, - routes = { - { - filter = { - event = "msg_show", - any = { - { find = "%d+L, %d+B" }, - { find = "; after #%d+" }, - { find = "; before #%d+" }, - }, - }, - view = "mini", - }, - }, - presets = { - bottom_search = true, - command_palette = true, - long_message_to_split = true, - }, - }, - -- stylua: ignore - keys = { - { "sn", "", desc = "+noice"}, - { "", function() require("noice").redirect(vim.fn.getcmdline()) end, mode = "c", desc = "Redirect Cmdline" }, - { "snl", function() require("noice").cmd("last") end, desc = "Noice Last Message" }, - { "snh", function() require("noice").cmd("history") end, desc = "Noice History" }, - { "sna", function() require("noice").cmd("all") end, desc = "Noice All" }, - { "snd", function() require("noice").cmd("dismiss") end, desc = "Dismiss All" }, - { "snt", function() require("noice").cmd("pick") end, desc = "Noice Picker (Telescope/FzfLua)" }, - { "", function() if not require("noice.lsp").scroll(4) then return "" end end, silent = true, expr = true, desc = "Scroll Forward", mode = {"i", "n", "s"} }, - { "", function() if not require("noice.lsp").scroll(-4) then return "" end end, silent = true, expr = true, desc = "Scroll Backward", mode = {"i", "n", "s"}}, - }, - config = function(_, opts) - -- HACK: noice shows messages from before it was enabled, - -- but this is not ideal when Lazy is installing plugins, - -- so clear the messages in this case. - if vim.o.filetype == "lazy" then - vim.cmd([[messages clear]]) - end - require("noice").setup(opts) - end, -} -``` - - - - - -## [mini.icons](https://github.com/nvim-mini/mini.icons) - - icons - - - - - - -```lua -opts = { - file = { - [".keep"] = { glyph = "󰊢", hl = "MiniIconsGrey" }, - ["devcontainer.json"] = { glyph = "", hl = "MiniIconsAzure" }, - }, - filetype = { - dotenv = { glyph = "", hl = "MiniIconsYellow" }, - }, -} -``` - - - - - - -```lua -{ - "nvim-mini/mini.icons", - lazy = true, - opts = { - file = { - [".keep"] = { glyph = "󰊢", hl = "MiniIconsGrey" }, - ["devcontainer.json"] = { glyph = "", hl = "MiniIconsAzure" }, - }, - filetype = { - dotenv = { glyph = "", hl = "MiniIconsYellow" }, - }, - }, - init = function() - package.preload["nvim-web-devicons"] = function() - require("mini.icons").mock_nvim_web_devicons() - return package.loaded["nvim-web-devicons"] - end - end, -} -``` - - - - - -## [nui.nvim](https://github.com/MunifTanjim/nui.nvim) - - ui components - - - - - - -```lua -opts = nil -``` - - - - - - -```lua -{ "MunifTanjim/nui.nvim", lazy = true } -``` - - - - - -## [snacks.nvim](https://github.com/folke/snacks.nvim) - - - - - -```lua -opts = { - indent = { enabled = true }, - input = { enabled = true }, - notifier = { enabled = true }, - scope = { enabled = true }, - scroll = { enabled = true }, - statuscolumn = { enabled = false }, -- we set this in options.lua - toggle = { map = LazyVim.safe_keymap_set }, - words = { enabled = true }, -} -``` - - - - - - -```lua -{ - "snacks.nvim", - opts = { - indent = { enabled = true }, - input = { enabled = true }, - notifier = { enabled = true }, - scope = { enabled = true }, - scroll = { enabled = true }, - statuscolumn = { enabled = false }, -- we set this in options.lua - toggle = { map = LazyVim.safe_keymap_set }, - words = { enabled = true }, - }, - -- stylua: ignore - keys = { - { "n", function() - if Snacks.config.picker and Snacks.config.picker.enabled then - Snacks.picker.notifications() - else - Snacks.notifier.show_history() - end - end, desc = "Notification History" }, - { "un", function() Snacks.notifier.hide() end, desc = "Dismiss All Notifications" }, - }, -} -``` - - - - - -## [snacks.nvim](https://github.com/folke/snacks.nvim) - - - - - -```lua -opts = { - dashboard = { - preset = { - pick = function(cmd, opts) - return LazyVim.pick(cmd, opts)() - end, - header = [[ - ██╗ █████╗ ███████╗██╗ ██╗██╗ ██╗██╗███╗ ███╗ Z - ██║ ██╔══██╗╚══███╔╝╚██╗ ██╔╝██║ ██║██║████╗ ████║ Z - ██║ ███████║ ███╔╝ ╚████╔╝ ██║ ██║██║██╔████╔██║ z - ██║ ██╔══██║ ███╔╝ ╚██╔╝ ╚██╗ ██╔╝██║██║╚██╔╝██║ z - ███████╗██║ ██║███████╗ ██║ ╚████╔╝ ██║██║ ╚═╝ ██║ - ╚══════╝╚═╝ ╚═╝╚══════╝ ╚═╝ ╚═══╝ ╚═╝╚═╝ ╚═╝ -]], - -- stylua: ignore - ---@type snacks.dashboard.Item[] - keys = { - { icon = " ", key = "f", desc = "Find File", action = ":lua Snacks.dashboard.pick('files')" }, - { icon = " ", key = "n", desc = "New File", action = ":ene | startinsert" }, - { icon = " ", key = "g", desc = "Find Text", action = ":lua Snacks.dashboard.pick('live_grep')" }, - { icon = " ", key = "r", desc = "Recent Files", action = ":lua Snacks.dashboard.pick('oldfiles')" }, - { icon = " ", key = "c", desc = "Config", action = ":lua Snacks.dashboard.pick('files', {cwd = vim.fn.stdpath('config')})" }, - { icon = " ", key = "s", desc = "Restore Session", section = "session" }, - { icon = " ", key = "x", desc = "Lazy Extras", action = ":LazyExtras" }, - { icon = "󰒲 ", key = "l", desc = "Lazy", action = ":Lazy" }, - { icon = " ", key = "q", desc = "Quit", action = ":qa" }, - }, - }, - }, - } -``` - - - - - - -```lua -{ - "snacks.nvim", - opts = { - dashboard = { - preset = { - pick = function(cmd, opts) - return LazyVim.pick(cmd, opts)() - end, - header = [[ - ██╗ █████╗ ███████╗██╗ ██╗██╗ ██╗██╗███╗ ███╗ Z - ██║ ██╔══██╗╚══███╔╝╚██╗ ██╔╝██║ ██║██║████╗ ████║ Z - ██║ ███████║ ███╔╝ ╚████╔╝ ██║ ██║██║██╔████╔██║ z - ██║ ██╔══██║ ███╔╝ ╚██╔╝ ╚██╗ ██╔╝██║██║╚██╔╝██║ z - ███████╗██║ ██║███████╗ ██║ ╚████╔╝ ██║██║ ╚═╝ ██║ - ╚══════╝╚═╝ ╚═╝╚══════╝ ╚═╝ ╚═══╝ ╚═╝╚═╝ ╚═╝ - ]], - -- stylua: ignore - ---@type snacks.dashboard.Item[] - keys = { - { icon = " ", key = "f", desc = "Find File", action = ":lua Snacks.dashboard.pick('files')" }, - { icon = " ", key = "n", desc = "New File", action = ":ene | startinsert" }, - { icon = " ", key = "g", desc = "Find Text", action = ":lua Snacks.dashboard.pick('live_grep')" }, - { icon = " ", key = "r", desc = "Recent Files", action = ":lua Snacks.dashboard.pick('oldfiles')" }, - { icon = " ", key = "c", desc = "Config", action = ":lua Snacks.dashboard.pick('files', {cwd = vim.fn.stdpath('config')})" }, - { icon = " ", key = "s", desc = "Restore Session", section = "session" }, - { icon = " ", key = "x", desc = "Lazy Extras", action = ":LazyExtras" }, - { icon = "󰒲 ", key = "l", desc = "Lazy", action = ":Lazy" }, - { icon = " ", key = "q", desc = "Quit", action = ":qa" }, - }, - }, - }, - }, -} -``` - - - - - - diff --git a/docs/plugins/util.md b/docs/plugins/util.md deleted file mode 100644 index 8e207d5118..0000000000 --- a/docs/plugins/util.md +++ /dev/null @@ -1,138 +0,0 @@ -# Util - - - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -## [snacks.nvim](https://github.com/folke/snacks.nvim) - - Snacks utils - - - - - - -```lua -opts = { - bigfile = { enabled = true }, - quickfile = { enabled = true }, - terminal = { - win = { - keys = { - nav_h = { "", term_nav("h"), desc = "Go to Left Window", expr = true, mode = "t" }, - nav_j = { "", term_nav("j"), desc = "Go to Lower Window", expr = true, mode = "t" }, - nav_k = { "", term_nav("k"), desc = "Go to Upper Window", expr = true, mode = "t" }, - nav_l = { "", term_nav("l"), desc = "Go to Right Window", expr = true, mode = "t" }, - hide_slash = { "", "hide", desc = "Hide Terminal", mode = { "t", "n" } }, - hide_underscore = { "", "hide", desc = "which_key_ignore", mode = { "t", "n" } }, - }, - }, - }, -} -``` - - - - - - -```lua -{ - "snacks.nvim", - opts = { - bigfile = { enabled = true }, - quickfile = { enabled = true }, - terminal = { - win = { - keys = { - nav_h = { "", term_nav("h"), desc = "Go to Left Window", expr = true, mode = "t" }, - nav_j = { "", term_nav("j"), desc = "Go to Lower Window", expr = true, mode = "t" }, - nav_k = { "", term_nav("k"), desc = "Go to Upper Window", expr = true, mode = "t" }, - nav_l = { "", term_nav("l"), desc = "Go to Right Window", expr = true, mode = "t" }, - hide_slash = { "", "hide", desc = "Hide Terminal", mode = { "t", "n" } }, - hide_underscore = { "", "hide", desc = "which_key_ignore", mode = { "t", "n" } }, - }, - }, - }, - }, - -- stylua: ignore - keys = { - { ".", function() Snacks.scratch() end, desc = "Toggle Scratch Buffer" }, - { "S", function() Snacks.scratch.select() end, desc = "Select Scratch Buffer" }, - { "dps", function() Snacks.profiler.scratch() end, desc = "Profiler Scratch Buffer" }, - }, -} -``` - - - - - -## [persistence.nvim](https://github.com/folke/persistence.nvim) - - Session management. This saves your session in the background, - keeping track of open buffers, window arrangement, and more. - You can restore sessions when returning through the dashboard. - - - - - - -```lua -opts = {} -``` - - - - - - -```lua -{ - "folke/persistence.nvim", - event = "BufReadPre", - opts = {}, - -- stylua: ignore - keys = { - { "qs", function() require("persistence").load() end, desc = "Restore Session" }, - { "qS", function() require("persistence").select() end,desc = "Select Session" }, - { "ql", function() require("persistence").load({ last = true }) end, desc = "Restore Last Session" }, - { "qd", function() require("persistence").stop() end, desc = "Don't Save Current Session" }, - }, -} -``` - - - - - -## [plenary.nvim](https://github.com/nvim-lua/plenary.nvim) - - library used by other plugins - - - - - - -```lua -opts = nil -``` - - - - - - -```lua -{ "nvim-lua/plenary.nvim", lazy = true } -``` - - - - - - diff --git a/docusaurus.config.js b/docusaurus.config.js deleted file mode 100644 index 056d07a646..0000000000 --- a/docusaurus.config.js +++ /dev/null @@ -1,123 +0,0 @@ -// @ts-check -// Note: type annotations allow type checking and IDEs autocompletion - -const theme = require("./src/themes/tokyonight_moon"); - -/** @type {import('@docusaurus/types').Config} */ -const config = { - title: "LazyVim", - tagline: "A Neovim config for the lazy", - url: "https://lazyvim.github.io/", - baseUrl: "/", - onBrokenLinks: "throw", - onBrokenMarkdownLinks: "warn", - favicon: "img/favicon.ico", - trailingSlash: false, - - // GitHub pages deployment config. - // If you aren't using GitHub pages, you don't need these. - organizationName: "LazyVim", // Usually your GitHub org/user name. - projectName: "lazyvim.github.io", // Usually your repo name. - deploymentBranch: "gh-pages", - - // Even if you don't use internalization, you can use this field to set useful - // metadata like html lang. For example, if your site is Chinese, you may want - // to replace "en" with "zh-Hans". - i18n: { - defaultLocale: "en", - locales: ["en"], - }, - - presets: [ - [ - "classic", - /** @type {import('@docusaurus/preset-classic').Options} */ - ({ - docs: { - routeBasePath: "/", - sidebarPath: require.resolve("./sidebars.js"), - editUrl: "https://github.com/LazyVim/lazyvim.github.io/tree/main/", - }, - blog: false, - theme: { - customCss: require.resolve("./src/css/custom.css"), - }, - }), - ], - ], - - plugins: [ - [ - require.resolve("@easyops-cn/docusaurus-search-local"), - { - hashed: true, - indexDocs: true, - indexBlog: false, - indexPages: false, - docsRouteBasePath: "/", - searchBarShortcutHint: false, - }, - ], - ], - - themeConfig: - /** @type {import('@docusaurus/preset-classic').ThemeConfig} */ - ({ - navbar: { - title: "LazyVim", - logo: { - alt: "LazyVim Logo", - src: "img/icon.svg", - srcDark: "img/icon-dark.svg", - }, - items: [ - ...require("./socials.js"), - ], - }, - footer: { - style: "dark", - links: [ - { - title: "Docs", - items: [ - { - label: "Getting Started", - to: "/", - }, - ], - }, - { - title: "Community", - items: [ - { - label: "Discussions", - href: "https://github.com/LazyVim/LazyVim/discussions", - }, - { - label: "Twitter", - href: "https://twitter.com/folke", - }, - ], - }, - { - title: "More", - items: [ - { - label: "GitHub", - href: "https://github.com/LazyVim/LazyVim", - }, - ], - }, - ], - copyright: `Copyright © ${new Date().getFullYear() - } LazyVim, Inc. Built with Docusaurus.`, - }, - prism: { - theme: theme, - darkTheme: theme, - additionalLanguages: ["lua", "bash", "powershell"], - }, - }), -}; - -module.exports = config; diff --git a/extras.html b/extras.html new file mode 100644 index 0000000000..a2ca0e2b62 --- /dev/null +++ b/extras.html @@ -0,0 +1,16 @@ + + + + + +Extras | LazyVim + + + + + + + + + \ No newline at end of file diff --git a/extras/ai/avante.html b/extras/ai/avante.html new file mode 100644 index 0000000000..ebe289b25c --- /dev/null +++ b/extras/ai/avante.html @@ -0,0 +1,18 @@ + + + + + +Avante | LazyVim + + + + +
+

Avante

info

You can enable the extra with the :LazyExtras command. +Plugins marked as optional will only be configured if they are installed.

Below you can find a list of included plugins and their default settings.

caution

You don't need to copy the default settings to your config. +They are only shown here for reference.

nui.nvim

opts = nil

avante.nvim

opts = {
provider = "copilot",
selection = {
hint_display = "none",
},
behaviour = {
auto_set_keymaps = false,
},
}
opts = nil

img-clip.nvim (optional)

support for image pasting

opts = {
-- recommended settings
default = {
embed_image_as_base64 = false,
prompt_for_file_name = false,
drag_and_drop = {
insert_mode = true,
},
-- required for Windows users
use_absolute_path = true,
},
}

render-markdown.nvim (optional)

Make sure to set this up properly if you have lazy=true

opts = {
file_types = { "markdown", "Avante" },
}

blink.cmp (optional)

blink.cmp source for avante.nvim

opts = {
sources = {
default = { "avante" },
providers = { avante = { module = "blink-cmp-avante", name = "Avante" } },
},
}
+ + + + \ No newline at end of file diff --git a/extras/ai/claudecode.html b/extras/ai/claudecode.html new file mode 100644 index 0000000000..1b1f872cd0 --- /dev/null +++ b/extras/ai/claudecode.html @@ -0,0 +1,18 @@ + + + + + +Claudecode | LazyVim + + + + +
+

Claudecode

info

You can enable the extra with the :LazyExtras command. +Plugins marked as optional will only be configured if they are installed.

Below you can find a list of included plugins and their default settings.

caution

You don't need to copy the default settings to your config. +They are only shown here for reference.

claudecode.nvim

opts = {}
+ + + + \ No newline at end of file diff --git a/extras/ai/codeium.html b/extras/ai/codeium.html new file mode 100644 index 0000000000..2e22e5a28c --- /dev/null +++ b/extras/ai/codeium.html @@ -0,0 +1,18 @@ + + + + + +Codeium | LazyVim + + + + +
+

Codeium

info

You can enable the extra with the :LazyExtras command. +Plugins marked as optional will only be configured if they are installed.

Below you can find a list of included plugins and their default settings.

caution

You don't need to copy the default settings to your config. +They are only shown here for reference.

codeium.nvim

codeium

opts = {
enable_cmp_source = vim.g.ai_cmp,
virtual_text = {
enabled = not vim.g.ai_cmp,
key_bindings = {
accept = false, -- handled by nvim-cmp / blink.cmp
next = "<M-]>",
prev = "<M-[>",
},
},
}

codeium.nvim

add ai_accept action

opts = function()
LazyVim.cmp.actions.ai_accept = function()
if require("codeium.virtual_text").get_current_completion_item() then
LazyVim.create_undo()
vim.api.nvim_input(require("codeium.virtual_text").accept())
return true
end
end
end

codeium.nvim

opts = nil

codeium.nvim

opts = nil

nvim-cmp (optional)

codeium cmp source

opts = function(_, opts)
table.insert(opts.sources, 1, {
name = "codeium",
group_index = 1,
priority = 100,
})
end

lualine.nvim (optional)

opts = function(_, opts)
table.insert(opts.sections.lualine_x, 2, LazyVim.lualine.cmp_source("codeium"))
end
+ + + + \ No newline at end of file diff --git a/extras/ai/copilot-chat.html b/extras/ai/copilot-chat.html new file mode 100644 index 0000000000..a1849b8ef6 --- /dev/null +++ b/extras/ai/copilot-chat.html @@ -0,0 +1,18 @@ + + + + + +Copilot-chat | LazyVim + + + + +
+

Copilot-chat

info

You can enable the extra with the :LazyExtras command. +Plugins marked as optional will only be configured if they are installed.

Below you can find a list of included plugins and their default settings.

caution

You don't need to copy the default settings to your config. +They are only shown here for reference.

CopilotChat.nvim

opts = function()
local user = vim.env.USER or "User"
user = user:sub(1, 1):upper() .. user:sub(2)
return {
auto_insert_mode = true,
headers = {
user = " " .. user .. " ",
assistant = " Copilot ",
tool = "󰊳 Tool ",
},
window = {
width = 0.4,
},
}
end

edgy.nvim (optional)

Edgy integration

opts = function(_, opts)
opts.right = opts.right or {}
table.insert(opts.right, {
ft = "copilot-chat",
title = "Copilot Chat",
size = { width = 50 },
})
end

blink.cmp (optional)

Blink integration

opts = {
sources = {
providers = {
path = {
-- Path sources triggered by "/" interfere with CopilotChat commands
enabled = function()
return vim.bo.filetype ~= "copilot-chat"
end,
},
},
},
}
+ + + + \ No newline at end of file diff --git a/extras/ai/copilot-native.html b/extras/ai/copilot-native.html new file mode 100644 index 0000000000..77c5154aa9 --- /dev/null +++ b/extras/ai/copilot-native.html @@ -0,0 +1,18 @@ + + + + + +Copilot-native | LazyVim + + + + +
+

Copilot-native

info

You can enable the extra with the :LazyExtras command. +Plugins marked as optional will only be configured if they are installed.

Options

Additional options for this extra can be configured in your lua/config/options.lua file:

lua/config/options.lua
-- Native inline completions don't support being shown as regular completions
vim.g.ai_cmp = false

Below you can find a list of included plugins and their default settings.

caution

You don't need to copy the default settings to your config. +They are only shown here for reference.

nvim-lspconfig

copilot-language-server

opts = {
servers = {
copilot = {
-- stylua: ignore
keys = {
{
"<M-]>",
function() vim.lsp.inline_completion.select({ count = 1 }) end,
desc = "Next Copilot Suggestion",
mode = { "i", "n" },
},
{
"<M-[>",
function() vim.lsp.inline_completion.select({ count = -1 }) end,
desc = "Prev Copilot Suggestion",
mode = { "i", "n" },
},
},
},
},
setup = {
copilot = function()
vim.schedule(function()
vim.lsp.inline_completion.enable()
end)
-- Accept inline suggestions or next edits
LazyVim.cmp.actions.ai_accept = function()
return vim.lsp.inline_completion.get()
end

if not LazyVim.has_extra("ai.sidekick") then
vim.lsp.config("copilot", {
handlers = {
didChangeStatus = function(err, res, ctx)
if err then
return
end
status[ctx.client_id] = res.kind ~= "Normal" and "error" or res.busy and "pending" or "ok"
if res.status == "Error" then
LazyVim.error("Please use `:LspCopilotSignIn` to sign in to Copilot")
end
end,
},
})
end
end,
},
}

lualine.nvim (optional)

lualine

opts = function(_, opts)
if LazyVim.has_extra("ai.sidekick") then
return
end
table.insert(
opts.sections.lualine_x,
2,
LazyVim.lualine.status(LazyVim.config.icons.kinds.Copilot, function()
local clients = vim.lsp.get_clients({ name = "copilot", bufnr = 0 })
return #clients > 0 and status[clients[1].id] or nil
end)
)
end
+ + + + \ No newline at end of file diff --git a/extras/ai/copilot.html b/extras/ai/copilot.html new file mode 100644 index 0000000000..954416abf0 --- /dev/null +++ b/extras/ai/copilot.html @@ -0,0 +1,18 @@ + + + + + +Copilot | LazyVim + + + + +
+

Copilot

info

You can enable the extra with the :LazyExtras command. +Plugins marked as optional will only be configured if they are installed.

Below you can find a list of included plugins and their default settings.

caution

You don't need to copy the default settings to your config. +They are only shown here for reference.

copilot.lua

copilot

opts = {
suggestion = {
enabled = not vim.g.ai_cmp,
auto_trigger = true,
hide_during_completion = vim.g.ai_cmp,
keymap = {
accept = false, -- handled by nvim-cmp / blink.cmp
next = "<M-]>",
prev = "<M-[>",
},
},
panel = { enabled = false },
filetypes = {
markdown = true,
help = true,
},
}

nvim-lspconfig

copilot-language-server

opts = {
servers = {
-- copilot.lua only works with its own copilot lsp server
copilot = { enabled = false },
},
}

copilot.lua

add ai_accept action

opts = function()
LazyVim.cmp.actions.ai_accept = function()
if require("copilot.suggestion").is_visible() then
LazyVim.create_undo()
require("copilot.suggestion").accept()
return true
end
end
end

lualine.nvim (optional)

lualine

opts = function(_, opts)
table.insert(
opts.sections.lualine_x,
2,
LazyVim.lualine.status(LazyVim.config.icons.kinds.Copilot, function()
local clients = package.loaded["copilot"] and vim.lsp.get_clients({ name = "copilot", bufnr = 0 }) or {}
if #clients > 0 then
local status = require("copilot.status").data.status
return (status == "InProgress" and "pending") or (status == "Warning" and "error") or "ok"
end
end)
)
end
+ + + + \ No newline at end of file diff --git a/extras/ai/sidekick.html b/extras/ai/sidekick.html new file mode 100644 index 0000000000..ae743e3432 --- /dev/null +++ b/extras/ai/sidekick.html @@ -0,0 +1,18 @@ + + + + + +Sidekick | LazyVim + + + + +
+

Sidekick

info

You can enable the extra with the :LazyExtras command. +Plugins marked as optional will only be configured if they are installed.

Below you can find a list of included plugins and their default settings.

caution

You don't need to copy the default settings to your config. +They are only shown here for reference.

nvim-lspconfig

copilot-language-server

opts = function(_, opts)
local sk = LazyVim.opts("sidekick.nvim") ---@type sidekick.Config|{}
if vim.tbl_get(sk, "nes", "enabled") ~= false then
opts.servers = opts.servers or {}
opts.servers.copilot = opts.servers.copilot or {}
end
end

sidekick.nvim

opts = function()
-- Accept inline suggestions or next edits
LazyVim.cmp.actions.ai_nes = function()
local Nes = require("sidekick.nes")
if Nes.have() and (Nes.jump() or Nes.apply()) then
return true
end
end
end

lualine.nvim (optional)

lualine

opts = function(_, opts)
local icons = {
Error = { " ", "DiagnosticError" },
Inactive = { " ", "MsgArea" },
Warning = { " ", "DiagnosticWarn" },
Normal = { LazyVim.config.icons.kinds.Copilot, "Special" },
}
table.insert(opts.sections.lualine_x, 2, {
function()
local status = require("sidekick.status").get()
return status and vim.tbl_get(icons, status.kind, 1)
end,
cond = function()
return require("sidekick.status").get() ~= nil
end,
color = function()
local status = require("sidekick.status").get()
local hl = status and (status.busy and "DiagnosticWarn" or vim.tbl_get(icons, status.kind, 2))
return { fg = Snacks.util.color(hl) }
end,
})

table.insert(opts.sections.lualine_x, 2, {
function()
local status = require("sidekick.status").cli()
return " " .. (#status > 1 and #status or "")
end,
cond = function()
return #require("sidekick.status").cli() > 0
end,
color = function()
return { fg = Snacks.util.color("Special") }
end,
})
end

snacks.nvim (optional)

opts = {
picker = {
actions = {
sidekick_send = function(...)
return require("sidekick.cli.picker.snacks").send(...)
end,
},
win = {
input = {
keys = {
["<a-a>"] = {
"sidekick_send",
mode = { "n", "i" },
},
},
},
},
},
}
+ + + + \ No newline at end of file diff --git a/extras/ai/supermaven.html b/extras/ai/supermaven.html new file mode 100644 index 0000000000..7fb299ca75 --- /dev/null +++ b/extras/ai/supermaven.html @@ -0,0 +1,18 @@ + + + + + +Supermaven | LazyVim + + + + +
+

Supermaven

info

You can enable the extra with the :LazyExtras command. +Plugins marked as optional will only be configured if they are installed.

Below you can find a list of included plugins and their default settings.

caution

You don't need to copy the default settings to your config. +They are only shown here for reference.

supermaven-nvim

opts = {
keymaps = {
accept_suggestion = nil, -- handled by nvim-cmp / blink.cmp
},
disable_inline_completion = vim.g.ai_cmp,
ignore_filetypes = { "bigfile", "snacks_input", "snacks_notif" },
}

supermaven-nvim

add ai_accept action

opts = function()
require("supermaven-nvim.completion_preview").suggestion_group = "SupermavenSuggestion"
LazyVim.cmp.actions.ai_accept = function()
local suggestion = require("supermaven-nvim.completion_preview")
if suggestion.has_suggestion() then
LazyVim.create_undo()
vim.schedule(function()
suggestion.on_accept_suggestion()
end)
return true
end
end
end

supermaven-nvim

opts = nil

supermaven-nvim

opts = nil

nvim-cmp (optional)

cmp integration

opts = function(_, opts)
if vim.g.ai_cmp then
table.insert(opts.sources, 1, {
name = "supermaven",
group_index = 1,
priority = 100,
})
end
end
+ + + + \ No newline at end of file diff --git a/extras/ai/tabnine.html b/extras/ai/tabnine.html new file mode 100644 index 0000000000..9cbfefeb40 --- /dev/null +++ b/extras/ai/tabnine.html @@ -0,0 +1,18 @@ + + + + + +Tabnine | LazyVim + + + + +
+

Tabnine

info

You can enable the extra with the :LazyExtras command. +Plugins marked as optional will only be configured if they are installed.

Below you can find a list of included plugins and their default settings.

caution

You don't need to copy the default settings to your config. +They are only shown here for reference.

cmp-tabnine

Tabnine cmp source

opts = {
max_lines = 1000,
max_num_results = 3,
sort = true,
}

cmp-tabnine

opts = nil

cmp-tabnine

opts = nil

blink.compat

opts = nil

nvim-cmp (optional)

opts = function(_, opts)
table.insert(opts.sources, 1, {
name = "cmp_tabnine",
group_index = 1,
priority = 100,
})

opts.formatting.format = LazyVim.inject.args(opts.formatting.format, function(entry, item)
-- Hide percentage in the menu
if entry.source.name == "cmp_tabnine" then
item.menu = ""
end
end)
end

blink.cmp (optional)

opts = {
sources = {
compat = { "cmp_tabnine" },
providers = {
cmp_tabnine = {
kind = "TabNine",
score_offset = 100,
async = true,
},
},
},
}

lualine.nvim (optional)

Show TabNine status in lualine

opts = function(_, opts)
local icon = LazyVim.config.icons.kinds.TabNine
table.insert(opts.sections.lualine_x, 2, LazyVim.lualine.cmp_source("cmp_tabnine", icon))
end
+ + + + \ No newline at end of file diff --git a/extras/coding/blink.html b/extras/coding/blink.html new file mode 100644 index 0000000000..5cfee958b7 --- /dev/null +++ b/extras/coding/blink.html @@ -0,0 +1,18 @@ + + + + + +Blink | LazyVim + + + + +
+

Blink

info

You can enable the extra with the :LazyExtras command. +Plugins marked as optional will only be configured if they are installed.

Options

Additional options for this extra can be configured in your lua/config/options.lua file:

lua/config/options.lua
-- set to `true` to follow the main branch
-- you need to have a working rust toolchain to build the plugin
-- in this case.
vim.g.lazyvim_blink_main = false

Below you can find a list of included plugins and their default settings.

caution

You don't need to copy the default settings to your config. +They are only shown here for reference.

blink.cmp

opts = {
snippets = {
preset = "default",
},

appearance = {
-- sets the fallback highlight groups to nvim-cmp's highlight groups
-- useful for when your theme doesn't support blink.cmp
-- will be removed in a future release, assuming themes add support
use_nvim_cmp_as_default = false,
-- set to 'mono' for 'Nerd Font Mono' or 'normal' for 'Nerd Font'
-- adjusts spacing to ensure icons are aligned
nerd_font_variant = "mono",
},

completion = {
accept = {
-- experimental auto-brackets support
auto_brackets = {
enabled = true,
},
},
menu = {
draw = {
treesitter = { "lsp" },
},
},
documentation = {
auto_show = true,
auto_show_delay_ms = 200,
},
ghost_text = {
enabled = vim.g.ai_cmp,
},
},

-- experimental signature help support
-- signature = { enabled = true },

sources = {
-- adding any nvim-cmp sources here will enable them
-- with blink.compat
compat = {},
default = { "lsp", "path", "snippets", "buffer" },
},

cmdline = {
enabled = true,
keymap = {
preset = "cmdline",
["<Right>"] = false,
["<Left>"] = false,
},
completion = {
list = { selection = { preselect = false } },
menu = {
auto_show = function(ctx)
return vim.fn.getcmdtype() == ":"
end,
},
ghost_text = { enabled = true },
},
},

keymap = {
preset = "enter",
["<C-y>"] = { "select_and_accept" },
},
}

friendly-snippets

opts = nil

blink.cmp

add icons

opts = function(_, opts)
opts.appearance = opts.appearance or {}
opts.appearance.kind_icons = vim.tbl_extend("force", opts.appearance.kind_icons or {}, LazyVim.config.icons.kinds)
end

blink.cmp

lazydev

opts = {
sources = {
per_filetype = {
lua = { inherit_defaults = true, "lazydev" },
},
providers = {
lazydev = {
name = "LazyDev",
module = "lazydev.integrations.blink",
score_offset = 100, -- show at a higher priority than lsp
},
},
},
}

blink.compat (optional)

add blink.compat to dependencies

opts = {}

catppuccin (optional)

catppuccin support

opts = {
integrations = { blink_cmp = true },
}
+ + + + \ No newline at end of file diff --git a/extras/coding/luasnip.html b/extras/coding/luasnip.html new file mode 100644 index 0000000000..92d4ca4d0b --- /dev/null +++ b/extras/coding/luasnip.html @@ -0,0 +1,18 @@ + + + + + +Luasnip | LazyVim + + + + +
+

Luasnip

info

You can enable the extra with the :LazyExtras command. +Plugins marked as optional will only be configured if they are installed.

Below you can find a list of included plugins and their default settings.

caution

You don't need to copy the default settings to your config. +They are only shown here for reference.

LuaSnip

add luasnip

opts = {
history = true,
delete_check_events = "TextChanged",
}

friendly-snippets

opts = {}

LuaSnip

add snippet_forward action

opts = function()
LazyVim.cmp.actions.snippet_forward = function()
if require("luasnip").jumpable(1) then
vim.schedule(function()
require("luasnip").jump(1)
end)
return true
end
end
LazyVim.cmp.actions.snippet_stop = function()
if require("luasnip").expand_or_jumpable() then -- or just jumpable(1) is fine?
require("luasnip").unlink_current()
return true
end
end
end

cmp_luasnip

opts = nil

nvim-cmp (optional)

nvim-cmp integration

opts = function(_, opts)
opts.snippet = {
expand = function(args)
require("luasnip").lsp_expand(args.body)
end,
}
table.insert(opts.sources, { name = "luasnip" })
end

blink.cmp (optional)

blink.cmp integration

opts = {
snippets = {
preset = "luasnip",
},
}
+ + + + \ No newline at end of file diff --git a/extras/coding/mini-comment.html b/extras/coding/mini-comment.html new file mode 100644 index 0000000000..230c1f4db1 --- /dev/null +++ b/extras/coding/mini-comment.html @@ -0,0 +1,18 @@ + + + + + +Mini-comment | LazyVim + + + + +
+

Mini-comment

info

You can enable the extra with the :LazyExtras command. +Plugins marked as optional will only be configured if they are installed.

Below you can find a list of included plugins and their default settings.

caution

You don't need to copy the default settings to your config. +They are only shown here for reference.

mini.comment

opts = {
options = {
custom_commentstring = function()
return require("ts_context_commentstring.internal").calculate_commentstring() or vim.bo.commentstring
end,
},
}

nvim-ts-context-commentstring

opts = {
enable_autocmd = false,
}
+ + + + \ No newline at end of file diff --git a/extras/coding/mini-snippets.html b/extras/coding/mini-snippets.html new file mode 100644 index 0000000000..509942a05e --- /dev/null +++ b/extras/coding/mini-snippets.html @@ -0,0 +1,18 @@ + + + + + +Mini-snippets | LazyVim + + + + +
+

Mini-snippets

info

You can enable the extra with the :LazyExtras command. +Plugins marked as optional will only be configured if they are installed.

Options

Additional options for this extra can be configured in your lua/config/options.lua file:

lua/config/options.lua
-- Set to `false` to prevent "non-lsp snippets"" from appearing inside completion windows
-- Motivation: Less clutter in completion windows and a more direct usage of snippets
vim.g.lazyvim_mini_snippets_in_completion = true

-- NOTE: Please also read:
-- https://github.com/nvim-mini/mini.nvim/blob/main/readmes/mini-snippets.md#expand
-- :h MiniSnippets-session

-- Example override for your own config:
--[[
return {
{
"nvim-mini/mini.snippets",
opts = function(_, opts)
-- By default, for opts.snippets, the extra for mini.snippets only adds gen_loader.from_lang()
-- This provides a sensible quickstart, integrating with friendly-snippets
-- and your own language-specific snippets
--
-- In order to change opts.snippets, replace the entire table inside your own opts

local snippets, config_path = require("mini.snippets"), vim.fn.stdpath("config")

opts.snippets = { -- override opts.snippets provided by extra...
-- Load custom file with global snippets first (order matters)
snippets.gen_loader.from_file(config_path .. "/snippets/global.json"),

-- Load snippets based on current language by reading files from
-- "snippets/" subdirectories from 'runtimepath' directories.
snippets.gen_loader.from_lang(), -- this is the default in the extra...
}
end,
},
}
--]]

Below you can find a list of included plugins and their default settings.

caution

You don't need to copy the default settings to your config. +They are only shown here for reference.

mini.snippets

opts = function()
---@diagnostic disable-next-line: duplicate-set-field
LazyVim.cmp.actions.snippet_stop = function() end -- by design, <esc> should not stop the session!
---@diagnostic disable-next-line: duplicate-set-field
LazyVim.cmp.actions.snippet_forward = function()
return jump("next")
end

local mini_snippets = require("mini.snippets")
return {
snippets = { mini_snippets.gen_loader.from_lang() },

-- Following the behavior of vim.snippets,
-- the intended usage of <esc> is to be able to temporarily exit into normal mode for quick edits.
--
-- If you'd rather stop the snippet on <esc>, activate the line below in your own config:
-- mappings = { stop = "<esc>" }, -- <c-c> by default, see :h MiniSnippets-session

expand = {
select = function(snippets, insert)
-- Close completion window on snippet select - vim.ui.select
-- Needed to remove virtual text for fzf-lua and telescope, but not for mini.pick...
local select = expand_select_override or MiniSnippets.default_select
select(snippets, insert)
end,
},
}
end

cmp-mini-snippets

opts = nil

nvim-cmp (optional)

nvim-cmp integration

opts = function(_, opts)
local cmp = require("cmp")
local cmp_config = require("cmp.config")

opts.snippet = {
expand = function(args)
expand_from_lsp(args.body)
cmp.resubscribe({ "TextChangedI", "TextChangedP" })
cmp_config.set_onetime({ sources = {} })
end,
}

if include_in_completion then
table.insert(opts.sources, { name = "mini_snippets" })
else
expand_select_override = function(snippets, insert)
-- stylua: ignore
if cmp.visible() then cmp.close() end
MiniSnippets.default_select(snippets, insert)
end
end
end

blink.cmp (optional)

blink.cmp integration

opts = function(_, opts)
-- Return early
if include_in_completion then
opts.snippets = { preset = "mini_snippets" }
return
end

-- Standalone --
local blink = require("blink.cmp")
expand_select_override = function(snippets, insert)
-- Schedule, otherwise blink's virtual text is not removed on vim.ui.select
blink.cancel()
vim.schedule(function()
MiniSnippets.default_select(snippets, insert)
end)
end
--
-- Blink performs a require on blink.cmp.sources.snippets.default
-- By removing the source, that default engine will not be used
opts.sources.default = vim.tbl_filter(function(source)
return source ~= "snippets"
end, opts.sources.default)
opts.snippets = { -- need to repeat blink's preset here
expand = function(snippet)
expand_from_lsp(snippet)
blink.resubscribe()
end,
active = function()
return MiniSnippets.session.get(false) ~= nil
end,
jump = function(direction)
jump(direction == -1 and "prev" or "next")
end,
}
end
+ + + + \ No newline at end of file diff --git a/extras/coding/mini-surround.html b/extras/coding/mini-surround.html new file mode 100644 index 0000000000..a85cda2d93 --- /dev/null +++ b/extras/coding/mini-surround.html @@ -0,0 +1,18 @@ + + + + + +Mini-surround | LazyVim + + + + +
+

Mini-surround

info

You can enable the extra with the :LazyExtras command. +Plugins marked as optional will only be configured if they are installed.

Below you can find a list of included plugins and their default settings.

caution

You don't need to copy the default settings to your config. +They are only shown here for reference.

mini.surround

opts = {
mappings = {
add = "gsa", -- Add surrounding in Normal and Visual modes
delete = "gsd", -- Delete surrounding
find = "gsf", -- Find surrounding (to the right)
find_left = "gsF", -- Find surrounding (to the left)
highlight = "gsh", -- Highlight surrounding
replace = "gsr", -- Replace surrounding
update_n_lines = "gsn", -- Update `n_lines`
},
}
+ + + + \ No newline at end of file diff --git a/extras/coding/neogen.html b/extras/coding/neogen.html new file mode 100644 index 0000000000..f78cfae49c --- /dev/null +++ b/extras/coding/neogen.html @@ -0,0 +1,18 @@ + + + + + +Neogen | LazyVim + + + + +
+

Neogen

info

You can enable the extra with the :LazyExtras command. +Plugins marked as optional will only be configured if they are installed.

Below you can find a list of included plugins and their default settings.

caution

You don't need to copy the default settings to your config. +They are only shown here for reference.

neogen

opts = function(_, opts)
if opts.snippet_engine ~= nil then
return
end

local map = {
["LuaSnip"] = "luasnip",
["mini.snippets"] = "mini",
["nvim-snippy"] = "snippy",
["vim-vsnip"] = "vsnip",
}

for plugin, engine in pairs(map) do
if LazyVim.has(plugin) then
opts.snippet_engine = engine
return
end
end

if vim.snippet then
opts.snippet_engine = "nvim"
end
end
+ + + + \ No newline at end of file diff --git a/extras/coding/nvim-cmp.html b/extras/coding/nvim-cmp.html new file mode 100644 index 0000000000..a2e69d9d18 --- /dev/null +++ b/extras/coding/nvim-cmp.html @@ -0,0 +1,18 @@ + + + + + +Nvim-cmp | LazyVim + + + + +
+

Nvim-cmp

info

You can enable the extra with the :LazyExtras command. +Plugins marked as optional will only be configured if they are installed.

Below you can find a list of included plugins and their default settings.

caution

You don't need to copy the default settings to your config. +They are only shown here for reference.

nvim-cmp

Setup nvim-cmp

opts = function()
-- Register nvim-cmp lsp capabilities
vim.lsp.config("*", { capabilities = require("cmp_nvim_lsp").default_capabilities() })

vim.api.nvim_set_hl(0, "CmpGhostText", { link = "Comment", default = true })
local cmp = require("cmp")
local defaults = require("cmp.config.default")()
local auto_select = true
return {
auto_brackets = {}, -- configure any filetype to auto add brackets
completion = {
completeopt = "menu,menuone,noinsert" .. (auto_select and "" or ",noselect"),
},
preselect = auto_select and cmp.PreselectMode.Item or cmp.PreselectMode.None,
mapping = cmp.mapping.preset.insert({
["<C-b>"] = cmp.mapping.scroll_docs(-4),
["<C-f>"] = cmp.mapping.scroll_docs(4),
["<C-n>"] = cmp.mapping.select_next_item({ behavior = cmp.SelectBehavior.Insert }),
["<C-p>"] = cmp.mapping.select_prev_item({ behavior = cmp.SelectBehavior.Insert }),
["<C-Space>"] = cmp.mapping.complete(),
["<CR>"] = LazyVim.cmp.confirm({ select = auto_select }),
["<C-y>"] = LazyVim.cmp.confirm({ select = true }),
["<S-CR>"] = LazyVim.cmp.confirm({ behavior = cmp.ConfirmBehavior.Replace }), -- Accept currently selected item. Set `select` to `false` to only confirm explicitly selected items.
["<C-CR>"] = function(fallback)
cmp.abort()
fallback()
end,
["<tab>"] = function(fallback)
return LazyVim.cmp.map({ "snippet_forward", "ai_nes", "ai_accept" }, fallback)()
end,
}),
sources = cmp.config.sources({
{ name = "lazydev" },
{ name = "nvim_lsp" },
{ name = "path" },
}, {
{ name = "buffer" },
}),
formatting = {
format = function(entry, item)
local icons = LazyVim.config.icons.kinds
if icons[item.kind] then
item.kind = icons[item.kind] .. item.kind
end

local widths = {
abbr = vim.g.cmp_widths and vim.g.cmp_widths.abbr or 40,
menu = vim.g.cmp_widths and vim.g.cmp_widths.menu or 30,
}

for key, width in pairs(widths) do
if item[key] and vim.fn.strdisplaywidth(item[key]) > width then
item[key] = vim.fn.strcharpart(item[key], 0, width - 1) .. "…"
end
end

return item
end,
},
experimental = {
-- only show ghost text when we show ai completions
ghost_text = vim.g.ai_cmp and {
hl_group = "CmpGhostText",
} or false,
},
sorting = defaults.sorting,
}
end

cmp-nvim-lsp

opts = nil

cmp-buffer

opts = nil

cmp-path

opts = nil

nvim-cmp

snippets

opts = function(_, opts)
opts.snippet = {
expand = function(item)
return LazyVim.cmp.expand(item.body)
end,
}
if LazyVim.has("nvim-snippets") then
table.insert(opts.sources, { name = "snippets" })
end
end

nvim-snippets

opts = {
friendly_snippets = true,
}

friendly-snippets

opts = nil
+ + + + \ No newline at end of file diff --git a/extras/coding/yanky.html b/extras/coding/yanky.html new file mode 100644 index 0000000000..6f84a855f0 --- /dev/null +++ b/extras/coding/yanky.html @@ -0,0 +1,18 @@ + + + + + +yanky.nvim | LazyVim + + + + +
+

yanky.nvim

The default LazyVim mappings to cycle yank history are [y and ]y

info

You can enable the extra with the :LazyExtras command. +Plugins marked as optional will only be configured if they are installed.

Below you can find a list of included plugins and their default settings.

caution

You don't need to copy the default settings to your config. +They are only shown here for reference.

yanky.nvim

opts = {
system_clipboard = {
sync_with_ring = not vim.env.SSH_CONNECTION,
},
highlight = { timer = 150 },
}
+ + + + \ No newline at end of file diff --git a/extras/dap/core.html b/extras/dap/core.html new file mode 100644 index 0000000000..430d7ba28c --- /dev/null +++ b/extras/dap/core.html @@ -0,0 +1,18 @@ + + + + + +DAP Core | LazyVim + + + + +
+

DAP Core

info

You can enable the extra with the :LazyExtras command. +Plugins marked as optional will only be configured if they are installed.

Below you can find a list of included plugins and their default settings.

caution

You don't need to copy the default settings to your config. +They are only shown here for reference.

nvim-dap

opts = {}

nvim-dap-ui

opts = nil

nvim-dap-virtual-text

virtual text for the debugger

opts = {}

nvim-dap-ui

fancy UI for the debugger

opts = {}

nvim-nio

opts = nil

mason-nvim-dap.nvim

mason.nvim integration

opts = {
-- Makes a best effort to setup the various debuggers with
-- reasonable debug configurations
automatic_installation = true,

-- You can provide additional configuration to the handlers,
-- see mason-nvim-dap README for more information
handlers = {},

-- You'll need to check that you have the required things installed
-- online, please don't ask me how to install them :)
ensure_installed = {
-- Update this to ensure that you have the debuggers for the langs you want
},
}
+ + + + \ No newline at end of file diff --git a/extras/dap/nlua.html b/extras/dap/nlua.html new file mode 100644 index 0000000000..6248213588 --- /dev/null +++ b/extras/dap/nlua.html @@ -0,0 +1,18 @@ + + + + + +DAP Neovim Lua Adapter | LazyVim + + + + +
+

DAP Neovim Lua Adapter

info

You can enable the extra with the :LazyExtras command. +Plugins marked as optional will only be configured if they are installed.

Below you can find a list of included plugins and their default settings.

caution

You don't need to copy the default settings to your config. +They are only shown here for reference.

nvim-dap

opts = nil

one-small-step-for-vimkind

opts = {}
+ + + + \ No newline at end of file diff --git a/extras/editor/aerial.html b/extras/editor/aerial.html new file mode 100644 index 0000000000..4ca133b526 --- /dev/null +++ b/extras/editor/aerial.html @@ -0,0 +1,18 @@ + + + + + +Aerial | LazyVim + + + + +
+

Aerial

info

You can enable the extra with the :LazyExtras command. +Plugins marked as optional will only be configured if they are installed.

Below you can find a list of included plugins and their default settings.

caution

You don't need to copy the default settings to your config. +They are only shown here for reference.

aerial.nvim

opts = function()
local icons = vim.deepcopy(LazyVim.config.icons.kinds)

-- HACK: fix lua's weird choice for `Package` for control
-- structures like if/else/for/etc.
icons.lua = { Package = icons.Control }

---@type table<string, string[]>|false
local filter_kind = false
if LazyVim.config.kind_filter then
filter_kind = assert(vim.deepcopy(LazyVim.config.kind_filter))
filter_kind._ = filter_kind.default
filter_kind.default = nil
end

local opts = {
attach_mode = "global",
backends = { "lsp", "treesitter", "markdown", "man" },
show_guides = true,
layout = {
resize_to_content = false,
win_opts = {
winhl = "Normal:NormalFloat,FloatBorder:NormalFloat,SignColumn:SignColumnSB",
signcolumn = "yes",
statuscolumn = " ",
},
},
icons = icons,
filter_kind = filter_kind,
-- stylua: ignore
guides = {
mid_item = "├╴",
last_item = "└╴",
nested_top = "│ ",
whitespace = " ",
},
}
return opts
end

trouble.nvim (optional)

opts = nil

telescope.nvim (optional)

Telescope integration

opts = function()
LazyVim.on_load("telescope.nvim", function()
require("telescope").load_extension("aerial")
end)
end

edgy.nvim (optional)

edgy integration

opts = function(_, opts)
local edgy_idx = LazyVim.plugin.extra_idx("ui.edgy")
local aerial_idx = LazyVim.plugin.extra_idx("editor.aerial")

if edgy_idx and edgy_idx > aerial_idx then
LazyVim.warn("The `edgy.nvim` extra must be **imported** before the `aerial.nvim` extra to work properly.", {
title = "LazyVim",
})
end

opts.right = opts.right or {}
table.insert(opts.right, {
title = "Aerial",
ft = "aerial",
pinned = true,
open = "AerialOpen",
})
end

lualine.nvim (optional)

lualine integration

opts = function(_, opts)
if not vim.g.trouble_lualine then
table.insert(opts.sections.lualine_c, {
"aerial",
sep = " ", -- separator between symbols
sep_icon = "", -- separator between icon and symbol

-- The number of symbols to render top-down. In order to render only 'N' last
-- symbols, negative numbers may be supplied. For instance, 'depth = -1' can
-- be used in order to render only current symbol.
depth = 5,

-- When 'dense' mode is on, icons are not rendered near their symbols. Only
-- a single icon that represents the kind of current symbol is rendered at
-- the beginning of status line.
dense = false,

-- The separator to be used to separate symbols in dense mode.
dense_sep = ".",

-- Color the symbol icons.
colored = true,
})
end
end
+ + + + \ No newline at end of file diff --git a/extras/editor/dial.html b/extras/editor/dial.html new file mode 100644 index 0000000000..a29ebc6f2d --- /dev/null +++ b/extras/editor/dial.html @@ -0,0 +1,18 @@ + + + + + +Dial | LazyVim + + + + +
+

Dial

info

You can enable the extra with the :LazyExtras command. +Plugins marked as optional will only be configured if they are installed.

Below you can find a list of included plugins and their default settings.

caution

You don't need to copy the default settings to your config. +They are only shown here for reference.

dial.nvim

opts = function()
local augend = require("dial.augend")

local logical_alias = augend.constant.new({
elements = { "&&", "||" },
word = false,
cyclic = true,
})

local ordinal_numbers = augend.constant.new({
-- elements through which we cycle. When we increment, we go down
-- On decrement we go up
elements = {
"first",
"second",
"third",
"fourth",
"fifth",
"sixth",
"seventh",
"eighth",
"ninth",
"tenth",
},
-- if true, it only matches strings with word boundary. firstDate wouldn't work for example
word = false,
-- do we cycle back and forth (tenth to first on increment, first to tenth on decrement).
-- Otherwise nothing will happen when there are no further values
cyclic = true,
})

local weekdays = augend.constant.new({
elements = {
"Monday",
"Tuesday",
"Wednesday",
"Thursday",
"Friday",
"Saturday",
"Sunday",
},
word = true,
cyclic = true,
})

local months = augend.constant.new({
elements = {
"January",
"February",
"March",
"April",
"May",
"June",
"July",
"August",
"September",
"October",
"November",
"December",
},
word = true,
cyclic = true,
})

local capitalized_boolean = augend.constant.new({
elements = {
"True",
"False",
},
word = true,
cyclic = true,
})

return {
dials_by_ft = {
css = "css",
vue = "vue",
javascript = "typescript",
typescript = "typescript",
typescriptreact = "typescript",
javascriptreact = "typescript",
json = "json",
lua = "lua",
markdown = "markdown",
sass = "css",
scss = "css",
python = "python",
},
groups = {
default = {
augend.integer.alias.decimal, -- nonnegative decimal number (0, 1, 2, 3, ...)
augend.integer.alias.decimal_int, -- nonnegative and negative decimal number
augend.integer.alias.hex, -- nonnegative hex number (0x01, 0x1a1f, etc.)
augend.date.alias["%Y/%m/%d"], -- date (2022/02/19, etc.)
ordinal_numbers,
weekdays,
months,
capitalized_boolean,
augend.constant.alias.bool, -- boolean value (true <-> false)
logical_alias,
},
vue = {
augend.constant.new({ elements = { "let", "const" } }),
augend.hexcolor.new({ case = "lower" }),
augend.hexcolor.new({ case = "upper" }),
},
typescript = {
augend.constant.new({ elements = { "let", "const" } }),
},
css = {
augend.hexcolor.new({
case = "lower",
}),
augend.hexcolor.new({
case = "upper",
}),
},
markdown = {
augend.constant.new({
elements = { "[ ]", "[x]" },
word = false,
cyclic = true,
}),
augend.misc.alias.markdown_header,
},
json = {
augend.semver.alias.semver, -- versioning (v1.1.2)
},
lua = {
augend.constant.new({
elements = { "and", "or" },
word = true, -- if false, "sand" is incremented into "sor", "doctor" into "doctand", etc.
cyclic = true, -- "or" is incremented into "and".
}),
},
python = {
augend.constant.new({
elements = { "and", "or" },
}),
},
},
}
end
+ + + + \ No newline at end of file diff --git a/extras/editor/fzf.html b/extras/editor/fzf.html new file mode 100644 index 0000000000..138ebab823 --- /dev/null +++ b/extras/editor/fzf.html @@ -0,0 +1,18 @@ + + + + + +Fzf | LazyVim + + + + +
+

Fzf

info

You can enable the extra with the :LazyExtras command. +Plugins marked as optional will only be configured if they are installed.

Options

Additional options for this extra can be configured in your lua/config/options.lua file:

lua/config/options.lua
-- In case you don't want to use `:LazyExtras`,
-- then you need to set the option below.
vim.g.lazyvim_picker = "fzf"

Below you can find a list of included plugins and their default settings.

caution

You don't need to copy the default settings to your config. +They are only shown here for reference.

fzf-lua

opts = function(_, opts)
local fzf = require("fzf-lua")
local config = fzf.config
local actions = fzf.actions

-- Quickfix
config.defaults.keymap.fzf["ctrl-q"] = "select-all+accept"
config.defaults.keymap.fzf["ctrl-u"] = "half-page-up"
config.defaults.keymap.fzf["ctrl-d"] = "half-page-down"
config.defaults.keymap.fzf["ctrl-x"] = "jump"
config.defaults.keymap.fzf["ctrl-f"] = "preview-page-down"
config.defaults.keymap.fzf["ctrl-b"] = "preview-page-up"
config.defaults.keymap.builtin["<c-f>"] = "preview-page-down"
config.defaults.keymap.builtin["<c-b>"] = "preview-page-up"

-- Trouble
if LazyVim.has("trouble.nvim") then
config.defaults.actions.files["ctrl-t"] = require("trouble.sources.fzf").actions.open
end

-- Toggle root dir / cwd
config.defaults.actions.files["ctrl-r"] = function(_, ctx)
local o = vim.deepcopy(ctx.__call_opts)
o.root = o.root == false
o.cwd = nil
o.buf = ctx.__CTX.bufnr
LazyVim.pick.open(ctx.__INFO.cmd, o)
end
config.defaults.actions.files["alt-c"] = config.defaults.actions.files["ctrl-r"]
config.set_action_helpstr(config.defaults.actions.files["ctrl-r"], "toggle-root-dir")

local img_previewer ---@type string[]?
for _, v in ipairs({
{ cmd = "ueberzug", args = {} },
{ cmd = "chafa", args = { "{file}", "--format=symbols" } },
{ cmd = "viu", args = { "-b" } },
}) do
if vim.fn.executable(v.cmd) == 1 then
img_previewer = vim.list_extend({ v.cmd }, v.args)
break
end
end

return {
"default-title",
fzf_colors = true,
fzf_opts = {
["--no-scrollbar"] = true,
},
defaults = {
-- formatter = "path.filename_first",
formatter = "path.dirname_first",
},
previewers = {
builtin = {
extensions = {
["png"] = img_previewer,
["jpg"] = img_previewer,
["jpeg"] = img_previewer,
["gif"] = img_previewer,
["webp"] = img_previewer,
},
ueberzug_scaler = "fit_contain",
},
},
-- Custom LazyVim option to configure vim.ui.select
ui_select = function(fzf_opts, items)
return vim.tbl_deep_extend("force", fzf_opts, {
prompt = " ",
winopts = {
title = " " .. vim.trim((fzf_opts.prompt or "Select"):gsub("%s*:%s*$", "")) .. " ",
title_pos = "center",
},
}, fzf_opts.kind == "codeaction" and {
winopts = {
layout = "vertical",
-- height is number of items minus 15 lines for the preview, with a max of 80% screen height
height = math.floor(math.min(vim.o.lines * 0.8 - 16, #items + 4) + 0.5) + 16,
width = 0.5,
preview = not vim.tbl_isempty(vim.lsp.get_clients({ bufnr = 0, name = "vtsls" })) and {
layout = "vertical",
vertical = "down:15,border-top",
hidden = "hidden",
} or {
layout = "vertical",
vertical = "down:15,border-top",
},
},
} or {
winopts = {
width = 0.5,
-- height is number of items, with a max of 80% screen height
height = math.floor(math.min(vim.o.lines * 0.8, #items + 4) + 0.5),
},
})
end,
winopts = {
width = 0.8,
height = 0.8,
row = 0.5,
col = 0.5,
preview = {
scrollchars = { "┃", "" },
},
},
files = {
cwd_prompt = false,
actions = {
["alt-i"] = { actions.toggle_ignore },
["alt-h"] = { actions.toggle_hidden },
},
},
grep = {
actions = {
["alt-i"] = { actions.toggle_ignore },
["alt-h"] = { actions.toggle_hidden },
},
},
lsp = {
symbols = {
symbol_hl = function(s)
return "TroubleIcon" .. s
end,
symbol_fmt = function(s)
return s:lower() .. "\t"
end,
child_prefix = false,
},
code_actions = {
previewer = vim.fn.executable("delta") == 1 and "codeaction_native" or nil,
},
},
}
end

fzf-lua

opts = nil

nvim-lspconfig

opts = function()
local Keys = require("lazyvim.plugins.lsp.keymaps").get()
-- stylua: ignore
vim.list_extend(Keys, {
{ "gd", "<cmd>FzfLua lsp_definitions jump1=true ignore_current_line=true<cr>", desc = "Goto Definition", has = "definition" },
{ "gr", "<cmd>FzfLua lsp_references jump1=true ignore_current_line=true<cr>", desc = "References", nowait = true },
{ "gI", "<cmd>FzfLua lsp_implementations jump1=true ignore_current_line=true<cr>", desc = "Goto Implementation" },
{ "gy", "<cmd>FzfLua lsp_typedefs jump1=true ignore_current_line=true<cr>", desc = "Goto T[y]pe Definition" },
})
end

todo-comments.nvim (optional)

opts = nil
+ + + + \ No newline at end of file diff --git a/extras/editor/harpoon2.html b/extras/editor/harpoon2.html new file mode 100644 index 0000000000..0cf6e52944 --- /dev/null +++ b/extras/editor/harpoon2.html @@ -0,0 +1,18 @@ + + + + + +Harpoon2 | LazyVim + + + + +
+

Harpoon2

info

You can enable the extra with the :LazyExtras command. +Plugins marked as optional will only be configured if they are installed.

Below you can find a list of included plugins and their default settings.

caution

You don't need to copy the default settings to your config. +They are only shown here for reference.

harpoon

opts = {
menu = {
width = vim.api.nvim_win_get_width(0) - 4,
},
settings = {
save_on_toggle = true,
},
}
+ + + + \ No newline at end of file diff --git a/extras/editor/illuminate.html b/extras/editor/illuminate.html new file mode 100644 index 0000000000..a4a29c09ad --- /dev/null +++ b/extras/editor/illuminate.html @@ -0,0 +1,18 @@ + + + + + +Illuminate | LazyVim + + + + +
+

Illuminate

info

You can enable the extra with the :LazyExtras command. +Plugins marked as optional will only be configured if they are installed.

Below you can find a list of included plugins and their default settings.

caution

You don't need to copy the default settings to your config. +They are only shown here for reference.

snacks.nvim

disable snacks words

opts = { words = { enabled = false } }

vim-illuminate

opts = {
delay = 200,
large_file_cutoff = 2000,
large_file_overrides = {
providers = { "lsp" },
},
}
+ + + + \ No newline at end of file diff --git a/extras/editor/inc-rename.html b/extras/editor/inc-rename.html new file mode 100644 index 0000000000..a4facc0714 --- /dev/null +++ b/extras/editor/inc-rename.html @@ -0,0 +1,18 @@ + + + + + +Inc-rename | LazyVim + + + + +
+

Inc-rename

info

You can enable the extra with the :LazyExtras command. +Plugins marked as optional will only be configured if they are installed.

Below you can find a list of included plugins and their default settings.

caution

You don't need to copy the default settings to your config. +They are only shown here for reference.

inc-rename.nvim

opts = {}

nvim-lspconfig

LSP Keymaps

opts = function()
local keys = require("lazyvim.plugins.lsp.keymaps").get()
keys[#keys + 1] = {
"<leader>cr",
function()
local inc_rename = require("inc_rename")
return ":" .. inc_rename.config.cmd_name .. " " .. vim.fn.expand("<cword>")
end,
expr = true,
desc = "Rename (inc-rename.nvim)",
has = "rename",
}
end

noice.nvim (optional)

Noice integration

opts = {
presets = { inc_rename = true },
}
+ + + + \ No newline at end of file diff --git a/extras/editor/leap.html b/extras/editor/leap.html new file mode 100644 index 0000000000..9a4f875ce7 --- /dev/null +++ b/extras/editor/leap.html @@ -0,0 +1,18 @@ + + + + + +Leap | LazyVim + + + + +
+

Leap

info

You can enable the extra with the :LazyExtras command. +Plugins marked as optional will only be configured if they are installed.

Below you can find a list of included plugins and their default settings.

caution

You don't need to copy the default settings to your config. +They are only shown here for reference.

flit.nvim

easily jump to any location and enhanced f/t motions for Leap

opts = { labeled_modes = "nx" }

leap.nvim

opts = {}

vim-repeat

makes some plugins dot-repeatable like leap

opts = nil

mini.surround (optional)

rename surround mappings from gs to gz to prevent conflict with leap

opts = {
mappings = {
add = "gza", -- Add surrounding in Normal and Visual modes
delete = "gzd", -- Delete surrounding
find = "gzf", -- Find surrounding (to the right)
find_left = "gzF", -- Find surrounding (to the left)
highlight = "gzh", -- Highlight surrounding
replace = "gzr", -- Replace surrounding
update_n_lines = "gzn", -- Update `n_lines`
},
}
+ + + + \ No newline at end of file diff --git a/extras/editor/mini-diff.html b/extras/editor/mini-diff.html new file mode 100644 index 0000000000..5b6ad0e579 --- /dev/null +++ b/extras/editor/mini-diff.html @@ -0,0 +1,18 @@ + + + + + +Mini-diff | LazyVim + + + + +
+

Mini-diff

info

You can enable the extra with the :LazyExtras command. +Plugins marked as optional will only be configured if they are installed.

Below you can find a list of included plugins and their default settings.

caution

You don't need to copy the default settings to your config. +They are only shown here for reference.

mini.diff

setup mini.diff

opts = {
view = {
style = "sign",
signs = {
add = "▎",
change = "▎",
delete = "",
},
},
}

mini.diff

opts = function()
Snacks.toggle({
name = "Mini Diff Signs",
get = function()
return vim.g.minidiff_disable ~= true
end,
set = function(state)
vim.g.minidiff_disable = not state
if state then
require("mini.diff").enable(0)
else
require("mini.diff").disable(0)
end
-- HACK: redraw to update the signs
vim.defer_fn(function()
vim.cmd([[redraw!]])
end, 200)
end,
}):map("<leader>uG")
end

lualine.nvim

lualine integration

opts = function(_, opts)
local x = opts.sections.lualine_x
for _, comp in ipairs(x) do
if comp[1] == "diff" then
comp.source = function()
local summary = vim.b.minidiff_summary
return summary
and {
added = summary.add,
modified = summary.change,
removed = summary.delete,
}
end
break
end
end
end
+ + + + \ No newline at end of file diff --git a/extras/editor/mini-files.html b/extras/editor/mini-files.html new file mode 100644 index 0000000000..e7e5cee80c --- /dev/null +++ b/extras/editor/mini-files.html @@ -0,0 +1,18 @@ + + + + + +Mini Files | LazyVim + + + + +
+

Mini Files

info

You can enable the extra with the :LazyExtras command. +Plugins marked as optional will only be configured if they are installed.

Below you can find a list of included plugins and their default settings.

caution

You don't need to copy the default settings to your config. +They are only shown here for reference.

mini.files

opts = {
windows = {
preview = true,
width_focus = 30,
width_preview = 30,
},
options = {
-- Whether to use for editing directories
-- Disabled by default in LazyVim because neo-tree is used for that
use_as_default_explorer = false,
},
}
+ + + + \ No newline at end of file diff --git a/extras/editor/mini-move.html b/extras/editor/mini-move.html new file mode 100644 index 0000000000..093ea7ddda --- /dev/null +++ b/extras/editor/mini-move.html @@ -0,0 +1,18 @@ + + + + + +Mini-move | LazyVim + + + + +
+

Mini-move

info

You can enable the extra with the :LazyExtras command. +Plugins marked as optional will only be configured if they are installed.

Below you can find a list of included plugins and their default settings.

caution

You don't need to copy the default settings to your config. +They are only shown here for reference.

mini.move

opts = {}
+ + + + \ No newline at end of file diff --git a/extras/editor/navic.html b/extras/editor/navic.html new file mode 100644 index 0000000000..7622708619 --- /dev/null +++ b/extras/editor/navic.html @@ -0,0 +1,20 @@ + + + + + +Navic | LazyVim + + + + +
+

Navic

info

You can enable the extra with the :LazyExtras command. +Plugins marked as optional will only be configured if they are installed.

Below you can find a list of included plugins and their default settings.

caution

You don't need to copy the default settings to your config. +They are only shown here for reference.

nvim-navic

lsp symbol navigation for lualine. This shows where +in the code structure you are - within functions, classes, +etc - in the statusline.

opts = function()
return {
separator = " ",
highlight = true,
depth_limit = 5,
icons = LazyVim.config.icons.kinds,
lazy_update_context = true,
}
end

lualine.nvim (optional)

lualine integration

opts = function(_, opts)
if not vim.g.trouble_lualine then
table.insert(opts.sections.lualine_c, { "navic", color_correction = "dynamic" })
end
end
+ + + + \ No newline at end of file diff --git a/extras/editor/neo-tree.html b/extras/editor/neo-tree.html new file mode 100644 index 0000000000..728057a90c --- /dev/null +++ b/extras/editor/neo-tree.html @@ -0,0 +1,18 @@ + + + + + +Neo-tree | LazyVim + + + + +
+

Neo-tree

info

You can enable the extra with the :LazyExtras command. +Plugins marked as optional will only be configured if they are installed.

Below you can find a list of included plugins and their default settings.

caution

You don't need to copy the default settings to your config. +They are only shown here for reference.

neo-tree.nvim

file explorer

opts = {
sources = { "filesystem", "buffers", "git_status" },
open_files_do_not_replace_types = { "terminal", "Trouble", "trouble", "qf", "Outline" },
filesystem = {
bind_to_cwd = false,
follow_current_file = { enabled = true },
use_libuv_file_watcher = true,
},
window = {
mappings = {
["l"] = "open",
["h"] = "close_node",
["<space>"] = "none",
["Y"] = {
function(state)
local node = state.tree:get_node()
local path = node:get_id()
vim.fn.setreg("+", path, "c")
end,
desc = "Copy Path to Clipboard",
},
["O"] = {
function(state)
require("lazy.util").open(state.tree:get_node().path, { system = true })
end,
desc = "Open with System Application",
},
["P"] = { "toggle_preview", config = { use_float = false } },
},
},
default_component_configs = {
indent = {
with_expanders = true, -- if nil and file nesting is enabled, will enable expanders
expander_collapsed = "",
expander_expanded = "",
expander_highlight = "NeoTreeExpander",
},
git_status = {
symbols = {
unstaged = "󰄱",
staged = "󰱒",
},
},
},
}
+ + + + \ No newline at end of file diff --git a/extras/editor/outline.html b/extras/editor/outline.html new file mode 100644 index 0000000000..2f7ecd47a1 --- /dev/null +++ b/extras/editor/outline.html @@ -0,0 +1,18 @@ + + + + + +Outline | LazyVim + + + + +
+

Outline

info

You can enable the extra with the :LazyExtras command. +Plugins marked as optional will only be configured if they are installed.

Below you can find a list of included plugins and their default settings.

caution

You don't need to copy the default settings to your config. +They are only shown here for reference.

outline.nvim

opts = function()
local defaults = require("outline.config").defaults
local opts = {
symbols = {
icons = {},
filter = vim.deepcopy(LazyVim.config.kind_filter),
},
keymaps = {
up_and_jump = "<up>",
down_and_jump = "<down>",
},
}

for kind, symbol in pairs(defaults.symbols.icons) do
opts.symbols.icons[kind] = {
icon = LazyVim.config.icons.kinds[kind] or symbol.icon,
hl = symbol.hl,
}
end
return opts
end

trouble.nvim (optional)

Disable <leader>cs keymap so it doesn't conflict with outline.nvim

opts = nil

edgy.nvim (optional)

edgy integration

opts = function(_, opts)
local edgy_idx = LazyVim.plugin.extra_idx("ui.edgy")
local symbols_idx = LazyVim.plugin.extra_idx("editor.outline")

if edgy_idx and edgy_idx > symbols_idx then
LazyVim.warn(
"The `edgy.nvim` extra must be **imported** before the `outline.nvim` extra to work properly.",
{ title = "LazyVim" }
)
end

opts.right = opts.right or {}
table.insert(opts.right, {
title = "Outline",
ft = "Outline",
pinned = true,
open = "Outline",
})
end
+ + + + \ No newline at end of file diff --git a/extras/editor/overseer.html b/extras/editor/overseer.html new file mode 100644 index 0000000000..9ac896f1c2 --- /dev/null +++ b/extras/editor/overseer.html @@ -0,0 +1,18 @@ + + + + + +Overseer | LazyVim + + + + +
+

Overseer

info

You can enable the extra with the :LazyExtras command. +Plugins marked as optional will only be configured if they are installed.

Below you can find a list of included plugins and their default settings.

caution

You don't need to copy the default settings to your config. +They are only shown here for reference.

overseer.nvim

opts = {
dap = false,
task_list = {
bindings = {
["<C-h>"] = false,
["<C-j>"] = false,
["<C-k>"] = false,
["<C-l>"] = false,
},
},
form = {
win_opts = {
winblend = 0,
},
},
confirm = {
win_opts = {
winblend = 0,
},
},
task_win = {
win_opts = {
winblend = 0,
},
},
}

catppuccin (optional)

opts = {
integrations = { overseer = true },
}

which-key.nvim (optional)

opts = {
spec = {
{ "<leader>o", group = "overseer" },
},
}

edgy.nvim (optional)

opts = function(_, opts)
opts.right = opts.right or {}
table.insert(opts.right, {
title = "Overseer",
ft = "OverseerList",
open = function()
require("overseer").open()
end,
})
end

neotest (optional)

opts = function(_, opts)
opts = opts or {}
opts.consumers = opts.consumers or {}
opts.consumers.overseer = require("neotest.consumers.overseer")
end

nvim-dap (optional)

opts = function()
require("overseer").enable_dap()
end
+ + + + \ No newline at end of file diff --git a/extras/editor/refactoring.html b/extras/editor/refactoring.html new file mode 100644 index 0000000000..6bfc84912f --- /dev/null +++ b/extras/editor/refactoring.html @@ -0,0 +1,18 @@ + + + + + +Refactoring | LazyVim + + + + +
+

Refactoring

info

You can enable the extra with the :LazyExtras command. +Plugins marked as optional will only be configured if they are installed.

Below you can find a list of included plugins and their default settings.

caution

You don't need to copy the default settings to your config. +They are only shown here for reference.

refactoring.nvim

opts = {
prompt_func_return_type = {
go = false,
java = false,
cpp = false,
c = false,
h = false,
hpp = false,
cxx = false,
},
prompt_func_param_type = {
go = false,
java = false,
cpp = false,
c = false,
h = false,
hpp = false,
cxx = false,
},
printf_statements = {},
print_var_statements = {},
show_success_message = true, -- shows a message with information about the refactor on success
-- i.e. [Refactor] Inlined 3 variable occurrences
}

plenary.nvim

opts = nil

nvim-treesitter

opts = nil
+ + + + \ No newline at end of file diff --git a/extras/editor/snacks_explorer.html b/extras/editor/snacks_explorer.html new file mode 100644 index 0000000000..ed963ff13c --- /dev/null +++ b/extras/editor/snacks_explorer.html @@ -0,0 +1,18 @@ + + + + + +Snacks_explorer | LazyVim + + + + +
+

Snacks_explorer

info

You can enable the extra with the :LazyExtras command. +Plugins marked as optional will only be configured if they are installed.

Below you can find a list of included plugins and their default settings.

caution

You don't need to copy the default settings to your config. +They are only shown here for reference.

snacks.nvim

opts = nil
+ + + + \ No newline at end of file diff --git a/extras/editor/snacks_picker.html b/extras/editor/snacks_picker.html new file mode 100644 index 0000000000..1c78da0c27 --- /dev/null +++ b/extras/editor/snacks_picker.html @@ -0,0 +1,18 @@ + + + + + +Snacks_picker | LazyVim + + + + +
+

Snacks_picker

info

You can enable the extra with the :LazyExtras command. +Plugins marked as optional will only be configured if they are installed.

Options

Additional options for this extra can be configured in your lua/config/options.lua file:

lua/config/options.lua
-- In case you don't want to use `:LazyExtras`,
-- then you need to set the option below.
vim.g.lazyvim_picker = "snacks"

Below you can find a list of included plugins and their default settings.

caution

You don't need to copy the default settings to your config. +They are only shown here for reference.

snacks.nvim

opts = {
picker = {
win = {
input = {
keys = {
["<a-c>"] = {
"toggle_cwd",
mode = { "n", "i" },
},
},
},
},
actions = {
---@param p snacks.Picker
toggle_cwd = function(p)
local root = LazyVim.root({ buf = p.input.filter.current_buf, normalize = true })
local cwd = vim.fs.normalize((vim.uv or vim.loop).cwd() or ".")
local current = p:cwd()
p:set_cwd(current == root and cwd or root)
p:find()
end,
},
},
}

snacks.nvim

opts = function(_, opts)
if LazyVim.has("trouble.nvim") then
return vim.tbl_deep_extend("force", opts or {}, {
picker = {
actions = {
trouble_open = function(...)
return require("trouble.sources.snacks").actions.trouble_open.action(...)
end,
},
win = {
input = {
keys = {
["<a-t>"] = {
"trouble_open",
mode = { "n", "i" },
},
},
},
},
},
})
end
end

nvim-lspconfig

opts = function()
local Keys = require("lazyvim.plugins.lsp.keymaps").get()
-- stylua: ignore
vim.list_extend(Keys, {
{ "gd", function() Snacks.picker.lsp_definitions() end, desc = "Goto Definition", has = "definition" },
{ "gr", function() Snacks.picker.lsp_references() end, nowait = true, desc = "References" },
{ "gI", function() Snacks.picker.lsp_implementations() end, desc = "Goto Implementation" },
{ "gy", function() Snacks.picker.lsp_type_definitions() end, desc = "Goto T[y]pe Definition" },
{ "<leader>ss", function() Snacks.picker.lsp_symbols({ filter = LazyVim.config.kind_filter }) end, desc = "LSP Symbols", has = "documentSymbol" },
{ "<leader>sS", function() Snacks.picker.lsp_workspace_symbols({ filter = LazyVim.config.kind_filter }) end, desc = "LSP Workspace Symbols", has = "workspace/symbols" },
{ "gai", function() Snacks.picker.lsp_incoming_calls() end, desc = "C[a]lls Incoming", has = "callHierarchy/incomingCalls" },
{ "gao", function() Snacks.picker.lsp_outgoing_calls() end, desc = "C[a]lls Outgoing", has = "callHierarchy/outgoingCalls" },
})
end

snacks.nvim

opts = function(_, opts)
table.insert(opts.dashboard.preset.keys, 3, {
icon = " ",
key = "p",
desc = "Projects",
action = ":lua Snacks.picker.projects()",
})
end

snacks.nvim

opts = {
picker = {
win = {
input = {
keys = {
["<a-s>"] = { "flash", mode = { "n", "i" } },
["s"] = { "flash" },
},
},
},
actions = {
flash = function(picker)
require("flash").jump({
pattern = "^",
label = { after = { 0, 0 } },
search = {
mode = "search",
exclude = {
function(win)
return vim.bo[vim.api.nvim_win_get_buf(win)].filetype ~= "snacks_picker_list"
end,
},
},
action = function(match)
local idx = picker.list:row2idx(match.pos[1])
picker.list:_move(idx, true, true)
end,
})
end,
},
},
}

todo-comments.nvim (optional)

opts = nil

alpha-nvim (optional)

opts = function(_, dashboard)
local button = dashboard.button("p", " " .. " Projects", [[<cmd> lua Snacks.picker.projects() <cr>]])
button.opts.hl = "AlphaButtons"
button.opts.hl_shortcut = "AlphaShortcut"
table.insert(dashboard.section.buttons.val, 4, button)
end

mini.starter (optional)

opts = function(_, opts)
local items = {
{
name = "Projects",
action = [[lua Snacks.picker.projects()]],
section = string.rep(" ", 22) .. "Telescope",
},
}
vim.list_extend(opts.items, items)
end

dashboard-nvim (optional)

opts = function(_, opts)
if not vim.tbl_get(opts, "config", "center") then
return
end
local projects = {
action = "lua Snacks.picker.projects()",
desc = " Projects",
icon = " ",
key = "p",
}

projects.desc = projects.desc .. string.rep(" ", 43 - #projects.desc)
projects.key_format = " %s"

table.insert(opts.config.center, 3, projects)
end

flash.nvim (optional)

opts = nil
+ + + + \ No newline at end of file diff --git a/extras/editor/telescope.html b/extras/editor/telescope.html new file mode 100644 index 0000000000..3639b98fe5 --- /dev/null +++ b/extras/editor/telescope.html @@ -0,0 +1,21 @@ + + + + + +Telescope | LazyVim + + + + +
+

Telescope

info

You can enable the extra with the :LazyExtras command. +Plugins marked as optional will only be configured if they are installed.

Options

Additional options for this extra can be configured in your lua/config/options.lua file:

lua/config/options.lua
-- In case you don't want to use `:LazyExtras`,
-- then you need to set the option below.
vim.g.lazyvim_picker = "telescope"

Below you can find a list of included plugins and their default settings.

caution

You don't need to copy the default settings to your config. +They are only shown here for reference.

telescope.nvim

Fuzzy finder. +The default key bindings to find files will use Telescope's +find_files or git_files depending on whether the +directory is a git repo.

opts = function()
local actions = require("telescope.actions")

local open_with_trouble = function(...)
return require("trouble.sources.telescope").open(...)
end
local find_files_no_ignore = function()
local action_state = require("telescope.actions.state")
local line = action_state.get_current_line()
LazyVim.pick("find_files", { no_ignore = true, default_text = line })()
end
local find_files_with_hidden = function()
local action_state = require("telescope.actions.state")
local line = action_state.get_current_line()
LazyVim.pick("find_files", { hidden = true, default_text = line })()
end

local function find_command()
if 1 == vim.fn.executable("rg") then
return { "rg", "--files", "--color", "never", "-g", "!.git" }
elseif 1 == vim.fn.executable("fd") then
return { "fd", "--type", "f", "--color", "never", "-E", ".git" }
elseif 1 == vim.fn.executable("fdfind") then
return { "fdfind", "--type", "f", "--color", "never", "-E", ".git" }
elseif 1 == vim.fn.executable("find") and vim.fn.has("win32") == 0 then
return { "find", ".", "-type", "f" }
elseif 1 == vim.fn.executable("where") then
return { "where", "/r", ".", "*" }
end
end

return {
defaults = {
prompt_prefix = " ",
selection_caret = " ",
-- open files in the first window that is an actual file.
-- use the current window if no other window is available.
get_selection_window = function()
local wins = vim.api.nvim_list_wins()
table.insert(wins, 1, vim.api.nvim_get_current_win())
for _, win in ipairs(wins) do
local buf = vim.api.nvim_win_get_buf(win)
if vim.bo[buf].buftype == "" then
return win
end
end
return 0
end,
mappings = {
i = {
["<c-t>"] = open_with_trouble,
["<a-t>"] = open_with_trouble,
["<a-i>"] = find_files_no_ignore,
["<a-h>"] = find_files_with_hidden,
["<C-Down>"] = actions.cycle_history_next,
["<C-Up>"] = actions.cycle_history_prev,
["<C-f>"] = actions.preview_scrolling_down,
["<C-b>"] = actions.preview_scrolling_up,
},
n = {
["q"] = actions.close,
},
},
},
pickers = {
find_files = {
find_command = find_command,
hidden = true,
},
},
}
end

dressing.nvim

better vim.ui with telescope

opts = nil

telescope.nvim

Flash Telescope config

opts = function(_, opts)
if not LazyVim.has("flash.nvim") then
return
end
local function flash(prompt_bufnr)
require("flash").jump({
pattern = "^",
label = { after = { 0, 0 } },
search = {
mode = "search",
exclude = {
function(win)
return vim.bo[vim.api.nvim_win_get_buf(win)].filetype ~= "TelescopeResults"
end,
},
},
action = function(match)
local picker = require("telescope.actions.state").get_current_picker(prompt_bufnr)
picker:set_selection(match.pos[1] - 1)
end,
})
end
opts.defaults = vim.tbl_deep_extend("force", opts.defaults or {}, {
mappings = { n = { s = flash }, i = { ["<c-s>"] = flash } },
})
end

telescope-fzf-native.nvim

opts = {}

nvim-lspconfig

opts = function()
local Keys = require("lazyvim.plugins.lsp.keymaps").get()
-- stylua: ignore
vim.list_extend(Keys, {
{ "gd", function() require("telescope.builtin").lsp_definitions({ reuse_win = true }) end, desc = "Goto Definition", has = "definition" },
{ "gr", "<cmd>Telescope lsp_references<cr>", desc = "References", nowait = true },
{ "gI", function() require("telescope.builtin").lsp_implementations({ reuse_win = true }) end, desc = "Goto Implementation" },
{ "gy", function() require("telescope.builtin").lsp_type_definitions({ reuse_win = true }) end, desc = "Goto T[y]pe Definition" },
})
end
+ + + + \ No newline at end of file diff --git a/extras/formatting/biome.html b/extras/formatting/biome.html new file mode 100644 index 0000000000..ba581b21e3 --- /dev/null +++ b/extras/formatting/biome.html @@ -0,0 +1,18 @@ + + + + + +Biome | LazyVim + + + + +
+

Biome

info

You can enable the extra with the :LazyExtras command. +Plugins marked as optional will only be configured if they are installed.

Options

Additional options for this extra can be configured in your lua/config/options.lua file:

lua/config/options.lua
-- Enable this option to avoid conflicts with Prettier.
vim.g.lazyvim_prettier_needs_config = true

Below you can find a list of included plugins and their default settings.

caution

You don't need to copy the default settings to your config. +They are only shown here for reference.

mason.nvim

opts = { ensure_installed = { "biome" } }

conform.nvim (optional)

opts = function(_, opts)
opts.formatters_by_ft = opts.formatters_by_ft or {}
for _, ft in ipairs(supported) do
opts.formatters_by_ft[ft] = opts.formatters_by_ft[ft] or {}
table.insert(opts.formatters_by_ft[ft], "biome")
end

opts.formatters = opts.formatters or {}
opts.formatters.biome = {
require_cwd = true,
}
end

none-ls.nvim (optional)

none-ls support

opts = function(_, opts)
local nls = require("null-ls")
opts.sources = opts.sources or {}
table.insert(opts.sources, nls.builtins.formatting.biome)
end
+ + + + \ No newline at end of file diff --git a/extras/formatting/black.html b/extras/formatting/black.html new file mode 100644 index 0000000000..348e24f7ad --- /dev/null +++ b/extras/formatting/black.html @@ -0,0 +1,18 @@ + + + + + +Black Formatter | LazyVim + + + + +
+

Black Formatter

info

You can enable the extra with the :LazyExtras command. +Plugins marked as optional will only be configured if they are installed.

Below you can find a list of included plugins and their default settings.

caution

You don't need to copy the default settings to your config. +They are only shown here for reference.

mason.nvim

opts = function(_, opts)
table.insert(opts.ensure_installed, "black")
end

none-ls.nvim (optional)

opts = function(_, opts)
local nls = require("null-ls")
opts.sources = opts.sources or {}
table.insert(opts.sources, nls.builtins.formatting.black)
end

conform.nvim (optional)

opts = {
formatters_by_ft = {
["python"] = { "black" },
},
}
+ + + + \ No newline at end of file diff --git a/extras/formatting/prettier.html b/extras/formatting/prettier.html new file mode 100644 index 0000000000..588ae1b2bf --- /dev/null +++ b/extras/formatting/prettier.html @@ -0,0 +1,18 @@ + + + + + +Prettier | LazyVim + + + + +
+

Prettier

info

You can enable the extra with the :LazyExtras command. +Plugins marked as optional will only be configured if they are installed.

Options

Additional options for this extra can be configured in your lua/config/options.lua file:

lua/config/options.lua
-- Enable the option to require a Prettier config file
-- If no prettier config file is found, the formatter will not be used
vim.g.lazyvim_prettier_needs_config = false

Below you can find a list of included plugins and their default settings.

caution

You don't need to copy the default settings to your config. +They are only shown here for reference.

mason.nvim

opts = { ensure_installed = { "prettier" } }

conform.nvim (optional)

conform

opts = function(_, opts)
opts.formatters_by_ft = opts.formatters_by_ft or {}
for _, ft in ipairs(supported) do
opts.formatters_by_ft[ft] = opts.formatters_by_ft[ft] or {}
table.insert(opts.formatters_by_ft[ft], "prettier")
end

opts.formatters = opts.formatters or {}
opts.formatters.prettier = {
condition = function(_, ctx)
return M.has_parser(ctx) and (vim.g.lazyvim_prettier_needs_config ~= true or M.has_config(ctx))
end,
}
end

none-ls.nvim (optional)

none-ls support

opts = function(_, opts)
local nls = require("null-ls")
opts.sources = opts.sources or {}
table.insert(opts.sources, nls.builtins.formatting.prettier)
end
+ + + + \ No newline at end of file diff --git a/extras/lang/angular.html b/extras/lang/angular.html new file mode 100644 index 0000000000..b8020e40ce --- /dev/null +++ b/extras/lang/angular.html @@ -0,0 +1,18 @@ + + + + + +Angular | LazyVim + + + + +
+

Angular

info

You can enable the extra with the :LazyExtras command. +Plugins marked as optional will only be configured if they are installed.

Below you can find a list of included plugins and their default settings.

caution

You don't need to copy the default settings to your config. +They are only shown here for reference.

Includes the following extras

nvim-treesitter

opts = function(_, opts)
if type(opts.ensure_installed) == "table" then
vim.list_extend(opts.ensure_installed, { "angular", "scss" })
end
vim.api.nvim_create_autocmd({ "BufReadPost", "BufNewFile" }, {
pattern = { "*.component.html", "*.container.html" },
callback = function()
vim.treesitter.start(nil, "angular")
end,
})
end

nvim-lspconfig

LSP Servers

opts = {
servers = {
angularls = {},
},
setup = {
angularls = function()
LazyVim.lsp.on_attach(function(client)
--HACK: disable angular renaming capability due to duplicate rename popping up
client.server_capabilities.renameProvider = false
end, "angularls")
end,
},
}

nvim-lspconfig

Configure tsserver plugin

opts = function(_, opts)
LazyVim.extend(opts.servers.vtsls, "settings.vtsls.tsserver.globalPlugins", {
{
name = "@angular/language-server",
location = LazyVim.get_pkg_path("angular-language-server", "/node_modules/@angular/language-server"),
enableForWorkspaceTypeScriptVersions = false,
},
})
end

conform.nvim

formatting

opts = function(_, opts)
if LazyVim.has_extra("formatting.prettier") then
opts.formatters_by_ft = opts.formatters_by_ft or {}
opts.formatters_by_ft.htmlangular = { "prettier" }
end
end
+ + + + \ No newline at end of file diff --git a/extras/lang/ansible.html b/extras/lang/ansible.html new file mode 100644 index 0000000000..0b2936af5e --- /dev/null +++ b/extras/lang/ansible.html @@ -0,0 +1,18 @@ + + + + + +Ansible | LazyVim + + + + +
+

Ansible

info

You can enable the extra with the :LazyExtras command. +Plugins marked as optional will only be configured if they are installed.

Below you can find a list of included plugins and their default settings.

caution

You don't need to copy the default settings to your config. +They are only shown here for reference.

mason.nvim

opts = { ensure_installed = { "ansible-lint" } }

nvim-lspconfig

opts = {
servers = {
ansiblels = {},
},
}

nvim-ansible

opts = nil
+ + + + \ No newline at end of file diff --git a/extras/lang/astro.html b/extras/lang/astro.html new file mode 100644 index 0000000000..aeae79e9ab --- /dev/null +++ b/extras/lang/astro.html @@ -0,0 +1,18 @@ + + + + + +Astro | LazyVim + + + + +
+

Astro

info

You can enable the extra with the :LazyExtras command. +Plugins marked as optional will only be configured if they are installed.

Below you can find a list of included plugins and their default settings.

caution

You don't need to copy the default settings to your config. +They are only shown here for reference.

Includes the following extras

nvim-treesitter

opts = { ensure_installed = { "astro", "css" } }

nvim-lspconfig

LSP Servers

opts = {
servers = {
astro = {},
},
}

nvim-lspconfig

Configure tsserver plugin

opts = function(_, opts)
LazyVim.extend(opts.servers.vtsls, "settings.vtsls.tsserver.globalPlugins", {
{
name = "@astrojs/ts-plugin",
location = LazyVim.get_pkg_path("astro-language-server", "/node_modules/@astrojs/ts-plugin"),
enableForWorkspaceTypeScriptVersions = true,
},
})
end

conform.nvim

opts = function(_, opts)
if LazyVim.has_extra("formatting.prettier") then
opts.formatters_by_ft = opts.formatters_by_ft or {}
opts.formatters_by_ft.astro = { "prettier" }
end
end
+ + + + \ No newline at end of file diff --git a/extras/lang/clangd.html b/extras/lang/clangd.html new file mode 100644 index 0000000000..26844684b9 --- /dev/null +++ b/extras/lang/clangd.html @@ -0,0 +1,18 @@ + + + + + +Clangd | LazyVim + + + + +
+

Clangd

info

You can enable the extra with the :LazyExtras command. +Plugins marked as optional will only be configured if they are installed.

Below you can find a list of included plugins and their default settings.

caution

You don't need to copy the default settings to your config. +They are only shown here for reference.

nvim-treesitter

Add C/C++ to treesitter

opts = { ensure_installed = { "cpp" } }

clangd_extensions.nvim

opts = {
inlay_hints = {
inline = false,
},
ast = {
--These require codicons (https://github.com/microsoft/vscode-codicons)
role_icons = {
type = "",
declaration = "",
expression = "",
specifier = "",
statement = "",
["template argument"] = "",
},
kind_icons = {
Compound = "",
Recovery = "",
TranslationUnit = "",
PackExpansion = "",
TemplateTypeParm = "",
TemplateTemplateParm = "",
TemplateParamObject = "",
},
},
}

nvim-lspconfig

Correctly setup lspconfig for clangd 🚀

opts = {
servers = {
-- Ensure mason installs the server
clangd = {
keys = {
{ "<leader>ch", "<cmd>LspClangdSwitchSourceHeader<cr>", desc = "Switch Source/Header (C/C++)" },
},
root_markers = {
"compile_commands.json",
"compile_flags.txt",
"configure.ac", -- AutoTools
"Makefile",
"configure.ac",
"configure.in",
"config.h.in",
"meson.build",
"meson_options.txt",
"build.ninja",
".git",
},
capabilities = {
offsetEncoding = { "utf-16" },
},
cmd = {
"clangd",
"--background-index",
"--clang-tidy",
"--header-insertion=iwyu",
"--completion-style=detailed",
"--function-arg-placeholders",
"--fallback-style=llvm",
},
init_options = {
usePlaceholders = true,
completeUnimported = true,
clangdFileStatus = true,
},
},
},
setup = {
clangd = function(_, opts)
local clangd_ext_opts = LazyVim.opts("clangd_extensions.nvim")
require("clangd_extensions").setup(vim.tbl_deep_extend("force", clangd_ext_opts or {}, { server = opts }))
return false
end,
},
}

nvim-cmp (optional)

opts = function(_, opts)
opts.sorting = opts.sorting or {}
opts.sorting.comparators = opts.sorting.comparators or {}
table.insert(opts.sorting.comparators, 1, require("clangd_extensions.cmp_scores"))
end

nvim-dap (optional)

opts = function()
local dap = require("dap")
if not dap.adapters["codelldb"] then
require("dap").adapters["codelldb"] = {
type = "server",
host = "localhost",
port = "${port}",
executable = {
command = "codelldb",
args = {
"--port",
"${port}",
},
},
}
end
for _, lang in ipairs({ "c", "cpp" }) do
dap.configurations[lang] = {
{
type = "codelldb",
request = "launch",
name = "Launch file",
program = function()
return vim.fn.input("Path to executable: ", vim.fn.getcwd() .. "/", "file")
end,
cwd = "${workspaceFolder}",
},
{
type = "codelldb",
request = "attach",
name = "Attach to process",
pid = require("dap.utils").pick_process,
cwd = "${workspaceFolder}",
},
}
end
end

mason.nvim (optional)

opts = { ensure_installed = { "codelldb" } }
+ + + + \ No newline at end of file diff --git a/extras/lang/clojure.html b/extras/lang/clojure.html new file mode 100644 index 0000000000..2994404105 --- /dev/null +++ b/extras/lang/clojure.html @@ -0,0 +1,18 @@ + + + + + +Clojure | LazyVim + + + + +
+

Clojure

info

You can enable the extra with the :LazyExtras command. +Plugins marked as optional will only be configured if they are installed.

Below you can find a list of included plugins and their default settings.

caution

You don't need to copy the default settings to your config. +They are only shown here for reference.

nvim-treesitter

Add Clojure & related to treesitter

opts = { ensure_installed = { "clojure" } }

cmp-conjure

opts = nil

nvim-paredit

Add s-exp mappings

opts = {}

baleia.nvim

Colorize the output of the log buffer

opts = {
line_starts_at = 3,
}

conjure

Use Clojure REPL

opts = {}

nvim-cmp (optional)

Extend auto completion

opts = function(_, opts)
if type(opts.sources) == "table" then
vim.list_extend(opts.sources, { name = "conjure" })
end
end
+ + + + \ No newline at end of file diff --git a/extras/lang/cmake.html b/extras/lang/cmake.html new file mode 100644 index 0000000000..863d318eee --- /dev/null +++ b/extras/lang/cmake.html @@ -0,0 +1,18 @@ + + + + + +CMake | LazyVim + + + + +
+

CMake

info

You can enable the extra with the :LazyExtras command. +Plugins marked as optional will only be configured if they are installed.

Below you can find a list of included plugins and their default settings.

caution

You don't need to copy the default settings to your config. +They are only shown here for reference.

nvim-treesitter

opts = { ensure_installed = { "cmake" } }

mason.nvim

opts = { ensure_installed = { "cmakelang", "cmakelint" } }

nvim-lspconfig

opts = {
servers = {
neocmake = {},
},
}

cmake-tools.nvim

opts = {}

cmake-tools.nvim

opts = nil

none-ls.nvim (optional)

opts = function(_, opts)
local nls = require("null-ls")
opts.sources = vim.list_extend(opts.sources or {}, {
nls.builtins.diagnostics.cmake_lint,
})
end

nvim-lint (optional)

opts = {
linters_by_ft = {
cmake = { "cmakelint" },
},
}
+ + + + \ No newline at end of file diff --git a/extras/lang/dart.html b/extras/lang/dart.html new file mode 100644 index 0000000000..6ab55f6567 --- /dev/null +++ b/extras/lang/dart.html @@ -0,0 +1,18 @@ + + + + + +Dart | LazyVim + + + + +
+

Dart

info

You can enable the extra with the :LazyExtras command. +Plugins marked as optional will only be configured if they are installed.

Below you can find a list of included plugins and their default settings.

caution

You don't need to copy the default settings to your config. +They are only shown here for reference.

nvim-lspconfig

opts = {
servers = {
dartls = {},
},
}

nvim-treesitter

opts = { ensure_installed = { "dart" } }

conform.nvim

opts = {
formatters_by_ft = {
dart = { "dart_format" },
},
}

neotest-dart

opts = nil

neotest (optional)

opts = {
adapters = {
["neotest-dart"] = {},
},
}
+ + + + \ No newline at end of file diff --git a/extras/lang/docker.html b/extras/lang/docker.html new file mode 100644 index 0000000000..c8b8894215 --- /dev/null +++ b/extras/lang/docker.html @@ -0,0 +1,18 @@ + + + + + +Docker | LazyVim + + + + +
+

Docker

info

You can enable the extra with the :LazyExtras command. +Plugins marked as optional will only be configured if they are installed.

Below you can find a list of included plugins and their default settings.

caution

You don't need to copy the default settings to your config. +They are only shown here for reference.

nvim-treesitter

opts = { ensure_installed = { "dockerfile" } }

mason.nvim

opts = { ensure_installed = { "hadolint" } }

nvim-lspconfig

opts = {
servers = {
dockerls = {},
docker_compose_language_service = {},
},
}

none-ls.nvim (optional)

opts = function(_, opts)
local nls = require("null-ls")
opts.sources = vim.list_extend(opts.sources or {}, {
nls.builtins.diagnostics.hadolint,
})
end

nvim-lint (optional)

opts = {
linters_by_ft = {
dockerfile = { "hadolint" },
},
}
+ + + + \ No newline at end of file diff --git a/extras/lang/dotnet.html b/extras/lang/dotnet.html new file mode 100644 index 0000000000..5671271078 --- /dev/null +++ b/extras/lang/dotnet.html @@ -0,0 +1,18 @@ + + + + + +Dotnet | LazyVim + + + + +
+

Dotnet

info

You can enable the extra with the :LazyExtras command. +Plugins marked as optional will only be configured if they are installed.

Below you can find a list of included plugins and their default settings.

caution

You don't need to copy the default settings to your config. +They are only shown here for reference.

omnisharp-extended-lsp.nvim

opts = nil

nvim-treesitter

opts = { ensure_installed = { "c_sharp", "fsharp" } }

mason.nvim

opts = { ensure_installed = { "csharpier", "netcoredbg", "fantomas" } }

nvim-lspconfig

opts = {
servers = {
fsautocomplete = {},
omnisharp = {
handlers = {
["textDocument/definition"] = function(...)
return require("omnisharp_extended").handler(...)
end,
},
keys = {
{
"gd",
LazyVim.has("telescope.nvim") and function()
require("omnisharp_extended").telescope_lsp_definitions()
end or function()
require("omnisharp_extended").lsp_definitions()
end,
desc = "Goto Definition",
},
},
enable_roslyn_analyzers = true,
organize_imports_on_format = true,
enable_import_completion = true,
},
},
}

neotest-vstest

opts = nil

none-ls.nvim (optional)

opts = function(_, opts)
local nls = require("null-ls")
opts.sources = opts.sources or {}
table.insert(opts.sources, nls.builtins.formatting.csharpier)
table.insert(opts.sources, nls.builtins.formatting.fantomas)
end

conform.nvim (optional)

opts = {
formatters_by_ft = {
cs = { "csharpier" },
fsharp = { "fantomas" },
},
}

nvim-dap (optional)

opts = function()
local dap = require("dap")
if not dap.adapters["netcoredbg"] then
require("dap").adapters["netcoredbg"] = {
type = "executable",
command = vim.fn.exepath("netcoredbg"),
args = { "--interpreter=vscode" },
options = {
detached = false,
},
}
end
for _, lang in ipairs({ "cs", "fsharp", "vb" }) do
if not dap.configurations[lang] then
dap.configurations[lang] = {
{
type = "netcoredbg",
name = "Launch file",
request = "launch",
---@diagnostic disable-next-line: redundant-parameter
program = function()
return vim.fn.input("Path to dll: ", vim.fn.getcwd() .. "/", "file")
end,
cwd = "${workspaceFolder}",
},
}
end
end
end

neotest (optional)

opts = {
adapters = {
["neotest-vstest"] = {
-- Here we can set options for neotest-vstest
},
},
}
+ + + + \ No newline at end of file diff --git a/extras/lang/elixir.html b/extras/lang/elixir.html new file mode 100644 index 0000000000..96e692a611 --- /dev/null +++ b/extras/lang/elixir.html @@ -0,0 +1,18 @@ + + + + + +Elixir | LazyVim + + + + +
+

Elixir

info

You can enable the extra with the :LazyExtras command. +Plugins marked as optional will only be configured if they are installed.

Below you can find a list of included plugins and their default settings.

caution

You don't need to copy the default settings to your config. +They are only shown here for reference.

nvim-lspconfig

opts = {
servers = {
elixirls = {
keys = {
{
"<leader>cp",
function()
local params = vim.lsp.util.make_position_params()
LazyVim.lsp.execute({
command = "manipulatePipes:serverid",
arguments = { "toPipe", params.textDocument.uri, params.position.line, params.position.character },
})
end,
desc = "To Pipe",
},
{
"<leader>cP",
function()
local params = vim.lsp.util.make_position_params()
LazyVim.lsp.execute({
command = "manipulatePipes:serverid",
arguments = { "fromPipe", params.textDocument.uri, params.position.line, params.position.character },
})
end,
desc = "From Pipe",
},
},
},
},
}

nvim-treesitter

opts = function(_, opts)
opts.ensure_installed = opts.ensure_installed or {}
vim.list_extend(opts.ensure_installed, { "elixir", "heex", "eex" })
vim.treesitter.language.register("markdown", "livebook")
end

neotest-elixir

opts = nil

neotest (optional)

opts = {
adapters = {
["neotest-elixir"] = {},
},
}

none-ls.nvim (optional)

opts = function(_, opts)
local nls = require("null-ls")
opts.sources = vim.list_extend(opts.sources or {}, {
nls.builtins.diagnostics.credo.with({
condition = function(utils)
return utils.root_has_file(".credo.exs")
end,
}),
})
end

nvim-lint (optional)

opts = function(_, opts)
opts.linters_by_ft = {
elixir = { "credo" },
}

opts.linters = {
credo = {
condition = function(ctx)
return vim.fs.find({ ".credo.exs" }, { path = ctx.filename, upward = true })[1]
end,
},
}
end

render-markdown.nvim (optional)

opts = nil
+ + + + \ No newline at end of file diff --git a/extras/lang/elm.html b/extras/lang/elm.html new file mode 100644 index 0000000000..b3949404cd --- /dev/null +++ b/extras/lang/elm.html @@ -0,0 +1,18 @@ + + + + + +Elm | LazyVim + + + + +
+

Elm

info

You can enable the extra with the :LazyExtras command. +Plugins marked as optional will only be configured if they are installed.

Below you can find a list of included plugins and their default settings.

caution

You don't need to copy the default settings to your config. +They are only shown here for reference.

nvim-treesitter

opts = { ensure_installed = { "elm" } }

mason.nvim

opts = { ensure_installed = { "elm-format" } }

nvim-lspconfig

opts = {
servers = {
elmls = {},
},
}

conform.nvim (optional)

opts = {
formatters_by_ft = {
elm = { "elm_format" },
},
}
+ + + + \ No newline at end of file diff --git a/extras/lang/ember.html b/extras/lang/ember.html new file mode 100644 index 0000000000..813e48237f --- /dev/null +++ b/extras/lang/ember.html @@ -0,0 +1,18 @@ + + + + + +Ember | LazyVim + + + + +
+

Ember

info

You can enable the extra with the :LazyExtras command. +Plugins marked as optional will only be configured if they are installed.

Below you can find a list of included plugins and their default settings.

caution

You don't need to copy the default settings to your config. +They are only shown here for reference.

nvim-treesitter

opts = { ensure_installed = { "css", "glimmer", "glimmer_javascript", "glimmer_typescript" } }

nvim-lspconfig

opts = {
servers = {
ember = {},
},
}

conform.nvim

opts = function(_, opts)
if LazyVim.has_extra("formatting.prettier") then
opts.formatters_by_ft = opts.formatters_by_ft or {}
opts.formatters_by_ft.glimmer = { "prettier" }
end
end
+ + + + \ No newline at end of file diff --git a/extras/lang/erlang.html b/extras/lang/erlang.html new file mode 100644 index 0000000000..d2d69615f8 --- /dev/null +++ b/extras/lang/erlang.html @@ -0,0 +1,18 @@ + + + + + +Erlang | LazyVim + + + + +
+

Erlang

info

You can enable the extra with the :LazyExtras command. +Plugins marked as optional will only be configured if they are installed.

Below you can find a list of included plugins and their default settings.

caution

You don't need to copy the default settings to your config. +They are only shown here for reference.

nvim-lspconfig

opts = {
servers = {
erlangls = {},
},
}

nvim-treesitter

opts = { ensure_installed = { "erlang" } }
+ + + + \ No newline at end of file diff --git a/extras/lang/git.html b/extras/lang/git.html new file mode 100644 index 0000000000..a5fb64e1ad --- /dev/null +++ b/extras/lang/git.html @@ -0,0 +1,18 @@ + + + + + +Git | LazyVim + + + + +
+

Git

info

You can enable the extra with the :LazyExtras command. +Plugins marked as optional will only be configured if they are installed.

Below you can find a list of included plugins and their default settings.

caution

You don't need to copy the default settings to your config. +They are only shown here for reference.

nvim-treesitter

Treesitter git support

opts = { ensure_installed = { "git_config", "gitcommit", "git_rebase", "gitignore", "gitattributes" } }

cmp-git

opts = {}

nvim-cmp (optional)

opts = function(_, opts)
table.insert(opts.sources, { name = "git" })
end
+ + + + \ No newline at end of file diff --git a/extras/lang/gleam.html b/extras/lang/gleam.html new file mode 100644 index 0000000000..f005196812 --- /dev/null +++ b/extras/lang/gleam.html @@ -0,0 +1,18 @@ + + + + + +Gleam | LazyVim + + + + +
+

Gleam

info

You can enable the extra with the :LazyExtras command. +Plugins marked as optional will only be configured if they are installed.

Below you can find a list of included plugins and their default settings.

caution

You don't need to copy the default settings to your config. +They are only shown here for reference.

nvim-treesitter

opts = { ensure_installed = { "gleam" } }

nvim-lspconfig

opts = {
servers = {
gleam = {},
},
}

conform.nvim (optional)

opts = {
formatters_by_ft = {
gleam = { "gleam" },
},
}
+ + + + \ No newline at end of file diff --git a/extras/lang/go.html b/extras/lang/go.html new file mode 100644 index 0000000000..11f997fb8d --- /dev/null +++ b/extras/lang/go.html @@ -0,0 +1,18 @@ + + + + + +Go | LazyVim + + + + +
+

Go

info

You can enable the extra with the :LazyExtras command. +Plugins marked as optional will only be configured if they are installed.

Below you can find a list of included plugins and their default settings.

caution

You don't need to copy the default settings to your config. +They are only shown here for reference.

nvim-treesitter

opts = { ensure_installed = { "go", "gomod", "gowork", "gosum" } }

nvim-lspconfig

opts = {
servers = {
gopls = {
settings = {
gopls = {
gofumpt = true,
codelenses = {
gc_details = false,
generate = true,
regenerate_cgo = true,
run_govulncheck = true,
test = true,
tidy = true,
upgrade_dependency = true,
vendor = true,
},
hints = {
assignVariableTypes = true,
compositeLiteralFields = true,
compositeLiteralTypes = true,
constantValues = true,
functionTypeParameters = true,
parameterNames = true,
rangeVariableTypes = true,
},
analyses = {
nilness = true,
unusedparams = true,
unusedwrite = true,
useany = true,
},
usePlaceholders = true,
completeUnimported = true,
staticcheck = true,
directoryFilters = { "-.git", "-.vscode", "-.idea", "-.vscode-test", "-node_modules" },
semanticTokens = true,
},
},
},
},
setup = {
gopls = function(_, opts)
-- workaround for gopls not supporting semanticTokensProvider
-- https://github.com/golang/go/issues/54531#issuecomment-1464982242
LazyVim.lsp.on_attach(function(client, _)
if not client.server_capabilities.semanticTokensProvider then
local semantic = client.config.capabilities.textDocument.semanticTokens
client.server_capabilities.semanticTokensProvider = {
full = true,
legend = {
tokenTypes = semantic.tokenTypes,
tokenModifiers = semantic.tokenModifiers,
},
range = true,
}
end
end, "gopls")
-- end workaround
end,
},
}

mason.nvim

Ensure Go tools are installed

opts = { ensure_installed = { "goimports", "gofumpt" } }

mason.nvim

opts = { ensure_installed = { "gomodifytags", "impl" } }

mason.nvim

opts = { ensure_installed = { "golangci-lint" } }

mason.nvim

opts = { ensure_installed = { "delve" } }

nvim-dap-go

opts = {}

neotest-golang

opts = nil

mini.icons

Filetype icons

opts = {
file = {
[".go-version"] = { glyph = "", hl = "MiniIconsBlue" },
},
filetype = {
gotmpl = { glyph = "󰟓", hl = "MiniIconsGrey" },
},
}

none-ls.nvim (optional)

opts = function(_, opts)
local nls = require("null-ls")
opts.sources = vim.list_extend(opts.sources or {}, {
nls.builtins.code_actions.gomodifytags,
nls.builtins.code_actions.impl,
nls.builtins.formatting.goimports,
nls.builtins.formatting.gofumpt,
})
end

nvim-lint (optional)

Add linting

opts = {
linters_by_ft = {
go = { "golangcilint" },
},
}

conform.nvim (optional)

opts = {
formatters_by_ft = {
go = { "goimports", "gofumpt" },
},
}

nvim-dap (optional)

opts = nil

neotest (optional)

opts = {
adapters = {
["neotest-golang"] = {
-- Here we can set options for neotest-golang, e.g.
-- go_test_args = { "-v", "-race", "-count=1", "-timeout=60s" },
dap_go_enabled = true, -- requires leoluz/nvim-dap-go
},
},
}
+ + + + \ No newline at end of file diff --git a/extras/lang/haskell.html b/extras/lang/haskell.html new file mode 100644 index 0000000000..c5089e1352 --- /dev/null +++ b/extras/lang/haskell.html @@ -0,0 +1,19 @@ + + + + + +Haskell | LazyVim + + + + +
+

Haskell

info

You can enable the extra with the :LazyExtras command. +Plugins marked as optional will only be configured if they are installed.

Below you can find a list of included plugins and their default settings.

caution

You don't need to copy the default settings to your config. +They are only shown here for reference.

nvim-treesitter

Add Haskell to treesitter

opts = { ensure_installed = { "haskell" } }

haskell-tools.nvim

opts = nil

mason.nvim

opts = { ensure_installed = { "haskell-language-server" } }

mason.nvim

opts = { ensure_installed = { "haskell-debug-adapter" } }

neotest-haskell

opts = nil

haskell-snippets.nvim

opts = {}

LuaSnip

opts = nil

telescope_hoogle

opts = function()
LazyVim.on_load("telescope.nvim", function()
require("telescope").load_extension("ht")
end)
end

nvim-lspconfig

Make sure lspconfig doesn't start hls, +as it conflicts with haskell-tools

opts = {
setup = {
hls = function()
return true
end,
},
}

nvim-dap (optional)

opts = nil

neotest (optional)

opts = {
adapters = {
["neotest-haskell"] = {},
},
}

telescope.nvim (optional)

opts = nil

conform.nvim (optional)

opts = {
formatters_by_ft = {
haskell = { "fourmolu" },
cabal = { "cabal_fmt" },
},
}

nvim-lint (optional)

opts = {
linters_by_ft = {
haskell = { "hlint" },
},
}
+ + + + \ No newline at end of file diff --git a/extras/lang/helm.html b/extras/lang/helm.html new file mode 100644 index 0000000000..ec66884891 --- /dev/null +++ b/extras/lang/helm.html @@ -0,0 +1,18 @@ + + + + + +Helm | LazyVim + + + + +
+

Helm

info

You can enable the extra with the :LazyExtras command. +Plugins marked as optional will only be configured if they are installed.

Below you can find a list of included plugins and their default settings.

caution

You don't need to copy the default settings to your config. +They are only shown here for reference.

helm-ls.nvim

opts = nil

nvim-treesitter

opts = { ensure_installed = { "helm" } }

nvim-lspconfig

opts = {
servers = {
helm_ls = {},
},
}
+ + + + \ No newline at end of file diff --git a/extras/lang/java.html b/extras/lang/java.html new file mode 100644 index 0000000000..37cf465dbb --- /dev/null +++ b/extras/lang/java.html @@ -0,0 +1,19 @@ + + + + + +Java | LazyVim + + + + +
+

Java

info

You can enable the extra with the :LazyExtras command. +Plugins marked as optional will only be configured if they are installed.

Below you can find a list of included plugins and their default settings.

caution

You don't need to copy the default settings to your config. +They are only shown here for reference.

nvim-treesitter

Add java to treesitter.

opts = { ensure_installed = { "java" } }

mason.nvim

opts = { ensure_installed = { "java-debug-adapter", "java-test" } }

nvim-lspconfig

Configure nvim-lspconfig to install the server automatically via mason, but +defer actually starting it to our configuration of nvim-jtdls below.

opts = {
-- make sure mason installs the server
servers = {
jdtls = {},
},
setup = {
jdtls = function()
return true -- avoid duplicate servers
end,
},
}

nvim-jdtls

Set up nvim-jdtls to attach to java files.

opts = function()
local cmd = { vim.fn.exepath("jdtls") }
if LazyVim.has("mason.nvim") then
local lombok_jar = vim.fn.expand("$MASON/share/jdtls/lombok.jar")
table.insert(cmd, string.format("--jvm-arg=-javaagent:%s", lombok_jar))
end
return {
root_dir = function(path)
return vim.fs.root(path, vim.lsp.config.jdtls.root_markers)
end,

-- How to find the project name for a given root dir.
project_name = function(root_dir)
return root_dir and vim.fs.basename(root_dir)
end,

-- Where are the config and workspace dirs for a project?
jdtls_config_dir = function(project_name)
return vim.fn.stdpath("cache") .. "/jdtls/" .. project_name .. "/config"
end,
jdtls_workspace_dir = function(project_name)
return vim.fn.stdpath("cache") .. "/jdtls/" .. project_name .. "/workspace"
end,

-- How to run jdtls. This can be overridden to a full java command-line
-- if the Python wrapper script doesn't suffice.
cmd = cmd,
full_cmd = function(opts)
local fname = vim.api.nvim_buf_get_name(0)
local root_dir = opts.root_dir(fname)
local project_name = opts.project_name(root_dir)
local cmd = vim.deepcopy(opts.cmd)
if project_name then
vim.list_extend(cmd, {
"-configuration",
opts.jdtls_config_dir(project_name),
"-data",
opts.jdtls_workspace_dir(project_name),
})
end
return cmd
end,

-- These depend on nvim-dap, but can additionally be disabled by setting false here.
dap = { hotcodereplace = "auto", config_overrides = {} },
-- Can set this to false to disable main class scan, which is a performance killer for large project
dap_main = {},
test = true,
settings = {
java = {
inlayHints = {
parameterNames = {
enabled = "all",
},
},
},
},
}
end

which-key.nvim

opts = nil

nvim-dap (optional)

Ensure java debugger and test packages are installed.

opts = function()
-- Simple configuration to attach to remote java debug process
-- Taken directly from https://github.com/mfussenegger/nvim-dap/wiki/Java
local dap = require("dap")
dap.configurations.java = {
{
type = "java",
request = "attach",
name = "Debug (Attach) - Remote",
hostName = "127.0.0.1",
port = 5005,
},
}
end
+ + + + \ No newline at end of file diff --git a/extras/lang/json.html b/extras/lang/json.html new file mode 100644 index 0000000000..c2ea1fc60f --- /dev/null +++ b/extras/lang/json.html @@ -0,0 +1,18 @@ + + + + + +JSON | LazyVim + + + + +
+

JSON

info

You can enable the extra with the :LazyExtras command. +Plugins marked as optional will only be configured if they are installed.

Below you can find a list of included plugins and their default settings.

caution

You don't need to copy the default settings to your config. +They are only shown here for reference.

nvim-treesitter

add json to treesitter

opts = { ensure_installed = { "json5" } }

SchemaStore.nvim

yaml schema support

opts = nil

nvim-lspconfig

correctly setup lspconfig

opts = {
-- make sure mason installs the server
servers = {
jsonls = {
-- lazy-load schemastore when needed
before_init = function(_, new_config)
new_config.settings.json.schemas = new_config.settings.json.schemas or {}
vim.list_extend(new_config.settings.json.schemas, require("schemastore").json.schemas())
end,
settings = {
json = {
format = {
enable = true,
},
validate = { enable = true },
},
},
},
},
}
+ + + + \ No newline at end of file diff --git a/extras/lang/julia.html b/extras/lang/julia.html new file mode 100644 index 0000000000..86bb268755 --- /dev/null +++ b/extras/lang/julia.html @@ -0,0 +1,18 @@ + + + + + +Julia | LazyVim + + + + +
+

Julia

info

You can enable the extra with the :LazyExtras command. +Plugins marked as optional will only be configured if they are installed.

Below you can find a list of included plugins and their default settings.

caution

You don't need to copy the default settings to your config. +They are only shown here for reference.

nvim-treesitter

opts = { ensure_installed = { "julia" } }

nvim-lspconfig

opts = {
servers = {
julials = {
settings = {
-- use the same default settings as the Julia VS Code extension
julia = {
completionmode = "qualify",
lint = { missingrefs = "none" },
},
},
},
},
}

cmp-latex-symbols

opts = nil

cmp-latex-symbols

opts = nil

blink.compat

opts = nil

nvim-cmp (optional)

cmp integration

opts = function(_, opts)
table.insert(opts.sources, {
name = "latex_symbols",
option = {
strategy = 0, -- mixed
},
})
end

blink.cmp (optional)

blink.cmp integration

opts = {
sources = {
compat = { "latex_symbols" },
providers = {
latex_symbols = {
kind = "LatexSymbols",
async = true,
opts = {
strategy = 0, -- mixed
},
},
},
},
}
+ + + + \ No newline at end of file diff --git a/extras/lang/kotlin.html b/extras/lang/kotlin.html new file mode 100644 index 0000000000..92bc776783 --- /dev/null +++ b/extras/lang/kotlin.html @@ -0,0 +1,18 @@ + + + + + +Kotlin | LazyVim + + + + +
+

Kotlin

info

You can enable the extra with the :LazyExtras command. +Plugins marked as optional will only be configured if they are installed.

Below you can find a list of included plugins and their default settings.

caution

You don't need to copy the default settings to your config. +They are only shown here for reference.

mason.nvim

Add packages(linting, debug adapter)

opts = { ensure_installed = { "ktlint" } }

nvim-treesitter

Add syntax highlighting

opts = { ensure_installed = { "kotlin" } }

nvim-lspconfig

Add language server

opts = {
servers = {
kotlin_language_server = {},
},
}

nvim-lint (optional)

Add linting

opts = {
linters_by_ft = { kotlin = { "ktlint" } },
}

conform.nvim (optional)

Add formatting

opts = {
formatters_by_ft = { kotlin = { "ktlint" } },
}

none-ls.nvim (optional)

Add formatting and linting

opts = function(_, opts)
local nls = require("null-ls")
opts.sources = vim.list_extend(opts.sources or {}, {
nls.builtins.formatting.ktlint,
nls.builtins.diagnostics.ktlint,
})
end

nvim-dap (optional)

Add debugger

opts = function()
local dap = require("dap")
if not dap.adapters.kotlin then
dap.adapters.kotlin = {
type = "executable",
command = "kotlin-debug-adapter",
options = { auto_continue_if_many_stopped = false },
}
end

dap.configurations.kotlin = {
{
type = "kotlin",
request = "launch",
name = "This file",
-- may differ, when in doubt, whatever your project structure may be,
-- it has to correspond to the class file located at `build/classes/`
-- and of course you have to build before you debug
mainClass = function()
local root = vim.fs.find("src", { path = vim.uv.cwd(), upward = true, stop = vim.env.HOME })[1] or ""
local fname = vim.api.nvim_buf_get_name(0)
-- src/main/kotlin/websearch/Main.kt -> websearch.MainKt
return fname:gsub(root, ""):gsub("main/kotlin/", ""):gsub(".kt", "Kt"):gsub("/", "."):sub(2, -1)
end,
projectRoot = "${workspaceFolder}",
jsonLogFile = "",
enableJsonLogging = false,
},
{
-- Use this for unit tests
-- First, run
-- ./gradlew --info cleanTest test --debug-jvm
-- then attach the debugger to it
type = "kotlin",
request = "attach",
name = "Attach to debugging session",
port = 5005,
args = {},
projectRoot = vim.fn.getcwd,
hostName = "localhost",
timeout = 2000,
},
}
end
+ + + + \ No newline at end of file diff --git a/extras/lang/lean.html b/extras/lang/lean.html new file mode 100644 index 0000000000..4ab049d028 --- /dev/null +++ b/extras/lang/lean.html @@ -0,0 +1,18 @@ + + + + + +Lean | LazyVim + + + + +
+

Lean

info

You can enable the extra with the :LazyExtras command. +Plugins marked as optional will only be configured if they are installed.

Below you can find a list of included plugins and their default settings.

caution

You don't need to copy the default settings to your config. +They are only shown here for reference.

lean.nvim

opts = nil

plenary.nvim

opts = nil
+ + + + \ No newline at end of file diff --git a/extras/lang/markdown.html b/extras/lang/markdown.html new file mode 100644 index 0000000000..a3eec4f4db --- /dev/null +++ b/extras/lang/markdown.html @@ -0,0 +1,18 @@ + + + + + +Markdown | LazyVim + + + + +
+

Markdown

info

You can enable the extra with the :LazyExtras command. +Plugins marked as optional will only be configured if they are installed.

Below you can find a list of included plugins and their default settings.

caution

You don't need to copy the default settings to your config. +They are only shown here for reference.

mason.nvim

opts = { ensure_installed = { "markdownlint-cli2", "markdown-toc" } }

nvim-lspconfig

opts = {
servers = {
marksman = {},
},
}

markdown-preview.nvim

Markdown preview

opts = {}

markdown-preview.nvim

opts = nil

render-markdown.nvim

opts = {
code = {
sign = false,
width = "block",
right_pad = 1,
},
heading = {
sign = false,
icons = {},
},
checkbox = {
enabled = false,
},
}

conform.nvim (optional)

opts = {
formatters = {
["markdown-toc"] = {
condition = function(_, ctx)
for _, line in ipairs(vim.api.nvim_buf_get_lines(ctx.buf, 0, -1, false)) do
if line:find("<!%-%- toc %-%->") then
return true
end
end
end,
},
["markdownlint-cli2"] = {
condition = function(_, ctx)
local diag = vim.tbl_filter(function(d)
return d.source == "markdownlint"
end, vim.diagnostic.get(ctx.buf))
return #diag > 0
end,
},
},
formatters_by_ft = {
["markdown"] = { "prettier", "markdownlint-cli2", "markdown-toc" },
["markdown.mdx"] = { "prettier", "markdownlint-cli2", "markdown-toc" },
},
}

none-ls.nvim (optional)

opts = function(_, opts)
local nls = require("null-ls")
opts.sources = vim.list_extend(opts.sources or {}, {
nls.builtins.diagnostics.markdownlint_cli2,
})
end

nvim-lint (optional)

opts = {
linters_by_ft = {
markdown = { "markdownlint-cli2" },
},
}
+ + + + \ No newline at end of file diff --git a/extras/lang/nix.html b/extras/lang/nix.html new file mode 100644 index 0000000000..6e683ebabc --- /dev/null +++ b/extras/lang/nix.html @@ -0,0 +1,18 @@ + + + + + +Nix | LazyVim + + + + +
+

Nix

info

You can enable the extra with the :LazyExtras command. +Plugins marked as optional will only be configured if they are installed.

Below you can find a list of included plugins and their default settings.

caution

You don't need to copy the default settings to your config. +They are only shown here for reference.

nvim-treesitter

opts = { ensure_installed = { "nix" } }

nvim-lspconfig

opts = {
servers = {
nil_ls = {},
},
}

conform.nvim (optional)

opts = {
formatters_by_ft = {
nix = { "nixfmt" },
},
}

nvim-lint (optional)

opts = {
linters_by_ft = {
nix = { "statix" },
},
}
+ + + + \ No newline at end of file diff --git a/extras/lang/nushell.html b/extras/lang/nushell.html new file mode 100644 index 0000000000..2a4799908c --- /dev/null +++ b/extras/lang/nushell.html @@ -0,0 +1,18 @@ + + + + + +Nushell | LazyVim + + + + +
+

Nushell

info

You can enable the extra with the :LazyExtras command. +Plugins marked as optional will only be configured if they are installed.

Below you can find a list of included plugins and their default settings.

caution

You don't need to copy the default settings to your config. +They are only shown here for reference.

nvim-lspconfig

opts = {
servers = {
nushell = {},
},
}

nvim-treesitter

opts = { ensure_installed = { "nu" } }
+ + + + \ No newline at end of file diff --git a/extras/lang/ocaml.html b/extras/lang/ocaml.html new file mode 100644 index 0000000000..e4e9d56315 --- /dev/null +++ b/extras/lang/ocaml.html @@ -0,0 +1,18 @@ + + + + + +Ocaml | LazyVim + + + + +
+

Ocaml

info

You can enable the extra with the :LazyExtras command. +Plugins marked as optional will only be configured if they are installed.

Below you can find a list of included plugins and their default settings.

caution

You don't need to copy the default settings to your config. +They are only shown here for reference.

nvim-treesitter

opts = function(_, opts)
if type(opts.ensure_installed) == "table" then
vim.list_extend(opts.ensure_installed, { "ocaml" })
end
end

nvim-lspconfig

opts = {
servers = {
ocamllsp = {
filetypes = {
"ocaml",
"ocaml.menhir",
"ocaml.interface",
"ocaml.ocamllex",
"reason",
"dune",
},
root_markers = {
function(name)
return name:match(".*%.opam$")
end,
"esy.json",
"package.json",
".git",
"dune-project",
"dune-workspace",
function(name)
return name:match(".*%.ml$")
end,
},
},
},
}
+ + + + \ No newline at end of file diff --git a/extras/lang/php.html b/extras/lang/php.html new file mode 100644 index 0000000000..638455ceb7 --- /dev/null +++ b/extras/lang/php.html @@ -0,0 +1,18 @@ + + + + + +PHP | LazyVim + + + + +
+

PHP

info

You can enable the extra with the :LazyExtras command. +Plugins marked as optional will only be configured if they are installed.

Options

Additional options for this extra can be configured in your lua/config/options.lua file:

lua/config/options.lua
-- LSP Server to use for PHP.
-- Set to "intelephense" to use intelephense instead of phpactor.
vim.g.lazyvim_php_lsp = "intelephense"

Below you can find a list of included plugins and their default settings.

caution

You don't need to copy the default settings to your config. +They are only shown here for reference.

nvim-treesitter

opts = { ensure_installed = { "php" } }

nvim-lspconfig

opts = {
servers = {
phpactor = {
enabled = lsp == "phpactor",
},
intelephense = {
enabled = lsp == "intelephense",
},
[lsp] = {
enabled = true,
},
},
}

mason.nvim

opts = {
ensure_installed = {
"phpcs",
"php-cs-fixer",
},
}

neotest-pest

opts = nil

neotest-phpunit

opts = nil

neotest-pest

opts = nil

nvim-dap (optional)

opts = function()
local dap = require("dap")
dap.adapters.php = {
type = "executable",
command = "php-debug-adapter",
args = {},
}
end

none-ls.nvim (optional)

opts = function(_, opts)
local nls = require("null-ls")
opts.sources = opts.sources or {}
table.insert(opts.sources, nls.builtins.formatting.phpcsfixer)
table.insert(opts.sources, nls.builtins.diagnostics.phpcs)
end

nvim-lint (optional)

opts = {
linters_by_ft = {
php = { "phpcs" },
},
}

conform.nvim (optional)

opts = {
formatters_by_ft = {
php = { "php_cs_fixer" },
},
}

neotest (optional)

opts = {
adapters = {
"neotest-pest",
["neotest-phpunit"] = {
root_ignore_files = { "tests/Pest.php" },
},
},
}
+ + + + \ No newline at end of file diff --git a/extras/lang/prisma.html b/extras/lang/prisma.html new file mode 100644 index 0000000000..03247efe83 --- /dev/null +++ b/extras/lang/prisma.html @@ -0,0 +1,18 @@ + + + + + +Prisma | LazyVim + + + + +
+

Prisma

info

You can enable the extra with the :LazyExtras command. +Plugins marked as optional will only be configured if they are installed.

Below you can find a list of included plugins and their default settings.

caution

You don't need to copy the default settings to your config. +They are only shown here for reference.

nvim-treesitter

opts = {
ensure_installed = { "prisma" },
}

nvim-lspconfig

opts = {
servers = {
prismals = {},
},
}
+ + + + \ No newline at end of file diff --git a/extras/lang/python.html b/extras/lang/python.html new file mode 100644 index 0000000000..f0658689d6 --- /dev/null +++ b/extras/lang/python.html @@ -0,0 +1,18 @@ + + + + + +Python | LazyVim + + + + +
+

Python

info

You can enable the extra with the :LazyExtras command. +Plugins marked as optional will only be configured if they are installed.

Options

Additional options for this extra can be configured in your lua/config/options.lua file:

lua/config/options.lua
-- LSP Server to use for Python.
-- Set to "basedpyright" to use basedpyright instead of pyright.
vim.g.lazyvim_python_lsp = "pyright"
-- Set to "ruff_lsp" to use the old LSP implementation version.
vim.g.lazyvim_python_ruff = "ruff"

Below you can find a list of included plugins and their default settings.

caution

You don't need to copy the default settings to your config. +They are only shown here for reference.

nvim-treesitter

opts = { ensure_installed = { "ninja", "rst" } }

nvim-lspconfig

opts = {
servers = {
ruff = {
cmd_env = { RUFF_TRACE = "messages" },
init_options = {
settings = {
logLevel = "error",
},
},
keys = {
{
"<leader>co",
LazyVim.lsp.action["source.organizeImports"],
desc = "Organize Imports",
},
},
},
ruff_lsp = {
keys = {
{
"<leader>co",
LazyVim.lsp.action["source.organizeImports"],
desc = "Organize Imports",
},
},
},
},
setup = {
[ruff] = function()
LazyVim.lsp.on_attach(function(client, _)
-- Disable hover in favor of Pyright
client.server_capabilities.hoverProvider = false
end, ruff)
end,
},
}

nvim-lspconfig

opts = function(_, opts)
local servers = { "pyright", "basedpyright", "ruff", "ruff_lsp", ruff, lsp }
for _, server in ipairs(servers) do
opts.servers[server] = opts.servers[server] or {}
opts.servers[server].enabled = server == lsp or server == ruff
end
end

neotest-python

opts = nil

nvim-dap-python

opts = {}

venv-selector.nvim

opts = {
options = {
notify_user_on_venv_activation = true,
},
}

neotest (optional)

opts = {
adapters = {
["neotest-python"] = {
-- Here you can specify the settings for the adapter, i.e.
-- runner = "pytest",
-- python = ".venv/bin/python",
},
},
}

nvim-dap (optional)

opts = nil

nvim-cmp (optional)

opts = function(_, opts)
opts.auto_brackets = opts.auto_brackets or {}
table.insert(opts.auto_brackets, "python")
end

mason-nvim-dap.nvim (optional)

Don't mess up DAP adapters provided by nvim-dap-python

opts = {
handlers = {
python = function() end,
},
}
+ + + + \ No newline at end of file diff --git a/extras/lang/r.html b/extras/lang/r.html new file mode 100644 index 0000000000..9a64b6c837 --- /dev/null +++ b/extras/lang/r.html @@ -0,0 +1,18 @@ + + + + + +R | LazyVim + + + + +
+

R

info

You can enable the extra with the :LazyExtras command. +Plugins marked as optional will only be configured if they are installed.

Below you can find a list of included plugins and their default settings.

caution

You don't need to copy the default settings to your config. +They are only shown here for reference.

R.nvim

opts = {
-- Create a table with the options to be passed to setup()
R_args = { "--quiet", "--no-save" },
hook = {
on_filetype = function()
-- This function will be called at the FileType event
-- of files supported by R.nvim. This is an
-- opportunity to create mappings local to buffers.
vim.keymap.set("n", "<Enter>", "<Plug>RDSendLine", { buffer = true })
vim.keymap.set("x", "<Enter>", "<Plug>RSendSelection", { buffer = true })

local wk = require("which-key")
wk.add({
buffer = true,
mode = { "n", "x" },
{ "<localleader>a", group = "all" },
{ "<localleader>b", group = "between marks" },
{ "<localleader>c", group = "chunks" },
{ "<localleader>f", group = "functions" },
{ "<localleader>g", group = "goto" },
{ "<localleader>i", group = "install" },
{ "<localleader>k", group = "knit" },
{ "<localleader>p", group = "paragraph" },
{ "<localleader>q", group = "quarto" },
{ "<localleader>r", group = "r general" },
{ "<localleader>s", group = "split or send" },
{ "<localleader>t", group = "terminal" },
{ "<localleader>v", group = "view" },
})
end,
},
pdfviewer = "",
}

cmp-r

opts = nil

nvim-treesitter

opts = { ensure_installed = { "r", "rnoweb" } }

nvim-lspconfig

opts = {
servers = {
r_language_server = {
root_markers = { "DESCRIPTION", "NAMESPACE", ".Rbuildignore" },
},
},
}

neotest-testthat

opts = nil

nvim-cmp (optional)

opts = function(_, opts)
opts.sources = opts.sources or {}
table.insert(opts.sources, { name = "cmp_r" })
end

neotest (optional)

opts = {
adapters = {
["neotest-testthat"] = {},
},
}
+ + + + \ No newline at end of file diff --git a/extras/lang/rego.html b/extras/lang/rego.html new file mode 100644 index 0000000000..637475e614 --- /dev/null +++ b/extras/lang/rego.html @@ -0,0 +1,18 @@ + + + + + +Rego | LazyVim + + + + +
+

Rego

info

You can enable the extra with the :LazyExtras command. +Plugins marked as optional will only be configured if they are installed.

Below you can find a list of included plugins and their default settings.

caution

You don't need to copy the default settings to your config. +They are only shown here for reference.

nvim-lspconfig

opts = {
servers = {
regols = {},
regal = {},
},
}

nvim-treesitter

opts = {
ensure_installed = { "rego" },
}
+ + + + \ No newline at end of file diff --git a/extras/lang/ruby.html b/extras/lang/ruby.html new file mode 100644 index 0000000000..a90607a13e --- /dev/null +++ b/extras/lang/ruby.html @@ -0,0 +1,18 @@ + + + + + +Ruby | LazyVim + + + + +
+

Ruby

info

You can enable the extra with the :LazyExtras command. +Plugins marked as optional will only be configured if they are installed.

Options

Additional options for this extra can be configured in your lua/config/options.lua file:

lua/config/options.lua
-- LSP Server to use for Ruby.
-- Set to "solargraph" to use solargraph instead of ruby_lsp.
vim.g.lazyvim_ruby_lsp = "ruby_lsp"
vim.g.lazyvim_ruby_formatter = "rubocop"

Below you can find a list of included plugins and their default settings.

caution

You don't need to copy the default settings to your config. +They are only shown here for reference.

nvim-treesitter

opts = { ensure_installed = { "ruby" } }

nvim-lspconfig

opts = {
servers = {
ruby_lsp = {
enabled = lsp == "ruby_lsp",
},
solargraph = {
enabled = lsp == "solargraph",
},
rubocop = {
-- If Solargraph and Rubocop are both enabled as an LSP,
-- diagnostics will be duplicated because Solargraph
-- already calls Rubocop if it is installed
enabled = formatter == "rubocop" and lsp ~= "solargraph",
},
standardrb = {
enabled = formatter == "standardrb",
},
},
}

mason.nvim

opts = { ensure_installed = { "erb-formatter", "erb-lint" } }

nvim-dap-ruby

opts = {}

neotest-rspec

opts = nil

nvim-dap (optional)

opts = nil

conform.nvim (optional)

opts = {
formatters_by_ft = {
ruby = { formatter },
eruby = { "erb_format" },
},
}

neotest (optional)

opts = {
adapters = {
["neotest-rspec"] = {
-- NOTE: By default neotest-rspec uses the system wide rspec gem instead of the one through bundler
-- rspec_cmd = function()
-- return vim.tbl_flatten({
-- "bundle",
-- "exec",
-- "rspec",
-- })
-- end,
},
},
}
+ + + + \ No newline at end of file diff --git a/extras/lang/rust.html b/extras/lang/rust.html new file mode 100644 index 0000000000..1865afbc85 --- /dev/null +++ b/extras/lang/rust.html @@ -0,0 +1,18 @@ + + + + + +Rust | LazyVim + + + + +
+

Rust

info

You can enable the extra with the :LazyExtras command. +Plugins marked as optional will only be configured if they are installed.

Options

Additional options for this extra can be configured in your lua/config/options.lua file:

lua/config/options.lua
-- LSP Server to use for Rust.
-- Set to "bacon-ls" to use bacon-ls instead of rust-analyzer.
-- only for diagnostics. The rest of LSP support will still be
-- provided by rust-analyzer.
vim.g.lazyvim_rust_diagnostics = "rust-analyzer"

Below you can find a list of included plugins and their default settings.

caution

You don't need to copy the default settings to your config. +They are only shown here for reference.

crates.nvim

LSP for Cargo.toml

opts = {
completion = {
crates = {
enabled = true,
},
},
lsp = {
enabled = true,
actions = true,
completion = true,
hover = true,
},
}

nvim-treesitter

Add Rust & related to treesitter

opts = { ensure_installed = { "rust", "ron" } }

rustaceanvim

opts = {
server = {
on_attach = function(_, bufnr)
vim.keymap.set("n", "<leader>cR", function()
vim.cmd.RustLsp("codeAction")
end, { desc = "Code Action", buffer = bufnr })
vim.keymap.set("n", "<leader>dr", function()
vim.cmd.RustLsp("debuggables")
end, { desc = "Rust Debuggables", buffer = bufnr })
end,
default_settings = {
-- rust-analyzer language server configuration
["rust-analyzer"] = {
cargo = {
allFeatures = true,
loadOutDirsFromCheck = true,
buildScripts = {
enable = true,
},
},
-- Add clippy lints for Rust if using rust-analyzer
checkOnSave = diagnostics == "rust-analyzer",
-- Enable diagnostics if using rust-analyzer
diagnostics = {
enable = diagnostics == "rust-analyzer",
},
procMacro = {
enable = true,
},
files = {
exclude = {
".direnv",
".git",
".jj",
".github",
".gitlab",
"bin",
"node_modules",
"target",
"venv",
".venv",
},
-- Avoid Roots Scanned hanging, see https://github.com/rust-lang/rust-analyzer/issues/12613#issuecomment-2096386344
watcher = "client",
},
},
},
},
}

nvim-lspconfig

Correctly setup lspconfig for Rust 🚀

opts = {
servers = {
bacon_ls = {
enabled = diagnostics == "bacon-ls",
},
rust_analyzer = { enabled = false },
},
}

mason.nvim (optional)

Ensure Rust debugger is installed

opts = function(_, opts)
opts.ensure_installed = opts.ensure_installed or {}
vim.list_extend(opts.ensure_installed, { "codelldb" })
if diagnostics == "bacon-ls" then
vim.list_extend(opts.ensure_installed, { "bacon" })
end
end

neotest (optional)

opts = {
adapters = {
["rustaceanvim.neotest"] = {},
},
}
+ + + + \ No newline at end of file diff --git a/extras/lang/scala.html b/extras/lang/scala.html new file mode 100644 index 0000000000..1aed47b7cb --- /dev/null +++ b/extras/lang/scala.html @@ -0,0 +1,18 @@ + + + + + +Scala | LazyVim + + + + +
+

Scala

info

You can enable the extra with the :LazyExtras command. +Plugins marked as optional will only be configured if they are installed.

Below you can find a list of included plugins and their default settings.

caution

You don't need to copy the default settings to your config. +They are only shown here for reference.

nvim-treesitter

opts = { ensure_installed = { "scala" } }

nvim-metals

opts = function()
local metals_config = require("metals").bare_config()

metals_config.init_options.statusBarProvider = "off"

metals_config.settings = {
verboseCompilation = true,
showImplicitArguments = true,
showImplicitConversionsAndClasses = true,
showInferredType = true,
superMethodLensesEnabled = true,
excludedPackages = {
"akka.actor.typed.javadsl",
"org.apache.pekko.actor.typed.javadsl",
"com.github.swagger.akka.javadsl",
},
testUserInterface = "Test Explorer",
}

metals_config.on_attach = function(client, bufnr)
-- your on_attach function
require("metals").setup_dap()
end

return metals_config
end

plenary.nvim

opts = nil

nvim-dap (optional)

opts = function()
-- Debug settings
local dap = require("dap")
dap.configurations.scala = {
{
type = "scala",
request = "launch",
name = "RunOrTest",
metals = {
runType = "runOrTestFile",
--args = { "firstArg", "secondArg", "thirdArg" }, -- here just as an example
},
},
{
type = "scala",
request = "launch",
name = "Test Target",
metals = {
runType = "testTarget",
},
},
}
end
+ + + + \ No newline at end of file diff --git a/extras/lang/solidity.html b/extras/lang/solidity.html new file mode 100644 index 0000000000..097a9680df --- /dev/null +++ b/extras/lang/solidity.html @@ -0,0 +1,18 @@ + + + + + +Solidity | LazyVim + + + + +
+

Solidity

info

You can enable the extra with the :LazyExtras command. +Plugins marked as optional will only be configured if they are installed.

Below you can find a list of included plugins and their default settings.

caution

You don't need to copy the default settings to your config. +They are only shown here for reference.

nvim-treesitter

Add Solidity & related to treesitter

opts = { ensure_installed = { "solidity" } }

nvim-lspconfig

Correctly setup lspconfig for Solidity

opts = {
servers = {
solidity_ls = {},
},
}

conform.nvim (optional)

Formatter for Solidity

opts = {
formatters_by_ft = {
solidity = { "forge_fmt" },
},
}
+ + + + \ No newline at end of file diff --git a/extras/lang/sql.html b/extras/lang/sql.html new file mode 100644 index 0000000000..1cc4d8e81c --- /dev/null +++ b/extras/lang/sql.html @@ -0,0 +1,18 @@ + + + + + +Sql | LazyVim + + + + +
+

Sql

info

You can enable the extra with the :LazyExtras command. +Plugins marked as optional will only be configured if they are installed.

Options

Additional options for this extra can be configured in your lua/config/options.lua file:

lua/config/options.lua
-- The setup below will automatically configure connections without the need for manual input each time.

-- Example configuration using dictionary with keys:
-- vim.g.dbs = {
-- dev = "Replace with your database connection URL.",
-- staging = "Replace with your database connection URL.",
-- }
-- or
-- Example configuration using a list of dictionaries:
-- vim.g.dbs = {
-- { name = "dev", url = "Replace with your database connection URL." },
-- { name = "staging", url = "Replace with your database connection URL." },
-- }

-- or
-- Create a `.lazy.lua` file in your project and set your connections like this:
-- ```lua
-- vim.g.dbs = {...}
--
-- return {}
-- ```

-- Alternatively, you can also use other methods to inject your environment variables.

-- Finally, please make sure to add `.lazy.lua` to your `.gitignore` file to protect your secrets.

Below you can find a list of included plugins and their default settings.

caution

You don't need to copy the default settings to your config. +They are only shown here for reference.

vim-dadbod

opts = nil

vim-dadbod-completion

opts = nil

vim-dadbod-ui

opts = nil

vim-dadbod-completion

opts = nil

mason.nvim

Linters & formatters

opts = { ensure_installed = { "sqlfluff" } }

nvim-treesitter (optional)

Treesitter

opts = { ensure_installed = { "sql" } }

edgy.nvim (optional)

Edgy integration

opts = function(_, opts)
opts.right = opts.right or {}
table.insert(opts.right, {
title = "Database",
ft = "dbui",
pinned = true,
width = 0.3,
open = function()
vim.cmd("DBUI")
end,
})

opts.bottom = opts.bottom or {}
table.insert(opts.bottom, {
title = "DB Query Result",
ft = "dbout",
})
end

blink.cmp (optional)

blink.cmp integration

opts = {
sources = {
default = { "dadbod" },
providers = {
dadbod = { name = "Dadbod", module = "vim_dadbod_completion.blink" },
},
},
}

nvim-lint (optional)

opts = function(_, opts)
for _, ft in ipairs(sql_ft) do
opts.linters_by_ft[ft] = opts.linters_by_ft[ft] or {}
table.insert(opts.linters_by_ft[ft], "sqlfluff")
end
end

conform.nvim (optional)

opts = function(_, opts)
opts.formatters.sqlfluff = {
args = { "format", "--dialect=ansi", "-" },
}
for _, ft in ipairs(sql_ft) do
opts.formatters_by_ft[ft] = opts.formatters_by_ft[ft] or {}
table.insert(opts.formatters_by_ft[ft], "sqlfluff")
end
end
+ + + + \ No newline at end of file diff --git a/extras/lang/svelte.html b/extras/lang/svelte.html new file mode 100644 index 0000000000..6e3cbd8113 --- /dev/null +++ b/extras/lang/svelte.html @@ -0,0 +1,18 @@ + + + + + +Svelte | LazyVim + + + + +
+

Svelte

info

You can enable the extra with the :LazyExtras command. +Plugins marked as optional will only be configured if they are installed.

Below you can find a list of included plugins and their default settings.

caution

You don't need to copy the default settings to your config. +They are only shown here for reference.

Includes the following extras

nvim-treesitter

opts = { ensure_installed = { "svelte" } }

nvim-lspconfig

LSP Servers

opts = {
servers = {
svelte = {
keys = {
{
"<leader>co",
LazyVim.lsp.action["source.organizeImports"],
desc = "Organize Imports",
},
},
},
},
}

nvim-lspconfig

Configure tsserver plugin

opts = function(_, opts)
LazyVim.extend(opts.servers.vtsls, "settings.vtsls.tsserver.globalPlugins", {
{
name = "typescript-svelte-plugin",
location = LazyVim.get_pkg_path("svelte-language-server", "/node_modules/typescript-svelte-plugin"),
enableForWorkspaceTypeScriptVersions = true,
},
})
end

conform.nvim

opts = function(_, opts)
if LazyVim.has_extra("formatting.prettier") then
opts.formatters_by_ft = opts.formatters_by_ft or {}
opts.formatters_by_ft.svelte = { "prettier" }
end
end
+ + + + \ No newline at end of file diff --git a/extras/lang/tailwind.html b/extras/lang/tailwind.html new file mode 100644 index 0000000000..839b12ae21 --- /dev/null +++ b/extras/lang/tailwind.html @@ -0,0 +1,18 @@ + + + + + +Tailwind CSS | LazyVim + + + + +
+

Tailwind CSS

info

You can enable the extra with the :LazyExtras command. +Plugins marked as optional will only be configured if they are installed.

Below you can find a list of included plugins and their default settings.

caution

You don't need to copy the default settings to your config. +They are only shown here for reference.

nvim-lspconfig

opts = {
servers = {
tailwindcss = {
-- exclude a filetype from the default_config
filetypes_exclude = { "markdown" },
-- add additional filetypes to the default_config
filetypes_include = {},
-- to fully override the default_config, change the below
-- filetypes = {}

-- additional settings for the server, e.g:
-- tailwindCSS = { includeLanguages = { someLang = "html" } }
-- can be addeded to the settings table and will be merged with
-- this defaults for Phoenix projects
settings = {
tailwindCSS = {
includeLanguages = {
elixir = "html-eex",
eelixir = "html-eex",
heex = "html-eex",
},
},
},
},
},
setup = {
tailwindcss = function(_, opts)
opts.filetypes = opts.filetypes or {}

-- Add default filetypes
vim.list_extend(opts.filetypes, vim.lsp.config.tailwindcss.filetypes)

-- Remove excluded filetypes
--- @param ft string
opts.filetypes = vim.tbl_filter(function(ft)
return not vim.tbl_contains(opts.filetypes_exclude or {}, ft)
end, opts.filetypes)

-- Add additional filetypes
vim.list_extend(opts.filetypes, opts.filetypes_include or {})
end,
},
}

tailwindcss-colorizer-cmp.nvim

opts = {}

nvim-cmp (optional)

opts = function(_, opts)
-- original LazyVim kind icon formatter
local format_kinds = opts.formatting.format
opts.formatting.format = function(entry, item)
format_kinds(entry, item) -- add icons
return require("tailwindcss-colorizer-cmp").formatter(entry, item)
end
end
+ + + + \ No newline at end of file diff --git a/extras/lang/terraform.html b/extras/lang/terraform.html new file mode 100644 index 0000000000..b0a5fe2d8b --- /dev/null +++ b/extras/lang/terraform.html @@ -0,0 +1,18 @@ + + + + + +Terraform | LazyVim + + + + +
+

Terraform

info

You can enable the extra with the :LazyExtras command. +Plugins marked as optional will only be configured if they are installed.

Below you can find a list of included plugins and their default settings.

caution

You don't need to copy the default settings to your config. +They are only shown here for reference.

nvim-treesitter

opts = { ensure_installed = { "terraform", "hcl" } }

nvim-lspconfig

opts = {
servers = {
terraformls = {},
},
}

mason.nvim

ensure terraform tools are installed

opts = { ensure_installed = { "tflint" } }

telescope-terraform-doc.nvim

opts = {}

telescope-terraform.nvim

opts = {}

none-ls.nvim (optional)

opts = function(_, opts)
local null_ls = require("null-ls")
opts.sources = vim.list_extend(opts.sources or {}, {
null_ls.builtins.formatting.packer,
null_ls.builtins.formatting.terraform_fmt,
null_ls.builtins.diagnostics.terraform_validate,
})
end

nvim-lint (optional)

opts = {
linters_by_ft = {
terraform = { "terraform_validate" },
tf = { "terraform_validate" },
},
}

conform.nvim (optional)

opts = {
formatters_by_ft = {
hcl = { "packer_fmt" },
terraform = { "terraform_fmt" },
tf = { "terraform_fmt" },
["terraform-vars"] = { "terraform_fmt" },
},
}

telescope.nvim (optional)

opts = nil
+ + + + \ No newline at end of file diff --git a/extras/lang/tex.html b/extras/lang/tex.html new file mode 100644 index 0000000000..d4872c3eb8 --- /dev/null +++ b/extras/lang/tex.html @@ -0,0 +1,18 @@ + + + + + +Tex | LazyVim + + + + +
+

Tex

info

You can enable the extra with the :LazyExtras command. +Plugins marked as optional will only be configured if they are installed.

Below you can find a list of included plugins and their default settings.

caution

You don't need to copy the default settings to your config. +They are only shown here for reference.

nvim-treesitter

Add BibTeX/LaTeX to treesitter

opts = function(_, opts)
opts.highlight = opts.highlight or {}
if type(opts.ensure_installed) == "table" then
vim.list_extend(opts.ensure_installed, { "bibtex", "latex" })
end
if type(opts.highlight.disable) == "table" then
vim.list_extend(opts.highlight.disable, { "latex" })
else
opts.highlight.disable = { "latex" }
end
end

vimtex

opts = {}

nvim-lspconfig (optional)

Correctly setup lspconfig for LaTeX 🚀

opts = {
servers = {
texlab = {
keys = {
{ "<Leader>K", "<plug>(vimtex-doc-package)", desc = "Vimtex Docs", silent = true },
},
},
},
}
+ + + + \ No newline at end of file diff --git a/extras/lang/thrift.html b/extras/lang/thrift.html new file mode 100644 index 0000000000..bb6c9931bb --- /dev/null +++ b/extras/lang/thrift.html @@ -0,0 +1,18 @@ + + + + + +Thrift | LazyVim + + + + +
+

Thrift

info

You can enable the extra with the :LazyExtras command. +Plugins marked as optional will only be configured if they are installed.

Below you can find a list of included plugins and their default settings.

caution

You don't need to copy the default settings to your config. +They are only shown here for reference.

nvim-treesitter

opts = { ensure_installed = { "thrift" } }

nvim-lspconfig (optional)

opts = {
servers = {
thriftls = {},
},
}
+ + + + \ No newline at end of file diff --git a/extras/lang/toml.html b/extras/lang/toml.html new file mode 100644 index 0000000000..319295e967 --- /dev/null +++ b/extras/lang/toml.html @@ -0,0 +1,18 @@ + + + + + +Toml | LazyVim + + + + +
+

Toml

info

You can enable the extra with the :LazyExtras command. +Plugins marked as optional will only be configured if they are installed.

Below you can find a list of included plugins and their default settings.

caution

You don't need to copy the default settings to your config. +They are only shown here for reference.

nvim-lspconfig

opts = nil
+ + + + \ No newline at end of file diff --git a/extras/lang/twig.html b/extras/lang/twig.html new file mode 100644 index 0000000000..58882fb38b --- /dev/null +++ b/extras/lang/twig.html @@ -0,0 +1,18 @@ + + + + + +Twig | LazyVim + + + + +
+

Twig

info

You can enable the extra with the :LazyExtras command. +Plugins marked as optional will only be configured if they are installed.

Below you can find a list of included plugins and their default settings.

caution

You don't need to copy the default settings to your config. +They are only shown here for reference.

nvim-treesitter

opts = { ensure_installed = { "twig" } }

mason.nvim

opts = {
ensure_installed = {
"twigcs",
"twig-cs-fixer",
},
}

nvim-lspconfig

opts = {
servers = {
twiggy_language_server = {
enabled = true,
},
},
}

none-ls.nvim (optional)

opts = function(_, opts)
local nls = require("null-ls")
opts.sources = opts.sources or {}
table.insert(opts.sources, nls.builtins.diagnostics.twigcs)
-- Twig-CS-Fixer builtin not available in none-ls
end

nvim-lint (optional)

opts = {
linters_by_ft = {
twig = { "twigcs" },
},
}

conform.nvim (optional)

opts = {
formatters_by_ft = {
twig = { "twig-cs-fixer" },
},
}
+ + + + \ No newline at end of file diff --git a/extras/lang/typescript.html b/extras/lang/typescript.html new file mode 100644 index 0000000000..e947a7fe2f --- /dev/null +++ b/extras/lang/typescript.html @@ -0,0 +1,18 @@ + + + + + +Typescript | LazyVim + + + + +
+

Typescript

info

You can enable the extra with the :LazyExtras command. +Plugins marked as optional will only be configured if they are installed.

Below you can find a list of included plugins and their default settings.

caution

You don't need to copy the default settings to your config. +They are only shown here for reference.

nvim-lspconfig

correctly setup lspconfig

opts = {
-- make sure mason installs the server
servers = {
--- @deprecated -- tsserver renamed to ts_ls but not yet released, so keep this for now
--- the proper approach is to check the nvim-lspconfig release version when it's released to determine the server name dynamically
tsserver = {
enabled = false,
},
ts_ls = {
enabled = false,
},
vtsls = {
-- explicitly add default filetypes, so that we can extend
-- them in related extras
filetypes = {
"javascript",
"javascriptreact",
"javascript.jsx",
"typescript",
"typescriptreact",
"typescript.tsx",
},
settings = {
complete_function_calls = true,
vtsls = {
enableMoveToFileCodeAction = true,
autoUseWorkspaceTsdk = true,
experimental = {
maxInlayHintLength = 30,
completion = {
enableServerSideFuzzyMatch = true,
},
},
},
typescript = {
updateImportsOnFileMove = { enabled = "always" },
suggest = {
completeFunctionCalls = true,
},
inlayHints = {
enumMemberValues = { enabled = true },
functionLikeReturnTypes = { enabled = true },
parameterNames = { enabled = "literals" },
parameterTypes = { enabled = true },
propertyDeclarationTypes = { enabled = true },
variableTypes = { enabled = false },
},
},
},
keys = {
{
"gD",
function()
local win = vim.api.nvim_get_current_win()
local params = vim.lsp.util.make_position_params(win, "utf-16")
LazyVim.lsp.execute({
command = "typescript.goToSourceDefinition",
arguments = { params.textDocument.uri, params.position },
open = true,
})
end,
desc = "Goto Source Definition",
},
{
"gR",
function()
LazyVim.lsp.execute({
command = "typescript.findAllFileReferences",
arguments = { vim.uri_from_bufnr(0) },
open = true,
})
end,
desc = "File References",
},
{
"<leader>co",
LazyVim.lsp.action["source.organizeImports"],
desc = "Organize Imports",
},
{
"<leader>cM",
LazyVim.lsp.action["source.addMissingImports.ts"],
desc = "Add missing imports",
},
{
"<leader>cu",
LazyVim.lsp.action["source.removeUnused.ts"],
desc = "Remove unused imports",
},
{
"<leader>cD",
LazyVim.lsp.action["source.fixAll.ts"],
desc = "Fix all diagnostics",
},
{
"<leader>cV",
function()
LazyVim.lsp.execute({ command = "typescript.selectTypeScriptVersion" })
end,
desc = "Select TS workspace version",
},
},
},
},
setup = {
--- @deprecated -- tsserver renamed to ts_ls but not yet released, so keep this for now
--- the proper approach is to check the nvim-lspconfig release version when it's released to determine the server name dynamically
tsserver = function()
-- disable tsserver
return true
end,
ts_ls = function()
-- disable tsserver
return true
end,
vtsls = function(_, opts)
if vim.lsp.config.denols and vim.lsp.config.vtsls then
---@param server string
local resolve = function(server)
local markers, root_dir = vim.lsp.config[server].root_markers, vim.lsp.config[server].root_dir
vim.lsp.config(server, {
root_dir = function(bufnr, on_dir)
local is_deno = vim.fs.root(bufnr, { "deno.json", "deno.jsonc" }) ~= nil
if is_deno == (server == "denols") then
if root_dir then
return root_dir(bufnr, on_dir)
elseif type(markers) == "table" then
local root = vim.fs.root(bufnr, markers)
return root and on_dir(root)
end
end
end,
})
end
resolve("denols")
resolve("vtsls")
end

LazyVim.lsp.on_attach(function(client, buffer)
client.commands["_typescript.moveToFileRefactoring"] = function(command, ctx)
---@type string, string, lsp.Range
local action, uri, range = unpack(command.arguments)

local function move(newf)
client:request("workspace/executeCommand", {
command = command.command,
arguments = { action, uri, range, newf },
})
end

local fname = vim.uri_to_fname(uri)
client:request("workspace/executeCommand", {
command = "typescript.tsserverRequest",
arguments = {
"getMoveToRefactoringFileSuggestions",
{
file = fname,
startLine = range.start.line + 1,
startOffset = range.start.character + 1,
endLine = range["end"].line + 1,
endOffset = range["end"].character + 1,
},
},
}, function(_, result)
---@type string[]
local files = result.body.files
table.insert(files, 1, "Enter new path...")
vim.ui.select(files, {
prompt = "Select move destination:",
format_item = function(f)
return vim.fn.fnamemodify(f, ":~:.")
end,
}, function(f)
if f and f:find("^Enter new path") then
vim.ui.input({
prompt = "Enter move destination:",
default = vim.fn.fnamemodify(fname, ":h") .. "/",
completion = "file",
}, function(newf)
return newf and move(newf)
end)
elseif f then
move(f)
end
end)
end)
end
end, "vtsls")
-- copy typescript settings to javascript
opts.settings.javascript =
vim.tbl_deep_extend("force", {}, opts.settings.typescript, opts.settings.javascript or {})
end,
},
}

mason.nvim

opts = function(_, opts)
opts.ensure_installed = opts.ensure_installed or {}
table.insert(opts.ensure_installed, "js-debug-adapter")
end

mini.icons

Filetype icons

opts = {
file = {
[".eslintrc.js"] = { glyph = "󰱺", hl = "MiniIconsYellow" },
[".node-version"] = { glyph = "", hl = "MiniIconsGreen" },
[".prettierrc"] = { glyph = "", hl = "MiniIconsPurple" },
[".yarnrc.yml"] = { glyph = "", hl = "MiniIconsBlue" },
["eslint.config.js"] = { glyph = "󰱺", hl = "MiniIconsYellow" },
["package.json"] = { glyph = "", hl = "MiniIconsGreen" },
["tsconfig.json"] = { glyph = "", hl = "MiniIconsAzure" },
["tsconfig.build.json"] = { glyph = "", hl = "MiniIconsAzure" },
["yarn.lock"] = { glyph = "", hl = "MiniIconsBlue" },
},
}

nvim-dap (optional)

opts = function()
local dap = require("dap")

for _, adapterType in ipairs({ "node", "chrome", "msedge" }) do
local pwaType = "pwa-" .. adapterType

if not dap.adapters[pwaType] then
dap.adapters[pwaType] = {
type = "server",
host = "localhost",
port = "${port}",
executable = {
command = "js-debug-adapter",
args = { "${port}" },
},
}
end

-- Define adapters without the "pwa-" prefix for VSCode compatibility
if not dap.adapters[adapterType] then
dap.adapters[adapterType] = function(cb, config)
local nativeAdapter = dap.adapters[pwaType]

config.type = pwaType

if type(nativeAdapter) == "function" then
nativeAdapter(cb, config)
else
cb(nativeAdapter)
end
end
end
end

local js_filetypes = { "typescript", "javascript", "typescriptreact", "javascriptreact" }

local vscode = require("dap.ext.vscode")
vscode.type_to_filetypes["node"] = js_filetypes
vscode.type_to_filetypes["pwa-node"] = js_filetypes

for _, language in ipairs(js_filetypes) do
if not dap.configurations[language] then
local runtimeExecutable = nil
if language:find("typescript") then
runtimeExecutable = vim.fn.executable("tsx") == 1 and "tsx" or "ts-node"
end
dap.configurations[language] = {
{
type = "pwa-node",
request = "launch",
name = "Launch file",
program = "${file}",
cwd = "${workspaceFolder}",
sourceMaps = true,
runtimeExecutable = runtimeExecutable,
skipFiles = {
"<node_internals>/**",
"node_modules/**",
},
resolveSourceMapLocations = {
"${workspaceFolder}/**",
"!**/node_modules/**",
},
},
{
type = "pwa-node",
request = "attach",
name = "Attach",
processId = require("dap.utils").pick_process,
cwd = "${workspaceFolder}",
sourceMaps = true,
runtimeExecutable = runtimeExecutable,
skipFiles = {
"<node_internals>/**",
"node_modules/**",
},
resolveSourceMapLocations = {
"${workspaceFolder}/**",
"!**/node_modules/**",
},
},
}
end
end
end

mason-nvim-dap.nvim (optional)

opts = {
-- chrome adapter is deprecated, use js-debug-adapter instead
automatic_installation = { exclude = { "chrome" } },
}
+ + + + \ No newline at end of file diff --git a/extras/lang/typst.html b/extras/lang/typst.html new file mode 100644 index 0000000000..66c4672cb6 --- /dev/null +++ b/extras/lang/typst.html @@ -0,0 +1,18 @@ + + + + + +Typst | LazyVim + + + + +
+

Typst

info

You can enable the extra with the :LazyExtras command. +Plugins marked as optional will only be configured if they are installed.

Below you can find a list of included plugins and their default settings.

caution

You don't need to copy the default settings to your config. +They are only shown here for reference.

nvim-treesitter

opts = {
ensure_installed = { "typst" },
}

nvim-lspconfig

opts = {
servers = {
tinymist = {
keys = {
{
"<leader>cP",
function()
local buf_name = vim.api.nvim_buf_get_name(0)
local file_name = vim.fn.fnamemodify(buf_name, ":t")
LazyVim.lsp.execute({
command = "tinymist.pinMain",
arguments = { buf_name },
})
LazyVim.info("Tinymist: Pinned " .. file_name)
end,
desc = "Pin main file",
},
},
single_file_support = true, -- Fixes LSP attachment in non-Git directories
settings = {
formatterMode = "typstyle",
},
},
},
}

typst-preview.nvim

opts = {
dependencies_bin = {
tinymist = "tinymist",
},
}

ts-comments.nvim

opts = {
lang = {
typst = { "// %s", "/* %s */" },
},
}

conform.nvim (optional)

opts = {
formatters_by_ft = {
typst = { "typstyle", lsp_format = "prefer" },
},
}
+ + + + \ No newline at end of file diff --git a/extras/lang/vue.html b/extras/lang/vue.html new file mode 100644 index 0000000000..459799e975 --- /dev/null +++ b/extras/lang/vue.html @@ -0,0 +1,18 @@ + + + + + +Vue | LazyVim + + + + +
+

Vue

info

You can enable the extra with the :LazyExtras command. +Plugins marked as optional will only be configured if they are installed.

Below you can find a list of included plugins and their default settings.

caution

You don't need to copy the default settings to your config. +They are only shown here for reference.

Includes the following extras

nvim-treesitter

opts = { ensure_installed = { "vue", "css" } }

nvim-lspconfig

Add LSP servers

opts = {
servers = {
vue_ls = {},
vtsls = {},
},
}

nvim-lspconfig

Configure tsserver plugin

opts = function(_, opts)
table.insert(opts.servers.vtsls.filetypes, "vue")
LazyVim.extend(opts.servers.vtsls, "settings.vtsls.tsserver.globalPlugins", {
{
name = "@vue/typescript-plugin",
location = LazyVim.get_pkg_path("vue-language-server", "/node_modules/@vue/language-server"),
languages = { "vue" },
configNamespace = "typescript",
enableForWorkspaceTypeScriptVersions = true,
},
})
end
+ + + + \ No newline at end of file diff --git a/extras/lang/yaml.html b/extras/lang/yaml.html new file mode 100644 index 0000000000..d9d960e6be --- /dev/null +++ b/extras/lang/yaml.html @@ -0,0 +1,18 @@ + + + + + +YAML | LazyVim + + + + +
+

YAML

info

You can enable the extra with the :LazyExtras command. +Plugins marked as optional will only be configured if they are installed.

Below you can find a list of included plugins and their default settings.

caution

You don't need to copy the default settings to your config. +They are only shown here for reference.

SchemaStore.nvim

yaml schema support

opts = nil

nvim-lspconfig

correctly setup lspconfig

opts = {
-- make sure mason installs the server
servers = {
yamlls = {
-- Have to add this for yamlls to understand that we support line folding
capabilities = {
textDocument = {
foldingRange = {
dynamicRegistration = false,
lineFoldingOnly = true,
},
},
},
-- lazy-load schemastore when needed
before_init = function(_, new_config)
new_config.settings.yaml.schemas = vim.tbl_deep_extend(
"force",
new_config.settings.yaml.schemas or {},
require("schemastore").yaml.schemas()
)
end,
settings = {
redhat = { telemetry = { enabled = false } },
yaml = {
keyOrdering = false,
format = {
enable = true,
},
validate = true,
schemaStore = {
-- Must disable built-in schemaStore support to use
-- schemas from SchemaStore.nvim plugin
enable = false,
-- Avoid TypeError: Cannot read properties of undefined (reading 'length')
url = "",
},
},
},
},
},
}
+ + + + \ No newline at end of file diff --git a/extras/lang/zig.html b/extras/lang/zig.html new file mode 100644 index 0000000000..f4623278c7 --- /dev/null +++ b/extras/lang/zig.html @@ -0,0 +1,18 @@ + + + + + +Zig | LazyVim + + + + +
+

Zig

info

You can enable the extra with the :LazyExtras command. +Plugins marked as optional will only be configured if they are installed.

Below you can find a list of included plugins and their default settings.

caution

You don't need to copy the default settings to your config. +They are only shown here for reference.

nvim-treesitter

opts = { ensure_installed = { "zig" } }

nvim-lspconfig

opts = {
servers = {
zls = {},
},
}

neotest-zig

opts = nil

neotest (optional)

opts = {
adapters = {
["neotest-zig"] = {},
},
}
+ + + + \ No newline at end of file diff --git a/extras/linting/eslint.html b/extras/linting/eslint.html new file mode 100644 index 0000000000..900f094385 --- /dev/null +++ b/extras/linting/eslint.html @@ -0,0 +1,18 @@ + + + + + +Eslint | LazyVim + + + + +
+

Eslint

info

You can enable the extra with the :LazyExtras command. +Plugins marked as optional will only be configured if they are installed.

Options

Additional options for this extra can be configured in your lua/config/options.lua file:

lua/config/options.lua
-- Set to false to disable auto format
vim.g.lazyvim_eslint_auto_format = true

Below you can find a list of included plugins and their default settings.

caution

You don't need to copy the default settings to your config. +They are only shown here for reference.

nvim-lspconfig

opts = {
---@type table<string, vim.lsp.Config>
servers = {
eslint = {
settings = {
-- helps eslint find the eslintrc when it's placed in a subfolder instead of the cwd root
workingDirectories = { mode = "auto" },
format = auto_format,
},
},
},
setup = {
eslint = function()
if not auto_format then
return
end

local formatter = LazyVim.lsp.formatter({
name = "eslint: lsp",
primary = false,
priority = 200,
filter = "eslint",
})

-- register the formatter with LazyVim
LazyVim.format.register(formatter)
end,
},
}
+ + + + \ No newline at end of file diff --git a/extras/lsp/neoconf.html b/extras/lsp/neoconf.html new file mode 100644 index 0000000000..de6af47c27 --- /dev/null +++ b/extras/lsp/neoconf.html @@ -0,0 +1,18 @@ + + + + + +Neoconf | LazyVim + + + + +
+

Neoconf

info

You can enable the extra with the :LazyExtras command. +Plugins marked as optional will only be configured if they are installed.

Below you can find a list of included plugins and their default settings.

caution

You don't need to copy the default settings to your config. +They are only shown here for reference.

nvim-lspconfig

opts = nil

neoconf.nvim

opts = {}
+ + + + \ No newline at end of file diff --git a/extras/lsp/none-ls.html b/extras/lsp/none-ls.html new file mode 100644 index 0000000000..6570f52c72 --- /dev/null +++ b/extras/lsp/none-ls.html @@ -0,0 +1,18 @@ + + + + + +none-ls | LazyVim + + + + +
+

none-ls

info

You can enable the extra with the :LazyExtras command. +Plugins marked as optional will only be configured if they are installed.

Below you can find a list of included plugins and their default settings.

caution

You don't need to copy the default settings to your config. +They are only shown here for reference.

none-ls.nvim

none-ls

opts = function(_, opts)
local nls = require("null-ls")
opts.root_dir = opts.root_dir
or require("null-ls.utils").root_pattern(".null-ls-root", ".neoconf.json", "Makefile", ".git")
opts.sources = vim.list_extend(opts.sources or {}, {
nls.builtins.formatting.fish_indent,
nls.builtins.diagnostics.fish,
nls.builtins.formatting.stylua,
nls.builtins.formatting.shfmt,
})
end

mason.nvim

opts = nil
+ + + + \ No newline at end of file diff --git a/extras/test/core.html b/extras/test/core.html new file mode 100644 index 0000000000..30afd66917 --- /dev/null +++ b/extras/test/core.html @@ -0,0 +1,18 @@ + + + + + +Neotest | LazyVim + + + + +
+

Neotest

Please make sure to read the neotest docs on how to add test adapters.

Example on adding the plenary test adapter:

~/.config/nvim/lua/plugins/test.lua
return {
{ "nvim-neotest/neotest-plenary" },
{
"nvim-neotest/neotest",
opts = { adapters = { "neotest-plenary" } },
},
}
info

You can enable the extra with the :LazyExtras command. +Plugins marked as optional will only be configured if they are installed.

Below you can find a list of included plugins and their default settings.

caution

You don't need to copy the default settings to your config. +They are only shown here for reference.

neotest

opts = {
-- Can be a list of adapters like what neotest expects,
-- or a list of adapter names,
-- or a table of adapter names, mapped to adapter configs.
-- The adapter will then be automatically loaded with the config.
adapters = {},
-- Example for loading neotest-golang with a custom config
-- adapters = {
-- ["neotest-golang"] = {
-- go_test_args = { "-v", "-race", "-count=1", "-timeout=60s" },
-- dap_go_enabled = true,
-- },
-- },
status = { virtual_text = true },
output = { open_on_run = true },
quickfix = {
open = function()
if LazyVim.has("trouble.nvim") then
require("trouble").open({ mode = "quickfix", focus = false })
else
vim.cmd("copen")
end
end,
},
}

nvim-nio

opts = nil

nvim-dap (optional)

opts = nil
+ + + + \ No newline at end of file diff --git a/extras/ui/alpha.html b/extras/ui/alpha.html new file mode 100644 index 0000000000..9ee5415993 --- /dev/null +++ b/extras/ui/alpha.html @@ -0,0 +1,19 @@ + + + + + +Alpha | LazyVim + + + + +
+

Alpha

info

You can enable the extra with the :LazyExtras command. +Plugins marked as optional will only be configured if they are installed.

Below you can find a list of included plugins and their default settings.

caution

You don't need to copy the default settings to your config. +They are only shown here for reference.

snacks.nvim

opts = { dashboard = { enabled = false } }

alpha-nvim

Dashboard. This runs when neovim starts, and is what displays +the "LAZYVIM" banner.

opts = function()
local dashboard = require("alpha.themes.dashboard")
local logo = [[
██╗ █████╗ ███████╗██╗ ██╗██╗ ██╗██╗███╗ ███╗ Z
██║ ██╔══██╗╚══███╔╝╚██╗ ██╔╝██║ ██║██║████╗ ████║ Z
██║ ███████║ ███╔╝ ╚████╔╝ ██║ ██║██║██╔████╔██║ z
██║ ██╔══██║ ███╔╝ ╚██╔╝ ╚██╗ ██╔╝██║██║╚██╔╝██║ z
███████╗██║ ██║███████╗ ██║ ╚████╔╝ ██║██║ ╚═╝ ██║
╚══════╝╚═╝ ╚═╝╚══════╝ ╚═╝ ╚═══╝ ╚═╝╚═╝ ╚═╝
]]

dashboard.section.header.val = vim.split(logo, "\n")
-- stylua: ignore
dashboard.section.buttons.val = {
dashboard.button("f", " " .. " Find file", "<cmd> lua LazyVim.pick()() <cr>"),
dashboard.button("n", " " .. " New file", [[<cmd> ene <BAR> startinsert <cr>]]),
dashboard.button("r", " " .. " Recent files", [[<cmd> lua LazyVim.pick("oldfiles")() <cr>]]),
dashboard.button("g", " " .. " Find text", [[<cmd> lua LazyVim.pick("live_grep")() <cr>]]),
dashboard.button("c", " " .. " Config", "<cmd> lua LazyVim.pick.config_files()() <cr>"),
dashboard.button("s", " " .. " Restore Session", [[<cmd> lua require("persistence").load() <cr>]]),
dashboard.button("x", " " .. " Lazy Extras", "<cmd> LazyExtras <cr>"),
dashboard.button("l", "󰒲 " .. " Lazy", "<cmd> Lazy <cr>"),
dashboard.button("q", " " .. " Quit", "<cmd> qa <cr>"),
}
for _, button in ipairs(dashboard.section.buttons.val) do
button.opts.hl = "AlphaButtons"
button.opts.hl_shortcut = "AlphaShortcut"
end
dashboard.section.header.opts.hl = "AlphaHeader"
dashboard.section.buttons.opts.hl = "AlphaButtons"
dashboard.section.footer.opts.hl = "AlphaFooter"
dashboard.opts.layout[1].val = 8
return dashboard
end
+ + + + \ No newline at end of file diff --git a/extras/ui/dashboard-nvim.html b/extras/ui/dashboard-nvim.html new file mode 100644 index 0000000000..926a3690a1 --- /dev/null +++ b/extras/ui/dashboard-nvim.html @@ -0,0 +1,18 @@ + + + + + +Dashboard-nvim | LazyVim + + + + +
+

Dashboard-nvim

info

You can enable the extra with the :LazyExtras command. +Plugins marked as optional will only be configured if they are installed.

Below you can find a list of included plugins and their default settings.

caution

You don't need to copy the default settings to your config. +They are only shown here for reference.

snacks.nvim

opts = { dashboard = { enabled = false } }

dashboard-nvim

opts = function()
local logo = [[
██╗ █████╗ ███████╗██╗ ██╗██╗ ██╗██╗███╗ ███╗ Z
██║ ██╔══██╗╚══███╔╝╚██╗ ██╔╝██║ ██║██║████╗ ████║ Z
██║ ███████║ ███╔╝ ╚████╔╝ ██║ ██║██║██╔████╔██║ z
██║ ██╔══██║ ███╔╝ ╚██╔╝ ╚██╗ ██╔╝██║██║╚██╔╝██║ z
███████╗██║ ██║███████╗ ██║ ╚████╔╝ ██║██║ ╚═╝ ██║
╚══════╝╚═╝ ╚═╝╚══════╝ ╚═╝ ╚═══╝ ╚═╝╚═╝ ╚═╝
]]

logo = string.rep("\n", 8) .. logo .. "\n\n"

local opts = {
theme = "doom",
hide = {
-- this is taken care of by lualine
-- enabling this messes up the actual laststatus setting after loading a file
statusline = false,
},
config = {
header = vim.split(logo, "\n"),
-- stylua: ignore
center = {
{ action = 'lua LazyVim.pick()()', desc = " Find File", icon = " ", key = "f" },
{ action = "ene | startinsert", desc = " New File", icon = " ", key = "n" },
{ action = 'lua LazyVim.pick("oldfiles")()', desc = " Recent Files", icon = " ", key = "r" },
{ action = 'lua LazyVim.pick("live_grep")()', desc = " Find Text", icon = " ", key = "g" },
{ action = 'lua LazyVim.pick.config_files()()', desc = " Config", icon = " ", key = "c" },
{ action = 'lua require("persistence").load()', desc = " Restore Session", icon = " ", key = "s" },
{ action = "LazyExtras", desc = " Lazy Extras", icon = " ", key = "x" },
{ action = "Lazy", desc = " Lazy", icon = "󰒲 ", key = "l" },
{ action = function() vim.api.nvim_input("<cmd>qa<cr>") end, desc = " Quit", icon = " ", key = "q" },
},
footer = function()
local stats = require("lazy").stats()
local ms = (math.floor(stats.startuptime * 100 + 0.5) / 100)
return { "⚡ Neovim loaded " .. stats.loaded .. "/" .. stats.count .. " plugins in " .. ms .. "ms" }
end,
},
}

for _, button in ipairs(opts.config.center) do
button.desc = button.desc .. string.rep(" ", 43 - #button.desc)
button.key_format = " %s"
end

-- open dashboard after closing lazy
if vim.o.filetype == "lazy" then
vim.api.nvim_create_autocmd("WinClosed", {
pattern = tostring(vim.api.nvim_get_current_win()),
once = true,
callback = function()
vim.schedule(function()
vim.api.nvim_exec_autocmds("UIEnter", { group = "dashboard" })
end)
end,
})
end

return opts
end
+ + + + \ No newline at end of file diff --git a/extras/ui/edgy.html b/extras/ui/edgy.html new file mode 100644 index 0000000000..67af55d736 --- /dev/null +++ b/extras/ui/edgy.html @@ -0,0 +1,18 @@ + + + + + +edgy.nvim | LazyVim + + + + +
+

edgy.nvim

info

You can enable the extra with the :LazyExtras command. +Plugins marked as optional will only be configured if they are installed.

Below you can find a list of included plugins and their default settings.

caution

You don't need to copy the default settings to your config. +They are only shown here for reference.

edgy.nvim

Create and display predefined window layouts.

opts = function()
local opts = {
bottom = {
{
ft = "toggleterm",
size = { height = 0.4 },
filter = function(buf, win)
return vim.api.nvim_win_get_config(win).relative == ""
end,
},
{
ft = "noice",
size = { height = 0.4 },
filter = function(buf, win)
return vim.api.nvim_win_get_config(win).relative == ""
end,
},
"Trouble",
{ ft = "qf", title = "QuickFix" },
{
ft = "help",
size = { height = 20 },
-- don't open help files in edgy that we're editing
filter = function(buf)
return vim.bo[buf].buftype == "help"
end,
},
{ title = "Spectre", ft = "spectre_panel", size = { height = 0.4 } },
{ title = "Neotest Output", ft = "neotest-output-panel", size = { height = 15 } },
},
left = {
{ title = "Neotest Summary", ft = "neotest-summary" },
-- "neo-tree",
},
right = {
{ title = "Grug Far", ft = "grug-far", size = { width = 0.4 } },
},
keys = {
-- increase width
["<c-Right>"] = function(win)
win:resize("width", 2)
end,
-- decrease width
["<c-Left>"] = function(win)
win:resize("width", -2)
end,
-- increase height
["<c-Up>"] = function(win)
win:resize("height", 2)
end,
-- decrease height
["<c-Down>"] = function(win)
win:resize("height", -2)
end,
},
}

if LazyVim.has("neo-tree.nvim") then
local pos = {
filesystem = "left",
buffers = "top",
git_status = "right",
document_symbols = "bottom",
diagnostics = "bottom",
}
local sources = LazyVim.opts("neo-tree.nvim").sources or {}
for i, v in ipairs(sources) do
table.insert(opts.left, i, {
title = "Neo-Tree " .. v:gsub("_", " "):gsub("^%l", string.upper),
ft = "neo-tree",
filter = function(buf)
return vim.b[buf].neo_tree_source == v
end,
pinned = true,
open = function()
vim.cmd(("Neotree show position=%s %s dir=%s"):format(pos[v] or "bottom", v, LazyVim.root()))
end,
})
end
end

-- trouble
for _, pos in ipairs({ "top", "bottom", "left", "right" }) do
opts[pos] = opts[pos] or {}
table.insert(opts[pos], {
ft = "trouble",
filter = function(_buf, win)
return vim.w[win].trouble
and vim.w[win].trouble.position == pos
and vim.w[win].trouble.type == "split"
and vim.w[win].trouble.relative == "editor"
and not vim.w[win].trouble_preview
end,
})
end

-- snacks terminal
for _, pos in ipairs({ "top", "bottom", "left", "right" }) do
opts[pos] = opts[pos] or {}
table.insert(opts[pos], {
ft = "snacks_terminal",
size = { height = 0.4 },
title = "%{b:snacks_terminal.id}: %{b:term_title}",
filter = function(_buf, win)
return vim.w[win].snacks_win
and vim.w[win].snacks_win.position == pos
and vim.w[win].snacks_win.relative == "editor"
and not vim.w[win].trouble_preview
end,
})
end
return opts
end

telescope.nvim (optional)

use edgy's selection window

opts = {
defaults = {
get_selection_window = function()
require("edgy").goto_main()
return 0
end,
},
}

neo-tree.nvim (optional)

prevent neo-tree from opening files in edgy windows

opts = function(_, opts)
opts.open_files_do_not_replace_types = opts.open_files_do_not_replace_types
or { "terminal", "Trouble", "qf", "Outline", "trouble" }
table.insert(opts.open_files_do_not_replace_types, "edgy")
end

bufferline.nvim (optional)

Fix bufferline offsets when edgy is loaded

opts = function()
local Offset = require("bufferline.offset")
if not Offset.edgy then
local get = Offset.get
Offset.get = function()
if package.loaded.edgy then
local old_offset = get()
local layout = require("edgy.config").layout
local ret = { left = "", left_size = 0, right = "", right_size = 0 }
for _, pos in ipairs({ "left", "right" }) do
local sb = layout[pos]
local title = " Sidebar" .. string.rep(" ", sb.bounds.width - 8)
if sb and #sb.wins > 0 then
ret[pos] = old_offset[pos .. "_size"] > 0 and old_offset[pos]
or pos == "left" and ("%#Bold#" .. title .. "%*" .. "%#BufferLineOffsetSeparator#│%*")
or pos == "right" and ("%#BufferLineOffsetSeparator#│%*" .. "%#Bold#" .. title .. "%*")
ret[pos .. "_size"] = old_offset[pos .. "_size"] > 0 and old_offset[pos .. "_size"] or sb.bounds.width
end
end
ret.total_size = ret.left_size + ret.right_size
if ret.total_size > 0 then
return ret
end
end
return get()
end
Offset.edgy = true
end
end
+ + + + \ No newline at end of file diff --git a/extras/ui/indent-blankline.html b/extras/ui/indent-blankline.html new file mode 100644 index 0000000000..4cf2b490eb --- /dev/null +++ b/extras/ui/indent-blankline.html @@ -0,0 +1,18 @@ + + + + + +Indent-blankline | LazyVim + + + + +
+

Indent-blankline

info

You can enable the extra with the :LazyExtras command. +Plugins marked as optional will only be configured if they are installed.

Below you can find a list of included plugins and their default settings.

caution

You don't need to copy the default settings to your config. +They are only shown here for reference.

snacks.nvim

disable snacks indent when indent-blankline is enabled

opts = {
indent = { enabled = false },
}

indent-blankline.nvim

opts = function()
Snacks.toggle({
name = "Indention Guides",
get = function()
return require("ibl.config").get_config(0).enabled
end,
set = function(state)
require("ibl").setup_buffer(0, { enabled = state })
end,
}):map("<leader>ug")

return {
indent = {
char = "│",
tab_char = "│",
},
scope = { show_start = false, show_end = false },
exclude = {
filetypes = {
"Trouble",
"alpha",
"dashboard",
"help",
"lazy",
"mason",
"neo-tree",
"notify",
"snacks_dashboard",
"snacks_notif",
"snacks_terminal",
"snacks_win",
"toggleterm",
"trouble",
},
},
}
end
+ + + + \ No newline at end of file diff --git a/extras/ui/mini-animate.html b/extras/ui/mini-animate.html new file mode 100644 index 0000000000..ff4405588d --- /dev/null +++ b/extras/ui/mini-animate.html @@ -0,0 +1,19 @@ + + + + + +Mini Animate | LazyVim + + + + +
+

Mini Animate

info

You can enable the extra with the :LazyExtras command. +Plugins marked as optional will only be configured if they are installed.

Below you can find a list of included plugins and their default settings.

caution

You don't need to copy the default settings to your config. +They are only shown here for reference.

snacks.nvim

disable snacks scroll when animate is enabled

opts = {
scroll = { enabled = false },
}

mini.animate

Animates many common Neovim actions, like scrolling, +moving the cursor, and resizing windows.

opts = function(_, opts)
-- don't use animate when scrolling with the mouse
local mouse_scrolled = false
for _, scroll in ipairs({ "Up", "Down" }) do
local key = "<ScrollWheel" .. scroll .. ">"
vim.keymap.set({ "", "i" }, key, function()
mouse_scrolled = true
return key
end, { expr = true })
end

vim.api.nvim_create_autocmd("FileType", {
pattern = "grug-far",
callback = function()
vim.b.minianimate_disable = true
end,
})

-- schedule setting the mapping to override the default mapping from `keymaps.lua`
-- seems `keymaps.lua` is the last event to execute on `VeryLazy` and it overwrites it
vim.schedule(function()
Snacks.toggle({
name = "Mini Animate",
get = function()
return not vim.g.minianimate_disable
end,
set = function(state)
vim.g.minianimate_disable = not state
end,
}):map("<leader>ua")
end)

local animate = require("mini.animate")
return vim.tbl_deep_extend("force", opts, {
resize = {
timing = animate.gen_timing.linear({ duration = 50, unit = "total" }),
},
scroll = {
timing = animate.gen_timing.linear({ duration = 150, unit = "total" }),
subscroll = animate.gen_subscroll.equal({
predicate = function(total_scroll)
if mouse_scrolled then
mouse_scrolled = false
return false
end
return total_scroll > 1
end,
}),
},
})
end
+ + + + \ No newline at end of file diff --git a/extras/ui/mini-indentscope.html b/extras/ui/mini-indentscope.html new file mode 100644 index 0000000000..d63d92a198 --- /dev/null +++ b/extras/ui/mini-indentscope.html @@ -0,0 +1,20 @@ + + + + + +Mini-indentscope | LazyVim + + + + +
+

Mini-indentscope

info

You can enable the extra with the :LazyExtras command. +Plugins marked as optional will only be configured if they are installed.

Below you can find a list of included plugins and their default settings.

caution

You don't need to copy the default settings to your config. +They are only shown here for reference.

mini.indentscope

Active indent guide and indent text objects. When you're browsing +code, this highlights the current level of indentation, and animates +the highlighting.

opts = {
-- symbol = "▏",
symbol = "│",
options = { try_as_border = true },
}

snacks.nvim

disable snacks scroll when mini-indentscope is enabled

opts = {
indent = {
scope = { enabled = false },
},
}

indent-blankline.nvim (optional)

disable indent-blankline scope when mini-indentscope is enabled

opts = {
scope = { enabled = false },
}
+ + + + \ No newline at end of file diff --git a/extras/ui/mini-starter.html b/extras/ui/mini-starter.html new file mode 100644 index 0000000000..0059e25734 --- /dev/null +++ b/extras/ui/mini-starter.html @@ -0,0 +1,18 @@ + + + + + +Mini Starter | LazyVim + + + + +
+

Mini Starter

info

You can enable the extra with the :LazyExtras command. +Plugins marked as optional will only be configured if they are installed.

Below you can find a list of included plugins and their default settings.

caution

You don't need to copy the default settings to your config. +They are only shown here for reference.

snacks.nvim

disable alpha

opts = { dashboard = { enabled = false } }

mini.starter

enable mini.starter

opts = function()
local logo = table.concat({
" ██╗ █████╗ ███████╗██╗ ██╗██╗ ██╗██╗███╗ ███╗ Z",
" ██║ ██╔══██╗╚══███╔╝╚██╗ ██╔╝██║ ██║██║████╗ ████║ Z ",
" ██║ ███████║ ███╔╝ ╚████╔╝ ██║ ██║██║██╔████╔██║ z ",
" ██║ ██╔══██║ ███╔╝ ╚██╔╝ ╚██╗ ██╔╝██║██║╚██╔╝██║ z ",
" ███████╗██║ ██║███████╗ ██║ ╚████╔╝ ██║██║ ╚═╝ ██║ ",
" ╚══════╝╚═╝ ╚═╝╚══════╝ ╚═╝ ╚═══╝ ╚═╝╚═╝ ╚═╝ ",
}, "\n")
local pad = string.rep(" ", 22)
local new_section = function(name, action, section)
return { name = name, action = action, section = pad .. section }
end

local starter = require("mini.starter")
--stylua: ignore
local config = {
evaluate_single = true,
header = logo,
items = {
new_section("Find file", LazyVim.pick(), "Telescope"),
new_section("New file", "ene | startinsert", "Built-in"),
new_section("Recent files", LazyVim.pick("oldfiles"), "Telescope"),
new_section("Find text", LazyVim.pick("live_grep"), "Telescope"),
new_section("Config", LazyVim.pick.config_files(), "Config"),
new_section("Restore session", [[lua require("persistence").load()]], "Session"),
new_section("Lazy Extras", "LazyExtras", "Config"),
new_section("Lazy", "Lazy", "Config"),
new_section("Quit", "qa", "Built-in"),
},
content_hooks = {
starter.gen_hook.adding_bullet(pad .. "░ ", false),
starter.gen_hook.aligning("center", "center"),
},
}
return config
end
+ + + + \ No newline at end of file diff --git a/extras/ui/smear-cursor.html b/extras/ui/smear-cursor.html new file mode 100644 index 0000000000..267b538ba1 --- /dev/null +++ b/extras/ui/smear-cursor.html @@ -0,0 +1,18 @@ + + + + + +Smear-cursor | LazyVim + + + + +
+

Smear-cursor

info

You can enable the extra with the :LazyExtras command. +Plugins marked as optional will only be configured if they are installed.

Below you can find a list of included plugins and their default settings.

caution

You don't need to copy the default settings to your config. +They are only shown here for reference.

smear-cursor.nvim

opts = {
hide_target_hack = true,
cursor_color = "none",
}

mini.animate (optional)

disable mini.animate cursor

opts = {
cursor = { enable = false },
}
+ + + + \ No newline at end of file diff --git a/extras/ui/treesitter-context.html b/extras/ui/treesitter-context.html new file mode 100644 index 0000000000..bb05c9c965 --- /dev/null +++ b/extras/ui/treesitter-context.html @@ -0,0 +1,18 @@ + + + + + +Treesitter-context | LazyVim + + + + +
+

Treesitter-context

info

You can enable the extra with the :LazyExtras command. +Plugins marked as optional will only be configured if they are installed.

Below you can find a list of included plugins and their default settings.

caution

You don't need to copy the default settings to your config. +They are only shown here for reference.

nvim-treesitter-context

opts = function()
local tsc = require("treesitter-context")
Snacks.toggle({
name = "Treesitter Context",
get = tsc.enabled,
set = function(state)
if state then
tsc.enable()
else
tsc.disable()
end
end,
}):map("<leader>ut")
return { mode = "cursor", max_lines = 3 }
end
+ + + + \ No newline at end of file diff --git a/extras/util/chezmoi.html b/extras/util/chezmoi.html new file mode 100644 index 0000000000..f8c2fd7322 --- /dev/null +++ b/extras/util/chezmoi.html @@ -0,0 +1,18 @@ + + + + + +Chezmoi | LazyVim + + + + +
+

Chezmoi

info

You can enable the extra with the :LazyExtras command. +Plugins marked as optional will only be configured if they are installed.

Below you can find a list of included plugins and their default settings.

caution

You don't need to copy the default settings to your config. +They are only shown here for reference.

chezmoi.vim

opts = nil

chezmoi.nvim

opts = {
edit = {
watch = false,
force = false,
},
notification = {
on_open = true,
on_apply = true,
on_watch = false,
},
telescope = {
select = { "<CR>" },
},
}

mini.icons

Filetype icons

opts = {
file = {
[".chezmoiignore"] = { glyph = "", hl = "MiniIconsGrey" },
[".chezmoiremove"] = { glyph = "", hl = "MiniIconsGrey" },
[".chezmoiroot"] = { glyph = "", hl = "MiniIconsGrey" },
[".chezmoiversion"] = { glyph = "", hl = "MiniIconsGrey" },
["bash.tmpl"] = { glyph = "", hl = "MiniIconsGrey" },
["json.tmpl"] = { glyph = "", hl = "MiniIconsGrey" },
["ps1.tmpl"] = { glyph = "󰨊", hl = "MiniIconsGrey" },
["sh.tmpl"] = { glyph = "", hl = "MiniIconsGrey" },
["toml.tmpl"] = { glyph = "", hl = "MiniIconsGrey" },
["yaml.tmpl"] = { glyph = "", hl = "MiniIconsGrey" },
["zsh.tmpl"] = { glyph = "", hl = "MiniIconsGrey" },
},
}

dashboard-nvim (optional)

opts = function(_, opts)
local projects = {
action = pick_chezmoi,
desc = " Config",
icon = "",
key = "c",
}

projects.desc = projects.desc .. string.rep(" ", 43 - #projects.desc)
projects.key_format = " %s"

-- remove lazyvim config property
for i = #opts.config.center, 1, -1 do
if opts.config.center[i].key == "c" then
table.remove(opts.config.center, i)
end
end

table.insert(opts.config.center, 5, projects)
end

snacks.nvim (optional)

opts = function(_, opts)
local chezmoi_entry = {
icon = " ",
key = "c",
desc = "Config",
action = pick_chezmoi,
}
local config_index
for i = #opts.dashboard.preset.keys, 1, -1 do
if opts.dashboard.preset.keys[i].key == "c" then
table.remove(opts.dashboard.preset.keys, i)
config_index = i
break
end
end
table.insert(opts.dashboard.preset.keys, config_index, chezmoi_entry)
end
+ + + + \ No newline at end of file diff --git a/extras/util/dot.html b/extras/util/dot.html new file mode 100644 index 0000000000..7e8a2a7352 --- /dev/null +++ b/extras/util/dot.html @@ -0,0 +1,18 @@ + + + + + +Dot Files | LazyVim + + + + +
+

Dot Files

info

You can enable the extra with the :LazyExtras command. +Plugins marked as optional will only be configured if they are installed.

Below you can find a list of included plugins and their default settings.

caution

You don't need to copy the default settings to your config. +They are only shown here for reference.

nvim-lspconfig

opts = {
servers = {
bashls = {},
},
}

mason.nvim

opts = { ensure_installed = { "shellcheck" } }

nvim-treesitter

add some stuff to treesitter

opts = function(_, opts)
local function add(lang)
if type(opts.ensure_installed) == "table" then
table.insert(opts.ensure_installed, lang)
end
end

vim.filetype.add({
extension = { rasi = "rasi", rofi = "rasi", wofi = "rasi" },
filename = {
["vifmrc"] = "vim",
},
pattern = {
[".*/waybar/config"] = "jsonc",
[".*/mako/config"] = "dosini",
[".*/kitty/.+%.conf"] = "kitty",
[".*/hypr/.+%.conf"] = "hyprlang",
["%.env%.[%w_.-]+"] = "sh",
},
})
vim.treesitter.language.register("bash", "kitty")

add("git_config")

if have("hypr") then
add("hyprlang")
end

if have("fish") then
add("fish")
end

if have("rofi") or have("wofi") then
add("rasi")
end
end
+ + + + \ No newline at end of file diff --git a/extras/util/gh.html b/extras/util/gh.html new file mode 100644 index 0000000000..2d0041b915 --- /dev/null +++ b/extras/util/gh.html @@ -0,0 +1,18 @@ + + + + + +Gh | LazyVim + + + + +
+

Gh

info

You can enable the extra with the :LazyExtras command. +Plugins marked as optional will only be configured if they are installed.

Below you can find a list of included plugins and their default settings.

caution

You don't need to copy the default settings to your config. +They are only shown here for reference.

Includes the following extras

litee.nvim

opts = nil

gh.nvim

gh.nvim

opts = {}
+ + + + \ No newline at end of file diff --git a/extras/util/gitui.html b/extras/util/gitui.html new file mode 100644 index 0000000000..efe8aa059c --- /dev/null +++ b/extras/util/gitui.html @@ -0,0 +1,18 @@ + + + + + +Gitui | LazyVim + + + + +
+

Gitui

info

You can enable the extra with the :LazyExtras command. +Plugins marked as optional will only be configured if they are installed.

Below you can find a list of included plugins and their default settings.

caution

You don't need to copy the default settings to your config. +They are only shown here for reference.

mason.nvim

Ensure GitUI tool is installed

opts = { ensure_installed = { "gitui" } }
+ + + + \ No newline at end of file diff --git a/extras/util/mini-hipatterns.html b/extras/util/mini-hipatterns.html new file mode 100644 index 0000000000..480c74ee16 --- /dev/null +++ b/extras/util/mini-hipatterns.html @@ -0,0 +1,18 @@ + + + + + +Mini Hipatterns | LazyVim + + + + +
+

Mini Hipatterns

info

You can enable the extra with the :LazyExtras command. +Plugins marked as optional will only be configured if they are installed.

Below you can find a list of included plugins and their default settings.

caution

You don't need to copy the default settings to your config. +They are only shown here for reference.

mini.hipatterns

opts = function()
local hi = require("mini.hipatterns")
return {
-- custom LazyVim option to enable the tailwind integration
tailwind = {
enabled = true,
ft = {
"astro",
"css",
"heex",
"html",
"html-eex",
"javascript",
"javascriptreact",
"rust",
"svelte",
"typescript",
"typescriptreact",
"vue",
},
-- full: the whole css class will be highlighted
-- compact: only the color will be highlighted
style = "full",
},
highlighters = {
hex_color = hi.gen_highlighter.hex_color({ priority = 2000 }),
shorthand = {
pattern = "()#%x%x%x()%f[^%x%w]",
group = function(_, _, data)
---@type string
local match = data.full_match
local r, g, b = match:sub(2, 2), match:sub(3, 3), match:sub(4, 4)
local hex_color = "#" .. r .. r .. g .. g .. b .. b

return MiniHipatterns.compute_hex_color_group(hex_color, "bg")
end,
extmark_opts = { priority = 2000 },
},
},
}
end
+ + + + \ No newline at end of file diff --git a/extras/util/octo.html b/extras/util/octo.html new file mode 100644 index 0000000000..592ea1faac --- /dev/null +++ b/extras/util/octo.html @@ -0,0 +1,18 @@ + + + + + +Octo | LazyVim + + + + +
+

Octo

info

You can enable the extra with the :LazyExtras command. +Plugins marked as optional will only be configured if they are installed.

Below you can find a list of included plugins and their default settings.

caution

You don't need to copy the default settings to your config. +They are only shown here for reference.

Includes the following extras

octo.nvim

Octo

opts = {
enable_builtin = true,
default_to_projects_v2 = true,
default_merge_method = "squash",
picker = "telescope",
}

octo.nvim

Octo Picker

opts = function(_, opts)
vim.treesitter.language.register("markdown", "octo")
if LazyVim.has_extra("editor.telescope") then
opts.picker = "telescope"
elseif LazyVim.has_extra("editor.fzf") then
opts.picker = "fzf-lua"
elseif LazyVim.has_extra("editor.snacks_picker") then
opts.picker = "snacks"
else
LazyVim.error("`octo.nvim` requires `telescope.nvim` or `fzf-lua` or `snacks.nvim`")
end

-- Keep some empty windows in sessions
vim.api.nvim_create_autocmd("ExitPre", {
group = vim.api.nvim_create_augroup("octo_exit_pre", { clear = true }),
callback = function(ev)
local keep = { "octo" }
for _, win in ipairs(vim.api.nvim_list_wins()) do
local buf = vim.api.nvim_win_get_buf(win)
if vim.tbl_contains(keep, vim.bo[buf].filetype) then
vim.bo[buf].buftype = "" -- set buftype to empty to keep the window
end
end
end,
})
end
+ + + + \ No newline at end of file diff --git a/extras/util/project.html b/extras/util/project.html new file mode 100644 index 0000000000..d0ed831b7e --- /dev/null +++ b/extras/util/project.html @@ -0,0 +1,18 @@ + + + + + +Project | LazyVim + + + + +
+

Project

info

You can enable the extra with the :LazyExtras command. +Plugins marked as optional will only be configured if they are installed.

Below you can find a list of included plugins and their default settings.

caution

You don't need to copy the default settings to your config. +They are only shown here for reference.

project.nvim

opts = {
manual_mode = true,
}

telescope.nvim (optional)

opts = nil

fzf-lua (optional)

opts = nil

alpha-nvim (optional)

opts = function(_, dashboard)
local button = dashboard.button("P", " " .. " Projects (util.project)", pick)
button.opts.hl = "AlphaButtons"
button.opts.hl_shortcut = "AlphaShortcut"
table.insert(dashboard.section.buttons.val, 4, button)
end

mini.starter (optional)

opts = function(_, opts)
local items = {
{
name = "Projects (util.project)",
action = pick,
section = string.rep(" ", 22) .. "Telescope",
},
}
vim.list_extend(opts.items, items)
end

dashboard-nvim (optional)

opts = function(_, opts)
if not vim.tbl_get(opts, "config", "center") then
return
end
local projects = {
action = pick,
desc = " Projects (util.project)",
icon = " ",
key = "P",
}

projects.desc = projects.desc .. string.rep(" ", 43 - #projects.desc)
projects.key_format = " %s"

table.insert(opts.config.center, 3, projects)
end

snacks.nvim (optional)

opts = function(_, opts)
table.insert(opts.dashboard.preset.keys, 3, {
action = pick,
desc = "Projects (util.project)",
icon = " ",
key = "P",
})
end
+ + + + \ No newline at end of file diff --git a/extras/util/rest.html b/extras/util/rest.html new file mode 100644 index 0000000000..099a1d869e --- /dev/null +++ b/extras/util/rest.html @@ -0,0 +1,18 @@ + + + + + +Rest | LazyVim + + + + +
+

Rest

info

You can enable the extra with the :LazyExtras command. +Plugins marked as optional will only be configured if they are installed.

Below you can find a list of included plugins and their default settings.

caution

You don't need to copy the default settings to your config. +They are only shown here for reference.

kulala.nvim

opts = {}

nvim-treesitter

opts = {
ensure_installed = { "http", "graphql" },
}
+ + + + \ No newline at end of file diff --git a/extras/util/startuptime.html b/extras/util/startuptime.html new file mode 100644 index 0000000000..f2d14c2fad --- /dev/null +++ b/extras/util/startuptime.html @@ -0,0 +1,18 @@ + + + + + +Startuptime | LazyVim + + + + +
+

Startuptime

info

You can enable the extra with the :LazyExtras command. +Plugins marked as optional will only be configured if they are installed.

Below you can find a list of included plugins and their default settings.

caution

You don't need to copy the default settings to your config. +They are only shown here for reference.

vim-startuptime

opts = {}
+ + + + \ No newline at end of file diff --git a/extras/vscode.html b/extras/vscode.html new file mode 100644 index 0000000000..4cb7c6eb6f --- /dev/null +++ b/extras/vscode.html @@ -0,0 +1,19 @@ + + + + + +VS Code | LazyVim + + + + +
+

VS Code

This extra will only load when vim.g.vscode is set.

Enabled plugins:

{
"dial.nvim",
"flit.nvim",
"lazy.nvim",
"leap.nvim",
"mini.ai",
"mini.comment",
"mini.move",
"mini.pairs",
"mini.surround",
"nvim-treesitter",
"nvim-treesitter-textobjects",
"nvim-ts-context-commentstring",
"vim-repeat",
"yanky.nvim",
}

Some additional keymaps are added similar to the ones in regular LazyVim.

If you want to include any additional plugins in vscode, +you can set vscode=true on a plugin spec.

info

You can enable the extra with the :LazyExtras command. +Plugins marked as optional will only be configured if they are installed.

Below you can find a list of included plugins and their default settings.

caution

You don't need to copy the default settings to your config. +They are only shown here for reference.

+ + + + \ No newline at end of file diff --git a/static/img/docusaurus.png b/img/docusaurus.png similarity index 100% rename from static/img/docusaurus.png rename to img/docusaurus.png diff --git a/static/img/favicon.ico b/img/favicon.ico similarity index 100% rename from static/img/favicon.ico rename to img/favicon.ico diff --git a/static/img/icon-dark.svg b/img/icon-dark.svg similarity index 100% rename from static/img/icon-dark.svg rename to img/icon-dark.svg diff --git a/static/img/icon.png b/img/icon.png similarity index 100% rename from static/img/icon.png rename to img/icon.png diff --git a/static/img/icon.svg b/img/icon.svg similarity index 100% rename from static/img/icon.svg rename to img/icon.svg diff --git a/static/img/logo-white.png b/img/logo-white.png similarity index 100% rename from static/img/logo-white.png rename to img/logo-white.png diff --git a/static/img/logo.png b/img/logo.png similarity index 100% rename from static/img/logo.png rename to img/logo.png diff --git a/static/img/logo.svg b/img/logo.svg similarity index 100% rename from static/img/logo.svg rename to img/logo.svg diff --git a/static/img/undraw_docusaurus_mountain.svg b/img/undraw_docusaurus_mountain.svg similarity index 100% rename from static/img/undraw_docusaurus_mountain.svg rename to img/undraw_docusaurus_mountain.svg diff --git a/static/img/undraw_docusaurus_react.svg b/img/undraw_docusaurus_react.svg similarity index 100% rename from static/img/undraw_docusaurus_react.svg rename to img/undraw_docusaurus_react.svg diff --git a/static/img/undraw_docusaurus_tree.svg b/img/undraw_docusaurus_tree.svg similarity index 100% rename from static/img/undraw_docusaurus_tree.svg rename to img/undraw_docusaurus_tree.svg diff --git a/index.html b/index.html new file mode 100644 index 0000000000..32a0f52f3a --- /dev/null +++ b/index.html @@ -0,0 +1,20 @@ + + + + + +🚀 Getting Started | LazyVim + + + + +
+

🚀 Getting Started

LazyVim is a Neovim setup powered by 💤 lazy.nvim +to make it easy to customize and extend your config.

image

✨ Features

  • 🔥 Transform your Neovim into a full-fledged IDE
  • 💤 Easily customize and extend your config with lazy.nvim
  • 🚀 Blazingly fast
  • 🧹 Sane default settings for options, autocmds, and keymaps
  • 📦 Comes with a wealth of plugins pre-configured and ready to use

⚡️ Requirements

  • Neovim >= 0.11.2 (needs to be built with LuaJIT)
  • Git >= 2.19.0 (for partial clones support)
  • a Nerd Font(v3.0 or greater) (optional, but needed to display some icons)
  • lazygit (optional)
  • tree-sitter-cli and a C compiler for nvim-treesitter. See here
  • curl for blink.cmp (completion engine)
  • for fzf-lua (optional)
    • fzf: fzf (v0.25.1 or greater)
    • live grep: ripgrep
    • find files: fd
  • a terminal that support true color and undercurl:

🎓 Learn

There's a great video created by @elijahmanor +with a walkthrough to get started.

Watch the video

@dusty-phillips is working on a book called +LazyVim for Ambitious Developers +available for free online.

+ + + + \ No newline at end of file diff --git a/installation.html b/installation.html new file mode 100644 index 0000000000..9ffc3b9db6 --- /dev/null +++ b/installation.html @@ -0,0 +1,18 @@ + + + + + +🛠️ Installation | LazyVim + + + + +
+

🛠️ Installation

You can find a starter template for LazyVim here

Install the LazyVim Starter

  • Make a backup of your current Neovim files:

    # required
    mv ~/.config/nvim{,.bak}

    # optional but recommended
    mv ~/.local/share/nvim{,.bak}
    mv ~/.local/state/nvim{,.bak}
    mv ~/.cache/nvim{,.bak}
  • Clone the starter

    git clone https://github.com/LazyVim/starter ~/.config/nvim
  • Remove the .git folder, so you can add it to your own repo later

    rm -rf ~/.config/nvim/.git
  • Start Neovim!

    nvim

    Refer to the comments in the files on how to customize LazyVim.

tip

It is recommended to run :LazyHealth after installation. +This will load all plugins and check if everything is working correctly.

+ + + + \ No newline at end of file diff --git a/keymaps.html b/keymaps.html new file mode 100644 index 0000000000..0f8486566b --- /dev/null +++ b/keymaps.html @@ -0,0 +1,18 @@ + + + + + +⌨️ Keymaps | LazyVim + + + + +
+

⌨️ Keymaps

LazyVim uses which-key.nvim to help you remember your +keymaps. Just press any key like <space> and you'll see a popup with all +possible keymaps starting with <space>.

image

  • default <leader> is <space>
  • default <localleader> is \

General

KeyDescriptionMode
jDownn, x
<Down>Downn, x
kUpn, x
<Up>Upn, x
<C-h>Go to Left Windown
<C-j>Go to Lower Windown
<C-k>Go to Upper Windown
<C-l>Go to Right Windown
<C-Up>Increase Window Heightn
<C-Down>Decrease Window Heightn
<C-Left>Decrease Window Widthn
<C-Right>Increase Window Widthn
<A-j>Move Downn, i, v
<A-k>Move Upn, i, v
<S-h>Prev Buffern
<S-l>Next Buffern
[bPrev Buffern
]bNext Buffern
<leader>bbSwitch to Other Buffern
<leader>`Switch to Other Buffern
<leader>bdDelete Buffern
<leader>boDelete Other Buffersn
<leader>bDDelete Buffer and Windown
<esc>Escape and Clear hlsearchi, n, s
<leader>urRedraw / Clear hlsearch / Diff Updaten
nNext Search Resultn, x, o
NPrev Search Resultn, x, o
<C-s>Save Filei, x, n, s
<leader>KKeywordprgn
gcoAdd Comment Belown
gcOAdd Comment Aboven
<leader>lLazyn
<leader>fnNew Filen
<leader>xlLocation Listn
<leader>xqQuickfix Listn
[qPrevious Quickfixn
]qNext Quickfixn
<leader>cfFormatn, x
<leader>cdLine Diagnosticsn
]dNext Diagnosticn
[dPrev Diagnosticn
]eNext Errorn
[ePrev Errorn
]wNext Warningn
[wPrev Warningn
<leader>ufToggle Auto Format (Global)n
<leader>uFToggle Auto Format (Buffer)n
<leader>usToggle Spellingn
<leader>uwToggle Wrapn
<leader>uLToggle Relative Numbern
<leader>udToggle Diagnosticsn
<leader>ulToggle Line Numbersn
<leader>ucToggle Conceal Leveln
<leader>uAToggle Tablinen
<leader>uTToggle Treesitter Highlightn
<leader>ubToggle Dark Backgroundn
<leader>uDToggle Dimmingn
<leader>uaToggle Animationsn
<leader>ugToggle Indent Guidesn
<leader>uSToggle Smooth Scrolln
<leader>dppToggle Profilern
<leader>dphToggle Profiler Highlightsn
<leader>uhToggle Inlay Hintsn
<leader>gLGit Log (cwd)n
<leader>gbGit Blame Linen
<leader>gfGit Current File Historyn
<leader>glGit Logn
<leader>gBGit Browse (open)n, x
<leader>gYGit Browse (copy)n, x
<leader>qqQuit Alln
<leader>uiInspect Posn
<leader>uIInspect Treen
<leader>LLazyVim Changelogn
<leader>fTTerminal (cwd)n
<leader>ftTerminal (Root Dir)n
<c-/>Terminal (Root Dir)n, t
<c-_>which_key_ignoren, t
<leader>-Split Window Belown
<leader>|Split Window Rightn
<leader>wdDelete Windown
<leader>wmToggle Zoom Moden
<leader>uZToggle Zoom Moden
<leader>uzToggle Zen Moden
<leader><tab>lLast Tabn
<leader><tab>oClose Other Tabsn
<leader><tab>fFirst Tabn
<leader><tab><tab>New Tabn
<leader><tab>]Next Tabn
<leader><tab>dClose Tabn
<leader><tab>[Previous Tabn

LSP

KeyDescriptionMode
<leader>clLsp Infon
gdGoto Definitionn
grReferencesn
gIGoto Implementationn
gyGoto T[y]pe Definitionn
gDGoto Declarationn
KHovern
gKSignature Helpn
<c-k>Signature Helpi
<leader>caCode Actionn, x
<leader>ccRun Codelensn, x
<leader>cCRefresh & Display Codelensn
<leader>cRRename Filen
<leader>crRenamen
<leader>cASource Actionn
]]Next Referencen
[[Prev Referencen
<a-n>Next Referencen
<a-p>Prev Referencen

bufferline.nvim

KeyDescriptionMode
<leader>blDelete Buffers to the Leftn
<leader>bpToggle Pinn
<leader>bPDelete Non-Pinned Buffersn
<leader>brDelete Buffers to the Rightn
[bPrev Buffern
[BMove buffer prevn
]bNext Buffern
]BMove buffer nextn
<S-h>Prev Buffern
<S-l>Next Buffern

conform.nvim

KeyDescriptionMode
<leader>cFFormat Injected Langsn, x

flash.nvim

KeyDescriptionMode
<c-s>Toggle Flash Searchc
rRemote Flasho
RTreesitter Searcho, x
sFlashn, o, x
SFlash Treesittern, o, x
<c-space>Treesitter Incremental Selectionn, o, x

grug-far.nvim

KeyDescriptionMode
<leader>srSearch and Replacen, x

mason.nvim

KeyDescriptionMode
<leader>cmMasonn

noice.nvim

KeyDescriptionMode
<c-b>Scroll Backwardn, i, s
<c-f>Scroll Forwardn, i, s
<leader>sn+noicen
<leader>snaNoice Alln
<leader>sndDismiss Alln
<leader>snhNoice Historyn
<leader>snlNoice Last Messagen
<leader>sntNoice Picker (Telescope/FzfLua)n
<S-Enter>Redirect Cmdlinec

persistence.nvim

KeyDescriptionMode
<leader>qdDon't Save Current Sessionn
<leader>qlRestore Last Sessionn
<leader>qsRestore Sessionn
<leader>qSSelect Sessionn

snacks.nvim

KeyDescriptionMode
<leader><space>Find Files (Root Dir)n
<leader>,Buffersn
<leader>.Toggle Scratch Buffern
<leader>/Grep (Root Dir)n
<leader>:Command Historyn
<leader>dpsProfiler Scratch Buffern
<leader>eExplorer Snacks (root dir)n
<leader>EExplorer Snacks (cwd)n
<leader>fbBuffersn
<leader>fBBuffers (all)n
<leader>fcFind Config Filen
<leader>feExplorer Snacks (root dir)n
<leader>fEExplorer Snacks (cwd)n
<leader>ffFind Files (Root Dir)n
<leader>fFFind Files (cwd)n
<leader>fgFind Files (git-files)n
<leader>fpProjectsn
<leader>frRecentn
<leader>fRRecent (cwd)n
<leader>gdGit Diff (hunks)n
<leader>gDGit Diff (origin)n
<leader>gsGit Statusn
<leader>gSGit Stashn
<leader>nNotification Historyn
<leader>SSelect Scratch Buffern
<leader>s"Registersn
<leader>s/Search Historyn
<leader>saAutocmdsn
<leader>sbBuffer Linesn
<leader>sBGrep Open Buffersn
<leader>scCommand Historyn
<leader>sCCommandsn
<leader>sdDiagnosticsn
<leader>sDBuffer Diagnosticsn
<leader>sgGrep (Root Dir)n
<leader>sGGrep (cwd)n
<leader>shHelp Pagesn
<leader>sHHighlightsn
<leader>siIconsn
<leader>sjJumpsn
<leader>skKeymapsn
<leader>slLocation Listn
<leader>smMarksn
<leader>sMMan Pagesn
<leader>spSearch for Plugin Specn
<leader>sqQuickfix Listn
<leader>sRResumen
<leader>suUndotreen
<leader>swVisual selection or word (Root Dir)n, x
<leader>sWVisual selection or word (cwd)n, x
<leader>uCColorschemesn
<leader>unDismiss All Notificationsn

todo-comments.nvim

KeyDescriptionMode
<leader>stTodon
<leader>sTTodo/Fix/Fixmen
<leader>xtTodo (Trouble)n
<leader>xTTodo/Fix/Fixme (Trouble)n
[tPrevious Todo Commentn
]tNext Todo Commentn

trouble.nvim

KeyDescriptionMode
<leader>csSymbols (Trouble)n
<leader>cSLSP references/definitions/... (Trouble)n
<leader>xLLocation List (Trouble)n
<leader>xQQuickfix List (Trouble)n
<leader>xxDiagnostics (Trouble)n
<leader>xXBuffer Diagnostics (Trouble)n
[qPrevious Trouble/Quickfix Itemn
]qNext Trouble/Quickfix Itemn

which-key.nvim

KeyDescriptionMode
<c-w><space>Window Hydra Mode (which-key)n
<leader>?Buffer Keymaps (which-key)n

avante.nvim

Part of lazyvim.plugins.extras.ai.avante

KeyDescriptionMode
<leader>aaAsk Avanten
<leader>acChat with Avanten
<leader>aeEdit Avanten
<leader>afFocus Avanten
<leader>ahAvante Historyn
<leader>amSelect Avante Modeln
<leader>anNew Avante Chatn
<leader>apSwitch Avante Providern
<leader>arRefresh Avanten
<leader>asStop Avanten
<leader>atToggle Avanten

claudecode.nvim

Part of lazyvim.plugins.extras.ai.claudecode

KeyDescriptionMode
<leader>a+ain, v
<leader>aaAccept diffn
<leader>abAdd current buffern
<leader>acToggle Clauden
<leader>aCContinue Clauden
<leader>adDeny diffn
<leader>afFocus Clauden
<leader>arResume Clauden
<leader>asAdd filen
<leader>asSend to Claudev

CopilotChat.nvim

Part of lazyvim.plugins.extras.ai.copilot-chat

KeyDescriptionMode
<c-s>Submit Promptn
<leader>a+ain, x
<leader>aaToggle (CopilotChat)n, x
<leader>apPrompt Actions (CopilotChat)n, x
<leader>aqQuick Chat (CopilotChat)n, x
<leader>axClear (CopilotChat)n, x

sidekick.nvim

Part of lazyvim.plugins.extras.ai.sidekick

KeyDescriptionMode
<leader>a+ain, v
<leader>aaSidekick Toggle CLIn
<leader>adDetach a CLI Sessionn
<leader>afSend Filen
<leader>apSidekick Select Promptn, x
<leader>asSelect CLIn
<leader>atSend Thisn, x
<leader>avSend Visual Selectionx
<c-.>Sidekick Togglen, i, t, x

mini.surround

Part of lazyvim.plugins.extras.coding.mini-surround

KeyDescriptionMode
gsaAdd Surroundingn, x
gsdDelete Surroundingn
gsfFind Right Surroundingn
gsFFind Left Surroundingn
gshHighlight Surroundingn
gsnUpdate MiniSurround.config.n_linesn
gsrReplace Surroundingn

neogen

Part of lazyvim.plugins.extras.coding.neogen

KeyDescriptionMode
<leader>cnGenerate Annotations (Neogen)n

yanky.nvim

Part of lazyvim.plugins.extras.coding.yanky

KeyDescriptionMode
<leader>pOpen Yank Historyn, x
<pPut and Indent Leftn
<PPut Before and Indent Leftn
=pPut After Applying a Filtern
=PPut Before Applying a Filtern
>pPut and Indent Rightn
>PPut Before and Indent Rightn
[pPut Indented Before Cursor (Linewise)n
[PPut Indented Before Cursor (Linewise)n
[yCycle Forward Through Yank Historyn
]pPut Indented After Cursor (Linewise)n
]PPut Indented After Cursor (Linewise)n
]yCycle Backward Through Yank Historyn
gpPut Text After Selectionn, x
gPPut Text Before Selectionn, x
pPut Text After Cursorn, x
PPut Text Before Cursorn, x
yYank Textn, x

nvim-dap

Part of lazyvim.plugins.extras.dap.core

KeyDescriptionMode
<leader>daRun with Argsn
<leader>dbToggle Breakpointn
<leader>dBBreakpoint Conditionn
<leader>dcRun/Continuen
<leader>dCRun to Cursorn
<leader>dgGo to Line (No Execute)n
<leader>diStep Inton
<leader>djDownn
<leader>dkUpn
<leader>dlRun Lastn
<leader>doStep Outn
<leader>dOStep Overn
<leader>dPPausen
<leader>drToggle REPLn
<leader>dsSessionn
<leader>dtTerminaten
<leader>dwWidgetsn

nvim-dap-ui

Part of lazyvim.plugins.extras.dap.core

KeyDescriptionMode
<leader>deEvaln, x
<leader>duDap UIn

aerial.nvim

Part of lazyvim.plugins.extras.editor.aerial

KeyDescriptionMode
<leader>csAerial (Symbols)n

telescope.nvim

Part of lazyvim.plugins.extras.editor.aerial

KeyDescriptionMode
<leader>ssGoto Symbol (Aerial)n

dial.nvim

Part of lazyvim.plugins.extras.editor.dial

KeyDescriptionMode
<C-a>Incrementn, v
<C-x>Decrementn, v
g<C-a>Incrementn, x
g<C-x>Decrementn, x

harpoon

Part of lazyvim.plugins.extras.editor.harpoon2

KeyDescriptionMode
<leader>1Harpoon to File 1n
<leader>2Harpoon to File 2n
<leader>3Harpoon to File 3n
<leader>4Harpoon to File 4n
<leader>5Harpoon to File 5n
<leader>6Harpoon to File 6n
<leader>7Harpoon to File 7n
<leader>8Harpoon to File 8n
<leader>9Harpoon to File 9n
<leader>hHarpoon Quick Menun
<leader>HHarpoon Filen

vim-illuminate

Part of lazyvim.plugins.extras.editor.illuminate

KeyDescriptionMode
[[Prev Referencen
]]Next Referencen

leap.nvim

Part of lazyvim.plugins.extras.editor.leap

KeyDescriptionMode
gsLeap from Windowsn, o, x
sLeap Forward ton, o, x
SLeap Backward ton, o, x

mini.surround

Part of lazyvim.plugins.extras.editor.leap

KeyDescriptionMode
gz+surroundn

mini.diff

Part of lazyvim.plugins.extras.editor.mini-diff

KeyDescriptionMode
<leader>goToggle mini.diff overlayn

mini.files

Part of lazyvim.plugins.extras.editor.mini-files

KeyDescriptionMode
<leader>fmOpen mini.files (Directory of Current File)n
<leader>fMOpen mini.files (cwd)n

outline.nvim

Part of lazyvim.plugins.extras.editor.outline

KeyDescriptionMode
<leader>csToggle Outlinen

overseer.nvim

Part of lazyvim.plugins.extras.editor.overseer

KeyDescriptionMode
<leader>obTask buildern
<leader>ocClear cachen
<leader>oiOverseer Infon
<leader>ooRun taskn
<leader>oqAction recent taskn
<leader>otTask actionn
<leader>owTask listn

refactoring.nvim

Part of lazyvim.plugins.extras.editor.refactoring

KeyDescriptionMode
<leader>r+refactorn, x
<leader>rbExtract Blockn, x
<leader>rcDebug Cleanupn
<leader>rfExtract Functionn, x
<leader>rFExtract Function To Filen, x
<leader>riInline Variablen, x
<leader>rpDebug Print Variablen, x
<leader>rPDebug Printn
<leader>rsRefactorn, x
<leader>rxExtract Variablen, x

snacks.nvim

Part of lazyvim.plugins.extras.editor.snacks_explorer

KeyDescriptionMode
<leader>eExplorer Snacks (root dir)n
<leader>EExplorer Snacks (cwd)n
<leader>feExplorer Snacks (root dir)n
<leader>fEExplorer Snacks (cwd)n

snacks.nvim

Part of lazyvim.plugins.extras.editor.snacks_picker

KeyDescriptionMode
<leader><space>Find Files (Root Dir)n
<leader>,Buffersn
<leader>/Grep (Root Dir)n
<leader>:Command Historyn
<leader>fbBuffersn
<leader>fBBuffers (all)n
<leader>fcFind Config Filen
<leader>ffFind Files (Root Dir)n
<leader>fFFind Files (cwd)n
<leader>fgFind Files (git-files)n
<leader>fpProjectsn
<leader>frRecentn
<leader>fRRecent (cwd)n
<leader>gdGit Diff (hunks)n
<leader>gDGit Diff (origin)n
<leader>gsGit Statusn
<leader>gSGit Stashn
<leader>nNotification Historyn
<leader>s"Registersn
<leader>s/Search Historyn
<leader>saAutocmdsn
<leader>sbBuffer Linesn
<leader>sBGrep Open Buffersn
<leader>scCommand Historyn
<leader>sCCommandsn
<leader>sdDiagnosticsn
<leader>sDBuffer Diagnosticsn
<leader>sgGrep (Root Dir)n
<leader>sGGrep (cwd)n
<leader>shHelp Pagesn
<leader>sHHighlightsn
<leader>siIconsn
<leader>sjJumpsn
<leader>skKeymapsn
<leader>slLocation Listn
<leader>smMarksn
<leader>sMMan Pagesn
<leader>spSearch for Plugin Specn
<leader>sqQuickfix Listn
<leader>sRResumen
<leader>suUndotreen
<leader>swVisual selection or word (Root Dir)n, x
<leader>sWVisual selection or word (cwd)n, x
<leader>uCColorschemesn

todo-comments.nvim

Part of lazyvim.plugins.extras.editor.snacks_picker

KeyDescriptionMode
<leader>stTodon
<leader>sTTodo/Fix/Fixmen

nvim-ansible

Part of lazyvim.plugins.extras.lang.ansible

KeyDescriptionMode
<leader>taAnsible Run Playbook/Rolen

haskell-tools.nvim

Part of lazyvim.plugins.extras.lang.haskell

KeyDescriptionMode
<localleader>eEvaluate Alln
<localleader>hHoogle Signaturen
<localleader>rREPL (Package)n
<localleader>RREPL (Buffer)n

telescope_hoogle

Part of lazyvim.plugins.extras.lang.haskell

KeyDescriptionMode
<localleader>HHooglen

markdown-preview.nvim

Part of lazyvim.plugins.extras.lang.markdown

KeyDescriptionMode
<leader>cpMarkdown Previewn

nvim-dap-python

Part of lazyvim.plugins.extras.lang.python

KeyDescriptionMode
<leader>dPcDebug Classn
<leader>dPtDebug Methodn

venv-selector.nvim

Part of lazyvim.plugins.extras.lang.python

KeyDescriptionMode
<leader>cvSelect VirtualEnvn

nvim-metals

Part of lazyvim.plugins.extras.lang.scala

KeyDescriptionMode
<leader>mcMetals compile cascaden
<leader>meMetals commandsn
<leader>mhMetals hover worksheetn

vim-dadbod-ui

Part of lazyvim.plugins.extras.lang.sql

KeyDescriptionMode
<leader>DToggle DBUIn

vimtex

Part of lazyvim.plugins.extras.lang.tex

KeyDescriptionMode
<localLeader>l+vimtexn

typst-preview.nvim

Part of lazyvim.plugins.extras.lang.typst

KeyDescriptionMode
<leader>cpToggle Typst Previewn

neotest

Part of lazyvim.plugins.extras.test.core

KeyDescriptionMode
<leader>t+testn
<leader>taAttach to Test (Neotest)n
<leader>tlRun Last (Neotest)n
<leader>toShow Output (Neotest)n
<leader>tOToggle Output Panel (Neotest)n
<leader>trRun Nearest (Neotest)n
<leader>tsToggle Summary (Neotest)n
<leader>tSStop (Neotest)n
<leader>ttRun File (Neotest)n
<leader>tTRun All Test Files (Neotest)n
<leader>twToggle Watch (Neotest)n

nvim-dap

Part of lazyvim.plugins.extras.test.core

KeyDescriptionMode
<leader>tdDebug Nearestn

edgy.nvim

Part of lazyvim.plugins.extras.ui.edgy

KeyDescriptionMode
<leader>ueEdgy Togglen
<leader>uEEdgy Select Windown

chezmoi.nvim

Part of lazyvim.plugins.extras.util.chezmoi

KeyDescriptionMode
<leader>szChezmoin

gh.nvim

Part of lazyvim.plugins.extras.util.gh

KeyDescriptionMode
<leader>G+Githubn
<leader>Gc+Commitsn
<leader>GccClosen
<leader>GceExpandn
<leader>GcoOpen Ton
<leader>GcpPop Outn
<leader>GczCollapsen
<leader>Gi+Issuesn
<leader>GioOpenn
<leader>GipPreviewn
<leader>Gl+Liteen
<leader>GltToggle Paneln
<leader>Gp+Pull Requestn
<leader>GpcClosen
<leader>GpdDetailsn
<leader>GpeExpandn
<leader>GpoOpenn
<leader>GppPopOutn
<leader>GprRefreshn
<leader>GptOpen Ton
<leader>GpzCollapsen
<leader>Gr+Reviewn
<leader>GrbBeginn
<leader>GrcClosen
<leader>GrdDeleten
<leader>GreExpandn
<leader>GrsSubmitn
<leader>GrzCollapsen
<leader>Gt+Threadsn
<leader>GtcCreaten
<leader>GtnNextn
<leader>GttTogglen

mason.nvim

Part of lazyvim.plugins.extras.util.gitui

KeyDescriptionMode
<leader>ggGitUi (Root Dir)n
<leader>gGGitUi (cwd)n

octo.nvim

Part of lazyvim.plugins.extras.util.octo

KeyDescriptionMode
<leader>giList Issues (Octo)n
<leader>gISearch Issues (Octo)n
<leader>gpList PRs (Octo)n
<leader>gPSearch PRs (Octo)n
<leader>grList Repos (Octo)n
<leader>gSSearch (Octo)n
<localleader>a+assignee (Octo)n
<localleader>c+comment/code (Octo)n
<localleader>g+goto_issue (Octo)n
<localleader>i+issue (Octo)n
<localleader>l+label (Octo)n
<localleader>p+pr (Octo)n
<localleader>pr+rebase (Octo)n
<localleader>ps+squash (Octo)n
<localleader>r+react (Octo)n
<localleader>v+review (Octo)n

fzf-lua

Part of lazyvim.plugins.extras.util.project

KeyDescriptionMode
<leader>fpProjectsn

telescope.nvim

Part of lazyvim.plugins.extras.util.project

KeyDescriptionMode
<leader>fpProjectsn

kulala.nvim

Part of lazyvim.plugins.extras.util.rest

KeyDescriptionMode
<leader>R+Restn
<leader>RbOpen scratchpadn
<leader>RcCopy as cURLn
<leader>RCPaste from curln
<leader>ReSet environmentn
<leader>RgDownload GraphQL scheman
<leader>RiInspect current requestn
<leader>RnJump to next requestn
<leader>RpJump to previous requestn
<leader>RqClose windown
<leader>RrReplay the last requestn
<leader>RsSend the requestn
<leader>RSShow statsn
<leader>RtToggle headers/bodyn
+ + + + \ No newline at end of file diff --git a/lua/build.lua b/lua/build.lua deleted file mode 100644 index b71d8d33b1..0000000000 --- a/lua/build.lua +++ /dev/null @@ -1,560 +0,0 @@ --- Ugly code to generate some things for the readme -local Docs = require("lazy.docs") -local Util = require("lazy.util") -local Handler = require("lazy.core.handler") -Handler.init() - -local M = {} -local root = vim.fn.fnamemodify(debug.getinfo(1, "S").source:sub(2), ":p:h:h") -local rootLazyVim = require("lazy.core.config").plugins.LazyVim.dir -local rootStarter = root .. "/.nvim/plugins/starter" - ----@generic V ----@param t table ----@param fn fun(key:string, value:V) -function M.foreach(t, fn) - ---@type string[] - local keys = vim.tbl_keys(t) - pcall(table.sort, keys, function(a, b) - local swappedA = a:gsub(".", function(ch) - return ch:upper() == ch and ch:lower() or ch:upper() - end) - - local swappedB = b:gsub(".", function(ch) - return ch:upper() == ch and ch:lower() or ch:upper() - end) - - local la = a:lower() - local lb = b:lower() - - if la == lb then - return swappedA < swappedB - end - - return la < lb - end) - for _, key in ipairs(keys) do - fn(key, t[key]) - end -end - --- prints: aB, ab - ----@return ReadmeBlock -function M.keymaps() - local keymap_set = vim.keymap.set - ---@type table - local keymaps = {} - ---@type string - local group = nil - ---@type string[] - local groups = {} - local function map(mode, lhs, rhs, opts) - if not (opts and opts.desc) then - return - end - if not vim.tbl_contains(groups, group) then - groups[#groups + 1] = group - end - mode = mode == nil and { "n", "v", "o" } or type(mode) == "string" and { mode } or mode - local desc = opts and opts.desc or "" - local key = lhs .. desc .. group - -- print(group, lhs, desc) - if keymaps[key] then - vim.list_extend(keymaps[key].mode, mode) - else - keymaps[key] = { mode = mode, keys = lhs, desc = desc, i = vim.tbl_count(keymaps), group = group } - end - end - vim.keymap.set = map - - group = "General" - dofile(rootLazyVim .. "/lua/lazyvim/config/keymaps.lua") - group = "LSP" - local lsp = dofile(rootLazyVim .. "/lua/lazyvim/plugins/lsp/keymaps.lua") - for _, keys in ipairs(lsp.get()) do - map(keys.mode or "n", keys[1], keys[2], keys) - end - vim.keymap.set = keymap_set - - group = "Plugins" - - local core = require("lazy.core.plugin").Spec.new({ import = "lazyvim.plugins" }, { optional = true }) - Util.foreach(core.plugins, function(name, plugin) - Handler.resolve(plugin) - group = ("[%s](%s)"):format(plugin.name, plugin.url) - M.foreach(plugin._.handlers.keys or {}, function(_, key) - if type(key) == "table" and key.desc then - local desc = key.desc or "" - map(key.mode or "n", key.lhs, key.rhs, { desc = desc }) - end - end) - end) - - Util.walk(rootLazyVim .. "/lua/lazyvim/plugins/extras", function(path, name, t) - if t == "file" and name:find("%.lua$") then - local modname = path:gsub(".*/lua/", ""):gsub("/", "."):gsub("%.lua$", "") - local extra_doc = "/extras/" .. modname:gsub("lazyvim%.plugins%.extras%.", ""):gsub("%.", "/") - LazyVim.pick.picker = nil - local extra = require("lazy.core.plugin").Spec.new({ import = modname }, { optional = true }) - local orig_spec = require("lazy.core.config").spec - require("lazy.core.config").spec = extra - Util.foreach(extra.plugins, function(name, plugin) - group = ("[%s](%s)\nPart of [%s](%s)"):format(plugin.name, plugin.url, modname, extra_doc) - Handler.resolve(plugin) - M.foreach(plugin._.handlers.keys or {}, function(_, key) - if type(key) == "table" and key.desc then - local desc = key.desc or "" - map(key.mode or "n", key.lhs, key.rhs, { desc = desc }) - end - end) - end) - require("lazy.core.config").spec = orig_spec - end - end) - - ---@type string[] - local lines = {} - - for _, group in ipairs(groups) do - lines[#lines + 1] = "## " .. group - lines[#lines + 1] = "" - vim.list_extend(lines, { "| Key | Description | Mode |", "| --- | --- | --- |" }) - local mappings = vim.tbl_filter(function(m) - return m.group == group and m.desc - end, keymaps) - - table.sort(mappings, function(a, b) - return a.i < b.i - end) - - for _, m in ipairs(mappings) do - lines[#lines + 1] = "| " - .. m.keys:gsub(">", ">"):gsub("<", "<"):gsub("|", "|") - .. " | " - .. m.desc - .. " | " - .. table.concat( - vim.tbl_map(function(mode) - return "**" .. mode .. "**" - end, m.mode), - ", " - ) - .. " |" - end - lines[#lines + 1] = "" - end - return { content = table.concat(lines, "\n") } -end - -function M.general() - local lines = { - [[ -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; -]], - } ---@type string[] - for _, entry in ipairs({ - { name = "options", title = "Options" }, - { name = "keymaps", title = "Keymaps" }, - { name = "autocmds", title = "Auto Commands" }, - }) do - local name, title = entry.name, entry.title - lines[#lines + 1] = "## " .. title - vim.list_extend(lines, { - "", - "", - ([[]]):format(title), - "", - ([[```lua title="lua/config/%s.lua" -%s -```]]):format(name, Util.read_file(vim.fn.fnamemodify(rootStarter .. "/lua/config/" .. name .. ".lua", ":p"))), - "", - "", - ([[]]):format(title), - "", - ([[```lua title="lazyvim.config.%s" -%s -```]]):format( - name, - Util.read_file(vim.fn.fnamemodify(rootLazyVim .. "/lua/lazyvim/config/" .. name .. ".lua", ":p")) - ), - "", - "", - "", - "", - }) - end - return { content = table.concat(lines, "\n") } -end - -function M.recipes() - local src = Util.read_file(vim.fs.normalize(root .. "/lua/recipes.lua")) - local lines = vim.split(src, "\n") - local ret = {} - local header = {} ---@type string[] - local block = {} ---@type string[] - for _, line in ipairs(lines) do - local comment = line:match("^ %-%- ?(.*)") - if comment then - header[#header + 1] = comment - elseif line:find("^ {") then - block = { "{" } - elseif line:find("^ }") then - block[#block + 1] = " }" - vim.list_extend(ret, header) - ret[#ret + 1] = "\n```lua" - local code = Docs.fix_indent(table.concat(block, "\n")) - ret[#ret + 1] = code - ret[#ret + 1] = "```\n" - header = {} - block = {} - else - block[#block + 1] = line - end - end - return { content = table.concat(ret, "\n") } -end - -function M.extract_options(extra_file) - local contents = Util.read_file(extra_file) - local lines = vim.split(contents, "\n") - ---@type string[] - local ret = {} - local options = false - for _, line in ipairs(lines) do - if line == [[if lazyvim_docs then]] then - options = true - elseif line == [[end]] then - options = false - elseif options then - ret[#ret + 1] = vim.trim(line) - end - end - return #ret > 0 and table.concat(ret, "\n") or nil -end - -function M.update() - local news = Util.read_file(rootLazyVim .. "/NEWS.md") - news = "---\nsidebar_position: 2\n---\n\n" .. news - news = news:gsub("# What's new", "# 📰 What's new") - Util.write_file("docs/news.md", news) - - local Plugin = require("lazy.core.plugin") - --- include all specs - --- - function Plugin.Spec:fix_disabled() - for _, plugin in pairs(self.plugins) do - if plugin.enabled == false then - self:remove_fragments(plugin.name, { self = true }) - end - end - self:rebuild() - end - local docs = vim.fs.normalize(root .. "/docs") - - local config = Docs.extract(rootLazyVim .. "/lua/lazyvim/config/init.lua", "\nlocal defaults = ({.-\n})") - - Docs.save({ - config = config, - }, docs .. "/configuration/index.md") - - Docs.save({ - general = M.general(), - }, docs .. "/configuration/general.md") - - Docs.save({ - recipes = M.recipes(), - }, docs .. "/configuration/recipes.md") - - Docs.save({ - lazy = { - content = [[```lua title="lua/config/lazy.lua"]] .. "\n" .. Util.read_file( - vim.fn.fnamemodify(rootStarter .. "/lua/config/lazy.lua", ":p") - ) .. "\n```", - }, - }, docs .. "/configuration/lazy.nvim.md") - - Docs.save({ - keymaps = M.keymaps(), - }, docs .. "/keymaps.md") - - local keep = {} ---@type string[] - Util.walk(rootLazyVim .. "/lua/lazyvim/plugins/extras", function(path, name, type) - if type == "file" and name:find("%.lua$") then - local modname = path:gsub(".*/lua/", ""):gsub("/", "."):gsub("%.lua$", "") - local lines = {} ---@type string[] - local title = modname:match("%.([^%.]+)$") - title = title:sub(1, 1):upper() .. title:sub(2) - print(path) - local options = M.extract_options(path) - if options then - options = ([[ -### Options - -Additional options for this extra can be configured in your [lua/config/options.lua](/configuration/general#options) file: - -```lua title="lua/config/options.lua" -%s -``` - -]]):format(options) - end - vim.list_extend(lines, { - "", - ([[ -:::info -You can enable the extra with the `:LazyExtras` command. -Plugins marked as optional will only be configured if they are installed. -::: - -%sBelow you can find a list of included plugins and their default settings. - -:::caution -You don't need to copy the default settings to your config. -They are only shown here for reference. -::: -]]):format(options or ""), - M.plugins("extras/" .. path:gsub(".*/extras/", "")).content, - "", - }) - local md_file = docs .. "/extras/" .. modname:gsub(".*extras%.", ""):gsub("%.", "/", 1) .. ".md" - keep[#keep + 1] = "docs" .. md_file:sub(#docs + 1) - if not vim.loop.fs_stat(md_file) then - local dir = vim.fn.fnamemodify(md_file, ":h") - vim.fn.mkdir(dir, "p") - Util.write_file( - md_file, - ([[ -# `%s` - - - -]]):format(title) - ) - end - - Docs.save({ - plugins = { content = table.concat(lines, "\n") }, - }, md_file) - end - end) - - -- vim.print(keep) - Util.walk("docs/extras", function(path, name, type) - if name == "index.md" or not name:find("%.md$") then - return - end - if type == "file" and not vim.tbl_contains(keep, path) then - print("del: " .. path) - vim.loop.fs_unlink(path) - end - end) - - local examples = vim.fn.fnamemodify(rootStarter .. "/lua/plugins/example.lua", ":p") - Docs.save({ - examples = Util.read_file(examples):gsub("^[^\n]+\n[^\n]+\n[^\n]+\n", ""), - }, docs .. "/configuration/examples.md") - - Docs.save({ - plugins = M.plugins("lsp/init.lua"), - }, docs .. "/plugins/lsp.md") - - for _, p in ipairs({ "coding", "colorscheme", "editor", "treesitter", "ui", "util", "formatting", "linting" }) do - Docs.save({ - plugins = M.plugins(p .. ".lua"), - }, docs .. "/plugins/" .. p .. ".md") - end -end - -function M.plugins(path) - LazyVim.pick.picker = nil - local test = rootLazyVim .. "/lua/lazyvim/plugins/" .. path - local mod = dofile(test) - local imports = {} - for _, v in pairs(mod) do - if type(v) == "table" and v.import then - table.insert(imports, v.import) - end - end - if #imports > 0 then - local nmod = {} - for _, v in ipairs(mod) do - if not (type(v) == "table" and v.import) then - table.insert(nmod, v) - end - end - mod = nmod - end - local spec = require("lazy.core.plugin").Spec.new(mod, { optional = true }) - local source = Util.read_file(test) - local parser = vim.treesitter.get_string_parser(source, "lua") - parser:parse() - local query = vim.treesitter.query.parse("lua", [[(table_constructor (field value: ( (string))@plugin !name))]]) - - ---@type {code: string, opts: string, name: string, comment?:string, url: string, optional?: boolean, idx:number}[] - local plugins = {} - local found = {} ---@type table - - local function get_text(node) - return Docs.fix_indent(vim.treesitter.get_node_text(node, source)) - end - - local function get_field(node, field) - for child in node:iter_children() do - if child:type() == "field" then - local name_node = child:field("name")[1] - if name_node and get_text(name_node) == field then - return child:field("value")[1] - end - end - end - end - - local function find_plugins(node) - if node:type() == "string" then - local text = vim.treesitter.get_node_text(node, source):sub(2, -2) - if #node:parent():field("name") == 0 then - local plugin_node = node:parent():parent() - local first_child = plugin_node:named_child(0) - if first_child and first_child:field("value")[1] and first_child:field("value")[1]:id() ~= node:id() then - plugin_node = node - end - local comments = {} - - local comment_node = plugin_node:parent():prev_named_sibling() - - while comment_node and comment_node:type() == "comment" do - table.insert(comments, 1, get_text(comment_node)) - comment_node = comment_node:prev_named_sibling() - end - - local opts_node = get_field(plugin_node, "opts") - - local name_node = get_field(plugin_node, "name") - local name = name_node and get_text(name_node):sub(2, -2) or text:match("([^/]*)$") - - if name == "dressing.nvim" and name == text then - name = "ignore_this" - end - - local plugin = spec.plugins[name] - if plugin then - local url = plugin.url - if not url then - local p = require("lazy.core.config").plugins[name] - url = p and p.url - end - if not url then - error("Missing url for plugin " .. name) - end - url = url:gsub("%.git$", "") - found[name] = true - plugins[#plugins + 1] = { - idx = #plugins + 1, - name = name, - optional = spec.plugins[name].optional, - url = url, - code = get_text(plugin_node), - comment = #comments > 0 and table.concat(comments, "\n") or nil, - opts = opts_node and get_text(opts_node) or get_field(plugin_node, "config") and "{}" or nil, - } - end - end - end - end - - for id, node in query:iter_captures(parser:trees()[1]:root(), source) do - local capture_name = query.captures[id] - if capture_name == "plugin" then - find_plugins(node) - end - end - for name in pairs(spec.plugins) do - if not found[name] then - print("Missing plugins in " .. path .. ": " .. name) - end - end - - ---@type string[] - local lines = { - [[ -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; -]], - } - - table.sort(imports) - if #imports > 0 then - lines[#lines + 1] = "### Includes the following extras" - lines[#lines + 1] = "" - for _, x in ipairs(imports) do - x = x:gsub("lazyvim%.plugins%.extras%.", "") - lines[#lines + 1] = ("- [%s](/extras/%s)"):format(x, x:gsub("%.", "/")) - end - lines[#lines + 1] = "" - end - - -- sort by optional and idx - table.sort(plugins, function(a, b) - if a.optional ~= b.optional then - return b.optional - end - return a.idx < b.idx - end) - - for _, plugin in ipairs(plugins) do - lines[#lines + 1] = "## [" - .. plugin.name - .. "](" - .. plugin.url - .. ")" - .. (plugin.optional and " _(optional)_" or "") - - if plugin.comment then - lines[#lines + 1] = "" - lines[#lines + 1] = table.concat( - vim.tbl_map(function(line) - return line:gsub("^%-+", "") - end, vim.split(plugin.comment, "\n")), - "\n" - ) - lines[#lines + 1] = "" - end - vim.list_extend(lines, { - "", - "", - }) - vim.list_extend(lines, { - "", - [[]], - "", - "```lua", - "opts = " .. (plugin.opts or "nil"), - "```", - "", - "", - "", - }) - vim.list_extend(lines, { - "", - [[]], - "", - "```lua", - plugin.code, - "```", - "", - "", - "", - }) - vim.list_extend(lines, { - "", - "", - }) - end - return { content = table.concat(lines, "\n") } -end - -M.update() - -return M diff --git a/lua/recipes.lua b/lua/recipes.lua deleted file mode 100644 index 771efff001..0000000000 --- a/lua/recipes.lua +++ /dev/null @@ -1,134 +0,0 @@ -return { - -- ## Add a `nvim-cmp` source - -- - -- override nvim-cmp and add cmp-emoji - { - "hrsh7th/nvim-cmp", - dependencies = { "hrsh7th/cmp-emoji" }, - ---@param opts cmp.ConfigSchema - opts = function(_, opts) - table.insert(opts.sources, { name = "emoji" }) - end, - }, - - -- ## Supertab - -- - -- Use `` for completion and snippets (supertab). - { - "hrsh7th/nvim-cmp", - ---@param opts cmp.ConfigSchema - opts = function(_, opts) - local has_words_before = function() - unpack = unpack or table.unpack - local line, col = unpack(vim.api.nvim_win_get_cursor(0)) - return col ~= 0 and vim.api.nvim_buf_get_lines(0, line - 1, line, true)[1]:sub(col, col):match("%s") == nil - end - - local cmp = require("cmp") - - opts.mapping = vim.tbl_extend("force", opts.mapping, { - [""] = cmp.mapping(function(fallback) - if cmp.visible() then - -- You could replace select_next_item() with confirm({ select = true }) to get VS Code autocompletion behavior - cmp.select_next_item() - elseif vim.snippet.active({ direction = 1 }) then - vim.schedule(function() - vim.snippet.jump(1) - end) - elseif has_words_before() then - cmp.complete() - else - fallback() - end - end, { "i", "s" }), - [""] = cmp.mapping(function(fallback) - if cmp.visible() then - cmp.select_prev_item() - elseif vim.snippet.active({ direction = -1 }) then - vim.schedule(function() - vim.snippet.jump(-1) - end) - else - fallback() - end - end, { "i", "s" }), - }) - end, - }, - - -- ## Change surround mappings - { - "echasnovski/mini.surround", - opts = { - mappings = { - add = "gsa", - delete = "gsd", - find = "gsf", - find_left = "gsF", - highlight = "gsh", - replace = "gsr", - update_n_lines = "gsn", - }, - }, - }, - - -- ## Make TokyoNight Transparent - { - "folke/tokyonight.nvim", - opts = { - transparent = true, - styles = { - sidebars = "transparent", - floats = "transparent", - }, - }, - }, - - -- ## Fix clangd offset encoding - { - "neovim/nvim-lspconfig", - opts = { - setup = { - clangd = function(_, opts) - opts.capabilities.offsetEncoding = { "utf-16" } - end, - }, - }, - }, - - -- ## Use Eslint for fix on save and prettier for formatting - -- - -- The [recommended](https://prettier.io/docs/en/integrating-with-linters.html) setup to - -- integrate prettier with linters is to **not** integrate it with eslint. - -- For this config, we have two extras, to enable eslint fix on save and enable the prettier - -- formatter with null-ls. - -- - -- Add the below to your `lua/config/lazy.lua` file - { - { import = "lazyvim.plugins.extras.linting.eslint" }, - { import = "lazyvim.plugins.extras.formatting.prettier" }, - }, - - -- ## Add Eslint and use it for formatting - -- - -- If your project is using eslint with [eslint-plugin-prettier](https://github.com/prettier/eslint-plugin-prettier), - -- then this will automatically fix eslint errors and format with prettier on save. - -- Important: make sure not to add prettier to null-ls, otherwise this won't work! - { - "neovim/nvim-lspconfig", - opts = { - servers = { eslint = {} }, - setup = { - eslint = function() - require("lazyvim.util").lsp.on_attach(function(client) - if client.name == "eslint" then - client.server_capabilities.documentFormattingProvider = true - elseif client.name == "tsserver" then - client.server_capabilities.documentFormattingProvider = false - end - end) - end, - }, - }, - }, -} diff --git a/news.html b/news.html new file mode 100644 index 0000000000..5550c6f2ef --- /dev/null +++ b/news.html @@ -0,0 +1,53 @@ + + + + + +📰 What's new? | LazyVim + + + + +
+

📰 What's new?

15.x

Neovim >= 0.11.2 includes a lot of changes to the underlying LSP implementation.

Going forward, LazyVim requires Neovim >= 0.11.2, and drops support for older versions.

Changes

  • removed compatibility code for Neovim < 0.11.2
  • configure LSP with the native vim.lsp.config
  • migrated mason.nvim and mason-lspconfig.nvim to v2.x
  • migrated to nvim-treesitter main branch
    • with the new version, the tree-sitter cli is required to install parsers
    • best to run :checkhealth nvim-treesitter after updating
  • replace nvim-treesitter incremental selection with flash.nvim, since it is no longer supported
  • enabled blink.cmp cmdline completions
  • use LSP based folding when available (disable with nvim-lspconfig.folds.enabled = false)

14.x

Big new release with a lot of changes and improvements! +Two new plugins have been added, and a lot of plugins have been replaced. +With these changes, default LazyVim is now just 34 plugins.

Added Plugins

  • fzf-lua as a replacement for telescope.nvim
    • to use telescope.nvim instead, enable the editor.telescope extra
  • blink.cmp as a replacement for nvim-cmp
    • to use nvim-cmp instead, enable the coding.nvim-cmp extra

Removed Plugins

Changes

To disable all animations, add the following to your options.lua:

vim.g.snacks_animate = false

Keymaps


13.x

  • LazyVim now uses Snacks.dashboard as the default dashboard. +Check the docs, +for more information and examples.

  • A new dashboard-nvim extra +is available for those who prefer the old dashboard.

  • Big new release with a lot of changes and improvements!

  • The biggest change is the move of a bunch of core features to +snacks.nvim and fully +integrating it into LazyVim.

  • I highly suggest having a look at the snacks.nvim documentation +to see all the new features and improvements. Most important changes:

    • Snacks.notifier for notifications instead of nvim-notify
    • Snacks.terminal is similar to lazyterm, but has more features +and creates bottom splits by default (similar to the edgy integrating)

12.x

  • Markdown Extra: headlines.nvim has been removed in favor of markdown.nvim +to spice up your markdown files.

  • nvim-spectre has been removed in favor of grug-far.nvim. +grug-far.nvim has a great UI and feels more intuitive to use.

  • This news is now also available on the website at https://www.lazyvim.org/news

  • prettier extra now works for all prettier supported filetypes +and will be enabled for astro/svelte extra if you have a proper +config file with the correct prettier plugin

  • New Language Support: SQL, Clojure, Thrift, Elm, Gleam, Angular, +NuShell, Svelte, Kotlin, Astro, Toml and PHP

  • New Extras: copilot-chat, git, octo, inc-rename and neogen

  • The typescript extra now uses vtsls instead of tsserver

  • Neovim >= 0.10 now uses the much faster lazydev.nvim +instead of neodev.nvim

  • moved neoconf.nvim to extras. Project specific LSP settings +can be done with a .lazy.lua file instead.


11.x

  • Keymaps:

    • <leader>gB to open the current repo in the browser
    • gco and gcO to add a comment below or above the current line
    • <leader>wm to toggle window maximize
  • lazydev.nvim: faster alternative to neodev.nvim

  • Options: Added linebreak=true to default options.

  • mini.ai is back as a default plugin! Removing it was a mistake. +It's a great plugin that enhances the native text objects.

  • :LazyExtras now has multiple new sections:

    • Enabled: extras that are currently enabled
    • Recommended Languages: language extras recommended for the current buffer / directory
    • Recommended Plugins: extras that are recommended for most users
    • Plugins: other plugin extras
    • Languages: other language extras
  • new option vim.g.deprecation_warnings to disable deprecation warnings +Defaults to false. To enable deprecation warnings, set it to true in your options.lua

  • vim-illuminate move to extras +Document highlights now use native lsp functionality by default

Since Neovim 0.10 has been released, I've been working on a new version of LazyVim +that is fully compatible with all the latest Neovim features.

Additionally, some core plugins have been moved to extras.

  • native snippets are now the default on Neovim 0.10 +Older versions of Neovim will use the new luasnip extra.

  • native comments are now the default on Neovim 0.10 +Older versions of Neovim will use the new mini-comment extra. +nvim-ts-context-commentstring has been integrated in the native comments.

  • inlay hints have been in LazyVim for a while, but are now +enabled by default. To disable them:

    {
    "nvim-lspconfig",
    opts = {
    inlay_hints = { enabled = false },
    }
    }
  • plugins moved to extras:

    • mini.surround
    • mini.indentscope scopes are now also highlighted with indent-blankline
    • nvim-treesitter-context

10.x

  • added new extra for mini.diff +This is a plugin similar to gitsigns but with a neat diff overlay +that can be toggled with <leader>go.

  • trouble.nvim has been rewritten from scratch and is now in beta. +I've added a new extra for it (trouble-v3) for those of you who want to try it out. +You can find the updated docs here

  • The lazygit integration now configures:

    • the theme based on the colorscheme
    • nerd font icons (v3)
    • editor preset is set to nvim-remote for better interop with Neovim
  • The option vim.g.lazygit_theme was renamed to vim.g.lazygit_config

  • lazygit now automatically uses the colors of your current colorscheme. +This is enabled by default. To disable, add the below to your options.lua:

    vim.g.lazygit_config = false
  • Added support for basedpyright to the python extra. +Enable in your options.lua with:

    vim.g.lazyvim_python_lsp = "basedpyright"

    Be aware that basedpyright is still in development and +may not work exactly the same as pyright.

  • User extras under lua/plugins/extras can now also be managed +with LazyExtras

  • nvim-ts-autotag is now included by default

  • nvim-treesitter-context is now included by default

  • Added extra for symbols-outline.nvim

  • Added extra for aerial.nvim

  • nvim-navic has been removed. If you want to keep using nvim-navic, +you can enable the editor.navic extra

  • New :LazyExtras command for managing LazyVim extras

  • Improved formatting:

    • LazyVim can now work with multiple formatters. Types:

      • primary: only one primary formatter can be active at a time. +(conform, none-ls, LSP)
      • secondary: multiple secondary formatters can be active (eslint, ...)
    • LazyVim automatically selects the primary formatter based on the +current available sources and priorities.

    • New :LazyFormat command for formatting the current selection or buffer

    • New :LazyFormatInfo command for displaying the active formatters +for the current buffer

    • Auto-formatting can be disabled with:

      vim.g.autoformat = false -- globally
      vim.b.autoformat = false -- buffer-local
  • none-ls.nvim is no longer installed by default

    • conform.nvim is now the default formatter
    • nvim-lint is now the default linter
    • If you want to keep using none-ls.nvim, +you can enable the lsp.none-ls extra
  • dashboard.nvim is the new default dashboard plugin

    • If you want to keep using alpha.nvim, you can enable the ui.alpha extra
  • Improved root detection:

    • New :LazyRoot command that shows info about the root dir detection

    • Configurable with vim.g.root_spec

      -- LazyVim root dir detection
      -- Each entry can be:
      -- * the name of a detector function like `lsp` or `cwd`
      -- * a pattern or array of patterns like `.git` or `lua`.
      -- * a function with signature `function(buf) -> string|string[]`
      vim.g.root_spec = { "lsp", { ".git", "lua" }, "cwd" }

      -- To disable root detection set to just "cwd"
      vim.g.root_spec = { "cwd" }
+ + + + \ No newline at end of file diff --git a/package.json b/package.json deleted file mode 100644 index 1842f6ca82..0000000000 --- a/package.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "name": "lazyvim", - "version": "0.0.0", - "private": true, - "packageManager": "yarn@3.3.1", - "scripts": { - "docusaurus": "docusaurus", - "start": "docusaurus start", - "build": "docusaurus build", - "swizzle": "docusaurus swizzle", - "deploy": "docusaurus deploy", - "clear": "docusaurus clear", - "serve": "docusaurus serve", - "write-translations": "docusaurus write-translations", - "write-heading-ids": "docusaurus write-heading-ids", - "typecheck": "tsc" - }, - "dependencies": { - "@docusaurus/core": "latest", - "@docusaurus/preset-classic": "latest", - "@easyops-cn/docusaurus-search-local": "^0.33.6", - "@mdx-js/react": "^1.6.22", - "clsx": "^1.2.1", - "prism-react-renderer": "^1.3.5", - "react": "^17.0.2", - "react-dom": "^17.0.2" - }, - "devDependencies": { - "@docusaurus/module-type-aliases": "latest", - "@tsconfig/docusaurus": "^1.0.5", - "@types/mdx-js__react": "^1.5.5", - "@types/node": "^18.11.18", - "@types/react": "^17.0.53", - "@types/react-dom": "^17.0.18", - "typescript": "^4.7.4", - "typesync": "^0.9.2" - }, - "browserslist": { - "production": [ - ">0.5%", - "not dead", - "not op_mini all" - ], - "development": [ - "last 1 chrome version", - "last 1 firefox version", - "last 1 safari version" - ] - }, - "engines": { - "node": ">=16.14" - } -} diff --git a/plugins.html b/plugins.html new file mode 100644 index 0000000000..44a039d799 --- /dev/null +++ b/plugins.html @@ -0,0 +1,18 @@ + + + + + +Core Plugins | LazyVim + + + + +
+

Core Plugins

LazyVim provides a set of preconfigured plugins enabled by default. +All you need to do to utilize these plugins is install the LazyVim starter template.

  • Coding: Faster coding with features such as snippets, autocompletion, and more.
  • Colorscheme: Default color schemes (TokyoNight and Catppuccin).
  • Editor: Provides functionality like a file explorer, search and replace, fuzzy finding, git integration.
  • Formatting: Set up formatters using conform.nvim.
  • Linting: Manage linters with the nvim-lint plugin.
  • LSP: configure the Language Server Protocol (LSP) client.
  • TreeSitter: advanced syntax highlighting and plugins that use Treesitter parsers
  • UI: Enhance the user interface with features such as status line, buffer line, indentation guides, dashboard, and icons.
  • Util: Contains utilities for session management, shared functionality, and other handy tools.

For detailed information on the default configurations of each plugin set and +instructions on customizing them, refer to the respective documentation linked above.

+ + + + \ No newline at end of file diff --git a/plugins/coding.html b/plugins/coding.html new file mode 100644 index 0000000000..d6c9da0e10 --- /dev/null +++ b/plugins/coding.html @@ -0,0 +1,23 @@ + + + + + +Coding | LazyVim + + + + +
+

Coding

mini.pairs

Auto pairs +Automatically inserts a matching closing character +when you type an opening character like ", [, or (.

opts = {
modes = { insert = true, command = true, terminal = false },
-- skip autopair when next character is one of these
skip_next = [=[[%w%%%'%[%"%.%`%$]]=],
-- skip autopair when the cursor is inside these treesitter nodes
skip_ts = { "string" },
-- skip autopair when next character is closing pair
-- and there are more closing pairs than opening pairs
skip_unbalanced = true,
-- better deal with markdown code blocks
markdown = true,
}

ts-comments.nvim

Improves comment syntax, lets Neovim handle multiple +types of comments for a single language, and relaxes rules +for uncommenting.

opts = {}

mini.ai

Extends the a & i text objects, this adds the ability to select +arguments, function calls, text within quotes and brackets, and to +repeat those selections to select an outer text object.

opts = function()
local ai = require("mini.ai")
return {
n_lines = 500,
custom_textobjects = {
o = ai.gen_spec.treesitter({ -- code block
a = { "@block.outer", "@conditional.outer", "@loop.outer" },
i = { "@block.inner", "@conditional.inner", "@loop.inner" },
}),
f = ai.gen_spec.treesitter({ a = "@function.outer", i = "@function.inner" }), -- function
c = ai.gen_spec.treesitter({ a = "@class.outer", i = "@class.inner" }), -- class
t = { "<([%p%w]-)%f[^<%w][^<>]->.-</%1>", "^<.->().*()</[^/]->$" }, -- tags
d = { "%f[%d]%d+" }, -- digits
e = { -- Word with case
{ "%u[%l%d]+%f[^%l%d]", "%f[%S][%l%d]+%f[^%l%d]", "%f[%P][%l%d]+%f[^%l%d]", "^[%l%d]+%f[^%l%d]" },
"^().*()$",
},
g = LazyVim.mini.ai_buffer, -- buffer
u = ai.gen_spec.function_call(), -- u for "Usage"
U = ai.gen_spec.function_call({ name_pattern = "[%w_]" }), -- without dot in function name
},
}
end

lazydev.nvim

Configures LuaLS to support auto-completion and type checking +while editing your Neovim configuration.

opts = {
library = {
{ path = "${3rd}/luv/library", words = { "vim%.uv" } },
{ path = "LazyVim", words = { "LazyVim" } },
{ path = "snacks.nvim", words = { "Snacks" } },
{ path = "lazy.nvim", words = { "LazyVim" } },
},
}
+ + + + \ No newline at end of file diff --git a/plugins/colorscheme.html b/plugins/colorscheme.html new file mode 100644 index 0000000000..1fd13f5c2e --- /dev/null +++ b/plugins/colorscheme.html @@ -0,0 +1,16 @@ + + + + + +Colorscheme | LazyVim + + + + +
+

Colorscheme

Example for changing the colorscheme to Gruvbox:

lua/plugins/colorscheme.lua
return {
-- add gruvbox
{ "ellisonleao/gruvbox.nvim" },

-- Configure LazyVim to load gruvbox
{
"LazyVim/LazyVim",
opts = {
colorscheme = "gruvbox",
},
}
}

tokyonight.nvim

tokyonight

opts = { style = "moon" }

catppuccin

catppuccin

opts = {
lsp_styles = {
underlines = {
errors = { "undercurl" },
hints = { "undercurl" },
warnings = { "undercurl" },
information = { "undercurl" },
},
},
integrations = {
aerial = true,
alpha = true,
cmp = true,
dashboard = true,
flash = true,
fzf = true,
grug_far = true,
gitsigns = true,
headlines = true,
illuminate = true,
indent_blankline = { enabled = true },
leap = true,
lsp_trouble = true,
mason = true,
mini = true,
navic = { enabled = true, custom_bg = "lualine" },
neotest = true,
neotree = true,
noice = true,
notify = true,
snacks = true,
telescope = true,
treesitter_context = true,
which_key = true,
},
}

bufferline.nvim (optional)

opts = function(_, opts)
if (vim.g.colors_name or ""):find("catppuccin") then
opts.highlights = require("catppuccin.special.bufferline").get_theme()
end
end
+ + + + \ No newline at end of file diff --git a/plugins/editor.html b/plugins/editor.html new file mode 100644 index 0000000000..7572f2c6e7 --- /dev/null +++ b/plugins/editor.html @@ -0,0 +1,22 @@ + + + + + +Editor | LazyVim + + + + +
+

Editor

grug-far.nvim

search/replace in multiple files

opts = { headerMaxWidth = 80 }

flash.nvim

Flash enhances the built-in search functionality by showing labels +at the end of each match, letting you quickly jump to a specific +location.

opts = {}

which-key.nvim

which-key helps you remember key bindings by showing a popup +with the active keybindings of the command you started typing.

opts = {
preset = "helix",
defaults = {},
spec = {
{
mode = { "n", "x" },
{ "<leader><tab>", group = "tabs" },
{ "<leader>c", group = "code" },
{ "<leader>d", group = "debug" },
{ "<leader>dp", group = "profiler" },
{ "<leader>f", group = "file/find" },
{ "<leader>g", group = "git" },
{ "<leader>gh", group = "hunks" },
{ "<leader>q", group = "quit/session" },
{ "<leader>s", group = "search" },
{ "<leader>u", group = "ui" },
{ "<leader>x", group = "diagnostics/quickfix" },
{ "[", group = "prev" },
{ "]", group = "next" },
{ "g", group = "goto" },
{ "gs", group = "surround" },
{ "z", group = "fold" },
{
"<leader>b",
group = "buffer",
expand = function()
return require("which-key.extras").expand.buf()
end,
},
{
"<leader>w",
group = "windows",
proxy = "<c-w>",
expand = function()
return require("which-key.extras").expand.win()
end,
},
-- better descriptions
{ "gx", desc = "Open with system app" },
},
},
}

gitsigns.nvim

git signs highlights text that has changed since the list +git commit, and also lets you interactively stage & unstage +hunks in a commit.

opts = {
signs = {
add = { text = "▎" },
change = { text = "▎" },
delete = { text = "" },
topdelete = { text = "" },
changedelete = { text = "▎" },
untracked = { text = "▎" },
},
signs_staged = {
add = { text = "▎" },
change = { text = "▎" },
delete = { text = "" },
topdelete = { text = "" },
changedelete = { text = "▎" },
},
on_attach = function(buffer)
local gs = package.loaded.gitsigns

local function map(mode, l, r, desc)
vim.keymap.set(mode, l, r, { buffer = buffer, desc = desc, silent = true })
end

-- stylua: ignore start
map("n", "]h", function()
if vim.wo.diff then
vim.cmd.normal({ "]c", bang = true })
else
gs.nav_hunk("next")
end
end, "Next Hunk")
map("n", "[h", function()
if vim.wo.diff then
vim.cmd.normal({ "[c", bang = true })
else
gs.nav_hunk("prev")
end
end, "Prev Hunk")
map("n", "]H", function() gs.nav_hunk("last") end, "Last Hunk")
map("n", "[H", function() gs.nav_hunk("first") end, "First Hunk")
map({ "n", "x" }, "<leader>ghs", ":Gitsigns stage_hunk<CR>", "Stage Hunk")
map({ "n", "x" }, "<leader>ghr", ":Gitsigns reset_hunk<CR>", "Reset Hunk")
map("n", "<leader>ghS", gs.stage_buffer, "Stage Buffer")
map("n", "<leader>ghu", gs.undo_stage_hunk, "Undo Stage Hunk")
map("n", "<leader>ghR", gs.reset_buffer, "Reset Buffer")
map("n", "<leader>ghp", gs.preview_hunk_inline, "Preview Hunk Inline")
map("n", "<leader>ghb", function() gs.blame_line({ full = true }) end, "Blame Line")
map("n", "<leader>ghB", function() gs.blame() end, "Blame Buffer")
map("n", "<leader>ghd", gs.diffthis, "Diff This")
map("n", "<leader>ghD", function() gs.diffthis("~") end, "Diff This ~")
map({ "o", "x" }, "ih", ":<C-U>Gitsigns select_hunk<CR>", "GitSigns Select Hunk")
end,
}

gitsigns.nvim

opts = function()
Snacks.toggle({
name = "Git Signs",
get = function()
return require("gitsigns.config").config.signcolumn
end,
set = function(state)
require("gitsigns").toggle_signs(state)
end,
}):map("<leader>uG")
end

trouble.nvim

better diagnostics list and others

opts = {
modes = {
lsp = {
win = { position = "right" },
},
},
}

todo-comments.nvim

Finds and lists all of the TODO, HACK, BUG, etc comment +in your project and loads them into a browsable list.

opts = {}
+ + + + \ No newline at end of file diff --git a/plugins/formatting.html b/plugins/formatting.html new file mode 100644 index 0000000000..1a343ca729 --- /dev/null +++ b/plugins/formatting.html @@ -0,0 +1,17 @@ + + + + + +Formatting | LazyVim + + + + +
+

Formatting

LazyVim uses conform.nvim for formatting.

Configuring conform.nvim:

  • opts.format: extra options passed to require("conform").format(options)
  • opts.formatters: options will be merged with builtin formatters, or you can specify a new formatter.
  • opts.formatters[NAME].prepend_args: extra arguments passed to the formatter command. +If you want to fully override the args, just use args instead of prepend_args.
  • opts.formatters_by_ft: specify which formatters to use for each filetype.
caution

Don't override plugin.config directly, since this will break LazyVim formatting.

conform.nvim

opts = function()
local plugin = require("lazy.core.config").plugins["conform.nvim"]
if plugin.config ~= M.setup then
LazyVim.error({
"Don't set `plugin.config` for `conform.nvim`.\n",
"This will break **LazyVim** formatting.\n",
"Please refer to the docs at https://www.lazyvim.org/plugins/formatting",
}, { title = "LazyVim" })
end
---@type conform.setupOpts
local opts = {
default_format_opts = {
timeout_ms = 3000,
async = false, -- not recommended to change
quiet = false, -- not recommended to change
lsp_format = "fallback", -- not recommended to change
},
formatters_by_ft = {
lua = { "stylua" },
fish = { "fish_indent" },
sh = { "shfmt" },
},
-- The options you set here will be merged with the builtin formatters.
-- You can also define any custom formatters here.
---@type table<string, conform.FormatterConfigOverride|fun(bufnr: integer): nil|conform.FormatterConfigOverride>
formatters = {
injected = { options = { ignore_errors = true } },
-- # Example of using dprint only when a dprint.json file is present
-- dprint = {
-- condition = function(ctx)
-- return vim.fs.find({ "dprint.json" }, { path = ctx.filename, upward = true })[1]
-- end,
-- },
--
-- # Example of using shfmt with extra args
-- shfmt = {
-- prepend_args = { "-i", "2", "-ci" },
-- },
},
}
return opts
end

mason.nvim

opts = nil
+ + + + \ No newline at end of file diff --git a/plugins/linting.html b/plugins/linting.html new file mode 100644 index 0000000000..3049f86bd7 --- /dev/null +++ b/plugins/linting.html @@ -0,0 +1,17 @@ + + + + + +Linting | LazyVim + + + + +
+

Linting

nvim-lint

Asynchronously calls language-specific linter tools and reports +their results via the vim.diagnostic module.

opts = {
-- Event to trigger linters
events = { "BufWritePost", "BufReadPost", "InsertLeave" },
linters_by_ft = {
fish = { "fish" },
-- Use the "*" filetype to run linters on all filetypes.
-- ['*'] = { 'global linter' },
-- Use the "_" filetype to run linters on filetypes that don't have other linters configured.
-- ['_'] = { 'fallback linter' },
-- ["*"] = { "typos" },
},
-- LazyVim extension to easily override linter options
-- or add custom linters.
---@type table<string,table>
linters = {
-- -- Example of using selene only when a selene.toml file is present
-- selene = {
-- -- `condition` is another LazyVim extension that allows you to
-- -- dynamically enable/disable linters based on the context.
-- condition = function(ctx)
-- return vim.fs.find({ "selene.toml" }, { path = ctx.filename, upward = true })[1]
-- end,
-- },
},
}
+ + + + \ No newline at end of file diff --git a/plugins/lsp.html b/plugins/lsp.html new file mode 100644 index 0000000000..9ab0d7b606 --- /dev/null +++ b/plugins/lsp.html @@ -0,0 +1,18 @@ + + + + + +LSP | LazyVim + + + + +
+

LSP

⌨️ Customizing LSP Keymaps

The syntax for adding, deleting and changing LSP Keymaps, +is the same as for plugin keymaps, +but you need to configure it using the opts() method.

-- LSP keymaps
{
"neovim/nvim-lspconfig",
opts = function()
local keys = require("lazyvim.plugins.lsp.keymaps").get()
-- change a keymap
keys[#keys + 1] = { "K", "<cmd>echo 'hello'<cr>" }
-- disable a keymap
keys[#keys + 1] = { "K", false }
-- add a keymap
keys[#keys + 1] = { "H", "<cmd>echo 'hello'<cr>" }
end,
}

nvim-lspconfig

lspconfig

opts = function()
---@class PluginLspOpts
local ret = {
-- options for vim.diagnostic.config()
---@type vim.diagnostic.Opts
diagnostics = {
underline = true,
update_in_insert = false,
virtual_text = {
spacing = 4,
source = "if_many",
prefix = "●",
-- this will set set the prefix to a function that returns the diagnostics icon based on the severity
-- prefix = "icons",
},
severity_sort = true,
signs = {
text = {
[vim.diagnostic.severity.ERROR] = LazyVim.config.icons.diagnostics.Error,
[vim.diagnostic.severity.WARN] = LazyVim.config.icons.diagnostics.Warn,
[vim.diagnostic.severity.HINT] = LazyVim.config.icons.diagnostics.Hint,
[vim.diagnostic.severity.INFO] = LazyVim.config.icons.diagnostics.Info,
},
},
},
-- Enable this to enable the builtin LSP inlay hints on Neovim.
-- Be aware that you also will need to properly configure your LSP server to
-- provide the inlay hints.
inlay_hints = {
enabled = true,
exclude = { "vue" }, -- filetypes for which you don't want to enable inlay hints
},
-- Enable this to enable the builtin LSP code lenses on Neovim.
-- Be aware that you also will need to properly configure your LSP server to
-- provide the code lenses.
codelens = {
enabled = false,
},
-- Enable this to enable the builtin LSP folding on Neovim.
-- Be aware that you also will need to properly configure your LSP server to
-- provide the folds.
folds = {
enabled = true,
},
-- add any global capabilities here
capabilities = {
workspace = {
fileOperations = {
didRename = true,
willRename = true,
},
},
},
-- options for vim.lsp.buf.format
-- `bufnr` and `filter` is handled by the LazyVim formatter,
-- but can be also overridden when specified
format = {
formatting_options = nil,
timeout_ms = nil,
},
-- LSP Server Settings
---@alias lazyvim.lsp.Config vim.lsp.Config|{mason?:boolean, enabled?:boolean}
---@type table<string, lazyvim.lsp.Config|boolean>
servers = {
stylua = { enabled = false },
lua_ls = {
-- mason = false, -- set to false if you don't want this server to be installed with mason
-- Use this to add any additional keymaps
-- for specific lsp servers
-- ---@type LazyKeysSpec[]
-- keys = {},
settings = {
Lua = {
workspace = {
checkThirdParty = false,
},
codeLens = {
enable = true,
},
completion = {
callSnippet = "Replace",
},
doc = {
privateName = { "^_" },
},
hint = {
enable = true,
setType = false,
paramType = true,
paramName = "Disable",
semicolon = "Disable",
arrayIndex = "Disable",
},
},
},
},
},
-- you can do any additional lsp server setup here
-- return true if you don't want this server to be setup with lspconfig
---@type table<string, fun(server:string, opts: vim.lsp.Config):boolean?>
setup = {
-- example to setup with typescript.nvim
-- tsserver = function(_, opts)
-- require("typescript").setup({ server = opts })
-- return true
-- end,
-- Specify * to use this function as a fallback for any server
-- ["*"] = function(server, opts) end,
},
}
return ret
end

mason.nvim

opts = nil

mason-lspconfig.nvim

opts = {}

mason.nvim

cmdline tools and lsp servers

opts = {
ensure_installed = {
"stylua",
"shfmt",
},
}
+ + + + \ No newline at end of file diff --git a/plugins/treesitter.html b/plugins/treesitter.html new file mode 100644 index 0000000000..7043c4b583 --- /dev/null +++ b/plugins/treesitter.html @@ -0,0 +1,18 @@ + + + + + +TreeSitter | LazyVim + + + + +
+

TreeSitter

nvim-treesitter

Treesitter is a new parser generator tool that we can +use in Neovim to power faster and more accurate +syntax highlighting.

opts = {
-- LazyVim config for treesitter
indent = { enable = true }, ---@type lazyvim.TSFeat
highlight = { enable = true }, ---@type lazyvim.TSFeat
folds = { enable = true }, ---@type lazyvim.TSFeat
ensure_installed = {
"bash",
"c",
"diff",
"html",
"javascript",
"jsdoc",
"json",
"jsonc",
"lua",
"luadoc",
"luap",
"markdown",
"markdown_inline",
"printf",
"python",
"query",
"regex",
"toml",
"tsx",
"typescript",
"vim",
"vimdoc",
"xml",
"yaml",
},
}

nvim-treesitter-textobjects

opts = {
move = {
enable = true,
set_jumps = true, -- whether to set jumps in the jumplist
-- LazyVim extention to create buffer-local keymaps
keys = {
goto_next_start = { ["]f"] = "@function.outer", ["]c"] = "@class.outer", ["]a"] = "@parameter.inner" },
goto_next_end = { ["]F"] = "@function.outer", ["]C"] = "@class.outer", ["]A"] = "@parameter.inner" },
goto_previous_start = { ["[f"] = "@function.outer", ["[c"] = "@class.outer", ["[a"] = "@parameter.inner" },
goto_previous_end = { ["[F"] = "@function.outer", ["[C"] = "@class.outer", ["[A"] = "@parameter.inner" },
},
},
}

nvim-ts-autotag

Automatically add closing tags for HTML and JSX

opts = {}
+ + + + \ No newline at end of file diff --git a/plugins/ui.html b/plugins/ui.html new file mode 100644 index 0000000000..a50c1f795b --- /dev/null +++ b/plugins/ui.html @@ -0,0 +1,18 @@ + + + + + +UI | LazyVim + + + + +
+

UI

bufferline.nvim

This is what powers LazyVim's fancy-looking +tabs, which include filetype icons and close buttons.

opts = {
options = {
-- stylua: ignore
close_command = function(n) Snacks.bufdelete(n) end,
-- stylua: ignore
right_mouse_command = function(n) Snacks.bufdelete(n) end,
diagnostics = "nvim_lsp",
always_show_bufferline = false,
diagnostics_indicator = function(_, _, diag)
local icons = LazyVim.config.icons.diagnostics
local ret = (diag.error and icons.Error .. diag.error .. " " or "")
.. (diag.warning and icons.Warn .. diag.warning or "")
return vim.trim(ret)
end,
offsets = {
{
filetype = "neo-tree",
text = "Neo-tree",
highlight = "Directory",
text_align = "left",
},
{
filetype = "snacks_layout_box",
},
},
---@param opts bufferline.IconFetcherOpts
get_element_icon = function(opts)
return LazyVim.config.icons.ft[opts.filetype]
end,
},
}

lualine.nvim

Displays a fancy status line with git status, +LSP diagnostics, filetype information, and more.

opts = function()
-- PERF: we don't need this lualine require madness 🤷
local lualine_require = require("lualine_require")
lualine_require.require = require

local icons = LazyVim.config.icons

vim.o.laststatus = vim.g.lualine_laststatus

local opts = {
options = {
theme = "auto",
globalstatus = vim.o.laststatus == 3,
disabled_filetypes = { statusline = { "dashboard", "alpha", "ministarter", "snacks_dashboard" } },
},
sections = {
lualine_a = { "mode" },
lualine_b = { "branch" },

lualine_c = {
LazyVim.lualine.root_dir(),
{
"diagnostics",
symbols = {
error = icons.diagnostics.Error,
warn = icons.diagnostics.Warn,
info = icons.diagnostics.Info,
hint = icons.diagnostics.Hint,
},
},
{ "filetype", icon_only = true, separator = "", padding = { left = 1, right = 0 } },
{ LazyVim.lualine.pretty_path() },
},
lualine_x = {
Snacks.profiler.status(),
-- stylua: ignore
{
function() return require("noice").api.status.command.get() end,
cond = function() return package.loaded["noice"] and require("noice").api.status.command.has() end,
color = function() return { fg = Snacks.util.color("Statement") } end,
},
-- stylua: ignore
{
function() return require("noice").api.status.mode.get() end,
cond = function() return package.loaded["noice"] and require("noice").api.status.mode.has() end,
color = function() return { fg = Snacks.util.color("Constant") } end,
},
-- stylua: ignore
{
function() return " " .. require("dap").status() end,
cond = function() return package.loaded["dap"] and require("dap").status() ~= "" end,
color = function() return { fg = Snacks.util.color("Debug") } end,
},
-- stylua: ignore
{
require("lazy.status").updates,
cond = require("lazy.status").has_updates,
color = function() return { fg = Snacks.util.color("Special") } end,
},
{
"diff",
symbols = {
added = icons.git.added,
modified = icons.git.modified,
removed = icons.git.removed,
},
source = function()
local gitsigns = vim.b.gitsigns_status_dict
if gitsigns then
return {
added = gitsigns.added,
modified = gitsigns.changed,
removed = gitsigns.removed,
}
end
end,
},
},
lualine_y = {
{ "progress", separator = " ", padding = { left = 1, right = 0 } },
{ "location", padding = { left = 0, right = 1 } },
},
lualine_z = {
function()
return " " .. os.date("%R")
end,
},
},
extensions = { "neo-tree", "lazy", "fzf" },
}

-- do not add trouble symbols if aerial is enabled
-- And allow it to be overriden for some buffer types (see autocmds)
if vim.g.trouble_lualine and LazyVim.has("trouble.nvim") then
local trouble = require("trouble")
local symbols = trouble.statusline({
mode = "symbols",
groups = {},
title = false,
filter = { range = true },
format = "{kind_icon}{symbol.name:Normal}",
hl_group = "lualine_c_normal",
})
table.insert(opts.sections.lualine_c, {
symbols and symbols.get,
cond = function()
return vim.b.trouble_lualine ~= false and symbols.has()
end,
})
end

return opts
end

noice.nvim

Highly experimental plugin that completely replaces the UI for messages, cmdline and the popupmenu.

opts = {
lsp = {
override = {
["vim.lsp.util.convert_input_to_markdown_lines"] = true,
["vim.lsp.util.stylize_markdown"] = true,
["cmp.entry.get_documentation"] = true,
},
},
routes = {
{
filter = {
event = "msg_show",
any = {
{ find = "%d+L, %d+B" },
{ find = "; after #%d+" },
{ find = "; before #%d+" },
},
},
view = "mini",
},
},
presets = {
bottom_search = true,
command_palette = true,
long_message_to_split = true,
},
}

mini.icons

icons

opts = {
file = {
[".keep"] = { glyph = "󰊢", hl = "MiniIconsGrey" },
["devcontainer.json"] = { glyph = "", hl = "MiniIconsAzure" },
},
filetype = {
dotenv = { glyph = "", hl = "MiniIconsYellow" },
},
}

nui.nvim

ui components

opts = nil

snacks.nvim

opts = {
indent = { enabled = true },
input = { enabled = true },
notifier = { enabled = true },
scope = { enabled = true },
scroll = { enabled = true },
statuscolumn = { enabled = false }, -- we set this in options.lua
toggle = { map = LazyVim.safe_keymap_set },
words = { enabled = true },
}

snacks.nvim

opts = {
dashboard = {
preset = {
pick = function(cmd, opts)
return LazyVim.pick(cmd, opts)()
end,
header = [[
██╗ █████╗ ███████╗██╗ ██╗██╗ ██╗██╗███╗ ███╗ Z
██║ ██╔══██╗╚══███╔╝╚██╗ ██╔╝██║ ██║██║████╗ ████║ Z
██║ ███████║ ███╔╝ ╚████╔╝ ██║ ██║██║██╔████╔██║ z
██║ ██╔══██║ ███╔╝ ╚██╔╝ ╚██╗ ██╔╝██║██║╚██╔╝██║ z
███████╗██║ ██║███████╗ ██║ ╚████╔╝ ██║██║ ╚═╝ ██║
╚══════╝╚═╝ ╚═╝╚══════╝ ╚═╝ ╚═══╝ ╚═╝╚═╝ ╚═╝
]],
-- stylua: ignore
---@type snacks.dashboard.Item[]
keys = {
{ icon = " ", key = "f", desc = "Find File", action = ":lua Snacks.dashboard.pick('files')" },
{ icon = " ", key = "n", desc = "New File", action = ":ene | startinsert" },
{ icon = " ", key = "g", desc = "Find Text", action = ":lua Snacks.dashboard.pick('live_grep')" },
{ icon = " ", key = "r", desc = "Recent Files", action = ":lua Snacks.dashboard.pick('oldfiles')" },
{ icon = " ", key = "c", desc = "Config", action = ":lua Snacks.dashboard.pick('files', {cwd = vim.fn.stdpath('config')})" },
{ icon = " ", key = "s", desc = "Restore Session", section = "session" },
{ icon = " ", key = "x", desc = "Lazy Extras", action = ":LazyExtras" },
{ icon = "󰒲 ", key = "l", desc = "Lazy", action = ":Lazy" },
{ icon = " ", key = "q", desc = "Quit", action = ":qa" },
},
},
},
}
+ + + + \ No newline at end of file diff --git a/plugins/util.html b/plugins/util.html new file mode 100644 index 0000000000..efd87db7d2 --- /dev/null +++ b/plugins/util.html @@ -0,0 +1,18 @@ + + + + + +Util | LazyVim + + + + +
+

Util

snacks.nvim

Snacks utils

opts = {
bigfile = { enabled = true },
quickfile = { enabled = true },
terminal = {
win = {
keys = {
nav_h = { "<C-h>", term_nav("h"), desc = "Go to Left Window", expr = true, mode = "t" },
nav_j = { "<C-j>", term_nav("j"), desc = "Go to Lower Window", expr = true, mode = "t" },
nav_k = { "<C-k>", term_nav("k"), desc = "Go to Upper Window", expr = true, mode = "t" },
nav_l = { "<C-l>", term_nav("l"), desc = "Go to Right Window", expr = true, mode = "t" },
hide_slash = { "<C-/>", "hide", desc = "Hide Terminal", mode = { "t", "n" } },
hide_underscore = { "<c-_>", "hide", desc = "which_key_ignore", mode = { "t", "n" } },
},
},
},
}

persistence.nvim

Session management. This saves your session in the background, +keeping track of open buffers, window arrangement, and more. +You can restore sessions when returning through the dashboard.

opts = {}

plenary.nvim

library used by other plugins

opts = nil
+ + + + \ No newline at end of file diff --git a/scripts/build_docs.lua b/scripts/build_docs.lua deleted file mode 100644 index e057bce41b..0000000000 --- a/scripts/build_docs.lua +++ /dev/null @@ -1,60 +0,0 @@ --- DO NOT change the paths and don't remove the colorscheme -local root = vim.fn.fnamemodify("./.nvim", ":p") - --- set stdpaths to use .repro -for _, name in ipairs({ "config", "data", "state", "cache" }) do - vim.env[("XDG_%s_HOME"):format(name:upper())] = root .. "/" .. name -end - --- bootstrap lazy -local lazypath = root .. "/plugins/lazy.nvim" -if not vim.loop.fs_stat(lazypath) then - print("Bootstrapping lazy.nvim") - vim.fn.system({ "git", "clone", "--filter=blob:none", "https://github.com/folke/lazy.nvim.git", lazypath }) -end -vim.opt.runtimepath:prepend(lazypath) - --- install plugins -local plugins = { - "LazyVim/starter", - { "LazyVim/LazyVim", import = "lazyvim.plugins", dev = true, version = false }, - { "LazyVim/LazyVim", dev = true, version = false }, - { "folke/lazy.nvim", version = false }, - { "nvim-treesitter/nvim-treesitter", branch = "main", opts = { ensure_installed = {} } }, -} - -local function main() - print("Installing plugins") - require("lazy").setup(plugins, { - root = root .. "/plugins", - dev = { fallback = true }, - pkg = { enabled = false }, - }) - - if vim.o.filetype == "lazy" then - vim.cmd.close() - end - - print("Updating plugins") - -- update plugins, wait for it to finish and don't show the output - require("lazy").update({ wait = true, show = false }) - -- require("lazy.core.cache").reset() - - vim.opt.rtp:append(".") - require("nvim-treesitter").update({ "lua" }):wait(300000) -- max. 5 minutes - - print("Building docs") - - require("build").update() - - print("Done!\n") -end - -local Util = require("lazy.core.util") -Util.try(main, { - on_error = function(err) - print(err) - os.exit(1) - end, -}) -os.exit(0) diff --git a/scripts/build_docs.sh b/scripts/build_docs.sh deleted file mode 100755 index 5a2736ba54..0000000000 --- a/scripts/build_docs.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/env bash - -nvim --headless -u scripts/build_docs.lua diff --git a/search-index.json b/search-index.json new file mode 100644 index 0000000000..ebe9fd8d75 --- /dev/null +++ b/search-index.json @@ -0,0 +1 @@ +[{"documents":[{"i":1,"t":"🚀 Getting Started","u":"/","b":[]},{"i":9,"t":"⚙️ Configuration","u":"/configuration","b":["⚙️ Configuration"]},{"i":16,"t":"Examples","u":"/configuration/examples","b":["⚙️ Configuration"]},{"i":18,"t":"lazy.nvim","u":"/configuration/lazy.nvim","b":["⚙️ Configuration"]},{"i":20,"t":"Plugins","u":"/configuration/plugins","b":["⚙️ Configuration"]},{"i":30,"t":"Keymaps","u":"/configuration/keymaps","b":["⚙️ Configuration"]},{"i":40,"t":"Extras","u":"/extras","b":["⭐ Extras"]},{"i":42,"t":"Recipes","u":"/configuration/recipes","b":["⚙️ Configuration"]},{"i":57,"t":"Avante","u":"/extras/ai/avante","b":["⭐ Extras","ai"]},{"i":71,"t":"Claudecode","u":"/extras/ai/claudecode","b":["⭐ Extras","ai"]},{"i":75,"t":"General Settings","u":"/configuration/general","b":["⚙️ Configuration"]},{"i":83,"t":"Tips","u":"/configuration/tips","b":["⚙️ Configuration"]},{"i":88,"t":"Codeium","u":"/extras/ai/codeium","b":["⭐ Extras","ai"]},{"i":102,"t":"Copilot","u":"/extras/ai/copilot","b":["⭐ Extras","ai"]},{"i":112,"t":"Copilot-chat","u":"/extras/ai/copilot-chat","b":["⭐ Extras","ai"]},{"i":120,"t":"Supermaven","u":"/extras/ai/supermaven","b":["⭐ Extras","ai"]},{"i":132,"t":"Copilot-native","u":"/extras/ai/copilot-native","b":["⭐ Extras","ai"]},{"i":140,"t":"Sidekick","u":"/extras/ai/sidekick","b":["⭐ Extras","ai"]},{"i":150,"t":"Mini-comment","u":"/extras/coding/mini-comment","b":["⭐ Extras","coding"]},{"i":156,"t":"Luasnip","u":"/extras/coding/luasnip","b":["⭐ Extras","coding"]},{"i":170,"t":"Mini-surround","u":"/extras/coding/mini-surround","b":["⭐ Extras","coding"]},{"i":174,"t":"Neogen","u":"/extras/coding/neogen","b":["⭐ Extras","coding"]},{"i":178,"t":"Tabnine","u":"/extras/ai/tabnine","b":["⭐ Extras","ai"]},{"i":194,"t":"yanky.nvim","u":"/extras/coding/yanky","b":["⭐ Extras","coding"]},{"i":197,"t":"Mini-snippets","u":"/extras/coding/mini-snippets","b":["⭐ Extras","coding"]},{"i":209,"t":"Blink","u":"/extras/coding/blink","b":["⭐ Extras","coding"]},{"i":225,"t":"DAP Neovim Lua Adapter","u":"/extras/dap/nlua","b":["⭐ Extras","dap"]},{"i":231,"t":"DAP Core","u":"/extras/dap/core","b":["⭐ Extras","dap"]},{"i":245,"t":"Nvim-cmp","u":"/extras/coding/nvim-cmp","b":["⭐ Extras","coding"]},{"i":261,"t":"Aerial","u":"/extras/editor/aerial","b":["⭐ Extras","editor"]},{"i":273,"t":"Harpoon2","u":"/extras/editor/harpoon2","b":["⭐ Extras","editor"]},{"i":277,"t":"Illuminate","u":"/extras/editor/illuminate","b":["⭐ Extras","editor"]},{"i":283,"t":"Leap","u":"/extras/editor/leap","b":["⭐ Extras","editor"]},{"i":293,"t":"Dial","u":"/extras/editor/dial","b":["⭐ Extras","editor"]},{"i":297,"t":"Inc-rename","u":"/extras/editor/inc-rename","b":["⭐ Extras","editor"]},{"i":305,"t":"Mini-move","u":"/extras/editor/mini-move","b":["⭐ Extras","editor"]},{"i":309,"t":"Mini Files","u":"/extras/editor/mini-files","b":["⭐ Extras","editor"]},{"i":313,"t":"Mini-diff","u":"/extras/editor/mini-diff","b":["⭐ Extras","editor"]},{"i":321,"t":"Navic","u":"/extras/editor/navic","b":["⭐ Extras","editor"]},{"i":327,"t":"Outline","u":"/extras/editor/outline","b":["⭐ Extras","editor"]},{"i":335,"t":"Neo-tree","u":"/extras/editor/neo-tree","b":["⭐ Extras","editor"]},{"i":339,"t":"Snacks_explorer","u":"/extras/editor/snacks_explorer","b":["⭐ Extras","editor"]},{"i":343,"t":"Fzf","u":"/extras/editor/fzf","b":["⭐ Extras","editor"]},{"i":355,"t":"Refactoring","u":"/extras/editor/refactoring","b":["⭐ Extras","editor"]},{"i":363,"t":"Biome","u":"/extras/formatting/biome","b":["⭐ Extras","formatting"]},{"i":373,"t":"Prettier","u":"/extras/formatting/prettier","b":["⭐ Extras","formatting"]},{"i":383,"t":"Telescope","u":"/extras/editor/telescope","b":["⭐ Extras","editor"]},{"i":397,"t":"Angular","u":"/extras/lang/angular","b":["⭐ Extras","lang"]},{"i":409,"t":"Overseer","u":"/extras/editor/overseer","b":["⭐ Extras","editor"]},{"i":423,"t":"Black Formatter","u":"/extras/formatting/black","b":["⭐ Extras","formatting"]},{"i":431,"t":"Ansible","u":"/extras/lang/ansible","b":["⭐ Extras","lang"]},{"i":439,"t":"Astro","u":"/extras/lang/astro","b":["⭐ Extras","lang"]},{"i":451,"t":"Snacks_picker","u":"/extras/editor/snacks_picker","b":["⭐ Extras","editor"]},{"i":475,"t":"CMake","u":"/extras/lang/cmake","b":["⭐ Extras","lang"]},{"i":491,"t":"Clojure","u":"/extras/lang/clojure","b":["⭐ Extras","lang"]},{"i":505,"t":"Dart","u":"/extras/lang/dart","b":["⭐ Extras","lang"]},{"i":517,"t":"Docker","u":"/extras/lang/docker","b":["⭐ Extras","lang"]},{"i":529,"t":"Clangd","u":"/extras/lang/clangd","b":["⭐ Extras","lang"]},{"i":543,"t":"Ember","u":"/extras/lang/ember","b":["⭐ Extras","lang"]},{"i":551,"t":"Dotnet","u":"/extras/lang/dotnet","b":["⭐ Extras","lang"]},{"i":571,"t":"Erlang","u":"/extras/lang/erlang","b":["⭐ Extras","lang"]},{"i":577,"t":"Elm","u":"/extras/lang/elm","b":["⭐ Extras","lang"]},{"i":587,"t":"Git","u":"/extras/lang/git","b":["⭐ Extras","lang"]},{"i":595,"t":"Helm","u":"/extras/lang/helm","b":["⭐ Extras","lang"]},{"i":603,"t":"Elixir","u":"/extras/lang/elixir","b":["⭐ Extras","lang"]},{"i":619,"t":"Gleam","u":"/extras/lang/gleam","b":["⭐ Extras","lang"]},{"i":627,"t":"Julia","u":"/extras/lang/julia","b":["⭐ Extras","lang"]},{"i":643,"t":"Haskell","u":"/extras/lang/haskell","b":["⭐ Extras","lang"]},{"i":673,"t":"Go","u":"/extras/lang/go","b":["⭐ Extras","lang"]},{"i":703,"t":"JSON","u":"/extras/lang/json","b":["⭐ Extras","lang"]},{"i":711,"t":"Lean","u":"/extras/lang/lean","b":["⭐ Extras","lang"]},{"i":717,"t":"Java","u":"/extras/lang/java","b":["⭐ Extras","lang"]},{"i":731,"t":"Nushell","u":"/extras/lang/nushell","b":["⭐ Extras","lang"]},{"i":737,"t":"Nix","u":"/extras/lang/nix","b":["⭐ Extras","lang"]},{"i":747,"t":"Kotlin","u":"/extras/lang/kotlin","b":["⭐ Extras","lang"]},{"i":763,"t":"Ocaml","u":"/extras/lang/ocaml","b":["⭐ Extras","lang"]},{"i":769,"t":"Prisma","u":"/extras/lang/prisma","b":["⭐ Extras","lang"]},{"i":775,"t":"Markdown","u":"/extras/lang/markdown","b":["⭐ Extras","lang"]},{"i":793,"t":"Rego","u":"/extras/lang/rego","b":["⭐ Extras","lang"]},{"i":799,"t":"PHP","u":"/extras/lang/php","b":["⭐ Extras","lang"]},{"i":825,"t":"Python","u":"/extras/lang/python","b":["⭐ Extras","lang"]},{"i":849,"t":"R","u":"/extras/lang/r","b":["⭐ Extras","lang"]},{"i":865,"t":"Ruby","u":"/extras/lang/ruby","b":["⭐ Extras","lang"]},{"i":885,"t":"Scala","u":"/extras/lang/scala","b":["⭐ Extras","lang"]},{"i":895,"t":"Svelte","u":"/extras/lang/svelte","b":["⭐ Extras","lang"]},{"i":907,"t":"Rust","u":"/extras/lang/rust","b":["⭐ Extras","lang"]},{"i":923,"t":"Sql","u":"/extras/lang/sql","b":["⭐ Extras","lang"]},{"i":947,"t":"Tailwind CSS","u":"/extras/lang/tailwind","b":["⭐ Extras","lang"]},{"i":955,"t":"Thrift","u":"/extras/lang/thrift","b":["⭐ Extras","lang"]},{"i":961,"t":"Tex","u":"/extras/lang/tex","b":["⭐ Extras","lang"]},{"i":969,"t":"Terraform","u":"/extras/lang/terraform","b":["⭐ Extras","lang"]},{"i":989,"t":"Toml","u":"/extras/lang/toml","b":["⭐ Extras","lang"]},{"i":993,"t":"Twig","u":"/extras/lang/twig","b":["⭐ Extras","lang"]},{"i":1007,"t":"Typst","u":"/extras/lang/typst","b":["⭐ Extras","lang"]},{"i":1019,"t":"Vue","u":"/extras/lang/vue","b":["⭐ Extras","lang"]},{"i":1029,"t":"YAML","u":"/extras/lang/yaml","b":["⭐ Extras","lang"]},{"i":1035,"t":"Eslint","u":"/extras/linting/eslint","b":["⭐ Extras","linting"]},{"i":1041,"t":"Zig","u":"/extras/lang/zig","b":["⭐ Extras","lang"]},{"i":1051,"t":"Neoconf","u":"/extras/lsp/neoconf","b":["⭐ Extras","lsp"]},{"i":1057,"t":"Typescript","u":"/extras/lang/typescript","b":["⭐ Extras","lang"]},{"i":1069,"t":"none-ls","u":"/extras/lsp/none-ls","b":["⭐ Extras","lsp"]},{"i":1075,"t":"Neotest","u":"/extras/test/core","b":["⭐ Extras","test"]},{"i":1083,"t":"Alpha","u":"/extras/ui/alpha","b":["⭐ Extras","ui"]},{"i":1089,"t":"Indent-blankline","u":"/extras/ui/indent-blankline","b":["⭐ Extras","ui"]},{"i":1095,"t":"Dashboard-nvim","u":"/extras/ui/dashboard-nvim","b":["⭐ Extras","ui"]},{"i":1101,"t":"Mini Animate","u":"/extras/ui/mini-animate","b":["⭐ Extras","ui"]},{"i":1107,"t":"Mini-indentscope","u":"/extras/ui/mini-indentscope","b":["⭐ Extras","ui"]},{"i":1115,"t":"Smear-cursor","u":"/extras/ui/smear-cursor","b":["⭐ Extras","ui"]},{"i":1121,"t":"edgy.nvim","u":"/extras/ui/edgy","b":["⭐ Extras","ui"]},{"i":1130,"t":"Treesitter-context","u":"/extras/ui/treesitter-context","b":["⭐ Extras","ui"]},{"i":1134,"t":"Dot Files","u":"/extras/util/dot","b":["⭐ Extras","util"]},{"i":1142,"t":"Mini Starter","u":"/extras/ui/mini-starter","b":["⭐ Extras","ui"]},{"i":1148,"t":"Gh","u":"/extras/util/gh","b":["⭐ Extras","util"]},{"i":1156,"t":"Chezmoi","u":"/extras/util/chezmoi","b":["⭐ Extras","util"]},{"i":1168,"t":"Gitui","u":"/extras/util/gitui","b":["⭐ Extras","util"]},{"i":1172,"t":"Mini Hipatterns","u":"/extras/util/mini-hipatterns","b":["⭐ Extras","util"]},{"i":1176,"t":"Project","u":"/extras/util/project","b":["⭐ Extras","util"]},{"i":1192,"t":"Octo","u":"/extras/util/octo","b":["⭐ Extras","util"]},{"i":1200,"t":"Startuptime","u":"/extras/util/startuptime","b":["⭐ Extras","util"]},{"i":1204,"t":"Rest","u":"/extras/util/rest","b":["⭐ Extras","util"]},{"i":1210,"t":"VS Code","u":"/extras/vscode","b":["⭐ Extras"]},{"i":1212,"t":"🛠️ Installation","u":"/installation","b":[]},{"i":1214,"t":"📰 What's new?","u":"/news","b":[]},{"i":1237,"t":"Core Plugins","u":"/plugins","b":["📦 Plugins"]},{"i":1239,"t":"⌨️ Keymaps","u":"/keymaps","b":[]},{"i":1355,"t":"Coding","u":"/plugins/coding","b":["📦 Plugins"]},{"i":1364,"t":"Solidity","u":"/extras/lang/solidity","b":["⭐ Extras","lang"]},{"i":1372,"t":"Formatting","u":"/plugins/formatting","b":["📦 Plugins"]},{"i":1378,"t":"Linting","u":"/plugins/linting","b":["📦 Plugins"]},{"i":1381,"t":"Editor","u":"/plugins/editor","b":["📦 Plugins"]},{"i":1396,"t":"Colorscheme","u":"/plugins/colorscheme","b":["📦 Plugins"]},{"i":1404,"t":"TreeSitter","u":"/plugins/treesitter","b":["📦 Plugins"]},{"i":1411,"t":"Util","u":"/plugins/util","b":["📦 Plugins"]},{"i":1418,"t":"LSP","u":"/plugins/lsp","b":["📦 Plugins"]},{"i":1429,"t":"UI","u":"/plugins/ui","b":["📦 Plugins"]}],"index":{"version":"2.3.9","fields":["t"],"fieldVectors":[["t/1",[0,2.064,1,2.9,2,2.9]],["t/9",[0,2.602,3,3.655]],["t/16",[4,4.942]],["t/18",[5,4.942]],["t/20",[6,4.382]],["t/30",[7,4.382]],["t/40",[8,4.942]],["t/42",[9,4.942]],["t/57",[10,4.942]],["t/71",[11,4.942]],["t/75",[12,3.655,13,3.655]],["t/83",[14,4.942]],["t/88",[15,4.942]],["t/102",[16,4.013]],["t/112",[16,2.968,17,3.655]],["t/120",[18,4.942]],["t/132",[16,2.968,19,3.655]],["t/140",[20,4.942]],["t/150",[21,2.077,22,3.655]],["t/156",[23,4.942]],["t/170",[21,2.077,24,3.655]],["t/174",[25,4.942]],["t/178",[26,4.942]],["t/194",[27,4.942]],["t/197",[21,2.077,28,3.655]],["t/209",[29,4.942]],["t/225",[30,2.131,31,2.403,32,2.403,33,2.403]],["t/231",[30,3.241,34,3.241]],["t/245",[35,3.241,36,3.655]],["t/261",[37,4.942]],["t/273",[38,4.942]],["t/277",[39,4.942]],["t/283",[40,4.942]],["t/293",[41,4.942]],["t/297",[42,3.655,43,3.655]],["t/305",[21,2.077,44,3.655]],["t/309",[21,2.077,45,3.241]],["t/313",[21,2.077,46,3.655]],["t/321",[47,4.942]],["t/327",[48,4.942]],["t/335",[49,3.655,50,3.655]],["t/339",[51,4.942]],["t/343",[52,4.942]],["t/355",[53,4.942]],["t/363",[54,4.942]],["t/373",[55,4.942]],["t/383",[56,4.942]],["t/397",[57,4.942]],["t/409",[58,4.942]],["t/423",[59,3.655,60,3.655]],["t/431",[61,4.942]],["t/439",[62,4.942]],["t/451",[63,4.942]],["t/475",[64,4.942]],["t/491",[65,4.942]],["t/505",[66,4.942]],["t/517",[67,4.942]],["t/529",[68,4.942]],["t/543",[69,4.942]],["t/551",[70,4.942]],["t/571",[71,4.942]],["t/577",[72,4.942]],["t/587",[73,4.942]],["t/595",[74,4.942]],["t/603",[75,4.942]],["t/619",[76,4.942]],["t/627",[77,4.942]],["t/643",[78,4.942]],["t/673",[79,4.942]],["t/703",[80,4.942]],["t/711",[81,4.942]],["t/717",[82,4.942]],["t/731",[83,4.942]],["t/737",[84,4.942]],["t/747",[85,4.942]],["t/763",[86,4.942]],["t/769",[87,4.942]],["t/775",[88,4.942]],["t/793",[89,4.942]],["t/799",[90,4.942]],["t/825",[91,4.942]],["t/849",[92,4.942]],["t/865",[93,4.942]],["t/885",[94,4.942]],["t/895",[95,4.942]],["t/907",[96,4.942]],["t/923",[97,4.942]],["t/947",[98,3.655,99,3.655]],["t/955",[100,4.942]],["t/961",[101,4.942]],["t/969",[102,4.942]],["t/989",[103,4.942]],["t/993",[104,4.942]],["t/1007",[105,4.942]],["t/1019",[106,4.942]],["t/1029",[107,4.942]],["t/1035",[108,4.942]],["t/1041",[109,4.942]],["t/1051",[110,4.942]],["t/1057",[111,4.942]],["t/1069",[112,3.655,113,3.655]],["t/1075",[114,4.942]],["t/1083",[115,4.942]],["t/1089",[116,3.655,117,3.655]],["t/1095",[35,3.241,118,3.655]],["t/1101",[21,2.077,119,3.655]],["t/1107",[21,2.077,120,3.655]],["t/1115",[121,3.655,122,3.655]],["t/1121",[123,4.942]],["t/1130",[124,3.241,125,3.655]],["t/1134",[45,3.241,126,3.655]],["t/1142",[21,2.077,127,3.655]],["t/1148",[128,4.942]],["t/1156",[129,4.942]],["t/1168",[130,4.942]],["t/1172",[21,2.077,131,3.655]],["t/1176",[132,4.942]],["t/1192",[133,4.942]],["t/1200",[134,4.942]],["t/1204",[135,4.942]],["t/1210",[136,3.655,137,3.241]],["t/1212",[0,2.602,138,3.655]],["t/1214",[0,2.064,139,2.9,140,2.9]],["t/1237",[6,3.241,34,3.241]],["t/1239",[0,2.602,7,3.241]],["t/1355",[137,4.382]],["t/1364",[141,4.942]],["t/1372",[142,4.942]],["t/1378",[143,4.942]],["t/1381",[144,4.942]],["t/1396",[145,4.942]],["t/1404",[124,4.382]],["t/1411",[146,4.942]],["t/1418",[147,4.942]],["t/1429",[148,4.942]]],"invertedIndex":[["",{"_index":0,"t":{"1":{"position":[[0,2]]},"9":{"position":[[0,2]]},"1212":{"position":[[0,3]]},"1214":{"position":[[0,2]]},"1239":{"position":[[0,2]]}}}],["adapt",{"_index":33,"t":{"225":{"position":[[15,7]]}}}],["aerial",{"_index":37,"t":{"261":{"position":[[0,6]]}}}],["alpha",{"_index":115,"t":{"1083":{"position":[[0,5]]}}}],["angular",{"_index":57,"t":{"397":{"position":[[0,7]]}}}],["anim",{"_index":119,"t":{"1101":{"position":[[5,7]]}}}],["ansibl",{"_index":61,"t":{"431":{"position":[[0,7]]}}}],["astro",{"_index":62,"t":{"439":{"position":[[0,5]]}}}],["avant",{"_index":10,"t":{"57":{"position":[[0,6]]}}}],["biom",{"_index":54,"t":{"363":{"position":[[0,5]]}}}],["black",{"_index":59,"t":{"423":{"position":[[0,5]]}}}],["blanklin",{"_index":117,"t":{"1089":{"position":[[7,9]]}}}],["blink",{"_index":29,"t":{"209":{"position":[[0,5]]}}}],["chat",{"_index":17,"t":{"112":{"position":[[8,4]]}}}],["chezmoi",{"_index":129,"t":{"1156":{"position":[[0,7]]}}}],["clangd",{"_index":68,"t":{"529":{"position":[[0,6]]}}}],["claudecod",{"_index":11,"t":{"71":{"position":[[0,10]]}}}],["clojur",{"_index":65,"t":{"491":{"position":[[0,7]]}}}],["cmake",{"_index":64,"t":{"475":{"position":[[0,5]]}}}],["cmp",{"_index":36,"t":{"245":{"position":[[5,3]]}}}],["code",{"_index":137,"t":{"1210":{"position":[[3,4]]},"1355":{"position":[[0,6]]}}}],["codeium",{"_index":15,"t":{"88":{"position":[[0,7]]}}}],["colorschem",{"_index":145,"t":{"1396":{"position":[[0,11]]}}}],["comment",{"_index":22,"t":{"150":{"position":[[5,7]]}}}],["configur",{"_index":3,"t":{"9":{"position":[[3,13]]}}}],["context",{"_index":125,"t":{"1130":{"position":[[11,7]]}}}],["copilot",{"_index":16,"t":{"102":{"position":[[0,7]]},"112":{"position":[[0,7]]},"132":{"position":[[0,7]]}}}],["core",{"_index":34,"t":{"231":{"position":[[4,4]]},"1237":{"position":[[0,4]]}}}],["css",{"_index":99,"t":{"947":{"position":[[9,3]]}}}],["cursor",{"_index":122,"t":{"1115":{"position":[[6,6]]}}}],["dap",{"_index":30,"t":{"225":{"position":[[0,3]]},"231":{"position":[[0,3]]}}}],["dart",{"_index":66,"t":{"505":{"position":[[0,4]]}}}],["dashboard",{"_index":118,"t":{"1095":{"position":[[0,9]]}}}],["dial",{"_index":41,"t":{"293":{"position":[[0,4]]}}}],["diff",{"_index":46,"t":{"313":{"position":[[5,4]]}}}],["docker",{"_index":67,"t":{"517":{"position":[[0,6]]}}}],["dot",{"_index":126,"t":{"1134":{"position":[[0,3]]}}}],["dotnet",{"_index":70,"t":{"551":{"position":[[0,6]]}}}],["edgy.nvim",{"_index":123,"t":{"1121":{"position":[[0,9]]}}}],["editor",{"_index":144,"t":{"1381":{"position":[[0,6]]}}}],["elixir",{"_index":75,"t":{"603":{"position":[[0,6]]}}}],["elm",{"_index":72,"t":{"577":{"position":[[0,3]]}}}],["ember",{"_index":69,"t":{"543":{"position":[[0,5]]}}}],["erlang",{"_index":71,"t":{"571":{"position":[[0,6]]}}}],["eslint",{"_index":108,"t":{"1035":{"position":[[0,6]]}}}],["exampl",{"_index":4,"t":{"16":{"position":[[0,8]]}}}],["extra",{"_index":8,"t":{"40":{"position":[[0,6]]}}}],["file",{"_index":45,"t":{"309":{"position":[[5,5]]},"1134":{"position":[[4,5]]}}}],["format",{"_index":142,"t":{"1372":{"position":[[0,10]]}}}],["formatt",{"_index":60,"t":{"423":{"position":[[6,9]]}}}],["fzf",{"_index":52,"t":{"343":{"position":[[0,3]]}}}],["gener",{"_index":12,"t":{"75":{"position":[[0,7]]}}}],["get",{"_index":1,"t":{"1":{"position":[[3,7]]}}}],["gh",{"_index":128,"t":{"1148":{"position":[[0,2]]}}}],["git",{"_index":73,"t":{"587":{"position":[[0,3]]}}}],["gitui",{"_index":130,"t":{"1168":{"position":[[0,5]]}}}],["gleam",{"_index":76,"t":{"619":{"position":[[0,5]]}}}],["go",{"_index":79,"t":{"673":{"position":[[0,2]]}}}],["harpoon2",{"_index":38,"t":{"273":{"position":[[0,8]]}}}],["haskel",{"_index":78,"t":{"643":{"position":[[0,7]]}}}],["helm",{"_index":74,"t":{"595":{"position":[[0,4]]}}}],["hipattern",{"_index":131,"t":{"1172":{"position":[[5,10]]}}}],["illumin",{"_index":39,"t":{"277":{"position":[[0,10]]}}}],["inc",{"_index":42,"t":{"297":{"position":[[0,3]]}}}],["indent",{"_index":116,"t":{"1089":{"position":[[0,6]]}}}],["indentscop",{"_index":120,"t":{"1107":{"position":[[5,11]]}}}],["instal",{"_index":138,"t":{"1212":{"position":[[4,12]]}}}],["java",{"_index":82,"t":{"717":{"position":[[0,4]]}}}],["json",{"_index":80,"t":{"703":{"position":[[0,4]]}}}],["julia",{"_index":77,"t":{"627":{"position":[[0,5]]}}}],["keymap",{"_index":7,"t":{"30":{"position":[[0,7]]},"1239":{"position":[[3,7]]}}}],["kotlin",{"_index":85,"t":{"747":{"position":[[0,6]]}}}],["lazy.nvim",{"_index":5,"t":{"18":{"position":[[0,9]]}}}],["lean",{"_index":81,"t":{"711":{"position":[[0,4]]}}}],["leap",{"_index":40,"t":{"283":{"position":[[0,4]]}}}],["lint",{"_index":143,"t":{"1378":{"position":[[0,7]]}}}],["ls",{"_index":113,"t":{"1069":{"position":[[5,2]]}}}],["lsp",{"_index":147,"t":{"1418":{"position":[[0,3]]}}}],["lua",{"_index":32,"t":{"225":{"position":[[11,3]]}}}],["luasnip",{"_index":23,"t":{"156":{"position":[[0,7]]}}}],["markdown",{"_index":88,"t":{"775":{"position":[[0,8]]}}}],["mini",{"_index":21,"t":{"150":{"position":[[0,4]]},"170":{"position":[[0,4]]},"197":{"position":[[0,4]]},"305":{"position":[[0,4]]},"309":{"position":[[0,4]]},"313":{"position":[[0,4]]},"1101":{"position":[[0,4]]},"1107":{"position":[[0,4]]},"1142":{"position":[[0,4]]},"1172":{"position":[[0,4]]}}}],["move",{"_index":44,"t":{"305":{"position":[[5,4]]}}}],["nativ",{"_index":19,"t":{"132":{"position":[[8,6]]}}}],["navic",{"_index":47,"t":{"321":{"position":[[0,5]]}}}],["neo",{"_index":49,"t":{"335":{"position":[[0,3]]}}}],["neoconf",{"_index":110,"t":{"1051":{"position":[[0,7]]}}}],["neogen",{"_index":25,"t":{"174":{"position":[[0,6]]}}}],["neotest",{"_index":114,"t":{"1075":{"position":[[0,7]]}}}],["neovim",{"_index":31,"t":{"225":{"position":[[4,6]]}}}],["new",{"_index":140,"t":{"1214":{"position":[[10,4]]}}}],["nix",{"_index":84,"t":{"737":{"position":[[0,3]]}}}],["none",{"_index":112,"t":{"1069":{"position":[[0,4]]}}}],["nushel",{"_index":83,"t":{"731":{"position":[[0,7]]}}}],["nvim",{"_index":35,"t":{"245":{"position":[[0,4]]},"1095":{"position":[[10,4]]}}}],["ocaml",{"_index":86,"t":{"763":{"position":[[0,5]]}}}],["octo",{"_index":133,"t":{"1192":{"position":[[0,4]]}}}],["outlin",{"_index":48,"t":{"327":{"position":[[0,7]]}}}],["overs",{"_index":58,"t":{"409":{"position":[[0,8]]}}}],["php",{"_index":90,"t":{"799":{"position":[[0,3]]}}}],["plugin",{"_index":6,"t":{"20":{"position":[[0,7]]},"1237":{"position":[[5,7]]}}}],["prettier",{"_index":55,"t":{"373":{"position":[[0,8]]}}}],["prisma",{"_index":87,"t":{"769":{"position":[[0,6]]}}}],["project",{"_index":132,"t":{"1176":{"position":[[0,7]]}}}],["python",{"_index":91,"t":{"825":{"position":[[0,6]]}}}],["r",{"_index":92,"t":{"849":{"position":[[0,1]]}}}],["recip",{"_index":9,"t":{"42":{"position":[[0,7]]}}}],["refactor",{"_index":53,"t":{"355":{"position":[[0,11]]}}}],["rego",{"_index":89,"t":{"793":{"position":[[0,4]]}}}],["renam",{"_index":43,"t":{"297":{"position":[[4,6]]}}}],["rest",{"_index":135,"t":{"1204":{"position":[[0,4]]}}}],["rubi",{"_index":93,"t":{"865":{"position":[[0,4]]}}}],["rust",{"_index":96,"t":{"907":{"position":[[0,4]]}}}],["scala",{"_index":94,"t":{"885":{"position":[[0,5]]}}}],["set",{"_index":13,"t":{"75":{"position":[[8,8]]}}}],["sidekick",{"_index":20,"t":{"140":{"position":[[0,8]]}}}],["smear",{"_index":121,"t":{"1115":{"position":[[0,5]]}}}],["snacks_explor",{"_index":51,"t":{"339":{"position":[[0,15]]}}}],["snacks_pick",{"_index":63,"t":{"451":{"position":[[0,13]]}}}],["snippet",{"_index":28,"t":{"197":{"position":[[5,8]]}}}],["solid",{"_index":141,"t":{"1364":{"position":[[0,8]]}}}],["sql",{"_index":97,"t":{"923":{"position":[[0,3]]}}}],["start",{"_index":2,"t":{"1":{"position":[[11,7]]}}}],["starter",{"_index":127,"t":{"1142":{"position":[[5,7]]}}}],["startuptim",{"_index":134,"t":{"1200":{"position":[[0,11]]}}}],["supermaven",{"_index":18,"t":{"120":{"position":[[0,10]]}}}],["surround",{"_index":24,"t":{"170":{"position":[[5,8]]}}}],["svelt",{"_index":95,"t":{"895":{"position":[[0,6]]}}}],["tabnin",{"_index":26,"t":{"178":{"position":[[0,7]]}}}],["tailwind",{"_index":98,"t":{"947":{"position":[[0,8]]}}}],["telescop",{"_index":56,"t":{"383":{"position":[[0,9]]}}}],["terraform",{"_index":102,"t":{"969":{"position":[[0,9]]}}}],["tex",{"_index":101,"t":{"961":{"position":[[0,3]]}}}],["thrift",{"_index":100,"t":{"955":{"position":[[0,6]]}}}],["tip",{"_index":14,"t":{"83":{"position":[[0,4]]}}}],["toml",{"_index":103,"t":{"989":{"position":[[0,4]]}}}],["tree",{"_index":50,"t":{"335":{"position":[[4,4]]}}}],["treesitt",{"_index":124,"t":{"1130":{"position":[[0,10]]},"1404":{"position":[[0,10]]}}}],["twig",{"_index":104,"t":{"993":{"position":[[0,4]]}}}],["typescript",{"_index":111,"t":{"1057":{"position":[[0,10]]}}}],["typst",{"_index":105,"t":{"1007":{"position":[[0,5]]}}}],["ui",{"_index":148,"t":{"1429":{"position":[[0,2]]}}}],["util",{"_index":146,"t":{"1411":{"position":[[0,4]]}}}],["vs",{"_index":136,"t":{"1210":{"position":[[0,2]]}}}],["vue",{"_index":106,"t":{"1019":{"position":[[0,3]]}}}],["what'",{"_index":139,"t":{"1214":{"position":[[3,6]]}}}],["yaml",{"_index":107,"t":{"1029":{"position":[[0,4]]}}}],["yanky.nvim",{"_index":27,"t":{"194":{"position":[[0,10]]}}}],["zig",{"_index":109,"t":{"1041":{"position":[[0,3]]}}}]],"pipeline":["stemmer"]}},{"documents":[{"i":3,"t":"✨ Features","u":"/","h":"#-features","p":1},{"i":5,"t":"⚡️ Requirements","u":"/","h":"#️-requirements","p":1},{"i":7,"t":"🎓 Learn","u":"/","h":"#-learn","p":1},{"i":10,"t":"📂 File Structure","u":"/configuration","h":"#-file-structure","p":9},{"i":12,"t":"Icons & Colorscheme","u":"/configuration","h":"#icons--colorscheme","p":9},{"i":14,"t":"Default Settings","u":"/configuration","h":"#default-settings","p":9},{"i":22,"t":"➕ Adding Plugins","u":"/configuration/plugins","h":"#-adding-plugins","p":20},{"i":24,"t":"❌ Disabling Plugins","u":"/configuration/plugins","h":"#-disabling-plugins","p":20},{"i":26,"t":"✏️ Customizing Plugin Specs","u":"/configuration/plugins","h":"#️-customizing-plugin-specs","p":20},{"i":28,"t":"⌨️ Adding & Disabling Plugin Keymaps","u":"/configuration/plugins","h":"#️-adding--disabling-plugin-keymaps","p":20},{"i":32,"t":"Global keymaps","u":"/configuration/keymaps","h":"#global-keymaps","p":30},{"i":34,"t":"Plugin keymaps","u":"/configuration/keymaps","h":"#plugin-keymaps","p":30},{"i":36,"t":"LSP keymaps","u":"/configuration/keymaps","h":"#lsp-keymaps","p":30},{"i":38,"t":"LSP Server keymaps","u":"/configuration/keymaps","h":"#lsp-server-keymaps","p":30},{"i":43,"t":"Add a nvim-cmp source","u":"/configuration/recipes","h":"#add-a-nvim-cmp-source","p":42},{"i":45,"t":"Supertab","u":"/configuration/recipes","h":"#supertab","p":42},{"i":47,"t":"Change surround mappings","u":"/configuration/recipes","h":"#change-surround-mappings","p":42},{"i":49,"t":"Make TokyoNight Transparent","u":"/configuration/recipes","h":"#make-tokyonight-transparent","p":42},{"i":51,"t":"Fix clangd offset encoding","u":"/configuration/recipes","h":"#fix-clangd-offset-encoding","p":42},{"i":53,"t":"Use Eslint for fix on save and prettier for formatting","u":"/configuration/recipes","h":"#use-eslint-for-fix-on-save-and-prettier-for-formatting","p":42},{"i":55,"t":"Add Eslint and use it for formatting","u":"/configuration/recipes","h":"#add-eslint-and-use-it-for-formatting","p":42},{"i":59,"t":"nui.nvim","u":"/extras/ai/avante","h":"#nuinvim","p":57},{"i":61,"t":"avante.nvim","u":"/extras/ai/avante","h":"#avantenvim","p":57},{"i":63,"t":"blink-cmp-avante","u":"/extras/ai/avante","h":"#blink-cmp-avante","p":57},{"i":65,"t":"img-clip.nvim (optional)","u":"/extras/ai/avante","h":"#img-clipnvim-optional","p":57},{"i":67,"t":"render-markdown.nvim (optional)","u":"/extras/ai/avante","h":"#render-markdownnvim-optional","p":57},{"i":69,"t":"blink.cmp (optional)","u":"/extras/ai/avante","h":"#blinkcmp-optional","p":57},{"i":73,"t":"claudecode.nvim","u":"/extras/ai/claudecode","h":"#claudecodenvim","p":71},{"i":77,"t":"Options","u":"/configuration/general","h":"#options","p":75},{"i":79,"t":"Keymaps","u":"/configuration/general","h":"#keymaps","p":75},{"i":81,"t":"Auto Commands","u":"/configuration/general","h":"#auto-commands","p":75},{"i":84,"t":"Navigating around multiple buffers","u":"/configuration/tips","h":"#navigating-around-multiple-buffers","p":83},{"i":86,"t":"Disable autoformat for some buffers","u":"/configuration/tips","h":"#disable-autoformat-for-some-buffers","p":83},{"i":90,"t":"codeium.nvim","u":"/extras/ai/codeium","h":"#codeiumnvim","p":88},{"i":92,"t":"codeium.nvim","u":"/extras/ai/codeium","h":"#codeiumnvim-1","p":88},{"i":94,"t":"codeium.nvim","u":"/extras/ai/codeium","h":"#codeiumnvim-2","p":88},{"i":96,"t":"codeium.nvim","u":"/extras/ai/codeium","h":"#codeiumnvim-3","p":88},{"i":98,"t":"nvim-cmp (optional)","u":"/extras/ai/codeium","h":"#nvim-cmp-optional","p":88},{"i":100,"t":"lualine.nvim (optional)","u":"/extras/ai/codeium","h":"#lualinenvim-optional","p":88},{"i":104,"t":"copilot.lua","u":"/extras/ai/copilot","h":"#copilotlua","p":102},{"i":106,"t":"nvim-lspconfig","u":"/extras/ai/copilot","h":"#nvim-lspconfig","p":102},{"i":108,"t":"copilot.lua","u":"/extras/ai/copilot","h":"#copilotlua-1","p":102},{"i":110,"t":"lualine.nvim (optional)","u":"/extras/ai/copilot","h":"#lualinenvim-optional","p":102},{"i":114,"t":"CopilotChat.nvim","u":"/extras/ai/copilot-chat","h":"#copilotchatnvim","p":112},{"i":116,"t":"edgy.nvim (optional)","u":"/extras/ai/copilot-chat","h":"#edgynvim-optional","p":112},{"i":118,"t":"blink.cmp (optional)","u":"/extras/ai/copilot-chat","h":"#blinkcmp-optional","p":112},{"i":122,"t":"supermaven-nvim","u":"/extras/ai/supermaven","h":"#supermaven-nvim","p":120},{"i":124,"t":"supermaven-nvim","u":"/extras/ai/supermaven","h":"#supermaven-nvim-1","p":120},{"i":126,"t":"supermaven-nvim","u":"/extras/ai/supermaven","h":"#supermaven-nvim-2","p":120},{"i":128,"t":"supermaven-nvim","u":"/extras/ai/supermaven","h":"#supermaven-nvim-3","p":120},{"i":130,"t":"nvim-cmp (optional)","u":"/extras/ai/supermaven","h":"#nvim-cmp-optional","p":120},{"i":134,"t":"Options","u":"/extras/ai/copilot-native","h":"#options","p":132},{"i":136,"t":"nvim-lspconfig","u":"/extras/ai/copilot-native","h":"#nvim-lspconfig","p":132},{"i":138,"t":"lualine.nvim (optional)","u":"/extras/ai/copilot-native","h":"#lualinenvim-optional","p":132},{"i":142,"t":"nvim-lspconfig","u":"/extras/ai/sidekick","h":"#nvim-lspconfig","p":140},{"i":144,"t":"sidekick.nvim","u":"/extras/ai/sidekick","h":"#sidekicknvim","p":140},{"i":146,"t":"lualine.nvim (optional)","u":"/extras/ai/sidekick","h":"#lualinenvim-optional","p":140},{"i":148,"t":"snacks.nvim (optional)","u":"/extras/ai/sidekick","h":"#snacksnvim-optional","p":140},{"i":152,"t":"mini.comment","u":"/extras/coding/mini-comment","h":"#minicomment","p":150},{"i":154,"t":"nvim-ts-context-commentstring","u":"/extras/coding/mini-comment","h":"#nvim-ts-context-commentstring","p":150},{"i":158,"t":"LuaSnip","u":"/extras/coding/luasnip","h":"#luasnip-1","p":156},{"i":160,"t":"friendly-snippets","u":"/extras/coding/luasnip","h":"#friendly-snippets","p":156},{"i":162,"t":"LuaSnip","u":"/extras/coding/luasnip","h":"#luasnip-2","p":156},{"i":164,"t":"cmp_luasnip","u":"/extras/coding/luasnip","h":"#cmp_luasnip","p":156},{"i":166,"t":"nvim-cmp (optional)","u":"/extras/coding/luasnip","h":"#nvim-cmp-optional","p":156},{"i":168,"t":"blink.cmp (optional)","u":"/extras/coding/luasnip","h":"#blinkcmp-optional","p":156},{"i":172,"t":"mini.surround","u":"/extras/coding/mini-surround","h":"#minisurround","p":170},{"i":176,"t":"neogen","u":"/extras/coding/neogen","h":"#neogen-1","p":174},{"i":180,"t":"cmp-tabnine","u":"/extras/ai/tabnine","h":"#cmp-tabnine","p":178},{"i":182,"t":"cmp-tabnine","u":"/extras/ai/tabnine","h":"#cmp-tabnine-1","p":178},{"i":184,"t":"cmp-tabnine","u":"/extras/ai/tabnine","h":"#cmp-tabnine-2","p":178},{"i":186,"t":"blink.compat","u":"/extras/ai/tabnine","h":"#blinkcompat","p":178},{"i":188,"t":"nvim-cmp (optional)","u":"/extras/ai/tabnine","h":"#nvim-cmp-optional","p":178},{"i":190,"t":"blink.cmp (optional)","u":"/extras/ai/tabnine","h":"#blinkcmp-optional","p":178},{"i":192,"t":"lualine.nvim (optional)","u":"/extras/ai/tabnine","h":"#lualinenvim-optional","p":178},{"i":199,"t":"Options","u":"/extras/coding/mini-snippets","h":"#options","p":197},{"i":201,"t":"mini.snippets","u":"/extras/coding/mini-snippets","h":"#minisnippets","p":197},{"i":203,"t":"cmp-mini-snippets","u":"/extras/coding/mini-snippets","h":"#cmp-mini-snippets","p":197},{"i":205,"t":"nvim-cmp (optional)","u":"/extras/coding/mini-snippets","h":"#nvim-cmp-optional","p":197},{"i":207,"t":"blink.cmp (optional)","u":"/extras/coding/mini-snippets","h":"#blinkcmp-optional","p":197},{"i":211,"t":"Options","u":"/extras/coding/blink","h":"#options","p":209},{"i":213,"t":"blink.cmp","u":"/extras/coding/blink","h":"#blinkcmp","p":209},{"i":215,"t":"friendly-snippets","u":"/extras/coding/blink","h":"#friendly-snippets","p":209},{"i":217,"t":"blink.cmp","u":"/extras/coding/blink","h":"#blinkcmp-1","p":209},{"i":219,"t":"blink.cmp","u":"/extras/coding/blink","h":"#blinkcmp-2","p":209},{"i":221,"t":"blink.compat (optional)","u":"/extras/coding/blink","h":"#blinkcompat-optional","p":209},{"i":223,"t":"catppuccin (optional)","u":"/extras/coding/blink","h":"#catppuccin-optional","p":209},{"i":227,"t":"nvim-dap","u":"/extras/dap/nlua","h":"#nvim-dap","p":225},{"i":229,"t":"one-small-step-for-vimkind","u":"/extras/dap/nlua","h":"#one-small-step-for-vimkind","p":225},{"i":233,"t":"nvim-dap","u":"/extras/dap/core","h":"#nvim-dap","p":231},{"i":235,"t":"nvim-dap-ui","u":"/extras/dap/core","h":"#nvim-dap-ui","p":231},{"i":237,"t":"nvim-dap-virtual-text","u":"/extras/dap/core","h":"#nvim-dap-virtual-text","p":231},{"i":239,"t":"nvim-dap-ui","u":"/extras/dap/core","h":"#nvim-dap-ui-1","p":231},{"i":241,"t":"nvim-nio","u":"/extras/dap/core","h":"#nvim-nio","p":231},{"i":243,"t":"mason-nvim-dap.nvim","u":"/extras/dap/core","h":"#mason-nvim-dapnvim","p":231},{"i":247,"t":"nvim-cmp","u":"/extras/coding/nvim-cmp","h":"#nvim-cmp-1","p":245},{"i":249,"t":"cmp-nvim-lsp","u":"/extras/coding/nvim-cmp","h":"#cmp-nvim-lsp","p":245},{"i":251,"t":"cmp-buffer","u":"/extras/coding/nvim-cmp","h":"#cmp-buffer","p":245},{"i":253,"t":"cmp-path","u":"/extras/coding/nvim-cmp","h":"#cmp-path","p":245},{"i":255,"t":"nvim-cmp","u":"/extras/coding/nvim-cmp","h":"#nvim-cmp-2","p":245},{"i":257,"t":"nvim-snippets","u":"/extras/coding/nvim-cmp","h":"#nvim-snippets","p":245},{"i":259,"t":"friendly-snippets","u":"/extras/coding/nvim-cmp","h":"#friendly-snippets","p":245},{"i":263,"t":"aerial.nvim","u":"/extras/editor/aerial","h":"#aerialnvim","p":261},{"i":265,"t":"trouble.nvim (optional)","u":"/extras/editor/aerial","h":"#troublenvim-optional","p":261},{"i":267,"t":"telescope.nvim (optional)","u":"/extras/editor/aerial","h":"#telescopenvim-optional","p":261},{"i":269,"t":"edgy.nvim (optional)","u":"/extras/editor/aerial","h":"#edgynvim-optional","p":261},{"i":271,"t":"lualine.nvim (optional)","u":"/extras/editor/aerial","h":"#lualinenvim-optional","p":261},{"i":275,"t":"harpoon","u":"/extras/editor/harpoon2","h":"#harpoon","p":273},{"i":279,"t":"snacks.nvim","u":"/extras/editor/illuminate","h":"#snacksnvim","p":277},{"i":281,"t":"vim-illuminate","u":"/extras/editor/illuminate","h":"#vim-illuminate","p":277},{"i":285,"t":"flit.nvim","u":"/extras/editor/leap","h":"#flitnvim","p":283},{"i":287,"t":"leap.nvim","u":"/extras/editor/leap","h":"#leapnvim","p":283},{"i":289,"t":"vim-repeat","u":"/extras/editor/leap","h":"#vim-repeat","p":283},{"i":291,"t":"mini.surround (optional)","u":"/extras/editor/leap","h":"#minisurround-optional","p":283},{"i":295,"t":"dial.nvim","u":"/extras/editor/dial","h":"#dialnvim","p":293},{"i":299,"t":"inc-rename.nvim","u":"/extras/editor/inc-rename","h":"#inc-renamenvim","p":297},{"i":301,"t":"nvim-lspconfig","u":"/extras/editor/inc-rename","h":"#nvim-lspconfig","p":297},{"i":303,"t":"noice.nvim (optional)","u":"/extras/editor/inc-rename","h":"#noicenvim-optional","p":297},{"i":307,"t":"mini.move","u":"/extras/editor/mini-move","h":"#minimove","p":305},{"i":311,"t":"mini.files","u":"/extras/editor/mini-files","h":"#minifiles","p":309},{"i":315,"t":"mini.diff","u":"/extras/editor/mini-diff","h":"#minidiff","p":313},{"i":317,"t":"mini.diff","u":"/extras/editor/mini-diff","h":"#minidiff-1","p":313},{"i":319,"t":"lualine.nvim","u":"/extras/editor/mini-diff","h":"#lualinenvim","p":313},{"i":323,"t":"nvim-navic","u":"/extras/editor/navic","h":"#nvim-navic","p":321},{"i":325,"t":"lualine.nvim (optional)","u":"/extras/editor/navic","h":"#lualinenvim-optional","p":321},{"i":329,"t":"outline.nvim","u":"/extras/editor/outline","h":"#outlinenvim","p":327},{"i":331,"t":"trouble.nvim (optional)","u":"/extras/editor/outline","h":"#troublenvim-optional","p":327},{"i":333,"t":"edgy.nvim (optional)","u":"/extras/editor/outline","h":"#edgynvim-optional","p":327},{"i":337,"t":"neo-tree.nvim","u":"/extras/editor/neo-tree","h":"#neo-treenvim","p":335},{"i":341,"t":"snacks.nvim","u":"/extras/editor/snacks_explorer","h":"#snacksnvim","p":339},{"i":345,"t":"Options","u":"/extras/editor/fzf","h":"#options","p":343},{"i":347,"t":"fzf-lua","u":"/extras/editor/fzf","h":"#fzf-lua","p":343},{"i":349,"t":"fzf-lua","u":"/extras/editor/fzf","h":"#fzf-lua-1","p":343},{"i":351,"t":"nvim-lspconfig","u":"/extras/editor/fzf","h":"#nvim-lspconfig","p":343},{"i":353,"t":"todo-comments.nvim (optional)","u":"/extras/editor/fzf","h":"#todo-commentsnvim-optional","p":343},{"i":357,"t":"refactoring.nvim","u":"/extras/editor/refactoring","h":"#refactoringnvim","p":355},{"i":359,"t":"plenary.nvim","u":"/extras/editor/refactoring","h":"#plenarynvim","p":355},{"i":361,"t":"nvim-treesitter","u":"/extras/editor/refactoring","h":"#nvim-treesitter","p":355},{"i":365,"t":"Options","u":"/extras/formatting/biome","h":"#options","p":363},{"i":367,"t":"mason.nvim","u":"/extras/formatting/biome","h":"#masonnvim","p":363},{"i":369,"t":"conform.nvim (optional)","u":"/extras/formatting/biome","h":"#conformnvim-optional","p":363},{"i":371,"t":"none-ls.nvim (optional)","u":"/extras/formatting/biome","h":"#none-lsnvim-optional","p":363},{"i":375,"t":"Options","u":"/extras/formatting/prettier","h":"#options","p":373},{"i":377,"t":"mason.nvim","u":"/extras/formatting/prettier","h":"#masonnvim","p":373},{"i":379,"t":"conform.nvim (optional)","u":"/extras/formatting/prettier","h":"#conformnvim-optional","p":373},{"i":381,"t":"none-ls.nvim (optional)","u":"/extras/formatting/prettier","h":"#none-lsnvim-optional","p":373},{"i":385,"t":"Options","u":"/extras/editor/telescope","h":"#options","p":383},{"i":387,"t":"telescope.nvim","u":"/extras/editor/telescope","h":"#telescopenvim","p":383},{"i":389,"t":"dressing.nvim","u":"/extras/editor/telescope","h":"#dressingnvim","p":383},{"i":391,"t":"telescope.nvim","u":"/extras/editor/telescope","h":"#telescopenvim-1","p":383},{"i":393,"t":"telescope-fzf-native.nvim","u":"/extras/editor/telescope","h":"#telescope-fzf-nativenvim","p":383},{"i":395,"t":"nvim-lspconfig","u":"/extras/editor/telescope","h":"#nvim-lspconfig","p":383},{"i":399,"t":"Includes the following extras","u":"/extras/lang/angular","h":"#includes-the-following-extras","p":397},{"i":401,"t":"nvim-treesitter","u":"/extras/lang/angular","h":"#nvim-treesitter","p":397},{"i":403,"t":"nvim-lspconfig","u":"/extras/lang/angular","h":"#nvim-lspconfig","p":397},{"i":405,"t":"nvim-lspconfig","u":"/extras/lang/angular","h":"#nvim-lspconfig-1","p":397},{"i":407,"t":"conform.nvim","u":"/extras/lang/angular","h":"#conformnvim","p":397},{"i":411,"t":"overseer.nvim","u":"/extras/editor/overseer","h":"#overseernvim","p":409},{"i":413,"t":"catppuccin (optional)","u":"/extras/editor/overseer","h":"#catppuccin-optional","p":409},{"i":415,"t":"which-key.nvim (optional)","u":"/extras/editor/overseer","h":"#which-keynvim-optional","p":409},{"i":417,"t":"edgy.nvim (optional)","u":"/extras/editor/overseer","h":"#edgynvim-optional","p":409},{"i":419,"t":"neotest (optional)","u":"/extras/editor/overseer","h":"#neotest-optional","p":409},{"i":421,"t":"nvim-dap (optional)","u":"/extras/editor/overseer","h":"#nvim-dap-optional","p":409},{"i":425,"t":"mason.nvim","u":"/extras/formatting/black","h":"#masonnvim","p":423},{"i":427,"t":"none-ls.nvim (optional)","u":"/extras/formatting/black","h":"#none-lsnvim-optional","p":423},{"i":429,"t":"conform.nvim (optional)","u":"/extras/formatting/black","h":"#conformnvim-optional","p":423},{"i":433,"t":"mason.nvim","u":"/extras/lang/ansible","h":"#masonnvim","p":431},{"i":435,"t":"nvim-lspconfig","u":"/extras/lang/ansible","h":"#nvim-lspconfig","p":431},{"i":437,"t":"nvim-ansible","u":"/extras/lang/ansible","h":"#nvim-ansible","p":431},{"i":441,"t":"Includes the following extras","u":"/extras/lang/astro","h":"#includes-the-following-extras","p":439},{"i":443,"t":"nvim-treesitter","u":"/extras/lang/astro","h":"#nvim-treesitter","p":439},{"i":445,"t":"nvim-lspconfig","u":"/extras/lang/astro","h":"#nvim-lspconfig","p":439},{"i":447,"t":"nvim-lspconfig","u":"/extras/lang/astro","h":"#nvim-lspconfig-1","p":439},{"i":449,"t":"conform.nvim","u":"/extras/lang/astro","h":"#conformnvim","p":439},{"i":453,"t":"Options","u":"/extras/editor/snacks_picker","h":"#options","p":451},{"i":455,"t":"snacks.nvim","u":"/extras/editor/snacks_picker","h":"#snacksnvim","p":451},{"i":457,"t":"snacks.nvim","u":"/extras/editor/snacks_picker","h":"#snacksnvim-1","p":451},{"i":459,"t":"nvim-lspconfig","u":"/extras/editor/snacks_picker","h":"#nvim-lspconfig","p":451},{"i":461,"t":"snacks.nvim","u":"/extras/editor/snacks_picker","h":"#snacksnvim-2","p":451},{"i":463,"t":"snacks.nvim","u":"/extras/editor/snacks_picker","h":"#snacksnvim-3","p":451},{"i":465,"t":"todo-comments.nvim (optional)","u":"/extras/editor/snacks_picker","h":"#todo-commentsnvim-optional","p":451},{"i":467,"t":"alpha-nvim (optional)","u":"/extras/editor/snacks_picker","h":"#alpha-nvim-optional","p":451},{"i":469,"t":"mini.starter (optional)","u":"/extras/editor/snacks_picker","h":"#ministarter-optional","p":451},{"i":471,"t":"dashboard-nvim (optional)","u":"/extras/editor/snacks_picker","h":"#dashboard-nvim-optional","p":451},{"i":473,"t":"flash.nvim (optional)","u":"/extras/editor/snacks_picker","h":"#flashnvim-optional","p":451},{"i":477,"t":"nvim-treesitter","u":"/extras/lang/cmake","h":"#nvim-treesitter","p":475},{"i":479,"t":"mason.nvim","u":"/extras/lang/cmake","h":"#masonnvim","p":475},{"i":481,"t":"nvim-lspconfig","u":"/extras/lang/cmake","h":"#nvim-lspconfig","p":475},{"i":483,"t":"cmake-tools.nvim","u":"/extras/lang/cmake","h":"#cmake-toolsnvim","p":475},{"i":485,"t":"cmake-tools.nvim","u":"/extras/lang/cmake","h":"#cmake-toolsnvim-1","p":475},{"i":487,"t":"none-ls.nvim (optional)","u":"/extras/lang/cmake","h":"#none-lsnvim-optional","p":475},{"i":489,"t":"nvim-lint (optional)","u":"/extras/lang/cmake","h":"#nvim-lint-optional","p":475},{"i":493,"t":"nvim-treesitter","u":"/extras/lang/clojure","h":"#nvim-treesitter","p":491},{"i":495,"t":"cmp-conjure","u":"/extras/lang/clojure","h":"#cmp-conjure","p":491},{"i":497,"t":"nvim-paredit","u":"/extras/lang/clojure","h":"#nvim-paredit","p":491},{"i":499,"t":"baleia.nvim","u":"/extras/lang/clojure","h":"#baleianvim","p":491},{"i":501,"t":"conjure","u":"/extras/lang/clojure","h":"#conjure","p":491},{"i":503,"t":"nvim-cmp (optional)","u":"/extras/lang/clojure","h":"#nvim-cmp-optional","p":491},{"i":507,"t":"nvim-lspconfig","u":"/extras/lang/dart","h":"#nvim-lspconfig","p":505},{"i":509,"t":"nvim-treesitter","u":"/extras/lang/dart","h":"#nvim-treesitter","p":505},{"i":511,"t":"conform.nvim","u":"/extras/lang/dart","h":"#conformnvim","p":505},{"i":513,"t":"neotest-dart","u":"/extras/lang/dart","h":"#neotest-dart","p":505},{"i":515,"t":"neotest (optional)","u":"/extras/lang/dart","h":"#neotest-optional","p":505},{"i":519,"t":"nvim-treesitter","u":"/extras/lang/docker","h":"#nvim-treesitter","p":517},{"i":521,"t":"mason.nvim","u":"/extras/lang/docker","h":"#masonnvim","p":517},{"i":523,"t":"nvim-lspconfig","u":"/extras/lang/docker","h":"#nvim-lspconfig","p":517},{"i":525,"t":"none-ls.nvim (optional)","u":"/extras/lang/docker","h":"#none-lsnvim-optional","p":517},{"i":527,"t":"nvim-lint (optional)","u":"/extras/lang/docker","h":"#nvim-lint-optional","p":517},{"i":531,"t":"nvim-treesitter","u":"/extras/lang/clangd","h":"#nvim-treesitter","p":529},{"i":533,"t":"clangd_extensions.nvim","u":"/extras/lang/clangd","h":"#clangd_extensionsnvim","p":529},{"i":535,"t":"nvim-lspconfig","u":"/extras/lang/clangd","h":"#nvim-lspconfig","p":529},{"i":537,"t":"nvim-cmp (optional)","u":"/extras/lang/clangd","h":"#nvim-cmp-optional","p":529},{"i":539,"t":"nvim-dap (optional)","u":"/extras/lang/clangd","h":"#nvim-dap-optional","p":529},{"i":541,"t":"mason.nvim (optional)","u":"/extras/lang/clangd","h":"#masonnvim-optional","p":529},{"i":545,"t":"nvim-treesitter","u":"/extras/lang/ember","h":"#nvim-treesitter","p":543},{"i":547,"t":"nvim-lspconfig","u":"/extras/lang/ember","h":"#nvim-lspconfig","p":543},{"i":549,"t":"conform.nvim","u":"/extras/lang/ember","h":"#conformnvim","p":543},{"i":553,"t":"omnisharp-extended-lsp.nvim","u":"/extras/lang/dotnet","h":"#omnisharp-extended-lspnvim","p":551},{"i":555,"t":"nvim-treesitter","u":"/extras/lang/dotnet","h":"#nvim-treesitter","p":551},{"i":557,"t":"mason.nvim","u":"/extras/lang/dotnet","h":"#masonnvim","p":551},{"i":559,"t":"nvim-lspconfig","u":"/extras/lang/dotnet","h":"#nvim-lspconfig","p":551},{"i":561,"t":"neotest-vstest","u":"/extras/lang/dotnet","h":"#neotest-vstest","p":551},{"i":563,"t":"none-ls.nvim (optional)","u":"/extras/lang/dotnet","h":"#none-lsnvim-optional","p":551},{"i":565,"t":"conform.nvim (optional)","u":"/extras/lang/dotnet","h":"#conformnvim-optional","p":551},{"i":567,"t":"nvim-dap (optional)","u":"/extras/lang/dotnet","h":"#nvim-dap-optional","p":551},{"i":569,"t":"neotest (optional)","u":"/extras/lang/dotnet","h":"#neotest-optional","p":551},{"i":573,"t":"nvim-lspconfig","u":"/extras/lang/erlang","h":"#nvim-lspconfig","p":571},{"i":575,"t":"nvim-treesitter","u":"/extras/lang/erlang","h":"#nvim-treesitter","p":571},{"i":579,"t":"nvim-treesitter","u":"/extras/lang/elm","h":"#nvim-treesitter","p":577},{"i":581,"t":"mason.nvim","u":"/extras/lang/elm","h":"#masonnvim","p":577},{"i":583,"t":"nvim-lspconfig","u":"/extras/lang/elm","h":"#nvim-lspconfig","p":577},{"i":585,"t":"conform.nvim (optional)","u":"/extras/lang/elm","h":"#conformnvim-optional","p":577},{"i":589,"t":"nvim-treesitter","u":"/extras/lang/git","h":"#nvim-treesitter","p":587},{"i":591,"t":"cmp-git","u":"/extras/lang/git","h":"#cmp-git","p":587},{"i":593,"t":"nvim-cmp (optional)","u":"/extras/lang/git","h":"#nvim-cmp-optional","p":587},{"i":597,"t":"helm-ls.nvim","u":"/extras/lang/helm","h":"#helm-lsnvim","p":595},{"i":599,"t":"nvim-treesitter","u":"/extras/lang/helm","h":"#nvim-treesitter","p":595},{"i":601,"t":"nvim-lspconfig","u":"/extras/lang/helm","h":"#nvim-lspconfig","p":595},{"i":605,"t":"nvim-lspconfig","u":"/extras/lang/elixir","h":"#nvim-lspconfig","p":603},{"i":607,"t":"nvim-treesitter","u":"/extras/lang/elixir","h":"#nvim-treesitter","p":603},{"i":609,"t":"neotest-elixir","u":"/extras/lang/elixir","h":"#neotest-elixir","p":603},{"i":611,"t":"neotest (optional)","u":"/extras/lang/elixir","h":"#neotest-optional","p":603},{"i":613,"t":"none-ls.nvim (optional)","u":"/extras/lang/elixir","h":"#none-lsnvim-optional","p":603},{"i":615,"t":"nvim-lint (optional)","u":"/extras/lang/elixir","h":"#nvim-lint-optional","p":603},{"i":617,"t":"render-markdown.nvim (optional)","u":"/extras/lang/elixir","h":"#render-markdownnvim-optional","p":603},{"i":621,"t":"nvim-treesitter","u":"/extras/lang/gleam","h":"#nvim-treesitter","p":619},{"i":623,"t":"nvim-lspconfig","u":"/extras/lang/gleam","h":"#nvim-lspconfig","p":619},{"i":625,"t":"conform.nvim (optional)","u":"/extras/lang/gleam","h":"#conformnvim-optional","p":619},{"i":629,"t":"nvim-treesitter","u":"/extras/lang/julia","h":"#nvim-treesitter","p":627},{"i":631,"t":"nvim-lspconfig","u":"/extras/lang/julia","h":"#nvim-lspconfig","p":627},{"i":633,"t":"cmp-latex-symbols","u":"/extras/lang/julia","h":"#cmp-latex-symbols","p":627},{"i":635,"t":"cmp-latex-symbols","u":"/extras/lang/julia","h":"#cmp-latex-symbols-1","p":627},{"i":637,"t":"blink.compat","u":"/extras/lang/julia","h":"#blinkcompat","p":627},{"i":639,"t":"nvim-cmp (optional)","u":"/extras/lang/julia","h":"#nvim-cmp-optional","p":627},{"i":641,"t":"blink.cmp (optional)","u":"/extras/lang/julia","h":"#blinkcmp-optional","p":627},{"i":645,"t":"nvim-treesitter","u":"/extras/lang/haskell","h":"#nvim-treesitter","p":643},{"i":647,"t":"haskell-tools.nvim","u":"/extras/lang/haskell","h":"#haskell-toolsnvim","p":643},{"i":649,"t":"mason.nvim","u":"/extras/lang/haskell","h":"#masonnvim","p":643},{"i":651,"t":"mason.nvim","u":"/extras/lang/haskell","h":"#masonnvim-1","p":643},{"i":653,"t":"neotest-haskell","u":"/extras/lang/haskell","h":"#neotest-haskell","p":643},{"i":655,"t":"haskell-snippets.nvim","u":"/extras/lang/haskell","h":"#haskell-snippetsnvim","p":643},{"i":657,"t":"LuaSnip","u":"/extras/lang/haskell","h":"#luasnip","p":643},{"i":659,"t":"telescope_hoogle","u":"/extras/lang/haskell","h":"#telescope_hoogle","p":643},{"i":661,"t":"nvim-lspconfig","u":"/extras/lang/haskell","h":"#nvim-lspconfig","p":643},{"i":663,"t":"nvim-dap (optional)","u":"/extras/lang/haskell","h":"#nvim-dap-optional","p":643},{"i":665,"t":"neotest (optional)","u":"/extras/lang/haskell","h":"#neotest-optional","p":643},{"i":667,"t":"telescope.nvim (optional)","u":"/extras/lang/haskell","h":"#telescopenvim-optional","p":643},{"i":669,"t":"conform.nvim (optional)","u":"/extras/lang/haskell","h":"#conformnvim-optional","p":643},{"i":671,"t":"nvim-lint (optional)","u":"/extras/lang/haskell","h":"#nvim-lint-optional","p":643},{"i":675,"t":"nvim-treesitter","u":"/extras/lang/go","h":"#nvim-treesitter","p":673},{"i":677,"t":"nvim-lspconfig","u":"/extras/lang/go","h":"#nvim-lspconfig","p":673},{"i":679,"t":"mason.nvim","u":"/extras/lang/go","h":"#masonnvim","p":673},{"i":681,"t":"mason.nvim","u":"/extras/lang/go","h":"#masonnvim-1","p":673},{"i":683,"t":"mason.nvim","u":"/extras/lang/go","h":"#masonnvim-2","p":673},{"i":685,"t":"mason.nvim","u":"/extras/lang/go","h":"#masonnvim-3","p":673},{"i":687,"t":"nvim-dap-go","u":"/extras/lang/go","h":"#nvim-dap-go","p":673},{"i":689,"t":"neotest-golang","u":"/extras/lang/go","h":"#neotest-golang","p":673},{"i":691,"t":"mini.icons","u":"/extras/lang/go","h":"#miniicons","p":673},{"i":693,"t":"none-ls.nvim (optional)","u":"/extras/lang/go","h":"#none-lsnvim-optional","p":673},{"i":695,"t":"nvim-lint (optional)","u":"/extras/lang/go","h":"#nvim-lint-optional","p":673},{"i":697,"t":"conform.nvim (optional)","u":"/extras/lang/go","h":"#conformnvim-optional","p":673},{"i":699,"t":"nvim-dap (optional)","u":"/extras/lang/go","h":"#nvim-dap-optional","p":673},{"i":701,"t":"neotest (optional)","u":"/extras/lang/go","h":"#neotest-optional","p":673},{"i":705,"t":"nvim-treesitter","u":"/extras/lang/json","h":"#nvim-treesitter","p":703},{"i":707,"t":"SchemaStore.nvim","u":"/extras/lang/json","h":"#schemastorenvim","p":703},{"i":709,"t":"nvim-lspconfig","u":"/extras/lang/json","h":"#nvim-lspconfig","p":703},{"i":713,"t":"lean.nvim","u":"/extras/lang/lean","h":"#leannvim","p":711},{"i":715,"t":"plenary.nvim","u":"/extras/lang/lean","h":"#plenarynvim","p":711},{"i":719,"t":"nvim-treesitter","u":"/extras/lang/java","h":"#nvim-treesitter","p":717},{"i":721,"t":"mason.nvim","u":"/extras/lang/java","h":"#masonnvim","p":717},{"i":723,"t":"nvim-lspconfig","u":"/extras/lang/java","h":"#nvim-lspconfig","p":717},{"i":725,"t":"nvim-jdtls","u":"/extras/lang/java","h":"#nvim-jdtls","p":717},{"i":727,"t":"which-key.nvim","u":"/extras/lang/java","h":"#which-keynvim","p":717},{"i":729,"t":"nvim-dap (optional)","u":"/extras/lang/java","h":"#nvim-dap-optional","p":717},{"i":733,"t":"nvim-lspconfig","u":"/extras/lang/nushell","h":"#nvim-lspconfig","p":731},{"i":735,"t":"nvim-treesitter","u":"/extras/lang/nushell","h":"#nvim-treesitter","p":731},{"i":739,"t":"nvim-treesitter","u":"/extras/lang/nix","h":"#nvim-treesitter","p":737},{"i":741,"t":"nvim-lspconfig","u":"/extras/lang/nix","h":"#nvim-lspconfig","p":737},{"i":743,"t":"conform.nvim (optional)","u":"/extras/lang/nix","h":"#conformnvim-optional","p":737},{"i":745,"t":"nvim-lint (optional)","u":"/extras/lang/nix","h":"#nvim-lint-optional","p":737},{"i":749,"t":"mason.nvim","u":"/extras/lang/kotlin","h":"#masonnvim","p":747},{"i":751,"t":"nvim-treesitter","u":"/extras/lang/kotlin","h":"#nvim-treesitter","p":747},{"i":753,"t":"nvim-lspconfig","u":"/extras/lang/kotlin","h":"#nvim-lspconfig","p":747},{"i":755,"t":"nvim-lint (optional)","u":"/extras/lang/kotlin","h":"#nvim-lint-optional","p":747},{"i":757,"t":"conform.nvim (optional)","u":"/extras/lang/kotlin","h":"#conformnvim-optional","p":747},{"i":759,"t":"none-ls.nvim (optional)","u":"/extras/lang/kotlin","h":"#none-lsnvim-optional","p":747},{"i":761,"t":"nvim-dap (optional)","u":"/extras/lang/kotlin","h":"#nvim-dap-optional","p":747},{"i":765,"t":"nvim-treesitter","u":"/extras/lang/ocaml","h":"#nvim-treesitter","p":763},{"i":767,"t":"nvim-lspconfig","u":"/extras/lang/ocaml","h":"#nvim-lspconfig","p":763},{"i":771,"t":"nvim-treesitter","u":"/extras/lang/prisma","h":"#nvim-treesitter","p":769},{"i":773,"t":"nvim-lspconfig","u":"/extras/lang/prisma","h":"#nvim-lspconfig","p":769},{"i":777,"t":"mason.nvim","u":"/extras/lang/markdown","h":"#masonnvim","p":775},{"i":779,"t":"nvim-lspconfig","u":"/extras/lang/markdown","h":"#nvim-lspconfig","p":775},{"i":781,"t":"markdown-preview.nvim","u":"/extras/lang/markdown","h":"#markdown-previewnvim","p":775},{"i":783,"t":"markdown-preview.nvim","u":"/extras/lang/markdown","h":"#markdown-previewnvim-1","p":775},{"i":785,"t":"render-markdown.nvim","u":"/extras/lang/markdown","h":"#render-markdownnvim","p":775},{"i":787,"t":"conform.nvim (optional)","u":"/extras/lang/markdown","h":"#conformnvim-optional","p":775},{"i":789,"t":"none-ls.nvim (optional)","u":"/extras/lang/markdown","h":"#none-lsnvim-optional","p":775},{"i":791,"t":"nvim-lint (optional)","u":"/extras/lang/markdown","h":"#nvim-lint-optional","p":775},{"i":795,"t":"nvim-lspconfig","u":"/extras/lang/rego","h":"#nvim-lspconfig","p":793},{"i":797,"t":"nvim-treesitter","u":"/extras/lang/rego","h":"#nvim-treesitter","p":793},{"i":801,"t":"Options","u":"/extras/lang/php","h":"#options","p":799},{"i":803,"t":"nvim-treesitter","u":"/extras/lang/php","h":"#nvim-treesitter","p":799},{"i":805,"t":"nvim-lspconfig","u":"/extras/lang/php","h":"#nvim-lspconfig","p":799},{"i":807,"t":"mason.nvim","u":"/extras/lang/php","h":"#masonnvim","p":799},{"i":809,"t":"neotest-pest","u":"/extras/lang/php","h":"#neotest-pest","p":799},{"i":811,"t":"neotest-phpunit","u":"/extras/lang/php","h":"#neotest-phpunit","p":799},{"i":813,"t":"neotest-pest","u":"/extras/lang/php","h":"#neotest-pest-1","p":799},{"i":815,"t":"nvim-dap (optional)","u":"/extras/lang/php","h":"#nvim-dap-optional","p":799},{"i":817,"t":"none-ls.nvim (optional)","u":"/extras/lang/php","h":"#none-lsnvim-optional","p":799},{"i":819,"t":"nvim-lint (optional)","u":"/extras/lang/php","h":"#nvim-lint-optional","p":799},{"i":821,"t":"conform.nvim (optional)","u":"/extras/lang/php","h":"#conformnvim-optional","p":799},{"i":823,"t":"neotest (optional)","u":"/extras/lang/php","h":"#neotest-optional","p":799},{"i":827,"t":"Options","u":"/extras/lang/python","h":"#options","p":825},{"i":829,"t":"nvim-treesitter","u":"/extras/lang/python","h":"#nvim-treesitter","p":825},{"i":831,"t":"nvim-lspconfig","u":"/extras/lang/python","h":"#nvim-lspconfig","p":825},{"i":833,"t":"nvim-lspconfig","u":"/extras/lang/python","h":"#nvim-lspconfig-1","p":825},{"i":835,"t":"neotest-python","u":"/extras/lang/python","h":"#neotest-python","p":825},{"i":837,"t":"nvim-dap-python","u":"/extras/lang/python","h":"#nvim-dap-python","p":825},{"i":839,"t":"venv-selector.nvim","u":"/extras/lang/python","h":"#venv-selectornvim","p":825},{"i":841,"t":"neotest (optional)","u":"/extras/lang/python","h":"#neotest-optional","p":825},{"i":843,"t":"nvim-dap (optional)","u":"/extras/lang/python","h":"#nvim-dap-optional","p":825},{"i":845,"t":"nvim-cmp (optional)","u":"/extras/lang/python","h":"#nvim-cmp-optional","p":825},{"i":847,"t":"mason-nvim-dap.nvim (optional)","u":"/extras/lang/python","h":"#mason-nvim-dapnvim-optional","p":825},{"i":851,"t":"R.nvim","u":"/extras/lang/r","h":"#rnvim","p":849},{"i":853,"t":"cmp-r","u":"/extras/lang/r","h":"#cmp-r","p":849},{"i":855,"t":"nvim-treesitter","u":"/extras/lang/r","h":"#nvim-treesitter","p":849},{"i":857,"t":"nvim-lspconfig","u":"/extras/lang/r","h":"#nvim-lspconfig","p":849},{"i":859,"t":"neotest-testthat","u":"/extras/lang/r","h":"#neotest-testthat","p":849},{"i":861,"t":"nvim-cmp (optional)","u":"/extras/lang/r","h":"#nvim-cmp-optional","p":849},{"i":863,"t":"neotest (optional)","u":"/extras/lang/r","h":"#neotest-optional","p":849},{"i":867,"t":"Options","u":"/extras/lang/ruby","h":"#options","p":865},{"i":869,"t":"nvim-treesitter","u":"/extras/lang/ruby","h":"#nvim-treesitter","p":865},{"i":871,"t":"nvim-lspconfig","u":"/extras/lang/ruby","h":"#nvim-lspconfig","p":865},{"i":873,"t":"mason.nvim","u":"/extras/lang/ruby","h":"#masonnvim","p":865},{"i":875,"t":"nvim-dap-ruby","u":"/extras/lang/ruby","h":"#nvim-dap-ruby","p":865},{"i":877,"t":"neotest-rspec","u":"/extras/lang/ruby","h":"#neotest-rspec","p":865},{"i":879,"t":"nvim-dap (optional)","u":"/extras/lang/ruby","h":"#nvim-dap-optional","p":865},{"i":881,"t":"conform.nvim (optional)","u":"/extras/lang/ruby","h":"#conformnvim-optional","p":865},{"i":883,"t":"neotest (optional)","u":"/extras/lang/ruby","h":"#neotest-optional","p":865},{"i":887,"t":"nvim-treesitter","u":"/extras/lang/scala","h":"#nvim-treesitter","p":885},{"i":889,"t":"nvim-metals","u":"/extras/lang/scala","h":"#nvim-metals","p":885},{"i":891,"t":"plenary.nvim","u":"/extras/lang/scala","h":"#plenarynvim","p":885},{"i":893,"t":"nvim-dap (optional)","u":"/extras/lang/scala","h":"#nvim-dap-optional","p":885},{"i":897,"t":"Includes the following extras","u":"/extras/lang/svelte","h":"#includes-the-following-extras","p":895},{"i":899,"t":"nvim-treesitter","u":"/extras/lang/svelte","h":"#nvim-treesitter","p":895},{"i":901,"t":"nvim-lspconfig","u":"/extras/lang/svelte","h":"#nvim-lspconfig","p":895},{"i":903,"t":"nvim-lspconfig","u":"/extras/lang/svelte","h":"#nvim-lspconfig-1","p":895},{"i":905,"t":"conform.nvim","u":"/extras/lang/svelte","h":"#conformnvim","p":895},{"i":909,"t":"Options","u":"/extras/lang/rust","h":"#options","p":907},{"i":911,"t":"crates.nvim","u":"/extras/lang/rust","h":"#cratesnvim","p":907},{"i":913,"t":"nvim-treesitter","u":"/extras/lang/rust","h":"#nvim-treesitter","p":907},{"i":915,"t":"rustaceanvim","u":"/extras/lang/rust","h":"#rustaceanvim","p":907},{"i":917,"t":"nvim-lspconfig","u":"/extras/lang/rust","h":"#nvim-lspconfig","p":907},{"i":919,"t":"mason.nvim (optional)","u":"/extras/lang/rust","h":"#masonnvim-optional","p":907},{"i":921,"t":"neotest (optional)","u":"/extras/lang/rust","h":"#neotest-optional","p":907},{"i":925,"t":"Options","u":"/extras/lang/sql","h":"#options","p":923},{"i":927,"t":"vim-dadbod","u":"/extras/lang/sql","h":"#vim-dadbod","p":923},{"i":929,"t":"vim-dadbod-completion","u":"/extras/lang/sql","h":"#vim-dadbod-completion","p":923},{"i":931,"t":"vim-dadbod-ui","u":"/extras/lang/sql","h":"#vim-dadbod-ui","p":923},{"i":933,"t":"vim-dadbod-completion","u":"/extras/lang/sql","h":"#vim-dadbod-completion-1","p":923},{"i":935,"t":"mason.nvim","u":"/extras/lang/sql","h":"#masonnvim","p":923},{"i":937,"t":"nvim-treesitter (optional)","u":"/extras/lang/sql","h":"#nvim-treesitter-optional","p":923},{"i":939,"t":"edgy.nvim (optional)","u":"/extras/lang/sql","h":"#edgynvim-optional","p":923},{"i":941,"t":"blink.cmp (optional)","u":"/extras/lang/sql","h":"#blinkcmp-optional","p":923},{"i":943,"t":"nvim-lint (optional)","u":"/extras/lang/sql","h":"#nvim-lint-optional","p":923},{"i":945,"t":"conform.nvim (optional)","u":"/extras/lang/sql","h":"#conformnvim-optional","p":923},{"i":949,"t":"nvim-lspconfig","u":"/extras/lang/tailwind","h":"#nvim-lspconfig","p":947},{"i":951,"t":"tailwindcss-colorizer-cmp.nvim","u":"/extras/lang/tailwind","h":"#tailwindcss-colorizer-cmpnvim","p":947},{"i":953,"t":"nvim-cmp (optional)","u":"/extras/lang/tailwind","h":"#nvim-cmp-optional","p":947},{"i":957,"t":"nvim-treesitter","u":"/extras/lang/thrift","h":"#nvim-treesitter","p":955},{"i":959,"t":"nvim-lspconfig (optional)","u":"/extras/lang/thrift","h":"#nvim-lspconfig-optional","p":955},{"i":963,"t":"nvim-treesitter","u":"/extras/lang/tex","h":"#nvim-treesitter","p":961},{"i":965,"t":"vimtex","u":"/extras/lang/tex","h":"#vimtex","p":961},{"i":967,"t":"nvim-lspconfig (optional)","u":"/extras/lang/tex","h":"#nvim-lspconfig-optional","p":961},{"i":971,"t":"nvim-treesitter","u":"/extras/lang/terraform","h":"#nvim-treesitter","p":969},{"i":973,"t":"nvim-lspconfig","u":"/extras/lang/terraform","h":"#nvim-lspconfig","p":969},{"i":975,"t":"mason.nvim","u":"/extras/lang/terraform","h":"#masonnvim","p":969},{"i":977,"t":"telescope-terraform-doc.nvim","u":"/extras/lang/terraform","h":"#telescope-terraform-docnvim","p":969},{"i":979,"t":"telescope-terraform.nvim","u":"/extras/lang/terraform","h":"#telescope-terraformnvim","p":969},{"i":981,"t":"none-ls.nvim (optional)","u":"/extras/lang/terraform","h":"#none-lsnvim-optional","p":969},{"i":983,"t":"nvim-lint (optional)","u":"/extras/lang/terraform","h":"#nvim-lint-optional","p":969},{"i":985,"t":"conform.nvim (optional)","u":"/extras/lang/terraform","h":"#conformnvim-optional","p":969},{"i":987,"t":"telescope.nvim (optional)","u":"/extras/lang/terraform","h":"#telescopenvim-optional","p":969},{"i":991,"t":"nvim-lspconfig","u":"/extras/lang/toml","h":"#nvim-lspconfig","p":989},{"i":995,"t":"nvim-treesitter","u":"/extras/lang/twig","h":"#nvim-treesitter","p":993},{"i":997,"t":"mason.nvim","u":"/extras/lang/twig","h":"#masonnvim","p":993},{"i":999,"t":"nvim-lspconfig","u":"/extras/lang/twig","h":"#nvim-lspconfig","p":993},{"i":1001,"t":"none-ls.nvim (optional)","u":"/extras/lang/twig","h":"#none-lsnvim-optional","p":993},{"i":1003,"t":"nvim-lint (optional)","u":"/extras/lang/twig","h":"#nvim-lint-optional","p":993},{"i":1005,"t":"conform.nvim (optional)","u":"/extras/lang/twig","h":"#conformnvim-optional","p":993},{"i":1009,"t":"nvim-treesitter","u":"/extras/lang/typst","h":"#nvim-treesitter","p":1007},{"i":1011,"t":"nvim-lspconfig","u":"/extras/lang/typst","h":"#nvim-lspconfig","p":1007},{"i":1013,"t":"typst-preview.nvim","u":"/extras/lang/typst","h":"#typst-previewnvim","p":1007},{"i":1015,"t":"ts-comments.nvim","u":"/extras/lang/typst","h":"#ts-commentsnvim","p":1007},{"i":1017,"t":"conform.nvim (optional)","u":"/extras/lang/typst","h":"#conformnvim-optional","p":1007},{"i":1021,"t":"Includes the following extras","u":"/extras/lang/vue","h":"#includes-the-following-extras","p":1019},{"i":1023,"t":"nvim-treesitter","u":"/extras/lang/vue","h":"#nvim-treesitter","p":1019},{"i":1025,"t":"nvim-lspconfig","u":"/extras/lang/vue","h":"#nvim-lspconfig","p":1019},{"i":1027,"t":"nvim-lspconfig","u":"/extras/lang/vue","h":"#nvim-lspconfig-1","p":1019},{"i":1031,"t":"SchemaStore.nvim","u":"/extras/lang/yaml","h":"#schemastorenvim","p":1029},{"i":1033,"t":"nvim-lspconfig","u":"/extras/lang/yaml","h":"#nvim-lspconfig","p":1029},{"i":1037,"t":"Options","u":"/extras/linting/eslint","h":"#options","p":1035},{"i":1039,"t":"nvim-lspconfig","u":"/extras/linting/eslint","h":"#nvim-lspconfig","p":1035},{"i":1043,"t":"nvim-treesitter","u":"/extras/lang/zig","h":"#nvim-treesitter","p":1041},{"i":1045,"t":"nvim-lspconfig","u":"/extras/lang/zig","h":"#nvim-lspconfig","p":1041},{"i":1047,"t":"neotest-zig","u":"/extras/lang/zig","h":"#neotest-zig","p":1041},{"i":1049,"t":"neotest (optional)","u":"/extras/lang/zig","h":"#neotest-optional","p":1041},{"i":1053,"t":"nvim-lspconfig","u":"/extras/lsp/neoconf","h":"#nvim-lspconfig","p":1051},{"i":1055,"t":"neoconf.nvim","u":"/extras/lsp/neoconf","h":"#neoconfnvim","p":1051},{"i":1059,"t":"nvim-lspconfig","u":"/extras/lang/typescript","h":"#nvim-lspconfig","p":1057},{"i":1061,"t":"mason.nvim","u":"/extras/lang/typescript","h":"#masonnvim","p":1057},{"i":1063,"t":"mini.icons","u":"/extras/lang/typescript","h":"#miniicons","p":1057},{"i":1065,"t":"nvim-dap (optional)","u":"/extras/lang/typescript","h":"#nvim-dap-optional","p":1057},{"i":1067,"t":"mason-nvim-dap.nvim (optional)","u":"/extras/lang/typescript","h":"#mason-nvim-dapnvim-optional","p":1057},{"i":1071,"t":"none-ls.nvim","u":"/extras/lsp/none-ls","h":"#none-lsnvim","p":1069},{"i":1073,"t":"mason.nvim","u":"/extras/lsp/none-ls","h":"#masonnvim","p":1069},{"i":1077,"t":"neotest","u":"/extras/test/core","h":"#neotest-1","p":1075},{"i":1079,"t":"nvim-nio","u":"/extras/test/core","h":"#nvim-nio","p":1075},{"i":1081,"t":"nvim-dap (optional)","u":"/extras/test/core","h":"#nvim-dap-optional","p":1075},{"i":1085,"t":"snacks.nvim","u":"/extras/ui/alpha","h":"#snacksnvim","p":1083},{"i":1087,"t":"alpha-nvim","u":"/extras/ui/alpha","h":"#alpha-nvim","p":1083},{"i":1091,"t":"snacks.nvim","u":"/extras/ui/indent-blankline","h":"#snacksnvim","p":1089},{"i":1093,"t":"indent-blankline.nvim","u":"/extras/ui/indent-blankline","h":"#indent-blanklinenvim","p":1089},{"i":1097,"t":"snacks.nvim","u":"/extras/ui/dashboard-nvim","h":"#snacksnvim","p":1095},{"i":1099,"t":"dashboard-nvim","u":"/extras/ui/dashboard-nvim","h":"#dashboard-nvim-1","p":1095},{"i":1103,"t":"snacks.nvim","u":"/extras/ui/mini-animate","h":"#snacksnvim","p":1101},{"i":1105,"t":"mini.animate","u":"/extras/ui/mini-animate","h":"#minianimate","p":1101},{"i":1109,"t":"mini.indentscope","u":"/extras/ui/mini-indentscope","h":"#miniindentscope","p":1107},{"i":1111,"t":"snacks.nvim","u":"/extras/ui/mini-indentscope","h":"#snacksnvim","p":1107},{"i":1113,"t":"indent-blankline.nvim (optional)","u":"/extras/ui/mini-indentscope","h":"#indent-blanklinenvim-optional","p":1107},{"i":1117,"t":"smear-cursor.nvim","u":"/extras/ui/smear-cursor","h":"#smear-cursornvim","p":1115},{"i":1119,"t":"mini.animate (optional)","u":"/extras/ui/smear-cursor","h":"#minianimate-optional","p":1115},{"i":1124,"t":"telescope.nvim (optional)","u":"/extras/ui/edgy","h":"#telescopenvim-optional","p":1121},{"i":1126,"t":"neo-tree.nvim (optional)","u":"/extras/ui/edgy","h":"#neo-treenvim-optional","p":1121},{"i":1128,"t":"bufferline.nvim (optional)","u":"/extras/ui/edgy","h":"#bufferlinenvim-optional","p":1121},{"i":1132,"t":"nvim-treesitter-context","u":"/extras/ui/treesitter-context","h":"#nvim-treesitter-context","p":1130},{"i":1136,"t":"nvim-lspconfig","u":"/extras/util/dot","h":"#nvim-lspconfig","p":1134},{"i":1138,"t":"mason.nvim","u":"/extras/util/dot","h":"#masonnvim","p":1134},{"i":1140,"t":"nvim-treesitter","u":"/extras/util/dot","h":"#nvim-treesitter","p":1134},{"i":1144,"t":"snacks.nvim","u":"/extras/ui/mini-starter","h":"#snacksnvim","p":1142},{"i":1146,"t":"mini.starter","u":"/extras/ui/mini-starter","h":"#ministarter","p":1142},{"i":1150,"t":"Includes the following extras","u":"/extras/util/gh","h":"#includes-the-following-extras","p":1148},{"i":1152,"t":"litee.nvim","u":"/extras/util/gh","h":"#liteenvim","p":1148},{"i":1154,"t":"gh.nvim","u":"/extras/util/gh","h":"#ghnvim","p":1148},{"i":1158,"t":"chezmoi.vim","u":"/extras/util/chezmoi","h":"#chezmoivim","p":1156},{"i":1160,"t":"chezmoi.nvim","u":"/extras/util/chezmoi","h":"#chezmoinvim","p":1156},{"i":1162,"t":"mini.icons","u":"/extras/util/chezmoi","h":"#miniicons","p":1156},{"i":1164,"t":"dashboard-nvim (optional)","u":"/extras/util/chezmoi","h":"#dashboard-nvim-optional","p":1156},{"i":1166,"t":"snacks.nvim (optional)","u":"/extras/util/chezmoi","h":"#snacksnvim-optional","p":1156},{"i":1170,"t":"mason.nvim","u":"/extras/util/gitui","h":"#masonnvim","p":1168},{"i":1174,"t":"mini.hipatterns","u":"/extras/util/mini-hipatterns","h":"#minihipatterns","p":1172},{"i":1178,"t":"project.nvim","u":"/extras/util/project","h":"#projectnvim","p":1176},{"i":1180,"t":"telescope.nvim (optional)","u":"/extras/util/project","h":"#telescopenvim-optional","p":1176},{"i":1182,"t":"fzf-lua (optional)","u":"/extras/util/project","h":"#fzf-lua-optional","p":1176},{"i":1184,"t":"alpha-nvim (optional)","u":"/extras/util/project","h":"#alpha-nvim-optional","p":1176},{"i":1186,"t":"mini.starter (optional)","u":"/extras/util/project","h":"#ministarter-optional","p":1176},{"i":1188,"t":"dashboard-nvim (optional)","u":"/extras/util/project","h":"#dashboard-nvim-optional","p":1176},{"i":1190,"t":"snacks.nvim (optional)","u":"/extras/util/project","h":"#snacksnvim-optional","p":1176},{"i":1194,"t":"Includes the following extras","u":"/extras/util/octo","h":"#includes-the-following-extras","p":1192},{"i":1196,"t":"octo.nvim","u":"/extras/util/octo","h":"#octonvim","p":1192},{"i":1198,"t":"octo.nvim","u":"/extras/util/octo","h":"#octonvim-1","p":1192},{"i":1202,"t":"vim-startuptime","u":"/extras/util/startuptime","h":"#vim-startuptime","p":1200},{"i":1206,"t":"kulala.nvim","u":"/extras/util/rest","h":"#kulalanvim","p":1204},{"i":1208,"t":"nvim-treesitter","u":"/extras/util/rest","h":"#nvim-treesitter","p":1204},{"i":1215,"t":"15.x","u":"/news","h":"#15x","p":1214},{"i":1217,"t":"Changes","u":"/news","h":"#changes","p":1214},{"i":1219,"t":"14.x","u":"/news","h":"#14x","p":1214},{"i":1221,"t":"Added Plugins","u":"/news","h":"#added-plugins","p":1214},{"i":1223,"t":"Removed Plugins","u":"/news","h":"#removed-plugins","p":1214},{"i":1225,"t":"Changes","u":"/news","h":"#changes-1","p":1214},{"i":1227,"t":"Keymaps","u":"/news","h":"#keymaps","p":1214},{"i":1229,"t":"13.x","u":"/news","h":"#13x","p":1214},{"i":1231,"t":"12.x","u":"/news","h":"#12x","p":1214},{"i":1233,"t":"11.x","u":"/news","h":"#11x","p":1214},{"i":1235,"t":"10.x","u":"/news","h":"#10x","p":1214},{"i":1241,"t":"General","u":"/keymaps","h":"#general","p":1239},{"i":1243,"t":"LSP","u":"/keymaps","h":"#lsp","p":1239},{"i":1245,"t":"bufferline.nvim","u":"/keymaps","h":"#bufferlinenvim","p":1239},{"i":1247,"t":"conform.nvim","u":"/keymaps","h":"#conformnvim","p":1239},{"i":1249,"t":"flash.nvim","u":"/keymaps","h":"#flashnvim","p":1239},{"i":1251,"t":"grug-far.nvim","u":"/keymaps","h":"#grug-farnvim","p":1239},{"i":1253,"t":"mason.nvim","u":"/keymaps","h":"#masonnvim","p":1239},{"i":1255,"t":"noice.nvim","u":"/keymaps","h":"#noicenvim","p":1239},{"i":1257,"t":"persistence.nvim","u":"/keymaps","h":"#persistencenvim","p":1239},{"i":1259,"t":"snacks.nvim","u":"/keymaps","h":"#snacksnvim","p":1239},{"i":1261,"t":"todo-comments.nvim","u":"/keymaps","h":"#todo-commentsnvim","p":1239},{"i":1263,"t":"trouble.nvim","u":"/keymaps","h":"#troublenvim","p":1239},{"i":1265,"t":"which-key.nvim","u":"/keymaps","h":"#which-keynvim","p":1239},{"i":1267,"t":"avante.nvim","u":"/keymaps","h":"#avantenvim","p":1239},{"i":1269,"t":"claudecode.nvim","u":"/keymaps","h":"#claudecodenvim","p":1239},{"i":1271,"t":"CopilotChat.nvim","u":"/keymaps","h":"#copilotchatnvim","p":1239},{"i":1273,"t":"sidekick.nvim","u":"/keymaps","h":"#sidekicknvim","p":1239},{"i":1275,"t":"mini.surround","u":"/keymaps","h":"#minisurround","p":1239},{"i":1277,"t":"neogen","u":"/keymaps","h":"#neogen","p":1239},{"i":1279,"t":"yanky.nvim","u":"/keymaps","h":"#yankynvim","p":1239},{"i":1281,"t":"nvim-dap","u":"/keymaps","h":"#nvim-dap","p":1239},{"i":1283,"t":"nvim-dap-ui","u":"/keymaps","h":"#nvim-dap-ui","p":1239},{"i":1285,"t":"aerial.nvim","u":"/keymaps","h":"#aerialnvim","p":1239},{"i":1287,"t":"telescope.nvim","u":"/keymaps","h":"#telescopenvim","p":1239},{"i":1289,"t":"dial.nvim","u":"/keymaps","h":"#dialnvim","p":1239},{"i":1291,"t":"harpoon","u":"/keymaps","h":"#harpoon","p":1239},{"i":1293,"t":"vim-illuminate","u":"/keymaps","h":"#vim-illuminate","p":1239},{"i":1295,"t":"leap.nvim","u":"/keymaps","h":"#leapnvim","p":1239},{"i":1297,"t":"mini.surround","u":"/keymaps","h":"#minisurround-1","p":1239},{"i":1299,"t":"mini.diff","u":"/keymaps","h":"#minidiff","p":1239},{"i":1301,"t":"mini.files","u":"/keymaps","h":"#minifiles","p":1239},{"i":1303,"t":"outline.nvim","u":"/keymaps","h":"#outlinenvim","p":1239},{"i":1305,"t":"overseer.nvim","u":"/keymaps","h":"#overseernvim","p":1239},{"i":1307,"t":"refactoring.nvim","u":"/keymaps","h":"#refactoringnvim","p":1239},{"i":1309,"t":"snacks.nvim","u":"/keymaps","h":"#snacksnvim-1","p":1239},{"i":1311,"t":"snacks.nvim","u":"/keymaps","h":"#snacksnvim-2","p":1239},{"i":1313,"t":"todo-comments.nvim","u":"/keymaps","h":"#todo-commentsnvim-1","p":1239},{"i":1315,"t":"nvim-ansible","u":"/keymaps","h":"#nvim-ansible","p":1239},{"i":1317,"t":"haskell-tools.nvim","u":"/keymaps","h":"#haskell-toolsnvim","p":1239},{"i":1319,"t":"telescope_hoogle","u":"/keymaps","h":"#telescope_hoogle","p":1239},{"i":1321,"t":"markdown-preview.nvim","u":"/keymaps","h":"#markdown-previewnvim","p":1239},{"i":1323,"t":"nvim-dap-python","u":"/keymaps","h":"#nvim-dap-python","p":1239},{"i":1325,"t":"venv-selector.nvim","u":"/keymaps","h":"#venv-selectornvim","p":1239},{"i":1327,"t":"nvim-metals","u":"/keymaps","h":"#nvim-metals","p":1239},{"i":1329,"t":"vim-dadbod-ui","u":"/keymaps","h":"#vim-dadbod-ui","p":1239},{"i":1331,"t":"vimtex","u":"/keymaps","h":"#vimtex","p":1239},{"i":1333,"t":"typst-preview.nvim","u":"/keymaps","h":"#typst-previewnvim","p":1239},{"i":1335,"t":"neotest","u":"/keymaps","h":"#neotest","p":1239},{"i":1337,"t":"nvim-dap","u":"/keymaps","h":"#nvim-dap-1","p":1239},{"i":1339,"t":"edgy.nvim","u":"/keymaps","h":"#edgynvim","p":1239},{"i":1341,"t":"chezmoi.nvim","u":"/keymaps","h":"#chezmoinvim","p":1239},{"i":1343,"t":"gh.nvim","u":"/keymaps","h":"#ghnvim","p":1239},{"i":1345,"t":"mason.nvim","u":"/keymaps","h":"#masonnvim-1","p":1239},{"i":1347,"t":"octo.nvim","u":"/keymaps","h":"#octonvim","p":1239},{"i":1349,"t":"fzf-lua","u":"/keymaps","h":"#fzf-lua","p":1239},{"i":1351,"t":"telescope.nvim","u":"/keymaps","h":"#telescopenvim-1","p":1239},{"i":1353,"t":"kulala.nvim","u":"/keymaps","h":"#kulalanvim","p":1239},{"i":1356,"t":"mini.pairs","u":"/plugins/coding","h":"#minipairs","p":1355},{"i":1358,"t":"ts-comments.nvim","u":"/plugins/coding","h":"#ts-commentsnvim","p":1355},{"i":1360,"t":"mini.ai","u":"/plugins/coding","h":"#miniai","p":1355},{"i":1362,"t":"lazydev.nvim","u":"/plugins/coding","h":"#lazydevnvim","p":1355},{"i":1366,"t":"nvim-treesitter","u":"/extras/lang/solidity","h":"#nvim-treesitter","p":1364},{"i":1368,"t":"nvim-lspconfig","u":"/extras/lang/solidity","h":"#nvim-lspconfig","p":1364},{"i":1370,"t":"conform.nvim (optional)","u":"/extras/lang/solidity","h":"#conformnvim-optional","p":1364},{"i":1374,"t":"conform.nvim","u":"/plugins/formatting","h":"#conformnvim","p":1372},{"i":1376,"t":"mason.nvim","u":"/plugins/formatting","h":"#masonnvim","p":1372},{"i":1379,"t":"nvim-lint","u":"/plugins/linting","h":"#nvim-lint","p":1378},{"i":1382,"t":"grug-far.nvim","u":"/plugins/editor","h":"#grug-farnvim","p":1381},{"i":1384,"t":"flash.nvim","u":"/plugins/editor","h":"#flashnvim","p":1381},{"i":1386,"t":"which-key.nvim","u":"/plugins/editor","h":"#which-keynvim","p":1381},{"i":1388,"t":"gitsigns.nvim","u":"/plugins/editor","h":"#gitsignsnvim","p":1381},{"i":1390,"t":"gitsigns.nvim","u":"/plugins/editor","h":"#gitsignsnvim-1","p":1381},{"i":1392,"t":"trouble.nvim","u":"/plugins/editor","h":"#troublenvim","p":1381},{"i":1394,"t":"todo-comments.nvim","u":"/plugins/editor","h":"#todo-commentsnvim","p":1381},{"i":1398,"t":"tokyonight.nvim","u":"/plugins/colorscheme","h":"#tokyonightnvim","p":1396},{"i":1400,"t":"catppuccin","u":"/plugins/colorscheme","h":"#catppuccin","p":1396},{"i":1402,"t":"bufferline.nvim (optional)","u":"/plugins/colorscheme","h":"#bufferlinenvim-optional","p":1396},{"i":1405,"t":"nvim-treesitter","u":"/plugins/treesitter","h":"#nvim-treesitter","p":1404},{"i":1407,"t":"nvim-treesitter-textobjects","u":"/plugins/treesitter","h":"#nvim-treesitter-textobjects","p":1404},{"i":1409,"t":"nvim-ts-autotag","u":"/plugins/treesitter","h":"#nvim-ts-autotag","p":1404},{"i":1412,"t":"snacks.nvim","u":"/plugins/util","h":"#snacksnvim","p":1411},{"i":1414,"t":"persistence.nvim","u":"/plugins/util","h":"#persistencenvim","p":1411},{"i":1416,"t":"plenary.nvim","u":"/plugins/util","h":"#plenarynvim","p":1411},{"i":1419,"t":"⌨️ Customizing LSP Keymaps","u":"/plugins/lsp","h":"#️-customizing-lsp-keymaps","p":1418},{"i":1421,"t":"nvim-lspconfig","u":"/plugins/lsp","h":"#nvim-lspconfig","p":1418},{"i":1423,"t":"mason.nvim","u":"/plugins/lsp","h":"#masonnvim","p":1418},{"i":1425,"t":"mason-lspconfig.nvim","u":"/plugins/lsp","h":"#mason-lspconfignvim","p":1418},{"i":1427,"t":"mason.nvim","u":"/plugins/lsp","h":"#masonnvim-1","p":1418},{"i":1430,"t":"bufferline.nvim","u":"/plugins/ui","h":"#bufferlinenvim","p":1429},{"i":1432,"t":"lualine.nvim","u":"/plugins/ui","h":"#lualinenvim","p":1429},{"i":1434,"t":"noice.nvim","u":"/plugins/ui","h":"#noicenvim","p":1429},{"i":1436,"t":"mini.icons","u":"/plugins/ui","h":"#miniicons","p":1429},{"i":1438,"t":"nui.nvim","u":"/plugins/ui","h":"#nuinvim","p":1429},{"i":1440,"t":"snacks.nvim","u":"/plugins/ui","h":"#snacksnvim","p":1429},{"i":1442,"t":"snacks.nvim","u":"/plugins/ui","h":"#snacksnvim-1","p":1429}],"index":{"version":"2.3.9","fields":["t"],"fieldVectors":[["t/3",[0,3.928,1,5.824]],["t/5",[0,3.928,2,5.824]],["t/7",[0,3.928,3,5.824]],["t/10",[0,3.24,4,4.804,5,4.804]],["t/12",[0,3.24,6,4.804,7,4.804]],["t/14",[8,5.824,9,5.824]],["t/22",[0,3.24,10,4.123,11,3.511]],["t/24",[0,3.24,11,3.511,12,4.123]],["t/26",[0,2.758,11,2.988,13,3.739,14,4.088]],["t/28",[0,3.428,10,2.704,11,2.302,12,2.704,15,2.236]],["t/32",[15,4.134,16,5.824]],["t/34",[11,4.256,15,4.134]],["t/36",[15,4.134,17,4.558]],["t/38",[15,3.41,17,3.76,18,4.804]],["t/43",[19,3.739,20,0.783,21,2.075,22,4.088]],["t/45",[23,7.392]],["t/47",[24,4.123,25,4.804,26,4.804]],["t/49",[27,4.804,28,4.804,29,4.804]],["t/51",[30,3.739,31,4.088,32,4.088,33,4.088]],["t/53",[30,2.881,34,2.881,35,2.881,36,3.15,37,3.15,38,2.881]],["t/55",[19,3.739,34,3.739,35,3.739,38,3.739]],["t/59",[39,6.76]],["t/61",[40,6.76]],["t/63",[21,2.438,41,4.804,42,4.804]],["t/65",[43,4.804,44,4.804,45,1.069]],["t/67",[45,1.069,46,4.123,47,4.123]],["t/69",[45,1.296,48,3.928]],["t/73",[49,6.76]],["t/77",[45,1.645]],["t/79",[15,5.247]],["t/81",[50,5.824,51,5.824]],["t/84",[52,4.088,53,4.088,54,4.088,55,3.509]],["t/86",[12,4.123,55,4.123,56,4.804]],["t/90",[57,6.034]],["t/92",[57,6.034]],["t/94",[57,6.034]],["t/96",[57,6.034]],["t/98",[20,0.92,21,2.438,45,1.069]],["t/100",[45,1.296,58,4.025]],["t/104",[59,6.76]],["t/106",[20,1.115,60,2.222]],["t/108",[59,6.76]],["t/110",[45,1.296,58,4.025]],["t/114",[61,6.76]],["t/116",[45,1.296,62,4.395]],["t/118",[45,1.296,48,3.928]],["t/122",[20,1.115,63,4.753]],["t/124",[20,1.115,63,4.753]],["t/126",[20,1.115,63,4.753]],["t/128",[20,1.115,63,4.753]],["t/130",[20,0.92,21,2.438,45,1.069]],["t/134",[45,1.645]],["t/136",[20,1.115,60,2.222]],["t/138",[45,1.296,58,4.025]],["t/142",[20,1.115,60,2.222]],["t/144",[64,6.76]],["t/146",[45,1.296,58,4.025]],["t/148",[45,1.296,65,3.23]],["t/152",[66,7.392]],["t/154",[20,0.783,67,3.337,68,3.739,69,4.088]],["t/158",[70,6.344]],["t/160",[71,4.998,72,4.558]],["t/162",[70,6.344]],["t/164",[73,7.392]],["t/166",[20,0.92,21,2.438,45,1.069]],["t/168",[45,1.296,48,3.928]],["t/172",[74,6.034]],["t/176",[75,6.76]],["t/180",[21,2.955,76,4.998]],["t/182",[21,2.955,76,4.998]],["t/184",[21,2.955,76,4.998]],["t/186",[77,6.344]],["t/188",[20,0.92,21,2.438,45,1.069]],["t/190",[45,1.296,48,3.928]],["t/192",[45,1.296,58,4.025]],["t/199",[45,1.645]],["t/201",[78,7.392]],["t/203",[21,2.438,72,3.76,79,4.804]],["t/205",[20,0.92,21,2.438,45,1.069]],["t/207",[45,1.296,48,3.928]],["t/211",[45,1.645]],["t/213",[48,4.986]],["t/215",[71,4.998,72,4.558]],["t/217",[48,4.986]],["t/219",[48,4.986]],["t/221",[45,1.296,77,4.998]],["t/223",[45,1.296,80,4.998]],["t/227",[20,1.115,81,3.064]],["t/229",[82,4.088,83,4.088,84,4.088,85,4.088]],["t/233",[20,1.115,81,3.064]],["t/235",[20,0.92,81,2.527,86,3.76]],["t/237",[20,0.783,81,2.151,87,4.088,88,4.088]],["t/239",[20,0.92,81,2.527,86,3.76]],["t/241",[20,1.115,89,5.326]],["t/243",[20,0.92,90,3.921,91,4.123]],["t/247",[20,1.115,21,2.955]],["t/249",[17,3.76,20,0.92,21,2.438]],["t/251",[21,2.955,55,4.998]],["t/253",[21,2.955,92,5.824]],["t/255",[20,1.115,21,2.955]],["t/257",[20,1.115,72,4.558]],["t/259",[71,4.998,72,4.558]],["t/263",[93,6.76]],["t/265",[45,1.296,94,4.753]],["t/267",[45,1.296,95,4.025]],["t/269",[45,1.296,62,4.395]],["t/271",[45,1.296,58,4.025]],["t/275",[96,6.76]],["t/279",[65,4.1]],["t/281",[97,4.025,98,5.326]],["t/285",[99,7.392]],["t/287",[100,6.76]],["t/289",[97,4.025,101,5.824]],["t/291",[45,1.296,74,4.753]],["t/295",[102,6.76]],["t/299",[103,5.824,104,5.824]],["t/301",[20,1.115,60,2.222]],["t/303",[45,1.296,105,4.998]],["t/307",[106,7.392]],["t/311",[107,6.76]],["t/315",[108,6.344]],["t/317",[108,6.344]],["t/319",[58,5.11]],["t/323",[20,1.115,109,5.824]],["t/325",[45,1.296,58,4.025]],["t/329",[110,6.76]],["t/331",[45,1.296,94,4.753]],["t/333",[45,1.296,62,4.395]],["t/337",[111,5.326,112,5.326]],["t/341",[65,4.1]],["t/345",[45,1.645]],["t/347",[113,4.558,114,4.753]],["t/349",[113,4.558,114,4.753]],["t/351",[20,1.115,60,2.222]],["t/353",[45,1.069,115,3.76,116,3.511]],["t/357",[117,6.76]],["t/359",[118,6.034]],["t/361",[20,1.115,119,2.437]],["t/365",[45,1.645]],["t/367",[120,3.551]],["t/369",[45,1.296,121,3.064]],["t/371",[45,1.069,122,2.981,123,2.927]],["t/375",[45,1.645]],["t/377",[120,3.551]],["t/379",[45,1.296,121,3.064]],["t/381",[45,1.069,122,2.981,123,2.927]],["t/385",[45,1.645]],["t/387",[95,5.11]],["t/389",[124,7.392]],["t/391",[95,5.11]],["t/393",[113,3.76,125,4.123,126,4.804]],["t/395",[20,1.115,60,2.222]],["t/399",[127,3.626,128,3.626,129,3.626]],["t/401",[20,1.115,119,2.437]],["t/403",[20,1.115,60,2.222]],["t/405",[20,1.115,60,2.222]],["t/407",[121,3.889]],["t/411",[130,6.76]],["t/413",[45,1.296,80,4.998]],["t/415",[45,1.296,131,4.753]],["t/417",[45,1.296,62,4.395]],["t/419",[45,1.296,132,3.026]],["t/421",[20,0.92,45,1.069,81,2.527]],["t/425",[120,3.551]],["t/427",[45,1.069,122,2.981,123,2.927]],["t/429",[45,1.296,121,3.064]],["t/433",[120,3.551]],["t/435",[20,1.115,60,2.222]],["t/437",[20,1.115,133,5.326]],["t/441",[127,3.626,128,3.626,129,3.626]],["t/443",[20,1.115,119,2.437]],["t/445",[20,1.115,60,2.222]],["t/447",[20,1.115,60,2.222]],["t/449",[121,3.889]],["t/453",[45,1.645]],["t/455",[65,4.1]],["t/457",[65,4.1]],["t/459",[20,1.115,60,2.222]],["t/461",[65,4.1]],["t/463",[65,4.1]],["t/465",[45,1.069,115,3.76,116,3.511]],["t/467",[20,0.92,45,1.069,134,4.123]],["t/469",[45,1.296,135,4.998]],["t/471",[20,0.92,45,1.069,136,3.921]],["t/473",[45,1.296,137,4.998]],["t/477",[20,1.115,119,2.437]],["t/479",[120,3.551]],["t/481",[20,1.115,60,2.222]],["t/483",[138,5.326,139,4.753]],["t/485",[138,5.326,139,4.753]],["t/487",[45,1.069,122,2.981,123,2.927]],["t/489",[20,0.92,45,1.069,140,3.038]],["t/493",[20,1.115,119,2.437]],["t/495",[21,2.955,141,5.326]],["t/497",[20,1.115,142,5.824]],["t/499",[143,7.392]],["t/501",[141,6.76]],["t/503",[20,0.92,21,2.438,45,1.069]],["t/507",[20,1.115,60,2.222]],["t/509",[20,1.115,119,2.437]],["t/511",[121,3.889]],["t/513",[132,3.026,144,5.824]],["t/515",[45,1.296,132,3.026]],["t/519",[20,1.115,119,2.437]],["t/521",[120,3.551]],["t/523",[20,1.115,60,2.222]],["t/525",[45,1.069,122,2.981,123,2.927]],["t/527",[20,0.92,45,1.069,140,3.038]],["t/531",[20,1.115,119,2.437]],["t/533",[145,7.392]],["t/535",[20,1.115,60,2.222]],["t/537",[20,0.92,21,2.438,45,1.069]],["t/539",[20,0.92,45,1.069,81,2.527]],["t/541",[45,1.296,120,2.798]],["t/545",[20,1.115,119,2.437]],["t/547",[20,1.115,60,2.222]],["t/549",[121,3.889]],["t/553",[146,4.804,147,4.804,148,4.804]],["t/555",[20,1.115,119,2.437]],["t/557",[120,3.551]],["t/559",[20,1.115,60,2.222]],["t/561",[132,3.026,149,5.824]],["t/563",[45,1.069,122,2.981,123,2.927]],["t/565",[45,1.296,121,3.064]],["t/567",[20,0.92,45,1.069,81,2.527]],["t/569",[45,1.296,132,3.026]],["t/573",[20,1.115,60,2.222]],["t/575",[20,1.115,119,2.437]],["t/579",[20,1.115,119,2.437]],["t/581",[120,3.551]],["t/583",[20,1.115,60,2.222]],["t/585",[45,1.296,121,3.064]],["t/589",[20,1.115,119,2.437]],["t/591",[21,2.955,150,5.824]],["t/593",[20,0.92,21,2.438,45,1.069]],["t/597",[123,3.549,151,5.824]],["t/599",[20,1.115,119,2.437]],["t/601",[20,1.115,60,2.222]],["t/605",[20,1.115,60,2.222]],["t/607",[20,1.115,119,2.437]],["t/609",[132,3.026,152,5.824]],["t/611",[45,1.296,132,3.026]],["t/613",[45,1.069,122,2.981,123,2.927]],["t/615",[20,0.92,45,1.069,140,3.038]],["t/617",[45,1.069,46,4.123,47,4.123]],["t/621",[20,1.115,119,2.437]],["t/623",[20,1.115,60,2.222]],["t/625",[45,1.296,121,3.064]],["t/629",[20,1.115,119,2.437]],["t/631",[20,1.115,60,2.222]],["t/633",[21,2.438,153,4.394,154,4.394]],["t/635",[21,2.438,153,4.394,154,4.394]],["t/637",[77,6.344]],["t/639",[20,0.92,21,2.438,45,1.069]],["t/641",[45,1.296,48,3.928]],["t/645",[20,1.115,119,2.437]],["t/647",[139,4.753,155,4.753]],["t/649",[120,3.551]],["t/651",[120,3.551]],["t/653",[132,3.026,155,4.753]],["t/655",[155,4.753,156,5.824]],["t/657",[70,6.344]],["t/659",[157,6.76]],["t/661",[20,1.115,60,2.222]],["t/663",[20,0.92,45,1.069,81,2.527]],["t/665",[45,1.296,132,3.026]],["t/667",[45,1.296,95,4.025]],["t/669",[45,1.296,121,3.064]],["t/671",[20,0.92,45,1.069,140,3.038]],["t/675",[20,1.115,119,2.437]],["t/677",[20,1.115,60,2.222]],["t/679",[120,3.551]],["t/681",[120,3.551]],["t/683",[120,3.551]],["t/685",[120,3.551]],["t/687",[20,0.92,81,2.527,158,4.804]],["t/689",[132,3.026,159,5.824]],["t/691",[160,6.034]],["t/693",[45,1.069,122,2.981,123,2.927]],["t/695",[20,0.92,45,1.069,140,3.038]],["t/697",[45,1.296,121,3.064]],["t/699",[20,0.92,45,1.069,81,2.527]],["t/701",[45,1.296,132,3.026]],["t/705",[20,1.115,119,2.437]],["t/707",[161,6.76]],["t/709",[20,1.115,60,2.222]],["t/713",[162,7.392]],["t/715",[118,6.034]],["t/719",[20,1.115,119,2.437]],["t/721",[120,3.551]],["t/723",[20,1.115,60,2.222]],["t/725",[20,1.115,163,5.824]],["t/727",[131,6.034]],["t/729",[20,0.92,45,1.069,81,2.527]],["t/733",[20,1.115,60,2.222]],["t/735",[20,1.115,119,2.437]],["t/739",[20,1.115,119,2.437]],["t/741",[20,1.115,60,2.222]],["t/743",[45,1.296,121,3.064]],["t/745",[20,0.92,45,1.069,140,3.038]],["t/749",[120,3.551]],["t/751",[20,1.115,119,2.437]],["t/753",[20,1.115,60,2.222]],["t/755",[20,0.92,45,1.069,140,3.038]],["t/757",[45,1.296,121,3.064]],["t/759",[45,1.069,122,2.981,123,2.927]],["t/761",[20,0.92,45,1.069,81,2.527]],["t/765",[20,1.115,119,2.437]],["t/767",[20,1.115,60,2.222]],["t/771",[20,1.115,119,2.437]],["t/773",[20,1.115,60,2.222]],["t/777",[120,3.551]],["t/779",[20,1.115,60,2.222]],["t/781",[164,4.998,165,4.558]],["t/783",[164,4.998,165,4.558]],["t/785",[46,4.998,47,4.998]],["t/787",[45,1.296,121,3.064]],["t/789",[45,1.069,122,2.981,123,2.927]],["t/791",[20,0.92,45,1.069,140,3.038]],["t/795",[20,1.115,60,2.222]],["t/797",[20,1.115,119,2.437]],["t/801",[45,1.645]],["t/803",[20,1.115,119,2.437]],["t/805",[20,1.115,60,2.222]],["t/807",[120,3.551]],["t/809",[132,3.026,166,5.326]],["t/811",[132,3.026,167,5.824]],["t/813",[132,3.026,166,5.326]],["t/815",[20,0.92,45,1.069,81,2.527]],["t/817",[45,1.069,122,2.981,123,2.927]],["t/819",[20,0.92,45,1.069,140,3.038]],["t/821",[45,1.296,121,3.064]],["t/823",[45,1.296,132,3.026]],["t/827",[45,1.645]],["t/829",[20,1.115,119,2.437]],["t/831",[20,1.115,60,2.222]],["t/833",[20,1.115,60,2.222]],["t/835",[132,3.026,168,4.998]],["t/837",[20,0.92,81,2.527,168,4.123]],["t/839",[169,5.326,170,5.326]],["t/841",[45,1.296,132,3.026]],["t/843",[20,0.92,45,1.069,81,2.527]],["t/845",[20,0.92,21,2.438,45,1.069]],["t/847",[20,0.783,45,0.91,90,3.337,91,3.509]],["t/851",[171,7.392]],["t/853",[21,2.955,172,5.824]],["t/855",[20,1.115,119,2.437]],["t/857",[20,1.115,60,2.222]],["t/859",[132,3.026,173,5.824]],["t/861",[20,0.92,21,2.438,45,1.069]],["t/863",[45,1.296,132,3.026]],["t/867",[45,1.645]],["t/869",[20,1.115,119,2.437]],["t/871",[20,1.115,60,2.222]],["t/873",[120,3.551]],["t/875",[20,0.92,81,2.527,174,4.804]],["t/877",[132,3.026,175,5.824]],["t/879",[20,0.92,45,1.069,81,2.527]],["t/881",[45,1.296,121,3.064]],["t/883",[45,1.296,132,3.026]],["t/887",[20,1.115,119,2.437]],["t/889",[20,1.115,176,5.326]],["t/891",[118,6.034]],["t/893",[20,0.92,45,1.069,81,2.527]],["t/897",[127,3.626,128,3.626,129,3.626]],["t/899",[20,1.115,119,2.437]],["t/901",[20,1.115,60,2.222]],["t/903",[20,1.115,60,2.222]],["t/905",[121,3.889]],["t/909",[45,1.645]],["t/911",[177,7.392]],["t/913",[20,1.115,119,2.437]],["t/915",[178,7.392]],["t/917",[20,1.115,60,2.222]],["t/919",[45,1.296,120,2.798]],["t/921",[45,1.296,132,3.026]],["t/925",[45,1.645]],["t/927",[97,4.025,179,4.558]],["t/929",[97,3.321,179,3.76,180,4.394]],["t/931",[86,3.76,97,3.321,179,3.76]],["t/933",[97,3.321,179,3.76,180,4.394]],["t/935",[120,3.551]],["t/937",[20,0.92,45,1.069,119,2.011]],["t/939",[45,1.296,62,4.395]],["t/941",[45,1.296,48,3.928]],["t/943",[20,0.92,45,1.069,140,3.038]],["t/945",[45,1.296,121,3.064]],["t/949",[20,1.115,60,2.222]],["t/951",[181,4.804,182,4.804,183,4.804]],["t/953",[20,0.92,21,2.438,45,1.069]],["t/957",[20,1.115,119,2.437]],["t/959",[20,0.92,45,1.069,60,1.833]],["t/963",[20,1.115,119,2.437]],["t/965",[184,6.76]],["t/967",[20,0.92,45,1.069,60,1.833]],["t/971",[20,1.115,119,2.437]],["t/973",[20,1.115,60,2.222]],["t/975",[120,3.551]],["t/977",[125,4.123,185,4.804,186,4.804]],["t/979",[125,4.998,187,5.824]],["t/981",[45,1.069,122,2.981,123,2.927]],["t/983",[20,0.92,45,1.069,140,3.038]],["t/985",[45,1.296,121,3.064]],["t/987",[45,1.296,95,4.025]],["t/991",[20,1.115,60,2.222]],["t/995",[20,1.115,119,2.437]],["t/997",[120,3.551]],["t/999",[20,1.115,60,2.222]],["t/1001",[45,1.069,122,2.981,123,2.927]],["t/1003",[20,0.92,45,1.069,140,3.038]],["t/1005",[45,1.296,121,3.064]],["t/1009",[20,1.115,119,2.437]],["t/1011",[20,1.115,60,2.222]],["t/1013",[165,4.558,188,5.326]],["t/1015",[67,4.753,116,4.256]],["t/1017",[45,1.296,121,3.064]],["t/1021",[127,3.626,128,3.626,129,3.626]],["t/1023",[20,1.115,119,2.437]],["t/1025",[20,1.115,60,2.222]],["t/1027",[20,1.115,60,2.222]],["t/1031",[161,6.76]],["t/1033",[20,1.115,60,2.222]],["t/1037",[45,1.645]],["t/1039",[20,1.115,60,2.222]],["t/1043",[20,1.115,119,2.437]],["t/1045",[20,1.115,60,2.222]],["t/1047",[132,3.026,189,5.824]],["t/1049",[45,1.296,132,3.026]],["t/1053",[20,1.115,60,2.222]],["t/1055",[190,7.392]],["t/1059",[20,1.115,60,2.222]],["t/1061",[120,3.551]],["t/1063",[160,6.034]],["t/1065",[20,0.92,45,1.069,81,2.527]],["t/1067",[20,0.783,45,0.91,90,3.337,91,3.509]],["t/1071",[122,3.613,123,3.549]],["t/1073",[120,3.551]],["t/1077",[132,3.841]],["t/1079",[20,1.115,89,5.326]],["t/1081",[20,0.92,45,1.069,81,2.527]],["t/1085",[65,4.1]],["t/1087",[20,1.115,134,4.998]],["t/1091",[65,4.1]],["t/1093",[191,5.326,192,5.326]],["t/1097",[65,4.1]],["t/1099",[20,1.115,136,4.753]],["t/1103",[65,4.1]],["t/1105",[193,6.76]],["t/1109",[194,7.392]],["t/1111",[65,4.1]],["t/1113",[45,1.069,191,4.394,192,4.394]],["t/1117",[195,5.824,196,5.824]],["t/1119",[45,1.296,193,5.326]],["t/1124",[45,1.296,95,4.025]],["t/1126",[45,1.069,111,4.394,112,4.394]],["t/1128",[45,1.296,197,4.753]],["t/1132",[20,0.92,68,4.394,119,2.011]],["t/1136",[20,1.115,60,2.222]],["t/1138",[120,3.551]],["t/1140",[20,1.115,119,2.437]],["t/1144",[65,4.1]],["t/1146",[135,6.344]],["t/1150",[127,3.626,128,3.626,129,3.626]],["t/1152",[198,7.392]],["t/1154",[199,6.76]],["t/1158",[200,7.392]],["t/1160",[201,6.76]],["t/1162",[160,6.034]],["t/1164",[20,0.92,45,1.069,136,3.921]],["t/1166",[45,1.296,65,3.23]],["t/1170",[120,3.551]],["t/1174",[202,7.392]],["t/1178",[203,7.392]],["t/1180",[45,1.296,95,4.025]],["t/1182",[45,1.069,113,3.76,114,3.921]],["t/1184",[20,0.92,45,1.069,134,4.123]],["t/1186",[45,1.296,135,4.998]],["t/1188",[20,0.92,45,1.069,136,3.921]],["t/1190",[45,1.296,65,3.23]],["t/1194",[127,3.626,128,3.626,129,3.626]],["t/1196",[204,6.344]],["t/1198",[204,6.344]],["t/1202",[97,4.025,205,5.824]],["t/1206",[206,6.76]],["t/1208",[20,1.115,119,2.437]],["t/1215",[207,7.392]],["t/1217",[24,6.344]],["t/1219",[208,7.392]],["t/1221",[10,4.998,11,4.256]],["t/1223",[11,4.256,209,5.824]],["t/1225",[24,6.344]],["t/1227",[15,5.247]],["t/1229",[210,7.392]],["t/1231",[211,7.392]],["t/1233",[212,7.392]],["t/1235",[213,7.392]],["t/1241",[214,7.392]],["t/1243",[17,5.785]],["t/1245",[197,6.034]],["t/1247",[121,3.889]],["t/1249",[137,6.344]],["t/1251",[215,5.326,216,5.326]],["t/1253",[120,3.551]],["t/1255",[105,6.344]],["t/1257",[217,6.76]],["t/1259",[65,4.1]],["t/1261",[115,4.558,116,4.256]],["t/1263",[94,6.034]],["t/1265",[131,6.034]],["t/1267",[40,6.76]],["t/1269",[49,6.76]],["t/1271",[61,6.76]],["t/1273",[64,6.76]],["t/1275",[74,6.034]],["t/1277",[75,6.76]],["t/1279",[218,7.392]],["t/1281",[20,1.115,81,3.064]],["t/1283",[20,0.92,81,2.527,86,3.76]],["t/1285",[93,6.76]],["t/1287",[95,5.11]],["t/1289",[102,6.76]],["t/1291",[96,6.76]],["t/1293",[97,4.025,98,5.326]],["t/1295",[100,6.76]],["t/1297",[74,6.034]],["t/1299",[108,6.344]],["t/1301",[107,6.76]],["t/1303",[110,6.76]],["t/1305",[130,6.76]],["t/1307",[117,6.76]],["t/1309",[65,4.1]],["t/1311",[65,4.1]],["t/1313",[115,4.558,116,4.256]],["t/1315",[20,1.115,133,5.326]],["t/1317",[139,4.753,155,4.753]],["t/1319",[157,6.76]],["t/1321",[164,4.998,165,4.558]],["t/1323",[20,0.92,81,2.527,168,4.123]],["t/1325",[169,5.326,170,5.326]],["t/1327",[20,1.115,176,5.326]],["t/1329",[86,3.76,97,3.321,179,3.76]],["t/1331",[184,6.76]],["t/1333",[165,4.558,188,5.326]],["t/1335",[132,3.841]],["t/1337",[20,1.115,81,3.064]],["t/1339",[62,5.579]],["t/1341",[201,6.76]],["t/1343",[199,6.76]],["t/1345",[120,3.551]],["t/1347",[204,6.344]],["t/1349",[113,4.558,114,4.753]],["t/1351",[95,5.11]],["t/1353",[206,6.76]],["t/1356",[219,7.392]],["t/1358",[67,4.753,116,4.256]],["t/1360",[220,7.392]],["t/1362",[221,7.392]],["t/1366",[20,1.115,119,2.437]],["t/1368",[20,1.115,60,2.222]],["t/1370",[45,1.296,121,3.064]],["t/1374",[121,3.889]],["t/1376",[120,3.551]],["t/1379",[20,1.115,140,3.683]],["t/1382",[215,5.326,216,5.326]],["t/1384",[137,6.344]],["t/1386",[131,6.034]],["t/1388",[222,6.76]],["t/1390",[222,6.76]],["t/1392",[94,6.034]],["t/1394",[115,4.558,116,4.256]],["t/1398",[223,7.392]],["t/1400",[80,6.344]],["t/1402",[45,1.296,197,4.753]],["t/1405",[20,1.115,119,2.437]],["t/1407",[20,0.92,119,2.011,224,4.804]],["t/1409",[20,0.92,67,3.921,225,4.804]],["t/1412",[65,4.1]],["t/1414",[217,6.76]],["t/1416",[118,6.034]],["t/1419",[0,2.758,13,3.739,15,2.902,17,3.2]],["t/1421",[20,1.115,60,2.222]],["t/1423",[120,3.551]],["t/1425",[90,4.753,226,5.824]],["t/1427",[120,3.551]],["t/1430",[197,6.034]],["t/1432",[58,5.11]],["t/1434",[105,6.344]],["t/1436",[160,6.034]],["t/1438",[39,6.76]],["t/1440",[65,4.1]],["t/1442",[65,4.1]]],"invertedIndex":[["",{"_index":0,"t":{"3":{"position":[[0,1]]},"5":{"position":[[0,2]]},"7":{"position":[[0,2]]},"10":{"position":[[0,2]]},"12":{"position":[[6,1]]},"22":{"position":[[0,1]]},"24":{"position":[[0,1]]},"26":{"position":[[0,2]]},"28":{"position":[[0,2],[10,1]]},"1419":{"position":[[0,2]]}}}],["10.x",{"_index":213,"t":{"1235":{"position":[[0,4]]}}}],["11.x",{"_index":212,"t":{"1233":{"position":[[0,4]]}}}],["12.x",{"_index":211,"t":{"1231":{"position":[[0,4]]}}}],["13.x",{"_index":210,"t":{"1229":{"position":[[0,4]]}}}],["14.x",{"_index":208,"t":{"1219":{"position":[[0,4]]}}}],["15.x",{"_index":207,"t":{"1215":{"position":[[0,4]]}}}],["ad",{"_index":10,"t":{"22":{"position":[[2,6]]},"28":{"position":[[3,6]]},"1221":{"position":[[0,5]]}}}],["add",{"_index":19,"t":{"43":{"position":[[0,3]]},"55":{"position":[[0,3]]}}}],["aerial.nvim",{"_index":93,"t":{"263":{"position":[[0,11]]},"1285":{"position":[[0,11]]}}}],["alpha",{"_index":134,"t":{"467":{"position":[[0,5]]},"1087":{"position":[[0,5]]},"1184":{"position":[[0,5]]}}}],["ansibl",{"_index":133,"t":{"437":{"position":[[5,7]]},"1315":{"position":[[5,7]]}}}],["around",{"_index":53,"t":{"84":{"position":[[11,6]]}}}],["auto",{"_index":50,"t":{"81":{"position":[[0,4]]}}}],["autoformat",{"_index":56,"t":{"86":{"position":[[8,10]]}}}],["autotag",{"_index":225,"t":{"1409":{"position":[[8,7]]}}}],["avant",{"_index":42,"t":{"63":{"position":[[10,6]]}}}],["avante.nvim",{"_index":40,"t":{"61":{"position":[[0,11]]},"1267":{"position":[[0,11]]}}}],["baleia.nvim",{"_index":143,"t":{"499":{"position":[[0,11]]}}}],["blankline.nvim",{"_index":192,"t":{"1093":{"position":[[7,14]]},"1113":{"position":[[7,14]]}}}],["blink",{"_index":41,"t":{"63":{"position":[[0,5]]}}}],["blink.cmp",{"_index":48,"t":{"69":{"position":[[0,9]]},"118":{"position":[[0,9]]},"168":{"position":[[0,9]]},"190":{"position":[[0,9]]},"207":{"position":[[0,9]]},"213":{"position":[[0,9]]},"217":{"position":[[0,9]]},"219":{"position":[[0,9]]},"641":{"position":[[0,9]]},"941":{"position":[[0,9]]}}}],["blink.compat",{"_index":77,"t":{"186":{"position":[[0,12]]},"221":{"position":[[0,12]]},"637":{"position":[[0,12]]}}}],["buffer",{"_index":55,"t":{"84":{"position":[[27,7]]},"86":{"position":[[28,7]]},"251":{"position":[[4,6]]}}}],["bufferline.nvim",{"_index":197,"t":{"1128":{"position":[[0,15]]},"1245":{"position":[[0,15]]},"1402":{"position":[[0,15]]},"1430":{"position":[[0,15]]}}}],["catppuccin",{"_index":80,"t":{"223":{"position":[[0,10]]},"413":{"position":[[0,10]]},"1400":{"position":[[0,10]]}}}],["chang",{"_index":24,"t":{"47":{"position":[[0,6]]},"1217":{"position":[[0,7]]},"1225":{"position":[[0,7]]}}}],["chezmoi.nvim",{"_index":201,"t":{"1160":{"position":[[0,12]]},"1341":{"position":[[0,12]]}}}],["chezmoi.vim",{"_index":200,"t":{"1158":{"position":[[0,11]]}}}],["clangd",{"_index":31,"t":{"51":{"position":[[4,6]]}}}],["clangd_extensions.nvim",{"_index":145,"t":{"533":{"position":[[0,22]]}}}],["claudecode.nvim",{"_index":49,"t":{"73":{"position":[[0,15]]},"1269":{"position":[[0,15]]}}}],["clip.nvim",{"_index":44,"t":{"65":{"position":[[4,9]]}}}],["cmake",{"_index":138,"t":{"483":{"position":[[0,5]]},"485":{"position":[[0,5]]}}}],["cmp",{"_index":21,"t":{"43":{"position":[[11,3]]},"63":{"position":[[6,3]]},"98":{"position":[[5,3]]},"130":{"position":[[5,3]]},"166":{"position":[[5,3]]},"180":{"position":[[0,3]]},"182":{"position":[[0,3]]},"184":{"position":[[0,3]]},"188":{"position":[[5,3]]},"203":{"position":[[0,3]]},"205":{"position":[[5,3]]},"247":{"position":[[5,3]]},"249":{"position":[[0,3]]},"251":{"position":[[0,3]]},"253":{"position":[[0,3]]},"255":{"position":[[5,3]]},"495":{"position":[[0,3]]},"503":{"position":[[5,3]]},"537":{"position":[[5,3]]},"591":{"position":[[0,3]]},"593":{"position":[[5,3]]},"633":{"position":[[0,3]]},"635":{"position":[[0,3]]},"639":{"position":[[5,3]]},"845":{"position":[[5,3]]},"853":{"position":[[0,3]]},"861":{"position":[[5,3]]},"953":{"position":[[5,3]]}}}],["cmp.nvim",{"_index":183,"t":{"951":{"position":[[22,8]]}}}],["cmp_luasnip",{"_index":73,"t":{"164":{"position":[[0,11]]}}}],["codeium.nvim",{"_index":57,"t":{"90":{"position":[[0,12]]},"92":{"position":[[0,12]]},"94":{"position":[[0,12]]},"96":{"position":[[0,12]]}}}],["color",{"_index":182,"t":{"951":{"position":[[12,9]]}}}],["colorschem",{"_index":7,"t":{"12":{"position":[[8,11]]}}}],["command",{"_index":51,"t":{"81":{"position":[[5,8]]}}}],["comments.nvim",{"_index":116,"t":{"353":{"position":[[5,13]]},"465":{"position":[[5,13]]},"1015":{"position":[[3,13]]},"1261":{"position":[[5,13]]},"1313":{"position":[[5,13]]},"1358":{"position":[[3,13]]},"1394":{"position":[[5,13]]}}}],["commentstr",{"_index":69,"t":{"154":{"position":[[16,13]]}}}],["complet",{"_index":180,"t":{"929":{"position":[[11,10]]},"933":{"position":[[11,10]]}}}],["conform.nvim",{"_index":121,"t":{"369":{"position":[[0,12]]},"379":{"position":[[0,12]]},"407":{"position":[[0,12]]},"429":{"position":[[0,12]]},"449":{"position":[[0,12]]},"511":{"position":[[0,12]]},"549":{"position":[[0,12]]},"565":{"position":[[0,12]]},"585":{"position":[[0,12]]},"625":{"position":[[0,12]]},"669":{"position":[[0,12]]},"697":{"position":[[0,12]]},"743":{"position":[[0,12]]},"757":{"position":[[0,12]]},"787":{"position":[[0,12]]},"821":{"position":[[0,12]]},"881":{"position":[[0,12]]},"905":{"position":[[0,12]]},"945":{"position":[[0,12]]},"985":{"position":[[0,12]]},"1005":{"position":[[0,12]]},"1017":{"position":[[0,12]]},"1247":{"position":[[0,12]]},"1370":{"position":[[0,12]]},"1374":{"position":[[0,12]]}}}],["conjur",{"_index":141,"t":{"495":{"position":[[4,7]]},"501":{"position":[[0,7]]}}}],["context",{"_index":68,"t":{"154":{"position":[[8,7]]},"1132":{"position":[[16,7]]}}}],["copilot.lua",{"_index":59,"t":{"104":{"position":[[0,11]]},"108":{"position":[[0,11]]}}}],["copilotchat.nvim",{"_index":61,"t":{"114":{"position":[[0,16]]},"1271":{"position":[[0,16]]}}}],["crates.nvim",{"_index":177,"t":{"911":{"position":[[0,11]]}}}],["cursor.nvim",{"_index":196,"t":{"1117":{"position":[[6,11]]}}}],["custom",{"_index":13,"t":{"26":{"position":[[3,11]]},"1419":{"position":[[3,11]]}}}],["dadbod",{"_index":179,"t":{"927":{"position":[[4,6]]},"929":{"position":[[4,6]]},"931":{"position":[[4,6]]},"933":{"position":[[4,6]]},"1329":{"position":[[4,6]]}}}],["dap",{"_index":81,"t":{"227":{"position":[[5,3]]},"233":{"position":[[5,3]]},"235":{"position":[[5,3]]},"237":{"position":[[5,3]]},"239":{"position":[[5,3]]},"421":{"position":[[5,3]]},"539":{"position":[[5,3]]},"567":{"position":[[5,3]]},"663":{"position":[[5,3]]},"687":{"position":[[5,3]]},"699":{"position":[[5,3]]},"729":{"position":[[5,3]]},"761":{"position":[[5,3]]},"815":{"position":[[5,3]]},"837":{"position":[[5,3]]},"843":{"position":[[5,3]]},"875":{"position":[[5,3]]},"879":{"position":[[5,3]]},"893":{"position":[[5,3]]},"1065":{"position":[[5,3]]},"1081":{"position":[[5,3]]},"1281":{"position":[[5,3]]},"1283":{"position":[[5,3]]},"1323":{"position":[[5,3]]},"1337":{"position":[[5,3]]}}}],["dap.nvim",{"_index":91,"t":{"243":{"position":[[11,8]]},"847":{"position":[[11,8]]},"1067":{"position":[[11,8]]}}}],["dart",{"_index":144,"t":{"513":{"position":[[8,4]]}}}],["dashboard",{"_index":136,"t":{"471":{"position":[[0,9]]},"1099":{"position":[[0,9]]},"1164":{"position":[[0,9]]},"1188":{"position":[[0,9]]}}}],["default",{"_index":8,"t":{"14":{"position":[[0,7]]}}}],["dial.nvim",{"_index":102,"t":{"295":{"position":[[0,9]]},"1289":{"position":[[0,9]]}}}],["disabl",{"_index":12,"t":{"24":{"position":[[2,9]]},"28":{"position":[[12,9]]},"86":{"position":[[0,7]]}}}],["doc.nvim",{"_index":186,"t":{"977":{"position":[[20,8]]}}}],["dressing.nvim",{"_index":124,"t":{"389":{"position":[[0,13]]}}}],["edgy.nvim",{"_index":62,"t":{"116":{"position":[[0,9]]},"269":{"position":[[0,9]]},"333":{"position":[[0,9]]},"417":{"position":[[0,9]]},"939":{"position":[[0,9]]},"1339":{"position":[[0,9]]}}}],["elixir",{"_index":152,"t":{"609":{"position":[[8,6]]}}}],["encod",{"_index":33,"t":{"51":{"position":[[18,8]]}}}],["eslint",{"_index":35,"t":{"53":{"position":[[4,6]]},"55":{"position":[[4,6]]}}}],["extend",{"_index":147,"t":{"553":{"position":[[10,8]]}}}],["extra",{"_index":129,"t":{"399":{"position":[[23,6]]},"441":{"position":[[23,6]]},"897":{"position":[[23,6]]},"1021":{"position":[[23,6]]},"1150":{"position":[[23,6]]},"1194":{"position":[[23,6]]}}}],["far.nvim",{"_index":216,"t":{"1251":{"position":[[5,8]]},"1382":{"position":[[5,8]]}}}],["featur",{"_index":1,"t":{"3":{"position":[[2,8]]}}}],["file",{"_index":4,"t":{"10":{"position":[[3,4]]}}}],["fix",{"_index":30,"t":{"51":{"position":[[0,3]]},"53":{"position":[[15,3]]}}}],["flash.nvim",{"_index":137,"t":{"473":{"position":[[0,10]]},"1249":{"position":[[0,10]]},"1384":{"position":[[0,10]]}}}],["flit.nvim",{"_index":99,"t":{"285":{"position":[[0,9]]}}}],["follow",{"_index":128,"t":{"399":{"position":[[13,9]]},"441":{"position":[[13,9]]},"897":{"position":[[13,9]]},"1021":{"position":[[13,9]]},"1150":{"position":[[13,9]]},"1194":{"position":[[13,9]]}}}],["format",{"_index":38,"t":{"53":{"position":[[44,10]]},"55":{"position":[[26,10]]}}}],["friendli",{"_index":71,"t":{"160":{"position":[[0,8]]},"215":{"position":[[0,8]]},"259":{"position":[[0,8]]}}}],["fzf",{"_index":113,"t":{"347":{"position":[[0,3]]},"349":{"position":[[0,3]]},"393":{"position":[[10,3]]},"1182":{"position":[[0,3]]},"1349":{"position":[[0,3]]}}}],["gener",{"_index":214,"t":{"1241":{"position":[[0,7]]}}}],["gh.nvim",{"_index":199,"t":{"1154":{"position":[[0,7]]},"1343":{"position":[[0,7]]}}}],["git",{"_index":150,"t":{"591":{"position":[[4,3]]}}}],["gitsigns.nvim",{"_index":222,"t":{"1388":{"position":[[0,13]]},"1390":{"position":[[0,13]]}}}],["global",{"_index":16,"t":{"32":{"position":[[0,6]]}}}],["go",{"_index":158,"t":{"687":{"position":[[9,2]]}}}],["golang",{"_index":159,"t":{"689":{"position":[[8,6]]}}}],["grug",{"_index":215,"t":{"1251":{"position":[[0,4]]},"1382":{"position":[[0,4]]}}}],["harpoon",{"_index":96,"t":{"275":{"position":[[0,7]]},"1291":{"position":[[0,7]]}}}],["haskel",{"_index":155,"t":{"647":{"position":[[0,7]]},"653":{"position":[[8,7]]},"655":{"position":[[0,7]]},"1317":{"position":[[0,7]]}}}],["helm",{"_index":151,"t":{"597":{"position":[[0,4]]}}}],["icon",{"_index":6,"t":{"12":{"position":[[0,5]]}}}],["illumin",{"_index":98,"t":{"281":{"position":[[4,10]]},"1293":{"position":[[4,10]]}}}],["img",{"_index":43,"t":{"65":{"position":[[0,3]]}}}],["inc",{"_index":103,"t":{"299":{"position":[[0,3]]}}}],["includ",{"_index":127,"t":{"399":{"position":[[0,8]]},"441":{"position":[[0,8]]},"897":{"position":[[0,8]]},"1021":{"position":[[0,8]]},"1150":{"position":[[0,8]]},"1194":{"position":[[0,8]]}}}],["indent",{"_index":191,"t":{"1093":{"position":[[0,6]]},"1113":{"position":[[0,6]]}}}],["jdtl",{"_index":163,"t":{"725":{"position":[[5,5]]}}}],["key.nvim",{"_index":131,"t":{"415":{"position":[[6,8]]},"727":{"position":[[6,8]]},"1265":{"position":[[6,8]]},"1386":{"position":[[6,8]]}}}],["keymap",{"_index":15,"t":{"28":{"position":[[29,7]]},"32":{"position":[[7,7]]},"34":{"position":[[7,7]]},"36":{"position":[[4,7]]},"38":{"position":[[11,7]]},"79":{"position":[[0,7]]},"1227":{"position":[[0,7]]},"1419":{"position":[[19,7]]}}}],["kulala.nvim",{"_index":206,"t":{"1206":{"position":[[0,11]]},"1353":{"position":[[0,11]]}}}],["latex",{"_index":153,"t":{"633":{"position":[[4,5]]},"635":{"position":[[4,5]]}}}],["lazydev.nvim",{"_index":221,"t":{"1362":{"position":[[0,12]]}}}],["lean.nvim",{"_index":162,"t":{"713":{"position":[[0,9]]}}}],["leap.nvim",{"_index":100,"t":{"287":{"position":[[0,9]]},"1295":{"position":[[0,9]]}}}],["learn",{"_index":3,"t":{"7":{"position":[[3,5]]}}}],["lint",{"_index":140,"t":{"489":{"position":[[5,4]]},"527":{"position":[[5,4]]},"615":{"position":[[5,4]]},"671":{"position":[[5,4]]},"695":{"position":[[5,4]]},"745":{"position":[[5,4]]},"755":{"position":[[5,4]]},"791":{"position":[[5,4]]},"819":{"position":[[5,4]]},"943":{"position":[[5,4]]},"983":{"position":[[5,4]]},"1003":{"position":[[5,4]]},"1379":{"position":[[5,4]]}}}],["litee.nvim",{"_index":198,"t":{"1152":{"position":[[0,10]]}}}],["ls.nvim",{"_index":123,"t":{"371":{"position":[[5,7]]},"381":{"position":[[5,7]]},"427":{"position":[[5,7]]},"487":{"position":[[5,7]]},"525":{"position":[[5,7]]},"563":{"position":[[5,7]]},"597":{"position":[[5,7]]},"613":{"position":[[5,7]]},"693":{"position":[[5,7]]},"759":{"position":[[5,7]]},"789":{"position":[[5,7]]},"817":{"position":[[5,7]]},"981":{"position":[[5,7]]},"1001":{"position":[[5,7]]},"1071":{"position":[[5,7]]}}}],["lsp",{"_index":17,"t":{"36":{"position":[[0,3]]},"38":{"position":[[0,3]]},"249":{"position":[[9,3]]},"1243":{"position":[[0,3]]},"1419":{"position":[[15,3]]}}}],["lsp.nvim",{"_index":148,"t":{"553":{"position":[[19,8]]}}}],["lspconfig",{"_index":60,"t":{"106":{"position":[[5,9]]},"136":{"position":[[5,9]]},"142":{"position":[[5,9]]},"301":{"position":[[5,9]]},"351":{"position":[[5,9]]},"395":{"position":[[5,9]]},"403":{"position":[[5,9]]},"405":{"position":[[5,9]]},"435":{"position":[[5,9]]},"445":{"position":[[5,9]]},"447":{"position":[[5,9]]},"459":{"position":[[5,9]]},"481":{"position":[[5,9]]},"507":{"position":[[5,9]]},"523":{"position":[[5,9]]},"535":{"position":[[5,9]]},"547":{"position":[[5,9]]},"559":{"position":[[5,9]]},"573":{"position":[[5,9]]},"583":{"position":[[5,9]]},"601":{"position":[[5,9]]},"605":{"position":[[5,9]]},"623":{"position":[[5,9]]},"631":{"position":[[5,9]]},"661":{"position":[[5,9]]},"677":{"position":[[5,9]]},"709":{"position":[[5,9]]},"723":{"position":[[5,9]]},"733":{"position":[[5,9]]},"741":{"position":[[5,9]]},"753":{"position":[[5,9]]},"767":{"position":[[5,9]]},"773":{"position":[[5,9]]},"779":{"position":[[5,9]]},"795":{"position":[[5,9]]},"805":{"position":[[5,9]]},"831":{"position":[[5,9]]},"833":{"position":[[5,9]]},"857":{"position":[[5,9]]},"871":{"position":[[5,9]]},"901":{"position":[[5,9]]},"903":{"position":[[5,9]]},"917":{"position":[[5,9]]},"949":{"position":[[5,9]]},"959":{"position":[[5,9]]},"967":{"position":[[5,9]]},"973":{"position":[[5,9]]},"991":{"position":[[5,9]]},"999":{"position":[[5,9]]},"1011":{"position":[[5,9]]},"1025":{"position":[[5,9]]},"1027":{"position":[[5,9]]},"1033":{"position":[[5,9]]},"1039":{"position":[[5,9]]},"1045":{"position":[[5,9]]},"1053":{"position":[[5,9]]},"1059":{"position":[[5,9]]},"1136":{"position":[[5,9]]},"1368":{"position":[[5,9]]},"1421":{"position":[[5,9]]}}}],["lspconfig.nvim",{"_index":226,"t":{"1425":{"position":[[6,14]]}}}],["lua",{"_index":114,"t":{"347":{"position":[[4,3]]},"349":{"position":[[4,3]]},"1182":{"position":[[4,3]]},"1349":{"position":[[4,3]]}}}],["lualine.nvim",{"_index":58,"t":{"100":{"position":[[0,12]]},"110":{"position":[[0,12]]},"138":{"position":[[0,12]]},"146":{"position":[[0,12]]},"192":{"position":[[0,12]]},"271":{"position":[[0,12]]},"319":{"position":[[0,12]]},"325":{"position":[[0,12]]},"1432":{"position":[[0,12]]}}}],["luasnip",{"_index":70,"t":{"158":{"position":[[0,7]]},"162":{"position":[[0,7]]},"657":{"position":[[0,7]]}}}],["make",{"_index":27,"t":{"49":{"position":[[0,4]]}}}],["map",{"_index":26,"t":{"47":{"position":[[16,8]]}}}],["markdown",{"_index":164,"t":{"781":{"position":[[0,8]]},"783":{"position":[[0,8]]},"1321":{"position":[[0,8]]}}}],["markdown.nvim",{"_index":47,"t":{"67":{"position":[[7,13]]},"617":{"position":[[7,13]]},"785":{"position":[[7,13]]}}}],["mason",{"_index":90,"t":{"243":{"position":[[0,5]]},"847":{"position":[[0,5]]},"1067":{"position":[[0,5]]},"1425":{"position":[[0,5]]}}}],["mason.nvim",{"_index":120,"t":{"367":{"position":[[0,10]]},"377":{"position":[[0,10]]},"425":{"position":[[0,10]]},"433":{"position":[[0,10]]},"479":{"position":[[0,10]]},"521":{"position":[[0,10]]},"541":{"position":[[0,10]]},"557":{"position":[[0,10]]},"581":{"position":[[0,10]]},"649":{"position":[[0,10]]},"651":{"position":[[0,10]]},"679":{"position":[[0,10]]},"681":{"position":[[0,10]]},"683":{"position":[[0,10]]},"685":{"position":[[0,10]]},"721":{"position":[[0,10]]},"749":{"position":[[0,10]]},"777":{"position":[[0,10]]},"807":{"position":[[0,10]]},"873":{"position":[[0,10]]},"919":{"position":[[0,10]]},"935":{"position":[[0,10]]},"975":{"position":[[0,10]]},"997":{"position":[[0,10]]},"1061":{"position":[[0,10]]},"1073":{"position":[[0,10]]},"1138":{"position":[[0,10]]},"1170":{"position":[[0,10]]},"1253":{"position":[[0,10]]},"1345":{"position":[[0,10]]},"1376":{"position":[[0,10]]},"1423":{"position":[[0,10]]},"1427":{"position":[[0,10]]}}}],["metal",{"_index":176,"t":{"889":{"position":[[5,6]]},"1327":{"position":[[5,6]]}}}],["mini",{"_index":79,"t":{"203":{"position":[[4,4]]}}}],["mini.ai",{"_index":220,"t":{"1360":{"position":[[0,7]]}}}],["mini.anim",{"_index":193,"t":{"1105":{"position":[[0,12]]},"1119":{"position":[[0,12]]}}}],["mini.com",{"_index":66,"t":{"152":{"position":[[0,12]]}}}],["mini.diff",{"_index":108,"t":{"315":{"position":[[0,9]]},"317":{"position":[[0,9]]},"1299":{"position":[[0,9]]}}}],["mini.fil",{"_index":107,"t":{"311":{"position":[[0,10]]},"1301":{"position":[[0,10]]}}}],["mini.hipattern",{"_index":202,"t":{"1174":{"position":[[0,15]]}}}],["mini.icon",{"_index":160,"t":{"691":{"position":[[0,10]]},"1063":{"position":[[0,10]]},"1162":{"position":[[0,10]]},"1436":{"position":[[0,10]]}}}],["mini.indentscop",{"_index":194,"t":{"1109":{"position":[[0,16]]}}}],["mini.mov",{"_index":106,"t":{"307":{"position":[[0,9]]}}}],["mini.pair",{"_index":219,"t":{"1356":{"position":[[0,10]]}}}],["mini.snippet",{"_index":78,"t":{"201":{"position":[[0,13]]}}}],["mini.start",{"_index":135,"t":{"469":{"position":[[0,12]]},"1146":{"position":[[0,12]]},"1186":{"position":[[0,12]]}}}],["mini.surround",{"_index":74,"t":{"172":{"position":[[0,13]]},"291":{"position":[[0,13]]},"1275":{"position":[[0,13]]},"1297":{"position":[[0,13]]}}}],["multipl",{"_index":54,"t":{"84":{"position":[[18,8]]}}}],["native.nvim",{"_index":126,"t":{"393":{"position":[[14,11]]}}}],["navic",{"_index":109,"t":{"323":{"position":[[5,5]]}}}],["navig",{"_index":52,"t":{"84":{"position":[[0,10]]}}}],["neo",{"_index":111,"t":{"337":{"position":[[0,3]]},"1126":{"position":[[0,3]]}}}],["neoconf.nvim",{"_index":190,"t":{"1055":{"position":[[0,12]]}}}],["neogen",{"_index":75,"t":{"176":{"position":[[0,6]]},"1277":{"position":[[0,6]]}}}],["neotest",{"_index":132,"t":{"419":{"position":[[0,7]]},"513":{"position":[[0,7]]},"515":{"position":[[0,7]]},"561":{"position":[[0,7]]},"569":{"position":[[0,7]]},"609":{"position":[[0,7]]},"611":{"position":[[0,7]]},"653":{"position":[[0,7]]},"665":{"position":[[0,7]]},"689":{"position":[[0,7]]},"701":{"position":[[0,7]]},"809":{"position":[[0,7]]},"811":{"position":[[0,7]]},"813":{"position":[[0,7]]},"823":{"position":[[0,7]]},"835":{"position":[[0,7]]},"841":{"position":[[0,7]]},"859":{"position":[[0,7]]},"863":{"position":[[0,7]]},"877":{"position":[[0,7]]},"883":{"position":[[0,7]]},"921":{"position":[[0,7]]},"1047":{"position":[[0,7]]},"1049":{"position":[[0,7]]},"1077":{"position":[[0,7]]},"1335":{"position":[[0,7]]}}}],["nio",{"_index":89,"t":{"241":{"position":[[5,3]]},"1079":{"position":[[5,3]]}}}],["noice.nvim",{"_index":105,"t":{"303":{"position":[[0,10]]},"1255":{"position":[[0,10]]},"1434":{"position":[[0,10]]}}}],["none",{"_index":122,"t":{"371":{"position":[[0,4]]},"381":{"position":[[0,4]]},"427":{"position":[[0,4]]},"487":{"position":[[0,4]]},"525":{"position":[[0,4]]},"563":{"position":[[0,4]]},"613":{"position":[[0,4]]},"693":{"position":[[0,4]]},"759":{"position":[[0,4]]},"789":{"position":[[0,4]]},"817":{"position":[[0,4]]},"981":{"position":[[0,4]]},"1001":{"position":[[0,4]]},"1071":{"position":[[0,4]]}}}],["nui.nvim",{"_index":39,"t":{"59":{"position":[[0,8]]},"1438":{"position":[[0,8]]}}}],["nvim",{"_index":20,"t":{"43":{"position":[[6,4]]},"98":{"position":[[0,4]]},"106":{"position":[[0,4]]},"122":{"position":[[11,4]]},"124":{"position":[[11,4]]},"126":{"position":[[11,4]]},"128":{"position":[[11,4]]},"130":{"position":[[0,4]]},"136":{"position":[[0,4]]},"142":{"position":[[0,4]]},"154":{"position":[[0,4]]},"166":{"position":[[0,4]]},"188":{"position":[[0,4]]},"205":{"position":[[0,4]]},"227":{"position":[[0,4]]},"233":{"position":[[0,4]]},"235":{"position":[[0,4]]},"237":{"position":[[0,4]]},"239":{"position":[[0,4]]},"241":{"position":[[0,4]]},"243":{"position":[[6,4]]},"247":{"position":[[0,4]]},"249":{"position":[[4,4]]},"255":{"position":[[0,4]]},"257":{"position":[[0,4]]},"301":{"position":[[0,4]]},"323":{"position":[[0,4]]},"351":{"position":[[0,4]]},"361":{"position":[[0,4]]},"395":{"position":[[0,4]]},"401":{"position":[[0,4]]},"403":{"position":[[0,4]]},"405":{"position":[[0,4]]},"421":{"position":[[0,4]]},"435":{"position":[[0,4]]},"437":{"position":[[0,4]]},"443":{"position":[[0,4]]},"445":{"position":[[0,4]]},"447":{"position":[[0,4]]},"459":{"position":[[0,4]]},"467":{"position":[[6,4]]},"471":{"position":[[10,4]]},"477":{"position":[[0,4]]},"481":{"position":[[0,4]]},"489":{"position":[[0,4]]},"493":{"position":[[0,4]]},"497":{"position":[[0,4]]},"503":{"position":[[0,4]]},"507":{"position":[[0,4]]},"509":{"position":[[0,4]]},"519":{"position":[[0,4]]},"523":{"position":[[0,4]]},"527":{"position":[[0,4]]},"531":{"position":[[0,4]]},"535":{"position":[[0,4]]},"537":{"position":[[0,4]]},"539":{"position":[[0,4]]},"545":{"position":[[0,4]]},"547":{"position":[[0,4]]},"555":{"position":[[0,4]]},"559":{"position":[[0,4]]},"567":{"position":[[0,4]]},"573":{"position":[[0,4]]},"575":{"position":[[0,4]]},"579":{"position":[[0,4]]},"583":{"position":[[0,4]]},"589":{"position":[[0,4]]},"593":{"position":[[0,4]]},"599":{"position":[[0,4]]},"601":{"position":[[0,4]]},"605":{"position":[[0,4]]},"607":{"position":[[0,4]]},"615":{"position":[[0,4]]},"621":{"position":[[0,4]]},"623":{"position":[[0,4]]},"629":{"position":[[0,4]]},"631":{"position":[[0,4]]},"639":{"position":[[0,4]]},"645":{"position":[[0,4]]},"661":{"position":[[0,4]]},"663":{"position":[[0,4]]},"671":{"position":[[0,4]]},"675":{"position":[[0,4]]},"677":{"position":[[0,4]]},"687":{"position":[[0,4]]},"695":{"position":[[0,4]]},"699":{"position":[[0,4]]},"705":{"position":[[0,4]]},"709":{"position":[[0,4]]},"719":{"position":[[0,4]]},"723":{"position":[[0,4]]},"725":{"position":[[0,4]]},"729":{"position":[[0,4]]},"733":{"position":[[0,4]]},"735":{"position":[[0,4]]},"739":{"position":[[0,4]]},"741":{"position":[[0,4]]},"745":{"position":[[0,4]]},"751":{"position":[[0,4]]},"753":{"position":[[0,4]]},"755":{"position":[[0,4]]},"761":{"position":[[0,4]]},"765":{"position":[[0,4]]},"767":{"position":[[0,4]]},"771":{"position":[[0,4]]},"773":{"position":[[0,4]]},"779":{"position":[[0,4]]},"791":{"position":[[0,4]]},"795":{"position":[[0,4]]},"797":{"position":[[0,4]]},"803":{"position":[[0,4]]},"805":{"position":[[0,4]]},"815":{"position":[[0,4]]},"819":{"position":[[0,4]]},"829":{"position":[[0,4]]},"831":{"position":[[0,4]]},"833":{"position":[[0,4]]},"837":{"position":[[0,4]]},"843":{"position":[[0,4]]},"845":{"position":[[0,4]]},"847":{"position":[[6,4]]},"855":{"position":[[0,4]]},"857":{"position":[[0,4]]},"861":{"position":[[0,4]]},"869":{"position":[[0,4]]},"871":{"position":[[0,4]]},"875":{"position":[[0,4]]},"879":{"position":[[0,4]]},"887":{"position":[[0,4]]},"889":{"position":[[0,4]]},"893":{"position":[[0,4]]},"899":{"position":[[0,4]]},"901":{"position":[[0,4]]},"903":{"position":[[0,4]]},"913":{"position":[[0,4]]},"917":{"position":[[0,4]]},"937":{"position":[[0,4]]},"943":{"position":[[0,4]]},"949":{"position":[[0,4]]},"953":{"position":[[0,4]]},"957":{"position":[[0,4]]},"959":{"position":[[0,4]]},"963":{"position":[[0,4]]},"967":{"position":[[0,4]]},"971":{"position":[[0,4]]},"973":{"position":[[0,4]]},"983":{"position":[[0,4]]},"991":{"position":[[0,4]]},"995":{"position":[[0,4]]},"999":{"position":[[0,4]]},"1003":{"position":[[0,4]]},"1009":{"position":[[0,4]]},"1011":{"position":[[0,4]]},"1023":{"position":[[0,4]]},"1025":{"position":[[0,4]]},"1027":{"position":[[0,4]]},"1033":{"position":[[0,4]]},"1039":{"position":[[0,4]]},"1043":{"position":[[0,4]]},"1045":{"position":[[0,4]]},"1053":{"position":[[0,4]]},"1059":{"position":[[0,4]]},"1065":{"position":[[0,4]]},"1067":{"position":[[6,4]]},"1079":{"position":[[0,4]]},"1081":{"position":[[0,4]]},"1087":{"position":[[6,4]]},"1099":{"position":[[10,4]]},"1132":{"position":[[0,4]]},"1136":{"position":[[0,4]]},"1140":{"position":[[0,4]]},"1164":{"position":[[10,4]]},"1184":{"position":[[6,4]]},"1188":{"position":[[10,4]]},"1208":{"position":[[0,4]]},"1281":{"position":[[0,4]]},"1283":{"position":[[0,4]]},"1315":{"position":[[0,4]]},"1323":{"position":[[0,4]]},"1327":{"position":[[0,4]]},"1337":{"position":[[0,4]]},"1366":{"position":[[0,4]]},"1368":{"position":[[0,4]]},"1379":{"position":[[0,4]]},"1405":{"position":[[0,4]]},"1407":{"position":[[0,4]]},"1409":{"position":[[0,4]]},"1421":{"position":[[0,4]]}}}],["octo.nvim",{"_index":204,"t":{"1196":{"position":[[0,9]]},"1198":{"position":[[0,9]]},"1347":{"position":[[0,9]]}}}],["offset",{"_index":32,"t":{"51":{"position":[[11,6]]}}}],["omnisharp",{"_index":146,"t":{"553":{"position":[[0,9]]}}}],["on",{"_index":82,"t":{"229":{"position":[[0,3]]}}}],["option",{"_index":45,"t":{"65":{"position":[[14,10]]},"67":{"position":[[21,10]]},"69":{"position":[[10,10]]},"77":{"position":[[0,7]]},"98":{"position":[[9,10]]},"100":{"position":[[13,10]]},"110":{"position":[[13,10]]},"116":{"position":[[10,10]]},"118":{"position":[[10,10]]},"130":{"position":[[9,10]]},"134":{"position":[[0,7]]},"138":{"position":[[13,10]]},"146":{"position":[[13,10]]},"148":{"position":[[12,10]]},"166":{"position":[[9,10]]},"168":{"position":[[10,10]]},"188":{"position":[[9,10]]},"190":{"position":[[10,10]]},"192":{"position":[[13,10]]},"199":{"position":[[0,7]]},"205":{"position":[[9,10]]},"207":{"position":[[10,10]]},"211":{"position":[[0,7]]},"221":{"position":[[13,10]]},"223":{"position":[[11,10]]},"265":{"position":[[13,10]]},"267":{"position":[[15,10]]},"269":{"position":[[10,10]]},"271":{"position":[[13,10]]},"291":{"position":[[14,10]]},"303":{"position":[[11,10]]},"325":{"position":[[13,10]]},"331":{"position":[[13,10]]},"333":{"position":[[10,10]]},"345":{"position":[[0,7]]},"353":{"position":[[19,10]]},"365":{"position":[[0,7]]},"369":{"position":[[13,10]]},"371":{"position":[[13,10]]},"375":{"position":[[0,7]]},"379":{"position":[[13,10]]},"381":{"position":[[13,10]]},"385":{"position":[[0,7]]},"413":{"position":[[11,10]]},"415":{"position":[[15,10]]},"417":{"position":[[10,10]]},"419":{"position":[[8,10]]},"421":{"position":[[9,10]]},"427":{"position":[[13,10]]},"429":{"position":[[13,10]]},"453":{"position":[[0,7]]},"465":{"position":[[19,10]]},"467":{"position":[[11,10]]},"469":{"position":[[13,10]]},"471":{"position":[[15,10]]},"473":{"position":[[11,10]]},"487":{"position":[[13,10]]},"489":{"position":[[10,10]]},"503":{"position":[[9,10]]},"515":{"position":[[8,10]]},"525":{"position":[[13,10]]},"527":{"position":[[10,10]]},"537":{"position":[[9,10]]},"539":{"position":[[9,10]]},"541":{"position":[[11,10]]},"563":{"position":[[13,10]]},"565":{"position":[[13,10]]},"567":{"position":[[9,10]]},"569":{"position":[[8,10]]},"585":{"position":[[13,10]]},"593":{"position":[[9,10]]},"611":{"position":[[8,10]]},"613":{"position":[[13,10]]},"615":{"position":[[10,10]]},"617":{"position":[[21,10]]},"625":{"position":[[13,10]]},"639":{"position":[[9,10]]},"641":{"position":[[10,10]]},"663":{"position":[[9,10]]},"665":{"position":[[8,10]]},"667":{"position":[[15,10]]},"669":{"position":[[13,10]]},"671":{"position":[[10,10]]},"693":{"position":[[13,10]]},"695":{"position":[[10,10]]},"697":{"position":[[13,10]]},"699":{"position":[[9,10]]},"701":{"position":[[8,10]]},"729":{"position":[[9,10]]},"743":{"position":[[13,10]]},"745":{"position":[[10,10]]},"755":{"position":[[10,10]]},"757":{"position":[[13,10]]},"759":{"position":[[13,10]]},"761":{"position":[[9,10]]},"787":{"position":[[13,10]]},"789":{"position":[[13,10]]},"791":{"position":[[10,10]]},"801":{"position":[[0,7]]},"815":{"position":[[9,10]]},"817":{"position":[[13,10]]},"819":{"position":[[10,10]]},"821":{"position":[[13,10]]},"823":{"position":[[8,10]]},"827":{"position":[[0,7]]},"841":{"position":[[8,10]]},"843":{"position":[[9,10]]},"845":{"position":[[9,10]]},"847":{"position":[[20,10]]},"861":{"position":[[9,10]]},"863":{"position":[[8,10]]},"867":{"position":[[0,7]]},"879":{"position":[[9,10]]},"881":{"position":[[13,10]]},"883":{"position":[[8,10]]},"893":{"position":[[9,10]]},"909":{"position":[[0,7]]},"919":{"position":[[11,10]]},"921":{"position":[[8,10]]},"925":{"position":[[0,7]]},"937":{"position":[[16,10]]},"939":{"position":[[10,10]]},"941":{"position":[[10,10]]},"943":{"position":[[10,10]]},"945":{"position":[[13,10]]},"953":{"position":[[9,10]]},"959":{"position":[[15,10]]},"967":{"position":[[15,10]]},"981":{"position":[[13,10]]},"983":{"position":[[10,10]]},"985":{"position":[[13,10]]},"987":{"position":[[15,10]]},"1001":{"position":[[13,10]]},"1003":{"position":[[10,10]]},"1005":{"position":[[13,10]]},"1017":{"position":[[13,10]]},"1037":{"position":[[0,7]]},"1049":{"position":[[8,10]]},"1065":{"position":[[9,10]]},"1067":{"position":[[20,10]]},"1081":{"position":[[9,10]]},"1113":{"position":[[22,10]]},"1119":{"position":[[13,10]]},"1124":{"position":[[15,10]]},"1126":{"position":[[14,10]]},"1128":{"position":[[16,10]]},"1164":{"position":[[15,10]]},"1166":{"position":[[12,10]]},"1180":{"position":[[15,10]]},"1182":{"position":[[8,10]]},"1184":{"position":[[11,10]]},"1186":{"position":[[13,10]]},"1188":{"position":[[15,10]]},"1190":{"position":[[12,10]]},"1370":{"position":[[13,10]]},"1402":{"position":[[16,10]]}}}],["outline.nvim",{"_index":110,"t":{"329":{"position":[[0,12]]},"1303":{"position":[[0,12]]}}}],["overseer.nvim",{"_index":130,"t":{"411":{"position":[[0,13]]},"1305":{"position":[[0,13]]}}}],["paredit",{"_index":142,"t":{"497":{"position":[[5,7]]}}}],["path",{"_index":92,"t":{"253":{"position":[[4,4]]}}}],["persistence.nvim",{"_index":217,"t":{"1257":{"position":[[0,16]]},"1414":{"position":[[0,16]]}}}],["pest",{"_index":166,"t":{"809":{"position":[[8,4]]},"813":{"position":[[8,4]]}}}],["phpunit",{"_index":167,"t":{"811":{"position":[[8,7]]}}}],["plenary.nvim",{"_index":118,"t":{"359":{"position":[[0,12]]},"715":{"position":[[0,12]]},"891":{"position":[[0,12]]},"1416":{"position":[[0,12]]}}}],["plugin",{"_index":11,"t":{"22":{"position":[[9,7]]},"24":{"position":[[12,7]]},"26":{"position":[[15,6]]},"28":{"position":[[22,6]]},"34":{"position":[[0,6]]},"1221":{"position":[[6,7]]},"1223":{"position":[[8,7]]}}}],["prettier",{"_index":37,"t":{"53":{"position":[[31,8]]}}}],["preview.nvim",{"_index":165,"t":{"781":{"position":[[9,12]]},"783":{"position":[[9,12]]},"1013":{"position":[[6,12]]},"1321":{"position":[[9,12]]},"1333":{"position":[[6,12]]}}}],["project.nvim",{"_index":203,"t":{"1178":{"position":[[0,12]]}}}],["python",{"_index":168,"t":{"835":{"position":[[8,6]]},"837":{"position":[[9,6]]},"1323":{"position":[[9,6]]}}}],["r",{"_index":172,"t":{"853":{"position":[[4,1]]}}}],["r.nvim",{"_index":171,"t":{"851":{"position":[[0,6]]}}}],["refactoring.nvim",{"_index":117,"t":{"357":{"position":[[0,16]]},"1307":{"position":[[0,16]]}}}],["remov",{"_index":209,"t":{"1223":{"position":[[0,7]]}}}],["rename.nvim",{"_index":104,"t":{"299":{"position":[[4,11]]}}}],["render",{"_index":46,"t":{"67":{"position":[[0,6]]},"617":{"position":[[0,6]]},"785":{"position":[[0,6]]}}}],["repeat",{"_index":101,"t":{"289":{"position":[[4,6]]}}}],["requir",{"_index":2,"t":{"5":{"position":[[3,12]]}}}],["rspec",{"_index":175,"t":{"877":{"position":[[8,5]]}}}],["rubi",{"_index":174,"t":{"875":{"position":[[9,4]]}}}],["rustaceanvim",{"_index":178,"t":{"915":{"position":[[0,12]]}}}],["save",{"_index":36,"t":{"53":{"position":[[22,4]]}}}],["schemastore.nvim",{"_index":161,"t":{"707":{"position":[[0,16]]},"1031":{"position":[[0,16]]}}}],["selector.nvim",{"_index":170,"t":{"839":{"position":[[5,13]]},"1325":{"position":[[5,13]]}}}],["server",{"_index":18,"t":{"38":{"position":[[4,6]]}}}],["set",{"_index":9,"t":{"14":{"position":[[8,8]]}}}],["sidekick.nvim",{"_index":64,"t":{"144":{"position":[[0,13]]},"1273":{"position":[[0,13]]}}}],["small",{"_index":83,"t":{"229":{"position":[[4,5]]}}}],["smear",{"_index":195,"t":{"1117":{"position":[[0,5]]}}}],["snacks.nvim",{"_index":65,"t":{"148":{"position":[[0,11]]},"279":{"position":[[0,11]]},"341":{"position":[[0,11]]},"455":{"position":[[0,11]]},"457":{"position":[[0,11]]},"461":{"position":[[0,11]]},"463":{"position":[[0,11]]},"1085":{"position":[[0,11]]},"1091":{"position":[[0,11]]},"1097":{"position":[[0,11]]},"1103":{"position":[[0,11]]},"1111":{"position":[[0,11]]},"1144":{"position":[[0,11]]},"1166":{"position":[[0,11]]},"1190":{"position":[[0,11]]},"1259":{"position":[[0,11]]},"1309":{"position":[[0,11]]},"1311":{"position":[[0,11]]},"1412":{"position":[[0,11]]},"1440":{"position":[[0,11]]},"1442":{"position":[[0,11]]}}}],["snippet",{"_index":72,"t":{"160":{"position":[[9,8]]},"203":{"position":[[9,8]]},"215":{"position":[[9,8]]},"257":{"position":[[5,8]]},"259":{"position":[[9,8]]}}}],["snippets.nvim",{"_index":156,"t":{"655":{"position":[[8,13]]}}}],["sourc",{"_index":22,"t":{"43":{"position":[[15,6]]}}}],["spec",{"_index":14,"t":{"26":{"position":[[22,5]]}}}],["startuptim",{"_index":205,"t":{"1202":{"position":[[4,11]]}}}],["step",{"_index":84,"t":{"229":{"position":[[10,4]]}}}],["structur",{"_index":5,"t":{"10":{"position":[[8,9]]}}}],["supermaven",{"_index":63,"t":{"122":{"position":[[0,10]]},"124":{"position":[[0,10]]},"126":{"position":[[0,10]]},"128":{"position":[[0,10]]}}}],["supertab",{"_index":23,"t":{"45":{"position":[[0,8]]}}}],["surround",{"_index":25,"t":{"47":{"position":[[7,8]]}}}],["symbol",{"_index":154,"t":{"633":{"position":[[10,7]]},"635":{"position":[[10,7]]}}}],["tabnin",{"_index":76,"t":{"180":{"position":[[4,7]]},"182":{"position":[[4,7]]},"184":{"position":[[4,7]]}}}],["tailwindcss",{"_index":181,"t":{"951":{"position":[[0,11]]}}}],["telescop",{"_index":125,"t":{"393":{"position":[[0,9]]},"977":{"position":[[0,9]]},"979":{"position":[[0,9]]}}}],["telescope.nvim",{"_index":95,"t":{"267":{"position":[[0,14]]},"387":{"position":[[0,14]]},"391":{"position":[[0,14]]},"667":{"position":[[0,14]]},"987":{"position":[[0,14]]},"1124":{"position":[[0,14]]},"1180":{"position":[[0,14]]},"1287":{"position":[[0,14]]},"1351":{"position":[[0,14]]}}}],["telescope_hoogl",{"_index":157,"t":{"659":{"position":[[0,16]]},"1319":{"position":[[0,16]]}}}],["terraform",{"_index":185,"t":{"977":{"position":[[10,9]]}}}],["terraform.nvim",{"_index":187,"t":{"979":{"position":[[10,14]]}}}],["testthat",{"_index":173,"t":{"859":{"position":[[8,8]]}}}],["text",{"_index":88,"t":{"237":{"position":[[17,4]]}}}],["textobject",{"_index":224,"t":{"1407":{"position":[[16,11]]}}}],["todo",{"_index":115,"t":{"353":{"position":[[0,4]]},"465":{"position":[[0,4]]},"1261":{"position":[[0,4]]},"1313":{"position":[[0,4]]},"1394":{"position":[[0,4]]}}}],["tokyonight",{"_index":28,"t":{"49":{"position":[[5,10]]}}}],["tokyonight.nvim",{"_index":223,"t":{"1398":{"position":[[0,15]]}}}],["tools.nvim",{"_index":139,"t":{"483":{"position":[[6,10]]},"485":{"position":[[6,10]]},"647":{"position":[[8,10]]},"1317":{"position":[[8,10]]}}}],["transpar",{"_index":29,"t":{"49":{"position":[[16,11]]}}}],["tree.nvim",{"_index":112,"t":{"337":{"position":[[4,9]]},"1126":{"position":[[4,9]]}}}],["treesitt",{"_index":119,"t":{"361":{"position":[[5,10]]},"401":{"position":[[5,10]]},"443":{"position":[[5,10]]},"477":{"position":[[5,10]]},"493":{"position":[[5,10]]},"509":{"position":[[5,10]]},"519":{"position":[[5,10]]},"531":{"position":[[5,10]]},"545":{"position":[[5,10]]},"555":{"position":[[5,10]]},"575":{"position":[[5,10]]},"579":{"position":[[5,10]]},"589":{"position":[[5,10]]},"599":{"position":[[5,10]]},"607":{"position":[[5,10]]},"621":{"position":[[5,10]]},"629":{"position":[[5,10]]},"645":{"position":[[5,10]]},"675":{"position":[[5,10]]},"705":{"position":[[5,10]]},"719":{"position":[[5,10]]},"735":{"position":[[5,10]]},"739":{"position":[[5,10]]},"751":{"position":[[5,10]]},"765":{"position":[[5,10]]},"771":{"position":[[5,10]]},"797":{"position":[[5,10]]},"803":{"position":[[5,10]]},"829":{"position":[[5,10]]},"855":{"position":[[5,10]]},"869":{"position":[[5,10]]},"887":{"position":[[5,10]]},"899":{"position":[[5,10]]},"913":{"position":[[5,10]]},"937":{"position":[[5,10]]},"957":{"position":[[5,10]]},"963":{"position":[[5,10]]},"971":{"position":[[5,10]]},"995":{"position":[[5,10]]},"1009":{"position":[[5,10]]},"1023":{"position":[[5,10]]},"1043":{"position":[[5,10]]},"1132":{"position":[[5,10]]},"1140":{"position":[[5,10]]},"1208":{"position":[[5,10]]},"1366":{"position":[[5,10]]},"1405":{"position":[[5,10]]},"1407":{"position":[[5,10]]}}}],["trouble.nvim",{"_index":94,"t":{"265":{"position":[[0,12]]},"331":{"position":[[0,12]]},"1263":{"position":[[0,12]]},"1392":{"position":[[0,12]]}}}],["ts",{"_index":67,"t":{"154":{"position":[[5,2]]},"1015":{"position":[[0,2]]},"1358":{"position":[[0,2]]},"1409":{"position":[[5,2]]}}}],["typst",{"_index":188,"t":{"1013":{"position":[[0,5]]},"1333":{"position":[[0,5]]}}}],["ui",{"_index":86,"t":{"235":{"position":[[9,2]]},"239":{"position":[[9,2]]},"931":{"position":[[11,2]]},"1283":{"position":[[9,2]]},"1329":{"position":[[11,2]]}}}],["us",{"_index":34,"t":{"53":{"position":[[0,3]]},"55":{"position":[[15,3]]}}}],["venv",{"_index":169,"t":{"839":{"position":[[0,4]]},"1325":{"position":[[0,4]]}}}],["vim",{"_index":97,"t":{"281":{"position":[[0,3]]},"289":{"position":[[0,3]]},"927":{"position":[[0,3]]},"929":{"position":[[0,3]]},"931":{"position":[[0,3]]},"933":{"position":[[0,3]]},"1202":{"position":[[0,3]]},"1293":{"position":[[0,3]]},"1329":{"position":[[0,3]]}}}],["vimkind",{"_index":85,"t":{"229":{"position":[[19,7]]}}}],["vimtex",{"_index":184,"t":{"965":{"position":[[0,6]]},"1331":{"position":[[0,6]]}}}],["virtual",{"_index":87,"t":{"237":{"position":[[9,7]]}}}],["vstest",{"_index":149,"t":{"561":{"position":[[8,6]]}}}],["yanky.nvim",{"_index":218,"t":{"1279":{"position":[[0,10]]}}}],["zig",{"_index":189,"t":{"1047":{"position":[[8,3]]}}}]],"pipeline":["stemmer"]}},{"documents":[{"i":2,"t":"LazyVim is a Neovim setup powered by 💤 lazy.nvim to make it easy to customize and extend your config.","s":"🚀 Getting Started","u":"/","h":"","p":1},{"i":4,"t":"🔥 Transform your Neovim into a full-fledged IDE 💤 Easily customize and extend your config with lazy.nvim 🚀 Blazingly fast 🧹 Sane default settings for options, autocmds, and keymaps 📦 Comes with a wealth of plugins pre-configured and ready to use","s":"✨ Features","u":"/","h":"#-features","p":1},{"i":6,"t":"Neovim >= 0.11.2 (needs to be built with LuaJIT) Git >= 2.19.0 (for partial clones support) a Nerd Font(v3.0 or greater) (optional, but needed to display some icons) lazygit (optional) tree-sitter-cli and a C compiler for nvim-treesitter. See here curl for blink.cmp (completion engine) for fzf-lua (optional) fzf: fzf (v0.25.1 or greater) live grep: ripgrep find files: fd a terminal that support true color and undercurl: kitty (Linux & Macos) wezterm (Linux, Macos & Windows) alacritty (Linux, Macos & Windows) iterm2 (Macos) ghostty (Linux, Macos & Windows)","s":"⚡️ Requirements","u":"/","h":"#️-requirements","p":1},{"i":8,"t":"There's a great video created by @elijahmanor with a walkthrough to get started. @dusty-phillips is working on a book called LazyVim for Ambitious Developers available for free online.","s":"🎓 Learn","u":"/","h":"#-learn","p":1},{"i":11,"t":"The files under config will be automatically loaded at the appropriate time, so you don't need to require those files manually. For more information, see general settings. You can add your custom plugin specs under lua/plugins/. All files there will be automatically loaded by lazy.nvim. For more information, see configuring plugins. ~/.config/nvim ├── lua │ ├── config │ │ ├── autocmds.lua │ │ ├── keymaps.lua │ │ ├── lazy.lua │ │ └── options.lua │ └── plugins │ ├── spec1.lua │ ├── ** │ └── spec2.lua └── init.lua","s":"📂 File Structure","u":"/configuration","h":"#-file-structure","p":9},{"i":13,"t":"Icons & colorscheme can be configured as options for the LazyVim plugin. For example in lua/plugins/core.lua return { { \"LazyVim/LazyVim\", opts = { colorscheme = \"catppuccin\", } } }","s":"Icons & Colorscheme","u":"/configuration","h":"#icons--colorscheme","p":9},{"i":15,"t":"{ -- colorscheme can be a string like `catppuccin` or a function that will load the colorscheme ---@type string|fun() colorscheme = function() require(\"tokyonight\").load() end, -- load the default settings defaults = { autocmds = true, -- lazyvim.config.autocmds keymaps = true, -- lazyvim.config.keymaps -- lazyvim.config.options can't be configured here since that's loaded before lazyvim setup -- if you want to disable loading options, add `package.loaded[\"lazyvim.config.options\"] = true` to the top of your init.lua }, news = { -- When enabled, NEWS.md will be shown when changed. -- This only contains big new features and breaking changes. lazyvim = true, -- Same but for Neovim's news.txt neovim = false, }, -- icons used by other plugins icons = { misc = { dots = \"󰇘\", }, ft = { octo = \"\", }, dap = { Stopped = { \"󰁕 \", \"DiagnosticWarn\", \"DapStoppedLine\" }, Breakpoint = \" \", BreakpointCondition = \" \", BreakpointRejected = { \" \", \"DiagnosticError\" }, LogPoint = \".>\", }, diagnostics = { Error = \" \", Warn = \" \", Hint = \" \", Info = \" \", }, git = { added = \" \", modified = \" \", removed = \" \", }, kinds = { Array = \" \", Boolean = \"󰨙 \", Class = \" \", Codeium = \"󰘦 \", Color = \" \", Control = \" \", Collapsed = \" \", Constant = \"󰏿 \", Constructor = \" \", Copilot = \" \", Enum = \" \", EnumMember = \" \", Event = \" \", Field = \" \", File = \" \", Folder = \" \", Function = \"󰊕 \", Interface = \" \", Key = \" \", Keyword = \" \", Method = \"󰊕 \", Module = \" \", Namespace = \"󰦮 \", Null = \" \", Number = \"󰎠 \", Object = \" \", Operator = \" \", Package = \" \", Property = \" \", Reference = \" \", Snippet = \"󱄽 \", String = \" \", Struct = \"󰆼 \", Supermaven = \" \", TabNine = \"󰏚 \", Text = \" \", TypeParameter = \" \", Unit = \" \", Value = \" \", Variable = \"󰀫 \", }, }, ---@type table? kind_filter = { default = { \"Class\", \"Constructor\", \"Enum\", \"Field\", \"Function\", \"Interface\", \"Method\", \"Module\", \"Namespace\", \"Package\", \"Property\", \"Struct\", \"Trait\", }, markdown = false, help = false, -- you can specify a different filter for each filetype lua = { \"Class\", \"Constructor\", \"Enum\", \"Field\", \"Function\", \"Interface\", \"Method\", \"Module\", \"Namespace\", -- \"Package\", -- remove package since luals uses it for control flow structures \"Property\", \"Struct\", \"Trait\", }, }, }","s":"Default Settings","u":"/configuration","h":"#default-settings","p":9},{"i":17,"t":"-- every spec file under the \"plugins\" directory will be loaded automatically by lazy.nvim -- -- In your plugin files, you can: -- * add extra plugins -- * disable/enabled LazyVim plugins -- * override the configuration of LazyVim plugins return { -- add gruvbox { \"ellisonleao/gruvbox.nvim\" }, -- Configure LazyVim to load gruvbox { \"LazyVim/LazyVim\", opts = { colorscheme = \"gruvbox\", }, }, -- change trouble config { \"folke/trouble.nvim\", -- opts will be merged with the parent spec opts = { use_diagnostic_signs = true }, }, -- disable trouble { \"folke/trouble.nvim\", enabled = false }, -- override nvim-cmp and add cmp-emoji { \"hrsh7th/nvim-cmp\", dependencies = { \"hrsh7th/cmp-emoji\" }, ---@param opts cmp.ConfigSchema opts = function(_, opts) table.insert(opts.sources, { name = \"emoji\" }) end, }, -- change some telescope options and a keymap to browse plugin files { \"nvim-telescope/telescope.nvim\", keys = { -- add a keymap to browse plugin files -- stylua: ignore { \"fp\", function() require(\"telescope.builtin\").find_files({ cwd = require(\"lazy.core.config\").options.root }) end, desc = \"Find Plugin File\", }, }, -- change some options opts = { defaults = { layout_strategy = \"horizontal\", layout_config = { prompt_position = \"top\" }, sorting_strategy = \"ascending\", winblend = 0, }, }, }, -- add pyright to lspconfig { \"neovim/nvim-lspconfig\", ---@class PluginLspOpts opts = { ---@type lspconfig.options servers = { -- pyright will be automatically installed with mason and loaded with lspconfig pyright = {}, }, }, }, -- add tsserver and setup with typescript.nvim instead of lspconfig { \"neovim/nvim-lspconfig\", dependencies = { \"jose-elias-alvarez/typescript.nvim\", init = function() require(\"lazyvim.util\").lsp.on_attach(function(_, buffer) -- stylua: ignore vim.keymap.set( \"n\", \"co\", \"TypescriptOrganizeImports\", { buffer = buffer, desc = \"Organize Imports\" }) vim.keymap.set(\"n\", \"cR\", \"TypescriptRenameFile\", { desc = \"Rename File\", buffer = buffer }) end) end, }, ---@class PluginLspOpts opts = { ---@type lspconfig.options servers = { -- tsserver will be automatically installed with mason and loaded with lspconfig tsserver = {}, }, -- you can do any additional lsp server setup here -- return true if you don't want this server to be setup with lspconfig ---@type table setup = { -- example to setup with typescript.nvim tsserver = function(_, opts) require(\"typescript\").setup({ server = opts }) return true end, -- Specify * to use this function as a fallback for any server -- [\"*\"] = function(server, opts) end, }, }, }, -- for typescript, LazyVim also includes extra specs to properly setup lspconfig, -- treesitter, mason and typescript.nvim. So instead of the above, you can use: { import = \"lazyvim.plugins.extras.lang.typescript\" }, -- add more treesitter parsers { \"nvim-treesitter/nvim-treesitter\", opts = { ensure_installed = { \"bash\", \"html\", \"javascript\", \"json\", \"lua\", \"markdown\", \"markdown_inline\", \"python\", \"query\", \"regex\", \"tsx\", \"typescript\", \"vim\", \"yaml\", }, }, }, -- since `vim.tbl_deep_extend`, can only merge tables and not lists, the code above -- would overwrite `ensure_installed` with the new value. -- If you'd rather extend the default config, use the code below instead: { \"nvim-treesitter/nvim-treesitter\", opts = function(_, opts) -- add tsx and treesitter vim.list_extend(opts.ensure_installed, { \"tsx\", \"typescript\", }) end, }, -- the opts function can also be used to change the default opts: { \"nvim-lualine/lualine.nvim\", event = \"VeryLazy\", opts = function(_, opts) table.insert(opts.sections.lualine_x, { function() return \"😄\" end, }) end, }, -- or you can return new options to override all the defaults { \"nvim-lualine/lualine.nvim\", event = \"VeryLazy\", opts = function() return { --[[add your custom lualine config here]] } end, }, -- use mini.starter instead of alpha { import = \"lazyvim.plugins.extras.ui.mini-starter\" }, -- add jsonls and schemastore packages, and setup treesitter for json, json5 and jsonc { import = \"lazyvim.plugins.extras.lang.json\" }, -- add any tools you want to have installed below { \"williamboman/mason.nvim\", opts = { ensure_installed = { \"stylua\", \"shellcheck\", \"shfmt\", \"flake8\", }, }, }, }","s":"Examples","u":"/configuration/examples","h":"","p":16},{"i":19,"t":"The starter includes a pre-configured lazy.nvim setup that installs the LazyVim plugin and imports its plugins. tip The version for lazy.nvim and LazyVim will default to the latest stable release. If you'd rather use the latest development version, add the code below to your specs: lua/plugins/core.lua return { { \"folke/lazy.nvim\", version = false }, { \"LazyVim/LazyVim\", version = false }, } caution lazy.nvim can be configured to always try to use the latest stable version of a plugin, if a plugin has releases. However, it's recommended to leave version=false for now, since a lot the plugins that support versioning, have outdated releases, which may break your Neovim install. If you still want to try using the latest stable releases, you can set config.defaults.version = \"*\" Some plugins that are known to break with their outdated release will still be forced to install the latest development version. To override that, specify version=\"*\" for those plugins. (see the LazyVim code) lua/config/lazy.lua local lazypath = vim.fn.stdpath(\"data\") .. \"/lazy/lazy.nvim\" if not (vim.uv or vim.loop).fs_stat(lazypath) then local lazyrepo = \"https://github.com/folke/lazy.nvim.git/" local out = vim.fn.system({ \"git\", \"clone\", \"--filter=blob:none\", \"--branch=stable\", lazyrepo, lazypath }) if vim.v.shell_error ~= 0 then vim.api.nvim_echo({ { \"Failed to clone lazy.nvim:\\n\", \"ErrorMsg\" }, { out, \"WarningMsg\" }, { \"\\nPress any key to exit...\" }, }, true, {}) vim.fn.getchar() os.exit(1) end end vim.opt.rtp:prepend(lazypath) require(\"lazy\").setup({ spec = { -- add LazyVim and import its plugins { \"LazyVim/LazyVim\", import = \"lazyvim.plugins\" }, -- import/override with your plugins { import = \"plugins\" }, }, defaults = { -- By default, only LazyVim plugins will be lazy-loaded. Your custom plugins will load during startup. -- If you know what you're doing, you can set this to `true` to have all your custom plugins lazy-loaded by default. lazy = false, -- It's recommended to leave version=false for now, since a lot the plugin that support versioning, -- have outdated releases, which may break your Neovim install. version = false, -- always use the latest git commit -- version = \"*\", -- try installing the latest stable version for plugins that support semver }, install = { colorscheme = { \"tokyonight\", \"habamax\" } }, checker = { enabled = true, -- check for plugin updates periodically notify = false, -- notify on update }, -- automatically check for plugin updates performance = { rtp = { -- disable some rtp plugins disabled_plugins = { \"gzip\", -- \"matchit\", -- \"matchparen\", -- \"netrwPlugin\", \"tarPlugin\", \"tohtml\", \"tutor\", \"zipPlugin\", }, }, }, })","s":"lazy.nvim","u":"/configuration/lazy.nvim","h":"","p":18},{"i":21,"t":"Configuring LazyVim plugins is exactly the same as using lazy.nvim to build a config from scratch. For the full plugin spec documentation please check the lazy.nvim readme. Refer to the plugins section in the sidebar for configuring included plugins.","s":"Plugins","u":"/configuration/plugins","h":"","p":20},{"i":23,"t":"Adding a plugin is as simple as adding the plugin spec to one of the files under lua/plugins/*.lua. You can create as many files there as you want. You can structure your lua/plugins folder with a file per plugin, or a separate file containing all the plugin specs for some functionality. lua/plugins/lsp.lua return { -- add symbols-outline { \"simrat39/symbols-outline.nvim\", cmd = \"SymbolsOutline\", keys = { { \"cs\", \"SymbolsOutline\", desc = \"Symbols Outline\" } }, opts = { -- add your options that should be passed to the setup() function here position = \"right\", }, }, }","s":"➕ Adding Plugins","u":"/configuration/plugins","h":"#-adding-plugins","p":20},{"i":25,"t":"In order to disable a plugin, add a spec with enabled=false lua/plugins/disabled.lua return { -- disable trouble { \"folke/trouble.nvim\", enabled = false }, }","s":"❌ Disabling Plugins","u":"/configuration/plugins","h":"#-disabling-plugins","p":20},{"i":27,"t":"Defaults merging rules: cmd: the list of commands will be extended with your custom commands event: the list of events will be extended with your custom events ft: the list of filetypes will be extended with your custom filetypes keys: the list of keymaps will be extended with your custom keymaps opts: your custom opts will be merged with the default opts dependencies: the list of dependencies will be extended with your custom dependencies any other property will override the defaults For ft, event, keys, cmd and opts you can instead also specify a values function that can make changes to the default values, or return new values to be used instead. return { -- change trouble config { \"folke/trouble.nvim\", -- opts will be merged with the parent spec opts = { use_diagnostic_signs = true }, } -- add cmp-emoji { \"hrsh7th/nvim-cmp\", dependencies = { \"hrsh7th/cmp-emoji\" }, ---@param opts cmp.ConfigSchema opts = function(_, opts) table.insert(opts.sources, { name = \"emoji\" }) end, } }","s":"✏️ Customizing Plugin Specs","u":"/configuration/plugins","h":"#️-customizing-plugin-specs","p":20},{"i":29,"t":"Adding keys= follows the rules as explained above. You can also disable a default keymap by setting it to false. To override a keymap, simply add one with the same lhs and a new rhs. lua/plugins/telescope.lua return { \"nvim-telescope/telescope.nvim\", keys = { -- disable the keymap to grep files {\"/\", false}, -- change a keymap { \"ff\", \"Telescope find_files\", desc = \"Find Files\" }, -- add a keymap to browse plugin files { \"fp\", function() require(\"telescope.builtin\").find_files({ cwd = require(\"lazy.core.config\").options.root }) end, desc = \"Find Plugin File\", }, }, }, caution Make sure to use the exact same mode as the keymap you want to disable. You don't have to specify a mode for normal mode keymaps. lua/plugins/flash.lua return { \"folke/flash.nvim\", keys = { -- disable the default flash keymap { \"s\", mode = { \"n\", \"x\", \"o\" }, false }, }, } You can also return a whole new set of keymaps to be used instead. Or return {} to disable all keymaps for a plugin. lua/plugins/telescope.lua return { \"nvim-telescope/telescope.nvim\", -- replace all Telescope keymaps with only one mapping keys = function() return { { \"ff\", \"Telescope find_files\", desc = \"Find Files\" }, } end, },","s":"⌨️ Adding & Disabling Plugin Keymaps","u":"/configuration/plugins","h":"#️-adding--disabling-plugin-keymaps","p":20},{"i":31,"t":"LazyVim provides multiple ways to configure keymaps. If you want to override an existing mapping, make sure to disable it first in the correct place.","s":"Keymaps","u":"/configuration/keymaps","h":"","p":30},{"i":33,"t":"Global keymaps are keymaps that are always active. You can configure them in your lua/config/keymaps.lua file. Default LazyVim keymaps can be deleted with vim.keymap.del.","s":"Global keymaps","u":"/configuration/keymaps","h":"#global-keymaps","p":30},{"i":35,"t":"For more info on configuring plugin keymaps, see Adding & Disabling Plugin Keymaps","s":"Plugin keymaps","u":"/configuration/keymaps","h":"#plugin-keymaps","p":30},{"i":37,"t":"These are the default keymaps that will be added when an LSP server is attached to the current buffer. For more info see Customizing LSP Keymaps","s":"LSP keymaps","u":"/configuration/keymaps","h":"#lsp-keymaps","p":30},{"i":39,"t":"Sometimes it may be necessary to add keymaps for a specific LSP server. Lazyutils provides a keys LSP option for this purpose. { \"neovim/nvim-lspconfig\", opts = { servers = { tsserver = { keys = { { \"co\", \"TypescriptOrganizeImports\", desc = \"Organize Imports\" }, { \"cR\", \"TypescriptRenameFile\", desc = \"Rename File\" }, }, }, }, }, }","s":"LSP Server keymaps","u":"/configuration/keymaps","h":"#lsp-server-keymaps","p":30},{"i":41,"t":"The easiest way to install extras in LazyVim is with the :LazyExtras command.","s":"Extras","u":"/extras","h":"","p":40},{"i":44,"t":"override nvim-cmp and add cmp-emoji { \"hrsh7th/nvim-cmp\", dependencies = { \"hrsh7th/cmp-emoji\" }, ---@param opts cmp.ConfigSchema opts = function(_, opts) table.insert(opts.sources, { name = \"emoji\" }) end, }","s":"Add a nvim-cmp source","u":"/configuration/recipes","h":"#add-a-nvim-cmp-source","p":42},{"i":46,"t":"Use for completion and snippets (supertab). { \"hrsh7th/nvim-cmp\", ---@param opts cmp.ConfigSchema opts = function(_, opts) local has_words_before = function() unpack = unpack or table.unpack local line, col = unpack(vim.api.nvim_win_get_cursor(0)) return col ~= 0 and vim.api.nvim_buf_get_lines(0, line - 1, line, true)[1]:sub(col, col):match(\"%s\") == nil end local cmp = require(\"cmp\") opts.mapping = vim.tbl_extend(\"force\", opts.mapping, { [\"\"] = cmp.mapping(function(fallback) if cmp.visible() then -- You could replace select_next_item() with confirm({ select = true }) to get VS Code autocompletion behavior cmp.select_next_item() elseif vim.snippet.active({ direction = 1 }) then vim.schedule(function() vim.snippet.jump(1) end) elseif has_words_before() then cmp.complete() else fallback() end end, { \"i\", \"s\" }), [\"\"] = cmp.mapping(function(fallback) if cmp.visible() then cmp.select_prev_item() elseif vim.snippet.active({ direction = -1 }) then vim.schedule(function() vim.snippet.jump(-1) end) else fallback() end end, { \"i\", \"s\" }), }) end, }","s":"Supertab","u":"/configuration/recipes","h":"#supertab","p":42},{"i":48,"t":"{ \"echasnovski/mini.surround\", opts = { mappings = { add = \"gsa\", delete = \"gsd\", find = \"gsf\", find_left = \"gsF\", highlight = \"gsh\", replace = \"gsr\", update_n_lines = \"gsn\", }, }, }","s":"Change surround mappings","u":"/configuration/recipes","h":"#change-surround-mappings","p":42},{"i":50,"t":"{ \"folke/tokyonight.nvim\", opts = { transparent = true, styles = { sidebars = \"transparent\", floats = \"transparent\", }, }, }","s":"Make TokyoNight Transparent","u":"/configuration/recipes","h":"#make-tokyonight-transparent","p":42},{"i":52,"t":"{ \"neovim/nvim-lspconfig\", opts = { setup = { clangd = function(_, opts) opts.capabilities.offsetEncoding = { \"utf-16\" } end, }, }, }","s":"Fix clangd offset encoding","u":"/configuration/recipes","h":"#fix-clangd-offset-encoding","p":42},{"i":54,"t":"The recommended setup to integrate prettier with linters is to not integrate it with eslint. For this config, we have two extras, to enable eslint fix on save and enable the prettier formatter with null-ls. Add the below to your lua/config/lazy.lua file { { import = \"lazyvim.plugins.extras.linting.eslint\" }, { import = \"lazyvim.plugins.extras.formatting.prettier\" }, }","s":"Use Eslint for fix on save and prettier for formatting","u":"/configuration/recipes","h":"#use-eslint-for-fix-on-save-and-prettier-for-formatting","p":42},{"i":56,"t":"If your project is using eslint with eslint-plugin-prettier, then this will automatically fix eslint errors and format with prettier on save. Important: make sure not to add prettier to null-ls, otherwise this won't work! { \"neovim/nvim-lspconfig\", opts = { servers = { eslint = {} }, setup = { eslint = function() require(\"lazyvim.util\").lsp.on_attach(function(client) if client.name == \"eslint\" then client.server_capabilities.documentFormattingProvider = true elseif client.name == \"tsserver\" then client.server_capabilities.documentFormattingProvider = false end end) end, }, }, }","s":"Add Eslint and use it for formatting","u":"/configuration/recipes","h":"#add-eslint-and-use-it-for-formatting","p":42},{"i":58,"t":"info You can enable the extra with the :LazyExtras command. Plugins marked as optional will only be configured if they are installed. Below you can find a list of included plugins and their default settings. caution You don't need to copy the default settings to your config. They are only shown here for reference.","s":"Avante","u":"/extras/ai/avante","h":"","p":57},{"i":60,"t":"Options Full Spec opts = nil { \"MunifTanjim/nui.nvim\", lazy = true }","s":"nui.nvim","u":"/extras/ai/avante","h":"#nuinvim","p":57},{"i":62,"t":"Options Full Spec opts = { provider = \"copilot\", selection = { hint_display = \"none\", }, behaviour = { auto_set_keymaps = false, }, } { \"yetone/avante.nvim\", build = vim.fn.has(\"win32\") ~= 0 and \"powershell -ExecutionPolicy Bypass -File Build.ps1 -BuildFromSource false\" or \"make\", event = \"VeryLazy\", opts = { provider = \"copilot\", selection = { hint_display = \"none\", }, behaviour = { auto_set_keymaps = false, }, }, cmd = { \"AvanteAsk\", \"AvanteBuild\", \"AvanteChat\", \"AvanteClear\", \"AvanteEdit\", \"AvanteFocus\", \"AvanteHistory\", \"AvanteModels\", \"AvanteRefresh\", \"AvanteShowRepoMap\", \"AvanteStop\", \"AvanteSwitchProvider\", \"AvanteToggle\", }, keys = { { \"aa\", \"AvanteAsk\", desc = \"Ask Avante\" }, { \"ac\", \"AvanteChat\", desc = \"Chat with Avante\" }, { \"ae\", \"AvanteEdit\", desc = \"Edit Avante\" }, { \"af\", \"AvanteFocus\", desc = \"Focus Avante\" }, { \"ah\", \"AvanteHistory\", desc = \"Avante History\" }, { \"am\", \"AvanteModels\", desc = \"Select Avante Model\" }, { \"an\", \"AvanteChatNew\", desc = \"New Avante Chat\" }, { \"ap\", \"AvanteSwitchProvider\", desc = \"Switch Avante Provider\" }, { \"ar\", \"AvanteRefresh\", desc = \"Refresh Avante\" }, { \"as\", \"AvanteStop\", desc = \"Stop Avante\" }, { \"at\", \"AvanteToggle\", desc = \"Toggle Avante\" }, }, }","s":"avante.nvim","u":"/extras/ai/avante","h":"#avantenvim","p":57},{"i":64,"t":"Options Full Spec opts = nil { \"Kaiser-Yang/blink-cmp-avante\" }","s":"blink-cmp-avante","u":"/extras/ai/avante","h":"#blink-cmp-avante","p":57},{"i":66,"t":"support for image pasting Options Full Spec opts = { -- recommended settings default = { embed_image_as_base64 = false, prompt_for_file_name = false, drag_and_drop = { insert_mode = true, }, -- required for Windows users use_absolute_path = true, }, } { \"HakonHarnes/img-clip.nvim\", event = \"VeryLazy\", optional = true, opts = { -- recommended settings default = { embed_image_as_base64 = false, prompt_for_file_name = false, drag_and_drop = { insert_mode = true, }, -- required for Windows users use_absolute_path = true, }, }, }","s":"img-clip.nvim (optional)","u":"/extras/ai/avante","h":"#img-clipnvim-optional","p":57},{"i":68,"t":"Make sure to set this up properly if you have lazy=true Options Full Spec opts = { file_types = { \"markdown\", \"Avante\" }, } { \"MeanderingProgrammer/render-markdown.nvim\", optional = true, opts = { file_types = { \"markdown\", \"Avante\" }, }, ft = { \"markdown\", \"Avante\" }, }","s":"render-markdown.nvim (optional)","u":"/extras/ai/avante","h":"#render-markdownnvim-optional","p":57},{"i":70,"t":"blink.cmp source for avante.nvim Options Full Spec opts = { sources = { default = { \"avante\" }, providers = { avante = { module = \"blink-cmp-avante\", name = \"Avante\" } }, }, } { \"saghen/blink.cmp\", optional = true, specs = { \"Kaiser-Yang/blink-cmp-avante\" }, opts = { sources = { default = { \"avante\" }, providers = { avante = { module = \"blink-cmp-avante\", name = \"Avante\" } }, }, }, }","s":"blink.cmp (optional)","u":"/extras/ai/avante","h":"#blinkcmp-optional","p":57},{"i":72,"t":"info You can enable the extra with the :LazyExtras command. Plugins marked as optional will only be configured if they are installed. Below you can find a list of included plugins and their default settings. caution You don't need to copy the default settings to your config. They are only shown here for reference.","s":"Claudecode","u":"/extras/ai/claudecode","h":"","p":71},{"i":74,"t":"Options Full Spec opts = {} { \"coder/claudecode.nvim\", opts = {}, keys = { { \"a\", \"\", desc = \"+ai\", mode = { \"n\", \"v\" } }, { \"ac\", \"ClaudeCode\", desc = \"Toggle Claude\" }, { \"af\", \"ClaudeCodeFocus\", desc = \"Focus Claude\" }, { \"ar\", \"ClaudeCode --resume\", desc = \"Resume Claude\" }, { \"aC\", \"ClaudeCode --continue\", desc = \"Continue Claude\" }, { \"ab\", \"ClaudeCodeAdd %\", desc = \"Add current buffer\" }, { \"as\", \"ClaudeCodeSend\", mode = \"v\", desc = \"Send to Claude\" }, { \"as\", \"ClaudeCodeTreeAdd\", desc = \"Add file\", ft = { \"NvimTree\", \"neo-tree\", \"oil\" }, }, -- Diff management { \"aa\", \"ClaudeCodeDiffAccept\", desc = \"Accept diff\" }, { \"ad\", \"ClaudeCodeDiffDeny\", desc = \"Deny diff\" }, }, }","s":"claudecode.nvim","u":"/extras/ai/claudecode","h":"#claudecodenvim","p":71},{"i":76,"t":"The files autocmds.lua, keymaps.lua, lazy.lua and options.lua under lua/config will be automatically loaded at the appropriate time, so you don't need to require those files manually. LazyVim comes with a set of default config files that will be loaded before your own. ~/.config/nvim ├── lua │ ├── config │ │ ├── autocmds.lua │ │ ├── keymaps.lua │ │ ├── lazy.lua │ │ └── options.lua │ └── plugins │ ├── spec1.lua │ ├── ** │ └── spec2.lua └── init.lua danger Do not require autocmds, keymaps, lazy or options under lua/config/ or lazyvim.config manually. LazyVim will load those files automatically.","s":"General Settings","u":"/configuration/general","h":"","p":75},{"i":78,"t":"Custom Options Default Options lua/config/options.lua -- Options are automatically loaded before lazy.nvim startup -- Default options that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/options.lua -- Add any additional options here lazyvim.config.options -- This file is automatically loaded by plugins.core vim.g.mapleader = \" \" vim.g.maplocalleader = \"\\\\\" -- LazyVim auto format vim.g.autoformat = true -- Snacks animations -- Set to `false` to globally disable all snacks animations vim.g.snacks_animate = true -- LazyVim picker to use. -- Can be one of: telescope, fzf -- Leave it to \"auto\" to automatically use the picker -- enabled with `:LazyExtras` vim.g.lazyvim_picker = \"auto\" -- LazyVim completion engine to use. -- Can be one of: nvim-cmp, blink.cmp -- Leave it to \"auto\" to automatically use the completion engine -- enabled with `:LazyExtras` vim.g.lazyvim_cmp = \"auto\" -- if the completion engine supports the AI source, -- use that instead of inline suggestions vim.g.ai_cmp = true -- LazyVim root dir detection -- Each entry can be: -- * the name of a detector function like `lsp` or `cwd` -- * a pattern or array of patterns like `.git` or `lua`. -- * a function with signature `function(buf) -> string|string[]` vim.g.root_spec = { \"lsp\", { \".git\", \"lua\" }, \"cwd\" } -- Optionally setup the terminal to use -- This sets `vim.o.shell` and does some additional configuration for: -- * pwsh -- * powershell -- LazyVim.terminal.setup(\"pwsh\") -- Set LSP servers to be ignored when used with `util.root.detectors.lsp` -- for detecting the LSP root vim.g.root_lsp_ignore = { \"copilot\" } -- Hide deprecation warnings vim.g.deprecation_warnings = false -- Show the current document symbols location from Trouble in lualine -- You can disable this for a buffer by setting `vim.b.trouble_lualine = false` vim.g.trouble_lualine = true local opt = vim.opt opt.autowrite = true -- Enable auto write -- only set clipboard if not in ssh, to make sure the OSC 52 -- integration works automatically. opt.clipboard = vim.env.SSH_CONNECTION and \"\" or \"unnamedplus\" -- Sync with system clipboard opt.completeopt = \"menu,menuone,noselect\" opt.conceallevel = 2 -- Hide * markup for bold and italic, but not markers with substitutions opt.confirm = true -- Confirm to save changes before exiting modified buffer opt.cursorline = true -- Enable highlighting of the current line opt.expandtab = true -- Use spaces instead of tabs opt.fillchars = { foldopen = \"\", foldclose = \"\", fold = \" \", foldsep = \" \", diff = \"╱\", eob = \" \", } opt.foldlevel = 99 opt.foldmethod = \"indent\" opt.foldtext = \"\" opt.formatexpr = \"v:lua.LazyVim.format.formatexpr()\" opt.formatoptions = \"jcroqlnt\" -- tcqj opt.grepformat = \"%f:%l:%c:%m\" opt.grepprg = \"rg --vimgrep\" opt.ignorecase = true -- Ignore case opt.inccommand = \"nosplit\" -- preview incremental substitute opt.jumpoptions = \"view\" opt.laststatus = 3 -- global statusline opt.linebreak = true -- Wrap lines at convenient points opt.list = true -- Show some invisible characters (tabs... opt.mouse = \"a\" -- Enable mouse mode opt.number = true -- Print line number opt.pumblend = 10 -- Popup blend opt.pumheight = 10 -- Maximum number of entries in a popup opt.relativenumber = true -- Relative line numbers opt.ruler = false -- Disable the default ruler opt.scrolloff = 4 -- Lines of context opt.sessionoptions = { \"buffers\", \"curdir\", \"tabpages\", \"winsize\", \"help\", \"globals\", \"skiprtp\", \"folds\" } opt.shiftround = true -- Round indent opt.shiftwidth = 2 -- Size of an indent opt.shortmess:append({ W = true, I = true, c = true, C = true }) opt.showmode = false -- Dont show mode since we have a statusline opt.sidescrolloff = 8 -- Columns of context opt.signcolumn = \"yes\" -- Always show the signcolumn, otherwise it would shift the text each time opt.smartcase = true -- Don't ignore case with capitals opt.smartindent = true -- Insert indents automatically opt.smoothscroll = true opt.spelllang = { \"en\" } opt.splitbelow = true -- Put new windows below current opt.splitkeep = \"screen\" opt.splitright = true -- Put new windows right of current opt.statuscolumn = [[%!v:lua.LazyVim.statuscolumn()]] opt.tabstop = 2 -- Number of spaces tabs count for opt.termguicolors = true -- True color support opt.timeoutlen = vim.g.vscode and 1000 or 300 -- Lower than default (1000) to quickly trigger which-key opt.undofile = true opt.undolevels = 10000 opt.updatetime = 200 -- Save swap file and trigger CursorHold opt.virtualedit = \"block\" -- Allow cursor to move where there is no text in visual block mode opt.wildmode = \"longest:full,full\" -- Command-line completion mode opt.winminwidth = 5 -- Minimum window width opt.wrap = false -- Disable line wrap -- Fix markdown indentation settings vim.g.markdown_recommended_style = 0","s":"Options","u":"/configuration/general","h":"#options","p":75},{"i":80,"t":"Custom Keymaps Default Keymaps lua/config/keymaps.lua -- Keymaps are automatically loaded on the VeryLazy event -- Default keymaps that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/keymaps.lua -- Add any additional keymaps here lazyvim.config.keymaps -- This file is automatically loaded by lazyvim.config.init -- DO NOT USE `LazyVim.safe_keymap_set` IN YOUR OWN CONFIG!! -- use `vim.keymap.set` instead local map = LazyVim.safe_keymap_set -- better up/down map({ \"n\", \"x\" }, \"j\", \"v:count == 0 ? 'gj' : 'j'\", { desc = \"Down\", expr = true, silent = true }) map({ \"n\", \"x\" }, \"\", \"v:count == 0 ? 'gj' : 'j'\", { desc = \"Down\", expr = true, silent = true }) map({ \"n\", \"x\" }, \"k\", \"v:count == 0 ? 'gk' : 'k'\", { desc = \"Up\", expr = true, silent = true }) map({ \"n\", \"x\" }, \"\", \"v:count == 0 ? 'gk' : 'k'\", { desc = \"Up\", expr = true, silent = true }) -- Move to window using the hjkl keys map(\"n\", \"\", \"h\", { desc = \"Go to Left Window\", remap = true }) map(\"n\", \"\", \"j\", { desc = \"Go to Lower Window\", remap = true }) map(\"n\", \"\", \"k\", { desc = \"Go to Upper Window\", remap = true }) map(\"n\", \"\", \"l\", { desc = \"Go to Right Window\", remap = true }) -- Resize window using arrow keys map(\"n\", \"\", \"resize +2\", { desc = \"Increase Window Height\" }) map(\"n\", \"\", \"resize -2\", { desc = \"Decrease Window Height\" }) map(\"n\", \"\", \"vertical resize -2\", { desc = \"Decrease Window Width\" }) map(\"n\", \"\", \"vertical resize +2\", { desc = \"Increase Window Width\" }) -- Move Lines map(\"n\", \"\", \"execute 'move .+' . v:count1==\", { desc = \"Move Down\" }) map(\"n\", \"\", \"execute 'move .-' . (v:count1 + 1)==\", { desc = \"Move Up\" }) map(\"i\", \"\", \"m .+1==gi\", { desc = \"Move Down\" }) map(\"i\", \"\", \"m .-2==gi\", { desc = \"Move Up\" }) map(\"v\", \"\", \":execute \\\"'<,'>move '>+\\\" . v:count1gv=gv\", { desc = \"Move Down\" }) map(\"v\", \"\", \":execute \\\"'<,'>move '<-\\\" . (v:count1 + 1)gv=gv\", { desc = \"Move Up\" }) -- buffers map(\"n\", \"\", \"bprevious\", { desc = \"Prev Buffer\" }) map(\"n\", \"\", \"bnext\", { desc = \"Next Buffer\" }) map(\"n\", \"[b\", \"bprevious\", { desc = \"Prev Buffer\" }) map(\"n\", \"]b\", \"bnext\", { desc = \"Next Buffer\" }) map(\"n\", \"bb\", \"e #\", { desc = \"Switch to Other Buffer\" }) map(\"n\", \"`\", \"e #\", { desc = \"Switch to Other Buffer\" }) map(\"n\", \"bd\", function() Snacks.bufdelete() end, { desc = \"Delete Buffer\" }) map(\"n\", \"bo\", function() Snacks.bufdelete.other() end, { desc = \"Delete Other Buffers\" }) map(\"n\", \"bD\", \":bd\", { desc = \"Delete Buffer and Window\" }) -- Clear search and stop snippet on escape map({ \"i\", \"n\", \"s\" }, \"\", function() vim.cmd(\"noh\") LazyVim.cmp.actions.snippet_stop() return \"\" end, { expr = true, desc = \"Escape and Clear hlsearch\" }) -- Clear search, diff update and redraw -- taken from runtime/lua/_editor.lua map( \"n\", \"ur\", \"nohlsearchdiffupdatenormal! \", { desc = \"Redraw / Clear hlsearch / Diff Update\" } ) -- https://github.com/mhinz/vim-galore#saner-behavior-of-n-and-n map(\"n\", \"n\", \"'Nn'[v:searchforward].'zv'\", { expr = true, desc = \"Next Search Result\" }) map(\"x\", \"n\", \"'Nn'[v:searchforward]\", { expr = true, desc = \"Next Search Result\" }) map(\"o\", \"n\", \"'Nn'[v:searchforward]\", { expr = true, desc = \"Next Search Result\" }) map(\"n\", \"N\", \"'nN'[v:searchforward].'zv'\", { expr = true, desc = \"Prev Search Result\" }) map(\"x\", \"N\", \"'nN'[v:searchforward]\", { expr = true, desc = \"Prev Search Result\" }) map(\"o\", \"N\", \"'nN'[v:searchforward]\", { expr = true, desc = \"Prev Search Result\" }) -- Add undo break-points map(\"i\", \",\", \",u\") map(\"i\", \".\", \".u\") map(\"i\", \";\", \";u\") -- save file map({ \"i\", \"x\", \"n\", \"s\" }, \"\", \"w\", { desc = \"Save File\" }) --keywordprg map(\"n\", \"K\", \"norm! K\", { desc = \"Keywordprg\" }) -- better indenting map(\"x\", \"<\", \"\", \">gv\") -- commenting map(\"n\", \"gco\", \"oVcxnormal gccfxa\", { desc = \"Add Comment Below\" }) map(\"n\", \"gcO\", \"OVcxnormal gccfxa\", { desc = \"Add Comment Above\" }) -- lazy map(\"n\", \"l\", \"Lazy\", { desc = \"Lazy\" }) -- new file map(\"n\", \"fn\", \"enew\", { desc = \"New File\" }) -- location list map(\"n\", \"xl\", function() local success, err = pcall(vim.fn.getloclist(0, { winid = 0 }).winid ~= 0 and vim.cmd.lclose or vim.cmd.lopen) if not success and err then vim.notify(err, vim.log.levels.ERROR) end end, { desc = \"Location List\" }) -- quickfix list map(\"n\", \"xq\", function() local success, err = pcall(vim.fn.getqflist({ winid = 0 }).winid ~= 0 and vim.cmd.cclose or vim.cmd.copen) if not success and err then vim.notify(err, vim.log.levels.ERROR) end end, { desc = \"Quickfix List\" }) map(\"n\", \"[q\", vim.cmd.cprev, { desc = \"Previous Quickfix\" }) map(\"n\", \"]q\", vim.cmd.cnext, { desc = \"Next Quickfix\" }) -- formatting map({ \"n\", \"x\" }, \"cf\", function() LazyVim.format({ force = true }) end, { desc = \"Format\" }) -- diagnostic local diagnostic_goto = function(next, severity) return function() vim.diagnostic.jump({ count = (next and 1 or -1) * vim.v.count1, severity = severity and vim.diagnostic.severity[severity] or nil, float = true, }) end end map(\"n\", \"cd\", vim.diagnostic.open_float, { desc = \"Line Diagnostics\" }) map(\"n\", \"]d\", diagnostic_goto(true), { desc = \"Next Diagnostic\" }) map(\"n\", \"[d\", diagnostic_goto(false), { desc = \"Prev Diagnostic\" }) map(\"n\", \"]e\", diagnostic_goto(true, \"ERROR\"), { desc = \"Next Error\" }) map(\"n\", \"[e\", diagnostic_goto(false, \"ERROR\"), { desc = \"Prev Error\" }) map(\"n\", \"]w\", diagnostic_goto(true, \"WARN\"), { desc = \"Next Warning\" }) map(\"n\", \"[w\", diagnostic_goto(false, \"WARN\"), { desc = \"Prev Warning\" }) -- stylua: ignore start -- toggle options LazyVim.format.snacks_toggle():map(\"uf\") LazyVim.format.snacks_toggle(true):map(\"uF\") Snacks.toggle.option(\"spell\", { name = \"Spelling\" }):map(\"us\") Snacks.toggle.option(\"wrap\", { name = \"Wrap\" }):map(\"uw\") Snacks.toggle.option(\"relativenumber\", { name = \"Relative Number\" }):map(\"uL\") Snacks.toggle.diagnostics():map(\"ud\") Snacks.toggle.line_number():map(\"ul\") Snacks.toggle.option(\"conceallevel\", { off = 0, on = vim.o.conceallevel > 0 and vim.o.conceallevel or 2, name = \"Conceal Level\" }):map(\"uc\") Snacks.toggle.option(\"showtabline\", { off = 0, on = vim.o.showtabline > 0 and vim.o.showtabline or 2, name = \"Tabline\" }):map(\"uA\") Snacks.toggle.treesitter():map(\"uT\") Snacks.toggle.option(\"background\", { off = \"light\", on = \"dark\" , name = \"Dark Background\" }):map(\"ub\") Snacks.toggle.dim():map(\"uD\") Snacks.toggle.animate():map(\"ua\") Snacks.toggle.indent():map(\"ug\") Snacks.toggle.scroll():map(\"uS\") Snacks.toggle.profiler():map(\"dpp\") Snacks.toggle.profiler_highlights():map(\"dph\") if vim.lsp.inlay_hint then Snacks.toggle.inlay_hints():map(\"uh\") end -- lazygit if vim.fn.executable(\"lazygit\") == 1 then map(\"n\", \"gg\", function() Snacks.lazygit( { cwd = LazyVim.root.git() }) end, { desc = \"Lazygit (Root Dir)\" }) map(\"n\", \"gG\", function() Snacks.lazygit() end, { desc = \"Lazygit (cwd)\" }) end map(\"n\", \"gL\", function() Snacks.picker.git_log() end, { desc = \"Git Log (cwd)\" }) map(\"n\", \"gb\", function() Snacks.picker.git_log_line() end, { desc = \"Git Blame Line\" }) map(\"n\", \"gf\", function() Snacks.picker.git_log_file() end, { desc = \"Git Current File History\" }) map(\"n\", \"gl\", function() Snacks.picker.git_log({ cwd = LazyVim.root.git() }) end, { desc = \"Git Log\" }) map({ \"n\", \"x\" }, \"gB\", function() Snacks.gitbrowse() end, { desc = \"Git Browse (open)\" }) map({\"n\", \"x\" }, \"gY\", function() Snacks.gitbrowse({ open = function(url) vim.fn.setreg(\"+\", url) end, notify = false }) end, { desc = \"Git Browse (copy)\" }) -- quit map(\"n\", \"qq\", \"qa\", { desc = \"Quit All\" }) -- highlights under cursor map(\"n\", \"ui\", vim.show_pos, { desc = \"Inspect Pos\" }) map(\"n\", \"uI\", function() vim.treesitter.inspect_tree() vim.api.nvim_input(\"I\") end, { desc = \"Inspect Tree\" }) -- LazyVim Changelog map(\"n\", \"L\", function() LazyVim.news.changelog() end, { desc = \"LazyVim Changelog\" }) -- floating terminal map(\"n\", \"fT\", function() Snacks.terminal() end, { desc = \"Terminal (cwd)\" }) map(\"n\", \"ft\", function() Snacks.terminal(nil, { cwd = LazyVim.root() }) end, { desc = \"Terminal (Root Dir)\" }) map({\"n\",\"t\"}, \"\",function() Snacks.terminal(nil, { cwd = LazyVim.root() }) end, { desc = \"Terminal (Root Dir)\" }) map({\"n\",\"t\"}, \"\",function() Snacks.terminal(nil, { cwd = LazyVim.root() }) end, { desc = \"which_key_ignore\" }) -- windows map(\"n\", \"-\", \"s\", { desc = \"Split Window Below\", remap = true }) map(\"n\", \"|\", \"v\", { desc = \"Split Window Right\", remap = true }) map(\"n\", \"wd\", \"c\", { desc = \"Delete Window\", remap = true }) Snacks.toggle.zoom():map(\"wm\"):map(\"uZ\") Snacks.toggle.zen():map(\"uz\") -- tabs map(\"n\", \"l\", \"tablast\", { desc = \"Last Tab\" }) map(\"n\", \"o\", \"tabonly\", { desc = \"Close Other Tabs\" }) map(\"n\", \"f\", \"tabfirst\", { desc = \"First Tab\" }) map(\"n\", \"\", \"tabnew\", { desc = \"New Tab\" }) map(\"n\", \"]\", \"tabnext\", { desc = \"Next Tab\" }) map(\"n\", \"d\", \"tabclose\", { desc = \"Close Tab\" }) map(\"n\", \"[\", \"tabprevious\", { desc = \"Previous Tab\" })","s":"Keymaps","u":"/configuration/general","h":"#keymaps","p":75},{"i":82,"t":"Custom Auto Commands Default Auto Commands lua/config/autocmds.lua -- Autocmds are automatically loaded on the VeryLazy event -- Default autocmds that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/autocmds.lua -- -- Add any additional autocmds here -- with `vim.api.nvim_create_autocmd` -- -- Or remove existing autocmds by their group name (which is prefixed with `lazyvim_` for the defaults) -- e.g. vim.api.nvim_del_augroup_by_name(\"lazyvim_wrap_spell\") lazyvim.config.autocmds -- This file is automatically loaded by lazyvim.config.init. local function augroup(name) return vim.api.nvim_create_augroup(\"lazyvim_\" .. name, { clear = true }) end -- Check if we need to reload the file when it changed vim.api.nvim_create_autocmd({ \"FocusGained\", \"TermClose\", \"TermLeave\" }, { group = augroup(\"checktime\"), callback = function() if vim.o.buftype ~= \"nofile\" then vim.cmd(\"checktime\") end end, }) -- Highlight on yank vim.api.nvim_create_autocmd(\"TextYankPost\", { group = augroup(\"highlight_yank\"), callback = function() (vim.hl or vim.highlight).on_yank() end, }) -- resize splits if window got resized vim.api.nvim_create_autocmd({ \"VimResized\" }, { group = augroup(\"resize_splits\"), callback = function() local current_tab = vim.fn.tabpagenr() vim.cmd(\"tabdo wincmd =\") vim.cmd(\"tabnext \" .. current_tab) end, }) -- go to last loc when opening a buffer vim.api.nvim_create_autocmd(\"BufReadPost\", { group = augroup(\"last_loc\"), callback = function(event) local exclude = { \"gitcommit\" } local buf = event.buf if vim.tbl_contains(exclude, vim.bo[buf].filetype) or vim.b[buf].lazyvim_last_loc then return end vim.b[buf].lazyvim_last_loc = true local mark = vim.api.nvim_buf_get_mark(buf, '\"') local lcount = vim.api.nvim_buf_line_count(buf) if mark[1] > 0 and mark[1] <= lcount then pcall(vim.api.nvim_win_set_cursor, 0, mark) end end, }) -- close some filetypes with vim.api.nvim_create_autocmd(\"FileType\", { group = augroup(\"close_with_q\"), pattern = { \"PlenaryTestPopup\", \"checkhealth\", \"dbout\", \"gitsigns-blame\", \"grug-far\", \"help\", \"lspinfo\", \"neotest-output\", \"neotest-output-panel\", \"neotest-summary\", \"notify\", \"qf\", \"spectre_panel\", \"startuptime\", \"tsplayground\", }, callback = function(event) vim.bo[event.buf].buflisted = false vim.schedule(function() vim.keymap.set(\"n\", \"q\", function() vim.cmd(\"close\") pcall(vim.api.nvim_buf_delete, event.buf, { force = true }) end, { buffer = event.buf, silent = true, desc = \"Quit buffer\", }) end) end, }) -- make it easier to close man-files when opened inline vim.api.nvim_create_autocmd(\"FileType\", { group = augroup(\"man_unlisted\"), pattern = { \"man\" }, callback = function(event) vim.bo[event.buf].buflisted = false end, }) -- wrap and check for spell in text filetypes vim.api.nvim_create_autocmd(\"FileType\", { group = augroup(\"wrap_spell\"), pattern = { \"text\", \"plaintex\", \"typst\", \"gitcommit\", \"markdown\" }, callback = function() vim.opt_local.wrap = true vim.opt_local.spell = true end, }) -- Fix conceallevel for json files vim.api.nvim_create_autocmd({ \"FileType\" }, { group = augroup(\"json_conceal\"), pattern = { \"json\", \"jsonc\", \"json5\" }, callback = function() vim.opt_local.conceallevel = 0 end, }) -- Auto create dir when saving a file, in case some intermediate directory does not exist vim.api.nvim_create_autocmd({ \"BufWritePre\" }, { group = augroup(\"auto_create_dir\"), callback = function(event) if event.match:match(\"^%w%w+:[\\\\/][\\\\/]\") then return end local file = vim.uv.fs_realpath(event.match) or event.match vim.fn.mkdir(vim.fn.fnamemodify(file, \":p:h\"), \"p\") end, })","s":"Auto Commands","u":"/configuration/general","h":"#auto-commands","p":75},{"i":85,"t":"Use H and L if the buffer you want to go to is visually close to where you are Otherwise, if the buffer is open, use , For other files, use Close buffers you no longer need with bd ss to quickly jump to a function in the buffer you're on , and gd to navigate the code You can pin buffers with bp and delete all non pinned buffers with bP Add TODOs in files you want to work on in future but don't need now and delete their buffers, git will track them","s":"Navigating around multiple buffers","u":"/configuration/tips","h":"#navigating-around-multiple-buffers","p":83},{"i":87,"t":"If you want to disable autoformat for a certain buffer, then set vim.b.autoformat = false for that buffer. lua/config/autocmds.lua -- Disable autoformat for lua files vim.api.nvim_create_autocmd({ \"FileType\" }, { pattern = { \"lua\" }, callback = function() vim.b.autoformat = false end, }) If you change your mind you can do uf to enable autoformat anyway for that buffer.","s":"Disable autoformat for some buffers","u":"/configuration/tips","h":"#disable-autoformat-for-some-buffers","p":83},{"i":89,"t":"info You can enable the extra with the :LazyExtras command. Plugins marked as optional will only be configured if they are installed. Below you can find a list of included plugins and their default settings. caution You don't need to copy the default settings to your config. They are only shown here for reference.","s":"Codeium","u":"/extras/ai/codeium","h":"","p":88},{"i":91,"t":"codeium Options Full Spec opts = { enable_cmp_source = vim.g.ai_cmp, virtual_text = { enabled = not vim.g.ai_cmp, key_bindings = { accept = false, -- handled by nvim-cmp / blink.cmp next = \"\", prev = \"\", }, }, } { \"Exafunction/codeium.nvim\", cmd = \"Codeium\", event = \"InsertEnter\", build = \":Codeium Auth\", opts = { enable_cmp_source = vim.g.ai_cmp, virtual_text = { enabled = not vim.g.ai_cmp, key_bindings = { accept = false, -- handled by nvim-cmp / blink.cmp next = \"\", prev = \"\", }, }, }, }","s":"codeium.nvim","u":"/extras/ai/codeium","h":"#codeiumnvim","p":88},{"i":93,"t":"add ai_accept action Options Full Spec opts = function() LazyVim.cmp.actions.ai_accept = function() if require(\"codeium.virtual_text\").get_current_completion_item() then LazyVim.create_undo() vim.api.nvim_input(require(\"codeium.virtual_text\").accept()) return true end end end { \"Exafunction/codeium.nvim\", opts = function() LazyVim.cmp.actions.ai_accept = function() if require(\"codeium.virtual_text\").get_current_completion_item() then LazyVim.create_undo() vim.api.nvim_input(require(\"codeium.virtual_text\").accept()) return true end end end, }","s":"codeium.nvim","u":"/extras/ai/codeium","h":"#codeiumnvim-1","p":88},{"i":95,"t":"Options Full Spec opts = nil { \"codeium.nvim\" }","s":"codeium.nvim","u":"/extras/ai/codeium","h":"#codeiumnvim-2","p":88},{"i":97,"t":"Options Full Spec opts = nil { \"codeium.nvim\", \"saghen/blink.compat\" }","s":"codeium.nvim","u":"/extras/ai/codeium","h":"#codeiumnvim-3","p":88},{"i":99,"t":"codeium cmp source Options Full Spec opts = function(_, opts) table.insert(opts.sources, 1, { name = \"codeium\", group_index = 1, priority = 100, }) end { \"hrsh7th/nvim-cmp\", optional = true, dependencies = { \"codeium.nvim\" }, opts = function(_, opts) table.insert(opts.sources, 1, { name = \"codeium\", group_index = 1, priority = 100, }) end, }","s":"nvim-cmp (optional)","u":"/extras/ai/codeium","h":"#nvim-cmp-optional","p":88},{"i":101,"t":"Options Full Spec opts = function(_, opts) table.insert(opts.sections.lualine_x, 2, LazyVim.lualine.cmp_source(\"codeium\")) end { \"nvim-lualine/lualine.nvim\", optional = true, event = \"VeryLazy\", opts = function(_, opts) table.insert(opts.sections.lualine_x, 2, LazyVim.lualine.cmp_source(\"codeium\")) end, }","s":"lualine.nvim (optional)","u":"/extras/ai/codeium","h":"#lualinenvim-optional","p":88},{"i":103,"t":"info You can enable the extra with the :LazyExtras command. Plugins marked as optional will only be configured if they are installed. Below you can find a list of included plugins and their default settings. caution You don't need to copy the default settings to your config. They are only shown here for reference.","s":"Copilot","u":"/extras/ai/copilot","h":"","p":102},{"i":105,"t":"copilot Options Full Spec opts = { suggestion = { enabled = not vim.g.ai_cmp, auto_trigger = true, hide_during_completion = vim.g.ai_cmp, keymap = { accept = false, -- handled by nvim-cmp / blink.cmp next = \"\", prev = \"\", }, }, panel = { enabled = false }, filetypes = { markdown = true, help = true, }, } { \"zbirenbaum/copilot.lua\", cmd = \"Copilot\", build = \":Copilot auth\", event = \"BufReadPost\", opts = { suggestion = { enabled = not vim.g.ai_cmp, auto_trigger = true, hide_during_completion = vim.g.ai_cmp, keymap = { accept = false, -- handled by nvim-cmp / blink.cmp next = \"\", prev = \"\", }, }, panel = { enabled = false }, filetypes = { markdown = true, help = true, }, }, }","s":"copilot.lua","u":"/extras/ai/copilot","h":"#copilotlua","p":102},{"i":107,"t":"copilot-language-server Options Full Spec opts = { servers = { -- copilot.lua only works with its own copilot lsp server copilot = { enabled = false }, }, } { \"neovim/nvim-lspconfig\", opts = { servers = { -- copilot.lua only works with its own copilot lsp server copilot = { enabled = false }, }, }, }","s":"nvim-lspconfig","u":"/extras/ai/copilot","h":"#nvim-lspconfig","p":102},{"i":109,"t":"add ai_accept action Options Full Spec opts = function() LazyVim.cmp.actions.ai_accept = function() if require(\"copilot.suggestion\").is_visible() then LazyVim.create_undo() require(\"copilot.suggestion\").accept() return true end end end { \"zbirenbaum/copilot.lua\", opts = function() LazyVim.cmp.actions.ai_accept = function() if require(\"copilot.suggestion\").is_visible() then LazyVim.create_undo() require(\"copilot.suggestion\").accept() return true end end end, }","s":"copilot.lua","u":"/extras/ai/copilot","h":"#copilotlua-1","p":102},{"i":111,"t":"lualine Options Full Spec opts = function(_, opts) table.insert( opts.sections.lualine_x, 2, LazyVim.lualine.status(LazyVim.config.icons.kinds.Copilot, function() local clients = package.loaded[\"copilot\"] and vim.lsp.get_clients({ name = \"copilot\", bufnr = 0 }) or {} if #clients > 0 then local status = require(\"copilot.status\").data.status return (status == \"InProgress\" and \"pending\") or (status == \"Warning\" and \"error\") or \"ok\" end end) ) end { \"nvim-lualine/lualine.nvim\", optional = true, event = \"VeryLazy\", opts = function(_, opts) table.insert( opts.sections.lualine_x, 2, LazyVim.lualine.status(LazyVim.config.icons.kinds.Copilot, function() local clients = package.loaded[\"copilot\"] and vim.lsp.get_clients({ name = \"copilot\", bufnr = 0 }) or {} if #clients > 0 then local status = require(\"copilot.status\").data.status return (status == \"InProgress\" and \"pending\") or (status == \"Warning\" and \"error\") or \"ok\" end end) ) end, }","s":"lualine.nvim (optional)","u":"/extras/ai/copilot","h":"#lualinenvim-optional","p":102},{"i":113,"t":"info You can enable the extra with the :LazyExtras command. Plugins marked as optional will only be configured if they are installed. Below you can find a list of included plugins and their default settings. caution You don't need to copy the default settings to your config. They are only shown here for reference.","s":"Copilot-chat","u":"/extras/ai/copilot-chat","h":"","p":112},{"i":115,"t":"Options Full Spec opts = function() local user = vim.env.USER or \"User\" user = user:sub(1, 1):upper() .. user:sub(2) return { auto_insert_mode = true, headers = { user = \" \" .. user .. \" \", assistant = \" Copilot \", tool = \"󰊳 Tool \", }, window = { width = 0.4, }, } end { \"CopilotC-Nvim/CopilotChat.nvim\", branch = \"main\", cmd = \"CopilotChat\", opts = function() local user = vim.env.USER or \"User\" user = user:sub(1, 1):upper() .. user:sub(2) return { auto_insert_mode = true, headers = { user = \" \" .. user .. \" \", assistant = \" Copilot \", tool = \"󰊳 Tool \", }, window = { width = 0.4, }, } end, keys = { { \"\", \"\", ft = \"copilot-chat\", desc = \"Submit Prompt\", remap = true }, { \"a\", \"\", desc = \"+ai\", mode = { \"n\", \"x\" } }, { \"aa\", function() return require(\"CopilotChat\").toggle() end, desc = \"Toggle (CopilotChat)\", mode = { \"n\", \"x\" }, }, { \"ax\", function() return require(\"CopilotChat\").reset() end, desc = \"Clear (CopilotChat)\", mode = { \"n\", \"x\" }, }, { \"aq\", function() vim.ui.input({ prompt = \"Quick Chat: \", }, function(input) if input ~= \"\" then require(\"CopilotChat\").ask(input) end end) end, desc = \"Quick Chat (CopilotChat)\", mode = { \"n\", \"x\" }, }, { \"ap\", function() require(\"CopilotChat\").select_prompt() end, desc = \"Prompt Actions (CopilotChat)\", mode = { \"n\", \"x\" }, }, }, config = function(_, opts) local chat = require(\"CopilotChat\") vim.api.nvim_create_autocmd(\"BufEnter\", { pattern = \"copilot-chat\", callback = function() vim.opt_local.relativenumber = false vim.opt_local.number = false end, }) chat.setup(opts) end, }","s":"CopilotChat.nvim","u":"/extras/ai/copilot-chat","h":"#copilotchatnvim","p":112},{"i":117,"t":"Edgy integration Options Full Spec opts = function(_, opts) opts.right = opts.right or {} table.insert(opts.right, { ft = \"copilot-chat\", title = \"Copilot Chat\", size = { width = 50 }, }) end { \"folke/edgy.nvim\", optional = true, opts = function(_, opts) opts.right = opts.right or {} table.insert(opts.right, { ft = \"copilot-chat\", title = \"Copilot Chat\", size = { width = 50 }, }) end, }","s":"edgy.nvim (optional)","u":"/extras/ai/copilot-chat","h":"#edgynvim-optional","p":112},{"i":119,"t":"Blink integration Options Full Spec opts = { sources = { providers = { path = { -- Path sources triggered by \"/\" interfere with CopilotChat commands enabled = function() return vim.bo.filetype ~= \"copilot-chat\" end, }, }, }, } { \"saghen/blink.cmp\", optional = true, ---@module 'blink.cmp' ---@type blink.cmp.Config opts = { sources = { providers = { path = { -- Path sources triggered by \"/\" interfere with CopilotChat commands enabled = function() return vim.bo.filetype ~= \"copilot-chat\" end, }, }, }, }, }","s":"blink.cmp (optional)","u":"/extras/ai/copilot-chat","h":"#blinkcmp-optional","p":112},{"i":121,"t":"info You can enable the extra with the :LazyExtras command. Plugins marked as optional will only be configured if they are installed. Below you can find a list of included plugins and their default settings. caution You don't need to copy the default settings to your config. They are only shown here for reference.","s":"Supermaven","u":"/extras/ai/supermaven","h":"","p":120},{"i":123,"t":"Options Full Spec opts = { keymaps = { accept_suggestion = nil, -- handled by nvim-cmp / blink.cmp }, disable_inline_completion = vim.g.ai_cmp, ignore_filetypes = { \"bigfile\", \"snacks_input\", \"snacks_notif\" }, } { \"supermaven-inc/supermaven-nvim\", event = \"InsertEnter\", cmd = { \"SupermavenUseFree\", \"SupermavenUsePro\", }, opts = { keymaps = { accept_suggestion = nil, -- handled by nvim-cmp / blink.cmp }, disable_inline_completion = vim.g.ai_cmp, ignore_filetypes = { \"bigfile\", \"snacks_input\", \"snacks_notif\" }, }, }","s":"supermaven-nvim","u":"/extras/ai/supermaven","h":"#supermaven-nvim","p":120},{"i":125,"t":"add ai_accept action Options Full Spec opts = function() require(\"supermaven-nvim.completion_preview\").suggestion_group = \"SupermavenSuggestion\" LazyVim.cmp.actions.ai_accept = function() local suggestion = require(\"supermaven-nvim.completion_preview\") if suggestion.has_suggestion() then LazyVim.create_undo() vim.schedule(function() suggestion.on_accept_suggestion() end) return true end end end { \"supermaven-inc/supermaven-nvim\", opts = function() require(\"supermaven-nvim.completion_preview\").suggestion_group = \"SupermavenSuggestion\" LazyVim.cmp.actions.ai_accept = function() local suggestion = require(\"supermaven-nvim.completion_preview\") if suggestion.has_suggestion() then LazyVim.create_undo() vim.schedule(function() suggestion.on_accept_suggestion() end) return true end end end, }","s":"supermaven-nvim","u":"/extras/ai/supermaven","h":"#supermaven-nvim-1","p":120},{"i":127,"t":"Options Full Spec opts = nil { \"supermaven-nvim\" }","s":"supermaven-nvim","u":"/extras/ai/supermaven","h":"#supermaven-nvim-2","p":120},{"i":129,"t":"Options Full Spec opts = nil { \"supermaven-nvim\", \"saghen/blink.compat\" }","s":"supermaven-nvim","u":"/extras/ai/supermaven","h":"#supermaven-nvim-3","p":120},{"i":131,"t":"cmp integration Options Full Spec opts = function(_, opts) if vim.g.ai_cmp then table.insert(opts.sources, 1, { name = \"supermaven\", group_index = 1, priority = 100, }) end end { \"hrsh7th/nvim-cmp\", optional = true, dependencies = { \"supermaven-nvim\" }, opts = function(_, opts) if vim.g.ai_cmp then table.insert(opts.sources, 1, { name = \"supermaven\", group_index = 1, priority = 100, }) end end, }","s":"nvim-cmp (optional)","u":"/extras/ai/supermaven","h":"#nvim-cmp-optional","p":120},{"i":133,"t":"info You can enable the extra with the :LazyExtras command. Plugins marked as optional will only be configured if they are installed.","s":"Copilot-native","u":"/extras/ai/copilot-native","h":"","p":132},{"i":135,"t":"Additional options for this extra can be configured in your lua/config/options.lua file: lua/config/options.lua -- Native inline completions don't support being shown as regular completions vim.g.ai_cmp = false Below you can find a list of included plugins and their default settings. caution You don't need to copy the default settings to your config. They are only shown here for reference.","s":"Options","u":"/extras/ai/copilot-native","h":"#options","p":132},{"i":137,"t":"copilot-language-server Options Full Spec opts = { servers = { copilot = { -- stylua: ignore keys = { { \"\", function() vim.lsp.inline_completion.select({ count = 1 }) end, desc = \"Next Copilot Suggestion\", mode = { \"i\", \"n\" }, }, { \"\", function() vim.lsp.inline_completion.select({ count = -1 }) end, desc = \"Prev Copilot Suggestion\", mode = { \"i\", \"n\" }, }, }, }, }, setup = { copilot = function() vim.schedule(function() vim.lsp.inline_completion.enable() end) -- Accept inline suggestions or next edits LazyVim.cmp.actions.ai_accept = function() return vim.lsp.inline_completion.get() end if not LazyVim.has_extra(\"ai.sidekick\") then vim.lsp.config(\"copilot\", { handlers = { didChangeStatus = function(err, res, ctx) if err then return end status[ctx.client_id] = res.kind ~= \"Normal\" and \"error\" or res.busy and \"pending\" or \"ok\" if res.status == \"Error\" then LazyVim.error(\"Please use `:LspCopilotSignIn` to sign in to Copilot\") end end, }, }) end end, }, } { \"neovim/nvim-lspconfig\", opts = { servers = { copilot = { -- stylua: ignore keys = { { \"\", function() vim.lsp.inline_completion.select({ count = 1 }) end, desc = \"Next Copilot Suggestion\", mode = { \"i\", \"n\" }, }, { \"\", function() vim.lsp.inline_completion.select({ count = -1 }) end, desc = \"Prev Copilot Suggestion\", mode = { \"i\", \"n\" }, }, }, }, }, setup = { copilot = function() vim.schedule(function() vim.lsp.inline_completion.enable() end) -- Accept inline suggestions or next edits LazyVim.cmp.actions.ai_accept = function() return vim.lsp.inline_completion.get() end if not LazyVim.has_extra(\"ai.sidekick\") then vim.lsp.config(\"copilot\", { handlers = { didChangeStatus = function(err, res, ctx) if err then return end status[ctx.client_id] = res.kind ~= \"Normal\" and \"error\" or res.busy and \"pending\" or \"ok\" if res.status == \"Error\" then LazyVim.error(\"Please use `:LspCopilotSignIn` to sign in to Copilot\") end end, }, }) end end, }, }, }","s":"nvim-lspconfig","u":"/extras/ai/copilot-native","h":"#nvim-lspconfig","p":132},{"i":139,"t":"lualine Options Full Spec opts = function(_, opts) if LazyVim.has_extra(\"ai.sidekick\") then return end table.insert( opts.sections.lualine_x, 2, LazyVim.lualine.status(LazyVim.config.icons.kinds.Copilot, function() local clients = vim.lsp.get_clients({ name = \"copilot\", bufnr = 0 }) return #clients > 0 and status[clients[1].id] or nil end) ) end { \"nvim-lualine/lualine.nvim\", optional = true, event = \"VeryLazy\", opts = function(_, opts) if LazyVim.has_extra(\"ai.sidekick\") then return end table.insert( opts.sections.lualine_x, 2, LazyVim.lualine.status(LazyVim.config.icons.kinds.Copilot, function() local clients = vim.lsp.get_clients({ name = \"copilot\", bufnr = 0 }) return #clients > 0 and status[clients[1].id] or nil end) ) end, }","s":"lualine.nvim (optional)","u":"/extras/ai/copilot-native","h":"#lualinenvim-optional","p":132},{"i":141,"t":"info You can enable the extra with the :LazyExtras command. Plugins marked as optional will only be configured if they are installed. Below you can find a list of included plugins and their default settings. caution You don't need to copy the default settings to your config. They are only shown here for reference.","s":"Sidekick","u":"/extras/ai/sidekick","h":"","p":140},{"i":143,"t":"copilot-language-server Options Full Spec opts = function(_, opts) local sk = LazyVim.opts(\"sidekick.nvim\") ---@type sidekick.Config|{} if vim.tbl_get(sk, \"nes\", \"enabled\") ~= false then opts.servers = opts.servers or {} opts.servers.copilot = opts.servers.copilot or {} end end { \"neovim/nvim-lspconfig\", opts = function(_, opts) local sk = LazyVim.opts(\"sidekick.nvim\") ---@type sidekick.Config|{} if vim.tbl_get(sk, \"nes\", \"enabled\") ~= false then opts.servers = opts.servers or {} opts.servers.copilot = opts.servers.copilot or {} end end, }","s":"nvim-lspconfig","u":"/extras/ai/sidekick","h":"#nvim-lspconfig","p":140},{"i":145,"t":"Options Full Spec opts = function() -- Accept inline suggestions or next edits LazyVim.cmp.actions.ai_nes = function() local Nes = require(\"sidekick.nes\") if Nes.have() and (Nes.jump() or Nes.apply()) then return true end end end { \"folke/sidekick.nvim\", opts = function() -- Accept inline suggestions or next edits LazyVim.cmp.actions.ai_nes = function() local Nes = require(\"sidekick.nes\") if Nes.have() and (Nes.jump() or Nes.apply()) then return true end end end, -- stylua: ignore keys = { -- nes is also useful in normal mode { \"\", LazyVim.cmp.map({ \"ai_nes\" }, \"\"), mode = { \"n\" }, expr = true }, { \"a\", \"\", desc = \"+ai\", mode = { \"n\", \"v\" } }, { \"\", function() require(\"sidekick.cli\").toggle() end, desc = \"Sidekick Toggle\", mode = { \"n\", \"t\", \"i\", \"x\" }, }, { \"aa\", function() require(\"sidekick.cli\").toggle() end, desc = \"Sidekick Toggle CLI\", }, { \"as\", function() require(\"sidekick.cli\").select() end, -- Or to select only installed tools: -- require(\"sidekick.cli\").select({ filter = { installed = true } }) desc = \"Select CLI\", }, { \"ad\", function() require(\"sidekick.cli\").close() end, desc = \"Detach a CLI Session\", }, { \"at\", function() require(\"sidekick.cli\").send({ msg = \"{this}\" }) end, mode = { \"x\", \"n\" }, desc = \"Send This\", }, { \"af\", function() require(\"sidekick.cli\").send({ msg = \"{file}\" }) end, desc = \"Send File\", }, { \"av\", function() require(\"sidekick.cli\").send({ msg = \"{selection}\" }) end, mode = { \"x\" }, desc = \"Send Visual Selection\", }, { \"ap\", function() require(\"sidekick.cli\").prompt() end, mode = { \"n\", \"x\" }, desc = \"Sidekick Select Prompt\", }, }, }","s":"sidekick.nvim","u":"/extras/ai/sidekick","h":"#sidekicknvim","p":140},{"i":147,"t":"lualine Options Full Spec opts = function(_, opts) local icons = { Error = { \" \", \"DiagnosticError\" }, Inactive = { \" \", \"MsgArea\" }, Warning = { \" \", \"DiagnosticWarn\" }, Normal = { LazyVim.config.icons.kinds.Copilot, \"Special\" }, } table.insert(opts.sections.lualine_x, 2, { function() local status = require(\"sidekick.status\").get() return status and vim.tbl_get(icons, status.kind, 1) end, cond = function() return require(\"sidekick.status\").get() ~= nil end, color = function() local status = require(\"sidekick.status\").get() local hl = status and (status.busy and \"DiagnosticWarn\" or vim.tbl_get(icons, status.kind, 2)) return { fg = Snacks.util.color(hl) } end, }) table.insert(opts.sections.lualine_x, 2, { function() local status = require(\"sidekick.status\").cli() return \" \" .. (#status > 1 and #status or \"\") end, cond = function() return #require(\"sidekick.status\").cli() > 0 end, color = function() return { fg = Snacks.util.color(\"Special\") } end, }) end { \"nvim-lualine/lualine.nvim\", optional = true, event = \"VeryLazy\", opts = function(_, opts) local icons = { Error = { \" \", \"DiagnosticError\" }, Inactive = { \" \", \"MsgArea\" }, Warning = { \" \", \"DiagnosticWarn\" }, Normal = { LazyVim.config.icons.kinds.Copilot, \"Special\" }, } table.insert(opts.sections.lualine_x, 2, { function() local status = require(\"sidekick.status\").get() return status and vim.tbl_get(icons, status.kind, 1) end, cond = function() return require(\"sidekick.status\").get() ~= nil end, color = function() local status = require(\"sidekick.status\").get() local hl = status and (status.busy and \"DiagnosticWarn\" or vim.tbl_get(icons, status.kind, 2)) return { fg = Snacks.util.color(hl) } end, }) table.insert(opts.sections.lualine_x, 2, { function() local status = require(\"sidekick.status\").cli() return \" \" .. (#status > 1 and #status or \"\") end, cond = function() return #require(\"sidekick.status\").cli() > 0 end, color = function() return { fg = Snacks.util.color(\"Special\") } end, }) end, }","s":"lualine.nvim (optional)","u":"/extras/ai/sidekick","h":"#lualinenvim-optional","p":140},{"i":149,"t":"Options Full Spec opts = { picker = { actions = { sidekick_send = function(...) return require(\"sidekick.cli.picker.snacks\").send(...) end, }, win = { input = { keys = { [\"\"] = { \"sidekick_send\", mode = { \"n\", \"i\" }, }, }, }, }, }, } { \"folke/snacks.nvim\", optional = true, opts = { picker = { actions = { sidekick_send = function(...) return require(\"sidekick.cli.picker.snacks\").send(...) end, }, win = { input = { keys = { [\"\"] = { \"sidekick_send\", mode = { \"n\", \"i\" }, }, }, }, }, }, }, }","s":"snacks.nvim (optional)","u":"/extras/ai/sidekick","h":"#snacksnvim-optional","p":140},{"i":151,"t":"info You can enable the extra with the :LazyExtras command. Plugins marked as optional will only be configured if they are installed. Below you can find a list of included plugins and their default settings. caution You don't need to copy the default settings to your config. They are only shown here for reference.","s":"Mini-comment","u":"/extras/coding/mini-comment","h":"","p":150},{"i":153,"t":"Options Full Spec opts = { options = { custom_commentstring = function() return require(\"ts_context_commentstring.internal\").calculate_commentstring() or vim.bo.commentstring end, }, } { \"nvim-mini/mini.comment\", event = \"VeryLazy\", opts = { options = { custom_commentstring = function() return require(\"ts_context_commentstring.internal\").calculate_commentstring() or vim.bo.commentstring end, }, }, }","s":"mini.comment","u":"/extras/coding/mini-comment","h":"#minicomment","p":150},{"i":155,"t":"Options Full Spec opts = { enable_autocmd = false, } { \"JoosepAlviste/nvim-ts-context-commentstring\", lazy = true, opts = { enable_autocmd = false, }, }","s":"nvim-ts-context-commentstring","u":"/extras/coding/mini-comment","h":"#nvim-ts-context-commentstring","p":150},{"i":157,"t":"info You can enable the extra with the :LazyExtras command. Plugins marked as optional will only be configured if they are installed. Below you can find a list of included plugins and their default settings. caution You don't need to copy the default settings to your config. They are only shown here for reference.","s":"Luasnip","u":"/extras/coding/luasnip","h":"","p":156},{"i":159,"t":"add luasnip Options Full Spec opts = { history = true, delete_check_events = \"TextChanged\", } { \"L3MON4D3/LuaSnip\", lazy = true, build = (not LazyVim.is_win()) and \"echo 'NOTE: jsregexp is optional, so not a big deal if it fails to build'; make install_jsregexp\" or nil, dependencies = { { \"rafamadriz/friendly-snippets\", config = function() require(\"luasnip.loaders.from_vscode\").lazy_load() require(\"luasnip.loaders.from_vscode\").lazy_load({ paths = { vim.fn.stdpath(\"config\") .. \"/snippets\" } }) end, }, }, opts = { history = true, delete_check_events = \"TextChanged\", }, }","s":"LuaSnip","u":"/extras/coding/luasnip","h":"#luasnip-1","p":156},{"i":161,"t":"Options Full Spec opts = {} { \"rafamadriz/friendly-snippets\", config = function() require(\"luasnip.loaders.from_vscode\").lazy_load() require(\"luasnip.loaders.from_vscode\").lazy_load({ paths = { vim.fn.stdpath(\"config\") .. \"/snippets\" } }) end, }","s":"friendly-snippets","u":"/extras/coding/luasnip","h":"#friendly-snippets","p":156},{"i":163,"t":"add snippet_forward action Options Full Spec opts = function() LazyVim.cmp.actions.snippet_forward = function() if require(\"luasnip\").jumpable(1) then vim.schedule(function() require(\"luasnip\").jump(1) end) return true end end LazyVim.cmp.actions.snippet_stop = function() if require(\"luasnip\").expand_or_jumpable() then -- or just jumpable(1) is fine? require(\"luasnip\").unlink_current() return true end end end { \"L3MON4D3/LuaSnip\", opts = function() LazyVim.cmp.actions.snippet_forward = function() if require(\"luasnip\").jumpable(1) then vim.schedule(function() require(\"luasnip\").jump(1) end) return true end end LazyVim.cmp.actions.snippet_stop = function() if require(\"luasnip\").expand_or_jumpable() then -- or just jumpable(1) is fine? require(\"luasnip\").unlink_current() return true end end end, }","s":"LuaSnip","u":"/extras/coding/luasnip","h":"#luasnip-2","p":156},{"i":165,"t":"Options Full Spec opts = nil { \"saadparwaiz1/cmp_luasnip\" }","s":"cmp_luasnip","u":"/extras/coding/luasnip","h":"#cmp_luasnip","p":156},{"i":167,"t":"nvim-cmp integration Options Full Spec opts = function(_, opts) opts.snippet = { expand = function(args) require(\"luasnip\").lsp_expand(args.body) end, } table.insert(opts.sources, { name = \"luasnip\" }) end { \"hrsh7th/nvim-cmp\", optional = true, dependencies = { \"saadparwaiz1/cmp_luasnip\" }, opts = function(_, opts) opts.snippet = { expand = function(args) require(\"luasnip\").lsp_expand(args.body) end, } table.insert(opts.sources, { name = \"luasnip\" }) end, -- stylua: ignore keys = { { \"\", function() require(\"luasnip\").jump(1) end, mode = \"s\" }, { \"\", function() require(\"luasnip\").jump(-1) end, mode = { \"i\", \"s\" } }, }, }","s":"nvim-cmp (optional)","u":"/extras/coding/luasnip","h":"#nvim-cmp-optional","p":156},{"i":169,"t":"blink.cmp integration Options Full Spec opts = { snippets = { preset = \"luasnip\", }, } { \"saghen/blink.cmp\", optional = true, opts = { snippets = { preset = \"luasnip\", }, }, }","s":"blink.cmp (optional)","u":"/extras/coding/luasnip","h":"#blinkcmp-optional","p":156},{"i":171,"t":"info You can enable the extra with the :LazyExtras command. Plugins marked as optional will only be configured if they are installed. Below you can find a list of included plugins and their default settings. caution You don't need to copy the default settings to your config. They are only shown here for reference.","s":"Mini-surround","u":"/extras/coding/mini-surround","h":"","p":170},{"i":173,"t":"Options Full Spec opts = { mappings = { add = \"gsa\", -- Add surrounding in Normal and Visual modes delete = \"gsd\", -- Delete surrounding find = \"gsf\", -- Find surrounding (to the right) find_left = \"gsF\", -- Find surrounding (to the left) highlight = \"gsh\", -- Highlight surrounding replace = \"gsr\", -- Replace surrounding update_n_lines = \"gsn\", -- Update `n_lines` }, } { \"nvim-mini/mini.surround\", keys = function(_, keys) -- Populate the keys based on the user's options local opts = LazyVim.opts(\"mini.surround\") local mappings = { { opts.mappings.add, desc = \"Add Surrounding\", mode = { \"n\", \"x\" } }, { opts.mappings.delete, desc = \"Delete Surrounding\" }, { opts.mappings.find, desc = \"Find Right Surrounding\" }, { opts.mappings.find_left, desc = \"Find Left Surrounding\" }, { opts.mappings.highlight, desc = \"Highlight Surrounding\" }, { opts.mappings.replace, desc = \"Replace Surrounding\" }, { opts.mappings.update_n_lines, desc = \"Update `MiniSurround.config.n_lines`\" }, } mappings = vim.tbl_filter(function(m) return m[1] and #m[1] > 0 end, mappings) return vim.list_extend(mappings, keys) end, opts = { mappings = { add = \"gsa\", -- Add surrounding in Normal and Visual modes delete = \"gsd\", -- Delete surrounding find = \"gsf\", -- Find surrounding (to the right) find_left = \"gsF\", -- Find surrounding (to the left) highlight = \"gsh\", -- Highlight surrounding replace = \"gsr\", -- Replace surrounding update_n_lines = \"gsn\", -- Update `n_lines` }, }, }","s":"mini.surround","u":"/extras/coding/mini-surround","h":"#minisurround","p":170},{"i":175,"t":"info You can enable the extra with the :LazyExtras command. Plugins marked as optional will only be configured if they are installed. Below you can find a list of included plugins and their default settings. caution You don't need to copy the default settings to your config. They are only shown here for reference.","s":"Neogen","u":"/extras/coding/neogen","h":"","p":174},{"i":177,"t":"Options Full Spec opts = function(_, opts) if opts.snippet_engine ~= nil then return end local map = { [\"LuaSnip\"] = \"luasnip\", [\"mini.snippets\"] = \"mini\", [\"nvim-snippy\"] = \"snippy\", [\"vim-vsnip\"] = \"vsnip\", } for plugin, engine in pairs(map) do if LazyVim.has(plugin) then opts.snippet_engine = engine return end end if vim.snippet then opts.snippet_engine = \"nvim\" end end { \"danymat/neogen\", dependencies = LazyVim.has(\"mini.snippets\") and { \"mini.snippets\" } or {}, cmd = \"Neogen\", keys = { { \"cn\", function() require(\"neogen\").generate() end, desc = \"Generate Annotations (Neogen)\", }, }, opts = function(_, opts) if opts.snippet_engine ~= nil then return end local map = { [\"LuaSnip\"] = \"luasnip\", [\"mini.snippets\"] = \"mini\", [\"nvim-snippy\"] = \"snippy\", [\"vim-vsnip\"] = \"vsnip\", } for plugin, engine in pairs(map) do if LazyVim.has(plugin) then opts.snippet_engine = engine return end end if vim.snippet then opts.snippet_engine = \"nvim\" end end, }","s":"neogen","u":"/extras/coding/neogen","h":"#neogen-1","p":174},{"i":179,"t":"info You can enable the extra with the :LazyExtras command. Plugins marked as optional will only be configured if they are installed. Below you can find a list of included plugins and their default settings. caution You don't need to copy the default settings to your config. They are only shown here for reference.","s":"Tabnine","u":"/extras/ai/tabnine","h":"","p":178},{"i":181,"t":"Tabnine cmp source Options Full Spec opts = { max_lines = 1000, max_num_results = 3, sort = true, } { \"tzachar/cmp-tabnine\", build = LazyVim.is_win() and \"pwsh -noni .\\\\install.ps1\" or \"./install.sh\", opts = { max_lines = 1000, max_num_results = 3, sort = true, }, config = function(_, opts) require(\"cmp_tabnine.config\"):setup(opts) end, }","s":"cmp-tabnine","u":"/extras/ai/tabnine","h":"#cmp-tabnine","p":178},{"i":183,"t":"Options Full Spec opts = nil { \"tzachar/cmp-tabnine\" }","s":"cmp-tabnine","u":"/extras/ai/tabnine","h":"#cmp-tabnine-1","p":178},{"i":185,"t":"Options Full Spec opts = nil { \"tzachar/cmp-tabnine\", \"saghen/blink.compat\" }","s":"cmp-tabnine","u":"/extras/ai/tabnine","h":"#cmp-tabnine-2","p":178},{"i":187,"t":"Options Full Spec opts = nil \"saghen/blink.compat\"","s":"blink.compat","u":"/extras/ai/tabnine","h":"#blinkcompat","p":178},{"i":189,"t":"Options Full Spec opts = function(_, opts) table.insert(opts.sources, 1, { name = \"cmp_tabnine\", group_index = 1, priority = 100, }) opts.formatting.format = LazyVim.inject.args(opts.formatting.format, function(entry, item) -- Hide percentage in the menu if entry.source.name == \"cmp_tabnine\" then item.menu = \"\" end end) end { \"hrsh7th/nvim-cmp\", optional = true, dependencies = { \"tzachar/cmp-tabnine\" }, ---@param opts cmp.ConfigSchema opts = function(_, opts) table.insert(opts.sources, 1, { name = \"cmp_tabnine\", group_index = 1, priority = 100, }) opts.formatting.format = LazyVim.inject.args(opts.formatting.format, function(entry, item) -- Hide percentage in the menu if entry.source.name == \"cmp_tabnine\" then item.menu = \"\" end end) end, }","s":"nvim-cmp (optional)","u":"/extras/ai/tabnine","h":"#nvim-cmp-optional","p":178},{"i":191,"t":"Options Full Spec opts = { sources = { compat = { \"cmp_tabnine\" }, providers = { cmp_tabnine = { kind = \"TabNine\", score_offset = 100, async = true, }, }, }, } { \"saghen/blink.cmp\", optional = true, dependencies = { \"tzachar/cmp-tabnine\", \"saghen/blink.compat\" }, opts = { sources = { compat = { \"cmp_tabnine\" }, providers = { cmp_tabnine = { kind = \"TabNine\", score_offset = 100, async = true, }, }, }, }, }","s":"blink.cmp (optional)","u":"/extras/ai/tabnine","h":"#blinkcmp-optional","p":178},{"i":193,"t":"Show TabNine status in lualine Options Full Spec opts = function(_, opts) local icon = LazyVim.config.icons.kinds.TabNine table.insert(opts.sections.lualine_x, 2, LazyVim.lualine.cmp_source(\"cmp_tabnine\", icon)) end { \"nvim-lualine/lualine.nvim\", optional = true, event = \"VeryLazy\", opts = function(_, opts) local icon = LazyVim.config.icons.kinds.TabNine table.insert(opts.sections.lualine_x, 2, LazyVim.lualine.cmp_source(\"cmp_tabnine\", icon)) end, }","s":"lualine.nvim (optional)","u":"/extras/ai/tabnine","h":"#lualinenvim-optional","p":178},{"i":195,"t":"The default LazyVim mappings to cycle yank history are [y and ]y info You can enable the extra with the :LazyExtras command. Plugins marked as optional will only be configured if they are installed. Below you can find a list of included plugins and their default settings. caution You don't need to copy the default settings to your config. They are only shown here for reference.","s":"yanky.nvim","u":"/extras/coding/yanky","h":"","p":194},{"i":196,"t":"Options Full Spec opts = { system_clipboard = { sync_with_ring = not vim.env.SSH_CONNECTION, }, highlight = { timer = 150 }, } { \"gbprod/yanky.nvim\", recommended = true, desc = \"Better Yank/Paste\", event = \"LazyFile\", opts = { system_clipboard = { sync_with_ring = not vim.env.SSH_CONNECTION, }, highlight = { timer = 150 }, }, keys = { { \"p\", function() if LazyVim.pick.picker.name == \"telescope\" then require(\"telescope\").extensions.yank_history.yank_history({}) elseif LazyVim.pick.picker.name == \"snacks\" then Snacks.picker.yanky() else vim.cmd([[YankyRingHistory]]) end end, mode = { \"n\", \"x\" }, desc = \"Open Yank History\", }, -- stylua: ignore { \"y\", \"(YankyYank)\", mode = { \"n\", \"x\" }, desc = \"Yank Text\" }, { \"p\", \"(YankyPutAfter)\", mode = { \"n\", \"x\" }, desc = \"Put Text After Cursor\" }, { \"P\", \"(YankyPutBefore)\", mode = { \"n\", \"x\" }, desc = \"Put Text Before Cursor\" }, { \"gp\", \"(YankyGPutAfter)\", mode = { \"n\", \"x\" }, desc = \"Put Text After Selection\" }, { \"gP\", \"(YankyGPutBefore)\", mode = { \"n\", \"x\" }, desc = \"Put Text Before Selection\" }, { \"[y\", \"(YankyCycleForward)\", desc = \"Cycle Forward Through Yank History\" }, { \"]y\", \"(YankyCycleBackward)\", desc = \"Cycle Backward Through Yank History\" }, { \"]p\", \"(YankyPutIndentAfterLinewise)\", desc = \"Put Indented After Cursor (Linewise)\" }, { \"[p\", \"(YankyPutIndentBeforeLinewise)\", desc = \"Put Indented Before Cursor (Linewise)\" }, { \"]P\", \"(YankyPutIndentAfterLinewise)\", desc = \"Put Indented After Cursor (Linewise)\" }, { \"[P\", \"(YankyPutIndentBeforeLinewise)\", desc = \"Put Indented Before Cursor (Linewise)\" }, { \">p\", \"(YankyPutIndentAfterShiftRight)\", desc = \"Put and Indent Right\" }, { \"(YankyPutIndentAfterShiftLeft)\", desc = \"Put and Indent Left\" }, { \">P\", \"(YankyPutIndentBeforeShiftRight)\", desc = \"Put Before and Indent Right\" }, { \"(YankyPutIndentBeforeShiftLeft)\", desc = \"Put Before and Indent Left\" }, { \"=p\", \"(YankyPutAfterFilter)\", desc = \"Put After Applying a Filter\" }, { \"=P\", \"(YankyPutBeforeFilter)\", desc = \"Put Before Applying a Filter\" }, }, }","s":"yanky.nvim","u":"/extras/coding/yanky","h":"#yankynvim-1","p":194},{"i":198,"t":"info You can enable the extra with the :LazyExtras command. Plugins marked as optional will only be configured if they are installed.","s":"Mini-snippets","u":"/extras/coding/mini-snippets","h":"","p":197},{"i":200,"t":"Additional options for this extra can be configured in your lua/config/options.lua file: lua/config/options.lua -- Set to `false` to prevent \"non-lsp snippets\"\" from appearing inside completion windows -- Motivation: Less clutter in completion windows and a more direct usage of snippets vim.g.lazyvim_mini_snippets_in_completion = true -- NOTE: Please also read: -- https://github.com/nvim-mini/mini.nvim/blob/main/readmes/mini-snippets.md#expand -- :h MiniSnippets-session -- Example override for your own config: --[[ return { { \"nvim-mini/mini.snippets\", opts = function(_, opts) -- By default, for opts.snippets, the extra for mini.snippets only adds gen_loader.from_lang() -- This provides a sensible quickstart, integrating with friendly-snippets -- and your own language-specific snippets -- -- In order to change opts.snippets, replace the entire table inside your own opts local snippets, config_path = require(\"mini.snippets\"), vim.fn.stdpath(\"config\") opts.snippets = { -- override opts.snippets provided by extra... -- Load custom file with global snippets first (order matters) snippets.gen_loader.from_file(config_path .. \"/snippets/global.json\"), -- Load snippets based on current language by reading files from -- \"snippets/\" subdirectories from 'runtimepath' directories. snippets.gen_loader.from_lang(), -- this is the default in the extra... } end, }, } --]] Below you can find a list of included plugins and their default settings. caution You don't need to copy the default settings to your config. They are only shown here for reference.","s":"Options","u":"/extras/coding/mini-snippets","h":"#options","p":197},{"i":202,"t":"Options Full Spec opts = function() ---@diagnostic disable-next-line: duplicate-set-field LazyVim.cmp.actions.snippet_stop = function() end -- by design, should not stop the session! ---@diagnostic disable-next-line: duplicate-set-field LazyVim.cmp.actions.snippet_forward = function() return jump(\"next\") end local mini_snippets = require(\"mini.snippets\") return { snippets = { mini_snippets.gen_loader.from_lang() }, -- Following the behavior of vim.snippets, -- the intended usage of is to be able to temporarily exit into normal mode for quick edits. -- -- If you'd rather stop the snippet on , activate the line below in your own config: -- mappings = { stop = \"\" }, -- by default, see :h MiniSnippets-session expand = { select = function(snippets, insert) -- Close completion window on snippet select - vim.ui.select -- Needed to remove virtual text for fzf-lua and telescope, but not for mini.pick... local select = expand_select_override or MiniSnippets.default_select select(snippets, insert) end, }, } end { \"nvim-mini/mini.snippets\", event = \"InsertEnter\", -- don't depend on other plugins to load... dependencies = \"rafamadriz/friendly-snippets\", opts = function() ---@diagnostic disable-next-line: duplicate-set-field LazyVim.cmp.actions.snippet_stop = function() end -- by design, should not stop the session! ---@diagnostic disable-next-line: duplicate-set-field LazyVim.cmp.actions.snippet_forward = function() return jump(\"next\") end local mini_snippets = require(\"mini.snippets\") return { snippets = { mini_snippets.gen_loader.from_lang() }, -- Following the behavior of vim.snippets, -- the intended usage of is to be able to temporarily exit into normal mode for quick edits. -- -- If you'd rather stop the snippet on , activate the line below in your own config: -- mappings = { stop = \"\" }, -- by default, see :h MiniSnippets-session expand = { select = function(snippets, insert) -- Close completion window on snippet select - vim.ui.select -- Needed to remove virtual text for fzf-lua and telescope, but not for mini.pick... local select = expand_select_override or MiniSnippets.default_select select(snippets, insert) end, }, } end, }","s":"mini.snippets","u":"/extras/coding/mini-snippets","h":"#minisnippets","p":197},{"i":204,"t":"Options Full Spec opts = nil { \"abeldekat/cmp-mini-snippets\" }","s":"cmp-mini-snippets","u":"/extras/coding/mini-snippets","h":"#cmp-mini-snippets","p":197},{"i":206,"t":"nvim-cmp integration Options Full Spec opts = function(_, opts) local cmp = require(\"cmp\") local cmp_config = require(\"cmp.config\") opts.snippet = { expand = function(args) expand_from_lsp(args.body) cmp.resubscribe({ \"TextChangedI\", \"TextChangedP\" }) cmp_config.set_onetime({ sources = {} }) end, } if include_in_completion then table.insert(opts.sources, { name = \"mini_snippets\" }) else expand_select_override = function(snippets, insert) -- stylua: ignore if cmp.visible() then cmp.close() end MiniSnippets.default_select(snippets, insert) end end end { \"hrsh7th/nvim-cmp\", optional = true, dependencies = include_in_completion and { \"abeldekat/cmp-mini-snippets\" } or nil, opts = function(_, opts) local cmp = require(\"cmp\") local cmp_config = require(\"cmp.config\") opts.snippet = { expand = function(args) expand_from_lsp(args.body) cmp.resubscribe({ \"TextChangedI\", \"TextChangedP\" }) cmp_config.set_onetime({ sources = {} }) end, } if include_in_completion then table.insert(opts.sources, { name = \"mini_snippets\" }) else expand_select_override = function(snippets, insert) -- stylua: ignore if cmp.visible() then cmp.close() end MiniSnippets.default_select(snippets, insert) end end end, -- stylua: ignore -- counterpart to defined in cmp.mappings keys = include_in_completion and { { \"\", function() jump(\"prev\") end, mode = \"i\" } } or nil, }","s":"nvim-cmp (optional)","u":"/extras/coding/mini-snippets","h":"#nvim-cmp-optional","p":197},{"i":208,"t":"blink.cmp integration Options Full Spec opts = function(_, opts) -- Return early if include_in_completion then opts.snippets = { preset = \"mini_snippets\" } return end -- Standalone -- local blink = require(\"blink.cmp\") expand_select_override = function(snippets, insert) -- Schedule, otherwise blink's virtual text is not removed on vim.ui.select blink.cancel() vim.schedule(function() MiniSnippets.default_select(snippets, insert) end) end -- -- Blink performs a require on blink.cmp.sources.snippets.default -- By removing the source, that default engine will not be used opts.sources.default = vim.tbl_filter(function(source) return source ~= \"snippets\" end, opts.sources.default) opts.snippets = { -- need to repeat blink's preset here expand = function(snippet) expand_from_lsp(snippet) blink.resubscribe() end, active = function() return MiniSnippets.session.get(false) ~= nil end, jump = function(direction) jump(direction == -1 and \"prev\" or \"next\") end, } end { \"saghen/blink.cmp\", optional = true, opts = function(_, opts) -- Return early if include_in_completion then opts.snippets = { preset = \"mini_snippets\" } return end -- Standalone -- local blink = require(\"blink.cmp\") expand_select_override = function(snippets, insert) -- Schedule, otherwise blink's virtual text is not removed on vim.ui.select blink.cancel() vim.schedule(function() MiniSnippets.default_select(snippets, insert) end) end -- -- Blink performs a require on blink.cmp.sources.snippets.default -- By removing the source, that default engine will not be used opts.sources.default = vim.tbl_filter(function(source) return source ~= \"snippets\" end, opts.sources.default) opts.snippets = { -- need to repeat blink's preset here expand = function(snippet) expand_from_lsp(snippet) blink.resubscribe() end, active = function() return MiniSnippets.session.get(false) ~= nil end, jump = function(direction) jump(direction == -1 and \"prev\" or \"next\") end, } end, }","s":"blink.cmp (optional)","u":"/extras/coding/mini-snippets","h":"#blinkcmp-optional","p":197},{"i":210,"t":"info You can enable the extra with the :LazyExtras command. Plugins marked as optional will only be configured if they are installed.","s":"Blink","u":"/extras/coding/blink","h":"","p":209},{"i":212,"t":"Additional options for this extra can be configured in your lua/config/options.lua file: lua/config/options.lua -- set to `true` to follow the main branch -- you need to have a working rust toolchain to build the plugin -- in this case. vim.g.lazyvim_blink_main = false Below you can find a list of included plugins and their default settings. caution You don't need to copy the default settings to your config. They are only shown here for reference.","s":"Options","u":"/extras/coding/blink","h":"#options","p":209},{"i":214,"t":"Options Full Spec opts = { snippets = { preset = \"default\", }, appearance = { -- sets the fallback highlight groups to nvim-cmp's highlight groups -- useful for when your theme doesn't support blink.cmp -- will be removed in a future release, assuming themes add support use_nvim_cmp_as_default = false, -- set to 'mono' for 'Nerd Font Mono' or 'normal' for 'Nerd Font' -- adjusts spacing to ensure icons are aligned nerd_font_variant = \"mono\", }, completion = { accept = { -- experimental auto-brackets support auto_brackets = { enabled = true, }, }, menu = { draw = { treesitter = { \"lsp\" }, }, }, documentation = { auto_show = true, auto_show_delay_ms = 200, }, ghost_text = { enabled = vim.g.ai_cmp, }, }, -- experimental signature help support -- signature = { enabled = true }, sources = { -- adding any nvim-cmp sources here will enable them -- with blink.compat compat = {}, default = { \"lsp\", \"path\", \"snippets\", \"buffer\" }, }, cmdline = { enabled = true, keymap = { preset = \"cmdline\", [\"\"] = false, [\"\"] = false, }, completion = { list = { selection = { preselect = false } }, menu = { auto_show = function(ctx) return vim.fn.getcmdtype() == \":\" end, }, ghost_text = { enabled = true }, }, }, keymap = { preset = \"enter\", [\"\"] = { \"select_and_accept\" }, }, } { \"saghen/blink.cmp\", version = not vim.g.lazyvim_blink_main and \"*\", build = vim.g.lazyvim_blink_main and \"cargo build --release\", opts_extend = { \"sources.completion.enabled_providers\", \"sources.compat\", \"sources.default\", }, dependencies = { \"rafamadriz/friendly-snippets\", -- add blink.compat to dependencies { \"saghen/blink.compat\", optional = true, -- make optional so it's only enabled if any extras need it opts = {}, version = not vim.g.lazyvim_blink_main and \"*\", }, }, event = { \"InsertEnter\", \"CmdlineEnter\" }, ---@module 'blink.cmp' ---@type blink.cmp.Config opts = { snippets = { preset = \"default\", }, appearance = { -- sets the fallback highlight groups to nvim-cmp's highlight groups -- useful for when your theme doesn't support blink.cmp -- will be removed in a future release, assuming themes add support use_nvim_cmp_as_default = false, -- set to 'mono' for 'Nerd Font Mono' or 'normal' for 'Nerd Font' -- adjusts spacing to ensure icons are aligned nerd_font_variant = \"mono\", }, completion = { accept = { -- experimental auto-brackets support auto_brackets = { enabled = true, }, }, menu = { draw = { treesitter = { \"lsp\" }, }, }, documentation = { auto_show = true, auto_show_delay_ms = 200, }, ghost_text = { enabled = vim.g.ai_cmp, }, }, -- experimental signature help support -- signature = { enabled = true }, sources = { -- adding any nvim-cmp sources here will enable them -- with blink.compat compat = {}, default = { \"lsp\", \"path\", \"snippets\", \"buffer\" }, }, cmdline = { enabled = true, keymap = { preset = \"cmdline\", [\"\"] = false, [\"\"] = false, }, completion = { list = { selection = { preselect = false } }, menu = { auto_show = function(ctx) return vim.fn.getcmdtype() == \":\" end, }, ghost_text = { enabled = true }, }, }, keymap = { preset = \"enter\", [\"\"] = { \"select_and_accept\" }, }, }, ---@param opts blink.cmp.Config | { sources: { compat: string[] } } config = function(_, opts) if opts.snippets and opts.snippets.preset == \"default\" then opts.snippets.expand = LazyVim.cmp.expand end -- setup compat sources local enabled = opts.sources.default for _, source in ipairs(opts.sources.compat or {}) do opts.sources.providers[source] = vim.tbl_deep_extend( \"force\", { name = source, module = \"blink.compat.source\" }, opts.sources.providers[source] or {} ) if type(enabled) == \"table\" and not vim.tbl_contains(enabled, source) then table.insert(enabled, source) end end -- add ai_accept to key if not opts.keymap[\"\"] then if opts.keymap.preset == \"super-tab\" then -- super-tab opts.keymap[\"\"] = { require(\"blink.cmp.keymap.presets\").get(\"super-tab\")[\"\"][1], LazyVim.cmp.map({ \"snippet_forward\", \"ai_nes\", \"ai_accept\" }), \"fallback\", } else -- other presets opts.keymap[\"\"] = { LazyVim.cmp.map({ \"snippet_forward\", \"ai_nes\", \"ai_accept\" }), \"fallback\", } end end -- Unset custom prop to pass blink.cmp validation opts.sources.compat = nil -- check if we need to override symbol kinds for _, provider in pairs(opts.sources.providers or {}) do ---@cast provider blink.cmp.SourceProviderConfig|{kind?:string} if provider.kind then local CompletionItemKind = require(\"blink.cmp.types\").CompletionItemKind local kind_idx = #CompletionItemKind + 1 CompletionItemKind[kind_idx] = provider.kind ---@diagnostic disable-next-line: no-unknown CompletionItemKind[provider.kind] = kind_idx ---@type fun(ctx: blink.cmp.Context, items: blink.cmp.CompletionItem[]): blink.cmp.CompletionItem[] local transform_items = provider.transform_items ---@param ctx blink.cmp.Context ---@param items blink.cmp.CompletionItem[] provider.transform_items = function(ctx, items) items = transform_items and transform_items(ctx, items) or items for _, item in ipairs(items) do item.kind = kind_idx or item.kind item.kind_icon = LazyVim.config.icons.kinds[item.kind_name] or item.kind_icon or nil end return items end -- Unset custom prop to pass blink.cmp validation provider.kind = nil end end require(\"blink.cmp\").setup(opts) end, }","s":"blink.cmp","u":"/extras/coding/blink","h":"#blinkcmp","p":209},{"i":216,"t":"Options Full Spec opts = nil { \"rafamadriz/friendly-snippets\", -- add blink.compat to dependencies { \"saghen/blink.compat\", optional = true, -- make optional so it's only enabled if any extras need it opts = {}, version = not vim.g.lazyvim_blink_main and \"*\", }, }","s":"friendly-snippets","u":"/extras/coding/blink","h":"#friendly-snippets","p":209},{"i":218,"t":"add icons Options Full Spec opts = function(_, opts) opts.appearance = opts.appearance or {} opts.appearance.kind_icons = vim.tbl_extend(\"force\", opts.appearance.kind_icons or {}, LazyVim.config.icons.kinds) end { \"saghen/blink.cmp\", opts = function(_, opts) opts.appearance = opts.appearance or {} opts.appearance.kind_icons = vim.tbl_extend(\"force\", opts.appearance.kind_icons or {}, LazyVim.config.icons.kinds) end, }","s":"blink.cmp","u":"/extras/coding/blink","h":"#blinkcmp-1","p":209},{"i":220,"t":"lazydev Options Full Spec opts = { sources = { per_filetype = { lua = { inherit_defaults = true, \"lazydev\" }, }, providers = { lazydev = { name = \"LazyDev\", module = \"lazydev.integrations.blink\", score_offset = 100, -- show at a higher priority than lsp }, }, }, } { \"saghen/blink.cmp\", opts = { sources = { per_filetype = { lua = { inherit_defaults = true, \"lazydev\" }, }, providers = { lazydev = { name = \"LazyDev\", module = \"lazydev.integrations.blink\", score_offset = 100, -- show at a higher priority than lsp }, }, }, }, }","s":"blink.cmp","u":"/extras/coding/blink","h":"#blinkcmp-2","p":209},{"i":222,"t":"add blink.compat to dependencies Options Full Spec opts = {} { \"saghen/blink.compat\", optional = true, -- make optional so it's only enabled if any extras need it opts = {}, version = not vim.g.lazyvim_blink_main and \"*\", }","s":"blink.compat (optional)","u":"/extras/coding/blink","h":"#blinkcompat-optional","p":209},{"i":224,"t":"catppuccin support Options Full Spec opts = { integrations = { blink_cmp = true }, } { \"catppuccin\", optional = true, opts = { integrations = { blink_cmp = true }, }, }","s":"catppuccin (optional)","u":"/extras/coding/blink","h":"#catppuccin-optional","p":209},{"i":226,"t":"info You can enable the extra with the :LazyExtras command. Plugins marked as optional will only be configured if they are installed. Below you can find a list of included plugins and their default settings. caution You don't need to copy the default settings to your config. They are only shown here for reference.","s":"DAP Neovim Lua Adapter","u":"/extras/dap/nlua","h":"","p":225},{"i":228,"t":"Options Full Spec opts = nil { \"mfussenegger/nvim-dap\", dependencies = { { \"jbyuki/one-small-step-for-vimkind\", -- stylua: ignore config = function() local dap = require(\"dap\") dap.adapters.nlua = function(callback, conf) local adapter = { type = \"server\", host = conf.host or \"127.0.0.1\", port = conf.port or 8086, } if conf.start_neovim then local dap_run = dap.run dap.run = function(c) adapter.port = c.port adapter.host = c.host end require(\"osv\").run_this() dap.run = dap_run end callback(adapter) end dap.configurations.lua = { { type = \"nlua\", request = \"attach\", name = \"Run this file\", start_neovim = {}, }, { type = \"nlua\", request = \"attach\", name = \"Attach to running Neovim instance (port = 8086)\", port = 8086, }, } end, }, }, }","s":"nvim-dap","u":"/extras/dap/nlua","h":"#nvim-dap","p":225},{"i":230,"t":"Options Full Spec opts = {} { \"jbyuki/one-small-step-for-vimkind\", -- stylua: ignore config = function() local dap = require(\"dap\") dap.adapters.nlua = function(callback, conf) local adapter = { type = \"server\", host = conf.host or \"127.0.0.1\", port = conf.port or 8086, } if conf.start_neovim then local dap_run = dap.run dap.run = function(c) adapter.port = c.port adapter.host = c.host end require(\"osv\").run_this() dap.run = dap_run end callback(adapter) end dap.configurations.lua = { { type = \"nlua\", request = \"attach\", name = \"Run this file\", start_neovim = {}, }, { type = \"nlua\", request = \"attach\", name = \"Attach to running Neovim instance (port = 8086)\", port = 8086, }, } end, }","s":"one-small-step-for-vimkind","u":"/extras/dap/nlua","h":"#one-small-step-for-vimkind","p":225},{"i":232,"t":"info You can enable the extra with the :LazyExtras command. Plugins marked as optional will only be configured if they are installed. Below you can find a list of included plugins and their default settings. caution You don't need to copy the default settings to your config. They are only shown here for reference.","s":"DAP Core","u":"/extras/dap/core","h":"","p":231},{"i":234,"t":"Options Full Spec opts = {} { \"mfussenegger/nvim-dap\", recommended = true, desc = \"Debugging support. Requires language specific adapters to be configured. (see lang extras)\", dependencies = { \"rcarriga/nvim-dap-ui\", -- virtual text for the debugger { \"theHamsta/nvim-dap-virtual-text\", opts = {}, }, }, -- stylua: ignore keys = { { \"dB\", function() require(\"dap\").set_breakpoint(vim.fn.input('Breakpoint condition: ')) end, desc = \"Breakpoint Condition\" }, { \"db\", function() require(\"dap\").toggle_breakpoint() end, desc = \"Toggle Breakpoint\" }, { \"dc\", function() require(\"dap\").continue() end, desc = \"Run/Continue\" }, { \"da\", function() require(\"dap\").continue({ before = get_args }) end, desc = \"Run with Args\" }, { \"dC\", function() require(\"dap\").run_to_cursor() end, desc = \"Run to Cursor\" }, { \"dg\", function() require(\"dap\").goto_() end, desc = \"Go to Line (No Execute)\" }, { \"di\", function() require(\"dap\").step_into() end, desc = \"Step Into\" }, { \"dj\", function() require(\"dap\").down() end, desc = \"Down\" }, { \"dk\", function() require(\"dap\").up() end, desc = \"Up\" }, { \"dl\", function() require(\"dap\").run_last() end, desc = \"Run Last\" }, { \"do\", function() require(\"dap\").step_out() end, desc = \"Step Out\" }, { \"dO\", function() require(\"dap\").step_over() end, desc = \"Step Over\" }, { \"dP\", function() require(\"dap\").pause() end, desc = \"Pause\" }, { \"dr\", function() require(\"dap\").repl.toggle() end, desc = \"Toggle REPL\" }, { \"ds\", function() require(\"dap\").session() end, desc = \"Session\" }, { \"dt\", function() require(\"dap\").terminate() end, desc = \"Terminate\" }, { \"dw\", function() require(\"dap.ui.widgets\").hover() end, desc = \"Widgets\" }, }, config = function() -- load mason-nvim-dap here, after all adapters have been setup if LazyVim.has(\"mason-nvim-dap.nvim\") then require(\"mason-nvim-dap\").setup(LazyVim.opts(\"mason-nvim-dap.nvim\")) end vim.api.nvim_set_hl(0, \"DapStoppedLine\", { default = true, link = \"Visual\" }) for name, sign in pairs(LazyVim.config.icons.dap) do sign = type(sign) == \"table\" and sign or { sign } vim.fn.sign_define( \"Dap\" .. name, { text = sign[1], texthl = sign[2] or \"DiagnosticInfo\", linehl = sign[3], numhl = sign[3] } ) end -- setup dap config by VsCode launch.json file local vscode = require(\"dap.ext.vscode\") local json = require(\"plenary.json\") vscode.json_decode = function(str) return vim.json.decode(json.json_strip_comments(str)) end end, }","s":"nvim-dap","u":"/extras/dap/core","h":"#nvim-dap","p":231},{"i":236,"t":"Options Full Spec opts = nil { \"rcarriga/nvim-dap-ui\", -- virtual text for the debugger { \"theHamsta/nvim-dap-virtual-text\", opts = {}, }, }","s":"nvim-dap-ui","u":"/extras/dap/core","h":"#nvim-dap-ui","p":231},{"i":238,"t":"virtual text for the debugger Options Full Spec opts = {} { \"theHamsta/nvim-dap-virtual-text\", opts = {}, }","s":"nvim-dap-virtual-text","u":"/extras/dap/core","h":"#nvim-dap-virtual-text","p":231},{"i":240,"t":"fancy UI for the debugger Options Full Spec opts = {} { \"rcarriga/nvim-dap-ui\", dependencies = { \"nvim-neotest/nvim-nio\" }, -- stylua: ignore keys = { { \"du\", function() require(\"dapui\").toggle({ }) end, desc = \"Dap UI\" }, { \"de\", function() require(\"dapui\").eval() end, desc = \"Eval\", mode = {\"n\", \"x\"} }, }, opts = {}, config = function(_, opts) local dap = require(\"dap\") local dapui = require(\"dapui\") dapui.setup(opts) dap.listeners.after.event_initialized[\"dapui_config\"] = function() dapui.open({}) end dap.listeners.before.event_terminated[\"dapui_config\"] = function() dapui.close({}) end dap.listeners.before.event_exited[\"dapui_config\"] = function() dapui.close({}) end end, }","s":"nvim-dap-ui","u":"/extras/dap/core","h":"#nvim-dap-ui-1","p":231},{"i":242,"t":"Options Full Spec opts = nil { \"nvim-neotest/nvim-nio\" }","s":"nvim-nio","u":"/extras/dap/core","h":"#nvim-nio","p":231},{"i":244,"t":"mason.nvim integration Options Full Spec opts = { -- Makes a best effort to setup the various debuggers with -- reasonable debug configurations automatic_installation = true, -- You can provide additional configuration to the handlers, -- see mason-nvim-dap README for more information handlers = {}, -- You'll need to check that you have the required things installed -- online, please don't ask me how to install them :) ensure_installed = { -- Update this to ensure that you have the debuggers for the langs you want }, } { \"jay-babu/mason-nvim-dap.nvim\", dependencies = \"mason.nvim\", cmd = { \"DapInstall\", \"DapUninstall\" }, opts = { -- Makes a best effort to setup the various debuggers with -- reasonable debug configurations automatic_installation = true, -- You can provide additional configuration to the handlers, -- see mason-nvim-dap README for more information handlers = {}, -- You'll need to check that you have the required things installed -- online, please don't ask me how to install them :) ensure_installed = { -- Update this to ensure that you have the debuggers for the langs you want }, }, -- mason-nvim-dap is loaded when nvim-dap loads config = function() end, }","s":"mason-nvim-dap.nvim","u":"/extras/dap/core","h":"#mason-nvim-dapnvim","p":231},{"i":246,"t":"info You can enable the extra with the :LazyExtras command. Plugins marked as optional will only be configured if they are installed. Below you can find a list of included plugins and their default settings. caution You don't need to copy the default settings to your config. They are only shown here for reference.","s":"Nvim-cmp","u":"/extras/coding/nvim-cmp","h":"","p":245},{"i":248,"t":"Setup nvim-cmp Options Full Spec opts = function() -- Register nvim-cmp lsp capabilities vim.lsp.config(\"*\", { capabilities = require(\"cmp_nvim_lsp\").default_capabilities() }) vim.api.nvim_set_hl(0, \"CmpGhostText\", { link = \"Comment\", default = true }) local cmp = require(\"cmp\") local defaults = require(\"cmp.config.default\")() local auto_select = true return { auto_brackets = {}, -- configure any filetype to auto add brackets completion = { completeopt = \"menu,menuone,noinsert\" .. (auto_select and \"\" or \",noselect\"), }, preselect = auto_select and cmp.PreselectMode.Item or cmp.PreselectMode.None, mapping = cmp.mapping.preset.insert({ [\"\"] = cmp.mapping.scroll_docs(-4), [\"\"] = cmp.mapping.scroll_docs(4), [\"\"] = cmp.mapping.select_next_item({ behavior = cmp.SelectBehavior.Insert }), [\"\"] = cmp.mapping.select_prev_item({ behavior = cmp.SelectBehavior.Insert }), [\"\"] = cmp.mapping.complete(), [\"\"] = LazyVim.cmp.confirm({ select = auto_select }), [\"\"] = LazyVim.cmp.confirm({ select = true }), [\"\"] = LazyVim.cmp.confirm({ behavior = cmp.ConfirmBehavior.Replace }), -- Accept currently selected item. Set `select` to `false` to only confirm explicitly selected items. [\"\"] = function(fallback) cmp.abort() fallback() end, [\"\"] = function(fallback) return LazyVim.cmp.map({ \"snippet_forward\", \"ai_nes\", \"ai_accept\" }, fallback)() end, }), sources = cmp.config.sources({ { name = \"lazydev\" }, { name = \"nvim_lsp\" }, { name = \"path\" }, }, { { name = \"buffer\" }, }), formatting = { format = function(entry, item) local icons = LazyVim.config.icons.kinds if icons[item.kind] then item.kind = icons[item.kind] .. item.kind end local widths = { abbr = vim.g.cmp_widths and vim.g.cmp_widths.abbr or 40, menu = vim.g.cmp_widths and vim.g.cmp_widths.menu or 30, } for key, width in pairs(widths) do if item[key] and vim.fn.strdisplaywidth(item[key]) > width then item[key] = vim.fn.strcharpart(item[key], 0, width - 1) .. \"…\" end end return item end, }, experimental = { -- only show ghost text when we show ai completions ghost_text = vim.g.ai_cmp and { hl_group = \"CmpGhostText\", } or false, }, sorting = defaults.sorting, } end { \"hrsh7th/nvim-cmp\", version = false, -- last release is way too old event = \"InsertEnter\", dependencies = { \"hrsh7th/cmp-nvim-lsp\", \"hrsh7th/cmp-buffer\", \"hrsh7th/cmp-path\", }, -- Not all LSP servers add brackets when completing a function. -- To better deal with this, LazyVim adds a custom option to cmp, -- that you can configure. For example: -- -- ```lua -- opts = { -- auto_brackets = { \"python\" } -- } -- ``` opts = function() -- Register nvim-cmp lsp capabilities vim.lsp.config(\"*\", { capabilities = require(\"cmp_nvim_lsp\").default_capabilities() }) vim.api.nvim_set_hl(0, \"CmpGhostText\", { link = \"Comment\", default = true }) local cmp = require(\"cmp\") local defaults = require(\"cmp.config.default\")() local auto_select = true return { auto_brackets = {}, -- configure any filetype to auto add brackets completion = { completeopt = \"menu,menuone,noinsert\" .. (auto_select and \"\" or \",noselect\"), }, preselect = auto_select and cmp.PreselectMode.Item or cmp.PreselectMode.None, mapping = cmp.mapping.preset.insert({ [\"\"] = cmp.mapping.scroll_docs(-4), [\"\"] = cmp.mapping.scroll_docs(4), [\"\"] = cmp.mapping.select_next_item({ behavior = cmp.SelectBehavior.Insert }), [\"\"] = cmp.mapping.select_prev_item({ behavior = cmp.SelectBehavior.Insert }), [\"\"] = cmp.mapping.complete(), [\"\"] = LazyVim.cmp.confirm({ select = auto_select }), [\"\"] = LazyVim.cmp.confirm({ select = true }), [\"\"] = LazyVim.cmp.confirm({ behavior = cmp.ConfirmBehavior.Replace }), -- Accept currently selected item. Set `select` to `false` to only confirm explicitly selected items. [\"\"] = function(fallback) cmp.abort() fallback() end, [\"\"] = function(fallback) return LazyVim.cmp.map({ \"snippet_forward\", \"ai_nes\", \"ai_accept\" }, fallback)() end, }), sources = cmp.config.sources({ { name = \"lazydev\" }, { name = \"nvim_lsp\" }, { name = \"path\" }, }, { { name = \"buffer\" }, }), formatting = { format = function(entry, item) local icons = LazyVim.config.icons.kinds if icons[item.kind] then item.kind = icons[item.kind] .. item.kind end local widths = { abbr = vim.g.cmp_widths and vim.g.cmp_widths.abbr or 40, menu = vim.g.cmp_widths and vim.g.cmp_widths.menu or 30, } for key, width in pairs(widths) do if item[key] and vim.fn.strdisplaywidth(item[key]) > width then item[key] = vim.fn.strcharpart(item[key], 0, width - 1) .. \"…\" end end return item end, }, experimental = { -- only show ghost text when we show ai completions ghost_text = vim.g.ai_cmp and { hl_group = \"CmpGhostText\", } or false, }, sorting = defaults.sorting, } end, main = \"lazyvim.util.cmp\", }","s":"nvim-cmp","u":"/extras/coding/nvim-cmp","h":"#nvim-cmp-1","p":245},{"i":250,"t":"Options Full Spec opts = nil { \"hrsh7th/cmp-nvim-lsp\", \"hrsh7th/cmp-buffer\", \"hrsh7th/cmp-path\", }","s":"cmp-nvim-lsp","u":"/extras/coding/nvim-cmp","h":"#cmp-nvim-lsp","p":245},{"i":252,"t":"Options Full Spec opts = nil \"hrsh7th/cmp-buffer\"","s":"cmp-buffer","u":"/extras/coding/nvim-cmp","h":"#cmp-buffer","p":245},{"i":254,"t":"Options Full Spec opts = nil \"hrsh7th/cmp-path\"","s":"cmp-path","u":"/extras/coding/nvim-cmp","h":"#cmp-path","p":245},{"i":256,"t":"snippets Options Full Spec opts = function(_, opts) opts.snippet = { expand = function(item) return LazyVim.cmp.expand(item.body) end, } if LazyVim.has(\"nvim-snippets\") then table.insert(opts.sources, { name = \"snippets\" }) end end { \"hrsh7th/nvim-cmp\", dependencies = { { \"garymjr/nvim-snippets\", opts = { friendly_snippets = true, }, dependencies = { \"rafamadriz/friendly-snippets\" }, }, }, opts = function(_, opts) opts.snippet = { expand = function(item) return LazyVim.cmp.expand(item.body) end, } if LazyVim.has(\"nvim-snippets\") then table.insert(opts.sources, { name = \"snippets\" }) end end, }","s":"nvim-cmp","u":"/extras/coding/nvim-cmp","h":"#nvim-cmp-2","p":245},{"i":258,"t":"Options Full Spec opts = { friendly_snippets = true, } { \"garymjr/nvim-snippets\", opts = { friendly_snippets = true, }, dependencies = { \"rafamadriz/friendly-snippets\" }, }","s":"nvim-snippets","u":"/extras/coding/nvim-cmp","h":"#nvim-snippets","p":245},{"i":260,"t":"Options Full Spec opts = nil { \"rafamadriz/friendly-snippets\" }","s":"friendly-snippets","u":"/extras/coding/nvim-cmp","h":"#friendly-snippets","p":245},{"i":262,"t":"info You can enable the extra with the :LazyExtras command. Plugins marked as optional will only be configured if they are installed. Below you can find a list of included plugins and their default settings. caution You don't need to copy the default settings to your config. They are only shown here for reference.","s":"Aerial","u":"/extras/editor/aerial","h":"","p":261},{"i":264,"t":"Options Full Spec opts = function() local icons = vim.deepcopy(LazyVim.config.icons.kinds) -- HACK: fix lua's weird choice for `Package` for control -- structures like if/else/for/etc. icons.lua = { Package = icons.Control } ---@type table|false local filter_kind = false if LazyVim.config.kind_filter then filter_kind = assert(vim.deepcopy(LazyVim.config.kind_filter)) filter_kind._ = filter_kind.default filter_kind.default = nil end local opts = { attach_mode = \"global\", backends = { \"lsp\", \"treesitter\", \"markdown\", \"man\" }, show_guides = true, layout = { resize_to_content = false, win_opts = { winhl = \"Normal:NormalFloat,FloatBorder:NormalFloat,SignColumn:SignColumnSB\", signcolumn = \"yes\", statuscolumn = \" \", }, }, icons = icons, filter_kind = filter_kind, -- stylua: ignore guides = { mid_item = \"├╴\", last_item = \"└╴\", nested_top = \"│ \", whitespace = \" \", }, } return opts end { \"stevearc/aerial.nvim\", event = \"LazyFile\", opts = function() local icons = vim.deepcopy(LazyVim.config.icons.kinds) -- HACK: fix lua's weird choice for `Package` for control -- structures like if/else/for/etc. icons.lua = { Package = icons.Control } ---@type table|false local filter_kind = false if LazyVim.config.kind_filter then filter_kind = assert(vim.deepcopy(LazyVim.config.kind_filter)) filter_kind._ = filter_kind.default filter_kind.default = nil end local opts = { attach_mode = \"global\", backends = { \"lsp\", \"treesitter\", \"markdown\", \"man\" }, show_guides = true, layout = { resize_to_content = false, win_opts = { winhl = \"Normal:NormalFloat,FloatBorder:NormalFloat,SignColumn:SignColumnSB\", signcolumn = \"yes\", statuscolumn = \" \", }, }, icons = icons, filter_kind = filter_kind, -- stylua: ignore guides = { mid_item = \"├╴\", last_item = \"└╴\", nested_top = \"│ \", whitespace = \" \", }, } return opts end, keys = { { \"cs\", \"AerialToggle\", desc = \"Aerial (Symbols)\" }, }, }","s":"aerial.nvim","u":"/extras/editor/aerial","h":"#aerialnvim","p":261},{"i":266,"t":"Options Full Spec opts = nil { \"folke/trouble.nvim\", optional = true, keys = { { \"cs\", false }, }, }","s":"trouble.nvim (optional)","u":"/extras/editor/aerial","h":"#troublenvim-optional","p":261},{"i":268,"t":"Telescope integration Options Full Spec opts = function() LazyVim.on_load(\"telescope.nvim\", function() require(\"telescope\").load_extension(\"aerial\") end) end { \"nvim-telescope/telescope.nvim\", optional = true, opts = function() LazyVim.on_load(\"telescope.nvim\", function() require(\"telescope\").load_extension(\"aerial\") end) end, keys = { { \"ss\", \"Telescope aerial\", desc = \"Goto Symbol (Aerial)\", }, }, }","s":"telescope.nvim (optional)","u":"/extras/editor/aerial","h":"#telescopenvim-optional","p":261},{"i":270,"t":"edgy integration Options Full Spec opts = function(_, opts) local edgy_idx = LazyVim.plugin.extra_idx(\"ui.edgy\") local aerial_idx = LazyVim.plugin.extra_idx(\"editor.aerial\") if edgy_idx and edgy_idx > aerial_idx then LazyVim.warn(\"The `edgy.nvim` extra must be **imported** before the `aerial.nvim` extra to work properly.\", { title = \"LazyVim\", }) end opts.right = opts.right or {} table.insert(opts.right, { title = \"Aerial\", ft = \"aerial\", pinned = true, open = \"AerialOpen\", }) end { \"folke/edgy.nvim\", optional = true, opts = function(_, opts) local edgy_idx = LazyVim.plugin.extra_idx(\"ui.edgy\") local aerial_idx = LazyVim.plugin.extra_idx(\"editor.aerial\") if edgy_idx and edgy_idx > aerial_idx then LazyVim.warn(\"The `edgy.nvim` extra must be **imported** before the `aerial.nvim` extra to work properly.\", { title = \"LazyVim\", }) end opts.right = opts.right or {} table.insert(opts.right, { title = \"Aerial\", ft = \"aerial\", pinned = true, open = \"AerialOpen\", }) end, }","s":"edgy.nvim (optional)","u":"/extras/editor/aerial","h":"#edgynvim-optional","p":261},{"i":272,"t":"lualine integration Options Full Spec opts = function(_, opts) if not vim.g.trouble_lualine then table.insert(opts.sections.lualine_c, { \"aerial\", sep = \" \", -- separator between symbols sep_icon = \"\", -- separator between icon and symbol -- The number of symbols to render top-down. In order to render only 'N' last -- symbols, negative numbers may be supplied. For instance, 'depth = -1' can -- be used in order to render only current symbol. depth = 5, -- When 'dense' mode is on, icons are not rendered near their symbols. Only -- a single icon that represents the kind of current symbol is rendered at -- the beginning of status line. dense = false, -- The separator to be used to separate symbols in dense mode. dense_sep = \".\", -- Color the symbol icons. colored = true, }) end end { \"nvim-lualine/lualine.nvim\", optional = true, opts = function(_, opts) if not vim.g.trouble_lualine then table.insert(opts.sections.lualine_c, { \"aerial\", sep = \" \", -- separator between symbols sep_icon = \"\", -- separator between icon and symbol -- The number of symbols to render top-down. In order to render only 'N' last -- symbols, negative numbers may be supplied. For instance, 'depth = -1' can -- be used in order to render only current symbol. depth = 5, -- When 'dense' mode is on, icons are not rendered near their symbols. Only -- a single icon that represents the kind of current symbol is rendered at -- the beginning of status line. dense = false, -- The separator to be used to separate symbols in dense mode. dense_sep = \".\", -- Color the symbol icons. colored = true, }) end end, }","s":"lualine.nvim (optional)","u":"/extras/editor/aerial","h":"#lualinenvim-optional","p":261},{"i":274,"t":"info You can enable the extra with the :LazyExtras command. Plugins marked as optional will only be configured if they are installed. Below you can find a list of included plugins and their default settings. caution You don't need to copy the default settings to your config. They are only shown here for reference.","s":"Harpoon2","u":"/extras/editor/harpoon2","h":"","p":273},{"i":276,"t":"Options Full Spec opts = { menu = { width = vim.api.nvim_win_get_width(0) - 4, }, settings = { save_on_toggle = true, }, } { \"ThePrimeagen/harpoon\", branch = \"harpoon2\", opts = { menu = { width = vim.api.nvim_win_get_width(0) - 4, }, settings = { save_on_toggle = true, }, }, keys = function() local keys = { { \"H\", function() require(\"harpoon\"):list():add() end, desc = \"Harpoon File\", }, { \"h\", function() local harpoon = require(\"harpoon\") harpoon.ui:toggle_quick_menu(harpoon:list()) end, desc = \"Harpoon Quick Menu\", }, } for i = 1, 9 do table.insert(keys, { \"\" .. i, function() require(\"harpoon\"):list():select(i) end, desc = \"Harpoon to File \" .. i, }) end return keys end, }","s":"harpoon","u":"/extras/editor/harpoon2","h":"#harpoon","p":273},{"i":278,"t":"info You can enable the extra with the :LazyExtras command. Plugins marked as optional will only be configured if they are installed. Below you can find a list of included plugins and their default settings. caution You don't need to copy the default settings to your config. They are only shown here for reference.","s":"Illuminate","u":"/extras/editor/illuminate","h":"","p":277},{"i":280,"t":"disable snacks words Options Full Spec opts = { words = { enabled = false } } { \"snacks.nvim\", opts = { words = { enabled = false } } }","s":"snacks.nvim","u":"/extras/editor/illuminate","h":"#snacksnvim","p":277},{"i":282,"t":"Options Full Spec opts = { delay = 200, large_file_cutoff = 2000, large_file_overrides = { providers = { \"lsp\" }, }, } { \"RRethy/vim-illuminate\", event = \"LazyFile\", opts = { delay = 200, large_file_cutoff = 2000, large_file_overrides = { providers = { \"lsp\" }, }, }, config = function(_, opts) require(\"illuminate\").configure(opts) Snacks.toggle({ name = \"Illuminate\", get = function() return not require(\"illuminate.engine\").is_paused() end, set = function(enabled) local m = require(\"illuminate\") if enabled then m.resume() else m.pause() end end, }):map(\"ux\") local function map(key, dir, buffer) vim.keymap.set(\"n\", key, function() require(\"illuminate\")[\"goto_\" .. dir .. \"_reference\"](false) end, { desc = dir:sub(1, 1):upper() .. dir:sub(2) .. \" Reference\", buffer = buffer }) end map(\"]]\", \"next\") map(\"[[\", \"prev\") -- also set it after loading ftplugins, since a lot overwrite [[ and ]] vim.api.nvim_create_autocmd(\"FileType\", { callback = function() local buffer = vim.api.nvim_get_current_buf() map(\"]]\", \"next\", buffer) map(\"[[\", \"prev\", buffer) end, }) end, keys = { { \"]]\", desc = \"Next Reference\" }, { \"[[\", desc = \"Prev Reference\" }, }, }","s":"vim-illuminate","u":"/extras/editor/illuminate","h":"#vim-illuminate","p":277},{"i":284,"t":"info You can enable the extra with the :LazyExtras command. Plugins marked as optional will only be configured if they are installed. Below you can find a list of included plugins and their default settings. caution You don't need to copy the default settings to your config. They are only shown here for reference.","s":"Leap","u":"/extras/editor/leap","h":"","p":283},{"i":286,"t":"easily jump to any location and enhanced f/t motions for Leap Options Full Spec opts = { labeled_modes = \"nx\" } { \"ggandor/flit.nvim\", enabled = true, keys = function() ---@type LazyKeysSpec[] local ret = {} for _, key in ipairs({ \"f\", \"F\", \"t\", \"T\" }) do ret[#ret + 1] = { key, mode = { \"n\", \"x\", \"o\" } } end return ret end, opts = { labeled_modes = \"nx\" }, }","s":"flit.nvim","u":"/extras/editor/leap","h":"#flitnvim","p":283},{"i":288,"t":"Options Full Spec opts = {} { \"ggandor/leap.nvim\", enabled = true, keys = { { \"s\", mode = { \"n\", \"x\", \"o\" }, desc = \"Leap Forward to\" }, { \"S\", mode = { \"n\", \"x\", \"o\" }, desc = \"Leap Backward to\" }, { \"gs\", mode = { \"n\", \"x\", \"o\" }, desc = \"Leap from Windows\" }, }, config = function(_, opts) local leap = require(\"leap\") for k, v in pairs(opts) do leap.opts[k] = v end leap.add_default_mappings(true) vim.keymap.del({ \"x\", \"o\" }, \"x\") vim.keymap.del({ \"x\", \"o\" }, \"X\") end, }","s":"leap.nvim","u":"/extras/editor/leap","h":"#leapnvim","p":283},{"i":290,"t":"makes some plugins dot-repeatable like leap Options Full Spec opts = nil { \"tpope/vim-repeat\", event = \"VeryLazy\" }","s":"vim-repeat","u":"/extras/editor/leap","h":"#vim-repeat","p":283},{"i":292,"t":"rename surround mappings from gs to gz to prevent conflict with leap Options Full Spec opts = { mappings = { add = \"gza\", -- Add surrounding in Normal and Visual modes delete = \"gzd\", -- Delete surrounding find = \"gzf\", -- Find surrounding (to the right) find_left = \"gzF\", -- Find surrounding (to the left) highlight = \"gzh\", -- Highlight surrounding replace = \"gzr\", -- Replace surrounding update_n_lines = \"gzn\", -- Update `n_lines` }, } { \"nvim-mini/mini.surround\", optional = true, opts = { mappings = { add = \"gza\", -- Add surrounding in Normal and Visual modes delete = \"gzd\", -- Delete surrounding find = \"gzf\", -- Find surrounding (to the right) find_left = \"gzF\", -- Find surrounding (to the left) highlight = \"gzh\", -- Highlight surrounding replace = \"gzr\", -- Replace surrounding update_n_lines = \"gzn\", -- Update `n_lines` }, }, keys = { { \"gz\", \"\", desc = \"+surround\" }, }, }","s":"mini.surround (optional)","u":"/extras/editor/leap","h":"#minisurround-optional","p":283},{"i":294,"t":"info You can enable the extra with the :LazyExtras command. Plugins marked as optional will only be configured if they are installed. Below you can find a list of included plugins and their default settings. caution You don't need to copy the default settings to your config. They are only shown here for reference.","s":"Dial","u":"/extras/editor/dial","h":"","p":293},{"i":296,"t":"Options Full Spec opts = function() local augend = require(\"dial.augend\") local logical_alias = augend.constant.new({ elements = { \"&&\", \"||\" }, word = false, cyclic = true, }) local ordinal_numbers = augend.constant.new({ -- elements through which we cycle. When we increment, we go down -- On decrement we go up elements = { \"first\", \"second\", \"third\", \"fourth\", \"fifth\", \"sixth\", \"seventh\", \"eighth\", \"ninth\", \"tenth\", }, -- if true, it only matches strings with word boundary. firstDate wouldn't work for example word = false, -- do we cycle back and forth (tenth to first on increment, first to tenth on decrement). -- Otherwise nothing will happen when there are no further values cyclic = true, }) local weekdays = augend.constant.new({ elements = { \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\", \"Sunday\", }, word = true, cyclic = true, }) local months = augend.constant.new({ elements = { \"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\", }, word = true, cyclic = true, }) local capitalized_boolean = augend.constant.new({ elements = { \"True\", \"False\", }, word = true, cyclic = true, }) return { dials_by_ft = { css = \"css\", vue = \"vue\", javascript = \"typescript\", typescript = \"typescript\", typescriptreact = \"typescript\", javascriptreact = \"typescript\", json = \"json\", lua = \"lua\", markdown = \"markdown\", sass = \"css\", scss = \"css\", python = \"python\", }, groups = { default = { augend.integer.alias.decimal, -- nonnegative decimal number (0, 1, 2, 3, ...) augend.integer.alias.decimal_int, -- nonnegative and negative decimal number augend.integer.alias.hex, -- nonnegative hex number (0x01, 0x1a1f, etc.) augend.date.alias[\"%Y/%m/%d\"], -- date (2022/02/19, etc.) ordinal_numbers, weekdays, months, capitalized_boolean, augend.constant.alias.bool, -- boolean value (true <-> false) logical_alias, }, vue = { augend.constant.new({ elements = { \"let\", \"const\" } }), augend.hexcolor.new({ case = \"lower\" }), augend.hexcolor.new({ case = \"upper\" }), }, typescript = { augend.constant.new({ elements = { \"let\", \"const\" } }), }, css = { augend.hexcolor.new({ case = \"lower\", }), augend.hexcolor.new({ case = \"upper\", }), }, markdown = { augend.constant.new({ elements = { \"[ ]\", \"[x]\" }, word = false, cyclic = true, }), augend.misc.alias.markdown_header, }, json = { augend.semver.alias.semver, -- versioning (v1.1.2) }, lua = { augend.constant.new({ elements = { \"and\", \"or\" }, word = true, -- if false, \"sand\" is incremented into \"sor\", \"doctor\" into \"doctand\", etc. cyclic = true, -- \"or\" is incremented into \"and\". }), }, python = { augend.constant.new({ elements = { \"and\", \"or\" }, }), }, }, } end { \"monaqa/dial.nvim\", recommended = true, desc = \"Increment and decrement numbers, dates, and more\", -- stylua: ignore keys = { { \"\", function() return M.dial(true) end, expr = true, desc = \"Increment\", mode = {\"n\", \"v\"} }, { \"\", function() return M.dial(false) end, expr = true, desc = \"Decrement\", mode = {\"n\", \"v\"} }, { \"g\", function() return M.dial(true, true) end, expr = true, desc = \"Increment\", mode = {\"n\", \"x\"} }, { \"g\", function() return M.dial(false, true) end, expr = true, desc = \"Decrement\", mode = {\"n\", \"x\"} }, }, opts = function() local augend = require(\"dial.augend\") local logical_alias = augend.constant.new({ elements = { \"&&\", \"||\" }, word = false, cyclic = true, }) local ordinal_numbers = augend.constant.new({ -- elements through which we cycle. When we increment, we go down -- On decrement we go up elements = { \"first\", \"second\", \"third\", \"fourth\", \"fifth\", \"sixth\", \"seventh\", \"eighth\", \"ninth\", \"tenth\", }, -- if true, it only matches strings with word boundary. firstDate wouldn't work for example word = false, -- do we cycle back and forth (tenth to first on increment, first to tenth on decrement). -- Otherwise nothing will happen when there are no further values cyclic = true, }) local weekdays = augend.constant.new({ elements = { \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\", \"Sunday\", }, word = true, cyclic = true, }) local months = augend.constant.new({ elements = { \"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\", }, word = true, cyclic = true, }) local capitalized_boolean = augend.constant.new({ elements = { \"True\", \"False\", }, word = true, cyclic = true, }) return { dials_by_ft = { css = \"css\", vue = \"vue\", javascript = \"typescript\", typescript = \"typescript\", typescriptreact = \"typescript\", javascriptreact = \"typescript\", json = \"json\", lua = \"lua\", markdown = \"markdown\", sass = \"css\", scss = \"css\", python = \"python\", }, groups = { default = { augend.integer.alias.decimal, -- nonnegative decimal number (0, 1, 2, 3, ...) augend.integer.alias.decimal_int, -- nonnegative and negative decimal number augend.integer.alias.hex, -- nonnegative hex number (0x01, 0x1a1f, etc.) augend.date.alias[\"%Y/%m/%d\"], -- date (2022/02/19, etc.) ordinal_numbers, weekdays, months, capitalized_boolean, augend.constant.alias.bool, -- boolean value (true <-> false) logical_alias, }, vue = { augend.constant.new({ elements = { \"let\", \"const\" } }), augend.hexcolor.new({ case = \"lower\" }), augend.hexcolor.new({ case = \"upper\" }), }, typescript = { augend.constant.new({ elements = { \"let\", \"const\" } }), }, css = { augend.hexcolor.new({ case = \"lower\", }), augend.hexcolor.new({ case = \"upper\", }), }, markdown = { augend.constant.new({ elements = { \"[ ]\", \"[x]\" }, word = false, cyclic = true, }), augend.misc.alias.markdown_header, }, json = { augend.semver.alias.semver, -- versioning (v1.1.2) }, lua = { augend.constant.new({ elements = { \"and\", \"or\" }, word = true, -- if false, \"sand\" is incremented into \"sor\", \"doctor\" into \"doctand\", etc. cyclic = true, -- \"or\" is incremented into \"and\". }), }, python = { augend.constant.new({ elements = { \"and\", \"or\" }, }), }, }, } end, config = function(_, opts) -- copy defaults to each group for name, group in pairs(opts.groups) do if name ~= \"default\" then vim.list_extend(group, opts.groups.default) end end require(\"dial.config\").augends:register_group(opts.groups) vim.g.dials_by_ft = opts.dials_by_ft end, }","s":"dial.nvim","u":"/extras/editor/dial","h":"#dialnvim","p":293},{"i":298,"t":"info You can enable the extra with the :LazyExtras command. Plugins marked as optional will only be configured if they are installed. Below you can find a list of included plugins and their default settings. caution You don't need to copy the default settings to your config. They are only shown here for reference.","s":"Inc-rename","u":"/extras/editor/inc-rename","h":"","p":297},{"i":300,"t":"Options Full Spec opts = {} { \"smjonas/inc-rename.nvim\", cmd = \"IncRename\", opts = {}, }","s":"inc-rename.nvim","u":"/extras/editor/inc-rename","h":"#inc-renamenvim","p":297},{"i":302,"t":"LSP Keymaps Options Full Spec opts = function() local keys = require(\"lazyvim.plugins.lsp.keymaps\").get() keys[#keys + 1] = { \"cr\", function() local inc_rename = require(\"inc_rename\") return \":\" .. inc_rename.config.cmd_name .. \" \" .. vim.fn.expand(\"\") end, expr = true, desc = \"Rename (inc-rename.nvim)\", has = \"rename\", } end { \"neovim/nvim-lspconfig\", opts = function() local keys = require(\"lazyvim.plugins.lsp.keymaps\").get() keys[#keys + 1] = { \"cr\", function() local inc_rename = require(\"inc_rename\") return \":\" .. inc_rename.config.cmd_name .. \" \" .. vim.fn.expand(\"\") end, expr = true, desc = \"Rename (inc-rename.nvim)\", has = \"rename\", } end, }","s":"nvim-lspconfig","u":"/extras/editor/inc-rename","h":"#nvim-lspconfig","p":297},{"i":304,"t":"Noice integration Options Full Spec opts = { presets = { inc_rename = true }, } { \"folke/noice.nvim\", optional = true, opts = { presets = { inc_rename = true }, }, }","s":"noice.nvim (optional)","u":"/extras/editor/inc-rename","h":"#noicenvim-optional","p":297},{"i":306,"t":"info You can enable the extra with the :LazyExtras command. Plugins marked as optional will only be configured if they are installed. Below you can find a list of included plugins and their default settings. caution You don't need to copy the default settings to your config. They are only shown here for reference.","s":"Mini-move","u":"/extras/editor/mini-move","h":"","p":305},{"i":308,"t":"Options Full Spec opts = {} { \"nvim-mini/mini.move\", event = \"VeryLazy\", opts = {}, }","s":"mini.move","u":"/extras/editor/mini-move","h":"#minimove","p":305},{"i":310,"t":"info You can enable the extra with the :LazyExtras command. Plugins marked as optional will only be configured if they are installed. Below you can find a list of included plugins and their default settings. caution You don't need to copy the default settings to your config. They are only shown here for reference.","s":"Mini Files","u":"/extras/editor/mini-files","h":"","p":309},{"i":312,"t":"Options Full Spec opts = { windows = { preview = true, width_focus = 30, width_preview = 30, }, options = { -- Whether to use for editing directories -- Disabled by default in LazyVim because neo-tree is used for that use_as_default_explorer = false, }, } { \"nvim-mini/mini.files\", opts = { windows = { preview = true, width_focus = 30, width_preview = 30, }, options = { -- Whether to use for editing directories -- Disabled by default in LazyVim because neo-tree is used for that use_as_default_explorer = false, }, }, keys = { { \"fm\", function() require(\"mini.files\").open(vim.api.nvim_buf_get_name(0), true) end, desc = \"Open mini.files (Directory of Current File)\", }, { \"fM\", function() require(\"mini.files\").open(vim.uv.cwd(), true) end, desc = \"Open mini.files (cwd)\", }, }, config = function(_, opts) require(\"mini.files\").setup(opts) local show_dotfiles = true local filter_show = function(fs_entry) return true end local filter_hide = function(fs_entry) return not vim.startswith(fs_entry.name, \".\") end local toggle_dotfiles = function() show_dotfiles = not show_dotfiles local new_filter = show_dotfiles and filter_show or filter_hide require(\"mini.files\").refresh({ content = { filter = new_filter } }) end local map_split = function(buf_id, lhs, direction, close_on_file) local rhs = function() local new_target_window local cur_target_window = require(\"mini.files\").get_explorer_state().target_window if cur_target_window ~= nil then vim.api.nvim_win_call(cur_target_window, function() vim.cmd(\"belowright \" .. direction .. \" split\") new_target_window = vim.api.nvim_get_current_win() end) require(\"mini.files\").set_target_window(new_target_window) require(\"mini.files\").go_in({ close_on_file = close_on_file }) end end local desc = \"Open in \" .. direction .. \" split\" if close_on_file then desc = desc .. \" and close\" end vim.keymap.set(\"n\", lhs, rhs, { buffer = buf_id, desc = desc }) end local files_set_cwd = function() local cur_entry_path = MiniFiles.get_fs_entry().path local cur_directory = vim.fs.dirname(cur_entry_path) if cur_directory ~= nil then vim.fn.chdir(cur_directory) end end vim.api.nvim_create_autocmd(\"User\", { pattern = \"MiniFilesBufferCreate\", callback = function(args) local buf_id = args.data.buf_id vim.keymap.set( \"n\", opts.mappings and opts.mappings.toggle_hidden or \"g.\", toggle_dotfiles, { buffer = buf_id, desc = \"Toggle hidden files\" } ) vim.keymap.set( \"n\", opts.mappings and opts.mappings.change_cwd or \"gc\", files_set_cwd, { buffer = args.data.buf_id, desc = \"Set cwd\" } ) map_split(buf_id, opts.mappings and opts.mappings.go_in_horizontal or \"s\", \"horizontal\", false) map_split(buf_id, opts.mappings and opts.mappings.go_in_vertical or \"v\", \"vertical\", false) map_split(buf_id, opts.mappings and opts.mappings.go_in_horizontal_plus or \"S\", \"horizontal\", true) map_split(buf_id, opts.mappings and opts.mappings.go_in_vertical_plus or \"V\", \"vertical\", true) end, }) vim.api.nvim_create_autocmd(\"User\", { pattern = \"MiniFilesActionRename\", callback = function(event) Snacks.rename.on_rename_file(event.data.from, event.data.to) end, }) end, }","s":"mini.files","u":"/extras/editor/mini-files","h":"#minifiles","p":309},{"i":314,"t":"info You can enable the extra with the :LazyExtras command. Plugins marked as optional will only be configured if they are installed. Below you can find a list of included plugins and their default settings. caution You don't need to copy the default settings to your config. They are only shown here for reference.","s":"Mini-diff","u":"/extras/editor/mini-diff","h":"","p":313},{"i":316,"t":"setup mini.diff Options Full Spec opts = { view = { style = \"sign\", signs = { add = \"▎\", change = \"▎\", delete = \"\", }, }, } { \"nvim-mini/mini.diff\", event = \"VeryLazy\", keys = { { \"go\", function() require(\"mini.diff\").toggle_overlay(0) end, desc = \"Toggle mini.diff overlay\", }, }, opts = { view = { style = \"sign\", signs = { add = \"▎\", change = \"▎\", delete = \"\", }, }, }, }","s":"mini.diff","u":"/extras/editor/mini-diff","h":"#minidiff","p":313},{"i":318,"t":"Options Full Spec opts = function() Snacks.toggle({ name = \"Mini Diff Signs\", get = function() return vim.g.minidiff_disable ~= true end, set = function(state) vim.g.minidiff_disable = not state if state then require(\"mini.diff\").enable(0) else require(\"mini.diff\").disable(0) end -- HACK: redraw to update the signs vim.defer_fn(function() vim.cmd([[redraw!]]) end, 200) end, }):map(\"uG\") end { \"mini.diff\", opts = function() Snacks.toggle({ name = \"Mini Diff Signs\", get = function() return vim.g.minidiff_disable ~= true end, set = function(state) vim.g.minidiff_disable = not state if state then require(\"mini.diff\").enable(0) else require(\"mini.diff\").disable(0) end -- HACK: redraw to update the signs vim.defer_fn(function() vim.cmd([[redraw!]]) end, 200) end, }):map(\"uG\") end, }","s":"mini.diff","u":"/extras/editor/mini-diff","h":"#minidiff-1","p":313},{"i":320,"t":"lualine integration Options Full Spec opts = function(_, opts) local x = opts.sections.lualine_x for _, comp in ipairs(x) do if comp[1] == \"diff\" then comp.source = function() local summary = vim.b.minidiff_summary return summary and { added = summary.add, modified = summary.change, removed = summary.delete, } end break end end end { \"nvim-lualine/lualine.nvim\", opts = function(_, opts) local x = opts.sections.lualine_x for _, comp in ipairs(x) do if comp[1] == \"diff\" then comp.source = function() local summary = vim.b.minidiff_summary return summary and { added = summary.add, modified = summary.change, removed = summary.delete, } end break end end end, }","s":"lualine.nvim","u":"/extras/editor/mini-diff","h":"#lualinenvim","p":313},{"i":322,"t":"info You can enable the extra with the :LazyExtras command. Plugins marked as optional will only be configured if they are installed. Below you can find a list of included plugins and their default settings. caution You don't need to copy the default settings to your config. They are only shown here for reference.","s":"Navic","u":"/extras/editor/navic","h":"","p":321},{"i":324,"t":"lsp symbol navigation for lualine. This shows where in the code structure you are - within functions, classes, etc - in the statusline. Options Full Spec opts = function() return { separator = \" \", highlight = true, depth_limit = 5, icons = LazyVim.config.icons.kinds, lazy_update_context = true, } end { \"SmiteshP/nvim-navic\", lazy = true, init = function() vim.g.navic_silence = true LazyVim.lsp.on_attach(function(client, buffer) if client:supports_method(\"textDocument/documentSymbol\") then require(\"nvim-navic\").attach(client, buffer) end end) end, opts = function() return { separator = \" \", highlight = true, depth_limit = 5, icons = LazyVim.config.icons.kinds, lazy_update_context = true, } end, }","s":"nvim-navic","u":"/extras/editor/navic","h":"#nvim-navic","p":321},{"i":326,"t":"lualine integration Options Full Spec opts = function(_, opts) if not vim.g.trouble_lualine then table.insert(opts.sections.lualine_c, { \"navic\", color_correction = \"dynamic\" }) end end { \"nvim-lualine/lualine.nvim\", optional = true, opts = function(_, opts) if not vim.g.trouble_lualine then table.insert(opts.sections.lualine_c, { \"navic\", color_correction = \"dynamic\" }) end end, }","s":"lualine.nvim (optional)","u":"/extras/editor/navic","h":"#lualinenvim-optional","p":321},{"i":328,"t":"info You can enable the extra with the :LazyExtras command. Plugins marked as optional will only be configured if they are installed. Below you can find a list of included plugins and their default settings. caution You don't need to copy the default settings to your config. They are only shown here for reference.","s":"Outline","u":"/extras/editor/outline","h":"","p":327},{"i":330,"t":"Options Full Spec opts = function() local defaults = require(\"outline.config\").defaults local opts = { symbols = { icons = {}, filter = vim.deepcopy(LazyVim.config.kind_filter), }, keymaps = { up_and_jump = \"\", down_and_jump = \"\", }, } for kind, symbol in pairs(defaults.symbols.icons) do opts.symbols.icons[kind] = { icon = LazyVim.config.icons.kinds[kind] or symbol.icon, hl = symbol.hl, } end return opts end { \"hedyhli/outline.nvim\", keys = { { \"cs\", \"Outline\", desc = \"Toggle Outline\" } }, cmd = \"Outline\", opts = function() local defaults = require(\"outline.config\").defaults local opts = { symbols = { icons = {}, filter = vim.deepcopy(LazyVim.config.kind_filter), }, keymaps = { up_and_jump = \"\", down_and_jump = \"\", }, } for kind, symbol in pairs(defaults.symbols.icons) do opts.symbols.icons[kind] = { icon = LazyVim.config.icons.kinds[kind] or symbol.icon, hl = symbol.hl, } end return opts end, }","s":"outline.nvim","u":"/extras/editor/outline","h":"#outlinenvim","p":327},{"i":332,"t":"Disable cs keymap so it doesn't conflict with outline.nvim Options Full Spec opts = nil { \"folke/trouble.nvim\", optional = true, keys = { { \"cs\", false }, }, }","s":"trouble.nvim (optional)","u":"/extras/editor/outline","h":"#troublenvim-optional","p":327},{"i":334,"t":"edgy integration Options Full Spec opts = function(_, opts) local edgy_idx = LazyVim.plugin.extra_idx(\"ui.edgy\") local symbols_idx = LazyVim.plugin.extra_idx(\"editor.outline\") if edgy_idx and edgy_idx > symbols_idx then LazyVim.warn( \"The `edgy.nvim` extra must be **imported** before the `outline.nvim` extra to work properly.\", { title = \"LazyVim\" } ) end opts.right = opts.right or {} table.insert(opts.right, { title = \"Outline\", ft = \"Outline\", pinned = true, open = \"Outline\", }) end { \"folke/edgy.nvim\", optional = true, opts = function(_, opts) local edgy_idx = LazyVim.plugin.extra_idx(\"ui.edgy\") local symbols_idx = LazyVim.plugin.extra_idx(\"editor.outline\") if edgy_idx and edgy_idx > symbols_idx then LazyVim.warn( \"The `edgy.nvim` extra must be **imported** before the `outline.nvim` extra to work properly.\", { title = \"LazyVim\" } ) end opts.right = opts.right or {} table.insert(opts.right, { title = \"Outline\", ft = \"Outline\", pinned = true, open = \"Outline\", }) end, }","s":"edgy.nvim (optional)","u":"/extras/editor/outline","h":"#edgynvim-optional","p":327},{"i":336,"t":"info You can enable the extra with the :LazyExtras command. Plugins marked as optional will only be configured if they are installed. Below you can find a list of included plugins and their default settings. caution You don't need to copy the default settings to your config. They are only shown here for reference.","s":"Neo-tree","u":"/extras/editor/neo-tree","h":"","p":335},{"i":338,"t":"file explorer Options Full Spec opts = { sources = { \"filesystem\", \"buffers\", \"git_status\" }, open_files_do_not_replace_types = { \"terminal\", \"Trouble\", \"trouble\", \"qf\", \"Outline\" }, filesystem = { bind_to_cwd = false, follow_current_file = { enabled = true }, use_libuv_file_watcher = true, }, window = { mappings = { [\"l\"] = \"open\", [\"h\"] = \"close_node\", [\"\"] = \"none\", [\"Y\"] = { function(state) local node = state.tree:get_node() local path = node:get_id() vim.fn.setreg(\"+\", path, \"c\") end, desc = \"Copy Path to Clipboard\", }, [\"O\"] = { function(state) require(\"lazy.util\").open(state.tree:get_node().path, { system = true }) end, desc = \"Open with System Application\", }, [\"P\"] = { \"toggle_preview\", config = { use_float = false } }, }, }, default_component_configs = { indent = { with_expanders = true, -- if nil and file nesting is enabled, will enable expanders expander_collapsed = \"\", expander_expanded = \"\", expander_highlight = \"NeoTreeExpander\", }, git_status = { symbols = { unstaged = \"󰄱\", staged = \"󰱒\", }, }, }, } { \"nvim-neo-tree/neo-tree.nvim\", cmd = \"Neotree\", keys = { { \"fe\", function() require(\"neo-tree.command\").execute({ toggle = true, dir = LazyVim.root() }) end, desc = \"Explorer NeoTree (Root Dir)\", }, { \"fE\", function() require(\"neo-tree.command\").execute({ toggle = true, dir = vim.uv.cwd() }) end, desc = \"Explorer NeoTree (cwd)\", }, { \"e\", \"fe\", desc = \"Explorer NeoTree (Root Dir)\", remap = true }, { \"E\", \"fE\", desc = \"Explorer NeoTree (cwd)\", remap = true }, { \"ge\", function() require(\"neo-tree.command\").execute({ source = \"git_status\", toggle = true }) end, desc = \"Git Explorer\", }, { \"be\", function() require(\"neo-tree.command\").execute({ source = \"buffers\", toggle = true }) end, desc = \"Buffer Explorer\", }, }, deactivate = function() vim.cmd([[Neotree close]]) end, init = function() -- FIX: use `autocmd` for lazy-loading neo-tree instead of directly requiring it, -- because `cwd` is not set up properly. vim.api.nvim_create_autocmd(\"BufEnter\", { group = vim.api.nvim_create_augroup(\"Neotree_start_directory\", { clear = true }), desc = \"Start Neo-tree with directory\", once = true, callback = function() if package.loaded[\"neo-tree\"] then return else local stats = vim.uv.fs_stat(vim.fn.argv(0)) if stats and stats.type == \"directory\" then require(\"neo-tree\") end end end, }) end, opts = { sources = { \"filesystem\", \"buffers\", \"git_status\" }, open_files_do_not_replace_types = { \"terminal\", \"Trouble\", \"trouble\", \"qf\", \"Outline\" }, filesystem = { bind_to_cwd = false, follow_current_file = { enabled = true }, use_libuv_file_watcher = true, }, window = { mappings = { [\"l\"] = \"open\", [\"h\"] = \"close_node\", [\"\"] = \"none\", [\"Y\"] = { function(state) local node = state.tree:get_node() local path = node:get_id() vim.fn.setreg(\"+\", path, \"c\") end, desc = \"Copy Path to Clipboard\", }, [\"O\"] = { function(state) require(\"lazy.util\").open(state.tree:get_node().path, { system = true }) end, desc = \"Open with System Application\", }, [\"P\"] = { \"toggle_preview\", config = { use_float = false } }, }, }, default_component_configs = { indent = { with_expanders = true, -- if nil and file nesting is enabled, will enable expanders expander_collapsed = \"\", expander_expanded = \"\", expander_highlight = \"NeoTreeExpander\", }, git_status = { symbols = { unstaged = \"󰄱\", staged = \"󰱒\", }, }, }, }, config = function(_, opts) local function on_move(data) Snacks.rename.on_rename_file(data.source, data.destination) end local events = require(\"neo-tree.events\") opts.event_handlers = opts.event_handlers or {} vim.list_extend(opts.event_handlers, { { event = events.FILE_MOVED, handler = on_move }, { event = events.FILE_RENAMED, handler = on_move }, }) require(\"neo-tree\").setup(opts) vim.api.nvim_create_autocmd(\"TermClose\", { pattern = \"*lazygit\", callback = function() if package.loaded[\"neo-tree.sources.git_status\"] then require(\"neo-tree.sources.git_status\").refresh() end end, }) end, }","s":"neo-tree.nvim","u":"/extras/editor/neo-tree","h":"#neo-treenvim","p":335},{"i":340,"t":"info You can enable the extra with the :LazyExtras command. Plugins marked as optional will only be configured if they are installed. Below you can find a list of included plugins and their default settings. caution You don't need to copy the default settings to your config. They are only shown here for reference.","s":"Snacks_explorer","u":"/extras/editor/snacks_explorer","h":"","p":339},{"i":342,"t":"Options Full Spec opts = nil \"folke/snacks.nvim\"","s":"snacks.nvim","u":"/extras/editor/snacks_explorer","h":"#snacksnvim","p":339},{"i":344,"t":"info You can enable the extra with the :LazyExtras command. Plugins marked as optional will only be configured if they are installed.","s":"Fzf","u":"/extras/editor/fzf","h":"","p":343},{"i":346,"t":"Additional options for this extra can be configured in your lua/config/options.lua file: lua/config/options.lua -- In case you don't want to use `:LazyExtras`, -- then you need to set the option below. vim.g.lazyvim_picker = \"fzf\" Below you can find a list of included plugins and their default settings. caution You don't need to copy the default settings to your config. They are only shown here for reference.","s":"Options","u":"/extras/editor/fzf","h":"#options","p":343},{"i":348,"t":"Options Full Spec opts = function(_, opts) local fzf = require(\"fzf-lua\") local config = fzf.config local actions = fzf.actions -- Quickfix config.defaults.keymap.fzf[\"ctrl-q\"] = \"select-all+accept\" config.defaults.keymap.fzf[\"ctrl-u\"] = \"half-page-up\" config.defaults.keymap.fzf[\"ctrl-d\"] = \"half-page-down\" config.defaults.keymap.fzf[\"ctrl-x\"] = \"jump\" config.defaults.keymap.fzf[\"ctrl-f\"] = \"preview-page-down\" config.defaults.keymap.fzf[\"ctrl-b\"] = \"preview-page-up\" config.defaults.keymap.builtin[\"\"] = \"preview-page-down\" config.defaults.keymap.builtin[\"\"] = \"preview-page-up\" -- Trouble if LazyVim.has(\"trouble.nvim\") then config.defaults.actions.files[\"ctrl-t\"] = require(\"trouble.sources.fzf\").actions.open end -- Toggle root dir / cwd config.defaults.actions.files[\"ctrl-r\"] = function(_, ctx) local o = vim.deepcopy(ctx.__call_opts) o.root = o.root == false o.cwd = nil o.buf = ctx.__CTX.bufnr LazyVim.pick.open(ctx.__INFO.cmd, o) end config.defaults.actions.files[\"alt-c\"] = config.defaults.actions.files[\"ctrl-r\"] config.set_action_helpstr(config.defaults.actions.files[\"ctrl-r\"], \"toggle-root-dir\") local img_previewer ---@type string[]? for _, v in ipairs({ { cmd = \"ueberzug\", args = {} }, { cmd = \"chafa\", args = { \"{file}\", \"--format=symbols\" } }, { cmd = \"viu\", args = { \"-b\" } }, }) do if vim.fn.executable(v.cmd) == 1 then img_previewer = vim.list_extend({ v.cmd }, v.args) break end end return { \"default-title\", fzf_colors = true, fzf_opts = { [\"--no-scrollbar\"] = true, }, defaults = { -- formatter = \"path.filename_first\", formatter = \"path.dirname_first\", }, previewers = { builtin = { extensions = { [\"png\"] = img_previewer, [\"jpg\"] = img_previewer, [\"jpeg\"] = img_previewer, [\"gif\"] = img_previewer, [\"webp\"] = img_previewer, }, ueberzug_scaler = \"fit_contain\", }, }, -- Custom LazyVim option to configure vim.ui.select ui_select = function(fzf_opts, items) return vim.tbl_deep_extend(\"force\", fzf_opts, { prompt = \" \", winopts = { title = \" \" .. vim.trim((fzf_opts.prompt or \"Select\"):gsub(\"%s*:%s*$\", \"\")) .. \" \", title_pos = \"center\", }, }, fzf_opts.kind == \"codeaction\" and { winopts = { layout = \"vertical\", -- height is number of items minus 15 lines for the preview, with a max of 80% screen height height = math.floor(math.min(vim.o.lines * 0.8 - 16, #items + 4) + 0.5) + 16, width = 0.5, preview = not vim.tbl_isempty(vim.lsp.get_clients({ bufnr = 0, name = \"vtsls\" })) and { layout = \"vertical\", vertical = \"down:15,border-top\", hidden = \"hidden\", } or { layout = \"vertical\", vertical = \"down:15,border-top\", }, }, } or { winopts = { width = 0.5, -- height is number of items, with a max of 80% screen height height = math.floor(math.min(vim.o.lines * 0.8, #items + 4) + 0.5), }, }) end, winopts = { width = 0.8, height = 0.8, row = 0.5, col = 0.5, preview = { scrollchars = { \"┃\", \"\" }, }, }, files = { cwd_prompt = false, actions = { [\"alt-i\"] = { actions.toggle_ignore }, [\"alt-h\"] = { actions.toggle_hidden }, }, }, grep = { actions = { [\"alt-i\"] = { actions.toggle_ignore }, [\"alt-h\"] = { actions.toggle_hidden }, }, }, lsp = { symbols = { symbol_hl = function(s) return \"TroubleIcon\" .. s end, symbol_fmt = function(s) return s:lower() .. \"\\t\" end, child_prefix = false, }, code_actions = { previewer = vim.fn.executable(\"delta\") == 1 and \"codeaction_native\" or nil, }, }, } end { \"ibhagwan/fzf-lua\", cmd = \"FzfLua\", opts = function(_, opts) local fzf = require(\"fzf-lua\") local config = fzf.config local actions = fzf.actions -- Quickfix config.defaults.keymap.fzf[\"ctrl-q\"] = \"select-all+accept\" config.defaults.keymap.fzf[\"ctrl-u\"] = \"half-page-up\" config.defaults.keymap.fzf[\"ctrl-d\"] = \"half-page-down\" config.defaults.keymap.fzf[\"ctrl-x\"] = \"jump\" config.defaults.keymap.fzf[\"ctrl-f\"] = \"preview-page-down\" config.defaults.keymap.fzf[\"ctrl-b\"] = \"preview-page-up\" config.defaults.keymap.builtin[\"\"] = \"preview-page-down\" config.defaults.keymap.builtin[\"\"] = \"preview-page-up\" -- Trouble if LazyVim.has(\"trouble.nvim\") then config.defaults.actions.files[\"ctrl-t\"] = require(\"trouble.sources.fzf\").actions.open end -- Toggle root dir / cwd config.defaults.actions.files[\"ctrl-r\"] = function(_, ctx) local o = vim.deepcopy(ctx.__call_opts) o.root = o.root == false o.cwd = nil o.buf = ctx.__CTX.bufnr LazyVim.pick.open(ctx.__INFO.cmd, o) end config.defaults.actions.files[\"alt-c\"] = config.defaults.actions.files[\"ctrl-r\"] config.set_action_helpstr(config.defaults.actions.files[\"ctrl-r\"], \"toggle-root-dir\") local img_previewer ---@type string[]? for _, v in ipairs({ { cmd = \"ueberzug\", args = {} }, { cmd = \"chafa\", args = { \"{file}\", \"--format=symbols\" } }, { cmd = \"viu\", args = { \"-b\" } }, }) do if vim.fn.executable(v.cmd) == 1 then img_previewer = vim.list_extend({ v.cmd }, v.args) break end end return { \"default-title\", fzf_colors = true, fzf_opts = { [\"--no-scrollbar\"] = true, }, defaults = { -- formatter = \"path.filename_first\", formatter = \"path.dirname_first\", }, previewers = { builtin = { extensions = { [\"png\"] = img_previewer, [\"jpg\"] = img_previewer, [\"jpeg\"] = img_previewer, [\"gif\"] = img_previewer, [\"webp\"] = img_previewer, }, ueberzug_scaler = \"fit_contain\", }, }, -- Custom LazyVim option to configure vim.ui.select ui_select = function(fzf_opts, items) return vim.tbl_deep_extend(\"force\", fzf_opts, { prompt = \" \", winopts = { title = \" \" .. vim.trim((fzf_opts.prompt or \"Select\"):gsub(\"%s*:%s*$\", \"\")) .. \" \", title_pos = \"center\", }, }, fzf_opts.kind == \"codeaction\" and { winopts = { layout = \"vertical\", -- height is number of items minus 15 lines for the preview, with a max of 80% screen height height = math.floor(math.min(vim.o.lines * 0.8 - 16, #items + 4) + 0.5) + 16, width = 0.5, preview = not vim.tbl_isempty(vim.lsp.get_clients({ bufnr = 0, name = \"vtsls\" })) and { layout = \"vertical\", vertical = \"down:15,border-top\", hidden = \"hidden\", } or { layout = \"vertical\", vertical = \"down:15,border-top\", }, }, } or { winopts = { width = 0.5, -- height is number of items, with a max of 80% screen height height = math.floor(math.min(vim.o.lines * 0.8, #items + 4) + 0.5), }, }) end, winopts = { width = 0.8, height = 0.8, row = 0.5, col = 0.5, preview = { scrollchars = { \"┃\", \"\" }, }, }, files = { cwd_prompt = false, actions = { [\"alt-i\"] = { actions.toggle_ignore }, [\"alt-h\"] = { actions.toggle_hidden }, }, }, grep = { actions = { [\"alt-i\"] = { actions.toggle_ignore }, [\"alt-h\"] = { actions.toggle_hidden }, }, }, lsp = { symbols = { symbol_hl = function(s) return \"TroubleIcon\" .. s end, symbol_fmt = function(s) return s:lower() .. \"\\t\" end, child_prefix = false, }, code_actions = { previewer = vim.fn.executable(\"delta\") == 1 and \"codeaction_native\" or nil, }, }, } end, config = function(_, opts) if opts[1] == \"default-title\" then -- use the same prompt for all pickers for profile `default-title` and -- profiles that use `default-title` as base profile local function fix(t) t.prompt = t.prompt ~= nil and \" \" or nil for _, v in pairs(t) do if type(v) == \"table\" then fix(v) end end return t end opts = vim.tbl_deep_extend(\"force\", fix(require(\"fzf-lua.profiles.default-title\")), opts) opts[1] = nil end require(\"fzf-lua\").setup(opts) end, init = function() LazyVim.on_very_lazy(function() vim.ui.select = function(...) require(\"lazy\").load({ plugins = { \"fzf-lua\" } }) local opts = LazyVim.opts(\"fzf-lua\") or {} require(\"fzf-lua\").register_ui_select(opts.ui_select or nil) return vim.ui.select(...) end end) end, keys = { { \"\", \"\", ft = \"fzf\", mode = \"t\", nowait = true }, { \"\", \"\", ft = \"fzf\", mode = \"t\", nowait = true }, { \",\", \"FzfLua buffers sort_mru=true sort_lastused=true\", desc = \"Switch Buffer\", }, { \"/\", LazyVim.pick(\"live_grep\"), desc = \"Grep (Root Dir)\" }, { \":\", \"FzfLua command_history\", desc = \"Command History\" }, { \"\", LazyVim.pick(\"files\"), desc = \"Find Files (Root Dir)\" }, -- find { \"fb\", \"FzfLua buffers sort_mru=true sort_lastused=true\", desc = \"Buffers\" }, { \"fB\", \"FzfLua buffers\", desc = \"Buffers (all)\" }, { \"fc\", LazyVim.pick.config_files(), desc = \"Find Config File\" }, { \"ff\", LazyVim.pick(\"files\"), desc = \"Find Files (Root Dir)\" }, { \"fF\", LazyVim.pick(\"files\", { root = false }), desc = \"Find Files (cwd)\" }, { \"fg\", \"FzfLua git_files\", desc = \"Find Files (git-files)\" }, { \"fr\", \"FzfLua oldfiles\", desc = \"Recent\" }, { \"fR\", LazyVim.pick(\"oldfiles\", { cwd = vim.uv.cwd() }), desc = \"Recent (cwd)\" }, -- git { \"gc\", \"FzfLua git_commits\", desc = \"Commits\" }, { \"gd\", \"FzfLua git_diff\", desc = \"Git Diff (hunks)\" }, { \"gl\", \"FzfLua git_commits\", desc = \"Commits\" }, { \"gs\", \"FzfLua git_status\", desc = \"Status\" }, { \"gS\", \"FzfLua git_stash\", desc = \"Git Stash\" }, -- search { 's\"', \"FzfLua registers\", desc = \"Registers\" }, { \"s/\", \"FzfLua search_history\", desc = \"Search History\" }, { \"sa\", \"FzfLua autocmds\", desc = \"Auto Commands\" }, { \"sb\", \"FzfLua lines\", desc = \"Buffer Lines\" }, { \"sc\", \"FzfLua command_history\", desc = \"Command History\" }, { \"sC\", \"FzfLua commands\", desc = \"Commands\" }, { \"sd\", \"FzfLua diagnostics_workspace\", desc = \"Diagnostics\" }, { \"sD\", \"FzfLua diagnostics_document\", desc = \"Buffer Diagnostics\" }, { \"sg\", LazyVim.pick(\"live_grep\"), desc = \"Grep (Root Dir)\" }, { \"sG\", LazyVim.pick(\"live_grep\", { root = false }), desc = \"Grep (cwd)\" }, { \"sh\", \"FzfLua help_tags\", desc = \"Help Pages\" }, { \"sH\", \"FzfLua highlights\", desc = \"Search Highlight Groups\" }, { \"sj\", \"FzfLua jumps\", desc = \"Jumplist\" }, { \"sk\", \"FzfLua keymaps\", desc = \"Key Maps\" }, { \"sl\", \"FzfLua loclist\", desc = \"Location List\" }, { \"sM\", \"FzfLua man_pages\", desc = \"Man Pages\" }, { \"sm\", \"FzfLua marks\", desc = \"Jump to Mark\" }, { \"sR\", \"FzfLua resume\", desc = \"Resume\" }, { \"sq\", \"FzfLua quickfix\", desc = \"Quickfix List\" }, { \"sw\", LazyVim.pick(\"grep_cword\"), desc = \"Word (Root Dir)\" }, { \"sW\", LazyVim.pick(\"grep_cword\", { root = false }), desc = \"Word (cwd)\" }, { \"sw\", LazyVim.pick(\"grep_visual\"), mode = \"x\", desc = \"Selection (Root Dir)\" }, { \"sW\", LazyVim.pick(\"grep_visual\", { root = false }), mode = \"x\", desc = \"Selection (cwd)\" }, { \"uC\", LazyVim.pick(\"colorschemes\"), desc = \"Colorscheme with Preview\" }, { \"ss\", function() require(\"fzf-lua\").lsp_document_symbols({ regex_filter = symbols_filter, }) end, desc = \"Goto Symbol\", }, { \"sS\", function() require(\"fzf-lua\").lsp_live_workspace_symbols({ regex_filter = symbols_filter, }) end, desc = \"Goto Symbol (Workspace)\", }, }, }","s":"fzf-lua","u":"/extras/editor/fzf","h":"#fzf-lua","p":343},{"i":350,"t":"Options Full Spec opts = nil { \"fzf-lua\" }","s":"fzf-lua","u":"/extras/editor/fzf","h":"#fzf-lua-1","p":343},{"i":352,"t":"Options Full Spec opts = function() local Keys = require(\"lazyvim.plugins.lsp.keymaps\").get() -- stylua: ignore vim.list_extend(Keys, { { \"gd\", \"FzfLua lsp_definitions jump1=true ignore_current_line=true\", desc = \"Goto Definition\", has = \"definition\" }, { \"gr\", \"FzfLua lsp_references jump1=true ignore_current_line=true\", desc = \"References\", nowait = true }, { \"gI\", \"FzfLua lsp_implementations jump1=true ignore_current_line=true\", desc = \"Goto Implementation\" }, { \"gy\", \"FzfLua lsp_typedefs jump1=true ignore_current_line=true\", desc = \"Goto T[y]pe Definition\" }, }) end { \"neovim/nvim-lspconfig\", opts = function() local Keys = require(\"lazyvim.plugins.lsp.keymaps\").get() -- stylua: ignore vim.list_extend(Keys, { { \"gd\", \"FzfLua lsp_definitions jump1=true ignore_current_line=true\", desc = \"Goto Definition\", has = \"definition\" }, { \"gr\", \"FzfLua lsp_references jump1=true ignore_current_line=true\", desc = \"References\", nowait = true }, { \"gI\", \"FzfLua lsp_implementations jump1=true ignore_current_line=true\", desc = \"Goto Implementation\" }, { \"gy\", \"FzfLua lsp_typedefs jump1=true ignore_current_line=true\", desc = \"Goto T[y]pe Definition\" }, }) end, }","s":"nvim-lspconfig","u":"/extras/editor/fzf","h":"#nvim-lspconfig","p":343},{"i":354,"t":"Options Full Spec opts = nil { \"folke/todo-comments.nvim\", optional = true, -- stylua: ignore keys = { { \"st\", function() require(\"todo-comments.fzf\").todo() end, desc = \"Todo\" }, { \"sT\", function () require(\"todo-comments.fzf\").todo({ keywords = { \"TODO\", \"FIX\", \"FIXME\" } }) end, desc = \"Todo/Fix/Fixme\" }, }, }","s":"todo-comments.nvim (optional)","u":"/extras/editor/fzf","h":"#todo-commentsnvim-optional","p":343},{"i":356,"t":"info You can enable the extra with the :LazyExtras command. Plugins marked as optional will only be configured if they are installed. Below you can find a list of included plugins and their default settings. caution You don't need to copy the default settings to your config. They are only shown here for reference.","s":"Refactoring","u":"/extras/editor/refactoring","h":"","p":355},{"i":358,"t":"Options Full Spec opts = { prompt_func_return_type = { go = false, java = false, cpp = false, c = false, h = false, hpp = false, cxx = false, }, prompt_func_param_type = { go = false, java = false, cpp = false, c = false, h = false, hpp = false, cxx = false, }, printf_statements = {}, print_var_statements = {}, show_success_message = true, -- shows a message with information about the refactor on success -- i.e. [Refactor] Inlined 3 variable occurrences } { \"ThePrimeagen/refactoring.nvim\", event = { \"BufReadPre\", \"BufNewFile\" }, dependencies = { \"nvim-lua/plenary.nvim\", \"nvim-treesitter/nvim-treesitter\", }, keys = { { \"r\", \"\", desc = \"+refactor\", mode = { \"n\", \"x\" } }, { \"rs\", pick, mode = { \"n\", \"x\" }, desc = \"Refactor\", }, { \"ri\", function() return require(\"refactoring\").refactor(\"Inline Variable\") end, mode = { \"n\", \"x\" }, desc = \"Inline Variable\", expr = true, }, { \"rb\", function() return require(\"refactoring\").refactor(\"Extract Block\") end, mode = { \"n\", \"x\" }, desc = \"Extract Block\", expr = true, }, { \"rf\", function() return require(\"refactoring\").refactor(\"Extract Block To File\") end, mode = { \"n\", \"x\" }, desc = \"Extract Block To File\", expr = true, }, { \"rP\", function() require(\"refactoring\").debug.printf({ below = false }) end, desc = \"Debug Print\", }, { \"rp\", function() require(\"refactoring\").debug.print_var({ normal = true }) end, mode = { \"n\", \"x\" }, desc = \"Debug Print Variable\", }, { \"rc\", function() require(\"refactoring\").debug.cleanup({}) end, desc = \"Debug Cleanup\", }, { \"rf\", function() return require(\"refactoring\").refactor(\"Extract Function\") end, mode = { \"n\", \"x\" }, desc = \"Extract Function\", expr = true, }, { \"rF\", function() return require(\"refactoring\").refactor(\"Extract Function To File\") end, mode = { \"n\", \"x\" }, desc = \"Extract Function To File\", expr = true, }, { \"rx\", function() return require(\"refactoring\").refactor(\"Extract Variable\") end, mode = { \"n\", \"x\" }, desc = \"Extract Variable\", expr = true, }, { \"rp\", function() require(\"refactoring\").debug.print_var() end, mode = { \"n\", \"x\" }, desc = \"Debug Print Variable\", }, }, opts = { prompt_func_return_type = { go = false, java = false, cpp = false, c = false, h = false, hpp = false, cxx = false, }, prompt_func_param_type = { go = false, java = false, cpp = false, c = false, h = false, hpp = false, cxx = false, }, printf_statements = {}, print_var_statements = {}, show_success_message = true, -- shows a message with information about the refactor on success -- i.e. [Refactor] Inlined 3 variable occurrences }, config = function(_, opts) require(\"refactoring\").setup(opts) if LazyVim.has(\"telescope.nvim\") then LazyVim.on_load(\"telescope.nvim\", function() require(\"telescope\").load_extension(\"refactoring\") end) end end, }","s":"refactoring.nvim","u":"/extras/editor/refactoring","h":"#refactoringnvim","p":355},{"i":360,"t":"Options Full Spec opts = nil { \"nvim-lua/plenary.nvim\", \"nvim-treesitter/nvim-treesitter\", }","s":"plenary.nvim","u":"/extras/editor/refactoring","h":"#plenarynvim","p":355},{"i":362,"t":"Options Full Spec opts = nil \"nvim-treesitter/nvim-treesitter\"","s":"nvim-treesitter","u":"/extras/editor/refactoring","h":"#nvim-treesitter","p":355},{"i":364,"t":"info You can enable the extra with the :LazyExtras command. Plugins marked as optional will only be configured if they are installed.","s":"Biome","u":"/extras/formatting/biome","h":"","p":363},{"i":366,"t":"Additional options for this extra can be configured in your lua/config/options.lua file: lua/config/options.lua -- Enable this option to avoid conflicts with Prettier. vim.g.lazyvim_prettier_needs_config = true Below you can find a list of included plugins and their default settings. caution You don't need to copy the default settings to your config. They are only shown here for reference.","s":"Options","u":"/extras/formatting/biome","h":"#options","p":363},{"i":368,"t":"Options Full Spec opts = { ensure_installed = { \"biome\" } } { \"mason-org/mason.nvim\", opts = { ensure_installed = { \"biome\" } }, }","s":"mason.nvim","u":"/extras/formatting/biome","h":"#masonnvim","p":363},{"i":370,"t":"Options Full Spec opts = function(_, opts) opts.formatters_by_ft = opts.formatters_by_ft or {} for _, ft in ipairs(supported) do opts.formatters_by_ft[ft] = opts.formatters_by_ft[ft] or {} table.insert(opts.formatters_by_ft[ft], \"biome\") end opts.formatters = opts.formatters or {} opts.formatters.biome = { require_cwd = true, } end { \"stevearc/conform.nvim\", optional = true, ---@param opts ConformOpts opts = function(_, opts) opts.formatters_by_ft = opts.formatters_by_ft or {} for _, ft in ipairs(supported) do opts.formatters_by_ft[ft] = opts.formatters_by_ft[ft] or {} table.insert(opts.formatters_by_ft[ft], \"biome\") end opts.formatters = opts.formatters or {} opts.formatters.biome = { require_cwd = true, } end, }","s":"conform.nvim (optional)","u":"/extras/formatting/biome","h":"#conformnvim-optional","p":363},{"i":372,"t":"none-ls support Options Full Spec opts = function(_, opts) local nls = require(\"null-ls\") opts.sources = opts.sources or {} table.insert(opts.sources, nls.builtins.formatting.biome) end { \"nvimtools/none-ls.nvim\", optional = true, opts = function(_, opts) local nls = require(\"null-ls\") opts.sources = opts.sources or {} table.insert(opts.sources, nls.builtins.formatting.biome) end, }","s":"none-ls.nvim (optional)","u":"/extras/formatting/biome","h":"#none-lsnvim-optional","p":363},{"i":374,"t":"info You can enable the extra with the :LazyExtras command. Plugins marked as optional will only be configured if they are installed.","s":"Prettier","u":"/extras/formatting/prettier","h":"","p":373},{"i":376,"t":"Additional options for this extra can be configured in your lua/config/options.lua file: lua/config/options.lua -- Enable the option to require a Prettier config file -- If no prettier config file is found, the formatter will not be used vim.g.lazyvim_prettier_needs_config = false Below you can find a list of included plugins and their default settings. caution You don't need to copy the default settings to your config. They are only shown here for reference.","s":"Options","u":"/extras/formatting/prettier","h":"#options","p":373},{"i":378,"t":"Options Full Spec opts = { ensure_installed = { \"prettier\" } } { \"mason-org/mason.nvim\", opts = { ensure_installed = { \"prettier\" } }, }","s":"mason.nvim","u":"/extras/formatting/prettier","h":"#masonnvim","p":373},{"i":380,"t":"conform Options Full Spec opts = function(_, opts) opts.formatters_by_ft = opts.formatters_by_ft or {} for _, ft in ipairs(supported) do opts.formatters_by_ft[ft] = opts.formatters_by_ft[ft] or {} table.insert(opts.formatters_by_ft[ft], \"prettier\") end opts.formatters = opts.formatters or {} opts.formatters.prettier = { condition = function(_, ctx) return M.has_parser(ctx) and (vim.g.lazyvim_prettier_needs_config ~= true or M.has_config(ctx)) end, } end { \"stevearc/conform.nvim\", optional = true, ---@param opts ConformOpts opts = function(_, opts) opts.formatters_by_ft = opts.formatters_by_ft or {} for _, ft in ipairs(supported) do opts.formatters_by_ft[ft] = opts.formatters_by_ft[ft] or {} table.insert(opts.formatters_by_ft[ft], \"prettier\") end opts.formatters = opts.formatters or {} opts.formatters.prettier = { condition = function(_, ctx) return M.has_parser(ctx) and (vim.g.lazyvim_prettier_needs_config ~= true or M.has_config(ctx)) end, } end, }","s":"conform.nvim (optional)","u":"/extras/formatting/prettier","h":"#conformnvim-optional","p":373},{"i":382,"t":"none-ls support Options Full Spec opts = function(_, opts) local nls = require(\"null-ls\") opts.sources = opts.sources or {} table.insert(opts.sources, nls.builtins.formatting.prettier) end { \"nvimtools/none-ls.nvim\", optional = true, opts = function(_, opts) local nls = require(\"null-ls\") opts.sources = opts.sources or {} table.insert(opts.sources, nls.builtins.formatting.prettier) end, }","s":"none-ls.nvim (optional)","u":"/extras/formatting/prettier","h":"#none-lsnvim-optional","p":373},{"i":384,"t":"info You can enable the extra with the :LazyExtras command. Plugins marked as optional will only be configured if they are installed.","s":"Telescope","u":"/extras/editor/telescope","h":"","p":383},{"i":386,"t":"Additional options for this extra can be configured in your lua/config/options.lua file: lua/config/options.lua -- In case you don't want to use `:LazyExtras`, -- then you need to set the option below. vim.g.lazyvim_picker = \"telescope\" Below you can find a list of included plugins and their default settings. caution You don't need to copy the default settings to your config. They are only shown here for reference.","s":"Options","u":"/extras/editor/telescope","h":"#options","p":383},{"i":388,"t":"Fuzzy finder. The default key bindings to find files will use Telescope's find_files or git_files depending on whether the directory is a git repo. Options Full Spec opts = function() local actions = require(\"telescope.actions\") local open_with_trouble = function(...) return require(\"trouble.sources.telescope\").open(...) end local find_files_no_ignore = function() local action_state = require(\"telescope.actions.state\") local line = action_state.get_current_line() LazyVim.pick(\"find_files\", { no_ignore = true, default_text = line })() end local find_files_with_hidden = function() local action_state = require(\"telescope.actions.state\") local line = action_state.get_current_line() LazyVim.pick(\"find_files\", { hidden = true, default_text = line })() end local function find_command() if 1 == vim.fn.executable(\"rg\") then return { \"rg\", \"--files\", \"--color\", \"never\", \"-g\", \"!.git\" } elseif 1 == vim.fn.executable(\"fd\") then return { \"fd\", \"--type\", \"f\", \"--color\", \"never\", \"-E\", \".git\" } elseif 1 == vim.fn.executable(\"fdfind\") then return { \"fdfind\", \"--type\", \"f\", \"--color\", \"never\", \"-E\", \".git\" } elseif 1 == vim.fn.executable(\"find\") and vim.fn.has(\"win32\") == 0 then return { \"find\", \".\", \"-type\", \"f\" } elseif 1 == vim.fn.executable(\"where\") then return { \"where\", \"/r\", \".\", \"*\" } end end return { defaults = { prompt_prefix = \" \", selection_caret = \" \", -- open files in the first window that is an actual file. -- use the current window if no other window is available. get_selection_window = function() local wins = vim.api.nvim_list_wins() table.insert(wins, 1, vim.api.nvim_get_current_win()) for _, win in ipairs(wins) do local buf = vim.api.nvim_win_get_buf(win) if vim.bo[buf].buftype == \"\" then return win end end return 0 end, mappings = { i = { [\"\"] = open_with_trouble, [\"\"] = open_with_trouble, [\"\"] = find_files_no_ignore, [\"\"] = find_files_with_hidden, [\"\"] = actions.cycle_history_next, [\"\"] = actions.cycle_history_prev, [\"\"] = actions.preview_scrolling_down, [\"\"] = actions.preview_scrolling_up, }, n = { [\"q\"] = actions.close, }, }, }, pickers = { find_files = { find_command = find_command, hidden = true, }, }, } end { \"nvim-telescope/telescope.nvim\", cmd = \"Telescope\", version = false, -- telescope did only one release, so use HEAD for now dependencies = { { \"nvim-telescope/telescope-fzf-native.nvim\", build = (build_cmd ~= \"cmake\") and \"make\" or \"cmake -S. -Bbuild -DCMAKE_BUILD_TYPE=Release && cmake --build build --config Release && cmake --install build --prefix build\", enabled = build_cmd ~= nil, config = function(plugin) LazyVim.on_load(\"telescope.nvim\", function() local ok, err = pcall(require(\"telescope\").load_extension, \"fzf\") if not ok then local lib = plugin.dir .. \"/build/libfzf.\" .. (LazyVim.is_win() and \"dll\" or \"so\") if not vim.uv.fs_stat(lib) then LazyVim.warn(\"`telescope-fzf-native.nvim` not built. Rebuilding...\") require(\"lazy\").build({ plugins = { plugin }, show = false }):wait(function() LazyVim.info(\"Rebuilding `telescope-fzf-native.nvim` done.\\nPlease restart Neovim.\") end) else LazyVim.error(\"Failed to load `telescope-fzf-native.nvim`:\\n\" .. err) end end end) end, }, }, keys = { { \",\", \"Telescope buffers sort_mru=true sort_lastused=true\", desc = \"Switch Buffer\", }, { \"/\", LazyVim.pick(\"live_grep\"), desc = \"Grep (Root Dir)\" }, { \":\", \"Telescope command_history\", desc = \"Command History\" }, { \"\", LazyVim.pick(\"files\"), desc = \"Find Files (Root Dir)\" }, -- find { \"fb\", \"Telescope buffers sort_mru=true sort_lastused=true ignore_current_buffer=true\", desc = \"Buffers\", }, { \"fB\", \"Telescope buffers\", desc = \"Buffers (all)\" }, { \"fc\", LazyVim.pick.config_files(), desc = \"Find Config File\" }, { \"ff\", LazyVim.pick(\"files\"), desc = \"Find Files (Root Dir)\" }, { \"fF\", LazyVim.pick(\"files\", { root = false }), desc = \"Find Files (cwd)\" }, { \"fg\", \"Telescope git_files\", desc = \"Find Files (git-files)\" }, { \"fr\", \"Telescope oldfiles\", desc = \"Recent\" }, { \"fR\", LazyVim.pick(\"oldfiles\", { cwd = vim.uv.cwd() }), desc = \"Recent (cwd)\" }, -- git { \"gc\", \"Telescope git_commits\", desc = \"Commits\" }, { \"gl\", \"Telescope git_commits\", desc = \"Commits\" }, { \"gs\", \"Telescope git_status\", desc = \"Status\" }, { \"gS\", \"Telescope git_stash\", desc = \"Git Stash\" }, -- search { 's\"', \"Telescope registers\", desc = \"Registers\" }, { \"s/\", \"Telescope search_history\", desc = \"Search History\" }, { \"sa\", \"Telescope autocommands\", desc = \"Auto Commands\" }, { \"sb\", \"Telescope current_buffer_fuzzy_find\", desc = \"Buffer Lines\" }, { \"sc\", \"Telescope command_history\", desc = \"Command History\" }, { \"sC\", \"Telescope commands\", desc = \"Commands\" }, { \"sd\", \"Telescope diagnostics\", desc = \"Diagnostics\" }, { \"sD\", \"Telescope diagnostics bufnr=0\", desc = \"Buffer Diagnostics\" }, { \"sg\", LazyVim.pick(\"live_grep\"), desc = \"Grep (Root Dir)\" }, { \"sG\", LazyVim.pick(\"live_grep\", { root = false }), desc = \"Grep (cwd)\" }, { \"sh\", \"Telescope help_tags\", desc = \"Help Pages\" }, { \"sH\", \"Telescope highlights\", desc = \"Search Highlight Groups\" }, { \"sj\", \"Telescope jumplist\", desc = \"Jumplist\" }, { \"sk\", \"Telescope keymaps\", desc = \"Key Maps\" }, { \"sl\", \"Telescope loclist\", desc = \"Location List\" }, { \"sM\", \"Telescope man_pages\", desc = \"Man Pages\" }, { \"sm\", \"Telescope marks\", desc = \"Jump to Mark\" }, { \"so\", \"Telescope vim_options\", desc = \"Options\" }, { \"sR\", \"Telescope resume\", desc = \"Resume\" }, { \"sq\", \"Telescope quickfix\", desc = \"Quickfix List\" }, { \"sw\", LazyVim.pick(\"grep_string\", { word_match = \"-w\" }), desc = \"Word (Root Dir)\" }, { \"sW\", LazyVim.pick(\"grep_string\", { root = false, word_match = \"-w\" }), desc = \"Word (cwd)\" }, { \"sw\", LazyVim.pick(\"grep_string\"), mode = \"x\", desc = \"Selection (Root Dir)\" }, { \"sW\", LazyVim.pick(\"grep_string\", { root = false }), mode = \"x\", desc = \"Selection (cwd)\" }, { \"uC\", LazyVim.pick(\"colorscheme\", { enable_preview = true }), desc = \"Colorscheme with Preview\" }, { \"ss\", function() require(\"telescope.builtin\").lsp_document_symbols({ symbols = LazyVim.config.get_kind_filter(), }) end, desc = \"Goto Symbol\", }, { \"sS\", function() require(\"telescope.builtin\").lsp_dynamic_workspace_symbols({ symbols = LazyVim.config.get_kind_filter(), }) end, desc = \"Goto Symbol (Workspace)\", }, }, opts = function() local actions = require(\"telescope.actions\") local open_with_trouble = function(...) return require(\"trouble.sources.telescope\").open(...) end local find_files_no_ignore = function() local action_state = require(\"telescope.actions.state\") local line = action_state.get_current_line() LazyVim.pick(\"find_files\", { no_ignore = true, default_text = line })() end local find_files_with_hidden = function() local action_state = require(\"telescope.actions.state\") local line = action_state.get_current_line() LazyVim.pick(\"find_files\", { hidden = true, default_text = line })() end local function find_command() if 1 == vim.fn.executable(\"rg\") then return { \"rg\", \"--files\", \"--color\", \"never\", \"-g\", \"!.git\" } elseif 1 == vim.fn.executable(\"fd\") then return { \"fd\", \"--type\", \"f\", \"--color\", \"never\", \"-E\", \".git\" } elseif 1 == vim.fn.executable(\"fdfind\") then return { \"fdfind\", \"--type\", \"f\", \"--color\", \"never\", \"-E\", \".git\" } elseif 1 == vim.fn.executable(\"find\") and vim.fn.has(\"win32\") == 0 then return { \"find\", \".\", \"-type\", \"f\" } elseif 1 == vim.fn.executable(\"where\") then return { \"where\", \"/r\", \".\", \"*\" } end end return { defaults = { prompt_prefix = \" \", selection_caret = \" \", -- open files in the first window that is an actual file. -- use the current window if no other window is available. get_selection_window = function() local wins = vim.api.nvim_list_wins() table.insert(wins, 1, vim.api.nvim_get_current_win()) for _, win in ipairs(wins) do local buf = vim.api.nvim_win_get_buf(win) if vim.bo[buf].buftype == \"\" then return win end end return 0 end, mappings = { i = { [\"\"] = open_with_trouble, [\"\"] = open_with_trouble, [\"\"] = find_files_no_ignore, [\"\"] = find_files_with_hidden, [\"\"] = actions.cycle_history_next, [\"\"] = actions.cycle_history_prev, [\"\"] = actions.preview_scrolling_down, [\"\"] = actions.preview_scrolling_up, }, n = { [\"q\"] = actions.close, }, }, }, pickers = { find_files = { find_command = find_command, hidden = true, }, }, } end, }","s":"telescope.nvim","u":"/extras/editor/telescope","h":"#telescopenvim","p":383},{"i":390,"t":"better vim.ui with telescope Options Full Spec opts = nil { \"stevearc/dressing.nvim\", lazy = true, init = function() ---@diagnostic disable-next-line: duplicate-set-field vim.ui.select = function(...) require(\"lazy\").load({ plugins = { \"dressing.nvim\" } }) return vim.ui.select(...) end ---@diagnostic disable-next-line: duplicate-set-field vim.ui.input = function(...) require(\"lazy\").load({ plugins = { \"dressing.nvim\" } }) return vim.ui.input(...) end end, }","s":"dressing.nvim","u":"/extras/editor/telescope","h":"#dressingnvim","p":383},{"i":392,"t":"Flash Telescope config Options Full Spec opts = function(_, opts) if not LazyVim.has(\"flash.nvim\") then return end local function flash(prompt_bufnr) require(\"flash\").jump({ pattern = \"^\", label = { after = { 0, 0 } }, search = { mode = \"search\", exclude = { function(win) return vim.bo[vim.api.nvim_win_get_buf(win)].filetype ~= \"TelescopeResults\" end, }, }, action = function(match) local picker = require(\"telescope.actions.state\").get_current_picker(prompt_bufnr) picker:set_selection(match.pos[1] - 1) end, }) end opts.defaults = vim.tbl_deep_extend(\"force\", opts.defaults or {}, { mappings = { n = { s = flash }, i = { [\"\"] = flash } }, }) end { \"nvim-telescope/telescope.nvim\", optional = true, opts = function(_, opts) if not LazyVim.has(\"flash.nvim\") then return end local function flash(prompt_bufnr) require(\"flash\").jump({ pattern = \"^\", label = { after = { 0, 0 } }, search = { mode = \"search\", exclude = { function(win) return vim.bo[vim.api.nvim_win_get_buf(win)].filetype ~= \"TelescopeResults\" end, }, }, action = function(match) local picker = require(\"telescope.actions.state\").get_current_picker(prompt_bufnr) picker:set_selection(match.pos[1] - 1) end, }) end opts.defaults = vim.tbl_deep_extend(\"force\", opts.defaults or {}, { mappings = { n = { s = flash }, i = { [\"\"] = flash } }, }) end, }","s":"telescope.nvim","u":"/extras/editor/telescope","h":"#telescopenvim-1","p":383},{"i":394,"t":"Options Full Spec opts = {} { \"nvim-telescope/telescope-fzf-native.nvim\", build = (build_cmd ~= \"cmake\") and \"make\" or \"cmake -S. -Bbuild -DCMAKE_BUILD_TYPE=Release && cmake --build build --config Release && cmake --install build --prefix build\", enabled = build_cmd ~= nil, config = function(plugin) LazyVim.on_load(\"telescope.nvim\", function() local ok, err = pcall(require(\"telescope\").load_extension, \"fzf\") if not ok then local lib = plugin.dir .. \"/build/libfzf.\" .. (LazyVim.is_win() and \"dll\" or \"so\") if not vim.uv.fs_stat(lib) then LazyVim.warn(\"`telescope-fzf-native.nvim` not built. Rebuilding...\") require(\"lazy\").build({ plugins = { plugin }, show = false }):wait(function() LazyVim.info(\"Rebuilding `telescope-fzf-native.nvim` done.\\nPlease restart Neovim.\") end) else LazyVim.error(\"Failed to load `telescope-fzf-native.nvim`:\\n\" .. err) end end end) end, }","s":"telescope-fzf-native.nvim","u":"/extras/editor/telescope","h":"#telescope-fzf-nativenvim","p":383},{"i":396,"t":"Options Full Spec opts = function() local Keys = require(\"lazyvim.plugins.lsp.keymaps\").get() -- stylua: ignore vim.list_extend(Keys, { { \"gd\", function() require(\"telescope.builtin\").lsp_definitions({ reuse_win = true }) end, desc = \"Goto Definition\", has = \"definition\" }, { \"gr\", \"Telescope lsp_references\", desc = \"References\", nowait = true }, { \"gI\", function() require(\"telescope.builtin\").lsp_implementations({ reuse_win = true }) end, desc = \"Goto Implementation\" }, { \"gy\", function() require(\"telescope.builtin\").lsp_type_definitions({ reuse_win = true }) end, desc = \"Goto T[y]pe Definition\" }, }) end { \"neovim/nvim-lspconfig\", opts = function() local Keys = require(\"lazyvim.plugins.lsp.keymaps\").get() -- stylua: ignore vim.list_extend(Keys, { { \"gd\", function() require(\"telescope.builtin\").lsp_definitions({ reuse_win = true }) end, desc = \"Goto Definition\", has = \"definition\" }, { \"gr\", \"Telescope lsp_references\", desc = \"References\", nowait = true }, { \"gI\", function() require(\"telescope.builtin\").lsp_implementations({ reuse_win = true }) end, desc = \"Goto Implementation\" }, { \"gy\", function() require(\"telescope.builtin\").lsp_type_definitions({ reuse_win = true }) end, desc = \"Goto T[y]pe Definition\" }, }) end, }","s":"nvim-lspconfig","u":"/extras/editor/telescope","h":"#nvim-lspconfig","p":383},{"i":398,"t":"info You can enable the extra with the :LazyExtras command. Plugins marked as optional will only be configured if they are installed. Below you can find a list of included plugins and their default settings. caution You don't need to copy the default settings to your config. They are only shown here for reference.","s":"Angular","u":"/extras/lang/angular","h":"","p":397},{"i":400,"t":"lang.typescript","s":"Includes the following extras","u":"/extras/lang/angular","h":"#includes-the-following-extras","p":397},{"i":402,"t":"Options Full Spec opts = function(_, opts) if type(opts.ensure_installed) == \"table\" then vim.list_extend(opts.ensure_installed, { \"angular\", \"scss\" }) end vim.api.nvim_create_autocmd({ \"BufReadPost\", \"BufNewFile\" }, { pattern = { \"*.component.html\", \"*.container.html\" }, callback = function() vim.treesitter.start(nil, \"angular\") end, }) end { \"nvim-treesitter\", opts = function(_, opts) if type(opts.ensure_installed) == \"table\" then vim.list_extend(opts.ensure_installed, { \"angular\", \"scss\" }) end vim.api.nvim_create_autocmd({ \"BufReadPost\", \"BufNewFile\" }, { pattern = { \"*.component.html\", \"*.container.html\" }, callback = function() vim.treesitter.start(nil, \"angular\") end, }) end, }","s":"nvim-treesitter","u":"/extras/lang/angular","h":"#nvim-treesitter","p":397},{"i":404,"t":"LSP Servers Options Full Spec opts = { servers = { angularls = {}, }, setup = { angularls = function() LazyVim.lsp.on_attach(function(client) --HACK: disable angular renaming capability due to duplicate rename popping up client.server_capabilities.renameProvider = false end, \"angularls\") end, }, } { \"neovim/nvim-lspconfig\", opts = { servers = { angularls = {}, }, setup = { angularls = function() LazyVim.lsp.on_attach(function(client) --HACK: disable angular renaming capability due to duplicate rename popping up client.server_capabilities.renameProvider = false end, \"angularls\") end, }, }, }","s":"nvim-lspconfig","u":"/extras/lang/angular","h":"#nvim-lspconfig","p":397},{"i":406,"t":"Configure tsserver plugin Options Full Spec opts = function(_, opts) LazyVim.extend(opts.servers.vtsls, \"settings.vtsls.tsserver.globalPlugins\", { { name = \"@angular/language-server\", location = LazyVim.get_pkg_path(\"angular-language-server\", \"/node_modules/@angular/language-server\"), enableForWorkspaceTypeScriptVersions = false, }, }) end { \"neovim/nvim-lspconfig\", opts = function(_, opts) LazyVim.extend(opts.servers.vtsls, \"settings.vtsls.tsserver.globalPlugins\", { { name = \"@angular/language-server\", location = LazyVim.get_pkg_path(\"angular-language-server\", \"/node_modules/@angular/language-server\"), enableForWorkspaceTypeScriptVersions = false, }, }) end, }","s":"nvim-lspconfig","u":"/extras/lang/angular","h":"#nvim-lspconfig-1","p":397},{"i":408,"t":"formatting Options Full Spec opts = function(_, opts) if LazyVim.has_extra(\"formatting.prettier\") then opts.formatters_by_ft = opts.formatters_by_ft or {} opts.formatters_by_ft.htmlangular = { \"prettier\" } end end { \"conform.nvim\", opts = function(_, opts) if LazyVim.has_extra(\"formatting.prettier\") then opts.formatters_by_ft = opts.formatters_by_ft or {} opts.formatters_by_ft.htmlangular = { \"prettier\" } end end, }","s":"conform.nvim","u":"/extras/lang/angular","h":"#conformnvim","p":397},{"i":410,"t":"info You can enable the extra with the :LazyExtras command. Plugins marked as optional will only be configured if they are installed. Below you can find a list of included plugins and their default settings. caution You don't need to copy the default settings to your config. They are only shown here for reference.","s":"Overseer","u":"/extras/editor/overseer","h":"","p":409},{"i":412,"t":"Options Full Spec opts = { dap = false, task_list = { bindings = { [\"\"] = false, [\"\"] = false, [\"\"] = false, [\"\"] = false, }, }, form = { win_opts = { winblend = 0, }, }, confirm = { win_opts = { winblend = 0, }, }, task_win = { win_opts = { winblend = 0, }, }, } { \"stevearc/overseer.nvim\", cmd = { \"OverseerOpen\", \"OverseerClose\", \"OverseerToggle\", \"OverseerSaveBundle\", \"OverseerLoadBundle\", \"OverseerDeleteBundle\", \"OverseerRunCmd\", \"OverseerRun\", \"OverseerInfo\", \"OverseerBuild\", \"OverseerQuickAction\", \"OverseerTaskAction\", \"OverseerClearCache\", }, opts = { dap = false, task_list = { bindings = { [\"\"] = false, [\"\"] = false, [\"\"] = false, [\"\"] = false, }, }, form = { win_opts = { winblend = 0, }, }, confirm = { win_opts = { winblend = 0, }, }, task_win = { win_opts = { winblend = 0, }, }, }, -- stylua: ignore keys = { { \"ow\", \"OverseerToggle\", desc = \"Task list\" }, { \"oo\", \"OverseerRun\", desc = \"Run task\" }, { \"oq\", \"OverseerQuickAction\", desc = \"Action recent task\" }, { \"oi\", \"OverseerInfo\", desc = \"Overseer Info\" }, { \"ob\", \"OverseerBuild\", desc = \"Task builder\" }, { \"ot\", \"OverseerTaskAction\", desc = \"Task action\" }, { \"oc\", \"OverseerClearCache\", desc = \"Clear cache\" }, }, }","s":"overseer.nvim","u":"/extras/editor/overseer","h":"#overseernvim","p":409},{"i":414,"t":"Options Full Spec opts = { integrations = { overseer = true }, } { \"catppuccin\", optional = true, opts = { integrations = { overseer = true }, }, }","s":"catppuccin (optional)","u":"/extras/editor/overseer","h":"#catppuccin-optional","p":409},{"i":416,"t":"Options Full Spec opts = { spec = { { \"o\", group = \"overseer\" }, }, } { \"folke/which-key.nvim\", optional = true, opts = { spec = { { \"o\", group = \"overseer\" }, }, }, }","s":"which-key.nvim (optional)","u":"/extras/editor/overseer","h":"#which-keynvim-optional","p":409},{"i":418,"t":"Options Full Spec opts = function(_, opts) opts.right = opts.right or {} table.insert(opts.right, { title = \"Overseer\", ft = \"OverseerList\", open = function() require(\"overseer\").open() end, }) end { \"folke/edgy.nvim\", optional = true, opts = function(_, opts) opts.right = opts.right or {} table.insert(opts.right, { title = \"Overseer\", ft = \"OverseerList\", open = function() require(\"overseer\").open() end, }) end, }","s":"edgy.nvim (optional)","u":"/extras/editor/overseer","h":"#edgynvim-optional","p":409},{"i":420,"t":"Options Full Spec opts = function(_, opts) opts = opts or {} opts.consumers = opts.consumers or {} opts.consumers.overseer = require(\"neotest.consumers.overseer\") end { \"nvim-neotest/neotest\", optional = true, opts = function(_, opts) opts = opts or {} opts.consumers = opts.consumers or {} opts.consumers.overseer = require(\"neotest.consumers.overseer\") end, }","s":"neotest (optional)","u":"/extras/editor/overseer","h":"#neotest-optional","p":409},{"i":422,"t":"Options Full Spec opts = function() require(\"overseer\").enable_dap() end { \"mfussenegger/nvim-dap\", optional = true, opts = function() require(\"overseer\").enable_dap() end, }","s":"nvim-dap (optional)","u":"/extras/editor/overseer","h":"#nvim-dap-optional","p":409},{"i":424,"t":"info You can enable the extra with the :LazyExtras command. Plugins marked as optional will only be configured if they are installed. Below you can find a list of included plugins and their default settings. caution You don't need to copy the default settings to your config. They are only shown here for reference.","s":"Black Formatter","u":"/extras/formatting/black","h":"","p":423},{"i":426,"t":"Options Full Spec opts = function(_, opts) table.insert(opts.ensure_installed, \"black\") end { \"mason-org/mason.nvim\", opts = function(_, opts) table.insert(opts.ensure_installed, \"black\") end, }","s":"mason.nvim","u":"/extras/formatting/black","h":"#masonnvim","p":423},{"i":428,"t":"Options Full Spec opts = function(_, opts) local nls = require(\"null-ls\") opts.sources = opts.sources or {} table.insert(opts.sources, nls.builtins.formatting.black) end { \"nvimtools/none-ls.nvim\", optional = true, opts = function(_, opts) local nls = require(\"null-ls\") opts.sources = opts.sources or {} table.insert(opts.sources, nls.builtins.formatting.black) end, }","s":"none-ls.nvim (optional)","u":"/extras/formatting/black","h":"#none-lsnvim-optional","p":423},{"i":430,"t":"Options Full Spec opts = { formatters_by_ft = { [\"python\"] = { \"black\" }, }, } { \"stevearc/conform.nvim\", optional = true, opts = { formatters_by_ft = { [\"python\"] = { \"black\" }, }, }, }","s":"conform.nvim (optional)","u":"/extras/formatting/black","h":"#conformnvim-optional","p":423},{"i":432,"t":"info You can enable the extra with the :LazyExtras command. Plugins marked as optional will only be configured if they are installed. Below you can find a list of included plugins and their default settings. caution You don't need to copy the default settings to your config. They are only shown here for reference.","s":"Ansible","u":"/extras/lang/ansible","h":"","p":431},{"i":434,"t":"Options Full Spec opts = { ensure_installed = { \"ansible-lint\" } } { \"mason-org/mason.nvim\", opts = { ensure_installed = { \"ansible-lint\" } }, }","s":"mason.nvim","u":"/extras/lang/ansible","h":"#masonnvim","p":431},{"i":436,"t":"Options Full Spec opts = { servers = { ansiblels = {}, }, } { \"neovim/nvim-lspconfig\", opts = { servers = { ansiblels = {}, }, }, }","s":"nvim-lspconfig","u":"/extras/lang/ansible","h":"#nvim-lspconfig","p":431},{"i":438,"t":"Options Full Spec opts = nil { \"mfussenegger/nvim-ansible\", ft = { \"yaml\" }, keys = { { \"ta\", function() require(\"ansible\").run() end, ft = \"yaml.ansible\", desc = \"Ansible Run Playbook/Role\", silent = true, }, }, }","s":"nvim-ansible","u":"/extras/lang/ansible","h":"#nvim-ansible","p":431},{"i":440,"t":"info You can enable the extra with the :LazyExtras command. Plugins marked as optional will only be configured if they are installed. Below you can find a list of included plugins and their default settings. caution You don't need to copy the default settings to your config. They are only shown here for reference.","s":"Astro","u":"/extras/lang/astro","h":"","p":439},{"i":442,"t":"lang.typescript","s":"Includes the following extras","u":"/extras/lang/astro","h":"#includes-the-following-extras","p":439},{"i":444,"t":"Options Full Spec opts = { ensure_installed = { \"astro\", \"css\" } } { \"nvim-treesitter/nvim-treesitter\", opts = { ensure_installed = { \"astro\", \"css\" } }, }","s":"nvim-treesitter","u":"/extras/lang/astro","h":"#nvim-treesitter","p":439},{"i":446,"t":"LSP Servers Options Full Spec opts = { servers = { astro = {}, }, } { \"neovim/nvim-lspconfig\", opts = { servers = { astro = {}, }, }, }","s":"nvim-lspconfig","u":"/extras/lang/astro","h":"#nvim-lspconfig","p":439},{"i":448,"t":"Configure tsserver plugin Options Full Spec opts = function(_, opts) LazyVim.extend(opts.servers.vtsls, \"settings.vtsls.tsserver.globalPlugins\", { { name = \"@astrojs/ts-plugin\", location = LazyVim.get_pkg_path(\"astro-language-server\", \"/node_modules/@astrojs/ts-plugin\"), enableForWorkspaceTypeScriptVersions = true, }, }) end { \"neovim/nvim-lspconfig\", opts = function(_, opts) LazyVim.extend(opts.servers.vtsls, \"settings.vtsls.tsserver.globalPlugins\", { { name = \"@astrojs/ts-plugin\", location = LazyVim.get_pkg_path(\"astro-language-server\", \"/node_modules/@astrojs/ts-plugin\"), enableForWorkspaceTypeScriptVersions = true, }, }) end, }","s":"nvim-lspconfig","u":"/extras/lang/astro","h":"#nvim-lspconfig-1","p":439},{"i":450,"t":"Options Full Spec opts = function(_, opts) if LazyVim.has_extra(\"formatting.prettier\") then opts.formatters_by_ft = opts.formatters_by_ft or {} opts.formatters_by_ft.astro = { \"prettier\" } end end { \"conform.nvim\", opts = function(_, opts) if LazyVim.has_extra(\"formatting.prettier\") then opts.formatters_by_ft = opts.formatters_by_ft or {} opts.formatters_by_ft.astro = { \"prettier\" } end end, }","s":"conform.nvim","u":"/extras/lang/astro","h":"#conformnvim","p":439},{"i":452,"t":"info You can enable the extra with the :LazyExtras command. Plugins marked as optional will only be configured if they are installed.","s":"Snacks_picker","u":"/extras/editor/snacks_picker","h":"","p":451},{"i":454,"t":"Additional options for this extra can be configured in your lua/config/options.lua file: lua/config/options.lua -- In case you don't want to use `:LazyExtras`, -- then you need to set the option below. vim.g.lazyvim_picker = \"snacks\" Below you can find a list of included plugins and their default settings. caution You don't need to copy the default settings to your config. They are only shown here for reference.","s":"Options","u":"/extras/editor/snacks_picker","h":"#options","p":451},{"i":456,"t":"Options Full Spec opts = { picker = { win = { input = { keys = { [\"\"] = { \"toggle_cwd\", mode = { \"n\", \"i\" }, }, }, }, }, actions = { ---@param p snacks.Picker toggle_cwd = function(p) local root = LazyVim.root({ buf = p.input.filter.current_buf, normalize = true }) local cwd = vim.fs.normalize((vim.uv or vim.loop).cwd() or \".\") local current = p:cwd() p:set_cwd(current == root and cwd or root) p:find() end, }, }, } { \"folke/snacks.nvim\", opts = { picker = { win = { input = { keys = { [\"\"] = { \"toggle_cwd\", mode = { \"n\", \"i\" }, }, }, }, }, actions = { ---@param p snacks.Picker toggle_cwd = function(p) local root = LazyVim.root({ buf = p.input.filter.current_buf, normalize = true }) local cwd = vim.fs.normalize((vim.uv or vim.loop).cwd() or \".\") local current = p:cwd() p:set_cwd(current == root and cwd or root) p:find() end, }, }, }, -- stylua: ignore keys = { { \",\", function() Snacks.picker.buffers() end, desc = \"Buffers\" }, { \"/\", LazyVim.pick(\"grep\"), desc = \"Grep (Root Dir)\" }, { \":\", function() Snacks.picker.command_history() end, desc = \"Command History\" }, { \"\", LazyVim.pick(\"files\"), desc = \"Find Files (Root Dir)\" }, { \"n\", function() Snacks.picker.notifications() end, desc = \"Notification History\" }, -- find { \"fb\", function() Snacks.picker.buffers() end, desc = \"Buffers\" }, { \"fB\", function() Snacks.picker.buffers({ hidden = true, nofile = true }) end, desc = \"Buffers (all)\" }, { \"fc\", LazyVim.pick.config_files(), desc = \"Find Config File\" }, { \"ff\", LazyVim.pick(\"files\"), desc = \"Find Files (Root Dir)\" }, { \"fF\", LazyVim.pick(\"files\", { root = false }), desc = \"Find Files (cwd)\" }, { \"fg\", function() Snacks.picker.git_files() end, desc = \"Find Files (git-files)\" }, { \"fr\", LazyVim.pick(\"oldfiles\"), desc = \"Recent\" }, { \"fR\", function() Snacks.picker.recent({ filter = { cwd = true }}) end, desc = \"Recent (cwd)\" }, { \"fp\", function() Snacks.picker.projects() end, desc = \"Projects\" }, -- git { \"gd\", function() Snacks.picker.git_diff() end, desc = \"Git Diff (hunks)\" }, { \"gD\", function() Snacks.picker.git_diff({ base = \"origin\" }) end, desc = \"Git Diff (origin)\" }, { \"gs\", function() Snacks.picker.git_status() end, desc = \"Git Status\" }, { \"gS\", function() Snacks.picker.git_stash() end, desc = \"Git Stash\" }, -- Grep { \"sb\", function() Snacks.picker.lines() end, desc = \"Buffer Lines\" }, { \"sB\", function() Snacks.picker.grep_buffers() end, desc = \"Grep Open Buffers\" }, { \"sg\", LazyVim.pick(\"live_grep\"), desc = \"Grep (Root Dir)\" }, { \"sG\", LazyVim.pick(\"live_grep\", { root = false }), desc = \"Grep (cwd)\" }, { \"sp\", function() Snacks.picker.lazy() end, desc = \"Search for Plugin Spec\" }, { \"sw\", LazyVim.pick(\"grep_word\"), desc = \"Visual selection or word (Root Dir)\", mode = { \"n\", \"x\" } }, { \"sW\", LazyVim.pick(\"grep_word\", { root = false }), desc = \"Visual selection or word (cwd)\", mode = { \"n\", \"x\" } }, -- search { 's\"', function() Snacks.picker.registers() end, desc = \"Registers\" }, { 's/', function() Snacks.picker.search_history() end, desc = \"Search History\" }, { \"sa\", function() Snacks.picker.autocmds() end, desc = \"Autocmds\" }, { \"sc\", function() Snacks.picker.command_history() end, desc = \"Command History\" }, { \"sC\", function() Snacks.picker.commands() end, desc = \"Commands\" }, { \"sd\", function() Snacks.picker.diagnostics() end, desc = \"Diagnostics\" }, { \"sD\", function() Snacks.picker.diagnostics_buffer() end, desc = \"Buffer Diagnostics\" }, { \"sh\", function() Snacks.picker.help() end, desc = \"Help Pages\" }, { \"sH\", function() Snacks.picker.highlights() end, desc = \"Highlights\" }, { \"si\", function() Snacks.picker.icons() end, desc = \"Icons\" }, { \"sj\", function() Snacks.picker.jumps() end, desc = \"Jumps\" }, { \"sk\", function() Snacks.picker.keymaps() end, desc = \"Keymaps\" }, { \"sl\", function() Snacks.picker.loclist() end, desc = \"Location List\" }, { \"sM\", function() Snacks.picker.man() end, desc = \"Man Pages\" }, { \"sm\", function() Snacks.picker.marks() end, desc = \"Marks\" }, { \"sR\", function() Snacks.picker.resume() end, desc = \"Resume\" }, { \"sq\", function() Snacks.picker.qflist() end, desc = \"Quickfix List\" }, { \"su\", function() Snacks.picker.undo() end, desc = \"Undotree\" }, -- ui { \"uC\", function() Snacks.picker.colorschemes() end, desc = \"Colorschemes\" }, }, }","s":"snacks.nvim","u":"/extras/editor/snacks_picker","h":"#snacksnvim","p":451},{"i":458,"t":"Options Full Spec opts = function(_, opts) if LazyVim.has(\"trouble.nvim\") then return vim.tbl_deep_extend(\"force\", opts or {}, { picker = { actions = { trouble_open = function(...) return require(\"trouble.sources.snacks\").actions.trouble_open.action(...) end, }, win = { input = { keys = { [\"\"] = { \"trouble_open\", mode = { \"n\", \"i\" }, }, }, }, }, }, }) end end { \"folke/snacks.nvim\", opts = function(_, opts) if LazyVim.has(\"trouble.nvim\") then return vim.tbl_deep_extend(\"force\", opts or {}, { picker = { actions = { trouble_open = function(...) return require(\"trouble.sources.snacks\").actions.trouble_open.action(...) end, }, win = { input = { keys = { [\"\"] = { \"trouble_open\", mode = { \"n\", \"i\" }, }, }, }, }, }, }) end end, }","s":"snacks.nvim","u":"/extras/editor/snacks_picker","h":"#snacksnvim-1","p":451},{"i":460,"t":"Options Full Spec opts = function() local Keys = require(\"lazyvim.plugins.lsp.keymaps\").get() -- stylua: ignore vim.list_extend(Keys, { { \"gd\", function() Snacks.picker.lsp_definitions() end, desc = \"Goto Definition\", has = \"definition\" }, { \"gr\", function() Snacks.picker.lsp_references() end, nowait = true, desc = \"References\" }, { \"gI\", function() Snacks.picker.lsp_implementations() end, desc = \"Goto Implementation\" }, { \"gy\", function() Snacks.picker.lsp_type_definitions() end, desc = \"Goto T[y]pe Definition\" }, { \"ss\", function() Snacks.picker.lsp_symbols({ filter = LazyVim.config.kind_filter }) end, desc = \"LSP Symbols\", has = \"documentSymbol\" }, { \"sS\", function() Snacks.picker.lsp_workspace_symbols({ filter = LazyVim.config.kind_filter }) end, desc = \"LSP Workspace Symbols\", has = \"workspace/symbols\" }, { \"gai\", function() Snacks.picker.lsp_incoming_calls() end, desc = \"C[a]lls Incoming\", has = \"callHierarchy/incomingCalls\" }, { \"gao\", function() Snacks.picker.lsp_outgoing_calls() end, desc = \"C[a]lls Outgoing\", has = \"callHierarchy/outgoingCalls\" }, }) end { \"neovim/nvim-lspconfig\", opts = function() local Keys = require(\"lazyvim.plugins.lsp.keymaps\").get() -- stylua: ignore vim.list_extend(Keys, { { \"gd\", function() Snacks.picker.lsp_definitions() end, desc = \"Goto Definition\", has = \"definition\" }, { \"gr\", function() Snacks.picker.lsp_references() end, nowait = true, desc = \"References\" }, { \"gI\", function() Snacks.picker.lsp_implementations() end, desc = \"Goto Implementation\" }, { \"gy\", function() Snacks.picker.lsp_type_definitions() end, desc = \"Goto T[y]pe Definition\" }, { \"ss\", function() Snacks.picker.lsp_symbols({ filter = LazyVim.config.kind_filter }) end, desc = \"LSP Symbols\", has = \"documentSymbol\" }, { \"sS\", function() Snacks.picker.lsp_workspace_symbols({ filter = LazyVim.config.kind_filter }) end, desc = \"LSP Workspace Symbols\", has = \"workspace/symbols\" }, { \"gai\", function() Snacks.picker.lsp_incoming_calls() end, desc = \"C[a]lls Incoming\", has = \"callHierarchy/incomingCalls\" }, { \"gao\", function() Snacks.picker.lsp_outgoing_calls() end, desc = \"C[a]lls Outgoing\", has = \"callHierarchy/outgoingCalls\" }, }) end, }","s":"nvim-lspconfig","u":"/extras/editor/snacks_picker","h":"#nvim-lspconfig","p":451},{"i":462,"t":"Options Full Spec opts = function(_, opts) table.insert(opts.dashboard.preset.keys, 3, { icon = \" \", key = \"p\", desc = \"Projects\", action = \":lua Snacks.picker.projects()\", }) end { \"folke/snacks.nvim\", opts = function(_, opts) table.insert(opts.dashboard.preset.keys, 3, { icon = \" \", key = \"p\", desc = \"Projects\", action = \":lua Snacks.picker.projects()\", }) end, }","s":"snacks.nvim","u":"/extras/editor/snacks_picker","h":"#snacksnvim-2","p":451},{"i":464,"t":"Options Full Spec opts = { picker = { win = { input = { keys = { [\"\"] = { \"flash\", mode = { \"n\", \"i\" } }, [\"s\"] = { \"flash\" }, }, }, }, actions = { flash = function(picker) require(\"flash\").jump({ pattern = \"^\", label = { after = { 0, 0 } }, search = { mode = \"search\", exclude = { function(win) return vim.bo[vim.api.nvim_win_get_buf(win)].filetype ~= \"snacks_picker_list\" end, }, }, action = function(match) local idx = picker.list:row2idx(match.pos[1]) picker.list:_move(idx, true, true) end, }) end, }, }, } { \"folke/snacks.nvim\", opts = { picker = { win = { input = { keys = { [\"\"] = { \"flash\", mode = { \"n\", \"i\" } }, [\"s\"] = { \"flash\" }, }, }, }, actions = { flash = function(picker) require(\"flash\").jump({ pattern = \"^\", label = { after = { 0, 0 } }, search = { mode = \"search\", exclude = { function(win) return vim.bo[vim.api.nvim_win_get_buf(win)].filetype ~= \"snacks_picker_list\" end, }, }, action = function(match) local idx = picker.list:row2idx(match.pos[1]) picker.list:_move(idx, true, true) end, }) end, }, }, }, }","s":"snacks.nvim","u":"/extras/editor/snacks_picker","h":"#snacksnvim-3","p":451},{"i":466,"t":"Options Full Spec opts = nil { \"folke/todo-comments.nvim\", optional = true, -- stylua: ignore keys = { { \"st\", function() Snacks.picker.todo_comments() end, desc = \"Todo\" }, { \"sT\", function () Snacks.picker.todo_comments({ keywords = { \"TODO\", \"FIX\", \"FIXME\" } }) end, desc = \"Todo/Fix/Fixme\" }, }, }","s":"todo-comments.nvim (optional)","u":"/extras/editor/snacks_picker","h":"#todo-commentsnvim-optional","p":451},{"i":468,"t":"Options Full Spec opts = function(_, dashboard) local button = dashboard.button(\"p\", \" \" .. \" Projects\", [[ lua Snacks.picker.projects() ]]) button.opts.hl = \"AlphaButtons\" button.opts.hl_shortcut = \"AlphaShortcut\" table.insert(dashboard.section.buttons.val, 4, button) end { \"goolord/alpha-nvim\", optional = true, opts = function(_, dashboard) local button = dashboard.button(\"p\", \" \" .. \" Projects\", [[ lua Snacks.picker.projects() ]]) button.opts.hl = \"AlphaButtons\" button.opts.hl_shortcut = \"AlphaShortcut\" table.insert(dashboard.section.buttons.val, 4, button) end, }","s":"alpha-nvim (optional)","u":"/extras/editor/snacks_picker","h":"#alpha-nvim-optional","p":451},{"i":470,"t":"Options Full Spec opts = function(_, opts) local items = { { name = \"Projects\", action = [[lua Snacks.picker.projects()]], section = string.rep(\" \", 22) .. \"Telescope\", }, } vim.list_extend(opts.items, items) end { \"nvim-mini/mini.starter\", optional = true, opts = function(_, opts) local items = { { name = \"Projects\", action = [[lua Snacks.picker.projects()]], section = string.rep(\" \", 22) .. \"Telescope\", }, } vim.list_extend(opts.items, items) end, }","s":"mini.starter (optional)","u":"/extras/editor/snacks_picker","h":"#ministarter-optional","p":451},{"i":472,"t":"Options Full Spec opts = function(_, opts) if not vim.tbl_get(opts, \"config\", \"center\") then return end local projects = { action = \"lua Snacks.picker.projects()\", desc = \" Projects\", icon = \" \", key = \"p\", } projects.desc = projects.desc .. string.rep(\" \", 43 - #projects.desc) projects.key_format = \" %s\" table.insert(opts.config.center, 3, projects) end { \"nvimdev/dashboard-nvim\", optional = true, opts = function(_, opts) if not vim.tbl_get(opts, \"config\", \"center\") then return end local projects = { action = \"lua Snacks.picker.projects()\", desc = \" Projects\", icon = \" \", key = \"p\", } projects.desc = projects.desc .. string.rep(\" \", 43 - #projects.desc) projects.key_format = \" %s\" table.insert(opts.config.center, 3, projects) end, }","s":"dashboard-nvim (optional)","u":"/extras/editor/snacks_picker","h":"#dashboard-nvim-optional","p":451},{"i":474,"t":"Options Full Spec opts = nil { \"folke/flash.nvim\", optional = true, specs = { { \"folke/snacks.nvim\", opts = { picker = { win = { input = { keys = { [\"\"] = { \"flash\", mode = { \"n\", \"i\" } }, [\"s\"] = { \"flash\" }, }, }, }, actions = { flash = function(picker) require(\"flash\").jump({ pattern = \"^\", label = { after = { 0, 0 } }, search = { mode = \"search\", exclude = { function(win) return vim.bo[vim.api.nvim_win_get_buf(win)].filetype ~= \"snacks_picker_list\" end, }, }, action = function(match) local idx = picker.list:row2idx(match.pos[1]) picker.list:_move(idx, true, true) end, }) end, }, }, }, }, }, }","s":"flash.nvim (optional)","u":"/extras/editor/snacks_picker","h":"#flashnvim-optional","p":451},{"i":476,"t":"info You can enable the extra with the :LazyExtras command. Plugins marked as optional will only be configured if they are installed. Below you can find a list of included plugins and their default settings. caution You don't need to copy the default settings to your config. They are only shown here for reference.","s":"CMake","u":"/extras/lang/cmake","h":"","p":475},{"i":478,"t":"Options Full Spec opts = { ensure_installed = { \"cmake\" } } { \"nvim-treesitter/nvim-treesitter\", opts = { ensure_installed = { \"cmake\" } }, }","s":"nvim-treesitter","u":"/extras/lang/cmake","h":"#nvim-treesitter","p":475},{"i":480,"t":"Options Full Spec opts = { ensure_installed = { \"cmakelang\", \"cmakelint\" } } { \"mason.nvim\", opts = { ensure_installed = { \"cmakelang\", \"cmakelint\" } }, }","s":"mason.nvim","u":"/extras/lang/cmake","h":"#masonnvim","p":475},{"i":482,"t":"Options Full Spec opts = { servers = { neocmake = {}, }, } { \"neovim/nvim-lspconfig\", opts = { servers = { neocmake = {}, }, }, }","s":"nvim-lspconfig","u":"/extras/lang/cmake","h":"#nvim-lspconfig","p":475},{"i":484,"t":"Options Full Spec opts = {} { \"Civitasv/cmake-tools.nvim\", lazy = true, init = function() local loaded = false local function check() local cwd = vim.uv.cwd() if vim.fn.filereadable(cwd .. \"/CMakeLists.txt\") == 1 then require(\"lazy\").load({ plugins = { \"cmake-tools.nvim\" } }) loaded = true end end check() vim.api.nvim_create_autocmd(\"DirChanged\", { callback = function() if not loaded then check() end end, }) end, opts = {}, }","s":"cmake-tools.nvim","u":"/extras/lang/cmake","h":"#cmake-toolsnvim","p":475},{"i":486,"t":"Options Full Spec opts = nil { \"cmake-tools.nvim\" }","s":"cmake-tools.nvim","u":"/extras/lang/cmake","h":"#cmake-toolsnvim-1","p":475},{"i":488,"t":"Options Full Spec opts = function(_, opts) local nls = require(\"null-ls\") opts.sources = vim.list_extend(opts.sources or {}, { nls.builtins.diagnostics.cmake_lint, }) end { \"nvimtools/none-ls.nvim\", optional = true, opts = function(_, opts) local nls = require(\"null-ls\") opts.sources = vim.list_extend(opts.sources or {}, { nls.builtins.diagnostics.cmake_lint, }) end, }","s":"none-ls.nvim (optional)","u":"/extras/lang/cmake","h":"#none-lsnvim-optional","p":475},{"i":490,"t":"Options Full Spec opts = { linters_by_ft = { cmake = { \"cmakelint\" }, }, } { \"mfussenegger/nvim-lint\", optional = true, opts = { linters_by_ft = { cmake = { \"cmakelint\" }, }, }, }","s":"nvim-lint (optional)","u":"/extras/lang/cmake","h":"#nvim-lint-optional","p":475},{"i":492,"t":"info You can enable the extra with the :LazyExtras command. Plugins marked as optional will only be configured if they are installed. Below you can find a list of included plugins and their default settings. caution You don't need to copy the default settings to your config. They are only shown here for reference.","s":"Clojure","u":"/extras/lang/clojure","h":"","p":491},{"i":494,"t":"Add Clojure & related to treesitter Options Full Spec opts = { ensure_installed = { \"clojure\" } } { \"nvim-treesitter/nvim-treesitter\", opts = { ensure_installed = { \"clojure\" } }, }","s":"nvim-treesitter","u":"/extras/lang/clojure","h":"#nvim-treesitter","p":491},{"i":496,"t":"Options Full Spec opts = nil { \"PaterJason/cmp-conjure\", }","s":"cmp-conjure","u":"/extras/lang/clojure","h":"#cmp-conjure","p":491},{"i":498,"t":"Add s-exp mappings Options Full Spec opts = {} { \"julienvincent/nvim-paredit\", opts = {}, event = \"LazyFile\" }","s":"nvim-paredit","u":"/extras/lang/clojure","h":"#nvim-paredit","p":491},{"i":500,"t":"Colorize the output of the log buffer Options Full Spec opts = { line_starts_at = 3, } { \"m00qek/baleia.nvim\", opts = { line_starts_at = 3, }, config = function(_, opts) vim.g.conjure_baleia = require(\"baleia\").setup(opts) vim.api.nvim_create_user_command(\"BaleiaColorize\", function() vim.g.conjure_baleia.once(vim.api.nvim_get_current_buf()) end, { bang = true }) vim.api.nvim_create_user_command(\"BaleiaLogs\", vim.g.conjure_baleia.logger.show, { bang = true }) end, }","s":"baleia.nvim","u":"/extras/lang/clojure","h":"#baleianvim","p":491},{"i":502,"t":"Use Clojure REPL Options Full Spec opts = {} { \"Olical/conjure\", event = \"LazyFile\", config = function(_, _) require(\"conjure.main\").main() require(\"conjure.mapping\")[\"on-filetype\"]() end, init = function() -- print color codes if baleia.nvim is available local colorize = require(\"lazyvim.util\").has(\"baleia.nvim\") if colorize then vim.g[\"conjure#log#strip_ansi_escape_sequences_line_limit\"] = 0 else vim.g[\"conjure#log#strip_ansi_escape_sequences_line_limit\"] = 1 end -- disable diagnostics in log buffer and colorize it vim.api.nvim_create_autocmd({ \"BufWinEnter\" }, { pattern = \"conjure-log-*\", callback = function() local buffer = vim.api.nvim_get_current_buf() vim.diagnostic.enable(false, { bufnr = buffer }) if colorize and vim.g.conjure_baleia then vim.g.conjure_baleia.automatically(buffer) end vim.keymap.set( { \"n\", \"x\" }, \"[c\", \"call search('^; -\\\\+$', 'bw')\", { silent = true, buffer = true, desc = \"Jumps to the begining of previous evaluation output.\" } ) vim.keymap.set( { \"n\", \"x\" }, \"]c\", \"call search('^; -\\\\+$', 'w')\", { silent = true, buffer = true, desc = \"Jumps to the begining of next evaluation output.\" } ) end, }) -- prefer LSP for jump-to-definition and symbol-doc, and use conjure -- alternatives with K and gd vim.g[\"conjure#mapping#doc_word\"] = \"K\" vim.g[\"conjure#mapping#def_word\"] = \"gd\" end, }","s":"conjure","u":"/extras/lang/clojure","h":"#conjure","p":491},{"i":504,"t":"Extend auto completion Options Full Spec opts = function(_, opts) if type(opts.sources) == \"table\" then vim.list_extend(opts.sources, { name = \"conjure\" }) end end { \"hrsh7th/nvim-cmp\", optional = true, dependencies = { \"PaterJason/cmp-conjure\", }, opts = function(_, opts) if type(opts.sources) == \"table\" then vim.list_extend(opts.sources, { name = \"conjure\" }) end end, }","s":"nvim-cmp (optional)","u":"/extras/lang/clojure","h":"#nvim-cmp-optional","p":491},{"i":506,"t":"info You can enable the extra with the :LazyExtras command. Plugins marked as optional will only be configured if they are installed. Below you can find a list of included plugins and their default settings. caution You don't need to copy the default settings to your config. They are only shown here for reference.","s":"Dart","u":"/extras/lang/dart","h":"","p":505},{"i":508,"t":"Options Full Spec opts = { servers = { dartls = {}, }, } { \"neovim/nvim-lspconfig\", opts = { servers = { dartls = {}, }, }, }","s":"nvim-lspconfig","u":"/extras/lang/dart","h":"#nvim-lspconfig","p":505},{"i":510,"t":"Options Full Spec opts = { ensure_installed = { \"dart\" } } { \"nvim-treesitter/nvim-treesitter\", opts = { ensure_installed = { \"dart\" } }, }","s":"nvim-treesitter","u":"/extras/lang/dart","h":"#nvim-treesitter","p":505},{"i":512,"t":"Options Full Spec opts = { formatters_by_ft = { dart = { \"dart_format\" }, }, } { \"stevearc/conform.nvim\", opts = { formatters_by_ft = { dart = { \"dart_format\" }, }, }, }","s":"conform.nvim","u":"/extras/lang/dart","h":"#conformnvim","p":505},{"i":514,"t":"Options Full Spec opts = nil { \"sidlatau/neotest-dart\", }","s":"neotest-dart","u":"/extras/lang/dart","h":"#neotest-dart","p":505},{"i":516,"t":"Options Full Spec opts = { adapters = { [\"neotest-dart\"] = {}, }, } { \"nvim-neotest/neotest\", optional = true, dependencies = { \"sidlatau/neotest-dart\", }, opts = { adapters = { [\"neotest-dart\"] = {}, }, }, }","s":"neotest (optional)","u":"/extras/lang/dart","h":"#neotest-optional","p":505},{"i":518,"t":"info You can enable the extra with the :LazyExtras command. Plugins marked as optional will only be configured if they are installed. Below you can find a list of included plugins and their default settings. caution You don't need to copy the default settings to your config. They are only shown here for reference.","s":"Docker","u":"/extras/lang/docker","h":"","p":517},{"i":520,"t":"Options Full Spec opts = { ensure_installed = { \"dockerfile\" } } { \"nvim-treesitter/nvim-treesitter\", opts = { ensure_installed = { \"dockerfile\" } }, }","s":"nvim-treesitter","u":"/extras/lang/docker","h":"#nvim-treesitter","p":517},{"i":522,"t":"Options Full Spec opts = { ensure_installed = { \"hadolint\" } } { \"mason.nvim\", opts = { ensure_installed = { \"hadolint\" } }, }","s":"mason.nvim","u":"/extras/lang/docker","h":"#masonnvim","p":517},{"i":524,"t":"Options Full Spec opts = { servers = { dockerls = {}, docker_compose_language_service = {}, }, } { \"neovim/nvim-lspconfig\", opts = { servers = { dockerls = {}, docker_compose_language_service = {}, }, }, }","s":"nvim-lspconfig","u":"/extras/lang/docker","h":"#nvim-lspconfig","p":517},{"i":526,"t":"Options Full Spec opts = function(_, opts) local nls = require(\"null-ls\") opts.sources = vim.list_extend(opts.sources or {}, { nls.builtins.diagnostics.hadolint, }) end { \"nvimtools/none-ls.nvim\", optional = true, opts = function(_, opts) local nls = require(\"null-ls\") opts.sources = vim.list_extend(opts.sources or {}, { nls.builtins.diagnostics.hadolint, }) end, }","s":"none-ls.nvim (optional)","u":"/extras/lang/docker","h":"#none-lsnvim-optional","p":517},{"i":528,"t":"Options Full Spec opts = { linters_by_ft = { dockerfile = { \"hadolint\" }, }, } { \"mfussenegger/nvim-lint\", optional = true, opts = { linters_by_ft = { dockerfile = { \"hadolint\" }, }, }, }","s":"nvim-lint (optional)","u":"/extras/lang/docker","h":"#nvim-lint-optional","p":517},{"i":530,"t":"info You can enable the extra with the :LazyExtras command. Plugins marked as optional will only be configured if they are installed. Below you can find a list of included plugins and their default settings. caution You don't need to copy the default settings to your config. They are only shown here for reference.","s":"Clangd","u":"/extras/lang/clangd","h":"","p":529},{"i":532,"t":"Add C/C++ to treesitter Options Full Spec opts = { ensure_installed = { \"cpp\" } } { \"nvim-treesitter/nvim-treesitter\", opts = { ensure_installed = { \"cpp\" } }, }","s":"nvim-treesitter","u":"/extras/lang/clangd","h":"#nvim-treesitter","p":529},{"i":534,"t":"Options Full Spec opts = { inlay_hints = { inline = false, }, ast = { --These require codicons (https://github.com/microsoft/vscode-codicons) role_icons = { type = \"\", declaration = \"\", expression = \"\", specifier = \"\", statement = \"\", [\"template argument\"] = \"\", }, kind_icons = { Compound = \"\", Recovery = \"\", TranslationUnit = \"\", PackExpansion = \"\", TemplateTypeParm = \"\", TemplateTemplateParm = \"\", TemplateParamObject = \"\", }, }, } { \"p00f/clangd_extensions.nvim\", lazy = true, config = function() end, opts = { inlay_hints = { inline = false, }, ast = { --These require codicons (https://github.com/microsoft/vscode-codicons) role_icons = { type = \"\", declaration = \"\", expression = \"\", specifier = \"\", statement = \"\", [\"template argument\"] = \"\", }, kind_icons = { Compound = \"\", Recovery = \"\", TranslationUnit = \"\", PackExpansion = \"\", TemplateTypeParm = \"\", TemplateTemplateParm = \"\", TemplateParamObject = \"\", }, }, }, }","s":"clangd_extensions.nvim","u":"/extras/lang/clangd","h":"#clangd_extensionsnvim","p":529},{"i":536,"t":"Correctly setup lspconfig for clangd 🚀 Options Full Spec opts = { servers = { -- Ensure mason installs the server clangd = { keys = { { \"ch\", \"LspClangdSwitchSourceHeader\", desc = \"Switch Source/Header (C/C++)\" }, }, root_markers = { \"compile_commands.json\", \"compile_flags.txt\", \"configure.ac\", -- AutoTools \"Makefile\", \"configure.ac\", \"configure.in\", \"config.h.in\", \"meson.build\", \"meson_options.txt\", \"build.ninja\", \".git\", }, capabilities = { offsetEncoding = { \"utf-16\" }, }, cmd = { \"clangd\", \"--background-index\", \"--clang-tidy\", \"--header-insertion=iwyu\", \"--completion-style=detailed\", \"--function-arg-placeholders\", \"--fallback-style=llvm\", }, init_options = { usePlaceholders = true, completeUnimported = true, clangdFileStatus = true, }, }, }, setup = { clangd = function(_, opts) local clangd_ext_opts = LazyVim.opts(\"clangd_extensions.nvim\") require(\"clangd_extensions\").setup(vim.tbl_deep_extend(\"force\", clangd_ext_opts or {}, { server = opts })) return false end, }, } { \"neovim/nvim-lspconfig\", opts = { servers = { -- Ensure mason installs the server clangd = { keys = { { \"ch\", \"LspClangdSwitchSourceHeader\", desc = \"Switch Source/Header (C/C++)\" }, }, root_markers = { \"compile_commands.json\", \"compile_flags.txt\", \"configure.ac\", -- AutoTools \"Makefile\", \"configure.ac\", \"configure.in\", \"config.h.in\", \"meson.build\", \"meson_options.txt\", \"build.ninja\", \".git\", }, capabilities = { offsetEncoding = { \"utf-16\" }, }, cmd = { \"clangd\", \"--background-index\", \"--clang-tidy\", \"--header-insertion=iwyu\", \"--completion-style=detailed\", \"--function-arg-placeholders\", \"--fallback-style=llvm\", }, init_options = { usePlaceholders = true, completeUnimported = true, clangdFileStatus = true, }, }, }, setup = { clangd = function(_, opts) local clangd_ext_opts = LazyVim.opts(\"clangd_extensions.nvim\") require(\"clangd_extensions\").setup(vim.tbl_deep_extend(\"force\", clangd_ext_opts or {}, { server = opts })) return false end, }, }, }","s":"nvim-lspconfig","u":"/extras/lang/clangd","h":"#nvim-lspconfig","p":529},{"i":538,"t":"Options Full Spec opts = function(_, opts) opts.sorting = opts.sorting or {} opts.sorting.comparators = opts.sorting.comparators or {} table.insert(opts.sorting.comparators, 1, require(\"clangd_extensions.cmp_scores\")) end { \"hrsh7th/nvim-cmp\", optional = true, opts = function(_, opts) opts.sorting = opts.sorting or {} opts.sorting.comparators = opts.sorting.comparators or {} table.insert(opts.sorting.comparators, 1, require(\"clangd_extensions.cmp_scores\")) end, }","s":"nvim-cmp (optional)","u":"/extras/lang/clangd","h":"#nvim-cmp-optional","p":529},{"i":540,"t":"Options Full Spec opts = function() local dap = require(\"dap\") if not dap.adapters[\"codelldb\"] then require(\"dap\").adapters[\"codelldb\"] = { type = \"server\", host = \"localhost\", port = \"${port}\", executable = { command = \"codelldb\", args = { \"--port\", \"${port}\", }, }, } end for _, lang in ipairs({ \"c\", \"cpp\" }) do dap.configurations[lang] = { { type = \"codelldb\", request = \"launch\", name = \"Launch file\", program = function() return vim.fn.input(\"Path to executable: \", vim.fn.getcwd() .. \"/\", \"file\") end, cwd = \"${workspaceFolder}\", }, { type = \"codelldb\", request = \"attach\", name = \"Attach to process\", pid = require(\"dap.utils\").pick_process, cwd = \"${workspaceFolder}\", }, } end end { \"mfussenegger/nvim-dap\", optional = true, dependencies = { -- Ensure C/C++ debugger is installed \"mason-org/mason.nvim\", optional = true, opts = { ensure_installed = { \"codelldb\" } }, }, opts = function() local dap = require(\"dap\") if not dap.adapters[\"codelldb\"] then require(\"dap\").adapters[\"codelldb\"] = { type = \"server\", host = \"localhost\", port = \"${port}\", executable = { command = \"codelldb\", args = { \"--port\", \"${port}\", }, }, } end for _, lang in ipairs({ \"c\", \"cpp\" }) do dap.configurations[lang] = { { type = \"codelldb\", request = \"launch\", name = \"Launch file\", program = function() return vim.fn.input(\"Path to executable: \", vim.fn.getcwd() .. \"/\", \"file\") end, cwd = \"${workspaceFolder}\", }, { type = \"codelldb\", request = \"attach\", name = \"Attach to process\", pid = require(\"dap.utils\").pick_process, cwd = \"${workspaceFolder}\", }, } end end, }","s":"nvim-dap (optional)","u":"/extras/lang/clangd","h":"#nvim-dap-optional","p":529},{"i":542,"t":"Options Full Spec opts = { ensure_installed = { \"codelldb\" } } { -- Ensure C/C++ debugger is installed \"mason-org/mason.nvim\", optional = true, opts = { ensure_installed = { \"codelldb\" } }, }","s":"mason.nvim (optional)","u":"/extras/lang/clangd","h":"#masonnvim-optional","p":529},{"i":544,"t":"info You can enable the extra with the :LazyExtras command. Plugins marked as optional will only be configured if they are installed. Below you can find a list of included plugins and their default settings. caution You don't need to copy the default settings to your config. They are only shown here for reference.","s":"Ember","u":"/extras/lang/ember","h":"","p":543},{"i":546,"t":"Options Full Spec opts = { ensure_installed = { \"css\", \"glimmer\", \"glimmer_javascript\", \"glimmer_typescript\" } } { \"nvim-treesitter/nvim-treesitter\", opts = { ensure_installed = { \"css\", \"glimmer\", \"glimmer_javascript\", \"glimmer_typescript\" } }, }","s":"nvim-treesitter","u":"/extras/lang/ember","h":"#nvim-treesitter","p":543},{"i":548,"t":"Options Full Spec opts = { servers = { ember = {}, }, } { \"neovim/nvim-lspconfig\", opts = { servers = { ember = {}, }, }, }","s":"nvim-lspconfig","u":"/extras/lang/ember","h":"#nvim-lspconfig","p":543},{"i":550,"t":"Options Full Spec opts = function(_, opts) if LazyVim.has_extra(\"formatting.prettier\") then opts.formatters_by_ft = opts.formatters_by_ft or {} opts.formatters_by_ft.glimmer = { \"prettier\" } end end { \"conform.nvim\", opts = function(_, opts) if LazyVim.has_extra(\"formatting.prettier\") then opts.formatters_by_ft = opts.formatters_by_ft or {} opts.formatters_by_ft.glimmer = { \"prettier\" } end end, }","s":"conform.nvim","u":"/extras/lang/ember","h":"#conformnvim","p":543},{"i":552,"t":"info You can enable the extra with the :LazyExtras command. Plugins marked as optional will only be configured if they are installed. Below you can find a list of included plugins and their default settings. caution You don't need to copy the default settings to your config. They are only shown here for reference.","s":"Dotnet","u":"/extras/lang/dotnet","h":"","p":551},{"i":554,"t":"Options Full Spec opts = nil { \"Hoffs/omnisharp-extended-lsp.nvim\", lazy = true }","s":"omnisharp-extended-lsp.nvim","u":"/extras/lang/dotnet","h":"#omnisharp-extended-lspnvim","p":551},{"i":556,"t":"Options Full Spec opts = { ensure_installed = { \"c_sharp\", \"fsharp\" } } { \"nvim-treesitter/nvim-treesitter\", opts = { ensure_installed = { \"c_sharp\", \"fsharp\" } }, }","s":"nvim-treesitter","u":"/extras/lang/dotnet","h":"#nvim-treesitter","p":551},{"i":558,"t":"Options Full Spec opts = { ensure_installed = { \"csharpier\", \"netcoredbg\", \"fantomas\" } } { \"mason-org/mason.nvim\", opts = { ensure_installed = { \"csharpier\", \"netcoredbg\", \"fantomas\" } }, }","s":"mason.nvim","u":"/extras/lang/dotnet","h":"#masonnvim","p":551},{"i":560,"t":"Options Full Spec opts = { servers = { fsautocomplete = {}, omnisharp = { handlers = { [\"textDocument/definition\"] = function(...) return require(\"omnisharp_extended\").handler(...) end, }, keys = { { \"gd\", LazyVim.has(\"telescope.nvim\") and function() require(\"omnisharp_extended\").telescope_lsp_definitions() end or function() require(\"omnisharp_extended\").lsp_definitions() end, desc = \"Goto Definition\", }, }, enable_roslyn_analyzers = true, organize_imports_on_format = true, enable_import_completion = true, }, }, } { \"neovim/nvim-lspconfig\", opts = { servers = { fsautocomplete = {}, omnisharp = { handlers = { [\"textDocument/definition\"] = function(...) return require(\"omnisharp_extended\").handler(...) end, }, keys = { { \"gd\", LazyVim.has(\"telescope.nvim\") and function() require(\"omnisharp_extended\").telescope_lsp_definitions() end or function() require(\"omnisharp_extended\").lsp_definitions() end, desc = \"Goto Definition\", }, }, enable_roslyn_analyzers = true, organize_imports_on_format = true, enable_import_completion = true, }, }, }, }","s":"nvim-lspconfig","u":"/extras/lang/dotnet","h":"#nvim-lspconfig","p":551},{"i":562,"t":"Options Full Spec opts = nil { \"Nsidorenco/neotest-vstest\", }","s":"neotest-vstest","u":"/extras/lang/dotnet","h":"#neotest-vstest","p":551},{"i":564,"t":"Options Full Spec opts = function(_, opts) local nls = require(\"null-ls\") opts.sources = opts.sources or {} table.insert(opts.sources, nls.builtins.formatting.csharpier) table.insert(opts.sources, nls.builtins.formatting.fantomas) end { \"nvimtools/none-ls.nvim\", optional = true, opts = function(_, opts) local nls = require(\"null-ls\") opts.sources = opts.sources or {} table.insert(opts.sources, nls.builtins.formatting.csharpier) table.insert(opts.sources, nls.builtins.formatting.fantomas) end, }","s":"none-ls.nvim (optional)","u":"/extras/lang/dotnet","h":"#none-lsnvim-optional","p":551},{"i":566,"t":"Options Full Spec opts = { formatters_by_ft = { cs = { \"csharpier\" }, fsharp = { \"fantomas\" }, }, } { \"stevearc/conform.nvim\", optional = true, opts = { formatters_by_ft = { cs = { \"csharpier\" }, fsharp = { \"fantomas\" }, }, }, }","s":"conform.nvim (optional)","u":"/extras/lang/dotnet","h":"#conformnvim-optional","p":551},{"i":568,"t":"Options Full Spec opts = function() local dap = require(\"dap\") if not dap.adapters[\"netcoredbg\"] then require(\"dap\").adapters[\"netcoredbg\"] = { type = \"executable\", command = vim.fn.exepath(\"netcoredbg\"), args = { \"--interpreter=vscode\" }, options = { detached = false, }, } end for _, lang in ipairs({ \"cs\", \"fsharp\", \"vb\" }) do if not dap.configurations[lang] then dap.configurations[lang] = { { type = \"netcoredbg\", name = \"Launch file\", request = \"launch\", ---@diagnostic disable-next-line: redundant-parameter program = function() return vim.fn.input(\"Path to dll: \", vim.fn.getcwd() .. \"/\", \"file\") end, cwd = \"${workspaceFolder}\", }, } end end end { \"mfussenegger/nvim-dap\", optional = true, opts = function() local dap = require(\"dap\") if not dap.adapters[\"netcoredbg\"] then require(\"dap\").adapters[\"netcoredbg\"] = { type = \"executable\", command = vim.fn.exepath(\"netcoredbg\"), args = { \"--interpreter=vscode\" }, options = { detached = false, }, } end for _, lang in ipairs({ \"cs\", \"fsharp\", \"vb\" }) do if not dap.configurations[lang] then dap.configurations[lang] = { { type = \"netcoredbg\", name = \"Launch file\", request = \"launch\", ---@diagnostic disable-next-line: redundant-parameter program = function() return vim.fn.input(\"Path to dll: \", vim.fn.getcwd() .. \"/\", \"file\") end, cwd = \"${workspaceFolder}\", }, } end end end, }","s":"nvim-dap (optional)","u":"/extras/lang/dotnet","h":"#nvim-dap-optional","p":551},{"i":570,"t":"Options Full Spec opts = { adapters = { [\"neotest-vstest\"] = { -- Here we can set options for neotest-vstest }, }, } { \"nvim-neotest/neotest\", optional = true, dependencies = { \"Nsidorenco/neotest-vstest\", }, opts = { adapters = { [\"neotest-vstest\"] = { -- Here we can set options for neotest-vstest }, }, }, }","s":"neotest (optional)","u":"/extras/lang/dotnet","h":"#neotest-optional","p":551},{"i":572,"t":"info You can enable the extra with the :LazyExtras command. Plugins marked as optional will only be configured if they are installed. Below you can find a list of included plugins and their default settings. caution You don't need to copy the default settings to your config. They are only shown here for reference.","s":"Erlang","u":"/extras/lang/erlang","h":"","p":571},{"i":574,"t":"Options Full Spec opts = { servers = { erlangls = {}, }, } { \"neovim/nvim-lspconfig\", opts = { servers = { erlangls = {}, }, }, }","s":"nvim-lspconfig","u":"/extras/lang/erlang","h":"#nvim-lspconfig","p":571},{"i":576,"t":"Options Full Spec opts = { ensure_installed = { \"erlang\" } } { \"nvim-treesitter/nvim-treesitter\", opts = { ensure_installed = { \"erlang\" } }, }","s":"nvim-treesitter","u":"/extras/lang/erlang","h":"#nvim-treesitter","p":571},{"i":578,"t":"info You can enable the extra with the :LazyExtras command. Plugins marked as optional will only be configured if they are installed. Below you can find a list of included plugins and their default settings. caution You don't need to copy the default settings to your config. They are only shown here for reference.","s":"Elm","u":"/extras/lang/elm","h":"","p":577},{"i":580,"t":"Options Full Spec opts = { ensure_installed = { \"elm\" } } { \"nvim-treesitter/nvim-treesitter\", opts = { ensure_installed = { \"elm\" } }, }","s":"nvim-treesitter","u":"/extras/lang/elm","h":"#nvim-treesitter","p":577},{"i":582,"t":"Options Full Spec opts = { ensure_installed = { \"elm-format\" } } { \"mason-org/mason.nvim\", opts = { ensure_installed = { \"elm-format\" } }, }","s":"mason.nvim","u":"/extras/lang/elm","h":"#masonnvim","p":577},{"i":584,"t":"Options Full Spec opts = { servers = { elmls = {}, }, } { \"neovim/nvim-lspconfig\", opts = { servers = { elmls = {}, }, }, }","s":"nvim-lspconfig","u":"/extras/lang/elm","h":"#nvim-lspconfig","p":577},{"i":586,"t":"Options Full Spec opts = { formatters_by_ft = { elm = { \"elm_format\" }, }, } { \"stevearc/conform.nvim\", optional = true, opts = { formatters_by_ft = { elm = { \"elm_format\" }, }, }, }","s":"conform.nvim (optional)","u":"/extras/lang/elm","h":"#conformnvim-optional","p":577},{"i":588,"t":"info You can enable the extra with the :LazyExtras command. Plugins marked as optional will only be configured if they are installed. Below you can find a list of included plugins and their default settings. caution You don't need to copy the default settings to your config. They are only shown here for reference.","s":"Git","u":"/extras/lang/git","h":"","p":587},{"i":590,"t":"Treesitter git support Options Full Spec opts = { ensure_installed = { \"git_config\", \"gitcommit\", \"git_rebase\", \"gitignore\", \"gitattributes\" } } { \"nvim-treesitter/nvim-treesitter\", opts = { ensure_installed = { \"git_config\", \"gitcommit\", \"git_rebase\", \"gitignore\", \"gitattributes\" } }, }","s":"nvim-treesitter","u":"/extras/lang/git","h":"#nvim-treesitter","p":587},{"i":592,"t":"Options Full Spec opts = {} { \"petertriho/cmp-git\", opts = {} }","s":"cmp-git","u":"/extras/lang/git","h":"#cmp-git","p":587},{"i":594,"t":"Options Full Spec opts = function(_, opts) table.insert(opts.sources, { name = \"git\" }) end { \"hrsh7th/nvim-cmp\", optional = true, dependencies = { { \"petertriho/cmp-git\", opts = {} }, }, ---@module 'cmp' ---@param opts cmp.ConfigSchema opts = function(_, opts) table.insert(opts.sources, { name = \"git\" }) end, }","s":"nvim-cmp (optional)","u":"/extras/lang/git","h":"#nvim-cmp-optional","p":587},{"i":596,"t":"info You can enable the extra with the :LazyExtras command. Plugins marked as optional will only be configured if they are installed. Below you can find a list of included plugins and their default settings. caution You don't need to copy the default settings to your config. They are only shown here for reference.","s":"Helm","u":"/extras/lang/helm","h":"","p":595},{"i":598,"t":"Options Full Spec opts = nil { \"qvalentin/helm-ls.nvim\", ft = \"helm\" }","s":"helm-ls.nvim","u":"/extras/lang/helm","h":"#helm-lsnvim","p":595},{"i":600,"t":"Options Full Spec opts = { ensure_installed = { \"helm\" } } { \"nvim-treesitter/nvim-treesitter\", opts = { ensure_installed = { \"helm\" } }, }","s":"nvim-treesitter","u":"/extras/lang/helm","h":"#nvim-treesitter","p":595},{"i":602,"t":"Options Full Spec opts = { servers = { helm_ls = {}, }, } { \"neovim/nvim-lspconfig\", opts = { servers = { helm_ls = {}, }, }, }","s":"nvim-lspconfig","u":"/extras/lang/helm","h":"#nvim-lspconfig","p":595},{"i":604,"t":"info You can enable the extra with the :LazyExtras command. Plugins marked as optional will only be configured if they are installed. Below you can find a list of included plugins and their default settings. caution You don't need to copy the default settings to your config. They are only shown here for reference.","s":"Elixir","u":"/extras/lang/elixir","h":"","p":603},{"i":606,"t":"Options Full Spec opts = { servers = { elixirls = { keys = { { \"cp\", function() local params = vim.lsp.util.make_position_params() LazyVim.lsp.execute({ command = \"manipulatePipes:serverid\", arguments = { \"toPipe\", params.textDocument.uri, params.position.line, params.position.character }, }) end, desc = \"To Pipe\", }, { \"cP\", function() local params = vim.lsp.util.make_position_params() LazyVim.lsp.execute({ command = \"manipulatePipes:serverid\", arguments = { \"fromPipe\", params.textDocument.uri, params.position.line, params.position.character }, }) end, desc = \"From Pipe\", }, }, }, }, } { \"neovim/nvim-lspconfig\", opts = { servers = { elixirls = { keys = { { \"cp\", function() local params = vim.lsp.util.make_position_params() LazyVim.lsp.execute({ command = \"manipulatePipes:serverid\", arguments = { \"toPipe\", params.textDocument.uri, params.position.line, params.position.character }, }) end, desc = \"To Pipe\", }, { \"cP\", function() local params = vim.lsp.util.make_position_params() LazyVim.lsp.execute({ command = \"manipulatePipes:serverid\", arguments = { \"fromPipe\", params.textDocument.uri, params.position.line, params.position.character }, }) end, desc = \"From Pipe\", }, }, }, }, }, }","s":"nvim-lspconfig","u":"/extras/lang/elixir","h":"#nvim-lspconfig","p":603},{"i":608,"t":"Options Full Spec opts = function(_, opts) opts.ensure_installed = opts.ensure_installed or {} vim.list_extend(opts.ensure_installed, { \"elixir\", \"heex\", \"eex\" }) vim.treesitter.language.register(\"markdown\", \"livebook\") end { \"nvim-treesitter/nvim-treesitter\", opts = function(_, opts) opts.ensure_installed = opts.ensure_installed or {} vim.list_extend(opts.ensure_installed, { \"elixir\", \"heex\", \"eex\" }) vim.treesitter.language.register(\"markdown\", \"livebook\") end, }","s":"nvim-treesitter","u":"/extras/lang/elixir","h":"#nvim-treesitter","p":603},{"i":610,"t":"Options Full Spec opts = nil { \"jfpedroza/neotest-elixir\", }","s":"neotest-elixir","u":"/extras/lang/elixir","h":"#neotest-elixir","p":603},{"i":612,"t":"Options Full Spec opts = { adapters = { [\"neotest-elixir\"] = {}, }, } { \"nvim-neotest/neotest\", optional = true, dependencies = { \"jfpedroza/neotest-elixir\", }, opts = { adapters = { [\"neotest-elixir\"] = {}, }, }, }","s":"neotest (optional)","u":"/extras/lang/elixir","h":"#neotest-optional","p":603},{"i":614,"t":"Options Full Spec opts = function(_, opts) local nls = require(\"null-ls\") opts.sources = vim.list_extend(opts.sources or {}, { nls.builtins.diagnostics.credo.with({ condition = function(utils) return utils.root_has_file(\".credo.exs\") end, }), }) end { \"nvimtools/none-ls.nvim\", optional = true, opts = function(_, opts) local nls = require(\"null-ls\") opts.sources = vim.list_extend(opts.sources or {}, { nls.builtins.diagnostics.credo.with({ condition = function(utils) return utils.root_has_file(\".credo.exs\") end, }), }) end, }","s":"none-ls.nvim (optional)","u":"/extras/lang/elixir","h":"#none-lsnvim-optional","p":603},{"i":616,"t":"Options Full Spec opts = function(_, opts) opts.linters_by_ft = { elixir = { \"credo\" }, } opts.linters = { credo = { condition = function(ctx) return vim.fs.find({ \".credo.exs\" }, { path = ctx.filename, upward = true })[1] end, }, } end { \"mfussenegger/nvim-lint\", optional = true, opts = function(_, opts) opts.linters_by_ft = { elixir = { \"credo\" }, } opts.linters = { credo = { condition = function(ctx) return vim.fs.find({ \".credo.exs\" }, { path = ctx.filename, upward = true })[1] end, }, } end, }","s":"nvim-lint (optional)","u":"/extras/lang/elixir","h":"#nvim-lint-optional","p":603},{"i":618,"t":"Options Full Spec opts = nil { \"MeanderingProgrammer/render-markdown.nvim\", optional = true, ft = function(_, ft) vim.list_extend(ft, { \"livebook\" }) end, }","s":"render-markdown.nvim (optional)","u":"/extras/lang/elixir","h":"#render-markdownnvim-optional","p":603},{"i":620,"t":"info You can enable the extra with the :LazyExtras command. Plugins marked as optional will only be configured if they are installed. Below you can find a list of included plugins and their default settings. caution You don't need to copy the default settings to your config. They are only shown here for reference.","s":"Gleam","u":"/extras/lang/gleam","h":"","p":619},{"i":622,"t":"Options Full Spec opts = { ensure_installed = { \"gleam\" } } { \"nvim-treesitter/nvim-treesitter\", opts = { ensure_installed = { \"gleam\" } }, }","s":"nvim-treesitter","u":"/extras/lang/gleam","h":"#nvim-treesitter","p":619},{"i":624,"t":"Options Full Spec opts = { servers = { gleam = {}, }, } { \"neovim/nvim-lspconfig\", opts = { servers = { gleam = {}, }, }, }","s":"nvim-lspconfig","u":"/extras/lang/gleam","h":"#nvim-lspconfig","p":619},{"i":626,"t":"Options Full Spec opts = { formatters_by_ft = { gleam = { \"gleam\" }, }, } { \"conform.nvim\", optional = true, opts = { formatters_by_ft = { gleam = { \"gleam\" }, }, }, }","s":"conform.nvim (optional)","u":"/extras/lang/gleam","h":"#conformnvim-optional","p":619},{"i":628,"t":"info You can enable the extra with the :LazyExtras command. Plugins marked as optional will only be configured if they are installed. Below you can find a list of included plugins and their default settings. caution You don't need to copy the default settings to your config. They are only shown here for reference.","s":"Julia","u":"/extras/lang/julia","h":"","p":627},{"i":630,"t":"Options Full Spec opts = { ensure_installed = { \"julia\" } } { \"nvim-treesitter/nvim-treesitter\", opts = { ensure_installed = { \"julia\" } }, }","s":"nvim-treesitter","u":"/extras/lang/julia","h":"#nvim-treesitter","p":627},{"i":632,"t":"Options Full Spec opts = { servers = { julials = { settings = { -- use the same default settings as the Julia VS Code extension julia = { completionmode = \"qualify\", lint = { missingrefs = \"none\" }, }, }, }, }, } { \"neovim/nvim-lspconfig\", opts = { servers = { julials = { settings = { -- use the same default settings as the Julia VS Code extension julia = { completionmode = \"qualify\", lint = { missingrefs = \"none\" }, }, }, }, }, }, }","s":"nvim-lspconfig","u":"/extras/lang/julia","h":"#nvim-lspconfig","p":627},{"i":634,"t":"Options Full Spec opts = nil { \"kdheepak/cmp-latex-symbols\" }","s":"cmp-latex-symbols","u":"/extras/lang/julia","h":"#cmp-latex-symbols","p":627},{"i":636,"t":"Options Full Spec opts = nil { \"kdheepak/cmp-latex-symbols\", \"saghen/blink.compat\" }","s":"cmp-latex-symbols","u":"/extras/lang/julia","h":"#cmp-latex-symbols-1","p":627},{"i":638,"t":"Options Full Spec opts = nil \"saghen/blink.compat\"","s":"blink.compat","u":"/extras/lang/julia","h":"#blinkcompat","p":627},{"i":640,"t":"cmp integration Options Full Spec opts = function(_, opts) table.insert(opts.sources, { name = \"latex_symbols\", option = { strategy = 0, -- mixed }, }) end { \"hrsh7th/nvim-cmp\", optional = true, dependencies = { \"kdheepak/cmp-latex-symbols\" }, opts = function(_, opts) table.insert(opts.sources, { name = \"latex_symbols\", option = { strategy = 0, -- mixed }, }) end, }","s":"nvim-cmp (optional)","u":"/extras/lang/julia","h":"#nvim-cmp-optional","p":627},{"i":642,"t":"blink.cmp integration Options Full Spec opts = { sources = { compat = { \"latex_symbols\" }, providers = { latex_symbols = { kind = \"LatexSymbols\", async = true, opts = { strategy = 0, -- mixed }, }, }, }, } { \"saghen/blink.cmp\", optional = true, dependencies = { \"kdheepak/cmp-latex-symbols\", \"saghen/blink.compat\" }, opts = { sources = { compat = { \"latex_symbols\" }, providers = { latex_symbols = { kind = \"LatexSymbols\", async = true, opts = { strategy = 0, -- mixed }, }, }, }, }, }","s":"blink.cmp (optional)","u":"/extras/lang/julia","h":"#blinkcmp-optional","p":627},{"i":644,"t":"info You can enable the extra with the :LazyExtras command. Plugins marked as optional will only be configured if they are installed. Below you can find a list of included plugins and their default settings. caution You don't need to copy the default settings to your config. They are only shown here for reference.","s":"Haskell","u":"/extras/lang/haskell","h":"","p":643},{"i":646,"t":"Add Haskell to treesitter Options Full Spec opts = { ensure_installed = { \"haskell\" } } { \"nvim-treesitter/nvim-treesitter\", opts = { ensure_installed = { \"haskell\" } }, }","s":"nvim-treesitter","u":"/extras/lang/haskell","h":"#nvim-treesitter","p":643},{"i":648,"t":"Options Full Spec opts = nil { \"mrcjkb/haskell-tools.nvim\", version = false, ft = { \"haskell\", \"lhaskell\", \"cabal\", \"cabalproject\" }, keys = { { \"e\", \"HlsEvalAll\", ft = \"haskell\", desc = \"Evaluate All\", }, { \"h\", function() require(\"haskell-tools\").hoogle.hoogle_signature() end, ft = \"haskell\", desc = \"Hoogle Signature\", }, { \"r\", function() require(\"haskell-tools\").repl.toggle() end, ft = \"haskell\", desc = \"REPL (Package)\", }, { \"R\", function() require(\"haskell-tools\").repl.toggle(vim.api.nvim_buf_get_name(0)) end, ft = \"haskell\", desc = \"REPL (Buffer)\", }, }, }","s":"haskell-tools.nvim","u":"/extras/lang/haskell","h":"#haskell-toolsnvim","p":643},{"i":650,"t":"Options Full Spec opts = { ensure_installed = { \"haskell-language-server\" } } { \"mason-org/mason.nvim\", opts = { ensure_installed = { \"haskell-language-server\" } }, }","s":"mason.nvim","u":"/extras/lang/haskell","h":"#masonnvim","p":643},{"i":652,"t":"Options Full Spec opts = { ensure_installed = { \"haskell-debug-adapter\" } } { \"mason-org/mason.nvim\", opts = { ensure_installed = { \"haskell-debug-adapter\" } }, }","s":"mason.nvim","u":"/extras/lang/haskell","h":"#masonnvim-1","p":643},{"i":654,"t":"Options Full Spec opts = nil { \"mrcjkb/neotest-haskell\" }","s":"neotest-haskell","u":"/extras/lang/haskell","h":"#neotest-haskell","p":643},{"i":656,"t":"Options Full Spec opts = {} { \"mrcjkb/haskell-snippets.nvim\", dependencies = { \"L3MON4D3/LuaSnip\" }, ft = { \"haskell\", \"lhaskell\", \"cabal\", \"cabalproject\" }, config = function() local haskell_snippets = require(\"haskell-snippets\").all require(\"luasnip\").add_snippets(\"haskell\", haskell_snippets, { key = \"haskell\" }) end, }","s":"haskell-snippets.nvim","u":"/extras/lang/haskell","h":"#haskell-snippetsnvim","p":643},{"i":658,"t":"Options Full Spec opts = nil { \"L3MON4D3/LuaSnip\" }","s":"LuaSnip","u":"/extras/lang/haskell","h":"#luasnip","p":643},{"i":660,"t":"Options Full Spec opts = function() LazyVim.on_load(\"telescope.nvim\", function() require(\"telescope\").load_extension(\"ht\") end) end { \"luc-tielen/telescope_hoogle\", ft = { \"haskell\", \"lhaskell\", \"cabal\", \"cabalproject\" }, opts = function() LazyVim.on_load(\"telescope.nvim\", function() require(\"telescope\").load_extension(\"ht\") end) end, keys = { { \"H\", \"Telescope hoogle\", ft = \"haskell\", desc = \"Hoogle\", }, }, }","s":"telescope_hoogle","u":"/extras/lang/haskell","h":"#telescope_hoogle","p":643},{"i":662,"t":"Make sure lspconfig doesn't start hls, as it conflicts with haskell-tools Options Full Spec opts = { setup = { hls = function() return true end, }, } { \"neovim/nvim-lspconfig\", opts = { setup = { hls = function() return true end, }, }, }","s":"nvim-lspconfig","u":"/extras/lang/haskell","h":"#nvim-lspconfig","p":643},{"i":664,"t":"Options Full Spec opts = nil { \"mfussenegger/nvim-dap\", optional = true, dependencies = { { \"mason-org/mason.nvim\", opts = { ensure_installed = { \"haskell-debug-adapter\" } }, }, }, }","s":"nvim-dap (optional)","u":"/extras/lang/haskell","h":"#nvim-dap-optional","p":643},{"i":666,"t":"Options Full Spec opts = { adapters = { [\"neotest-haskell\"] = {}, }, } { \"nvim-neotest/neotest\", optional = true, dependencies = { { \"mrcjkb/neotest-haskell\" }, }, opts = { adapters = { [\"neotest-haskell\"] = {}, }, }, }","s":"neotest (optional)","u":"/extras/lang/haskell","h":"#neotest-optional","p":643},{"i":668,"t":"Options Full Spec opts = nil { \"nvim-telescope/telescope.nvim\", optional = true, specs = { { \"luc-tielen/telescope_hoogle\", ft = { \"haskell\", \"lhaskell\", \"cabal\", \"cabalproject\" }, opts = function() LazyVim.on_load(\"telescope.nvim\", function() require(\"telescope\").load_extension(\"ht\") end) end, keys = { { \"H\", \"Telescope hoogle\", ft = \"haskell\", desc = \"Hoogle\", }, }, }, }, }","s":"telescope.nvim (optional)","u":"/extras/lang/haskell","h":"#telescopenvim-optional","p":643},{"i":670,"t":"Options Full Spec opts = { formatters_by_ft = { haskell = { \"fourmolu\" }, cabal = { \"cabal_fmt\" }, }, } { \"stevearc/conform.nvim\", optional = true, opts = { formatters_by_ft = { haskell = { \"fourmolu\" }, cabal = { \"cabal_fmt\" }, }, }, }","s":"conform.nvim (optional)","u":"/extras/lang/haskell","h":"#conformnvim-optional","p":643},{"i":672,"t":"Options Full Spec opts = { linters_by_ft = { haskell = { \"hlint\" }, }, } { \"mfussenegger/nvim-lint\", optional = true, opts = { linters_by_ft = { haskell = { \"hlint\" }, }, }, }","s":"nvim-lint (optional)","u":"/extras/lang/haskell","h":"#nvim-lint-optional","p":643},{"i":674,"t":"info You can enable the extra with the :LazyExtras command. Plugins marked as optional will only be configured if they are installed. Below you can find a list of included plugins and their default settings. caution You don't need to copy the default settings to your config. They are only shown here for reference.","s":"Go","u":"/extras/lang/go","h":"","p":673},{"i":676,"t":"Options Full Spec opts = { ensure_installed = { \"go\", \"gomod\", \"gowork\", \"gosum\" } } { \"nvim-treesitter/nvim-treesitter\", opts = { ensure_installed = { \"go\", \"gomod\", \"gowork\", \"gosum\" } }, }","s":"nvim-treesitter","u":"/extras/lang/go","h":"#nvim-treesitter","p":673},{"i":678,"t":"Options Full Spec opts = { servers = { gopls = { settings = { gopls = { gofumpt = true, codelenses = { gc_details = false, generate = true, regenerate_cgo = true, run_govulncheck = true, test = true, tidy = true, upgrade_dependency = true, vendor = true, }, hints = { assignVariableTypes = true, compositeLiteralFields = true, compositeLiteralTypes = true, constantValues = true, functionTypeParameters = true, parameterNames = true, rangeVariableTypes = true, }, analyses = { nilness = true, unusedparams = true, unusedwrite = true, useany = true, }, usePlaceholders = true, completeUnimported = true, staticcheck = true, directoryFilters = { \"-.git\", \"-.vscode\", \"-.idea\", \"-.vscode-test\", \"-node_modules\" }, semanticTokens = true, }, }, }, }, setup = { gopls = function(_, opts) -- workaround for gopls not supporting semanticTokensProvider -- https://github.com/golang/go/issues/54531#issuecomment-1464982242 LazyVim.lsp.on_attach(function(client, _) if not client.server_capabilities.semanticTokensProvider then local semantic = client.config.capabilities.textDocument.semanticTokens client.server_capabilities.semanticTokensProvider = { full = true, legend = { tokenTypes = semantic.tokenTypes, tokenModifiers = semantic.tokenModifiers, }, range = true, } end end, \"gopls\") -- end workaround end, }, } { \"neovim/nvim-lspconfig\", opts = { servers = { gopls = { settings = { gopls = { gofumpt = true, codelenses = { gc_details = false, generate = true, regenerate_cgo = true, run_govulncheck = true, test = true, tidy = true, upgrade_dependency = true, vendor = true, }, hints = { assignVariableTypes = true, compositeLiteralFields = true, compositeLiteralTypes = true, constantValues = true, functionTypeParameters = true, parameterNames = true, rangeVariableTypes = true, }, analyses = { nilness = true, unusedparams = true, unusedwrite = true, useany = true, }, usePlaceholders = true, completeUnimported = true, staticcheck = true, directoryFilters = { \"-.git\", \"-.vscode\", \"-.idea\", \"-.vscode-test\", \"-node_modules\" }, semanticTokens = true, }, }, }, }, setup = { gopls = function(_, opts) -- workaround for gopls not supporting semanticTokensProvider -- https://github.com/golang/go/issues/54531#issuecomment-1464982242 LazyVim.lsp.on_attach(function(client, _) if not client.server_capabilities.semanticTokensProvider then local semantic = client.config.capabilities.textDocument.semanticTokens client.server_capabilities.semanticTokensProvider = { full = true, legend = { tokenTypes = semantic.tokenTypes, tokenModifiers = semantic.tokenModifiers, }, range = true, } end end, \"gopls\") -- end workaround end, }, }, }","s":"nvim-lspconfig","u":"/extras/lang/go","h":"#nvim-lspconfig","p":673},{"i":680,"t":"Ensure Go tools are installed Options Full Spec opts = { ensure_installed = { \"goimports\", \"gofumpt\" } } { \"mason-org/mason.nvim\", opts = { ensure_installed = { \"goimports\", \"gofumpt\" } }, }","s":"mason.nvim","u":"/extras/lang/go","h":"#masonnvim","p":673},{"i":682,"t":"Options Full Spec opts = { ensure_installed = { \"gomodifytags\", \"impl\" } } { \"mason-org/mason.nvim\", opts = { ensure_installed = { \"gomodifytags\", \"impl\" } }, }","s":"mason.nvim","u":"/extras/lang/go","h":"#masonnvim-1","p":673},{"i":684,"t":"Options Full Spec opts = { ensure_installed = { \"golangci-lint\" } } { \"mason-org/mason.nvim\", opts = { ensure_installed = { \"golangci-lint\" } }, }","s":"mason.nvim","u":"/extras/lang/go","h":"#masonnvim-2","p":673},{"i":686,"t":"Options Full Spec opts = { ensure_installed = { \"delve\" } } { \"mason-org/mason.nvim\", opts = { ensure_installed = { \"delve\" } }, }","s":"mason.nvim","u":"/extras/lang/go","h":"#masonnvim-3","p":673},{"i":688,"t":"Options Full Spec opts = {} { \"leoluz/nvim-dap-go\", opts = {}, }","s":"nvim-dap-go","u":"/extras/lang/go","h":"#nvim-dap-go","p":673},{"i":690,"t":"Options Full Spec opts = nil { \"fredrikaverpil/neotest-golang\", }","s":"neotest-golang","u":"/extras/lang/go","h":"#neotest-golang","p":673},{"i":692,"t":"Filetype icons Options Full Spec opts = { file = { [\".go-version\"] = { glyph = \"\", hl = \"MiniIconsBlue\" }, }, filetype = { gotmpl = { glyph = \"󰟓\", hl = \"MiniIconsGrey\" }, }, } { \"nvim-mini/mini.icons\", opts = { file = { [\".go-version\"] = { glyph = \"\", hl = \"MiniIconsBlue\" }, }, filetype = { gotmpl = { glyph = \"󰟓\", hl = \"MiniIconsGrey\" }, }, }, }","s":"mini.icons","u":"/extras/lang/go","h":"#miniicons","p":673},{"i":694,"t":"Options Full Spec opts = function(_, opts) local nls = require(\"null-ls\") opts.sources = vim.list_extend(opts.sources or {}, { nls.builtins.code_actions.gomodifytags, nls.builtins.code_actions.impl, nls.builtins.formatting.goimports, nls.builtins.formatting.gofumpt, }) end { \"nvimtools/none-ls.nvim\", optional = true, dependencies = { { \"mason-org/mason.nvim\", opts = { ensure_installed = { \"gomodifytags\", \"impl\" } }, }, }, opts = function(_, opts) local nls = require(\"null-ls\") opts.sources = vim.list_extend(opts.sources or {}, { nls.builtins.code_actions.gomodifytags, nls.builtins.code_actions.impl, nls.builtins.formatting.goimports, nls.builtins.formatting.gofumpt, }) end, }","s":"none-ls.nvim (optional)","u":"/extras/lang/go","h":"#none-lsnvim-optional","p":673},{"i":696,"t":"Add linting Options Full Spec opts = { linters_by_ft = { go = { \"golangcilint\" }, }, } { \"mfussenegger/nvim-lint\", optional = true, dependencies = { { \"mason-org/mason.nvim\", opts = { ensure_installed = { \"golangci-lint\" } }, }, }, opts = { linters_by_ft = { go = { \"golangcilint\" }, }, }, }","s":"nvim-lint (optional)","u":"/extras/lang/go","h":"#nvim-lint-optional","p":673},{"i":698,"t":"Options Full Spec opts = { formatters_by_ft = { go = { \"goimports\", \"gofumpt\" }, }, } { \"stevearc/conform.nvim\", optional = true, opts = { formatters_by_ft = { go = { \"goimports\", \"gofumpt\" }, }, }, }","s":"conform.nvim (optional)","u":"/extras/lang/go","h":"#conformnvim-optional","p":673},{"i":700,"t":"Options Full Spec opts = nil { \"mfussenegger/nvim-dap\", optional = true, dependencies = { { \"mason-org/mason.nvim\", opts = { ensure_installed = { \"delve\" } }, }, { \"leoluz/nvim-dap-go\", opts = {}, }, }, }","s":"nvim-dap (optional)","u":"/extras/lang/go","h":"#nvim-dap-optional","p":673},{"i":702,"t":"Options Full Spec opts = { adapters = { [\"neotest-golang\"] = { -- Here we can set options for neotest-golang, e.g. -- go_test_args = { \"-v\", \"-race\", \"-count=1\", \"-timeout=60s\" }, dap_go_enabled = true, -- requires leoluz/nvim-dap-go }, }, } { \"nvim-neotest/neotest\", optional = true, dependencies = { \"fredrikaverpil/neotest-golang\", }, opts = { adapters = { [\"neotest-golang\"] = { -- Here we can set options for neotest-golang, e.g. -- go_test_args = { \"-v\", \"-race\", \"-count=1\", \"-timeout=60s\" }, dap_go_enabled = true, -- requires leoluz/nvim-dap-go }, }, }, }","s":"neotest (optional)","u":"/extras/lang/go","h":"#neotest-optional","p":673},{"i":704,"t":"info You can enable the extra with the :LazyExtras command. Plugins marked as optional will only be configured if they are installed. Below you can find a list of included plugins and their default settings. caution You don't need to copy the default settings to your config. They are only shown here for reference.","s":"JSON","u":"/extras/lang/json","h":"","p":703},{"i":706,"t":"add json to treesitter Options Full Spec opts = { ensure_installed = { \"json5\" } } { \"nvim-treesitter/nvim-treesitter\", opts = { ensure_installed = { \"json5\" } }, }","s":"nvim-treesitter","u":"/extras/lang/json","h":"#nvim-treesitter","p":703},{"i":708,"t":"yaml schema support Options Full Spec opts = nil { \"b0o/SchemaStore.nvim\", lazy = true, version = false, -- last release is way too old }","s":"SchemaStore.nvim","u":"/extras/lang/json","h":"#schemastorenvim","p":703},{"i":710,"t":"correctly setup lspconfig Options Full Spec opts = { -- make sure mason installs the server servers = { jsonls = { -- lazy-load schemastore when needed before_init = function(_, new_config) new_config.settings.json.schemas = new_config.settings.json.schemas or {} vim.list_extend(new_config.settings.json.schemas, require(\"schemastore\").json.schemas()) end, settings = { json = { format = { enable = true, }, validate = { enable = true }, }, }, }, }, } { \"neovim/nvim-lspconfig\", opts = { -- make sure mason installs the server servers = { jsonls = { -- lazy-load schemastore when needed before_init = function(_, new_config) new_config.settings.json.schemas = new_config.settings.json.schemas or {} vim.list_extend(new_config.settings.json.schemas, require(\"schemastore\").json.schemas()) end, settings = { json = { format = { enable = true, }, validate = { enable = true }, }, }, }, }, }, }","s":"nvim-lspconfig","u":"/extras/lang/json","h":"#nvim-lspconfig","p":703},{"i":712,"t":"info You can enable the extra with the :LazyExtras command. Plugins marked as optional will only be configured if they are installed. Below you can find a list of included plugins and their default settings. caution You don't need to copy the default settings to your config. They are only shown here for reference.","s":"Lean","u":"/extras/lang/lean","h":"","p":711},{"i":714,"t":"Options Full Spec opts = nil \"Julian/lean.nvim\"","s":"lean.nvim","u":"/extras/lang/lean","h":"#leannvim","p":711},{"i":716,"t":"Options Full Spec opts = nil { \"nvim-lua/plenary.nvim\", }","s":"plenary.nvim","u":"/extras/lang/lean","h":"#plenarynvim","p":711},{"i":718,"t":"info You can enable the extra with the :LazyExtras command. Plugins marked as optional will only be configured if they are installed. Below you can find a list of included plugins and their default settings. caution You don't need to copy the default settings to your config. They are only shown here for reference.","s":"Java","u":"/extras/lang/java","h":"","p":717},{"i":720,"t":"Add java to treesitter. Options Full Spec opts = { ensure_installed = { \"java\" } } { \"nvim-treesitter/nvim-treesitter\", opts = { ensure_installed = { \"java\" } }, }","s":"nvim-treesitter","u":"/extras/lang/java","h":"#nvim-treesitter","p":717},{"i":722,"t":"Options Full Spec opts = { ensure_installed = { \"java-debug-adapter\", \"java-test\" } } { \"mason-org/mason.nvim\", opts = { ensure_installed = { \"java-debug-adapter\", \"java-test\" } }, }","s":"mason.nvim","u":"/extras/lang/java","h":"#masonnvim","p":717},{"i":724,"t":"Configure nvim-lspconfig to install the server automatically via mason, but defer actually starting it to our configuration of nvim-jtdls below. Options Full Spec opts = { -- make sure mason installs the server servers = { jdtls = {}, }, setup = { jdtls = function() return true -- avoid duplicate servers end, }, } { \"neovim/nvim-lspconfig\", opts = { -- make sure mason installs the server servers = { jdtls = {}, }, setup = { jdtls = function() return true -- avoid duplicate servers end, }, }, }","s":"nvim-lspconfig","u":"/extras/lang/java","h":"#nvim-lspconfig","p":717},{"i":726,"t":"Set up nvim-jdtls to attach to java files. Options Full Spec opts = function() local cmd = { vim.fn.exepath(\"jdtls\") } if LazyVim.has(\"mason.nvim\") then local lombok_jar = vim.fn.expand(\"$MASON/share/jdtls/lombok.jar\") table.insert(cmd, string.format(\"--jvm-arg=-javaagent:%s\", lombok_jar)) end return { root_dir = function(path) return vim.fs.root(path, vim.lsp.config.jdtls.root_markers) end, -- How to find the project name for a given root dir. project_name = function(root_dir) return root_dir and vim.fs.basename(root_dir) end, -- Where are the config and workspace dirs for a project? jdtls_config_dir = function(project_name) return vim.fn.stdpath(\"cache\") .. \"/jdtls/\" .. project_name .. \"/config\" end, jdtls_workspace_dir = function(project_name) return vim.fn.stdpath(\"cache\") .. \"/jdtls/\" .. project_name .. \"/workspace\" end, -- How to run jdtls. This can be overridden to a full java command-line -- if the Python wrapper script doesn't suffice. cmd = cmd, full_cmd = function(opts) local fname = vim.api.nvim_buf_get_name(0) local root_dir = opts.root_dir(fname) local project_name = opts.project_name(root_dir) local cmd = vim.deepcopy(opts.cmd) if project_name then vim.list_extend(cmd, { \"-configuration\", opts.jdtls_config_dir(project_name), \"-data\", opts.jdtls_workspace_dir(project_name), }) end return cmd end, -- These depend on nvim-dap, but can additionally be disabled by setting false here. dap = { hotcodereplace = \"auto\", config_overrides = {} }, -- Can set this to false to disable main class scan, which is a performance killer for large project dap_main = {}, test = true, settings = { java = { inlayHints = { parameterNames = { enabled = \"all\", }, }, }, }, } end { \"mfussenegger/nvim-jdtls\", dependencies = { \"folke/which-key.nvim\" }, ft = java_filetypes, opts = function() local cmd = { vim.fn.exepath(\"jdtls\") } if LazyVim.has(\"mason.nvim\") then local lombok_jar = vim.fn.expand(\"$MASON/share/jdtls/lombok.jar\") table.insert(cmd, string.format(\"--jvm-arg=-javaagent:%s\", lombok_jar)) end return { root_dir = function(path) return vim.fs.root(path, vim.lsp.config.jdtls.root_markers) end, -- How to find the project name for a given root dir. project_name = function(root_dir) return root_dir and vim.fs.basename(root_dir) end, -- Where are the config and workspace dirs for a project? jdtls_config_dir = function(project_name) return vim.fn.stdpath(\"cache\") .. \"/jdtls/\" .. project_name .. \"/config\" end, jdtls_workspace_dir = function(project_name) return vim.fn.stdpath(\"cache\") .. \"/jdtls/\" .. project_name .. \"/workspace\" end, -- How to run jdtls. This can be overridden to a full java command-line -- if the Python wrapper script doesn't suffice. cmd = cmd, full_cmd = function(opts) local fname = vim.api.nvim_buf_get_name(0) local root_dir = opts.root_dir(fname) local project_name = opts.project_name(root_dir) local cmd = vim.deepcopy(opts.cmd) if project_name then vim.list_extend(cmd, { \"-configuration\", opts.jdtls_config_dir(project_name), \"-data\", opts.jdtls_workspace_dir(project_name), }) end return cmd end, -- These depend on nvim-dap, but can additionally be disabled by setting false here. dap = { hotcodereplace = \"auto\", config_overrides = {} }, -- Can set this to false to disable main class scan, which is a performance killer for large project dap_main = {}, test = true, settings = { java = { inlayHints = { parameterNames = { enabled = \"all\", }, }, }, }, } end, config = function(_, opts) -- Find the extra bundles that should be passed on the jdtls command-line -- if nvim-dap is enabled with java debug/test. local bundles = {} ---@type string[] if LazyVim.has(\"mason.nvim\") then local mason_registry = require(\"mason-registry\") if opts.dap and LazyVim.has(\"nvim-dap\") and mason_registry.is_installed(\"java-debug-adapter\") then bundles = vim.fn.glob(\"$MASON/share/java-debug-adapter/com.microsoft.java.debug.plugin-*jar\", false, true) -- java-test also depends on java-debug-adapter. if opts.test and mason_registry.is_installed(\"java-test\") then vim.list_extend(bundles, vim.fn.glob(\"$MASON/share/java-test/*.jar\", false, true)) end end end local function attach_jdtls() local fname = vim.api.nvim_buf_get_name(0) -- Configuration can be augmented and overridden by opts.jdtls local config = extend_or_override({ cmd = opts.full_cmd(opts), root_dir = opts.root_dir(fname), init_options = { bundles = bundles, }, settings = opts.settings, -- enable CMP capabilities capabilities = LazyVim.has(\"blink.cmp\") and require(\"blink.cmp\").get_lsp_capabilities() or LazyVim.has( \"cmp-nvim-lsp\" ) and require(\"cmp_nvim_lsp\").default_capabilities() or nil, }, opts.jdtls) -- Existing server will be reused if the root_dir matches. require(\"jdtls\").start_or_attach(config) -- not need to require(\"jdtls.setup\").add_commands(), start automatically adds commands end -- Attach the jdtls for each java buffer. HOWEVER, this plugin loads -- depending on filetype, so this autocmd doesn't run for the first file. -- For that, we call directly below. vim.api.nvim_create_autocmd(\"FileType\", { pattern = java_filetypes, callback = attach_jdtls, }) -- Setup keymap and dap after the lsp is fully attached. -- https://github.com/mfussenegger/nvim-jdtls#nvim-dap-configuration -- https://neovim.io/doc/user/lsp.html#LspAttach vim.api.nvim_create_autocmd(\"LspAttach\", { callback = function(args) local client = vim.lsp.get_client_by_id(args.data.client_id) if client and client.name == \"jdtls\" then local wk = require(\"which-key\") wk.add({ { mode = \"n\", buffer = args.buf, { \"cx\", group = \"extract\" }, { \"cxv\", require(\"jdtls\").extract_variable_all, desc = \"Extract Variable\" }, { \"cxc\", require(\"jdtls\").extract_constant, desc = \"Extract Constant\" }, { \"cgs\", require(\"jdtls\").super_implementation, desc = \"Goto Super\" }, { \"cgS\", require(\"jdtls.tests\").goto_subjects, desc = \"Goto Subjects\" }, { \"co\", require(\"jdtls\").organize_imports, desc = \"Organize Imports\" }, }, }) wk.add({ { mode = \"x\", buffer = args.buf, { \"cx\", group = \"extract\" }, { \"cxm\", [[lua require('jdtls').extract_method(true)]], desc = \"Extract Method\", }, { \"cxv\", [[lua require('jdtls').extract_variable_all(true)]], desc = \"Extract Variable\", }, { \"cxc\", [[lua require('jdtls').extract_constant(true)]], desc = \"Extract Constant\", }, }, }) if LazyVim.has(\"mason.nvim\") then local mason_registry = require(\"mason-registry\") if opts.dap and LazyVim.has(\"nvim-dap\") and mason_registry.is_installed(\"java-debug-adapter\") then -- custom init for Java debugger require(\"jdtls\").setup_dap(opts.dap) if opts.dap_main then require(\"jdtls.dap\").setup_dap_main_class_configs(opts.dap_main) end -- Java Test require Java debugger to work if opts.test and mason_registry.is_installed(\"java-test\") then -- custom keymaps for Java test runner (not yet compatible with neotest) wk.add({ { mode = \"n\", buffer = args.buf, { \"t\", group = \"test\" }, { \"tt\", function() require(\"jdtls.dap\").test_class({ config_overrides = type(opts.test) ~= \"boolean\" and opts.test.config_overrides or nil, }) end, desc = \"Run All Test\", }, { \"tr\", function() require(\"jdtls.dap\").test_nearest_method({ config_overrides = type(opts.test) ~= \"boolean\" and opts.test.config_overrides or nil, }) end, desc = \"Run Nearest Test\", }, { \"tT\", require(\"jdtls.dap\").pick_test, desc = \"Run Test\" }, }, }) end end end -- User can set additional keymaps in opts.on_attach if opts.on_attach then opts.on_attach(args) end end end, }) -- Avoid race condition by calling attach the first time, since the autocmd won't fire. attach_jdtls() end, }","s":"nvim-jdtls","u":"/extras/lang/java","h":"#nvim-jdtls","p":717},{"i":728,"t":"Options Full Spec opts = nil { \"folke/which-key.nvim\" }","s":"which-key.nvim","u":"/extras/lang/java","h":"#which-keynvim","p":717},{"i":730,"t":"Ensure java debugger and test packages are installed. Options Full Spec opts = function() -- Simple configuration to attach to remote java debug process -- Taken directly from https://github.com/mfussenegger/nvim-dap/wiki/Java local dap = require(\"dap\") dap.configurations.java = { { type = \"java\", request = \"attach\", name = \"Debug (Attach) - Remote\", hostName = \"127.0.0.1\", port = 5005, }, } end { \"mfussenegger/nvim-dap\", optional = true, opts = function() -- Simple configuration to attach to remote java debug process -- Taken directly from https://github.com/mfussenegger/nvim-dap/wiki/Java local dap = require(\"dap\") dap.configurations.java = { { type = \"java\", request = \"attach\", name = \"Debug (Attach) - Remote\", hostName = \"127.0.0.1\", port = 5005, }, } end, dependencies = { { \"mason-org/mason.nvim\", opts = { ensure_installed = { \"java-debug-adapter\", \"java-test\" } }, }, }, }","s":"nvim-dap (optional)","u":"/extras/lang/java","h":"#nvim-dap-optional","p":717},{"i":732,"t":"info You can enable the extra with the :LazyExtras command. Plugins marked as optional will only be configured if they are installed. Below you can find a list of included plugins and their default settings. caution You don't need to copy the default settings to your config. They are only shown here for reference.","s":"Nushell","u":"/extras/lang/nushell","h":"","p":731},{"i":734,"t":"Options Full Spec opts = { servers = { nushell = {}, }, } { \"neovim/nvim-lspconfig\", opts = { servers = { nushell = {}, }, }, }","s":"nvim-lspconfig","u":"/extras/lang/nushell","h":"#nvim-lspconfig","p":731},{"i":736,"t":"Options Full Spec opts = { ensure_installed = { \"nu\" } } { \"nvim-treesitter/nvim-treesitter\", opts = { ensure_installed = { \"nu\" } }, }","s":"nvim-treesitter","u":"/extras/lang/nushell","h":"#nvim-treesitter","p":731},{"i":738,"t":"info You can enable the extra with the :LazyExtras command. Plugins marked as optional will only be configured if they are installed. Below you can find a list of included plugins and their default settings. caution You don't need to copy the default settings to your config. They are only shown here for reference.","s":"Nix","u":"/extras/lang/nix","h":"","p":737},{"i":740,"t":"Options Full Spec opts = { ensure_installed = { \"nix\" } } { \"nvim-treesitter/nvim-treesitter\", opts = { ensure_installed = { \"nix\" } }, }","s":"nvim-treesitter","u":"/extras/lang/nix","h":"#nvim-treesitter","p":737},{"i":742,"t":"Options Full Spec opts = { servers = { nil_ls = {}, }, } { \"neovim/nvim-lspconfig\", opts = { servers = { nil_ls = {}, }, }, }","s":"nvim-lspconfig","u":"/extras/lang/nix","h":"#nvim-lspconfig","p":737},{"i":744,"t":"Options Full Spec opts = { formatters_by_ft = { nix = { \"nixfmt\" }, }, } { \"stevearc/conform.nvim\", optional = true, opts = { formatters_by_ft = { nix = { \"nixfmt\" }, }, }, }","s":"conform.nvim (optional)","u":"/extras/lang/nix","h":"#conformnvim-optional","p":737},{"i":746,"t":"Options Full Spec opts = { linters_by_ft = { nix = { \"statix\" }, }, } { \"mfussenegger/nvim-lint\", optional = true, opts = { linters_by_ft = { nix = { \"statix\" }, }, }, }","s":"nvim-lint (optional)","u":"/extras/lang/nix","h":"#nvim-lint-optional","p":737},{"i":748,"t":"info You can enable the extra with the :LazyExtras command. Plugins marked as optional will only be configured if they are installed. Below you can find a list of included plugins and their default settings. caution You don't need to copy the default settings to your config. They are only shown here for reference.","s":"Kotlin","u":"/extras/lang/kotlin","h":"","p":747},{"i":750,"t":"Add packages(linting, debug adapter) Options Full Spec opts = { ensure_installed = { \"ktlint\" } } { \"mason-org/mason.nvim\", opts = { ensure_installed = { \"ktlint\" } }, }","s":"mason.nvim","u":"/extras/lang/kotlin","h":"#masonnvim","p":747},{"i":752,"t":"Add syntax highlighting Options Full Spec opts = { ensure_installed = { \"kotlin\" } } { \"nvim-treesitter/nvim-treesitter\", opts = { ensure_installed = { \"kotlin\" } }, }","s":"nvim-treesitter","u":"/extras/lang/kotlin","h":"#nvim-treesitter","p":747},{"i":754,"t":"Add language server Options Full Spec opts = { servers = { kotlin_language_server = {}, }, } { \"neovim/nvim-lspconfig\", opts = { servers = { kotlin_language_server = {}, }, }, }","s":"nvim-lspconfig","u":"/extras/lang/kotlin","h":"#nvim-lspconfig","p":747},{"i":756,"t":"Add linting Options Full Spec opts = { linters_by_ft = { kotlin = { \"ktlint\" } }, } { \"mfussenegger/nvim-lint\", optional = true, dependencies = \"mason-org/mason.nvim\", opts = { linters_by_ft = { kotlin = { \"ktlint\" } }, }, }","s":"nvim-lint (optional)","u":"/extras/lang/kotlin","h":"#nvim-lint-optional","p":747},{"i":758,"t":"Add formatting Options Full Spec opts = { formatters_by_ft = { kotlin = { \"ktlint\" } }, } { \"stevearc/conform.nvim\", optional = true, opts = { formatters_by_ft = { kotlin = { \"ktlint\" } }, }, }","s":"conform.nvim (optional)","u":"/extras/lang/kotlin","h":"#conformnvim-optional","p":747},{"i":760,"t":"Add formatting and linting Options Full Spec opts = function(_, opts) local nls = require(\"null-ls\") opts.sources = vim.list_extend(opts.sources or {}, { nls.builtins.formatting.ktlint, nls.builtins.diagnostics.ktlint, }) end { \"nvimtools/none-ls.nvim\", optional = true, opts = function(_, opts) local nls = require(\"null-ls\") opts.sources = vim.list_extend(opts.sources or {}, { nls.builtins.formatting.ktlint, nls.builtins.diagnostics.ktlint, }) end, }","s":"none-ls.nvim (optional)","u":"/extras/lang/kotlin","h":"#none-lsnvim-optional","p":747},{"i":762,"t":"Add debugger Options Full Spec opts = function() local dap = require(\"dap\") if not dap.adapters.kotlin then dap.adapters.kotlin = { type = \"executable\", command = \"kotlin-debug-adapter\", options = { auto_continue_if_many_stopped = false }, } end dap.configurations.kotlin = { { type = \"kotlin\", request = \"launch\", name = \"This file\", -- may differ, when in doubt, whatever your project structure may be, -- it has to correspond to the class file located at `build/classes/` -- and of course you have to build before you debug mainClass = function() local root = vim.fs.find(\"src\", { path = vim.uv.cwd(), upward = true, stop = vim.env.HOME })[1] or \"\" local fname = vim.api.nvim_buf_get_name(0) -- src/main/kotlin/websearch/Main.kt -> websearch.MainKt return fname:gsub(root, \"\"):gsub(\"main/kotlin/\", \"\"):gsub(\".kt\", \"Kt\"):gsub(\"/\", \".\"):sub(2, -1) end, projectRoot = \"${workspaceFolder}\", jsonLogFile = \"\", enableJsonLogging = false, }, { -- Use this for unit tests -- First, run -- ./gradlew --info cleanTest test --debug-jvm -- then attach the debugger to it type = \"kotlin\", request = \"attach\", name = \"Attach to debugging session\", port = 5005, args = {}, projectRoot = vim.fn.getcwd, hostName = \"localhost\", timeout = 2000, }, } end { \"mfussenegger/nvim-dap\", optional = true, dependencies = \"mason-org/mason.nvim\", opts = function() local dap = require(\"dap\") if not dap.adapters.kotlin then dap.adapters.kotlin = { type = \"executable\", command = \"kotlin-debug-adapter\", options = { auto_continue_if_many_stopped = false }, } end dap.configurations.kotlin = { { type = \"kotlin\", request = \"launch\", name = \"This file\", -- may differ, when in doubt, whatever your project structure may be, -- it has to correspond to the class file located at `build/classes/` -- and of course you have to build before you debug mainClass = function() local root = vim.fs.find(\"src\", { path = vim.uv.cwd(), upward = true, stop = vim.env.HOME })[1] or \"\" local fname = vim.api.nvim_buf_get_name(0) -- src/main/kotlin/websearch/Main.kt -> websearch.MainKt return fname:gsub(root, \"\"):gsub(\"main/kotlin/\", \"\"):gsub(\".kt\", \"Kt\"):gsub(\"/\", \".\"):sub(2, -1) end, projectRoot = \"${workspaceFolder}\", jsonLogFile = \"\", enableJsonLogging = false, }, { -- Use this for unit tests -- First, run -- ./gradlew --info cleanTest test --debug-jvm -- then attach the debugger to it type = \"kotlin\", request = \"attach\", name = \"Attach to debugging session\", port = 5005, args = {}, projectRoot = vim.fn.getcwd, hostName = \"localhost\", timeout = 2000, }, } end, }","s":"nvim-dap (optional)","u":"/extras/lang/kotlin","h":"#nvim-dap-optional","p":747},{"i":764,"t":"info You can enable the extra with the :LazyExtras command. Plugins marked as optional will only be configured if they are installed. Below you can find a list of included plugins and their default settings. caution You don't need to copy the default settings to your config. They are only shown here for reference.","s":"Ocaml","u":"/extras/lang/ocaml","h":"","p":763},{"i":766,"t":"Options Full Spec opts = function(_, opts) if type(opts.ensure_installed) == \"table\" then vim.list_extend(opts.ensure_installed, { \"ocaml\" }) end end { \"nvim-treesitter/nvim-treesitter\", opts = function(_, opts) if type(opts.ensure_installed) == \"table\" then vim.list_extend(opts.ensure_installed, { \"ocaml\" }) end end, }","s":"nvim-treesitter","u":"/extras/lang/ocaml","h":"#nvim-treesitter","p":763},{"i":768,"t":"Options Full Spec opts = { servers = { ocamllsp = { filetypes = { \"ocaml\", \"ocaml.menhir\", \"ocaml.interface\", \"ocaml.ocamllex\", \"reason\", \"dune\", }, root_markers = { function(name) return name:match(\".*%.opam$\") end, \"esy.json\", \"package.json\", \".git\", \"dune-project\", \"dune-workspace\", function(name) return name:match(\".*%.ml$\") end, }, }, }, } { \"neovim/nvim-lspconfig\", opts = { servers = { ocamllsp = { filetypes = { \"ocaml\", \"ocaml.menhir\", \"ocaml.interface\", \"ocaml.ocamllex\", \"reason\", \"dune\", }, root_markers = { function(name) return name:match(\".*%.opam$\") end, \"esy.json\", \"package.json\", \".git\", \"dune-project\", \"dune-workspace\", function(name) return name:match(\".*%.ml$\") end, }, }, }, }, }","s":"nvim-lspconfig","u":"/extras/lang/ocaml","h":"#nvim-lspconfig","p":763},{"i":770,"t":"info You can enable the extra with the :LazyExtras command. Plugins marked as optional will only be configured if they are installed. Below you can find a list of included plugins and their default settings. caution You don't need to copy the default settings to your config. They are only shown here for reference.","s":"Prisma","u":"/extras/lang/prisma","h":"","p":769},{"i":772,"t":"Options Full Spec opts = { ensure_installed = { \"prisma\" }, } { \"nvim-treesitter/nvim-treesitter\", opts = { ensure_installed = { \"prisma\" }, }, }","s":"nvim-treesitter","u":"/extras/lang/prisma","h":"#nvim-treesitter","p":769},{"i":774,"t":"Options Full Spec opts = { servers = { prismals = {}, }, } { \"neovim/nvim-lspconfig\", opts = { servers = { prismals = {}, }, }, }","s":"nvim-lspconfig","u":"/extras/lang/prisma","h":"#nvim-lspconfig","p":769},{"i":776,"t":"info You can enable the extra with the :LazyExtras command. Plugins marked as optional will only be configured if they are installed. Below you can find a list of included plugins and their default settings. caution You don't need to copy the default settings to your config. They are only shown here for reference.","s":"Markdown","u":"/extras/lang/markdown","h":"","p":775},{"i":778,"t":"Options Full Spec opts = { ensure_installed = { \"markdownlint-cli2\", \"markdown-toc\" } } { \"mason-org/mason.nvim\", opts = { ensure_installed = { \"markdownlint-cli2\", \"markdown-toc\" } }, }","s":"mason.nvim","u":"/extras/lang/markdown","h":"#masonnvim","p":775},{"i":780,"t":"Options Full Spec opts = { servers = { marksman = {}, }, } { \"neovim/nvim-lspconfig\", opts = { servers = { marksman = {}, }, }, }","s":"nvim-lspconfig","u":"/extras/lang/markdown","h":"#nvim-lspconfig","p":775},{"i":782,"t":"Markdown preview Options Full Spec opts = {} { \"iamcco/markdown-preview.nvim\", cmd = { \"MarkdownPreviewToggle\", \"MarkdownPreview\", \"MarkdownPreviewStop\" }, build = function() require(\"lazy\").load({ plugins = { \"markdown-preview.nvim\" } }) vim.fn[\"mkdp#util#install\"]() end, keys = { { \"cp\", ft = \"markdown\", \"MarkdownPreviewToggle\", desc = \"Markdown Preview\", }, }, config = function() vim.cmd([[do FileType]]) end, }","s":"markdown-preview.nvim","u":"/extras/lang/markdown","h":"#markdown-previewnvim","p":775},{"i":784,"t":"Options Full Spec opts = nil { \"markdown-preview.nvim\" }","s":"markdown-preview.nvim","u":"/extras/lang/markdown","h":"#markdown-previewnvim-1","p":775},{"i":786,"t":"Options Full Spec opts = { code = { sign = false, width = \"block\", right_pad = 1, }, heading = { sign = false, icons = {}, }, checkbox = { enabled = false, }, } { \"MeanderingProgrammer/render-markdown.nvim\", opts = { code = { sign = false, width = \"block\", right_pad = 1, }, heading = { sign = false, icons = {}, }, checkbox = { enabled = false, }, }, ft = { \"markdown\", \"norg\", \"rmd\", \"org\", \"codecompanion\" }, config = function(_, opts) require(\"render-markdown\").setup(opts) Snacks.toggle({ name = \"Render Markdown\", get = require(\"render-markdown\").get, set = require(\"render-markdown\").set, }):map(\"um\") end, }","s":"render-markdown.nvim","u":"/extras/lang/markdown","h":"#render-markdownnvim","p":775},{"i":788,"t":"Options Full Spec opts = { formatters = { [\"markdown-toc\"] = { condition = function(_, ctx) for _, line in ipairs(vim.api.nvim_buf_get_lines(ctx.buf, 0, -1, false)) do if line:find(\"\") then return true end end end, }, [\"markdownlint-cli2\"] = { condition = function(_, ctx) local diag = vim.tbl_filter(function(d) return d.source == \"markdownlint\" end, vim.diagnostic.get(ctx.buf)) return #diag > 0 end, }, }, formatters_by_ft = { [\"markdown\"] = { \"prettier\", \"markdownlint-cli2\", \"markdown-toc\" }, [\"markdown.mdx\"] = { \"prettier\", \"markdownlint-cli2\", \"markdown-toc\" }, }, } { \"stevearc/conform.nvim\", optional = true, opts = { formatters = { [\"markdown-toc\"] = { condition = function(_, ctx) for _, line in ipairs(vim.api.nvim_buf_get_lines(ctx.buf, 0, -1, false)) do if line:find(\"\") then return true end end end, }, [\"markdownlint-cli2\"] = { condition = function(_, ctx) local diag = vim.tbl_filter(function(d) return d.source == \"markdownlint\" end, vim.diagnostic.get(ctx.buf)) return #diag > 0 end, }, }, formatters_by_ft = { [\"markdown\"] = { \"prettier\", \"markdownlint-cli2\", \"markdown-toc\" }, [\"markdown.mdx\"] = { \"prettier\", \"markdownlint-cli2\", \"markdown-toc\" }, }, }, }","s":"conform.nvim (optional)","u":"/extras/lang/markdown","h":"#conformnvim-optional","p":775},{"i":790,"t":"Options Full Spec opts = function(_, opts) local nls = require(\"null-ls\") opts.sources = vim.list_extend(opts.sources or {}, { nls.builtins.diagnostics.markdownlint_cli2, }) end { \"nvimtools/none-ls.nvim\", optional = true, opts = function(_, opts) local nls = require(\"null-ls\") opts.sources = vim.list_extend(opts.sources or {}, { nls.builtins.diagnostics.markdownlint_cli2, }) end, }","s":"none-ls.nvim (optional)","u":"/extras/lang/markdown","h":"#none-lsnvim-optional","p":775},{"i":792,"t":"Options Full Spec opts = { linters_by_ft = { markdown = { \"markdownlint-cli2\" }, }, } { \"mfussenegger/nvim-lint\", optional = true, opts = { linters_by_ft = { markdown = { \"markdownlint-cli2\" }, }, }, }","s":"nvim-lint (optional)","u":"/extras/lang/markdown","h":"#nvim-lint-optional","p":775},{"i":794,"t":"info You can enable the extra with the :LazyExtras command. Plugins marked as optional will only be configured if they are installed. Below you can find a list of included plugins and their default settings. caution You don't need to copy the default settings to your config. They are only shown here for reference.","s":"Rego","u":"/extras/lang/rego","h":"","p":793},{"i":796,"t":"Options Full Spec opts = { servers = { regols = {}, regal = {}, }, } { \"neovim/nvim-lspconfig\", opts = { servers = { regols = {}, regal = {}, }, }, }","s":"nvim-lspconfig","u":"/extras/lang/rego","h":"#nvim-lspconfig","p":793},{"i":798,"t":"Options Full Spec opts = { ensure_installed = { \"rego\" }, } { \"nvim-treesitter/nvim-treesitter\", opts = { ensure_installed = { \"rego\" }, }, }","s":"nvim-treesitter","u":"/extras/lang/rego","h":"#nvim-treesitter","p":793},{"i":800,"t":"info You can enable the extra with the :LazyExtras command. Plugins marked as optional will only be configured if they are installed.","s":"PHP","u":"/extras/lang/php","h":"","p":799},{"i":802,"t":"Additional options for this extra can be configured in your lua/config/options.lua file: lua/config/options.lua -- LSP Server to use for PHP. -- Set to \"intelephense\" to use intelephense instead of phpactor. vim.g.lazyvim_php_lsp = \"intelephense\" Below you can find a list of included plugins and their default settings. caution You don't need to copy the default settings to your config. They are only shown here for reference.","s":"Options","u":"/extras/lang/php","h":"#options","p":799},{"i":804,"t":"Options Full Spec opts = { ensure_installed = { \"php\" } } { \"nvim-treesitter/nvim-treesitter\", opts = { ensure_installed = { \"php\" } }, }","s":"nvim-treesitter","u":"/extras/lang/php","h":"#nvim-treesitter","p":799},{"i":806,"t":"Options Full Spec opts = { servers = { phpactor = { enabled = lsp == \"phpactor\", }, intelephense = { enabled = lsp == \"intelephense\", }, [lsp] = { enabled = true, }, }, } { \"neovim/nvim-lspconfig\", opts = { servers = { phpactor = { enabled = lsp == \"phpactor\", }, intelephense = { enabled = lsp == \"intelephense\", }, [lsp] = { enabled = true, }, }, }, }","s":"nvim-lspconfig","u":"/extras/lang/php","h":"#nvim-lspconfig","p":799},{"i":808,"t":"Options Full Spec opts = { ensure_installed = { \"phpcs\", \"php-cs-fixer\", }, } { \"mason-org/mason.nvim\", opts = { ensure_installed = { \"phpcs\", \"php-cs-fixer\", }, }, }","s":"mason.nvim","u":"/extras/lang/php","h":"#masonnvim","p":799},{"i":810,"t":"Options Full Spec opts = nil { \"V13Axel/neotest-pest\", \"olimorris/neotest-phpunit\", }","s":"neotest-pest","u":"/extras/lang/php","h":"#neotest-pest","p":799},{"i":812,"t":"Options Full Spec opts = nil \"olimorris/neotest-phpunit\"","s":"neotest-phpunit","u":"/extras/lang/php","h":"#neotest-phpunit","p":799},{"i":814,"t":"Options Full Spec opts = nil { \"neotest-pest\", [\"neotest-phpunit\"] = { root_ignore_files = { \"tests/Pest.php\" }, }, }","s":"neotest-pest","u":"/extras/lang/php","h":"#neotest-pest-1","p":799},{"i":816,"t":"Options Full Spec opts = function() local dap = require(\"dap\") dap.adapters.php = { type = \"executable\", command = \"php-debug-adapter\", args = {}, } end { \"mfussenegger/nvim-dap\", optional = true, opts = function() local dap = require(\"dap\") dap.adapters.php = { type = \"executable\", command = \"php-debug-adapter\", args = {}, } end, }","s":"nvim-dap (optional)","u":"/extras/lang/php","h":"#nvim-dap-optional","p":799},{"i":818,"t":"Options Full Spec opts = function(_, opts) local nls = require(\"null-ls\") opts.sources = opts.sources or {} table.insert(opts.sources, nls.builtins.formatting.phpcsfixer) table.insert(opts.sources, nls.builtins.diagnostics.phpcs) end { \"nvimtools/none-ls.nvim\", optional = true, opts = function(_, opts) local nls = require(\"null-ls\") opts.sources = opts.sources or {} table.insert(opts.sources, nls.builtins.formatting.phpcsfixer) table.insert(opts.sources, nls.builtins.diagnostics.phpcs) end, }","s":"none-ls.nvim (optional)","u":"/extras/lang/php","h":"#none-lsnvim-optional","p":799},{"i":820,"t":"Options Full Spec opts = { linters_by_ft = { php = { \"phpcs\" }, }, } { \"mfussenegger/nvim-lint\", optional = true, opts = { linters_by_ft = { php = { \"phpcs\" }, }, }, }","s":"nvim-lint (optional)","u":"/extras/lang/php","h":"#nvim-lint-optional","p":799},{"i":822,"t":"Options Full Spec opts = { formatters_by_ft = { php = { \"php_cs_fixer\" }, }, } { \"stevearc/conform.nvim\", optional = true, opts = { formatters_by_ft = { php = { \"php_cs_fixer\" }, }, }, }","s":"conform.nvim (optional)","u":"/extras/lang/php","h":"#conformnvim-optional","p":799},{"i":824,"t":"Options Full Spec opts = { adapters = { \"neotest-pest\", [\"neotest-phpunit\"] = { root_ignore_files = { \"tests/Pest.php\" }, }, }, } { \"nvim-neotest/neotest\", optional = true, dependencies = { \"V13Axel/neotest-pest\", \"olimorris/neotest-phpunit\", }, opts = { adapters = { \"neotest-pest\", [\"neotest-phpunit\"] = { root_ignore_files = { \"tests/Pest.php\" }, }, }, }, }","s":"neotest (optional)","u":"/extras/lang/php","h":"#neotest-optional","p":799},{"i":826,"t":"info You can enable the extra with the :LazyExtras command. Plugins marked as optional will only be configured if they are installed.","s":"Python","u":"/extras/lang/python","h":"","p":825},{"i":828,"t":"Additional options for this extra can be configured in your lua/config/options.lua file: lua/config/options.lua -- LSP Server to use for Python. -- Set to \"basedpyright\" to use basedpyright instead of pyright. vim.g.lazyvim_python_lsp = \"pyright\" -- Set to \"ruff_lsp\" to use the old LSP implementation version. vim.g.lazyvim_python_ruff = \"ruff\" Below you can find a list of included plugins and their default settings. caution You don't need to copy the default settings to your config. They are only shown here for reference.","s":"Options","u":"/extras/lang/python","h":"#options","p":825},{"i":830,"t":"Options Full Spec opts = { ensure_installed = { \"ninja\", \"rst\" } } { \"nvim-treesitter/nvim-treesitter\", opts = { ensure_installed = { \"ninja\", \"rst\" } }, }","s":"nvim-treesitter","u":"/extras/lang/python","h":"#nvim-treesitter","p":825},{"i":832,"t":"Options Full Spec opts = { servers = { ruff = { cmd_env = { RUFF_TRACE = \"messages\" }, init_options = { settings = { logLevel = \"error\", }, }, keys = { { \"co\", LazyVim.lsp.action[\"source.organizeImports\"], desc = \"Organize Imports\", }, }, }, ruff_lsp = { keys = { { \"co\", LazyVim.lsp.action[\"source.organizeImports\"], desc = \"Organize Imports\", }, }, }, }, setup = { [ruff] = function() LazyVim.lsp.on_attach(function(client, _) -- Disable hover in favor of Pyright client.server_capabilities.hoverProvider = false end, ruff) end, }, } { \"neovim/nvim-lspconfig\", opts = { servers = { ruff = { cmd_env = { RUFF_TRACE = \"messages\" }, init_options = { settings = { logLevel = \"error\", }, }, keys = { { \"co\", LazyVim.lsp.action[\"source.organizeImports\"], desc = \"Organize Imports\", }, }, }, ruff_lsp = { keys = { { \"co\", LazyVim.lsp.action[\"source.organizeImports\"], desc = \"Organize Imports\", }, }, }, }, setup = { [ruff] = function() LazyVim.lsp.on_attach(function(client, _) -- Disable hover in favor of Pyright client.server_capabilities.hoverProvider = false end, ruff) end, }, }, }","s":"nvim-lspconfig","u":"/extras/lang/python","h":"#nvim-lspconfig","p":825},{"i":834,"t":"Options Full Spec opts = function(_, opts) local servers = { \"pyright\", \"basedpyright\", \"ruff\", \"ruff_lsp\", ruff, lsp } for _, server in ipairs(servers) do opts.servers[server] = opts.servers[server] or {} opts.servers[server].enabled = server == lsp or server == ruff end end { \"neovim/nvim-lspconfig\", opts = function(_, opts) local servers = { \"pyright\", \"basedpyright\", \"ruff\", \"ruff_lsp\", ruff, lsp } for _, server in ipairs(servers) do opts.servers[server] = opts.servers[server] or {} opts.servers[server].enabled = server == lsp or server == ruff end end, }","s":"nvim-lspconfig","u":"/extras/lang/python","h":"#nvim-lspconfig-1","p":825},{"i":836,"t":"Options Full Spec opts = nil { \"nvim-neotest/neotest-python\", }","s":"neotest-python","u":"/extras/lang/python","h":"#neotest-python","p":825},{"i":838,"t":"Options Full Spec opts = {} { \"mfussenegger/nvim-dap-python\", -- stylua: ignore keys = { { \"dPt\", function() require('dap-python').test_method() end, desc = \"Debug Method\", ft = \"python\" }, { \"dPc\", function() require('dap-python').test_class() end, desc = \"Debug Class\", ft = \"python\" }, }, config = function() require(\"dap-python\").setup(\"debugpy-adapter\") end, }","s":"nvim-dap-python","u":"/extras/lang/python","h":"#nvim-dap-python","p":825},{"i":840,"t":"Options Full Spec opts = { options = { notify_user_on_venv_activation = true, }, } { \"linux-cultist/venv-selector.nvim\", cmd = \"VenvSelect\", opts = { options = { notify_user_on_venv_activation = true, }, }, -- Call config for Python files and load the cached venv automatically ft = \"python\", keys = { { \"cv\", \":VenvSelect\", desc = \"Select VirtualEnv\", ft = \"python\" } }, }","s":"venv-selector.nvim","u":"/extras/lang/python","h":"#venv-selectornvim","p":825},{"i":842,"t":"Options Full Spec opts = { adapters = { [\"neotest-python\"] = { -- Here you can specify the settings for the adapter, i.e. -- runner = \"pytest\", -- python = \".venv/bin/python\", }, }, } { \"nvim-neotest/neotest\", optional = true, dependencies = { \"nvim-neotest/neotest-python\", }, opts = { adapters = { [\"neotest-python\"] = { -- Here you can specify the settings for the adapter, i.e. -- runner = \"pytest\", -- python = \".venv/bin/python\", }, }, }, }","s":"neotest (optional)","u":"/extras/lang/python","h":"#neotest-optional","p":825},{"i":844,"t":"Options Full Spec opts = nil { \"mfussenegger/nvim-dap\", optional = true, dependencies = { \"mfussenegger/nvim-dap-python\", -- stylua: ignore keys = { { \"dPt\", function() require('dap-python').test_method() end, desc = \"Debug Method\", ft = \"python\" }, { \"dPc\", function() require('dap-python').test_class() end, desc = \"Debug Class\", ft = \"python\" }, }, config = function() require(\"dap-python\").setup(\"debugpy-adapter\") end, }, }","s":"nvim-dap (optional)","u":"/extras/lang/python","h":"#nvim-dap-optional","p":825},{"i":846,"t":"Options Full Spec opts = function(_, opts) opts.auto_brackets = opts.auto_brackets or {} table.insert(opts.auto_brackets, \"python\") end { \"hrsh7th/nvim-cmp\", optional = true, opts = function(_, opts) opts.auto_brackets = opts.auto_brackets or {} table.insert(opts.auto_brackets, \"python\") end, }","s":"nvim-cmp (optional)","u":"/extras/lang/python","h":"#nvim-cmp-optional","p":825},{"i":848,"t":"Don't mess up DAP adapters provided by nvim-dap-python Options Full Spec opts = { handlers = { python = function() end, }, } { \"jay-babu/mason-nvim-dap.nvim\", optional = true, opts = { handlers = { python = function() end, }, }, }","s":"mason-nvim-dap.nvim (optional)","u":"/extras/lang/python","h":"#mason-nvim-dapnvim-optional","p":825},{"i":850,"t":"info You can enable the extra with the :LazyExtras command. Plugins marked as optional will only be configured if they are installed. Below you can find a list of included plugins and their default settings. caution You don't need to copy the default settings to your config. They are only shown here for reference.","s":"R","u":"/extras/lang/r","h":"","p":849},{"i":852,"t":"Options Full Spec opts = { -- Create a table with the options to be passed to setup() R_args = { \"--quiet\", \"--no-save\" }, hook = { on_filetype = function() -- This function will be called at the FileType event -- of files supported by R.nvim. This is an -- opportunity to create mappings local to buffers. vim.keymap.set(\"n\", \"\", \"RDSendLine\", { buffer = true }) vim.keymap.set(\"x\", \"\", \"RSendSelection\", { buffer = true }) local wk = require(\"which-key\") wk.add({ buffer = true, mode = { \"n\", \"x\" }, { \"a\", group = \"all\" }, { \"b\", group = \"between marks\" }, { \"c\", group = \"chunks\" }, { \"f\", group = \"functions\" }, { \"g\", group = \"goto\" }, { \"i\", group = \"install\" }, { \"k\", group = \"knit\" }, { \"p\", group = \"paragraph\" }, { \"q\", group = \"quarto\" }, { \"r\", group = \"r general\" }, { \"s\", group = \"split or send\" }, { \"t\", group = \"terminal\" }, { \"v\", group = \"view\" }, }) end, }, pdfviewer = \"\", } { \"R-nvim/R.nvim\", lazy = false, opts = { -- Create a table with the options to be passed to setup() R_args = { \"--quiet\", \"--no-save\" }, hook = { on_filetype = function() -- This function will be called at the FileType event -- of files supported by R.nvim. This is an -- opportunity to create mappings local to buffers. vim.keymap.set(\"n\", \"\", \"RDSendLine\", { buffer = true }) vim.keymap.set(\"x\", \"\", \"RSendSelection\", { buffer = true }) local wk = require(\"which-key\") wk.add({ buffer = true, mode = { \"n\", \"x\" }, { \"a\", group = \"all\" }, { \"b\", group = \"between marks\" }, { \"c\", group = \"chunks\" }, { \"f\", group = \"functions\" }, { \"g\", group = \"goto\" }, { \"i\", group = \"install\" }, { \"k\", group = \"knit\" }, { \"p\", group = \"paragraph\" }, { \"q\", group = \"quarto\" }, { \"r\", group = \"r general\" }, { \"s\", group = \"split or send\" }, { \"t\", group = \"terminal\" }, { \"v\", group = \"view\" }, }) end, }, pdfviewer = \"\", }, config = function(_, opts) vim.g.rout_follow_colorscheme = true require(\"r\").setup(opts) require(\"r.pdf.generic\").open = vim.ui.open end, }","s":"R.nvim","u":"/extras/lang/r","h":"#rnvim","p":849},{"i":854,"t":"Options Full Spec opts = nil { \"R-nvim/cmp-r\" }","s":"cmp-r","u":"/extras/lang/r","h":"#cmp-r","p":849},{"i":856,"t":"Options Full Spec opts = { ensure_installed = { \"r\", \"rnoweb\" } } { \"nvim-treesitter/nvim-treesitter\", opts = { ensure_installed = { \"r\", \"rnoweb\" } }, }","s":"nvim-treesitter","u":"/extras/lang/r","h":"#nvim-treesitter","p":849},{"i":858,"t":"Options Full Spec opts = { servers = { r_language_server = { root_markers = { \"DESCRIPTION\", \"NAMESPACE\", \".Rbuildignore\" }, }, }, } { \"neovim/nvim-lspconfig\", opts = { servers = { r_language_server = { root_markers = { \"DESCRIPTION\", \"NAMESPACE\", \".Rbuildignore\" }, }, }, }, }","s":"nvim-lspconfig","u":"/extras/lang/r","h":"#nvim-lspconfig","p":849},{"i":860,"t":"Options Full Spec opts = nil { \"shunsambongi/neotest-testthat\", }","s":"neotest-testthat","u":"/extras/lang/r","h":"#neotest-testthat","p":849},{"i":862,"t":"Options Full Spec opts = function(_, opts) opts.sources = opts.sources or {} table.insert(opts.sources, { name = \"cmp_r\" }) end { \"hrsh7th/nvim-cmp\", optional = true, dependencies = { \"R-nvim/cmp-r\" }, opts = function(_, opts) opts.sources = opts.sources or {} table.insert(opts.sources, { name = \"cmp_r\" }) end, }","s":"nvim-cmp (optional)","u":"/extras/lang/r","h":"#nvim-cmp-optional","p":849},{"i":864,"t":"Options Full Spec opts = { adapters = { [\"neotest-testthat\"] = {}, }, } { \"nvim-neotest/neotest\", optional = true, dependencies = { \"shunsambongi/neotest-testthat\", }, opts = { adapters = { [\"neotest-testthat\"] = {}, }, }, }","s":"neotest (optional)","u":"/extras/lang/r","h":"#neotest-optional","p":849},{"i":866,"t":"info You can enable the extra with the :LazyExtras command. Plugins marked as optional will only be configured if they are installed.","s":"Ruby","u":"/extras/lang/ruby","h":"","p":865},{"i":868,"t":"Additional options for this extra can be configured in your lua/config/options.lua file: lua/config/options.lua -- LSP Server to use for Ruby. -- Set to \"solargraph\" to use solargraph instead of ruby_lsp. vim.g.lazyvim_ruby_lsp = \"ruby_lsp\" vim.g.lazyvim_ruby_formatter = \"rubocop\" Below you can find a list of included plugins and their default settings. caution You don't need to copy the default settings to your config. They are only shown here for reference.","s":"Options","u":"/extras/lang/ruby","h":"#options","p":865},{"i":870,"t":"Options Full Spec opts = { ensure_installed = { \"ruby\" } } { \"nvim-treesitter/nvim-treesitter\", opts = { ensure_installed = { \"ruby\" } }, }","s":"nvim-treesitter","u":"/extras/lang/ruby","h":"#nvim-treesitter","p":865},{"i":872,"t":"Options Full Spec opts = { servers = { ruby_lsp = { enabled = lsp == \"ruby_lsp\", }, solargraph = { enabled = lsp == \"solargraph\", }, rubocop = { -- If Solargraph and Rubocop are both enabled as an LSP, -- diagnostics will be duplicated because Solargraph -- already calls Rubocop if it is installed enabled = formatter == \"rubocop\" and lsp ~= \"solargraph\", }, standardrb = { enabled = formatter == \"standardrb\", }, }, } { \"neovim/nvim-lspconfig\", ---@type PluginLspOpts opts = { servers = { ruby_lsp = { enabled = lsp == \"ruby_lsp\", }, solargraph = { enabled = lsp == \"solargraph\", }, rubocop = { -- If Solargraph and Rubocop are both enabled as an LSP, -- diagnostics will be duplicated because Solargraph -- already calls Rubocop if it is installed enabled = formatter == \"rubocop\" and lsp ~= \"solargraph\", }, standardrb = { enabled = formatter == \"standardrb\", }, }, }, }","s":"nvim-lspconfig","u":"/extras/lang/ruby","h":"#nvim-lspconfig","p":865},{"i":874,"t":"Options Full Spec opts = { ensure_installed = { \"erb-formatter\", \"erb-lint\" } } { \"mason-org/mason.nvim\", opts = { ensure_installed = { \"erb-formatter\", \"erb-lint\" } }, }","s":"mason.nvim","u":"/extras/lang/ruby","h":"#masonnvim","p":865},{"i":876,"t":"Options Full Spec opts = {} { \"suketa/nvim-dap-ruby\", config = function() require(\"dap-ruby\").setup() end, }","s":"nvim-dap-ruby","u":"/extras/lang/ruby","h":"#nvim-dap-ruby","p":865},{"i":878,"t":"Options Full Spec opts = nil { \"olimorris/neotest-rspec\", }","s":"neotest-rspec","u":"/extras/lang/ruby","h":"#neotest-rspec","p":865},{"i":880,"t":"Options Full Spec opts = nil { \"mfussenegger/nvim-dap\", optional = true, dependencies = { \"suketa/nvim-dap-ruby\", config = function() require(\"dap-ruby\").setup() end, }, }","s":"nvim-dap (optional)","u":"/extras/lang/ruby","h":"#nvim-dap-optional","p":865},{"i":882,"t":"Options Full Spec opts = { formatters_by_ft = { ruby = { formatter }, eruby = { \"erb_format\" }, }, } { \"stevearc/conform.nvim\", optional = true, opts = { formatters_by_ft = { ruby = { formatter }, eruby = { \"erb_format\" }, }, }, }","s":"conform.nvim (optional)","u":"/extras/lang/ruby","h":"#conformnvim-optional","p":865},{"i":884,"t":"Options Full Spec opts = { adapters = { [\"neotest-rspec\"] = { -- NOTE: By default neotest-rspec uses the system wide rspec gem instead of the one through bundler -- rspec_cmd = function() -- return vim.tbl_flatten({ -- \"bundle\", -- \"exec\", -- \"rspec\", -- }) -- end, }, }, } { \"nvim-neotest/neotest\", optional = true, dependencies = { \"olimorris/neotest-rspec\", }, opts = { adapters = { [\"neotest-rspec\"] = { -- NOTE: By default neotest-rspec uses the system wide rspec gem instead of the one through bundler -- rspec_cmd = function() -- return vim.tbl_flatten({ -- \"bundle\", -- \"exec\", -- \"rspec\", -- }) -- end, }, }, }, }","s":"neotest (optional)","u":"/extras/lang/ruby","h":"#neotest-optional","p":865},{"i":886,"t":"info You can enable the extra with the :LazyExtras command. Plugins marked as optional will only be configured if they are installed. Below you can find a list of included plugins and their default settings. caution You don't need to copy the default settings to your config. They are only shown here for reference.","s":"Scala","u":"/extras/lang/scala","h":"","p":885},{"i":888,"t":"Options Full Spec opts = { ensure_installed = { \"scala\" } } { \"nvim-treesitter/nvim-treesitter\", opts = { ensure_installed = { \"scala\" } }, }","s":"nvim-treesitter","u":"/extras/lang/scala","h":"#nvim-treesitter","p":885},{"i":890,"t":"Options Full Spec opts = function() local metals_config = require(\"metals\").bare_config() metals_config.init_options.statusBarProvider = \"off\" metals_config.settings = { verboseCompilation = true, showImplicitArguments = true, showImplicitConversionsAndClasses = true, showInferredType = true, superMethodLensesEnabled = true, excludedPackages = { \"akka.actor.typed.javadsl\", \"org.apache.pekko.actor.typed.javadsl\", \"com.github.swagger.akka.javadsl\", }, testUserInterface = \"Test Explorer\", } metals_config.on_attach = function(client, bufnr) -- your on_attach function require(\"metals\").setup_dap() end return metals_config end { \"scalameta/nvim-metals\", dependencies = { \"nvim-lua/plenary.nvim\", }, keys = { { \"me\", function() require(\"telescope\").extensions.metals.commands() end, desc = \"Metals commands\", }, { \"mc\", function() require(\"metals\").compile_cascade() end, desc = \"Metals compile cascade\", }, { \"mh\", function() require(\"metals\").hover_worksheet() end, desc = \"Metals hover worksheet\", }, }, ft = { \"scala\", \"sbt\", \"java\" }, opts = function() local metals_config = require(\"metals\").bare_config() metals_config.init_options.statusBarProvider = \"off\" metals_config.settings = { verboseCompilation = true, showImplicitArguments = true, showImplicitConversionsAndClasses = true, showInferredType = true, superMethodLensesEnabled = true, excludedPackages = { \"akka.actor.typed.javadsl\", \"org.apache.pekko.actor.typed.javadsl\", \"com.github.swagger.akka.javadsl\", }, testUserInterface = \"Test Explorer\", } metals_config.on_attach = function(client, bufnr) -- your on_attach function require(\"metals\").setup_dap() end return metals_config end, config = function(self, metals_config) local nvim_metals_group = vim.api.nvim_create_augroup(\"nvim-metals\", { clear = true }) vim.api.nvim_create_autocmd(\"FileType\", { pattern = self.ft, callback = function() require(\"metals\").initialize_or_attach(metals_config) end, group = nvim_metals_group, }) end, }","s":"nvim-metals","u":"/extras/lang/scala","h":"#nvim-metals","p":885},{"i":892,"t":"Options Full Spec opts = nil { \"nvim-lua/plenary.nvim\", }","s":"plenary.nvim","u":"/extras/lang/scala","h":"#plenarynvim","p":885},{"i":894,"t":"Options Full Spec opts = function() -- Debug settings local dap = require(\"dap\") dap.configurations.scala = { { type = \"scala\", request = \"launch\", name = \"RunOrTest\", metals = { runType = \"runOrTestFile\", --args = { \"firstArg\", \"secondArg\", \"thirdArg\" }, -- here just as an example }, }, { type = \"scala\", request = \"launch\", name = \"Test Target\", metals = { runType = \"testTarget\", }, }, } end { \"mfussenegger/nvim-dap\", optional = true, opts = function() -- Debug settings local dap = require(\"dap\") dap.configurations.scala = { { type = \"scala\", request = \"launch\", name = \"RunOrTest\", metals = { runType = \"runOrTestFile\", --args = { \"firstArg\", \"secondArg\", \"thirdArg\" }, -- here just as an example }, }, { type = \"scala\", request = \"launch\", name = \"Test Target\", metals = { runType = \"testTarget\", }, }, } end, }","s":"nvim-dap (optional)","u":"/extras/lang/scala","h":"#nvim-dap-optional","p":885},{"i":896,"t":"info You can enable the extra with the :LazyExtras command. Plugins marked as optional will only be configured if they are installed. Below you can find a list of included plugins and their default settings. caution You don't need to copy the default settings to your config. They are only shown here for reference.","s":"Svelte","u":"/extras/lang/svelte","h":"","p":895},{"i":898,"t":"lang.typescript","s":"Includes the following extras","u":"/extras/lang/svelte","h":"#includes-the-following-extras","p":895},{"i":900,"t":"Options Full Spec opts = { ensure_installed = { \"svelte\" } } { \"nvim-treesitter/nvim-treesitter\", opts = { ensure_installed = { \"svelte\" } }, }","s":"nvim-treesitter","u":"/extras/lang/svelte","h":"#nvim-treesitter","p":895},{"i":902,"t":"LSP Servers Options Full Spec opts = { servers = { svelte = { keys = { { \"co\", LazyVim.lsp.action[\"source.organizeImports\"], desc = \"Organize Imports\", }, }, }, }, } { \"neovim/nvim-lspconfig\", opts = { servers = { svelte = { keys = { { \"co\", LazyVim.lsp.action[\"source.organizeImports\"], desc = \"Organize Imports\", }, }, }, }, }, }","s":"nvim-lspconfig","u":"/extras/lang/svelte","h":"#nvim-lspconfig","p":895},{"i":904,"t":"Configure tsserver plugin Options Full Spec opts = function(_, opts) LazyVim.extend(opts.servers.vtsls, \"settings.vtsls.tsserver.globalPlugins\", { { name = \"typescript-svelte-plugin\", location = LazyVim.get_pkg_path(\"svelte-language-server\", \"/node_modules/typescript-svelte-plugin\"), enableForWorkspaceTypeScriptVersions = true, }, }) end { \"neovim/nvim-lspconfig\", opts = function(_, opts) LazyVim.extend(opts.servers.vtsls, \"settings.vtsls.tsserver.globalPlugins\", { { name = \"typescript-svelte-plugin\", location = LazyVim.get_pkg_path(\"svelte-language-server\", \"/node_modules/typescript-svelte-plugin\"), enableForWorkspaceTypeScriptVersions = true, }, }) end, }","s":"nvim-lspconfig","u":"/extras/lang/svelte","h":"#nvim-lspconfig-1","p":895},{"i":906,"t":"Options Full Spec opts = function(_, opts) if LazyVim.has_extra(\"formatting.prettier\") then opts.formatters_by_ft = opts.formatters_by_ft or {} opts.formatters_by_ft.svelte = { \"prettier\" } end end { \"conform.nvim\", opts = function(_, opts) if LazyVim.has_extra(\"formatting.prettier\") then opts.formatters_by_ft = opts.formatters_by_ft or {} opts.formatters_by_ft.svelte = { \"prettier\" } end end, }","s":"conform.nvim","u":"/extras/lang/svelte","h":"#conformnvim","p":895},{"i":908,"t":"info You can enable the extra with the :LazyExtras command. Plugins marked as optional will only be configured if they are installed.","s":"Rust","u":"/extras/lang/rust","h":"","p":907},{"i":910,"t":"Additional options for this extra can be configured in your lua/config/options.lua file: lua/config/options.lua -- LSP Server to use for Rust. -- Set to \"bacon-ls\" to use bacon-ls instead of rust-analyzer. -- only for diagnostics. The rest of LSP support will still be -- provided by rust-analyzer. vim.g.lazyvim_rust_diagnostics = \"rust-analyzer\" Below you can find a list of included plugins and their default settings. caution You don't need to copy the default settings to your config. They are only shown here for reference.","s":"Options","u":"/extras/lang/rust","h":"#options","p":907},{"i":912,"t":"LSP for Cargo.toml Options Full Spec opts = { completion = { crates = { enabled = true, }, }, lsp = { enabled = true, actions = true, completion = true, hover = true, }, } { \"Saecki/crates.nvim\", event = { \"BufRead Cargo.toml\" }, opts = { completion = { crates = { enabled = true, }, }, lsp = { enabled = true, actions = true, completion = true, hover = true, }, }, }","s":"crates.nvim","u":"/extras/lang/rust","h":"#cratesnvim","p":907},{"i":914,"t":"Add Rust & related to treesitter Options Full Spec opts = { ensure_installed = { \"rust\", \"ron\" } } { \"nvim-treesitter/nvim-treesitter\", opts = { ensure_installed = { \"rust\", \"ron\" } }, }","s":"nvim-treesitter","u":"/extras/lang/rust","h":"#nvim-treesitter","p":907},{"i":916,"t":"Options Full Spec opts = { server = { on_attach = function(_, bufnr) vim.keymap.set(\"n\", \"cR\", function() vim.cmd.RustLsp(\"codeAction\") end, { desc = \"Code Action\", buffer = bufnr }) vim.keymap.set(\"n\", \"dr\", function() vim.cmd.RustLsp(\"debuggables\") end, { desc = \"Rust Debuggables\", buffer = bufnr }) end, default_settings = { -- rust-analyzer language server configuration [\"rust-analyzer\"] = { cargo = { allFeatures = true, loadOutDirsFromCheck = true, buildScripts = { enable = true, }, }, -- Add clippy lints for Rust if using rust-analyzer checkOnSave = diagnostics == \"rust-analyzer\", -- Enable diagnostics if using rust-analyzer diagnostics = { enable = diagnostics == \"rust-analyzer\", }, procMacro = { enable = true, }, files = { exclude = { \".direnv\", \".git\", \".jj\", \".github\", \".gitlab\", \"bin\", \"node_modules\", \"target\", \"venv\", \".venv\", }, -- Avoid Roots Scanned hanging, see https://github.com/rust-lang/rust-analyzer/issues/12613#issuecomment-2096386344 watcher = \"client\", }, }, }, }, } { \"mrcjkb/rustaceanvim\", ft = { \"rust\" }, opts = { server = { on_attach = function(_, bufnr) vim.keymap.set(\"n\", \"cR\", function() vim.cmd.RustLsp(\"codeAction\") end, { desc = \"Code Action\", buffer = bufnr }) vim.keymap.set(\"n\", \"dr\", function() vim.cmd.RustLsp(\"debuggables\") end, { desc = \"Rust Debuggables\", buffer = bufnr }) end, default_settings = { -- rust-analyzer language server configuration [\"rust-analyzer\"] = { cargo = { allFeatures = true, loadOutDirsFromCheck = true, buildScripts = { enable = true, }, }, -- Add clippy lints for Rust if using rust-analyzer checkOnSave = diagnostics == \"rust-analyzer\", -- Enable diagnostics if using rust-analyzer diagnostics = { enable = diagnostics == \"rust-analyzer\", }, procMacro = { enable = true, }, files = { exclude = { \".direnv\", \".git\", \".jj\", \".github\", \".gitlab\", \"bin\", \"node_modules\", \"target\", \"venv\", \".venv\", }, -- Avoid Roots Scanned hanging, see https://github.com/rust-lang/rust-analyzer/issues/12613#issuecomment-2096386344 watcher = \"client\", }, }, }, }, }, config = function(_, opts) if LazyVim.has(\"mason.nvim\") then local codelldb = vim.fn.exepath(\"codelldb\") local codelldb_lib_ext = io.popen(\"uname\"):read(\"*l\") == \"Linux\" and \".so\" or \".dylib\" local library_path = vim.fn.expand(\"$MASON/opt/lldb/lib/liblldb\" .. codelldb_lib_ext) opts.dap = { adapter = require(\"rustaceanvim.config\").get_codelldb_adapter(codelldb, library_path), } end vim.g.rustaceanvim = vim.tbl_deep_extend(\"keep\", vim.g.rustaceanvim or {}, opts or {}) if vim.fn.executable(\"rust-analyzer\") == 0 then LazyVim.error( \"**rust-analyzer** not found in PATH, please install it.\\nhttps://rust-analyzer.github.io/\", { title = \"rustaceanvim\" } ) end end, }","s":"rustaceanvim","u":"/extras/lang/rust","h":"#rustaceanvim","p":907},{"i":918,"t":"Correctly setup lspconfig for Rust 🚀 Options Full Spec opts = { servers = { bacon_ls = { enabled = diagnostics == \"bacon-ls\", }, rust_analyzer = { enabled = false }, }, } { \"neovim/nvim-lspconfig\", opts = { servers = { bacon_ls = { enabled = diagnostics == \"bacon-ls\", }, rust_analyzer = { enabled = false }, }, }, }","s":"nvim-lspconfig","u":"/extras/lang/rust","h":"#nvim-lspconfig","p":907},{"i":920,"t":"Ensure Rust debugger is installed Options Full Spec opts = function(_, opts) opts.ensure_installed = opts.ensure_installed or {} vim.list_extend(opts.ensure_installed, { \"codelldb\" }) if diagnostics == \"bacon-ls\" then vim.list_extend(opts.ensure_installed, { \"bacon\" }) end end { \"mason-org/mason.nvim\", optional = true, opts = function(_, opts) opts.ensure_installed = opts.ensure_installed or {} vim.list_extend(opts.ensure_installed, { \"codelldb\" }) if diagnostics == \"bacon-ls\" then vim.list_extend(opts.ensure_installed, { \"bacon\" }) end end, }","s":"mason.nvim (optional)","u":"/extras/lang/rust","h":"#masonnvim-optional","p":907},{"i":922,"t":"Options Full Spec opts = { adapters = { [\"rustaceanvim.neotest\"] = {}, }, } { \"nvim-neotest/neotest\", optional = true, opts = { adapters = { [\"rustaceanvim.neotest\"] = {}, }, }, }","s":"neotest (optional)","u":"/extras/lang/rust","h":"#neotest-optional","p":907},{"i":924,"t":"info You can enable the extra with the :LazyExtras command. Plugins marked as optional will only be configured if they are installed.","s":"Sql","u":"/extras/lang/sql","h":"","p":923},{"i":926,"t":"Additional options for this extra can be configured in your lua/config/options.lua file: lua/config/options.lua -- The setup below will automatically configure connections without the need for manual input each time. -- Example configuration using dictionary with keys: -- vim.g.dbs = { -- dev = \"Replace with your database connection URL.\", -- staging = \"Replace with your database connection URL.\", -- } -- or -- Example configuration using a list of dictionaries: -- vim.g.dbs = { -- { name = \"dev\", url = \"Replace with your database connection URL.\" }, -- { name = \"staging\", url = \"Replace with your database connection URL.\" }, -- } -- or -- Create a `.lazy.lua` file in your project and set your connections like this: -- ```lua -- vim.g.dbs = {...} -- -- return {} -- ``` -- Alternatively, you can also use other methods to inject your environment variables. -- Finally, please make sure to add `.lazy.lua` to your `.gitignore` file to protect your secrets. Below you can find a list of included plugins and their default settings. caution You don't need to copy the default settings to your config. They are only shown here for reference.","s":"Options","u":"/extras/lang/sql","h":"#options","p":923},{"i":928,"t":"Options Full Spec opts = nil { \"tpope/vim-dadbod\", cmd = \"DB\", }","s":"vim-dadbod","u":"/extras/lang/sql","h":"#vim-dadbod","p":923},{"i":930,"t":"Options Full Spec opts = nil { \"kristijanhusak/vim-dadbod-completion\", dependencies = \"vim-dadbod\", ft = sql_ft, init = function() vim.api.nvim_create_autocmd(\"FileType\", { pattern = sql_ft, callback = function() if LazyVim.has_extra(\"coding.nvim-cmp\") then local cmp = require(\"cmp\") -- global sources ---@param source cmp.SourceConfig local sources = vim.tbl_map(function(source) return { name = source.name } end, cmp.get_config().sources) -- add vim-dadbod-completion source table.insert(sources, { name = \"vim-dadbod-completion\" }) -- update sources for the current buffer cmp.setup.buffer({ sources = sources }) end end, }) end, }","s":"vim-dadbod-completion","u":"/extras/lang/sql","h":"#vim-dadbod-completion","p":923},{"i":932,"t":"Options Full Spec opts = nil { \"kristijanhusak/vim-dadbod-ui\", cmd = { \"DBUI\", \"DBUIToggle\", \"DBUIAddConnection\", \"DBUIFindBuffer\" }, dependencies = \"vim-dadbod\", keys = { { \"D\", \"DBUIToggle\", desc = \"Toggle DBUI\" }, }, init = function() local data_path = vim.fn.stdpath(\"data\") vim.g.db_ui_auto_execute_table_helpers = 1 vim.g.db_ui_save_location = data_path .. \"/dadbod_ui\" vim.g.db_ui_show_database_icon = true vim.g.db_ui_tmp_query_location = data_path .. \"/dadbod_ui/tmp\" vim.g.db_ui_use_nerd_fonts = true vim.g.db_ui_use_nvim_notify = true -- NOTE: The default behavior of auto-execution of queries on save is disabled -- this is useful when you have a big query that you don't want to run every time -- you save the file running those queries can crash neovim to run use the -- default keymap: S vim.g.db_ui_execute_on_save = false end, }","s":"vim-dadbod-ui","u":"/extras/lang/sql","h":"#vim-dadbod-ui","p":923},{"i":934,"t":"Options Full Spec opts = nil { \"kristijanhusak/vim-dadbod-completion\", }","s":"vim-dadbod-completion","u":"/extras/lang/sql","h":"#vim-dadbod-completion-1","p":923},{"i":936,"t":"Linters & formatters Options Full Spec opts = { ensure_installed = { \"sqlfluff\" } } { \"mason-org/mason.nvim\", opts = { ensure_installed = { \"sqlfluff\" } }, }","s":"mason.nvim","u":"/extras/lang/sql","h":"#masonnvim","p":923},{"i":938,"t":"Treesitter Options Full Spec opts = { ensure_installed = { \"sql\" } } { \"nvim-treesitter/nvim-treesitter\", optional = true, opts = { ensure_installed = { \"sql\" } }, }","s":"nvim-treesitter (optional)","u":"/extras/lang/sql","h":"#nvim-treesitter-optional","p":923},{"i":940,"t":"Edgy integration Options Full Spec opts = function(_, opts) opts.right = opts.right or {} table.insert(opts.right, { title = \"Database\", ft = \"dbui\", pinned = true, width = 0.3, open = function() vim.cmd(\"DBUI\") end, }) opts.bottom = opts.bottom or {} table.insert(opts.bottom, { title = \"DB Query Result\", ft = \"dbout\", }) end { \"folke/edgy.nvim\", optional = true, opts = function(_, opts) opts.right = opts.right or {} table.insert(opts.right, { title = \"Database\", ft = \"dbui\", pinned = true, width = 0.3, open = function() vim.cmd(\"DBUI\") end, }) opts.bottom = opts.bottom or {} table.insert(opts.bottom, { title = \"DB Query Result\", ft = \"dbout\", }) end, }","s":"edgy.nvim (optional)","u":"/extras/lang/sql","h":"#edgynvim-optional","p":923},{"i":942,"t":"blink.cmp integration Options Full Spec opts = { sources = { default = { \"dadbod\" }, providers = { dadbod = { name = \"Dadbod\", module = \"vim_dadbod_completion.blink\" }, }, }, } { \"saghen/blink.cmp\", optional = true, opts = { sources = { default = { \"dadbod\" }, providers = { dadbod = { name = \"Dadbod\", module = \"vim_dadbod_completion.blink\" }, }, }, }, dependencies = { \"kristijanhusak/vim-dadbod-completion\", }, }","s":"blink.cmp (optional)","u":"/extras/lang/sql","h":"#blinkcmp-optional","p":923},{"i":944,"t":"Options Full Spec opts = function(_, opts) for _, ft in ipairs(sql_ft) do opts.linters_by_ft[ft] = opts.linters_by_ft[ft] or {} table.insert(opts.linters_by_ft[ft], \"sqlfluff\") end end { \"mfussenegger/nvim-lint\", optional = true, opts = function(_, opts) for _, ft in ipairs(sql_ft) do opts.linters_by_ft[ft] = opts.linters_by_ft[ft] or {} table.insert(opts.linters_by_ft[ft], \"sqlfluff\") end end, }","s":"nvim-lint (optional)","u":"/extras/lang/sql","h":"#nvim-lint-optional","p":923},{"i":946,"t":"Options Full Spec opts = function(_, opts) opts.formatters.sqlfluff = { args = { \"format\", \"--dialect=ansi\", \"-\" }, } for _, ft in ipairs(sql_ft) do opts.formatters_by_ft[ft] = opts.formatters_by_ft[ft] or {} table.insert(opts.formatters_by_ft[ft], \"sqlfluff\") end end { \"stevearc/conform.nvim\", optional = true, opts = function(_, opts) opts.formatters.sqlfluff = { args = { \"format\", \"--dialect=ansi\", \"-\" }, } for _, ft in ipairs(sql_ft) do opts.formatters_by_ft[ft] = opts.formatters_by_ft[ft] or {} table.insert(opts.formatters_by_ft[ft], \"sqlfluff\") end end, }","s":"conform.nvim (optional)","u":"/extras/lang/sql","h":"#conformnvim-optional","p":923},{"i":948,"t":"info You can enable the extra with the :LazyExtras command. Plugins marked as optional will only be configured if they are installed. Below you can find a list of included plugins and their default settings. caution You don't need to copy the default settings to your config. They are only shown here for reference.","s":"Tailwind CSS","u":"/extras/lang/tailwind","h":"","p":947},{"i":950,"t":"Options Full Spec opts = { servers = { tailwindcss = { -- exclude a filetype from the default_config filetypes_exclude = { \"markdown\" }, -- add additional filetypes to the default_config filetypes_include = {}, -- to fully override the default_config, change the below -- filetypes = {} -- additional settings for the server, e.g: -- tailwindCSS = { includeLanguages = { someLang = \"html\" } } -- can be addeded to the settings table and will be merged with -- this defaults for Phoenix projects settings = { tailwindCSS = { includeLanguages = { elixir = \"html-eex\", eelixir = \"html-eex\", heex = \"html-eex\", }, }, }, }, }, setup = { tailwindcss = function(_, opts) opts.filetypes = opts.filetypes or {} -- Add default filetypes vim.list_extend(opts.filetypes, vim.lsp.config.tailwindcss.filetypes) -- Remove excluded filetypes --- @param ft string opts.filetypes = vim.tbl_filter(function(ft) return not vim.tbl_contains(opts.filetypes_exclude or {}, ft) end, opts.filetypes) -- Add additional filetypes vim.list_extend(opts.filetypes, opts.filetypes_include or {}) end, }, } { \"neovim/nvim-lspconfig\", opts = { servers = { tailwindcss = { -- exclude a filetype from the default_config filetypes_exclude = { \"markdown\" }, -- add additional filetypes to the default_config filetypes_include = {}, -- to fully override the default_config, change the below -- filetypes = {} -- additional settings for the server, e.g: -- tailwindCSS = { includeLanguages = { someLang = \"html\" } } -- can be addeded to the settings table and will be merged with -- this defaults for Phoenix projects settings = { tailwindCSS = { includeLanguages = { elixir = \"html-eex\", eelixir = \"html-eex\", heex = \"html-eex\", }, }, }, }, }, setup = { tailwindcss = function(_, opts) opts.filetypes = opts.filetypes or {} -- Add default filetypes vim.list_extend(opts.filetypes, vim.lsp.config.tailwindcss.filetypes) -- Remove excluded filetypes --- @param ft string opts.filetypes = vim.tbl_filter(function(ft) return not vim.tbl_contains(opts.filetypes_exclude or {}, ft) end, opts.filetypes) -- Add additional filetypes vim.list_extend(opts.filetypes, opts.filetypes_include or {}) end, }, }, }","s":"nvim-lspconfig","u":"/extras/lang/tailwind","h":"#nvim-lspconfig","p":947},{"i":952,"t":"Options Full Spec opts = {} { \"roobert/tailwindcss-colorizer-cmp.nvim\", opts = {} }","s":"tailwindcss-colorizer-cmp.nvim","u":"/extras/lang/tailwind","h":"#tailwindcss-colorizer-cmpnvim","p":947},{"i":954,"t":"Options Full Spec opts = function(_, opts) -- original LazyVim kind icon formatter local format_kinds = opts.formatting.format opts.formatting.format = function(entry, item) format_kinds(entry, item) -- add icons return require(\"tailwindcss-colorizer-cmp\").formatter(entry, item) end end { \"hrsh7th/nvim-cmp\", optional = true, dependencies = { { \"roobert/tailwindcss-colorizer-cmp.nvim\", opts = {} }, }, opts = function(_, opts) -- original LazyVim kind icon formatter local format_kinds = opts.formatting.format opts.formatting.format = function(entry, item) format_kinds(entry, item) -- add icons return require(\"tailwindcss-colorizer-cmp\").formatter(entry, item) end end, }","s":"nvim-cmp (optional)","u":"/extras/lang/tailwind","h":"#nvim-cmp-optional","p":947},{"i":956,"t":"info You can enable the extra with the :LazyExtras command. Plugins marked as optional will only be configured if they are installed. Below you can find a list of included plugins and their default settings. caution You don't need to copy the default settings to your config. They are only shown here for reference.","s":"Thrift","u":"/extras/lang/thrift","h":"","p":955},{"i":958,"t":"Options Full Spec opts = { ensure_installed = { \"thrift\" } } { \"nvim-treesitter\", opts = { ensure_installed = { \"thrift\" } }, }","s":"nvim-treesitter","u":"/extras/lang/thrift","h":"#nvim-treesitter","p":955},{"i":960,"t":"Options Full Spec opts = { servers = { thriftls = {}, }, } { \"nvim-lspconfig\", optional = true, opts = { servers = { thriftls = {}, }, }, }","s":"nvim-lspconfig (optional)","u":"/extras/lang/thrift","h":"#nvim-lspconfig-optional","p":955},{"i":962,"t":"info You can enable the extra with the :LazyExtras command. Plugins marked as optional will only be configured if they are installed. Below you can find a list of included plugins and their default settings. caution You don't need to copy the default settings to your config. They are only shown here for reference.","s":"Tex","u":"/extras/lang/tex","h":"","p":961},{"i":964,"t":"Add BibTeX/LaTeX to treesitter Options Full Spec opts = function(_, opts) opts.highlight = opts.highlight or {} if type(opts.ensure_installed) == \"table\" then vim.list_extend(opts.ensure_installed, { \"bibtex\", \"latex\" }) end if type(opts.highlight.disable) == \"table\" then vim.list_extend(opts.highlight.disable, { \"latex\" }) else opts.highlight.disable = { \"latex\" } end end { \"nvim-treesitter/nvim-treesitter\", opts = function(_, opts) opts.highlight = opts.highlight or {} if type(opts.ensure_installed) == \"table\" then vim.list_extend(opts.ensure_installed, { \"bibtex\", \"latex\" }) end if type(opts.highlight.disable) == \"table\" then vim.list_extend(opts.highlight.disable, { \"latex\" }) else opts.highlight.disable = { \"latex\" } end end, }","s":"nvim-treesitter","u":"/extras/lang/tex","h":"#nvim-treesitter","p":961},{"i":966,"t":"Options Full Spec opts = {} { \"lervag/vimtex\", lazy = false, -- lazy-loading will disable inverse search config = function() vim.g.vimtex_mappings_disable = { [\"n\"] = { \"K\" } } -- disable `K` as it conflicts with LSP hover vim.g.vimtex_quickfix_method = vim.fn.executable(\"pplatex\") == 1 and \"pplatex\" or \"latexlog\" end, keys = { { \"l\", \"\", desc = \"+vimtex\", ft = \"tex\" }, }, }","s":"vimtex","u":"/extras/lang/tex","h":"#vimtex","p":961},{"i":968,"t":"Correctly setup lspconfig for LaTeX 🚀 Options Full Spec opts = { servers = { texlab = { keys = { { \"K\", \"(vimtex-doc-package)\", desc = \"Vimtex Docs\", silent = true }, }, }, }, } { \"neovim/nvim-lspconfig\", optional = true, opts = { servers = { texlab = { keys = { { \"K\", \"(vimtex-doc-package)\", desc = \"Vimtex Docs\", silent = true }, }, }, }, }, }","s":"nvim-lspconfig (optional)","u":"/extras/lang/tex","h":"#nvim-lspconfig-optional","p":961},{"i":970,"t":"info You can enable the extra with the :LazyExtras command. Plugins marked as optional will only be configured if they are installed. Below you can find a list of included plugins and their default settings. caution You don't need to copy the default settings to your config. They are only shown here for reference.","s":"Terraform","u":"/extras/lang/terraform","h":"","p":969},{"i":972,"t":"Options Full Spec opts = { ensure_installed = { \"terraform\", \"hcl\" } } { \"nvim-treesitter/nvim-treesitter\", opts = { ensure_installed = { \"terraform\", \"hcl\" } }, }","s":"nvim-treesitter","u":"/extras/lang/terraform","h":"#nvim-treesitter","p":969},{"i":974,"t":"Options Full Spec opts = { servers = { terraformls = {}, }, } { \"neovim/nvim-lspconfig\", opts = { servers = { terraformls = {}, }, }, }","s":"nvim-lspconfig","u":"/extras/lang/terraform","h":"#nvim-lspconfig","p":969},{"i":976,"t":"ensure terraform tools are installed Options Full Spec opts = { ensure_installed = { \"tflint\" } } { \"mason-org/mason.nvim\", opts = { ensure_installed = { \"tflint\" } }, }","s":"mason.nvim","u":"/extras/lang/terraform","h":"#masonnvim","p":969},{"i":978,"t":"Options Full Spec opts = {} { \"ANGkeith/telescope-terraform-doc.nvim\", ft = { \"terraform\", \"hcl\" }, config = function() LazyVim.on_load(\"telescope.nvim\", function() require(\"telescope\").load_extension(\"terraform_doc\") end) end, }","s":"telescope-terraform-doc.nvim","u":"/extras/lang/terraform","h":"#telescope-terraform-docnvim","p":969},{"i":980,"t":"Options Full Spec opts = {} { \"cappyzawa/telescope-terraform.nvim\", ft = { \"terraform\", \"hcl\" }, config = function() LazyVim.on_load(\"telescope.nvim\", function() require(\"telescope\").load_extension(\"terraform\") end) end, }","s":"telescope-terraform.nvim","u":"/extras/lang/terraform","h":"#telescope-terraformnvim","p":969},{"i":982,"t":"Options Full Spec opts = function(_, opts) local null_ls = require(\"null-ls\") opts.sources = vim.list_extend(opts.sources or {}, { null_ls.builtins.formatting.packer, null_ls.builtins.formatting.terraform_fmt, null_ls.builtins.diagnostics.terraform_validate, }) end { \"nvimtools/none-ls.nvim\", optional = true, opts = function(_, opts) local null_ls = require(\"null-ls\") opts.sources = vim.list_extend(opts.sources or {}, { null_ls.builtins.formatting.packer, null_ls.builtins.formatting.terraform_fmt, null_ls.builtins.diagnostics.terraform_validate, }) end, }","s":"none-ls.nvim (optional)","u":"/extras/lang/terraform","h":"#none-lsnvim-optional","p":969},{"i":984,"t":"Options Full Spec opts = { linters_by_ft = { terraform = { \"terraform_validate\" }, tf = { \"terraform_validate\" }, }, } { \"mfussenegger/nvim-lint\", optional = true, opts = { linters_by_ft = { terraform = { \"terraform_validate\" }, tf = { \"terraform_validate\" }, }, }, }","s":"nvim-lint (optional)","u":"/extras/lang/terraform","h":"#nvim-lint-optional","p":969},{"i":986,"t":"Options Full Spec opts = { formatters_by_ft = { hcl = { \"packer_fmt\" }, terraform = { \"terraform_fmt\" }, tf = { \"terraform_fmt\" }, [\"terraform-vars\"] = { \"terraform_fmt\" }, }, } { \"stevearc/conform.nvim\", optional = true, opts = { formatters_by_ft = { hcl = { \"packer_fmt\" }, terraform = { \"terraform_fmt\" }, tf = { \"terraform_fmt\" }, [\"terraform-vars\"] = { \"terraform_fmt\" }, }, }, }","s":"conform.nvim (optional)","u":"/extras/lang/terraform","h":"#conformnvim-optional","p":969},{"i":988,"t":"Options Full Spec opts = nil { \"nvim-telescope/telescope.nvim\", optional = true, specs = { { \"ANGkeith/telescope-terraform-doc.nvim\", ft = { \"terraform\", \"hcl\" }, config = function() LazyVim.on_load(\"telescope.nvim\", function() require(\"telescope\").load_extension(\"terraform_doc\") end) end, }, { \"cappyzawa/telescope-terraform.nvim\", ft = { \"terraform\", \"hcl\" }, config = function() LazyVim.on_load(\"telescope.nvim\", function() require(\"telescope\").load_extension(\"terraform\") end) end, }, }, }","s":"telescope.nvim (optional)","u":"/extras/lang/terraform","h":"#telescopenvim-optional","p":969},{"i":990,"t":"info You can enable the extra with the :LazyExtras command. Plugins marked as optional will only be configured if they are installed. Below you can find a list of included plugins and their default settings. caution You don't need to copy the default settings to your config. They are only shown here for reference.","s":"Toml","u":"/extras/lang/toml","h":"","p":989},{"i":992,"t":"Options Full Spec opts = nil \"neovim/nvim-lspconfig\"","s":"nvim-lspconfig","u":"/extras/lang/toml","h":"#nvim-lspconfig","p":989},{"i":994,"t":"info You can enable the extra with the :LazyExtras command. Plugins marked as optional will only be configured if they are installed. Below you can find a list of included plugins and their default settings. caution You don't need to copy the default settings to your config. They are only shown here for reference.","s":"Twig","u":"/extras/lang/twig","h":"","p":993},{"i":996,"t":"Options Full Spec opts = { ensure_installed = { \"twig\" } } { \"nvim-treesitter/nvim-treesitter\", opts = { ensure_installed = { \"twig\" } }, }","s":"nvim-treesitter","u":"/extras/lang/twig","h":"#nvim-treesitter","p":993},{"i":998,"t":"Options Full Spec opts = { ensure_installed = { \"twigcs\", \"twig-cs-fixer\", }, } { \"mason-org/mason.nvim\", opts = { ensure_installed = { \"twigcs\", \"twig-cs-fixer\", }, }, }","s":"mason.nvim","u":"/extras/lang/twig","h":"#masonnvim","p":993},{"i":1000,"t":"Options Full Spec opts = { servers = { twiggy_language_server = { enabled = true, }, }, } { \"neovim/nvim-lspconfig\", opts = { servers = { twiggy_language_server = { enabled = true, }, }, }, }","s":"nvim-lspconfig","u":"/extras/lang/twig","h":"#nvim-lspconfig","p":993},{"i":1002,"t":"Options Full Spec opts = function(_, opts) local nls = require(\"null-ls\") opts.sources = opts.sources or {} table.insert(opts.sources, nls.builtins.diagnostics.twigcs) -- Twig-CS-Fixer builtin not available in none-ls end { \"nvimtools/none-ls.nvim\", optional = true, opts = function(_, opts) local nls = require(\"null-ls\") opts.sources = opts.sources or {} table.insert(opts.sources, nls.builtins.diagnostics.twigcs) -- Twig-CS-Fixer builtin not available in none-ls end, }","s":"none-ls.nvim (optional)","u":"/extras/lang/twig","h":"#none-lsnvim-optional","p":993},{"i":1004,"t":"Options Full Spec opts = { linters_by_ft = { twig = { \"twigcs\" }, }, } { \"mfussenegger/nvim-lint\", optional = true, opts = { linters_by_ft = { twig = { \"twigcs\" }, }, }, }","s":"nvim-lint (optional)","u":"/extras/lang/twig","h":"#nvim-lint-optional","p":993},{"i":1006,"t":"Options Full Spec opts = { formatters_by_ft = { twig = { \"twig-cs-fixer\" }, }, } { \"stevearc/conform.nvim\", optional = true, opts = { formatters_by_ft = { twig = { \"twig-cs-fixer\" }, }, }, }","s":"conform.nvim (optional)","u":"/extras/lang/twig","h":"#conformnvim-optional","p":993},{"i":1008,"t":"info You can enable the extra with the :LazyExtras command. Plugins marked as optional will only be configured if they are installed. Below you can find a list of included plugins and their default settings. caution You don't need to copy the default settings to your config. They are only shown here for reference.","s":"Typst","u":"/extras/lang/typst","h":"","p":1007},{"i":1010,"t":"Options Full Spec opts = { ensure_installed = { \"typst\" }, } { \"nvim-treesitter/nvim-treesitter\", opts = { ensure_installed = { \"typst\" }, }, }","s":"nvim-treesitter","u":"/extras/lang/typst","h":"#nvim-treesitter","p":1007},{"i":1012,"t":"Options Full Spec opts = { servers = { tinymist = { keys = { { \"cP\", function() local buf_name = vim.api.nvim_buf_get_name(0) local file_name = vim.fn.fnamemodify(buf_name, \":t\") LazyVim.lsp.execute({ command = \"tinymist.pinMain\", arguments = { buf_name }, }) LazyVim.info(\"Tinymist: Pinned \" .. file_name) end, desc = \"Pin main file\", }, }, single_file_support = true, -- Fixes LSP attachment in non-Git directories settings = { formatterMode = \"typstyle\", }, }, }, } { \"neovim/nvim-lspconfig\", opts = { servers = { tinymist = { keys = { { \"cP\", function() local buf_name = vim.api.nvim_buf_get_name(0) local file_name = vim.fn.fnamemodify(buf_name, \":t\") LazyVim.lsp.execute({ command = \"tinymist.pinMain\", arguments = { buf_name }, }) LazyVim.info(\"Tinymist: Pinned \" .. file_name) end, desc = \"Pin main file\", }, }, single_file_support = true, -- Fixes LSP attachment in non-Git directories settings = { formatterMode = \"typstyle\", }, }, }, }, }","s":"nvim-lspconfig","u":"/extras/lang/typst","h":"#nvim-lspconfig","p":1007},{"i":1014,"t":"Options Full Spec opts = { dependencies_bin = { tinymist = \"tinymist\", }, } { \"chomosuke/typst-preview.nvim\", cmd = { \"TypstPreview\", \"TypstPreviewToggle\", \"TypstPreviewUpdate\" }, keys = { { \"cp\", ft = \"typst\", \"TypstPreviewToggle\", desc = \"Toggle Typst Preview\", }, }, opts = { dependencies_bin = { tinymist = \"tinymist\", }, }, }","s":"typst-preview.nvim","u":"/extras/lang/typst","h":"#typst-previewnvim","p":1007},{"i":1016,"t":"Options Full Spec opts = { lang = { typst = { \"// %s\", \"/* %s */\" }, }, } { \"folke/ts-comments.nvim\", opts = { lang = { typst = { \"// %s\", \"/* %s */\" }, }, }, }","s":"ts-comments.nvim","u":"/extras/lang/typst","h":"#ts-commentsnvim","p":1007},{"i":1018,"t":"Options Full Spec opts = { formatters_by_ft = { typst = { \"typstyle\", lsp_format = \"prefer\" }, }, } { \"stevearc/conform.nvim\", optional = true, opts = { formatters_by_ft = { typst = { \"typstyle\", lsp_format = \"prefer\" }, }, }, }","s":"conform.nvim (optional)","u":"/extras/lang/typst","h":"#conformnvim-optional","p":1007},{"i":1020,"t":"info You can enable the extra with the :LazyExtras command. Plugins marked as optional will only be configured if they are installed. Below you can find a list of included plugins and their default settings. caution You don't need to copy the default settings to your config. They are only shown here for reference.","s":"Vue","u":"/extras/lang/vue","h":"","p":1019},{"i":1022,"t":"lang.typescript","s":"Includes the following extras","u":"/extras/lang/vue","h":"#includes-the-following-extras","p":1019},{"i":1024,"t":"Options Full Spec opts = { ensure_installed = { \"vue\", \"css\" } } { \"nvim-treesitter/nvim-treesitter\", opts = { ensure_installed = { \"vue\", \"css\" } }, }","s":"nvim-treesitter","u":"/extras/lang/vue","h":"#nvim-treesitter","p":1019},{"i":1026,"t":"Add LSP servers Options Full Spec opts = { servers = { vue_ls = {}, vtsls = {}, }, } { \"neovim/nvim-lspconfig\", opts = { servers = { vue_ls = {}, vtsls = {}, }, }, }","s":"nvim-lspconfig","u":"/extras/lang/vue","h":"#nvim-lspconfig","p":1019},{"i":1028,"t":"Configure tsserver plugin Options Full Spec opts = function(_, opts) table.insert(opts.servers.vtsls.filetypes, \"vue\") LazyVim.extend(opts.servers.vtsls, \"settings.vtsls.tsserver.globalPlugins\", { { name = \"@vue/typescript-plugin\", location = LazyVim.get_pkg_path(\"vue-language-server\", \"/node_modules/@vue/language-server\"), languages = { \"vue\" }, configNamespace = \"typescript\", enableForWorkspaceTypeScriptVersions = true, }, }) end { \"neovim/nvim-lspconfig\", opts = function(_, opts) table.insert(opts.servers.vtsls.filetypes, \"vue\") LazyVim.extend(opts.servers.vtsls, \"settings.vtsls.tsserver.globalPlugins\", { { name = \"@vue/typescript-plugin\", location = LazyVim.get_pkg_path(\"vue-language-server\", \"/node_modules/@vue/language-server\"), languages = { \"vue\" }, configNamespace = \"typescript\", enableForWorkspaceTypeScriptVersions = true, }, }) end, }","s":"nvim-lspconfig","u":"/extras/lang/vue","h":"#nvim-lspconfig-1","p":1019},{"i":1030,"t":"info You can enable the extra with the :LazyExtras command. Plugins marked as optional will only be configured if they are installed. Below you can find a list of included plugins and their default settings. caution You don't need to copy the default settings to your config. They are only shown here for reference.","s":"YAML","u":"/extras/lang/yaml","h":"","p":1029},{"i":1032,"t":"yaml schema support Options Full Spec opts = nil { \"b0o/SchemaStore.nvim\", lazy = true, version = false, -- last release is way too old }","s":"SchemaStore.nvim","u":"/extras/lang/yaml","h":"#schemastorenvim","p":1029},{"i":1034,"t":"correctly setup lspconfig Options Full Spec opts = { -- make sure mason installs the server servers = { yamlls = { -- Have to add this for yamlls to understand that we support line folding capabilities = { textDocument = { foldingRange = { dynamicRegistration = false, lineFoldingOnly = true, }, }, }, -- lazy-load schemastore when needed before_init = function(_, new_config) new_config.settings.yaml.schemas = vim.tbl_deep_extend( \"force\", new_config.settings.yaml.schemas or {}, require(\"schemastore\").yaml.schemas() ) end, settings = { redhat = { telemetry = { enabled = false } }, yaml = { keyOrdering = false, format = { enable = true, }, validate = true, schemaStore = { -- Must disable built-in schemaStore support to use -- schemas from SchemaStore.nvim plugin enable = false, -- Avoid TypeError: Cannot read properties of undefined (reading 'length') url = \"\", }, }, }, }, }, } { \"neovim/nvim-lspconfig\", opts = { -- make sure mason installs the server servers = { yamlls = { -- Have to add this for yamlls to understand that we support line folding capabilities = { textDocument = { foldingRange = { dynamicRegistration = false, lineFoldingOnly = true, }, }, }, -- lazy-load schemastore when needed before_init = function(_, new_config) new_config.settings.yaml.schemas = vim.tbl_deep_extend( \"force\", new_config.settings.yaml.schemas or {}, require(\"schemastore\").yaml.schemas() ) end, settings = { redhat = { telemetry = { enabled = false } }, yaml = { keyOrdering = false, format = { enable = true, }, validate = true, schemaStore = { -- Must disable built-in schemaStore support to use -- schemas from SchemaStore.nvim plugin enable = false, -- Avoid TypeError: Cannot read properties of undefined (reading 'length') url = \"\", }, }, }, }, }, }, }","s":"nvim-lspconfig","u":"/extras/lang/yaml","h":"#nvim-lspconfig","p":1029},{"i":1036,"t":"info You can enable the extra with the :LazyExtras command. Plugins marked as optional will only be configured if they are installed.","s":"Eslint","u":"/extras/linting/eslint","h":"","p":1035},{"i":1038,"t":"Additional options for this extra can be configured in your lua/config/options.lua file: lua/config/options.lua -- Set to false to disable auto format vim.g.lazyvim_eslint_auto_format = true Below you can find a list of included plugins and their default settings. caution You don't need to copy the default settings to your config. They are only shown here for reference.","s":"Options","u":"/extras/linting/eslint","h":"#options","p":1035},{"i":1040,"t":"Options Full Spec opts = { ---@type table servers = { eslint = { settings = { -- helps eslint find the eslintrc when it's placed in a subfolder instead of the cwd root workingDirectories = { mode = \"auto\" }, format = auto_format, }, }, }, setup = { eslint = function() if not auto_format then return end local formatter = LazyVim.lsp.formatter({ name = \"eslint: lsp\", primary = false, priority = 200, filter = \"eslint\", }) -- register the formatter with LazyVim LazyVim.format.register(formatter) end, }, } { \"neovim/nvim-lspconfig\", -- other settings removed for brevity opts = { ---@type table servers = { eslint = { settings = { -- helps eslint find the eslintrc when it's placed in a subfolder instead of the cwd root workingDirectories = { mode = \"auto\" }, format = auto_format, }, }, }, setup = { eslint = function() if not auto_format then return end local formatter = LazyVim.lsp.formatter({ name = \"eslint: lsp\", primary = false, priority = 200, filter = \"eslint\", }) -- register the formatter with LazyVim LazyVim.format.register(formatter) end, }, }, }","s":"nvim-lspconfig","u":"/extras/linting/eslint","h":"#nvim-lspconfig","p":1035},{"i":1042,"t":"info You can enable the extra with the :LazyExtras command. Plugins marked as optional will only be configured if they are installed. Below you can find a list of included plugins and their default settings. caution You don't need to copy the default settings to your config. They are only shown here for reference.","s":"Zig","u":"/extras/lang/zig","h":"","p":1041},{"i":1044,"t":"Options Full Spec opts = { ensure_installed = { \"zig\" } } { \"nvim-treesitter/nvim-treesitter\", opts = { ensure_installed = { \"zig\" } }, }","s":"nvim-treesitter","u":"/extras/lang/zig","h":"#nvim-treesitter","p":1041},{"i":1046,"t":"Options Full Spec opts = { servers = { zls = {}, }, } { \"neovim/nvim-lspconfig\", opts = { servers = { zls = {}, }, }, }","s":"nvim-lspconfig","u":"/extras/lang/zig","h":"#nvim-lspconfig","p":1041},{"i":1048,"t":"Options Full Spec opts = nil { \"lawrence-laz/neotest-zig\", }","s":"neotest-zig","u":"/extras/lang/zig","h":"#neotest-zig","p":1041},{"i":1050,"t":"Options Full Spec opts = { adapters = { [\"neotest-zig\"] = {}, }, } { \"nvim-neotest/neotest\", optional = true, dependencies = { \"lawrence-laz/neotest-zig\", }, opts = { adapters = { [\"neotest-zig\"] = {}, }, }, }","s":"neotest (optional)","u":"/extras/lang/zig","h":"#neotest-optional","p":1041},{"i":1052,"t":"info You can enable the extra with the :LazyExtras command. Plugins marked as optional will only be configured if they are installed. Below you can find a list of included plugins and their default settings. caution You don't need to copy the default settings to your config. They are only shown here for reference.","s":"Neoconf","u":"/extras/lsp/neoconf","h":"","p":1051},{"i":1054,"t":"Options Full Spec opts = nil { \"neovim/nvim-lspconfig\", dependencies = { { \"folke/neoconf.nvim\", cmd = \"Neoconf\", opts = {}, }, }, }","s":"nvim-lspconfig","u":"/extras/lsp/neoconf","h":"#nvim-lspconfig","p":1051},{"i":1056,"t":"Options Full Spec opts = {} { \"folke/neoconf.nvim\", cmd = \"Neoconf\", opts = {}, }","s":"neoconf.nvim","u":"/extras/lsp/neoconf","h":"#neoconfnvim","p":1051},{"i":1058,"t":"info You can enable the extra with the :LazyExtras command. Plugins marked as optional will only be configured if they are installed. Below you can find a list of included plugins and their default settings. caution You don't need to copy the default settings to your config. They are only shown here for reference.","s":"Typescript","u":"/extras/lang/typescript","h":"","p":1057},{"i":1060,"t":"correctly setup lspconfig Options Full Spec opts = { -- make sure mason installs the server servers = { --- @deprecated -- tsserver renamed to ts_ls but not yet released, so keep this for now --- the proper approach is to check the nvim-lspconfig release version when it's released to determine the server name dynamically tsserver = { enabled = false, }, ts_ls = { enabled = false, }, vtsls = { -- explicitly add default filetypes, so that we can extend -- them in related extras filetypes = { \"javascript\", \"javascriptreact\", \"javascript.jsx\", \"typescript\", \"typescriptreact\", \"typescript.tsx\", }, settings = { complete_function_calls = true, vtsls = { enableMoveToFileCodeAction = true, autoUseWorkspaceTsdk = true, experimental = { maxInlayHintLength = 30, completion = { enableServerSideFuzzyMatch = true, }, }, }, typescript = { updateImportsOnFileMove = { enabled = \"always\" }, suggest = { completeFunctionCalls = true, }, inlayHints = { enumMemberValues = { enabled = true }, functionLikeReturnTypes = { enabled = true }, parameterNames = { enabled = \"literals\" }, parameterTypes = { enabled = true }, propertyDeclarationTypes = { enabled = true }, variableTypes = { enabled = false }, }, }, }, keys = { { \"gD\", function() local win = vim.api.nvim_get_current_win() local params = vim.lsp.util.make_position_params(win, \"utf-16\") LazyVim.lsp.execute({ command = \"typescript.goToSourceDefinition\", arguments = { params.textDocument.uri, params.position }, open = true, }) end, desc = \"Goto Source Definition\", }, { \"gR\", function() LazyVim.lsp.execute({ command = \"typescript.findAllFileReferences\", arguments = { vim.uri_from_bufnr(0) }, open = true, }) end, desc = \"File References\", }, { \"co\", LazyVim.lsp.action[\"source.organizeImports\"], desc = \"Organize Imports\", }, { \"cM\", LazyVim.lsp.action[\"source.addMissingImports.ts\"], desc = \"Add missing imports\", }, { \"cu\", LazyVim.lsp.action[\"source.removeUnused.ts\"], desc = \"Remove unused imports\", }, { \"cD\", LazyVim.lsp.action[\"source.fixAll.ts\"], desc = \"Fix all diagnostics\", }, { \"cV\", function() LazyVim.lsp.execute({ command = \"typescript.selectTypeScriptVersion\" }) end, desc = \"Select TS workspace version\", }, }, }, }, setup = { --- @deprecated -- tsserver renamed to ts_ls but not yet released, so keep this for now --- the proper approach is to check the nvim-lspconfig release version when it's released to determine the server name dynamically tsserver = function() -- disable tsserver return true end, ts_ls = function() -- disable tsserver return true end, vtsls = function(_, opts) if vim.lsp.config.denols and vim.lsp.config.vtsls then ---@param server string local resolve = function(server) local markers, root_dir = vim.lsp.config[server].root_markers, vim.lsp.config[server].root_dir vim.lsp.config(server, { root_dir = function(bufnr, on_dir) local is_deno = vim.fs.root(bufnr, { \"deno.json\", \"deno.jsonc\" }) ~= nil if is_deno == (server == \"denols\") then if root_dir then return root_dir(bufnr, on_dir) elseif type(markers) == \"table\" then local root = vim.fs.root(bufnr, markers) return root and on_dir(root) end end end, }) end resolve(\"denols\") resolve(\"vtsls\") end LazyVim.lsp.on_attach(function(client, buffer) client.commands[\"_typescript.moveToFileRefactoring\"] = function(command, ctx) ---@type string, string, lsp.Range local action, uri, range = unpack(command.arguments) local function move(newf) client:request(\"workspace/executeCommand\", { command = command.command, arguments = { action, uri, range, newf }, }) end local fname = vim.uri_to_fname(uri) client:request(\"workspace/executeCommand\", { command = \"typescript.tsserverRequest\", arguments = { \"getMoveToRefactoringFileSuggestions\", { file = fname, startLine = range.start.line + 1, startOffset = range.start.character + 1, endLine = range[\"end\"].line + 1, endOffset = range[\"end\"].character + 1, }, }, }, function(_, result) ---@type string[] local files = result.body.files table.insert(files, 1, \"Enter new path...\") vim.ui.select(files, { prompt = \"Select move destination:\", format_item = function(f) return vim.fn.fnamemodify(f, \":~:.\") end, }, function(f) if f and f:find(\"^Enter new path\") then vim.ui.input({ prompt = \"Enter move destination:\", default = vim.fn.fnamemodify(fname, \":h\") .. \"/\", completion = \"file\", }, function(newf) return newf and move(newf) end) elseif f then move(f) end end) end) end end, \"vtsls\") -- copy typescript settings to javascript opts.settings.javascript = vim.tbl_deep_extend(\"force\", {}, opts.settings.typescript, opts.settings.javascript or {}) end, }, } { \"neovim/nvim-lspconfig\", opts = { -- make sure mason installs the server servers = { --- @deprecated -- tsserver renamed to ts_ls but not yet released, so keep this for now --- the proper approach is to check the nvim-lspconfig release version when it's released to determine the server name dynamically tsserver = { enabled = false, }, ts_ls = { enabled = false, }, vtsls = { -- explicitly add default filetypes, so that we can extend -- them in related extras filetypes = { \"javascript\", \"javascriptreact\", \"javascript.jsx\", \"typescript\", \"typescriptreact\", \"typescript.tsx\", }, settings = { complete_function_calls = true, vtsls = { enableMoveToFileCodeAction = true, autoUseWorkspaceTsdk = true, experimental = { maxInlayHintLength = 30, completion = { enableServerSideFuzzyMatch = true, }, }, }, typescript = { updateImportsOnFileMove = { enabled = \"always\" }, suggest = { completeFunctionCalls = true, }, inlayHints = { enumMemberValues = { enabled = true }, functionLikeReturnTypes = { enabled = true }, parameterNames = { enabled = \"literals\" }, parameterTypes = { enabled = true }, propertyDeclarationTypes = { enabled = true }, variableTypes = { enabled = false }, }, }, }, keys = { { \"gD\", function() local win = vim.api.nvim_get_current_win() local params = vim.lsp.util.make_position_params(win, \"utf-16\") LazyVim.lsp.execute({ command = \"typescript.goToSourceDefinition\", arguments = { params.textDocument.uri, params.position }, open = true, }) end, desc = \"Goto Source Definition\", }, { \"gR\", function() LazyVim.lsp.execute({ command = \"typescript.findAllFileReferences\", arguments = { vim.uri_from_bufnr(0) }, open = true, }) end, desc = \"File References\", }, { \"co\", LazyVim.lsp.action[\"source.organizeImports\"], desc = \"Organize Imports\", }, { \"cM\", LazyVim.lsp.action[\"source.addMissingImports.ts\"], desc = \"Add missing imports\", }, { \"cu\", LazyVim.lsp.action[\"source.removeUnused.ts\"], desc = \"Remove unused imports\", }, { \"cD\", LazyVim.lsp.action[\"source.fixAll.ts\"], desc = \"Fix all diagnostics\", }, { \"cV\", function() LazyVim.lsp.execute({ command = \"typescript.selectTypeScriptVersion\" }) end, desc = \"Select TS workspace version\", }, }, }, }, setup = { --- @deprecated -- tsserver renamed to ts_ls but not yet released, so keep this for now --- the proper approach is to check the nvim-lspconfig release version when it's released to determine the server name dynamically tsserver = function() -- disable tsserver return true end, ts_ls = function() -- disable tsserver return true end, vtsls = function(_, opts) if vim.lsp.config.denols and vim.lsp.config.vtsls then ---@param server string local resolve = function(server) local markers, root_dir = vim.lsp.config[server].root_markers, vim.lsp.config[server].root_dir vim.lsp.config(server, { root_dir = function(bufnr, on_dir) local is_deno = vim.fs.root(bufnr, { \"deno.json\", \"deno.jsonc\" }) ~= nil if is_deno == (server == \"denols\") then if root_dir then return root_dir(bufnr, on_dir) elseif type(markers) == \"table\" then local root = vim.fs.root(bufnr, markers) return root and on_dir(root) end end end, }) end resolve(\"denols\") resolve(\"vtsls\") end LazyVim.lsp.on_attach(function(client, buffer) client.commands[\"_typescript.moveToFileRefactoring\"] = function(command, ctx) ---@type string, string, lsp.Range local action, uri, range = unpack(command.arguments) local function move(newf) client:request(\"workspace/executeCommand\", { command = command.command, arguments = { action, uri, range, newf }, }) end local fname = vim.uri_to_fname(uri) client:request(\"workspace/executeCommand\", { command = \"typescript.tsserverRequest\", arguments = { \"getMoveToRefactoringFileSuggestions\", { file = fname, startLine = range.start.line + 1, startOffset = range.start.character + 1, endLine = range[\"end\"].line + 1, endOffset = range[\"end\"].character + 1, }, }, }, function(_, result) ---@type string[] local files = result.body.files table.insert(files, 1, \"Enter new path...\") vim.ui.select(files, { prompt = \"Select move destination:\", format_item = function(f) return vim.fn.fnamemodify(f, \":~:.\") end, }, function(f) if f and f:find(\"^Enter new path\") then vim.ui.input({ prompt = \"Enter move destination:\", default = vim.fn.fnamemodify(fname, \":h\") .. \"/\", completion = \"file\", }, function(newf) return newf and move(newf) end) elseif f then move(f) end end) end) end end, \"vtsls\") -- copy typescript settings to javascript opts.settings.javascript = vim.tbl_deep_extend(\"force\", {}, opts.settings.typescript, opts.settings.javascript or {}) end, }, }, }","s":"nvim-lspconfig","u":"/extras/lang/typescript","h":"#nvim-lspconfig","p":1057},{"i":1062,"t":"Options Full Spec opts = function(_, opts) opts.ensure_installed = opts.ensure_installed or {} table.insert(opts.ensure_installed, \"js-debug-adapter\") end { \"mason-org/mason.nvim\", opts = function(_, opts) opts.ensure_installed = opts.ensure_installed or {} table.insert(opts.ensure_installed, \"js-debug-adapter\") end, }","s":"mason.nvim","u":"/extras/lang/typescript","h":"#masonnvim","p":1057},{"i":1064,"t":"Filetype icons Options Full Spec opts = { file = { [\".eslintrc.js\"] = { glyph = \"󰱺\", hl = \"MiniIconsYellow\" }, [\".node-version\"] = { glyph = \"\", hl = \"MiniIconsGreen\" }, [\".prettierrc\"] = { glyph = \"\", hl = \"MiniIconsPurple\" }, [\".yarnrc.yml\"] = { glyph = \"\", hl = \"MiniIconsBlue\" }, [\"eslint.config.js\"] = { glyph = \"󰱺\", hl = \"MiniIconsYellow\" }, [\"package.json\"] = { glyph = \"\", hl = \"MiniIconsGreen\" }, [\"tsconfig.json\"] = { glyph = \"\", hl = \"MiniIconsAzure\" }, [\"tsconfig.build.json\"] = { glyph = \"\", hl = \"MiniIconsAzure\" }, [\"yarn.lock\"] = { glyph = \"\", hl = \"MiniIconsBlue\" }, }, } { \"nvim-mini/mini.icons\", opts = { file = { [\".eslintrc.js\"] = { glyph = \"󰱺\", hl = \"MiniIconsYellow\" }, [\".node-version\"] = { glyph = \"\", hl = \"MiniIconsGreen\" }, [\".prettierrc\"] = { glyph = \"\", hl = \"MiniIconsPurple\" }, [\".yarnrc.yml\"] = { glyph = \"\", hl = \"MiniIconsBlue\" }, [\"eslint.config.js\"] = { glyph = \"󰱺\", hl = \"MiniIconsYellow\" }, [\"package.json\"] = { glyph = \"\", hl = \"MiniIconsGreen\" }, [\"tsconfig.json\"] = { glyph = \"\", hl = \"MiniIconsAzure\" }, [\"tsconfig.build.json\"] = { glyph = \"\", hl = \"MiniIconsAzure\" }, [\"yarn.lock\"] = { glyph = \"\", hl = \"MiniIconsBlue\" }, }, }, }","s":"mini.icons","u":"/extras/lang/typescript","h":"#miniicons","p":1057},{"i":1066,"t":"Options Full Spec opts = function() local dap = require(\"dap\") for _, adapterType in ipairs({ \"node\", \"chrome\", \"msedge\" }) do local pwaType = \"pwa-\" .. adapterType if not dap.adapters[pwaType] then dap.adapters[pwaType] = { type = \"server\", host = \"localhost\", port = \"${port}\", executable = { command = \"js-debug-adapter\", args = { \"${port}\" }, }, } end -- Define adapters without the \"pwa-\" prefix for VSCode compatibility if not dap.adapters[adapterType] then dap.adapters[adapterType] = function(cb, config) local nativeAdapter = dap.adapters[pwaType] config.type = pwaType if type(nativeAdapter) == \"function\" then nativeAdapter(cb, config) else cb(nativeAdapter) end end end end local js_filetypes = { \"typescript\", \"javascript\", \"typescriptreact\", \"javascriptreact\" } local vscode = require(\"dap.ext.vscode\") vscode.type_to_filetypes[\"node\"] = js_filetypes vscode.type_to_filetypes[\"pwa-node\"] = js_filetypes for _, language in ipairs(js_filetypes) do if not dap.configurations[language] then local runtimeExecutable = nil if language:find(\"typescript\") then runtimeExecutable = vim.fn.executable(\"tsx\") == 1 and \"tsx\" or \"ts-node\" end dap.configurations[language] = { { type = \"pwa-node\", request = \"launch\", name = \"Launch file\", program = \"${file}\", cwd = \"${workspaceFolder}\", sourceMaps = true, runtimeExecutable = runtimeExecutable, skipFiles = { \"/**\", \"node_modules/**\", }, resolveSourceMapLocations = { \"${workspaceFolder}/**\", \"!**/node_modules/**\", }, }, { type = \"pwa-node\", request = \"attach\", name = \"Attach\", processId = require(\"dap.utils\").pick_process, cwd = \"${workspaceFolder}\", sourceMaps = true, runtimeExecutable = runtimeExecutable, skipFiles = { \"/**\", \"node_modules/**\", }, resolveSourceMapLocations = { \"${workspaceFolder}/**\", \"!**/node_modules/**\", }, }, } end end end { \"mfussenegger/nvim-dap\", optional = true, dependencies = { { \"mason-org/mason.nvim\", opts = function(_, opts) opts.ensure_installed = opts.ensure_installed or {} table.insert(opts.ensure_installed, \"js-debug-adapter\") end, }, }, opts = function() local dap = require(\"dap\") for _, adapterType in ipairs({ \"node\", \"chrome\", \"msedge\" }) do local pwaType = \"pwa-\" .. adapterType if not dap.adapters[pwaType] then dap.adapters[pwaType] = { type = \"server\", host = \"localhost\", port = \"${port}\", executable = { command = \"js-debug-adapter\", args = { \"${port}\" }, }, } end -- Define adapters without the \"pwa-\" prefix for VSCode compatibility if not dap.adapters[adapterType] then dap.adapters[adapterType] = function(cb, config) local nativeAdapter = dap.adapters[pwaType] config.type = pwaType if type(nativeAdapter) == \"function\" then nativeAdapter(cb, config) else cb(nativeAdapter) end end end end local js_filetypes = { \"typescript\", \"javascript\", \"typescriptreact\", \"javascriptreact\" } local vscode = require(\"dap.ext.vscode\") vscode.type_to_filetypes[\"node\"] = js_filetypes vscode.type_to_filetypes[\"pwa-node\"] = js_filetypes for _, language in ipairs(js_filetypes) do if not dap.configurations[language] then local runtimeExecutable = nil if language:find(\"typescript\") then runtimeExecutable = vim.fn.executable(\"tsx\") == 1 and \"tsx\" or \"ts-node\" end dap.configurations[language] = { { type = \"pwa-node\", request = \"launch\", name = \"Launch file\", program = \"${file}\", cwd = \"${workspaceFolder}\", sourceMaps = true, runtimeExecutable = runtimeExecutable, skipFiles = { \"/**\", \"node_modules/**\", }, resolveSourceMapLocations = { \"${workspaceFolder}/**\", \"!**/node_modules/**\", }, }, { type = \"pwa-node\", request = \"attach\", name = \"Attach\", processId = require(\"dap.utils\").pick_process, cwd = \"${workspaceFolder}\", sourceMaps = true, runtimeExecutable = runtimeExecutable, skipFiles = { \"/**\", \"node_modules/**\", }, resolveSourceMapLocations = { \"${workspaceFolder}/**\", \"!**/node_modules/**\", }, }, } end end end, }","s":"nvim-dap (optional)","u":"/extras/lang/typescript","h":"#nvim-dap-optional","p":1057},{"i":1068,"t":"Options Full Spec opts = { -- chrome adapter is deprecated, use js-debug-adapter instead automatic_installation = { exclude = { \"chrome\" } }, } { \"jay-babu/mason-nvim-dap.nvim\", optional = true, opts = { -- chrome adapter is deprecated, use js-debug-adapter instead automatic_installation = { exclude = { \"chrome\" } }, }, }","s":"mason-nvim-dap.nvim (optional)","u":"/extras/lang/typescript","h":"#mason-nvim-dapnvim-optional","p":1057},{"i":1070,"t":"info You can enable the extra with the :LazyExtras command. Plugins marked as optional will only be configured if they are installed. Below you can find a list of included plugins and their default settings. caution You don't need to copy the default settings to your config. They are only shown here for reference.","s":"none-ls","u":"/extras/lsp/none-ls","h":"","p":1069},{"i":1072,"t":"none-ls Options Full Spec opts = function(_, opts) local nls = require(\"null-ls\") opts.root_dir = opts.root_dir or require(\"null-ls.utils\").root_pattern(\".null-ls-root\", \".neoconf.json\", \"Makefile\", \".git\") opts.sources = vim.list_extend(opts.sources or {}, { nls.builtins.formatting.fish_indent, nls.builtins.diagnostics.fish, nls.builtins.formatting.stylua, nls.builtins.formatting.shfmt, }) end { \"nvimtools/none-ls.nvim\", event = \"LazyFile\", dependencies = { \"mason.nvim\" }, init = function() LazyVim.on_very_lazy(function() -- register the formatter with LazyVim LazyVim.format.register({ name = \"none-ls.nvim\", priority = 200, -- set higher than conform, the builtin formatter primary = true, format = function(buf) return LazyVim.lsp.format({ bufnr = buf, filter = function(client) return client.name == \"null-ls\" end, }) end, sources = function(buf) local ret = require(\"null-ls.sources\").get_available(vim.bo[buf].filetype, \"NULL_LS_FORMATTING\") or {} return vim.tbl_map(function(source) return source.name end, ret) end, }) end) end, opts = function(_, opts) local nls = require(\"null-ls\") opts.root_dir = opts.root_dir or require(\"null-ls.utils\").root_pattern(\".null-ls-root\", \".neoconf.json\", \"Makefile\", \".git\") opts.sources = vim.list_extend(opts.sources or {}, { nls.builtins.formatting.fish_indent, nls.builtins.diagnostics.fish, nls.builtins.formatting.stylua, nls.builtins.formatting.shfmt, }) end, }","s":"none-ls.nvim","u":"/extras/lsp/none-ls","h":"#none-lsnvim","p":1069},{"i":1074,"t":"Options Full Spec opts = nil { \"mason.nvim\" }","s":"mason.nvim","u":"/extras/lsp/none-ls","h":"#masonnvim","p":1069},{"i":1076,"t":"Please make sure to read the neotest docs on how to add test adapters. Example on adding the plenary test adapter: ~/.config/nvim/lua/plugins/test.lua return { { \"nvim-neotest/neotest-plenary\" }, { \"nvim-neotest/neotest\", opts = { adapters = { \"neotest-plenary\" } }, }, } info You can enable the extra with the :LazyExtras command. Plugins marked as optional will only be configured if they are installed. Below you can find a list of included plugins and their default settings. caution You don't need to copy the default settings to your config. They are only shown here for reference.","s":"Neotest","u":"/extras/test/core","h":"","p":1075},{"i":1078,"t":"Options Full Spec opts = { -- Can be a list of adapters like what neotest expects, -- or a list of adapter names, -- or a table of adapter names, mapped to adapter configs. -- The adapter will then be automatically loaded with the config. adapters = {}, -- Example for loading neotest-golang with a custom config -- adapters = { -- [\"neotest-golang\"] = { -- go_test_args = { \"-v\", \"-race\", \"-count=1\", \"-timeout=60s\" }, -- dap_go_enabled = true, -- }, -- }, status = { virtual_text = true }, output = { open_on_run = true }, quickfix = { open = function() if LazyVim.has(\"trouble.nvim\") then require(\"trouble\").open({ mode = \"quickfix\", focus = false }) else vim.cmd(\"copen\") end end, }, } { \"nvim-neotest/neotest\", dependencies = { \"nvim-neotest/nvim-nio\" }, opts = { -- Can be a list of adapters like what neotest expects, -- or a list of adapter names, -- or a table of adapter names, mapped to adapter configs. -- The adapter will then be automatically loaded with the config. adapters = {}, -- Example for loading neotest-golang with a custom config -- adapters = { -- [\"neotest-golang\"] = { -- go_test_args = { \"-v\", \"-race\", \"-count=1\", \"-timeout=60s\" }, -- dap_go_enabled = true, -- }, -- }, status = { virtual_text = true }, output = { open_on_run = true }, quickfix = { open = function() if LazyVim.has(\"trouble.nvim\") then require(\"trouble\").open({ mode = \"quickfix\", focus = false }) else vim.cmd(\"copen\") end end, }, }, config = function(_, opts) local neotest_ns = vim.api.nvim_create_namespace(\"neotest\") vim.diagnostic.config({ virtual_text = { format = function(diagnostic) -- Replace newline and tab characters with space for more compact diagnostics local message = diagnostic.message:gsub(\"\\n\", \" \"):gsub(\"\\t\", \" \"):gsub(\"%s+\", \" \"):gsub(\"^%s+\", \"\") return message end, }, }, neotest_ns) if LazyVim.has(\"trouble.nvim\") then opts.consumers = opts.consumers or {} -- Refresh and auto close trouble after running tests ---@type neotest.Consumer opts.consumers.trouble = function(client) client.listeners.results = function(adapter_id, results, partial) if partial then return end local tree = assert(client:get_position(nil, { adapter = adapter_id })) local failed = 0 for pos_id, result in pairs(results) do if result.status == \"failed\" and tree:get_key(pos_id) then failed = failed + 1 end end vim.schedule(function() local trouble = require(\"trouble\") if trouble.is_open() then trouble.refresh() if failed == 0 then trouble.close() end end end) return {} end end end if opts.adapters then local adapters = {} for name, config in pairs(opts.adapters or {}) do if type(name) == \"number\" then if type(config) == \"string\" then config = require(config) end adapters[#adapters + 1] = config elseif config ~= false then local adapter = require(name) if type(config) == \"table\" and not vim.tbl_isempty(config) then local meta = getmetatable(adapter) if adapter.setup then adapter.setup(config) elseif adapter.adapter then adapter.adapter(config) adapter = adapter.adapter elseif meta and meta.__call then adapter = adapter(config) else error(\"Adapter \" .. name .. \" does not support setup\") end end adapters[#adapters + 1] = adapter end end opts.adapters = adapters end require(\"neotest\").setup(opts) end, -- stylua: ignore keys = { {\"t\", \"\", desc = \"+test\"}, { \"ta\", function() require(\"neotest\").run.attach() end, desc = \"Attach to Test (Neotest)\" }, { \"tt\", function() require(\"neotest\").run.run(vim.fn.expand(\"%\")) end, desc = \"Run File (Neotest)\" }, { \"tT\", function() require(\"neotest\").run.run(vim.uv.cwd()) end, desc = \"Run All Test Files (Neotest)\" }, { \"tr\", function() require(\"neotest\").run.run() end, desc = \"Run Nearest (Neotest)\" }, { \"tl\", function() require(\"neotest\").run.run_last() end, desc = \"Run Last (Neotest)\" }, { \"ts\", function() require(\"neotest\").summary.toggle() end, desc = \"Toggle Summary (Neotest)\" }, { \"to\", function() require(\"neotest\").output.open({ enter = true, auto_close = true }) end, desc = \"Show Output (Neotest)\" }, { \"tO\", function() require(\"neotest\").output_panel.toggle() end, desc = \"Toggle Output Panel (Neotest)\" }, { \"tS\", function() require(\"neotest\").run.stop() end, desc = \"Stop (Neotest)\" }, { \"tw\", function() require(\"neotest\").watch.toggle(vim.fn.expand(\"%\")) end, desc = \"Toggle Watch (Neotest)\" }, }, }","s":"neotest","u":"/extras/test/core","h":"#neotest-1","p":1075},{"i":1080,"t":"Options Full Spec opts = nil { \"nvim-neotest/nvim-nio\" }","s":"nvim-nio","u":"/extras/test/core","h":"#nvim-nio","p":1075},{"i":1082,"t":"Options Full Spec opts = nil { \"mfussenegger/nvim-dap\", optional = true, -- stylua: ignore keys = { { \"td\", function() require(\"neotest\").run.run({strategy = \"dap\"}) end, desc = \"Debug Nearest\" }, }, }","s":"nvim-dap (optional)","u":"/extras/test/core","h":"#nvim-dap-optional","p":1075},{"i":1084,"t":"info You can enable the extra with the :LazyExtras command. Plugins marked as optional will only be configured if they are installed. Below you can find a list of included plugins and their default settings. caution You don't need to copy the default settings to your config. They are only shown here for reference.","s":"Alpha","u":"/extras/ui/alpha","h":"","p":1083},{"i":1086,"t":"Options Full Spec opts = { dashboard = { enabled = false } } { \"folke/snacks.nvim\", opts = { dashboard = { enabled = false } } }","s":"snacks.nvim","u":"/extras/ui/alpha","h":"#snacksnvim","p":1083},{"i":1088,"t":"Dashboard. This runs when neovim starts, and is what displays the \"LAZYVIM\" banner. Options Full Spec opts = function() local dashboard = require(\"alpha.themes.dashboard\") local logo = [[ ██╗ █████╗ ███████╗██╗ ██╗██╗ ██╗██╗███╗ ███╗ Z ██║ ██╔══██╗╚══███╔╝╚██╗ ██╔╝██║ ██║██║████╗ ████║ Z ██║ ███████║ ███╔╝ ╚████╔╝ ██║ ██║██║██╔████╔██║ z ██║ ██╔══██║ ███╔╝ ╚██╔╝ ╚██╗ ██╔╝██║██║╚██╔╝██║ z ███████╗██║ ██║███████╗ ██║ ╚████╔╝ ██║██║ ╚═╝ ██║ ╚══════╝╚═╝ ╚═╝╚══════╝ ╚═╝ ╚═══╝ ╚═╝╚═╝ ╚═╝ ]] dashboard.section.header.val = vim.split(logo, \"\\n\") -- stylua: ignore dashboard.section.buttons.val = { dashboard.button(\"f\", \" \" .. \" Find file\", \" lua LazyVim.pick()() \"), dashboard.button(\"n\", \" \" .. \" New file\", [[ ene startinsert ]]), dashboard.button(\"r\", \" \" .. \" Recent files\", [[ lua LazyVim.pick(\"oldfiles\")() ]]), dashboard.button(\"g\", \" \" .. \" Find text\", [[ lua LazyVim.pick(\"live_grep\")() ]]), dashboard.button(\"c\", \" \" .. \" Config\", \" lua LazyVim.pick.config_files()() \"), dashboard.button(\"s\", \" \" .. \" Restore Session\", [[ lua require(\"persistence\").load() ]]), dashboard.button(\"x\", \" \" .. \" Lazy Extras\", \" LazyExtras \"), dashboard.button(\"l\", \"󰒲 \" .. \" Lazy\", \" Lazy \"), dashboard.button(\"q\", \" \" .. \" Quit\", \" qa \"), } for _, button in ipairs(dashboard.section.buttons.val) do button.opts.hl = \"AlphaButtons\" button.opts.hl_shortcut = \"AlphaShortcut\" end dashboard.section.header.opts.hl = \"AlphaHeader\" dashboard.section.buttons.opts.hl = \"AlphaButtons\" dashboard.section.footer.opts.hl = \"AlphaFooter\" dashboard.opts.layout[1].val = 8 return dashboard end { \"goolord/alpha-nvim\", event = \"VimEnter\", enabled = true, init = false, opts = function() local dashboard = require(\"alpha.themes.dashboard\") local logo = [[ ██╗ █████╗ ███████╗██╗ ██╗██╗ ██╗██╗███╗ ███╗ Z ██║ ██╔══██╗╚══███╔╝╚██╗ ██╔╝██║ ██║██║████╗ ████║ Z ██║ ███████║ ███╔╝ ╚████╔╝ ██║ ██║██║██╔████╔██║ z ██║ ██╔══██║ ███╔╝ ╚██╔╝ ╚██╗ ██╔╝██║██║╚██╔╝██║ z ███████╗██║ ██║███████╗ ██║ ╚████╔╝ ██║██║ ╚═╝ ██║ ╚══════╝╚═╝ ╚═╝╚══════╝ ╚═╝ ╚═══╝ ╚═╝╚═╝ ╚═╝ ]] dashboard.section.header.val = vim.split(logo, \"\\n\") -- stylua: ignore dashboard.section.buttons.val = { dashboard.button(\"f\", \" \" .. \" Find file\", \" lua LazyVim.pick()() \"), dashboard.button(\"n\", \" \" .. \" New file\", [[ ene startinsert ]]), dashboard.button(\"r\", \" \" .. \" Recent files\", [[ lua LazyVim.pick(\"oldfiles\")() ]]), dashboard.button(\"g\", \" \" .. \" Find text\", [[ lua LazyVim.pick(\"live_grep\")() ]]), dashboard.button(\"c\", \" \" .. \" Config\", \" lua LazyVim.pick.config_files()() \"), dashboard.button(\"s\", \" \" .. \" Restore Session\", [[ lua require(\"persistence\").load() ]]), dashboard.button(\"x\", \" \" .. \" Lazy Extras\", \" LazyExtras \"), dashboard.button(\"l\", \"󰒲 \" .. \" Lazy\", \" Lazy \"), dashboard.button(\"q\", \" \" .. \" Quit\", \" qa \"), } for _, button in ipairs(dashboard.section.buttons.val) do button.opts.hl = \"AlphaButtons\" button.opts.hl_shortcut = \"AlphaShortcut\" end dashboard.section.header.opts.hl = \"AlphaHeader\" dashboard.section.buttons.opts.hl = \"AlphaButtons\" dashboard.section.footer.opts.hl = \"AlphaFooter\" dashboard.opts.layout[1].val = 8 return dashboard end, config = function(_, dashboard) -- close Lazy and re-open when the dashboard is ready if vim.o.filetype == \"lazy\" then vim.cmd.close() vim.api.nvim_create_autocmd(\"User\", { once = true, pattern = \"AlphaReady\", callback = function() require(\"lazy\").show() end, }) end require(\"alpha\").setup(dashboard.opts) vim.api.nvim_create_autocmd(\"User\", { once = true, pattern = \"LazyVimStarted\", callback = function() local stats = require(\"lazy\").stats() local ms = (math.floor(stats.startuptime * 100 + 0.5) / 100) dashboard.section.footer.val = \"⚡ Neovim loaded \" .. stats.loaded .. \"/\" .. stats.count .. \" plugins in \" .. ms .. \"ms\" pcall(vim.cmd.AlphaRedraw) end, }) end, }","s":"alpha-nvim","u":"/extras/ui/alpha","h":"#alpha-nvim","p":1083},{"i":1090,"t":"info You can enable the extra with the :LazyExtras command. Plugins marked as optional will only be configured if they are installed. Below you can find a list of included plugins and their default settings. caution You don't need to copy the default settings to your config. They are only shown here for reference.","s":"Indent-blankline","u":"/extras/ui/indent-blankline","h":"","p":1089},{"i":1092,"t":"disable snacks indent when indent-blankline is enabled Options Full Spec opts = { indent = { enabled = false }, } { \"snacks.nvim\", opts = { indent = { enabled = false }, }, }","s":"snacks.nvim","u":"/extras/ui/indent-blankline","h":"#snacksnvim","p":1089},{"i":1094,"t":"Options Full Spec opts = function() Snacks.toggle({ name = \"Indention Guides\", get = function() return require(\"ibl.config\").get_config(0).enabled end, set = function(state) require(\"ibl\").setup_buffer(0, { enabled = state }) end, }):map(\"ug\") return { indent = { char = \"│\", tab_char = \"│\", }, scope = { show_start = false, show_end = false }, exclude = { filetypes = { \"Trouble\", \"alpha\", \"dashboard\", \"help\", \"lazy\", \"mason\", \"neo-tree\", \"notify\", \"snacks_dashboard\", \"snacks_notif\", \"snacks_terminal\", \"snacks_win\", \"toggleterm\", \"trouble\", }, }, } end { \"lukas-reineke/indent-blankline.nvim\", event = \"LazyFile\", opts = function() Snacks.toggle({ name = \"Indention Guides\", get = function() return require(\"ibl.config\").get_config(0).enabled end, set = function(state) require(\"ibl\").setup_buffer(0, { enabled = state }) end, }):map(\"ug\") return { indent = { char = \"│\", tab_char = \"│\", }, scope = { show_start = false, show_end = false }, exclude = { filetypes = { \"Trouble\", \"alpha\", \"dashboard\", \"help\", \"lazy\", \"mason\", \"neo-tree\", \"notify\", \"snacks_dashboard\", \"snacks_notif\", \"snacks_terminal\", \"snacks_win\", \"toggleterm\", \"trouble\", }, }, } end, main = \"ibl\", }","s":"indent-blankline.nvim","u":"/extras/ui/indent-blankline","h":"#indent-blanklinenvim","p":1089},{"i":1096,"t":"info You can enable the extra with the :LazyExtras command. Plugins marked as optional will only be configured if they are installed. Below you can find a list of included plugins and their default settings. caution You don't need to copy the default settings to your config. They are only shown here for reference.","s":"Dashboard-nvim","u":"/extras/ui/dashboard-nvim","h":"","p":1095},{"i":1098,"t":"Options Full Spec opts = { dashboard = { enabled = false } } { \"folke/snacks.nvim\", opts = { dashboard = { enabled = false } } }","s":"snacks.nvim","u":"/extras/ui/dashboard-nvim","h":"#snacksnvim","p":1095},{"i":1100,"t":"Options Full Spec opts = function() local logo = [[ ██╗ █████╗ ███████╗██╗ ██╗██╗ ██╗██╗███╗ ███╗ Z ██║ ██╔══██╗╚══███╔╝╚██╗ ██╔╝██║ ██║██║████╗ ████║ Z ██║ ███████║ ███╔╝ ╚████╔╝ ██║ ██║██║██╔████╔██║ z ██║ ██╔══██║ ███╔╝ ╚██╔╝ ╚██╗ ██╔╝██║██║╚██╔╝██║ z ███████╗██║ ██║███████╗ ██║ ╚████╔╝ ██║██║ ╚═╝ ██║ ╚══════╝╚═╝ ╚═╝╚══════╝ ╚═╝ ╚═══╝ ╚═╝╚═╝ ╚═╝ ]] logo = string.rep(\"\\n\", 8) .. logo .. \"\\n\\n\" local opts = { theme = \"doom\", hide = { -- this is taken care of by lualine -- enabling this messes up the actual laststatus setting after loading a file statusline = false, }, config = { header = vim.split(logo, \"\\n\"), -- stylua: ignore center = { { action = 'lua LazyVim.pick()()', desc = \" Find File\", icon = \" \", key = \"f\" }, { action = \"ene | startinsert\", desc = \" New File\", icon = \" \", key = \"n\" }, { action = 'lua LazyVim.pick(\"oldfiles\")()', desc = \" Recent Files\", icon = \" \", key = \"r\" }, { action = 'lua LazyVim.pick(\"live_grep\")()', desc = \" Find Text\", icon = \" \", key = \"g\" }, { action = 'lua LazyVim.pick.config_files()()', desc = \" Config\", icon = \" \", key = \"c\" }, { action = 'lua require(\"persistence\").load()', desc = \" Restore Session\", icon = \" \", key = \"s\" }, { action = \"LazyExtras\", desc = \" Lazy Extras\", icon = \" \", key = \"x\" }, { action = \"Lazy\", desc = \" Lazy\", icon = \"󰒲 \", key = \"l\" }, { action = function() vim.api.nvim_input(\"qa\") end, desc = \" Quit\", icon = \" \", key = \"q\" }, }, footer = function() local stats = require(\"lazy\").stats() local ms = (math.floor(stats.startuptime * 100 + 0.5) / 100) return { \"⚡ Neovim loaded \" .. stats.loaded .. \"/\" .. stats.count .. \" plugins in \" .. ms .. \"ms\" } end, }, } for _, button in ipairs(opts.config.center) do button.desc = button.desc .. string.rep(\" \", 43 - #button.desc) button.key_format = \" %s\" end -- open dashboard after closing lazy if vim.o.filetype == \"lazy\" then vim.api.nvim_create_autocmd(\"WinClosed\", { pattern = tostring(vim.api.nvim_get_current_win()), once = true, callback = function() vim.schedule(function() vim.api.nvim_exec_autocmds(\"UIEnter\", { group = \"dashboard\" }) end) end, }) end return opts end { \"nvimdev/dashboard-nvim\", lazy = false, -- As https://github.com/nvimdev/dashboard-nvim/pull/450, dashboard-nvim shouldn't be lazy-loaded to properly handle stdin. opts = function() local logo = [[ ██╗ █████╗ ███████╗██╗ ██╗██╗ ██╗██╗███╗ ███╗ Z ██║ ██╔══██╗╚══███╔╝╚██╗ ██╔╝██║ ██║██║████╗ ████║ Z ██║ ███████║ ███╔╝ ╚████╔╝ ██║ ██║██║██╔████╔██║ z ██║ ██╔══██║ ███╔╝ ╚██╔╝ ╚██╗ ██╔╝██║██║╚██╔╝██║ z ███████╗██║ ██║███████╗ ██║ ╚████╔╝ ██║██║ ╚═╝ ██║ ╚══════╝╚═╝ ╚═╝╚══════╝ ╚═╝ ╚═══╝ ╚═╝╚═╝ ╚═╝ ]] logo = string.rep(\"\\n\", 8) .. logo .. \"\\n\\n\" local opts = { theme = \"doom\", hide = { -- this is taken care of by lualine -- enabling this messes up the actual laststatus setting after loading a file statusline = false, }, config = { header = vim.split(logo, \"\\n\"), -- stylua: ignore center = { { action = 'lua LazyVim.pick()()', desc = \" Find File\", icon = \" \", key = \"f\" }, { action = \"ene | startinsert\", desc = \" New File\", icon = \" \", key = \"n\" }, { action = 'lua LazyVim.pick(\"oldfiles\")()', desc = \" Recent Files\", icon = \" \", key = \"r\" }, { action = 'lua LazyVim.pick(\"live_grep\")()', desc = \" Find Text\", icon = \" \", key = \"g\" }, { action = 'lua LazyVim.pick.config_files()()', desc = \" Config\", icon = \" \", key = \"c\" }, { action = 'lua require(\"persistence\").load()', desc = \" Restore Session\", icon = \" \", key = \"s\" }, { action = \"LazyExtras\", desc = \" Lazy Extras\", icon = \" \", key = \"x\" }, { action = \"Lazy\", desc = \" Lazy\", icon = \"󰒲 \", key = \"l\" }, { action = function() vim.api.nvim_input(\"qa\") end, desc = \" Quit\", icon = \" \", key = \"q\" }, }, footer = function() local stats = require(\"lazy\").stats() local ms = (math.floor(stats.startuptime * 100 + 0.5) / 100) return { \"⚡ Neovim loaded \" .. stats.loaded .. \"/\" .. stats.count .. \" plugins in \" .. ms .. \"ms\" } end, }, } for _, button in ipairs(opts.config.center) do button.desc = button.desc .. string.rep(\" \", 43 - #button.desc) button.key_format = \" %s\" end -- open dashboard after closing lazy if vim.o.filetype == \"lazy\" then vim.api.nvim_create_autocmd(\"WinClosed\", { pattern = tostring(vim.api.nvim_get_current_win()), once = true, callback = function() vim.schedule(function() vim.api.nvim_exec_autocmds(\"UIEnter\", { group = \"dashboard\" }) end) end, }) end return opts end, }","s":"dashboard-nvim","u":"/extras/ui/dashboard-nvim","h":"#dashboard-nvim-1","p":1095},{"i":1102,"t":"info You can enable the extra with the :LazyExtras command. Plugins marked as optional will only be configured if they are installed. Below you can find a list of included plugins and their default settings. caution You don't need to copy the default settings to your config. They are only shown here for reference.","s":"Mini Animate","u":"/extras/ui/mini-animate","h":"","p":1101},{"i":1104,"t":"disable snacks scroll when animate is enabled Options Full Spec opts = { scroll = { enabled = false }, } { \"snacks.nvim\", opts = { scroll = { enabled = false }, }, }","s":"snacks.nvim","u":"/extras/ui/mini-animate","h":"#snacksnvim","p":1101},{"i":1106,"t":"Animates many common Neovim actions, like scrolling, moving the cursor, and resizing windows. Options Full Spec opts = function(_, opts) -- don't use animate when scrolling with the mouse local mouse_scrolled = false for _, scroll in ipairs({ \"Up\", \"Down\" }) do local key = \"\" vim.keymap.set({ \"\", \"i\" }, key, function() mouse_scrolled = true return key end, { expr = true }) end vim.api.nvim_create_autocmd(\"FileType\", { pattern = \"grug-far\", callback = function() vim.b.minianimate_disable = true end, }) -- schedule setting the mapping to override the default mapping from `keymaps.lua` -- seems `keymaps.lua` is the last event to execute on `VeryLazy` and it overwrites it vim.schedule(function() Snacks.toggle({ name = \"Mini Animate\", get = function() return not vim.g.minianimate_disable end, set = function(state) vim.g.minianimate_disable = not state end, }):map(\"ua\") end) local animate = require(\"mini.animate\") return vim.tbl_deep_extend(\"force\", opts, { resize = { timing = animate.gen_timing.linear({ duration = 50, unit = \"total\" }), }, scroll = { timing = animate.gen_timing.linear({ duration = 150, unit = \"total\" }), subscroll = animate.gen_subscroll.equal({ predicate = function(total_scroll) if mouse_scrolled then mouse_scrolled = false return false end return total_scroll > 1 end, }), }, }) end { \"nvim-mini/mini.animate\", event = \"VeryLazy\", cond = vim.g.neovide == nil, opts = function(_, opts) -- don't use animate when scrolling with the mouse local mouse_scrolled = false for _, scroll in ipairs({ \"Up\", \"Down\" }) do local key = \"\" vim.keymap.set({ \"\", \"i\" }, key, function() mouse_scrolled = true return key end, { expr = true }) end vim.api.nvim_create_autocmd(\"FileType\", { pattern = \"grug-far\", callback = function() vim.b.minianimate_disable = true end, }) -- schedule setting the mapping to override the default mapping from `keymaps.lua` -- seems `keymaps.lua` is the last event to execute on `VeryLazy` and it overwrites it vim.schedule(function() Snacks.toggle({ name = \"Mini Animate\", get = function() return not vim.g.minianimate_disable end, set = function(state) vim.g.minianimate_disable = not state end, }):map(\"ua\") end) local animate = require(\"mini.animate\") return vim.tbl_deep_extend(\"force\", opts, { resize = { timing = animate.gen_timing.linear({ duration = 50, unit = \"total\" }), }, scroll = { timing = animate.gen_timing.linear({ duration = 150, unit = \"total\" }), subscroll = animate.gen_subscroll.equal({ predicate = function(total_scroll) if mouse_scrolled then mouse_scrolled = false return false end return total_scroll > 1 end, }), }, }) end, }","s":"mini.animate","u":"/extras/ui/mini-animate","h":"#minianimate","p":1101},{"i":1108,"t":"info You can enable the extra with the :LazyExtras command. Plugins marked as optional will only be configured if they are installed. Below you can find a list of included plugins and their default settings. caution You don't need to copy the default settings to your config. They are only shown here for reference.","s":"Mini-indentscope","u":"/extras/ui/mini-indentscope","h":"","p":1107},{"i":1110,"t":"Active indent guide and indent text objects. When you're browsing code, this highlights the current level of indentation, and animates the highlighting. Options Full Spec opts = { -- symbol = \"▏\", symbol = \"│\", options = { try_as_border = true }, } { \"nvim-mini/mini.indentscope\", version = false, -- wait till new 0.7.0 release to put it back on semver event = \"LazyFile\", opts = { -- symbol = \"▏\", symbol = \"│\", options = { try_as_border = true }, }, init = function() vim.api.nvim_create_autocmd(\"FileType\", { pattern = { \"Trouble\", \"alpha\", \"dashboard\", \"fzf\", \"help\", \"lazy\", \"mason\", \"neo-tree\", \"notify\", \"sidekick_terminal\", \"snacks_dashboard\", \"snacks_notif\", \"snacks_terminal\", \"snacks_win\", \"toggleterm\", \"trouble\", }, callback = function() vim.b.miniindentscope_disable = true end, }) vim.api.nvim_create_autocmd(\"User\", { pattern = \"SnacksDashboardOpened\", callback = function(data) vim.b[data.buf].miniindentscope_disable = true end, }) end, }","s":"mini.indentscope","u":"/extras/ui/mini-indentscope","h":"#miniindentscope","p":1107},{"i":1112,"t":"disable snacks scroll when mini-indentscope is enabled Options Full Spec opts = { indent = { scope = { enabled = false }, }, } { \"snacks.nvim\", opts = { indent = { scope = { enabled = false }, }, }, }","s":"snacks.nvim","u":"/extras/ui/mini-indentscope","h":"#snacksnvim","p":1107},{"i":1114,"t":"disable indent-blankline scope when mini-indentscope is enabled Options Full Spec opts = { scope = { enabled = false }, } { \"lukas-reineke/indent-blankline.nvim\", optional = true, event = \"LazyFile\", opts = { scope = { enabled = false }, }, }","s":"indent-blankline.nvim (optional)","u":"/extras/ui/mini-indentscope","h":"#indent-blanklinenvim-optional","p":1107},{"i":1116,"t":"info You can enable the extra with the :LazyExtras command. Plugins marked as optional will only be configured if they are installed. Below you can find a list of included plugins and their default settings. caution You don't need to copy the default settings to your config. They are only shown here for reference.","s":"Smear-cursor","u":"/extras/ui/smear-cursor","h":"","p":1115},{"i":1118,"t":"Options Full Spec opts = { hide_target_hack = true, cursor_color = \"none\", } { \"sphamba/smear-cursor.nvim\", event = \"VeryLazy\", cond = vim.g.neovide == nil, opts = { hide_target_hack = true, cursor_color = \"none\", }, specs = { -- disable mini.animate cursor { \"nvim-mini/mini.animate\", optional = true, opts = { cursor = { enable = false }, }, }, }, }","s":"smear-cursor.nvim","u":"/extras/ui/smear-cursor","h":"#smear-cursornvim","p":1115},{"i":1120,"t":"disable mini.animate cursor Options Full Spec opts = { cursor = { enable = false }, } { \"nvim-mini/mini.animate\", optional = true, opts = { cursor = { enable = false }, }, }","s":"mini.animate (optional)","u":"/extras/ui/smear-cursor","h":"#minianimate-optional","p":1115},{"i":1122,"t":"info You can enable the extra with the :LazyExtras command. Plugins marked as optional will only be configured if they are installed. Below you can find a list of included plugins and their default settings. caution You don't need to copy the default settings to your config. They are only shown here for reference.","s":"edgy.nvim","u":"/extras/ui/edgy","h":"","p":1121},{"i":1123,"t":"Create and display predefined window layouts. Options Full Spec opts = function() local opts = { bottom = { { ft = \"toggleterm\", size = { height = 0.4 }, filter = function(buf, win) return vim.api.nvim_win_get_config(win).relative == \"\" end, }, { ft = \"noice\", size = { height = 0.4 }, filter = function(buf, win) return vim.api.nvim_win_get_config(win).relative == \"\" end, }, \"Trouble\", { ft = \"qf\", title = \"QuickFix\" }, { ft = \"help\", size = { height = 20 }, -- don't open help files in edgy that we're editing filter = function(buf) return vim.bo[buf].buftype == \"help\" end, }, { title = \"Spectre\", ft = \"spectre_panel\", size = { height = 0.4 } }, { title = \"Neotest Output\", ft = \"neotest-output-panel\", size = { height = 15 } }, }, left = { { title = \"Neotest Summary\", ft = \"neotest-summary\" }, -- \"neo-tree\", }, right = { { title = \"Grug Far\", ft = \"grug-far\", size = { width = 0.4 } }, }, keys = { -- increase width [\"\"] = function(win) win:resize(\"width\", 2) end, -- decrease width [\"\"] = function(win) win:resize(\"width\", -2) end, -- increase height [\"\"] = function(win) win:resize(\"height\", 2) end, -- decrease height [\"\"] = function(win) win:resize(\"height\", -2) end, }, } if LazyVim.has(\"neo-tree.nvim\") then local pos = { filesystem = \"left\", buffers = \"top\", git_status = \"right\", document_symbols = \"bottom\", diagnostics = \"bottom\", } local sources = LazyVim.opts(\"neo-tree.nvim\").sources or {} for i, v in ipairs(sources) do table.insert(opts.left, i, { title = \"Neo-Tree \" .. v:gsub(\"_\", \" \"):gsub(\"^%l\", string.upper), ft = \"neo-tree\", filter = function(buf) return vim.b[buf].neo_tree_source == v end, pinned = true, open = function() vim.cmd((\"Neotree show position=%s %s dir=%s\"):format(pos[v] or \"bottom\", v, LazyVim.root())) end, }) end end -- trouble for _, pos in ipairs({ \"top\", \"bottom\", \"left\", \"right\" }) do opts[pos] = opts[pos] or {} table.insert(opts[pos], { ft = \"trouble\", filter = function(_buf, win) return vim.w[win].trouble and vim.w[win].trouble.position == pos and vim.w[win].trouble.type == \"split\" and vim.w[win].trouble.relative == \"editor\" and not vim.w[win].trouble_preview end, }) end -- snacks terminal for _, pos in ipairs({ \"top\", \"bottom\", \"left\", \"right\" }) do opts[pos] = opts[pos] or {} table.insert(opts[pos], { ft = \"snacks_terminal\", size = { height = 0.4 }, title = \"%{b:snacks_terminal.id}: %{b:term_title}\", filter = function(_buf, win) return vim.w[win].snacks_win and vim.w[win].snacks_win.position == pos and vim.w[win].snacks_win.relative == \"editor\" and not vim.w[win].trouble_preview end, }) end return opts end { \"folke/edgy.nvim\", event = \"VeryLazy\", keys = { { \"ue\", function() require(\"edgy\").toggle() end, desc = \"Edgy Toggle\", }, -- stylua: ignore { \"uE\", function() require(\"edgy\").select() end, desc = \"Edgy Select Window\" }, }, opts = function() local opts = { bottom = { { ft = \"toggleterm\", size = { height = 0.4 }, filter = function(buf, win) return vim.api.nvim_win_get_config(win).relative == \"\" end, }, { ft = \"noice\", size = { height = 0.4 }, filter = function(buf, win) return vim.api.nvim_win_get_config(win).relative == \"\" end, }, \"Trouble\", { ft = \"qf\", title = \"QuickFix\" }, { ft = \"help\", size = { height = 20 }, -- don't open help files in edgy that we're editing filter = function(buf) return vim.bo[buf].buftype == \"help\" end, }, { title = \"Spectre\", ft = \"spectre_panel\", size = { height = 0.4 } }, { title = \"Neotest Output\", ft = \"neotest-output-panel\", size = { height = 15 } }, }, left = { { title = \"Neotest Summary\", ft = \"neotest-summary\" }, -- \"neo-tree\", }, right = { { title = \"Grug Far\", ft = \"grug-far\", size = { width = 0.4 } }, }, keys = { -- increase width [\"\"] = function(win) win:resize(\"width\", 2) end, -- decrease width [\"\"] = function(win) win:resize(\"width\", -2) end, -- increase height [\"\"] = function(win) win:resize(\"height\", 2) end, -- decrease height [\"\"] = function(win) win:resize(\"height\", -2) end, }, } if LazyVim.has(\"neo-tree.nvim\") then local pos = { filesystem = \"left\", buffers = \"top\", git_status = \"right\", document_symbols = \"bottom\", diagnostics = \"bottom\", } local sources = LazyVim.opts(\"neo-tree.nvim\").sources or {} for i, v in ipairs(sources) do table.insert(opts.left, i, { title = \"Neo-Tree \" .. v:gsub(\"_\", \" \"):gsub(\"^%l\", string.upper), ft = \"neo-tree\", filter = function(buf) return vim.b[buf].neo_tree_source == v end, pinned = true, open = function() vim.cmd((\"Neotree show position=%s %s dir=%s\"):format(pos[v] or \"bottom\", v, LazyVim.root())) end, }) end end -- trouble for _, pos in ipairs({ \"top\", \"bottom\", \"left\", \"right\" }) do opts[pos] = opts[pos] or {} table.insert(opts[pos], { ft = \"trouble\", filter = function(_buf, win) return vim.w[win].trouble and vim.w[win].trouble.position == pos and vim.w[win].trouble.type == \"split\" and vim.w[win].trouble.relative == \"editor\" and not vim.w[win].trouble_preview end, }) end -- snacks terminal for _, pos in ipairs({ \"top\", \"bottom\", \"left\", \"right\" }) do opts[pos] = opts[pos] or {} table.insert(opts[pos], { ft = \"snacks_terminal\", size = { height = 0.4 }, title = \"%{b:snacks_terminal.id}: %{b:term_title}\", filter = function(_buf, win) return vim.w[win].snacks_win and vim.w[win].snacks_win.position == pos and vim.w[win].snacks_win.relative == \"editor\" and not vim.w[win].trouble_preview end, }) end return opts end, }","s":"edgy.nvim","u":"/extras/ui/edgy","h":"#edgynvim-1","p":1121},{"i":1125,"t":"use edgy's selection window Options Full Spec opts = { defaults = { get_selection_window = function() require(\"edgy\").goto_main() return 0 end, }, } { \"nvim-telescope/telescope.nvim\", optional = true, opts = { defaults = { get_selection_window = function() require(\"edgy\").goto_main() return 0 end, }, }, }","s":"telescope.nvim (optional)","u":"/extras/ui/edgy","h":"#telescopenvim-optional","p":1121},{"i":1127,"t":"prevent neo-tree from opening files in edgy windows Options Full Spec opts = function(_, opts) opts.open_files_do_not_replace_types = opts.open_files_do_not_replace_types or { \"terminal\", \"Trouble\", \"qf\", \"Outline\", \"trouble\" } table.insert(opts.open_files_do_not_replace_types, \"edgy\") end { \"nvim-neo-tree/neo-tree.nvim\", optional = true, opts = function(_, opts) opts.open_files_do_not_replace_types = opts.open_files_do_not_replace_types or { \"terminal\", \"Trouble\", \"qf\", \"Outline\", \"trouble\" } table.insert(opts.open_files_do_not_replace_types, \"edgy\") end, }","s":"neo-tree.nvim (optional)","u":"/extras/ui/edgy","h":"#neo-treenvim-optional","p":1121},{"i":1129,"t":"Fix bufferline offsets when edgy is loaded Options Full Spec opts = function() local Offset = require(\"bufferline.offset\") if not Offset.edgy then local get = Offset.get Offset.get = function() if package.loaded.edgy then local old_offset = get() local layout = require(\"edgy.config\").layout local ret = { left = \"\", left_size = 0, right = \"\", right_size = 0 } for _, pos in ipairs({ \"left\", \"right\" }) do local sb = layout[pos] local title = \" Sidebar\" .. string.rep(\" \", sb.bounds.width - 8) if sb and #sb.wins > 0 then ret[pos] = old_offset[pos .. \"_size\"] > 0 and old_offset[pos] or pos == \"left\" and (\"%#Bold#\" .. title .. \"%*\" .. \"%#BufferLineOffsetSeparator#│%*\") or pos == \"right\" and (\"%#BufferLineOffsetSeparator#│%*\" .. \"%#Bold#\" .. title .. \"%*\") ret[pos .. \"_size\"] = old_offset[pos .. \"_size\"] > 0 and old_offset[pos .. \"_size\"] or sb.bounds.width end end ret.total_size = ret.left_size + ret.right_size if ret.total_size > 0 then return ret end end return get() end Offset.edgy = true end end { \"akinsho/bufferline.nvim\", optional = true, opts = function() local Offset = require(\"bufferline.offset\") if not Offset.edgy then local get = Offset.get Offset.get = function() if package.loaded.edgy then local old_offset = get() local layout = require(\"edgy.config\").layout local ret = { left = \"\", left_size = 0, right = \"\", right_size = 0 } for _, pos in ipairs({ \"left\", \"right\" }) do local sb = layout[pos] local title = \" Sidebar\" .. string.rep(\" \", sb.bounds.width - 8) if sb and #sb.wins > 0 then ret[pos] = old_offset[pos .. \"_size\"] > 0 and old_offset[pos] or pos == \"left\" and (\"%#Bold#\" .. title .. \"%*\" .. \"%#BufferLineOffsetSeparator#│%*\") or pos == \"right\" and (\"%#BufferLineOffsetSeparator#│%*\" .. \"%#Bold#\" .. title .. \"%*\") ret[pos .. \"_size\"] = old_offset[pos .. \"_size\"] > 0 and old_offset[pos .. \"_size\"] or sb.bounds.width end end ret.total_size = ret.left_size + ret.right_size if ret.total_size > 0 then return ret end end return get() end Offset.edgy = true end end, }","s":"bufferline.nvim (optional)","u":"/extras/ui/edgy","h":"#bufferlinenvim-optional","p":1121},{"i":1131,"t":"info You can enable the extra with the :LazyExtras command. Plugins marked as optional will only be configured if they are installed. Below you can find a list of included plugins and their default settings. caution You don't need to copy the default settings to your config. They are only shown here for reference.","s":"Treesitter-context","u":"/extras/ui/treesitter-context","h":"","p":1130},{"i":1133,"t":"Options Full Spec opts = function() local tsc = require(\"treesitter-context\") Snacks.toggle({ name = \"Treesitter Context\", get = tsc.enabled, set = function(state) if state then tsc.enable() else tsc.disable() end end, }):map(\"ut\") return { mode = \"cursor\", max_lines = 3 } end { \"nvim-treesitter/nvim-treesitter-context\", event = \"LazyFile\", opts = function() local tsc = require(\"treesitter-context\") Snacks.toggle({ name = \"Treesitter Context\", get = tsc.enabled, set = function(state) if state then tsc.enable() else tsc.disable() end end, }):map(\"ut\") return { mode = \"cursor\", max_lines = 3 } end, }","s":"nvim-treesitter-context","u":"/extras/ui/treesitter-context","h":"#nvim-treesitter-context","p":1130},{"i":1135,"t":"info You can enable the extra with the :LazyExtras command. Plugins marked as optional will only be configured if they are installed. Below you can find a list of included plugins and their default settings. caution You don't need to copy the default settings to your config. They are only shown here for reference.","s":"Dot Files","u":"/extras/util/dot","h":"","p":1134},{"i":1137,"t":"Options Full Spec opts = { servers = { bashls = {}, }, } { \"neovim/nvim-lspconfig\", opts = { servers = { bashls = {}, }, }, }","s":"nvim-lspconfig","u":"/extras/util/dot","h":"#nvim-lspconfig","p":1134},{"i":1139,"t":"Options Full Spec opts = { ensure_installed = { \"shellcheck\" } } { \"mason-org/mason.nvim\", opts = { ensure_installed = { \"shellcheck\" } }, }","s":"mason.nvim","u":"/extras/util/dot","h":"#masonnvim","p":1134},{"i":1141,"t":"add some stuff to treesitter Options Full Spec opts = function(_, opts) local function add(lang) if type(opts.ensure_installed) == \"table\" then table.insert(opts.ensure_installed, lang) end end vim.filetype.add({ extension = { rasi = \"rasi\", rofi = \"rasi\", wofi = \"rasi\" }, filename = { [\"vifmrc\"] = \"vim\", }, pattern = { [\".*/waybar/config\"] = \"jsonc\", [\".*/mako/config\"] = \"dosini\", [\".*/kitty/.+%.conf\"] = \"kitty\", [\".*/hypr/.+%.conf\"] = \"hyprlang\", [\"%.env%.[%w_.-]+\"] = \"sh\", }, }) vim.treesitter.language.register(\"bash\", \"kitty\") add(\"git_config\") if have(\"hypr\") then add(\"hyprlang\") end if have(\"fish\") then add(\"fish\") end if have(\"rofi\") or have(\"wofi\") then add(\"rasi\") end end { \"nvim-treesitter/nvim-treesitter\", opts = function(_, opts) local function add(lang) if type(opts.ensure_installed) == \"table\" then table.insert(opts.ensure_installed, lang) end end vim.filetype.add({ extension = { rasi = \"rasi\", rofi = \"rasi\", wofi = \"rasi\" }, filename = { [\"vifmrc\"] = \"vim\", }, pattern = { [\".*/waybar/config\"] = \"jsonc\", [\".*/mako/config\"] = \"dosini\", [\".*/kitty/.+%.conf\"] = \"kitty\", [\".*/hypr/.+%.conf\"] = \"hyprlang\", [\"%.env%.[%w_.-]+\"] = \"sh\", }, }) vim.treesitter.language.register(\"bash\", \"kitty\") add(\"git_config\") if have(\"hypr\") then add(\"hyprlang\") end if have(\"fish\") then add(\"fish\") end if have(\"rofi\") or have(\"wofi\") then add(\"rasi\") end end, }","s":"nvim-treesitter","u":"/extras/util/dot","h":"#nvim-treesitter","p":1134},{"i":1143,"t":"info You can enable the extra with the :LazyExtras command. Plugins marked as optional will only be configured if they are installed. Below you can find a list of included plugins and their default settings. caution You don't need to copy the default settings to your config. They are only shown here for reference.","s":"Mini Starter","u":"/extras/ui/mini-starter","h":"","p":1142},{"i":1145,"t":"disable alpha Options Full Spec opts = { dashboard = { enabled = false } } { \"folke/snacks.nvim\", opts = { dashboard = { enabled = false } } }","s":"snacks.nvim","u":"/extras/ui/mini-starter","h":"#snacksnvim","p":1142},{"i":1147,"t":"enable mini.starter Options Full Spec opts = function() local logo = table.concat({ \" ██╗ █████╗ ███████╗██╗ ██╗██╗ ██╗██╗███╗ ███╗ Z\", \" ██║ ██╔══██╗╚══███╔╝╚██╗ ██╔╝██║ ██║██║████╗ ████║ Z \", \" ██║ ███████║ ███╔╝ ╚████╔╝ ██║ ██║██║██╔████╔██║ z \", \" ██║ ██╔══██║ ███╔╝ ╚██╔╝ ╚██╗ ██╔╝██║██║╚██╔╝██║ z \", \" ███████╗██║ ██║███████╗ ██║ ╚████╔╝ ██║██║ ╚═╝ ██║ \", \" ╚══════╝╚═╝ ╚═╝╚══════╝ ╚═╝ ╚═══╝ ╚═╝╚═╝ ╚═╝ \", }, \"\\n\") local pad = string.rep(\" \", 22) local new_section = function(name, action, section) return { name = name, action = action, section = pad .. section } end local starter = require(\"mini.starter\") --stylua: ignore local config = { evaluate_single = true, header = logo, items = { new_section(\"Find file\", LazyVim.pick(), \"Telescope\"), new_section(\"New file\", \"ene | startinsert\", \"Built-in\"), new_section(\"Recent files\", LazyVim.pick(\"oldfiles\"), \"Telescope\"), new_section(\"Find text\", LazyVim.pick(\"live_grep\"), \"Telescope\"), new_section(\"Config\", LazyVim.pick.config_files(), \"Config\"), new_section(\"Restore session\", [[lua require(\"persistence\").load()]], \"Session\"), new_section(\"Lazy Extras\", \"LazyExtras\", \"Config\"), new_section(\"Lazy\", \"Lazy\", \"Config\"), new_section(\"Quit\", \"qa\", \"Built-in\"), }, content_hooks = { starter.gen_hook.adding_bullet(pad .. \"░ \", false), starter.gen_hook.aligning(\"center\", \"center\"), }, } return config end { \"nvim-mini/mini.starter\", version = false, -- wait till new 0.7.0 release to put it back on semver event = \"VimEnter\", opts = function() local logo = table.concat({ \" ██╗ █████╗ ███████╗██╗ ██╗██╗ ██╗██╗███╗ ███╗ Z\", \" ██║ ██╔══██╗╚══███╔╝╚██╗ ██╔╝██║ ██║██║████╗ ████║ Z \", \" ██║ ███████║ ███╔╝ ╚████╔╝ ██║ ██║██║██╔████╔██║ z \", \" ██║ ██╔══██║ ███╔╝ ╚██╔╝ ╚██╗ ██╔╝██║██║╚██╔╝██║ z \", \" ███████╗██║ ██║███████╗ ██║ ╚████╔╝ ██║██║ ╚═╝ ██║ \", \" ╚══════╝╚═╝ ╚═╝╚══════╝ ╚═╝ ╚═══╝ ╚═╝╚═╝ ╚═╝ \", }, \"\\n\") local pad = string.rep(\" \", 22) local new_section = function(name, action, section) return { name = name, action = action, section = pad .. section } end local starter = require(\"mini.starter\") --stylua: ignore local config = { evaluate_single = true, header = logo, items = { new_section(\"Find file\", LazyVim.pick(), \"Telescope\"), new_section(\"New file\", \"ene | startinsert\", \"Built-in\"), new_section(\"Recent files\", LazyVim.pick(\"oldfiles\"), \"Telescope\"), new_section(\"Find text\", LazyVim.pick(\"live_grep\"), \"Telescope\"), new_section(\"Config\", LazyVim.pick.config_files(), \"Config\"), new_section(\"Restore session\", [[lua require(\"persistence\").load()]], \"Session\"), new_section(\"Lazy Extras\", \"LazyExtras\", \"Config\"), new_section(\"Lazy\", \"Lazy\", \"Config\"), new_section(\"Quit\", \"qa\", \"Built-in\"), }, content_hooks = { starter.gen_hook.adding_bullet(pad .. \"░ \", false), starter.gen_hook.aligning(\"center\", \"center\"), }, } return config end, config = function(_, config) -- close Lazy and re-open when starter is ready if vim.o.filetype == \"lazy\" then vim.cmd.close() vim.api.nvim_create_autocmd(\"User\", { pattern = \"MiniStarterOpened\", callback = function() require(\"lazy\").show() end, }) end local starter = require(\"mini.starter\") starter.setup(config) vim.api.nvim_create_autocmd(\"User\", { pattern = \"LazyVimStarted\", callback = function(ev) local stats = require(\"lazy\").stats() local ms = (math.floor(stats.startuptime * 100 + 0.5) / 100) local pad_footer = string.rep(\" \", 8) starter.config.footer = pad_footer .. \"⚡ Neovim loaded \" .. stats.count .. \" plugins in \" .. ms .. \"ms\" -- INFO: based on @nvim-mini's recommendation (thanks a lot!!!) if vim.bo[ev.buf].filetype == \"ministarter\" then pcall(starter.refresh) end end, }) end, }","s":"mini.starter","u":"/extras/ui/mini-starter","h":"#ministarter","p":1142},{"i":1149,"t":"info You can enable the extra with the :LazyExtras command. Plugins marked as optional will only be configured if they are installed. Below you can find a list of included plugins and their default settings. caution You don't need to copy the default settings to your config. They are only shown here for reference.","s":"Gh","u":"/extras/util/gh","h":"","p":1148},{"i":1151,"t":"lang.git","s":"Includes the following extras","u":"/extras/util/gh","h":"#includes-the-following-extras","p":1148},{"i":1153,"t":"Options Full Spec opts = nil { \"ldelossa/litee.nvim\", lazy = true }","s":"litee.nvim","u":"/extras/util/gh","h":"#liteenvim","p":1148},{"i":1155,"t":"gh.nvim Options Full Spec opts = {} { \"ldelossa/gh.nvim\", opts = {}, config = function(_, opts) require(\"litee.lib\").setup() require(\"litee.gh\").setup(opts) end, keys = { { \"G\", \"\", desc = \"+Github\" }, { \"Gc\", \"\", desc = \"+Commits\" }, { \"Gcc\", \"GHCloseCommit\", desc = \"Close\" }, { \"Gce\", \"GHExpandCommit\", desc = \"Expand\" }, { \"Gco\", \"GHOpenToCommit\", desc = \"Open To\" }, { \"Gcp\", \"GHPopOutCommit\", desc = \"Pop Out\" }, { \"Gcz\", \"GHCollapseCommit\", desc = \"Collapse\" }, { \"Gi\", \"\", desc = \"+Issues\" }, { \"Gip\", \"GHPreviewIssue\", desc = \"Preview\" }, { \"Gio\", \"GHOpenIssue\", desc = \"Open\" }, { \"Gl\", \"\", desc = \"+Litee\" }, { \"Glt\", \"LTPanel\", desc = \"Toggle Panel\" }, { \"Gp\", \"\", desc = \"+Pull Request\" }, { \"Gpc\", \"GHClosePR\", desc = \"Close\" }, { \"Gpd\", \"GHPRDetails\", desc = \"Details\" }, { \"Gpe\", \"GHExpandPR\", desc = \"Expand\" }, { \"Gpo\", \"GHOpenPR\", desc = \"Open\" }, { \"Gpp\", \"GHPopOutPR\", desc = \"PopOut\" }, { \"Gpr\", \"GHRefreshPR\", desc = \"Refresh\" }, { \"Gpt\", \"GHOpenToPR\", desc = \"Open To\" }, { \"Gpz\", \"GHCollapsePR\", desc = \"Collapse\" }, { \"Gr\", \"\", desc = \"+Review\" }, { \"Grb\", \"GHStartReview\", desc = \"Begin\" }, { \"Grc\", \"GHCloseReview\", desc = \"Close\" }, { \"Grd\", \"GHDeleteReview\", desc = \"Delete\" }, { \"Gre\", \"GHExpandReview\", desc = \"Expand\" }, { \"Grs\", \"GHSubmitReview\", desc = \"Submit\" }, { \"Grz\", \"GHCollapseReview\", desc = \"Collapse\" }, { \"Gt\", \"\", desc = \"+Threads\" }, { \"Gtc\", \"GHCreateThread\", desc = \"Create\" }, { \"Gtn\", \"GHNextThread\", desc = \"Next\" }, { \"Gtt\", \"GHToggleThread\", desc = \"Toggle\" }, }, }","s":"gh.nvim","u":"/extras/util/gh","h":"#ghnvim","p":1148},{"i":1157,"t":"info You can enable the extra with the :LazyExtras command. Plugins marked as optional will only be configured if they are installed. Below you can find a list of included plugins and their default settings. caution You don't need to copy the default settings to your config. They are only shown here for reference.","s":"Chezmoi","u":"/extras/util/chezmoi","h":"","p":1156},{"i":1159,"t":"Options Full Spec opts = nil { -- highlighting for chezmoi files template files \"alker0/chezmoi.vim\", init = function() vim.g[\"chezmoi#use_tmp_buffer\"] = 1 vim.g[\"chezmoi#source_dir_path\"] = vim.env.HOME .. \"/.local/share/chezmoi\" end, }","s":"chezmoi.vim","u":"/extras/util/chezmoi","h":"#chezmoivim","p":1156},{"i":1161,"t":"Options Full Spec opts = { edit = { watch = false, force = false, }, notification = { on_open = true, on_apply = true, on_watch = false, }, telescope = { select = { \"\" }, }, } { \"xvzc/chezmoi.nvim\", cmd = { \"ChezmoiEdit\" }, keys = { { \"sz\", pick_chezmoi, desc = \"Chezmoi\", }, }, opts = { edit = { watch = false, force = false, }, notification = { on_open = true, on_apply = true, on_watch = false, }, telescope = { select = { \"\" }, }, }, init = function() -- run chezmoi edit on file enter vim.api.nvim_create_autocmd({ \"BufRead\", \"BufNewFile\" }, { pattern = { vim.env.HOME .. \"/.local/share/chezmoi/*\" }, callback = function() vim.schedule(require(\"chezmoi.commands.__edit\").watch) end, }) end, }","s":"chezmoi.nvim","u":"/extras/util/chezmoi","h":"#chezmoinvim","p":1156},{"i":1163,"t":"Filetype icons Options Full Spec opts = { file = { [\".chezmoiignore\"] = { glyph = \"\", hl = \"MiniIconsGrey\" }, [\".chezmoiremove\"] = { glyph = \"\", hl = \"MiniIconsGrey\" }, [\".chezmoiroot\"] = { glyph = \"\", hl = \"MiniIconsGrey\" }, [\".chezmoiversion\"] = { glyph = \"\", hl = \"MiniIconsGrey\" }, [\"bash.tmpl\"] = { glyph = \"\", hl = \"MiniIconsGrey\" }, [\"json.tmpl\"] = { glyph = \"\", hl = \"MiniIconsGrey\" }, [\"ps1.tmpl\"] = { glyph = \"󰨊\", hl = \"MiniIconsGrey\" }, [\"sh.tmpl\"] = { glyph = \"\", hl = \"MiniIconsGrey\" }, [\"toml.tmpl\"] = { glyph = \"\", hl = \"MiniIconsGrey\" }, [\"yaml.tmpl\"] = { glyph = \"\", hl = \"MiniIconsGrey\" }, [\"zsh.tmpl\"] = { glyph = \"\", hl = \"MiniIconsGrey\" }, }, } { \"nvim-mini/mini.icons\", opts = { file = { [\".chezmoiignore\"] = { glyph = \"\", hl = \"MiniIconsGrey\" }, [\".chezmoiremove\"] = { glyph = \"\", hl = \"MiniIconsGrey\" }, [\".chezmoiroot\"] = { glyph = \"\", hl = \"MiniIconsGrey\" }, [\".chezmoiversion\"] = { glyph = \"\", hl = \"MiniIconsGrey\" }, [\"bash.tmpl\"] = { glyph = \"\", hl = \"MiniIconsGrey\" }, [\"json.tmpl\"] = { glyph = \"\", hl = \"MiniIconsGrey\" }, [\"ps1.tmpl\"] = { glyph = \"󰨊\", hl = \"MiniIconsGrey\" }, [\"sh.tmpl\"] = { glyph = \"\", hl = \"MiniIconsGrey\" }, [\"toml.tmpl\"] = { glyph = \"\", hl = \"MiniIconsGrey\" }, [\"yaml.tmpl\"] = { glyph = \"\", hl = \"MiniIconsGrey\" }, [\"zsh.tmpl\"] = { glyph = \"\", hl = \"MiniIconsGrey\" }, }, }, }","s":"mini.icons","u":"/extras/util/chezmoi","h":"#miniicons","p":1156},{"i":1165,"t":"Options Full Spec opts = function(_, opts) local projects = { action = pick_chezmoi, desc = \" Config\", icon = \"\", key = \"c\", } projects.desc = projects.desc .. string.rep(\" \", 43 - #projects.desc) projects.key_format = \" %s\" -- remove lazyvim config property for i = #opts.config.center, 1, -1 do if opts.config.center[i].key == \"c\" then table.remove(opts.config.center, i) end end table.insert(opts.config.center, 5, projects) end { \"nvimdev/dashboard-nvim\", optional = true, opts = function(_, opts) local projects = { action = pick_chezmoi, desc = \" Config\", icon = \"\", key = \"c\", } projects.desc = projects.desc .. string.rep(\" \", 43 - #projects.desc) projects.key_format = \" %s\" -- remove lazyvim config property for i = #opts.config.center, 1, -1 do if opts.config.center[i].key == \"c\" then table.remove(opts.config.center, i) end end table.insert(opts.config.center, 5, projects) end, }","s":"dashboard-nvim (optional)","u":"/extras/util/chezmoi","h":"#dashboard-nvim-optional","p":1156},{"i":1167,"t":"Options Full Spec opts = function(_, opts) local chezmoi_entry = { icon = \" \", key = \"c\", desc = \"Config\", action = pick_chezmoi, } local config_index for i = #opts.dashboard.preset.keys, 1, -1 do if opts.dashboard.preset.keys[i].key == \"c\" then table.remove(opts.dashboard.preset.keys, i) config_index = i break end end table.insert(opts.dashboard.preset.keys, config_index, chezmoi_entry) end { \"folke/snacks.nvim\", optional = true, opts = function(_, opts) local chezmoi_entry = { icon = \" \", key = \"c\", desc = \"Config\", action = pick_chezmoi, } local config_index for i = #opts.dashboard.preset.keys, 1, -1 do if opts.dashboard.preset.keys[i].key == \"c\" then table.remove(opts.dashboard.preset.keys, i) config_index = i break end end table.insert(opts.dashboard.preset.keys, config_index, chezmoi_entry) end, }","s":"snacks.nvim (optional)","u":"/extras/util/chezmoi","h":"#snacksnvim-optional","p":1156},{"i":1169,"t":"info You can enable the extra with the :LazyExtras command. Plugins marked as optional will only be configured if they are installed. Below you can find a list of included plugins and their default settings. caution You don't need to copy the default settings to your config. They are only shown here for reference.","s":"Gitui","u":"/extras/util/gitui","h":"","p":1168},{"i":1171,"t":"Ensure GitUI tool is installed Options Full Spec opts = { ensure_installed = { \"gitui\" } } { \"mason-org/mason.nvim\", opts = { ensure_installed = { \"gitui\" } }, keys = { { \"gG\", function() Snacks.terminal({ \"gitui\" }) end, desc = \"GitUi (cwd)\", }, { \"gg\", function() Snacks.terminal({ \"gitui\" }, { cwd = LazyVim.root.get() }) end, desc = \"GitUi (Root Dir)\", }, }, init = function() -- delete lazygit keymap for file history vim.api.nvim_create_autocmd(\"User\", { pattern = \"LazyVimKeymaps\", once = true, callback = function() pcall(vim.keymap.del, \"n\", \"gf\") pcall(vim.keymap.del, \"n\", \"gl\") end, }) end, }","s":"mason.nvim","u":"/extras/util/gitui","h":"#masonnvim","p":1168},{"i":1173,"t":"info You can enable the extra with the :LazyExtras command. Plugins marked as optional will only be configured if they are installed. Below you can find a list of included plugins and their default settings. caution You don't need to copy the default settings to your config. They are only shown here for reference.","s":"Mini Hipatterns","u":"/extras/util/mini-hipatterns","h":"","p":1172},{"i":1175,"t":"Options Full Spec opts = function() local hi = require(\"mini.hipatterns\") return { -- custom LazyVim option to enable the tailwind integration tailwind = { enabled = true, ft = { \"astro\", \"css\", \"heex\", \"html\", \"html-eex\", \"javascript\", \"javascriptreact\", \"rust\", \"svelte\", \"typescript\", \"typescriptreact\", \"vue\", }, -- full: the whole css class will be highlighted -- compact: only the color will be highlighted style = \"full\", }, highlighters = { hex_color = hi.gen_highlighter.hex_color({ priority = 2000 }), shorthand = { pattern = \"()#%x%x%x()%f[^%x%w]\", group = function(_, _, data) ---@type string local match = data.full_match local r, g, b = match:sub(2, 2), match:sub(3, 3), match:sub(4, 4) local hex_color = \"#\" .. r .. r .. g .. g .. b .. b return MiniHipatterns.compute_hex_color_group(hex_color, \"bg\") end, extmark_opts = { priority = 2000 }, }, }, } end { \"nvim-mini/mini.hipatterns\", recommended = true, desc = \"Highlight colors in your code. Also includes Tailwind CSS support.\", event = \"LazyFile\", opts = function() local hi = require(\"mini.hipatterns\") return { -- custom LazyVim option to enable the tailwind integration tailwind = { enabled = true, ft = { \"astro\", \"css\", \"heex\", \"html\", \"html-eex\", \"javascript\", \"javascriptreact\", \"rust\", \"svelte\", \"typescript\", \"typescriptreact\", \"vue\", }, -- full: the whole css class will be highlighted -- compact: only the color will be highlighted style = \"full\", }, highlighters = { hex_color = hi.gen_highlighter.hex_color({ priority = 2000 }), shorthand = { pattern = \"()#%x%x%x()%f[^%x%w]\", group = function(_, _, data) ---@type string local match = data.full_match local r, g, b = match:sub(2, 2), match:sub(3, 3), match:sub(4, 4) local hex_color = \"#\" .. r .. r .. g .. g .. b .. b return MiniHipatterns.compute_hex_color_group(hex_color, \"bg\") end, extmark_opts = { priority = 2000 }, }, }, } end, config = function(_, opts) if type(opts.tailwind) == \"table\" and opts.tailwind.enabled then -- reset hl groups when colorscheme changes vim.api.nvim_create_autocmd(\"ColorScheme\", { callback = function() M.hl = {} end, }) opts.highlighters.tailwind = { pattern = function() if not vim.tbl_contains(opts.tailwind.ft, vim.bo.filetype) then return end if opts.tailwind.style == \"full\" then return \"%f[%w:-]()[%w:-]+%-[a-z%-]+%-%d+()%f[^%w:-]\" elseif opts.tailwind.style == \"compact\" then return \"%f[%w:-][%w:-]+%-()[a-z%-]+%-%d+()%f[^%w:-]\" end end, group = function(_, _, m) ---@type string local match = m.full_match ---@type string, number local color, shade = match:match(\"[%w-]+%-([a-z%-]+)%-(%d+)\") shade = tonumber(shade) local bg = vim.tbl_get(M.colors, color, shade) if bg then local hl = \"MiniHipatternsTailwind\" .. color .. shade if not M.hl[hl] then M.hl[hl] = true local bg_shade = shade == 500 and 950 or shade < 500 and 900 or 100 local fg = vim.tbl_get(M.colors, color, bg_shade) vim.api.nvim_set_hl(0, hl, { bg = \"#\" .. bg, fg = \"#\" .. fg }) end return hl end end, extmark_opts = { priority = 2000 }, } end require(\"mini.hipatterns\").setup(opts) end, }","s":"mini.hipatterns","u":"/extras/util/mini-hipatterns","h":"#minihipatterns","p":1172},{"i":1177,"t":"info You can enable the extra with the :LazyExtras command. Plugins marked as optional will only be configured if they are installed. Below you can find a list of included plugins and their default settings. caution You don't need to copy the default settings to your config. They are only shown here for reference.","s":"Project","u":"/extras/util/project","h":"","p":1176},{"i":1179,"t":"Options Full Spec opts = { manual_mode = true, } { \"ahmedkhalf/project.nvim\", opts = { manual_mode = true, }, event = \"VeryLazy\", config = function(_, opts) require(\"project_nvim\").setup(opts) local history = require(\"project_nvim.utils.history\") history.delete_project = function(project) for k, v in pairs(history.recent_projects) do if v == project.value then history.recent_projects[k] = nil return end end end LazyVim.on_load(\"telescope.nvim\", function() require(\"telescope\").load_extension(\"projects\") end) end, }","s":"project.nvim","u":"/extras/util/project","h":"#projectnvim","p":1176},{"i":1181,"t":"Options Full Spec opts = nil { \"nvim-telescope/telescope.nvim\", optional = true, keys = { { \"fp\", pick, desc = \"Projects\" }, }, }","s":"telescope.nvim (optional)","u":"/extras/util/project","h":"#telescopenvim-optional","p":1176},{"i":1183,"t":"Options Full Spec opts = nil { \"ibhagwan/fzf-lua\", optional = true, keys = { { \"fp\", pick, desc = \"Projects\" }, }, }","s":"fzf-lua (optional)","u":"/extras/util/project","h":"#fzf-lua-optional","p":1176},{"i":1185,"t":"Options Full Spec opts = function(_, dashboard) local button = dashboard.button(\"P\", \" \" .. \" Projects (util.project)\", pick) button.opts.hl = \"AlphaButtons\" button.opts.hl_shortcut = \"AlphaShortcut\" table.insert(dashboard.section.buttons.val, 4, button) end { \"goolord/alpha-nvim\", optional = true, opts = function(_, dashboard) local button = dashboard.button(\"P\", \" \" .. \" Projects (util.project)\", pick) button.opts.hl = \"AlphaButtons\" button.opts.hl_shortcut = \"AlphaShortcut\" table.insert(dashboard.section.buttons.val, 4, button) end, }","s":"alpha-nvim (optional)","u":"/extras/util/project","h":"#alpha-nvim-optional","p":1176},{"i":1187,"t":"Options Full Spec opts = function(_, opts) local items = { { name = \"Projects (util.project)\", action = pick, section = string.rep(\" \", 22) .. \"Telescope\", }, } vim.list_extend(opts.items, items) end { \"nvim-mini/mini.starter\", optional = true, opts = function(_, opts) local items = { { name = \"Projects (util.project)\", action = pick, section = string.rep(\" \", 22) .. \"Telescope\", }, } vim.list_extend(opts.items, items) end, }","s":"mini.starter (optional)","u":"/extras/util/project","h":"#ministarter-optional","p":1176},{"i":1189,"t":"Options Full Spec opts = function(_, opts) if not vim.tbl_get(opts, \"config\", \"center\") then return end local projects = { action = pick, desc = \" Projects (util.project)\", icon = \" \", key = \"P\", } projects.desc = projects.desc .. string.rep(\" \", 43 - #projects.desc) projects.key_format = \" %s\" table.insert(opts.config.center, 3, projects) end { \"nvimdev/dashboard-nvim\", optional = true, opts = function(_, opts) if not vim.tbl_get(opts, \"config\", \"center\") then return end local projects = { action = pick, desc = \" Projects (util.project)\", icon = \" \", key = \"P\", } projects.desc = projects.desc .. string.rep(\" \", 43 - #projects.desc) projects.key_format = \" %s\" table.insert(opts.config.center, 3, projects) end, }","s":"dashboard-nvim (optional)","u":"/extras/util/project","h":"#dashboard-nvim-optional","p":1176},{"i":1191,"t":"Options Full Spec opts = function(_, opts) table.insert(opts.dashboard.preset.keys, 3, { action = pick, desc = \"Projects (util.project)\", icon = \" \", key = \"P\", }) end { \"folke/snacks.nvim\", optional = true, opts = function(_, opts) table.insert(opts.dashboard.preset.keys, 3, { action = pick, desc = \"Projects (util.project)\", icon = \" \", key = \"P\", }) end, }","s":"snacks.nvim (optional)","u":"/extras/util/project","h":"#snacksnvim-optional","p":1176},{"i":1193,"t":"info You can enable the extra with the :LazyExtras command. Plugins marked as optional will only be configured if they are installed. Below you can find a list of included plugins and their default settings. caution You don't need to copy the default settings to your config. They are only shown here for reference.","s":"Octo","u":"/extras/util/octo","h":"","p":1192},{"i":1195,"t":"lang.git","s":"Includes the following extras","u":"/extras/util/octo","h":"#includes-the-following-extras","p":1192},{"i":1197,"t":"Octo Options Full Spec opts = { enable_builtin = true, default_to_projects_v2 = true, default_merge_method = \"squash\", picker = \"telescope\", } { \"pwntester/octo.nvim\", cmd = \"Octo\", event = { { event = \"BufReadCmd\", pattern = \"octo://*\" } }, opts = { enable_builtin = true, default_to_projects_v2 = true, default_merge_method = \"squash\", picker = \"telescope\", }, keys = { { \"gi\", \"Octo issue list\", desc = \"List Issues (Octo)\" }, { \"gI\", \"Octo issue search\", desc = \"Search Issues (Octo)\" }, { \"gp\", \"Octo pr list\", desc = \"List PRs (Octo)\" }, { \"gP\", \"Octo pr search\", desc = \"Search PRs (Octo)\" }, { \"gr\", \"Octo repo list\", desc = \"List Repos (Octo)\" }, { \"gS\", \"Octo search\", desc = \"Search (Octo)\" }, { \"a\", \"\", desc = \"+assignee (Octo)\", ft = \"octo\" }, { \"c\", \"\", desc = \"+comment/code (Octo)\", ft = \"octo\" }, { \"l\", \"\", desc = \"+label (Octo)\", ft = \"octo\" }, { \"i\", \"\", desc = \"+issue (Octo)\", ft = \"octo\" }, { \"r\", \"\", desc = \"+react (Octo)\", ft = \"octo\" }, { \"p\", \"\", desc = \"+pr (Octo)\", ft = \"octo\" }, { \"pr\", \"\", desc = \"+rebase (Octo)\", ft = \"octo\" }, { \"ps\", \"\", desc = \"+squash (Octo)\", ft = \"octo\" }, { \"v\", \"\", desc = \"+review (Octo)\", ft = \"octo\" }, { \"g\", \"\", desc = \"+goto_issue (Octo)\", ft = \"octo\" }, { \"@\", \"@\", mode = \"i\", ft = \"octo\", silent = true }, { \"#\", \"#\", mode = \"i\", ft = \"octo\", silent = true }, }, }","s":"octo.nvim","u":"/extras/util/octo","h":"#octonvim","p":1192},{"i":1199,"t":"Octo Picker Options Full Spec opts = function(_, opts) vim.treesitter.language.register(\"markdown\", \"octo\") if LazyVim.has_extra(\"editor.telescope\") then opts.picker = \"telescope\" elseif LazyVim.has_extra(\"editor.fzf\") then opts.picker = \"fzf-lua\" elseif LazyVim.has_extra(\"editor.snacks_picker\") then opts.picker = \"snacks\" else LazyVim.error(\"`octo.nvim` requires `telescope.nvim` or `fzf-lua` or `snacks.nvim`\") end -- Keep some empty windows in sessions vim.api.nvim_create_autocmd(\"ExitPre\", { group = vim.api.nvim_create_augroup(\"octo_exit_pre\", { clear = true }), callback = function(ev) local keep = { \"octo\" } for _, win in ipairs(vim.api.nvim_list_wins()) do local buf = vim.api.nvim_win_get_buf(win) if vim.tbl_contains(keep, vim.bo[buf].filetype) then vim.bo[buf].buftype = \"\" -- set buftype to empty to keep the window end end end, }) end { \"pwntester/octo.nvim\", opts = function(_, opts) vim.treesitter.language.register(\"markdown\", \"octo\") if LazyVim.has_extra(\"editor.telescope\") then opts.picker = \"telescope\" elseif LazyVim.has_extra(\"editor.fzf\") then opts.picker = \"fzf-lua\" elseif LazyVim.has_extra(\"editor.snacks_picker\") then opts.picker = \"snacks\" else LazyVim.error(\"`octo.nvim` requires `telescope.nvim` or `fzf-lua` or `snacks.nvim`\") end -- Keep some empty windows in sessions vim.api.nvim_create_autocmd(\"ExitPre\", { group = vim.api.nvim_create_augroup(\"octo_exit_pre\", { clear = true }), callback = function(ev) local keep = { \"octo\" } for _, win in ipairs(vim.api.nvim_list_wins()) do local buf = vim.api.nvim_win_get_buf(win) if vim.tbl_contains(keep, vim.bo[buf].filetype) then vim.bo[buf].buftype = \"\" -- set buftype to empty to keep the window end end end, }) end, }","s":"octo.nvim","u":"/extras/util/octo","h":"#octonvim-1","p":1192},{"i":1201,"t":"info You can enable the extra with the :LazyExtras command. Plugins marked as optional will only be configured if they are installed. Below you can find a list of included plugins and their default settings. caution You don't need to copy the default settings to your config. They are only shown here for reference.","s":"Startuptime","u":"/extras/util/startuptime","h":"","p":1200},{"i":1203,"t":"Options Full Spec opts = {} { \"dstein64/vim-startuptime\", cmd = \"StartupTime\", config = function() vim.g.startuptime_tries = 10 end, }","s":"vim-startuptime","u":"/extras/util/startuptime","h":"#vim-startuptime","p":1200},{"i":1205,"t":"info You can enable the extra with the :LazyExtras command. Plugins marked as optional will only be configured if they are installed. Below you can find a list of included plugins and their default settings. caution You don't need to copy the default settings to your config. They are only shown here for reference.","s":"Rest","u":"/extras/util/rest","h":"","p":1204},{"i":1207,"t":"Options Full Spec opts = {} { \"mistweaverco/kulala.nvim\", ft = \"http\", keys = { { \"R\", \"\", desc = \"+Rest\" }, { \"Rb\", \"lua require('kulala').scratchpad()\", desc = \"Open scratchpad\" }, { \"Rc\", \"lua require('kulala').copy()\", desc = \"Copy as cURL\", ft = \"http\" }, { \"RC\", \"lua require('kulala').from_curl()\", desc = \"Paste from curl\", ft = \"http\" }, { \"Re\", \"lua require('kulala').set_selected_env()\", desc = \"Set environment\", ft = \"http\" }, { \"Rg\", \"lua require('kulala').download_graphql_schema()\", desc = \"Download GraphQL schema\", ft = \"http\", }, { \"Ri\", \"lua require('kulala').inspect()\", desc = \"Inspect current request\", ft = \"http\" }, { \"Rn\", \"lua require('kulala').jump_next()\", desc = \"Jump to next request\", ft = \"http\" }, { \"Rp\", \"lua require('kulala').jump_prev()\", desc = \"Jump to previous request\", ft = \"http\" }, { \"Rq\", \"lua require('kulala').close()\", desc = \"Close window\", ft = \"http\" }, { \"Rr\", \"lua require('kulala').replay()\", desc = \"Replay the last request\" }, { \"Rs\", \"lua require('kulala').run()\", desc = \"Send the request\", ft = \"http\" }, { \"RS\", \"lua require('kulala').show_stats()\", desc = \"Show stats\", ft = \"http\" }, { \"Rt\", \"lua require('kulala').toggle_view()\", desc = \"Toggle headers/body\", ft = \"http\" }, }, opts = {}, }","s":"kulala.nvim","u":"/extras/util/rest","h":"#kulalanvim","p":1204},{"i":1209,"t":"Options Full Spec opts = { ensure_installed = { \"http\", \"graphql\" }, } { \"nvim-treesitter/nvim-treesitter\", opts = { ensure_installed = { \"http\", \"graphql\" }, }, }","s":"nvim-treesitter","u":"/extras/util/rest","h":"#nvim-treesitter","p":1204},{"i":1211,"t":"This extra will only load when vim.g.vscode is set. Enabled plugins: { \"dial.nvim\", \"flit.nvim\", \"lazy.nvim\", \"leap.nvim\", \"mini.ai\", \"mini.comment\", \"mini.move\", \"mini.pairs\", \"mini.surround\", \"nvim-treesitter\", \"nvim-treesitter-textobjects\", \"nvim-ts-context-commentstring\", \"vim-repeat\", \"yanky.nvim\", } Some additional keymaps are added similar to the ones in regular LazyVim. If you want to include any additional plugins in vscode, you can set vscode=true on a plugin spec. info You can enable the extra with the :LazyExtras command. Plugins marked as optional will only be configured if they are installed. Below you can find a list of included plugins and their default settings. caution You don't need to copy the default settings to your config. They are only shown here for reference.","s":"VS Code","u":"/extras/vscode","h":"","p":1210},{"i":1213,"t":"You can find a starter template for LazyVim here Linux/MacOS Windows Try it with Docker Install the LazyVim Starter Make a backup of your current Neovim files: # required mv ~/.config/nvim{,.bak} # optional but recommended mv ~/.local/share/nvim{,.bak} mv ~/.local/state/nvim{,.bak} mv ~/.cache/nvim{,.bak} Clone the starter git clone https://github.com/LazyVim/starter ~/.config/nvim Remove the .git folder, so you can add it to your own repo later rm -rf ~/.config/nvim/.git Start Neovim! nvim Refer to the comments in the files on how to customize LazyVim. Install the LazyVim Starter with PowerShell Make a backup of your current Neovim files: # required Move-Item $env:LOCALAPPDATA\\nvim $env:LOCALAPPDATA\\nvim.bak # optional but recommended Move-Item $env:LOCALAPPDATA\\nvim-data $env:LOCALAPPDATA\\nvim-data.bak Clone the starter git clone https://github.com/LazyVim/starter $env:LOCALAPPDATA\\nvim Remove the .git folder, so you can add it to your own repo later Remove-Item $env:LOCALAPPDATA\\nvim\\.git -Recurse -Force Start Neovim! nvim Refer to the comments in the files on how to customize LazyVim. docker run -w /root -it --rm fedora:latest sh -uelic ' dnf copr enable -y dejan/lazygit dnf install -y git lazygit fd-find curl ripgrep tree-sitter-cli neovim git clone https://github.com/LazyVim/starter ~/.config/nvim cd ~/.config/nvim nvim ' tip It is recommended to run :LazyHealth after installation. This will load all plugins and check if everything is working correctly.","s":"🛠️ Installation","u":"/installation","h":"","p":1212},{"i":1216,"t":"Neovim >= 0.11.2 includes a lot of changes to the underlying LSP implementation. Going forward, LazyVim requires Neovim >= 0.11.2, and drops support for older versions.","s":"15.x","u":"/news","h":"#15x","p":1214},{"i":1218,"t":"removed compatibility code for Neovim < 0.11.2 configure LSP with the native vim.lsp.config migrated mason.nvim and mason-lspconfig.nvim to v2.x migrated to nvim-treesitter main branch with the new version, the tree-sitter cli is required to install parsers best to run :checkhealth nvim-treesitter after updating replace nvim-treesitter incremental selection with flash.nvim, since it is no longer supported enabled blink.cmp cmdline completions use LSP based folding when available (disable with nvim-lspconfig.folds.enabled = false)","s":"Changes","u":"/news","h":"#changes","p":1214},{"i":1220,"t":"Big new release with a lot of changes and improvements! Two new plugins have been added, and a lot of plugins have been replaced. With these changes, default LazyVim is now just 34 plugins.","s":"14.x","u":"/news","h":"#14x","p":1214},{"i":1222,"t":"fzf-lua as a replacement for telescope.nvim to use telescope.nvim instead, enable the editor.telescope extra blink.cmp as a replacement for nvim-cmp to use nvim-cmp instead, enable the coding.nvim-cmp extra","s":"Added Plugins","u":"/news","h":"#added-plugins","p":1214},{"i":1224,"t":"dressing.nvim (replaced with fzf-lua and snacks.input) telescope-fzf-native.nvim (replaced with fzf-lua) telescope.nvim (replaced with fzf-lua) indent-blankline.nvim (replaced with snacks.indent) to use indent-blankline.nvim instead, enable the indent-blankline extra nvim-cmp (replaced with blink) nvim-snippets (replaced with blink) cmp-buffer (replaced with blink) cmp-nvim-lsp (replaced with blink) cmp-path (replaced with blink)","s":"Removed Plugins","u":"/news","h":"#removed-plugins","p":1214},{"i":1226,"t":"added snacks.input added snacks.scroll added snacks.indent added snacks.scope added snacks.dim added snacks.zen changed default which-key preset to helix drop LazyVim.ui.fg in favor of Snacks.util.color To disable all animations, add the following to your options.lua: vim.g.snacks_animate = false","s":"Changes","u":"/news","h":"#changes-1","p":1214},{"i":1228,"t":"uz to toggle zen mode uZ & wm to toggle zoom mode uD to toggle dimming ua to toggle animations uS to toggle scroll ug to toggle indent guides snacks.profiler keymaps under dp","s":"Keymaps","u":"/news","h":"#keymaps","p":1214},{"i":1230,"t":"LazyVim now uses Snacks.dashboard as the default dashboard. Check the docs, for more information and examples. A new dashboard-nvim extra is available for those who prefer the old dashboard. Big new release with a lot of changes and improvements! The biggest change is the move of a bunch of core features to snacks.nvim and fully integrating it into LazyVim. I highly suggest having a look at the snacks.nvim documentation to see all the new features and improvements. Most important changes: Snacks.notifier for notifications instead of nvim-notify Snacks.terminal is similar to lazyterm, but has more features and creates bottom splits by default (similar to the edgy integrating)","s":"13.x","u":"/news","h":"#13x","p":1214},{"i":1232,"t":"Markdown Extra: headlines.nvim has been removed in favor of markdown.nvim to spice up your markdown files. nvim-spectre has been removed in favor of grug-far.nvim. grug-far.nvim has a great UI and feels more intuitive to use. This news is now also available on the website at https://www.lazyvim.org/news prettier extra now works for all prettier supported filetypes and will be enabled for astro/svelte extra if you have a proper config file with the correct prettier plugin New Language Support: SQL, Clojure, Thrift, Elm, Gleam, Angular, NuShell, Svelte, Kotlin, Astro, Toml and PHP New Extras: copilot-chat, git, octo, inc-rename and neogen The typescript extra now uses vtsls instead of tsserver Neovim >= 0.10 now uses the much faster lazydev.nvim instead of neodev.nvim moved neoconf.nvim to extras. Project specific LSP settings can be done with a .lazy.lua file instead.","s":"12.x","u":"/news","h":"#12x","p":1214},{"i":1234,"t":"Keymaps: gB to open the current repo in the browser gco and gcO to add a comment below or above the current line wm to toggle window maximize lazydev.nvim: faster alternative to neodev.nvim Options: Added linebreak=true to default options. mini.ai is back as a default plugin! Removing it was a mistake. It's a great plugin that enhances the native text objects. :LazyExtras now has multiple new sections: Enabled: extras that are currently enabled Recommended Languages: language extras recommended for the current buffer / directory Recommended Plugins: extras that are recommended for most users Plugins: other plugin extras Languages: other language extras new option vim.g.deprecation_warnings to disable deprecation warnings Defaults to false. To enable deprecation warnings, set it to true in your options.lua vim-illuminate move to extras Document highlights now use native lsp functionality by default Since Neovim 0.10 has been released, I've been working on a new version of LazyVim that is fully compatible with all the latest Neovim features. Additionally, some core plugins have been moved to extras. native snippets are now the default on Neovim 0.10 Older versions of Neovim will use the new luasnip extra. native comments are now the default on Neovim 0.10 Older versions of Neovim will use the new mini-comment extra. nvim-ts-context-commentstring has been integrated in the native comments. inlay hints have been in LazyVim for a while, but are now enabled by default. To disable them: { \"nvim-lspconfig\", opts = { inlay_hints = { enabled = false }, } } plugins moved to extras: mini.surround mini.indentscope scopes are now also highlighted with indent-blankline nvim-treesitter-context","s":"11.x","u":"/news","h":"#11x","p":1214},{"i":1236,"t":"added new extra for mini.diff This is a plugin similar to gitsigns but with a neat diff overlay that can be toggled with go. trouble.nvim has been rewritten from scratch and is now in beta. I've added a new extra for it (trouble-v3) for those of you who want to try it out. You can find the updated docs here The lazygit integration now configures: the theme based on the colorscheme nerd font icons (v3) editor preset is set to nvim-remote for better interop with Neovim The option vim.g.lazygit_theme was renamed to vim.g.lazygit_config lazygit now automatically uses the colors of your current colorscheme. This is enabled by default. To disable, add the below to your options.lua: vim.g.lazygit_config = false Added support for basedpyright to the python extra. Enable in your options.lua with: vim.g.lazyvim_python_lsp = \"basedpyright\" Be aware that basedpyright is still in development and may not work exactly the same as pyright. User extras under lua/plugins/extras can now also be managed with LazyExtras nvim-ts-autotag is now included by default nvim-treesitter-context is now included by default Added extra for symbols-outline.nvim Added extra for aerial.nvim nvim-navic has been removed. If you want to keep using nvim-navic, you can enable the editor.navic extra New :LazyExtras command for managing LazyVim extras Improved formatting: LazyVim can now work with multiple formatters. Types: primary: only one primary formatter can be active at a time. (conform, none-ls, LSP) secondary: multiple secondary formatters can be active (eslint, ...) LazyVim automatically selects the primary formatter based on the current available sources and priorities. New :LazyFormat command for formatting the current selection or buffer New :LazyFormatInfo command for displaying the active formatters for the current buffer Auto-formatting can be disabled with: vim.g.autoformat = false -- globally vim.b.autoformat = false -- buffer-local none-ls.nvim is no longer installed by default conform.nvim is now the default formatter nvim-lint is now the default linter If you want to keep using none-ls.nvim, you can enable the lsp.none-ls extra dashboard.nvim is the new default dashboard plugin If you want to keep using alpha.nvim, you can enable the ui.alpha extra Improved root detection: New :LazyRoot command that shows info about the root dir detection Configurable with vim.g.root_spec -- LazyVim root dir detection -- Each entry can be: -- * the name of a detector function like `lsp` or `cwd` -- * a pattern or array of patterns like `.git` or `lua`. -- * a function with signature `function(buf) -> string|string[]` vim.g.root_spec = { \"lsp\", { \".git\", \"lua\" }, \"cwd\" } -- To disable root detection set to just \"cwd\" vim.g.root_spec = { \"cwd\" }","s":"10.x","u":"/news","h":"#10x","p":1214},{"i":1238,"t":"LazyVim provides a set of preconfigured plugins enabled by default. All you need to do to utilize these plugins is install the LazyVim starter template. Coding: Faster coding with features such as snippets, autocompletion, and more. Colorscheme: Default color schemes (TokyoNight and Catppuccin). Editor: Provides functionality like a file explorer, search and replace, fuzzy finding, git integration. Formatting: Set up formatters using conform.nvim. Linting: Manage linters with the nvim-lint plugin. LSP: configure the Language Server Protocol (LSP) client. TreeSitter: advanced syntax highlighting and plugins that use Treesitter parsers UI: Enhance the user interface with features such as status line, buffer line, indentation guides, dashboard, and icons. Util: Contains utilities for session management, shared functionality, and other handy tools. For detailed information on the default configurations of each plugin set and instructions on customizing them, refer to the respective documentation linked above.","s":"Core Plugins","u":"/plugins","h":"","p":1237},{"i":1240,"t":"LazyVim uses which-key.nvim to help you remember your keymaps. Just press any key like and you'll see a popup with all possible keymaps starting with . default is default is \\","s":"⌨️ Keymaps","u":"/keymaps","h":"","p":1239},{"i":1242,"t":"Key Description Mode j Down n, x Down n, x k Up n, x Up n, x Go to Left Window n Go to Lower Window n Go to Upper Window n Go to Right Window n Increase Window Height n Decrease Window Height n Decrease Window Width n Increase Window Width n Move Down n, i, v Move Up n, i, v Prev Buffer n Next Buffer n [b Prev Buffer n ]b Next Buffer n bb Switch to Other Buffer n ` Switch to Other Buffer n bd Delete Buffer n bo Delete Other Buffers n bD Delete Buffer and Window n Escape and Clear hlsearch i, n, s ur Redraw / Clear hlsearch / Diff Update n n Next Search Result n, x, o N Prev Search Result n, x, o Save File i, x, n, s K Keywordprg n gco Add Comment Below n gcO Add Comment Above n l Lazy n fn New File n xl Location List n xq Quickfix List n [q Previous Quickfix n ]q Next Quickfix n cf Format n, x cd Line Diagnostics n ]d Next Diagnostic n [d Prev Diagnostic n ]e Next Error n [e Prev Error n ]w Next Warning n [w Prev Warning n uf Toggle Auto Format (Global) n uF Toggle Auto Format (Buffer) n us Toggle Spelling n uw Toggle Wrap n uL Toggle Relative Number n ud Toggle Diagnostics n ul Toggle Line Numbers n uc Toggle Conceal Level n uA Toggle Tabline n uT Toggle Treesitter Highlight n ub Toggle Dark Background n uD Toggle Dimming n ua Toggle Animations n ug Toggle Indent Guides n uS Toggle Smooth Scroll n dpp Toggle Profiler n dph Toggle Profiler Highlights n uh Toggle Inlay Hints n gL Git Log (cwd) n gb Git Blame Line n gf Git Current File History n gl Git Log n gB Git Browse (open) n, x gY Git Browse (copy) n, x qq Quit All n ui Inspect Pos n uI Inspect Tree n L LazyVim Changelog n fT Terminal (cwd) n ft Terminal (Root Dir) n Terminal (Root Dir) n, t which_key_ignore n, t - Split Window Below n | Split Window Right n wd Delete Window n wm Toggle Zoom Mode n uZ Toggle Zoom Mode n uz Toggle Zen Mode n l Last Tab n o Close Other Tabs n f First Tab n New Tab n ] Next Tab n d Close Tab n [ Previous Tab n","s":"General","u":"/keymaps","h":"#general","p":1239},{"i":1244,"t":"Key Description Mode cl Lsp Info n gd Goto Definition n gr References n gI Goto Implementation n gy Goto T[y]pe Definition n gD Goto Declaration n K Hover n gK Signature Help n Signature Help i ca Code Action n, x cc Run Codelens n, x cC Refresh & Display Codelens n cR Rename File n cr Rename n cA Source Action n ]] Next Reference n [[ Prev Reference n Next Reference n Prev Reference n","s":"LSP","u":"/keymaps","h":"#lsp","p":1239},{"i":1246,"t":"Key Description Mode bl Delete Buffers to the Left n bp Toggle Pin n bP Delete Non-Pinned Buffers n br Delete Buffers to the Right n [b Prev Buffer n [B Move buffer prev n ]b Next Buffer n ]B Move buffer next n Prev Buffer n Next Buffer n","s":"bufferline.nvim","u":"/keymaps","h":"#bufferlinenvim","p":1239},{"i":1248,"t":"Key Description Mode cF Format Injected Langs n, x","s":"conform.nvim","u":"/keymaps","h":"#conformnvim","p":1239},{"i":1250,"t":"Key Description Mode Toggle Flash Search c r Remote Flash o R Treesitter Search o, x s Flash n, o, x S Flash Treesitter n, o, x Treesitter Incremental Selection n, o, x","s":"flash.nvim","u":"/keymaps","h":"#flashnvim","p":1239},{"i":1252,"t":"Key Description Mode sr Search and Replace n, x","s":"grug-far.nvim","u":"/keymaps","h":"#grug-farnvim","p":1239},{"i":1254,"t":"Key Description Mode cm Mason n","s":"mason.nvim","u":"/keymaps","h":"#masonnvim","p":1239},{"i":1256,"t":"Key Description Mode Scroll Backward n, i, s Scroll Forward n, i, s sn +noice n sna Noice All n snd Dismiss All n snh Noice History n snl Noice Last Message n snt Noice Picker (Telescope/FzfLua) n Redirect Cmdline c","s":"noice.nvim","u":"/keymaps","h":"#noicenvim","p":1239},{"i":1258,"t":"Key Description Mode qd Don't Save Current Session n ql Restore Last Session n qs Restore Session n qS Select Session n","s":"persistence.nvim","u":"/keymaps","h":"#persistencenvim","p":1239},{"i":1260,"t":"Key Description Mode Find Files (Root Dir) n , Buffers n . Toggle Scratch Buffer n / Grep (Root Dir) n : Command History n dps Profiler Scratch Buffer n e Explorer Snacks (root dir) n E Explorer Snacks (cwd) n fb Buffers n fB Buffers (all) n fc Find Config File n fe Explorer Snacks (root dir) n fE Explorer Snacks (cwd) n ff Find Files (Root Dir) n fF Find Files (cwd) n fg Find Files (git-files) n fp Projects n fr Recent n fR Recent (cwd) n gd Git Diff (hunks) n gD Git Diff (origin) n gs Git Status n gS Git Stash n n Notification History n S Select Scratch Buffer n s\" Registers n s/ Search History n sa Autocmds n sb Buffer Lines n sB Grep Open Buffers n sc Command History n sC Commands n sd Diagnostics n sD Buffer Diagnostics n sg Grep (Root Dir) n sG Grep (cwd) n sh Help Pages n sH Highlights n si Icons n sj Jumps n sk Keymaps n sl Location List n sm Marks n sM Man Pages n sp Search for Plugin Spec n sq Quickfix List n sR Resume n su Undotree n sw Visual selection or word (Root Dir) n, x sW Visual selection or word (cwd) n, x uC Colorschemes n un Dismiss All Notifications n","s":"snacks.nvim","u":"/keymaps","h":"#snacksnvim","p":1239},{"i":1262,"t":"Key Description Mode st Todo n sT Todo/Fix/Fixme n xt Todo (Trouble) n xT Todo/Fix/Fixme (Trouble) n [t Previous Todo Comment n ]t Next Todo Comment n","s":"todo-comments.nvim","u":"/keymaps","h":"#todo-commentsnvim","p":1239},{"i":1264,"t":"Key Description Mode cs Symbols (Trouble) n cS LSP references/definitions/... (Trouble) n xL Location List (Trouble) n xQ Quickfix List (Trouble) n xx Diagnostics (Trouble) n xX Buffer Diagnostics (Trouble) n [q Previous Trouble/Quickfix Item n ]q Next Trouble/Quickfix Item n","s":"trouble.nvim","u":"/keymaps","h":"#troublenvim","p":1239},{"i":1266,"t":"Key Description Mode Window Hydra Mode (which-key) n ? Buffer Keymaps (which-key) n","s":"which-key.nvim","u":"/keymaps","h":"#which-keynvim","p":1239},{"i":1268,"t":"Part of lazyvim.plugins.extras.ai.avante Key Description Mode aa Ask Avante n ac Chat with Avante n ae Edit Avante n af Focus Avante n ah Avante History n am Select Avante Model n an New Avante Chat n ap Switch Avante Provider n ar Refresh Avante n as Stop Avante n at Toggle Avante n","s":"avante.nvim","u":"/keymaps","h":"#avantenvim","p":1239},{"i":1270,"t":"Part of lazyvim.plugins.extras.ai.claudecode Key Description Mode a +ai n, v aa Accept diff n ab Add current buffer n ac Toggle Claude n aC Continue Claude n ad Deny diff n af Focus Claude n ar Resume Claude n as Add file n as Send to Claude v","s":"claudecode.nvim","u":"/keymaps","h":"#claudecodenvim","p":1239},{"i":1272,"t":"Part of lazyvim.plugins.extras.ai.copilot-chat Key Description Mode Submit Prompt n a +ai n, x aa Toggle (CopilotChat) n, x ap Prompt Actions (CopilotChat) n, x aq Quick Chat (CopilotChat) n, x ax Clear (CopilotChat) n, x","s":"CopilotChat.nvim","u":"/keymaps","h":"#copilotchatnvim","p":1239},{"i":1274,"t":"Part of lazyvim.plugins.extras.ai.sidekick Key Description Mode a +ai n, v aa Sidekick Toggle CLI n ad Detach a CLI Session n af Send File n ap Sidekick Select Prompt n, x as Select CLI n at Send This n, x av Send Visual Selection x Sidekick Toggle n, i, t, x","s":"sidekick.nvim","u":"/keymaps","h":"#sidekicknvim","p":1239},{"i":1276,"t":"Part of lazyvim.plugins.extras.coding.mini-surround Key Description Mode gsa Add Surrounding n, x gsd Delete Surrounding n gsf Find Right Surrounding n gsF Find Left Surrounding n gsh Highlight Surrounding n gsn Update MiniSurround.config.n_lines n gsr Replace Surrounding n","s":"mini.surround","u":"/keymaps","h":"#minisurround","p":1239},{"i":1278,"t":"Part of lazyvim.plugins.extras.coding.neogen Key Description Mode cn Generate Annotations (Neogen) n","s":"neogen","u":"/keymaps","h":"#neogen","p":1239},{"i":1280,"t":"Part of lazyvim.plugins.extras.coding.yanky Key Description Mode p Open Yank History n, x

p Put and Indent Right n >P Put Before and Indent Right n [p Put Indented Before Cursor (Linewise) n [P Put Indented Before Cursor (Linewise) n [y Cycle Forward Through Yank History n ]p Put Indented After Cursor (Linewise) n ]P Put Indented After Cursor (Linewise) n ]y Cycle Backward Through Yank History n gp Put Text After Selection n, x gP Put Text Before Selection n, x p Put Text After Cursor n, x P Put Text Before Cursor n, x y Yank Text n, x","s":"yanky.nvim","u":"/keymaps","h":"#yankynvim","p":1239},{"i":1282,"t":"Part of lazyvim.plugins.extras.dap.core Key Description Mode da Run with Args n db Toggle Breakpoint n dB Breakpoint Condition n dc Run/Continue n dC Run to Cursor n dg Go to Line (No Execute) n di Step Into n dj Down n dk Up n dl Run Last n do Step Out n dO Step Over n dP Pause n dr Toggle REPL n ds Session n dt Terminate n dw Widgets n","s":"nvim-dap","u":"/keymaps","h":"#nvim-dap","p":1239},{"i":1284,"t":"Part of lazyvim.plugins.extras.dap.core Key Description Mode de Eval n, x du Dap UI n","s":"nvim-dap-ui","u":"/keymaps","h":"#nvim-dap-ui","p":1239},{"i":1286,"t":"Part of lazyvim.plugins.extras.editor.aerial Key Description Mode cs Aerial (Symbols) n","s":"aerial.nvim","u":"/keymaps","h":"#aerialnvim","p":1239},{"i":1288,"t":"Part of lazyvim.plugins.extras.editor.aerial Key Description Mode ss Goto Symbol (Aerial) n","s":"telescope.nvim","u":"/keymaps","h":"#telescopenvim","p":1239},{"i":1290,"t":"Part of lazyvim.plugins.extras.editor.dial Key Description Mode Increment n, v Decrement n, v g Increment n, x g Decrement n, x","s":"dial.nvim","u":"/keymaps","h":"#dialnvim","p":1239},{"i":1292,"t":"Part of lazyvim.plugins.extras.editor.harpoon2 Key Description Mode 1 Harpoon to File 1 n 2 Harpoon to File 2 n 3 Harpoon to File 3 n 4 Harpoon to File 4 n 5 Harpoon to File 5 n 6 Harpoon to File 6 n 7 Harpoon to File 7 n 8 Harpoon to File 8 n 9 Harpoon to File 9 n h Harpoon Quick Menu n H Harpoon File n","s":"harpoon","u":"/keymaps","h":"#harpoon","p":1239},{"i":1294,"t":"Part of lazyvim.plugins.extras.editor.illuminate Key Description Mode [[ Prev Reference n ]] Next Reference n","s":"vim-illuminate","u":"/keymaps","h":"#vim-illuminate","p":1239},{"i":1296,"t":"Part of lazyvim.plugins.extras.editor.leap Key Description Mode gs Leap from Windows n, o, x s Leap Forward to n, o, x S Leap Backward to n, o, x","s":"leap.nvim","u":"/keymaps","h":"#leapnvim","p":1239},{"i":1298,"t":"Part of lazyvim.plugins.extras.editor.leap Key Description Mode gz +surround n","s":"mini.surround","u":"/keymaps","h":"#minisurround-1","p":1239},{"i":1300,"t":"Part of lazyvim.plugins.extras.editor.mini-diff Key Description Mode go Toggle mini.diff overlay n","s":"mini.diff","u":"/keymaps","h":"#minidiff","p":1239},{"i":1302,"t":"Part of lazyvim.plugins.extras.editor.mini-files Key Description Mode fm Open mini.files (Directory of Current File) n fM Open mini.files (cwd) n","s":"mini.files","u":"/keymaps","h":"#minifiles","p":1239},{"i":1304,"t":"Part of lazyvim.plugins.extras.editor.outline Key Description Mode cs Toggle Outline n","s":"outline.nvim","u":"/keymaps","h":"#outlinenvim","p":1239},{"i":1306,"t":"Part of lazyvim.plugins.extras.editor.overseer Key Description Mode ob Task builder n oc Clear cache n oi Overseer Info n oo Run task n oq Action recent task n ot Task action n ow Task list n","s":"overseer.nvim","u":"/keymaps","h":"#overseernvim","p":1239},{"i":1308,"t":"Part of lazyvim.plugins.extras.editor.refactoring Key Description Mode r +refactor n, x rb Extract Block n, x rc Debug Cleanup n rf Extract Function n, x rF Extract Function To File n, x ri Inline Variable n, x rp Debug Print Variable n, x rP Debug Print n rs Refactor n, x rx Extract Variable n, x","s":"refactoring.nvim","u":"/keymaps","h":"#refactoringnvim","p":1239},{"i":1310,"t":"Part of lazyvim.plugins.extras.editor.snacks_explorer Key Description Mode e Explorer Snacks (root dir) n E Explorer Snacks (cwd) n fe Explorer Snacks (root dir) n fE Explorer Snacks (cwd) n","s":"snacks.nvim","u":"/keymaps","h":"#snacksnvim-1","p":1239},{"i":1312,"t":"Part of lazyvim.plugins.extras.editor.snacks_picker Key Description Mode Find Files (Root Dir) n , Buffers n / Grep (Root Dir) n : Command History n fb Buffers n fB Buffers (all) n fc Find Config File n ff Find Files (Root Dir) n fF Find Files (cwd) n fg Find Files (git-files) n fp Projects n fr Recent n fR Recent (cwd) n gd Git Diff (hunks) n gD Git Diff (origin) n gs Git Status n gS Git Stash n n Notification History n s\" Registers n s/ Search History n sa Autocmds n sb Buffer Lines n sB Grep Open Buffers n sc Command History n sC Commands n sd Diagnostics n sD Buffer Diagnostics n sg Grep (Root Dir) n sG Grep (cwd) n sh Help Pages n sH Highlights n si Icons n sj Jumps n sk Keymaps n sl Location List n sm Marks n sM Man Pages n sp Search for Plugin Spec n sq Quickfix List n sR Resume n su Undotree n sw Visual selection or word (Root Dir) n, x sW Visual selection or word (cwd) n, x uC Colorschemes n","s":"snacks.nvim","u":"/keymaps","h":"#snacksnvim-2","p":1239},{"i":1314,"t":"Part of lazyvim.plugins.extras.editor.snacks_picker Key Description Mode st Todo n sT Todo/Fix/Fixme n","s":"todo-comments.nvim","u":"/keymaps","h":"#todo-commentsnvim-1","p":1239},{"i":1316,"t":"Part of lazyvim.plugins.extras.lang.ansible Key Description Mode ta Ansible Run Playbook/Role n","s":"nvim-ansible","u":"/keymaps","h":"#nvim-ansible","p":1239},{"i":1318,"t":"Part of lazyvim.plugins.extras.lang.haskell Key Description Mode e Evaluate All n h Hoogle Signature n r REPL (Package) n R REPL (Buffer) n","s":"haskell-tools.nvim","u":"/keymaps","h":"#haskell-toolsnvim","p":1239},{"i":1320,"t":"Part of lazyvim.plugins.extras.lang.haskell Key Description Mode H Hoogle n","s":"telescope_hoogle","u":"/keymaps","h":"#telescope_hoogle","p":1239},{"i":1322,"t":"Part of lazyvim.plugins.extras.lang.markdown Key Description Mode cp Markdown Preview n","s":"markdown-preview.nvim","u":"/keymaps","h":"#markdown-previewnvim","p":1239},{"i":1324,"t":"Part of lazyvim.plugins.extras.lang.python Key Description Mode dPc Debug Class n dPt Debug Method n","s":"nvim-dap-python","u":"/keymaps","h":"#nvim-dap-python","p":1239},{"i":1326,"t":"Part of lazyvim.plugins.extras.lang.python Key Description Mode cv Select VirtualEnv n","s":"venv-selector.nvim","u":"/keymaps","h":"#venv-selectornvim","p":1239},{"i":1328,"t":"Part of lazyvim.plugins.extras.lang.scala Key Description Mode mc Metals compile cascade n me Metals commands n mh Metals hover worksheet n","s":"nvim-metals","u":"/keymaps","h":"#nvim-metals","p":1239},{"i":1330,"t":"Part of lazyvim.plugins.extras.lang.sql Key Description Mode D Toggle DBUI n","s":"vim-dadbod-ui","u":"/keymaps","h":"#vim-dadbod-ui","p":1239},{"i":1332,"t":"Part of lazyvim.plugins.extras.lang.tex Key Description Mode l +vimtex n","s":"vimtex","u":"/keymaps","h":"#vimtex","p":1239},{"i":1334,"t":"Part of lazyvim.plugins.extras.lang.typst Key Description Mode cp Toggle Typst Preview n","s":"typst-preview.nvim","u":"/keymaps","h":"#typst-previewnvim","p":1239},{"i":1336,"t":"Part of lazyvim.plugins.extras.test.core Key Description Mode t +test n ta Attach to Test (Neotest) n tl Run Last (Neotest) n to Show Output (Neotest) n tO Toggle Output Panel (Neotest) n tr Run Nearest (Neotest) n ts Toggle Summary (Neotest) n tS Stop (Neotest) n tt Run File (Neotest) n tT Run All Test Files (Neotest) n tw Toggle Watch (Neotest) n","s":"neotest","u":"/keymaps","h":"#neotest","p":1239},{"i":1338,"t":"Part of lazyvim.plugins.extras.test.core Key Description Mode td Debug Nearest n","s":"nvim-dap","u":"/keymaps","h":"#nvim-dap-1","p":1239},{"i":1340,"t":"Part of lazyvim.plugins.extras.ui.edgy Key Description Mode ue Edgy Toggle n uE Edgy Select Window n","s":"edgy.nvim","u":"/keymaps","h":"#edgynvim","p":1239},{"i":1342,"t":"Part of lazyvim.plugins.extras.util.chezmoi Key Description Mode sz Chezmoi n","s":"chezmoi.nvim","u":"/keymaps","h":"#chezmoinvim","p":1239},{"i":1344,"t":"Part of lazyvim.plugins.extras.util.gh Key Description Mode G +Github n Gc +Commits n Gcc Close n Gce Expand n Gco Open To n Gcp Pop Out n Gcz Collapse n Gi +Issues n Gio Open n Gip Preview n Gl +Litee n Glt Toggle Panel n Gp +Pull Request n Gpc Close n Gpd Details n Gpe Expand n Gpo Open n Gpp PopOut n Gpr Refresh n Gpt Open To n Gpz Collapse n Gr +Review n Grb Begin n Grc Close n Grd Delete n Gre Expand n Grs Submit n Grz Collapse n Gt +Threads n Gtc Create n Gtn Next n Gtt Toggle n","s":"gh.nvim","u":"/keymaps","h":"#ghnvim","p":1239},{"i":1346,"t":"Part of lazyvim.plugins.extras.util.gitui Key Description Mode gg GitUi (Root Dir) n gG GitUi (cwd) n","s":"mason.nvim","u":"/keymaps","h":"#masonnvim-1","p":1239},{"i":1348,"t":"Part of lazyvim.plugins.extras.util.octo Key Description Mode gi List Issues (Octo) n gI Search Issues (Octo) n gp List PRs (Octo) n gP Search PRs (Octo) n gr List Repos (Octo) n gS Search (Octo) n a +assignee (Octo) n c +comment/code (Octo) n g +goto_issue (Octo) n i +issue (Octo) n l +label (Octo) n p +pr (Octo) n pr +rebase (Octo) n ps +squash (Octo) n r +react (Octo) n v +review (Octo) n","s":"octo.nvim","u":"/keymaps","h":"#octonvim","p":1239},{"i":1350,"t":"Part of lazyvim.plugins.extras.util.project Key Description Mode fp Projects n","s":"fzf-lua","u":"/keymaps","h":"#fzf-lua","p":1239},{"i":1352,"t":"Part of lazyvim.plugins.extras.util.project Key Description Mode fp Projects n","s":"telescope.nvim","u":"/keymaps","h":"#telescopenvim-1","p":1239},{"i":1354,"t":"Part of lazyvim.plugins.extras.util.rest Key Description Mode R +Rest n Rb Open scratchpad n Rc Copy as cURL n RC Paste from curl n Re Set environment n Rg Download GraphQL schema n Ri Inspect current request n Rn Jump to next request n Rp Jump to previous request n Rq Close window n Rr Replay the last request n Rs Send the request n RS Show stats n Rt Toggle headers/body n","s":"kulala.nvim","u":"/keymaps","h":"#kulalanvim","p":1239},{"i":1357,"t":"Auto pairs Automatically inserts a matching closing character when you type an opening character like \", [, or (. Options Full Spec opts = { modes = { insert = true, command = true, terminal = false }, -- skip autopair when next character is one of these skip_next = [=[[%w%%%'%[%\"%.%`%$]]=], -- skip autopair when the cursor is inside these treesitter nodes skip_ts = { \"string\" }, -- skip autopair when next character is closing pair -- and there are more closing pairs than opening pairs skip_unbalanced = true, -- better deal with markdown code blocks markdown = true, } { \"nvim-mini/mini.pairs\", event = \"VeryLazy\", opts = { modes = { insert = true, command = true, terminal = false }, -- skip autopair when next character is one of these skip_next = [=[[%w%%%'%[%\"%.%`%$]]=], -- skip autopair when the cursor is inside these treesitter nodes skip_ts = { \"string\" }, -- skip autopair when next character is closing pair -- and there are more closing pairs than opening pairs skip_unbalanced = true, -- better deal with markdown code blocks markdown = true, }, config = function(_, opts) LazyVim.mini.pairs(opts) end, }","s":"mini.pairs","u":"/plugins/coding","h":"#minipairs","p":1355},{"i":1359,"t":"Improves comment syntax, lets Neovim handle multiple types of comments for a single language, and relaxes rules for uncommenting. Options Full Spec opts = {} { \"folke/ts-comments.nvim\", event = \"VeryLazy\", opts = {}, }","s":"ts-comments.nvim","u":"/plugins/coding","h":"#ts-commentsnvim","p":1355},{"i":1361,"t":"Extends the a & i text objects, this adds the ability to select arguments, function calls, text within quotes and brackets, and to repeat those selections to select an outer text object. Options Full Spec opts = function() local ai = require(\"mini.ai\") return { n_lines = 500, custom_textobjects = { o = ai.gen_spec.treesitter({ -- code block a = { \"@block.outer\", \"@conditional.outer\", \"@loop.outer\" }, i = { \"@block.inner\", \"@conditional.inner\", \"@loop.inner\" }, }), f = ai.gen_spec.treesitter({ a = \"@function.outer\", i = \"@function.inner\" }), -- function c = ai.gen_spec.treesitter({ a = \"@class.outer\", i = \"@class.inner\" }), -- class t = { \"<([%p%w]-)%f[^<%w][^<>]->.-\", \"^<.->().*()$\" }, -- tags d = { \"%f[%d]%d+\" }, -- digits e = { -- Word with case { \"%u[%l%d]+%f[^%l%d]\", \"%f[%S][%l%d]+%f[^%l%d]\", \"%f[%P][%l%d]+%f[^%l%d]\", \"^[%l%d]+%f[^%l%d]\" }, \"^().*()$\", }, g = LazyVim.mini.ai_buffer, -- buffer u = ai.gen_spec.function_call(), -- u for \"Usage\" U = ai.gen_spec.function_call({ name_pattern = \"[%w_]\" }), -- without dot in function name }, } end { \"nvim-mini/mini.ai\", event = \"VeryLazy\", opts = function() local ai = require(\"mini.ai\") return { n_lines = 500, custom_textobjects = { o = ai.gen_spec.treesitter({ -- code block a = { \"@block.outer\", \"@conditional.outer\", \"@loop.outer\" }, i = { \"@block.inner\", \"@conditional.inner\", \"@loop.inner\" }, }), f = ai.gen_spec.treesitter({ a = \"@function.outer\", i = \"@function.inner\" }), -- function c = ai.gen_spec.treesitter({ a = \"@class.outer\", i = \"@class.inner\" }), -- class t = { \"<([%p%w]-)%f[^<%w][^<>]->.-\", \"^<.->().*()$\" }, -- tags d = { \"%f[%d]%d+\" }, -- digits e = { -- Word with case { \"%u[%l%d]+%f[^%l%d]\", \"%f[%S][%l%d]+%f[^%l%d]\", \"%f[%P][%l%d]+%f[^%l%d]\", \"^[%l%d]+%f[^%l%d]\" }, \"^().*()$\", }, g = LazyVim.mini.ai_buffer, -- buffer u = ai.gen_spec.function_call(), -- u for \"Usage\" U = ai.gen_spec.function_call({ name_pattern = \"[%w_]\" }), -- without dot in function name }, } end, config = function(_, opts) require(\"mini.ai\").setup(opts) LazyVim.on_load(\"which-key.nvim\", function() vim.schedule(function() LazyVim.mini.ai_whichkey(opts) end) end) end, }","s":"mini.ai","u":"/plugins/coding","h":"#miniai","p":1355},{"i":1363,"t":"Configures LuaLS to support auto-completion and type checking while editing your Neovim configuration. Options Full Spec opts = { library = { { path = \"${3rd}/luv/library\", words = { \"vim%.uv\" } }, { path = \"LazyVim\", words = { \"LazyVim\" } }, { path = \"snacks.nvim\", words = { \"Snacks\" } }, { path = \"lazy.nvim\", words = { \"LazyVim\" } }, }, } { \"folke/lazydev.nvim\", ft = \"lua\", cmd = \"LazyDev\", opts = { library = { { path = \"${3rd}/luv/library\", words = { \"vim%.uv\" } }, { path = \"LazyVim\", words = { \"LazyVim\" } }, { path = \"snacks.nvim\", words = { \"Snacks\" } }, { path = \"lazy.nvim\", words = { \"LazyVim\" } }, }, }, }","s":"lazydev.nvim","u":"/plugins/coding","h":"#lazydevnvim","p":1355},{"i":1365,"t":"info You can enable the extra with the :LazyExtras command. Plugins marked as optional will only be configured if they are installed. Below you can find a list of included plugins and their default settings. caution You don't need to copy the default settings to your config. They are only shown here for reference.","s":"Solidity","u":"/extras/lang/solidity","h":"","p":1364},{"i":1367,"t":"Add Solidity & related to treesitter Options Full Spec opts = { ensure_installed = { \"solidity\" } } { \"nvim-treesitter/nvim-treesitter\", opts = { ensure_installed = { \"solidity\" } }, }","s":"nvim-treesitter","u":"/extras/lang/solidity","h":"#nvim-treesitter","p":1364},{"i":1369,"t":"Correctly setup lspconfig for Solidity Options Full Spec opts = { servers = { solidity_ls = {}, }, } { \"neovim/nvim-lspconfig\", opts = { servers = { solidity_ls = {}, }, }, }","s":"nvim-lspconfig","u":"/extras/lang/solidity","h":"#nvim-lspconfig","p":1364},{"i":1371,"t":"Formatter for Solidity Options Full Spec opts = { formatters_by_ft = { solidity = { \"forge_fmt\" }, }, } { \"stevearc/conform.nvim\", optional = true, opts = { formatters_by_ft = { solidity = { \"forge_fmt\" }, }, }, }","s":"conform.nvim (optional)","u":"/extras/lang/solidity","h":"#conformnvim-optional","p":1364},{"i":1373,"t":"LazyVim uses conform.nvim for formatting. Configuring conform.nvim: opts.format: extra options passed to require(\"conform\").format(options) opts.formatters: options will be merged with builtin formatters, or you can specify a new formatter. opts.formatters[NAME].prepend_args: extra arguments passed to the formatter command. If you want to fully override the args, just use args instead of prepend_args. opts.formatters_by_ft: specify which formatters to use for each filetype. caution Don't override plugin.config directly, since this will break LazyVim formatting.","s":"Formatting","u":"/plugins/formatting","h":"","p":1372},{"i":1375,"t":"Options Full Spec opts = function() local plugin = require(\"lazy.core.config\").plugins[\"conform.nvim\"] if plugin.config ~= M.setup then LazyVim.error({ \"Don't set `plugin.config` for `conform.nvim`.\\n\", \"This will break **LazyVim** formatting.\\n\", \"Please refer to the docs at https://www.lazyvim.org/plugins/formatting\", }, { title = \"LazyVim\" }) end ---@type conform.setupOpts local opts = { default_format_opts = { timeout_ms = 3000, async = false, -- not recommended to change quiet = false, -- not recommended to change lsp_format = \"fallback\", -- not recommended to change }, formatters_by_ft = { lua = { \"stylua\" }, fish = { \"fish_indent\" }, sh = { \"shfmt\" }, }, -- The options you set here will be merged with the builtin formatters. -- You can also define any custom formatters here. ---@type table formatters = { injected = { options = { ignore_errors = true } }, -- # Example of using dprint only when a dprint.json file is present -- dprint = { -- condition = function(ctx) -- return vim.fs.find({ \"dprint.json\" }, { path = ctx.filename, upward = true })[1] -- end, -- }, -- -- # Example of using shfmt with extra args -- shfmt = { -- prepend_args = { \"-i\", \"2\", \"-ci\" }, -- }, }, } return opts end { \"stevearc/conform.nvim\", dependencies = { \"mason.nvim\" }, lazy = true, cmd = \"ConformInfo\", keys = { { \"cF\", function() require(\"conform\").format({ formatters = { \"injected\" }, timeout_ms = 3000 }) end, mode = { \"n\", \"x\" }, desc = \"Format Injected Langs\", }, }, init = function() -- Install the conform formatter on VeryLazy LazyVim.on_very_lazy(function() LazyVim.format.register({ name = \"conform.nvim\", priority = 100, primary = true, format = function(buf) require(\"conform\").format({ bufnr = buf }) end, sources = function(buf) local ret = require(\"conform\").list_formatters(buf) ---@param v conform.FormatterInfo return vim.tbl_map(function(v) return v.name end, ret) end, }) end) end, opts = function() local plugin = require(\"lazy.core.config\").plugins[\"conform.nvim\"] if plugin.config ~= M.setup then LazyVim.error({ \"Don't set `plugin.config` for `conform.nvim`.\\n\", \"This will break **LazyVim** formatting.\\n\", \"Please refer to the docs at https://www.lazyvim.org/plugins/formatting\", }, { title = \"LazyVim\" }) end ---@type conform.setupOpts local opts = { default_format_opts = { timeout_ms = 3000, async = false, -- not recommended to change quiet = false, -- not recommended to change lsp_format = \"fallback\", -- not recommended to change }, formatters_by_ft = { lua = { \"stylua\" }, fish = { \"fish_indent\" }, sh = { \"shfmt\" }, }, -- The options you set here will be merged with the builtin formatters. -- You can also define any custom formatters here. ---@type table formatters = { injected = { options = { ignore_errors = true } }, -- # Example of using dprint only when a dprint.json file is present -- dprint = { -- condition = function(ctx) -- return vim.fs.find({ \"dprint.json\" }, { path = ctx.filename, upward = true })[1] -- end, -- }, -- -- # Example of using shfmt with extra args -- shfmt = { -- prepend_args = { \"-i\", \"2\", \"-ci\" }, -- }, }, } return opts end, config = M.setup, }","s":"conform.nvim","u":"/plugins/formatting","h":"#conformnvim","p":1372},{"i":1377,"t":"Options Full Spec opts = nil { \"mason.nvim\" }","s":"mason.nvim","u":"/plugins/formatting","h":"#masonnvim","p":1372},{"i":1380,"t":"Asynchronously calls language-specific linter tools and reports their results via the vim.diagnostic module. Options Full Spec opts = { -- Event to trigger linters events = { \"BufWritePost\", \"BufReadPost\", \"InsertLeave\" }, linters_by_ft = { fish = { \"fish\" }, -- Use the \"*\" filetype to run linters on all filetypes. -- ['*'] = { 'global linter' }, -- Use the \"_\" filetype to run linters on filetypes that don't have other linters configured. -- ['_'] = { 'fallback linter' }, -- [\"*\"] = { \"typos\" }, }, -- LazyVim extension to easily override linter options -- or add custom linters. ---@type table linters = { -- -- Example of using selene only when a selene.toml file is present -- selene = { -- -- `condition` is another LazyVim extension that allows you to -- -- dynamically enable/disable linters based on the context. -- condition = function(ctx) -- return vim.fs.find({ \"selene.toml\" }, { path = ctx.filename, upward = true })[1] -- end, -- }, }, } { \"mfussenegger/nvim-lint\", event = \"LazyFile\", opts = { -- Event to trigger linters events = { \"BufWritePost\", \"BufReadPost\", \"InsertLeave\" }, linters_by_ft = { fish = { \"fish\" }, -- Use the \"*\" filetype to run linters on all filetypes. -- ['*'] = { 'global linter' }, -- Use the \"_\" filetype to run linters on filetypes that don't have other linters configured. -- ['_'] = { 'fallback linter' }, -- [\"*\"] = { \"typos\" }, }, -- LazyVim extension to easily override linter options -- or add custom linters. ---@type table linters = { -- -- Example of using selene only when a selene.toml file is present -- selene = { -- -- `condition` is another LazyVim extension that allows you to -- -- dynamically enable/disable linters based on the context. -- condition = function(ctx) -- return vim.fs.find({ \"selene.toml\" }, { path = ctx.filename, upward = true })[1] -- end, -- }, }, }, config = function(_, opts) local M = {} local lint = require(\"lint\") for name, linter in pairs(opts.linters) do if type(linter) == \"table\" and type(lint.linters[name]) == \"table\" then lint.linters[name] = vim.tbl_deep_extend(\"force\", lint.linters[name], linter) if type(linter.prepend_args) == \"table\" then lint.linters[name].args = lint.linters[name].args or {} vim.list_extend(lint.linters[name].args, linter.prepend_args) end else lint.linters[name] = linter end end lint.linters_by_ft = opts.linters_by_ft function M.debounce(ms, fn) local timer = vim.uv.new_timer() return function(...) local argv = { ... } timer:start(ms, 0, function() timer:stop() vim.schedule_wrap(fn)(unpack(argv)) end) end end function M.lint() -- Use nvim-lint's logic first: -- * checks if linters exist for the full filetype first -- * otherwise will split filetype by \".\" and add all those linters -- * this differs from conform.nvim which only uses the first filetype that has a formatter local names = lint._resolve_linter_by_ft(vim.bo.filetype) -- Create a copy of the names table to avoid modifying the original. names = vim.list_extend({}, names) -- Add fallback linters. if #names == 0 then vim.list_extend(names, lint.linters_by_ft[\"_\"] or {}) end -- Add global linters. vim.list_extend(names, lint.linters_by_ft[\"*\"] or {}) -- Filter out linters that don't exist or don't match the condition. local ctx = { filename = vim.api.nvim_buf_get_name(0) } ctx.dirname = vim.fn.fnamemodify(ctx.filename, \":h\") names = vim.tbl_filter(function(name) local linter = lint.linters[name] if not linter then LazyVim.warn(\"Linter not found: \" .. name, { title = \"nvim-lint\" }) end return linter and not (type(linter) == \"table\" and linter.condition and not linter.condition(ctx)) end, names) -- Run linters. if #names > 0 then lint.try_lint(names) end end vim.api.nvim_create_autocmd(opts.events, { group = vim.api.nvim_create_augroup(\"nvim-lint\", { clear = true }), callback = M.debounce(100, M.lint), }) end, }","s":"nvim-lint","u":"/plugins/linting","h":"#nvim-lint","p":1378},{"i":1383,"t":"search/replace in multiple files Options Full Spec opts = { headerMaxWidth = 80 } { \"MagicDuck/grug-far.nvim\", opts = { headerMaxWidth = 80 }, cmd = { \"GrugFar\", \"GrugFarWithin\" }, keys = { { \"sr\", function() local grug = require(\"grug-far\") local ext = vim.bo.buftype == \"\" and vim.fn.expand(\"%:e\") grug.open({ transient = true, prefills = { filesFilter = ext and ext ~= \"\" and \"*.\" .. ext or nil, }, }) end, mode = { \"n\", \"x\" }, desc = \"Search and Replace\", }, }, }","s":"grug-far.nvim","u":"/plugins/editor","h":"#grug-farnvim","p":1381},{"i":1385,"t":"Flash enhances the built-in search functionality by showing labels at the end of each match, letting you quickly jump to a specific location. Options Full Spec opts = {} { \"folke/flash.nvim\", event = \"VeryLazy\", vscode = true, ---@type Flash.Config opts = {}, -- stylua: ignore keys = { { \"s\", mode = { \"n\", \"x\", \"o\" }, function() require(\"flash\").jump() end, desc = \"Flash\" }, { \"S\", mode = { \"n\", \"o\", \"x\" }, function() require(\"flash\").treesitter() end, desc = \"Flash Treesitter\" }, { \"r\", mode = \"o\", function() require(\"flash\").remote() end, desc = \"Remote Flash\" }, { \"R\", mode = { \"o\", \"x\" }, function() require(\"flash\").treesitter_search() end, desc = \"Treesitter Search\" }, { \"\", mode = { \"c\" }, function() require(\"flash\").toggle() end, desc = \"Toggle Flash Search\" }, -- Simulate nvim-treesitter incremental selection { \"\", mode = { \"n\", \"o\", \"x\" }, function() require(\"flash\").treesitter({ actions = { [\"\"] = \"next\", [\"\"] = \"prev\" } }) end, desc = \"Treesitter Incremental Selection\" }, }, }","s":"flash.nvim","u":"/plugins/editor","h":"#flashnvim","p":1381},{"i":1387,"t":"which-key helps you remember key bindings by showing a popup with the active keybindings of the command you started typing. Options Full Spec opts = { preset = \"helix\", defaults = {}, spec = { { mode = { \"n\", \"x\" }, { \"\", group = \"tabs\" }, { \"c\", group = \"code\" }, { \"d\", group = \"debug\" }, { \"dp\", group = \"profiler\" }, { \"f\", group = \"file/find\" }, { \"g\", group = \"git\" }, { \"gh\", group = \"hunks\" }, { \"q\", group = \"quit/session\" }, { \"s\", group = \"search\" }, { \"u\", group = \"ui\" }, { \"x\", group = \"diagnostics/quickfix\" }, { \"[\", group = \"prev\" }, { \"]\", group = \"next\" }, { \"g\", group = \"goto\" }, { \"gs\", group = \"surround\" }, { \"z\", group = \"fold\" }, { \"b\", group = \"buffer\", expand = function() return require(\"which-key.extras\").expand.buf() end, }, { \"w\", group = \"windows\", proxy = \"\", expand = function() return require(\"which-key.extras\").expand.win() end, }, -- better descriptions { \"gx\", desc = \"Open with system app\" }, }, }, } { \"folke/which-key.nvim\", event = \"VeryLazy\", opts_extend = { \"spec\" }, opts = { preset = \"helix\", defaults = {}, spec = { { mode = { \"n\", \"x\" }, { \"\", group = \"tabs\" }, { \"c\", group = \"code\" }, { \"d\", group = \"debug\" }, { \"dp\", group = \"profiler\" }, { \"f\", group = \"file/find\" }, { \"g\", group = \"git\" }, { \"gh\", group = \"hunks\" }, { \"q\", group = \"quit/session\" }, { \"s\", group = \"search\" }, { \"u\", group = \"ui\" }, { \"x\", group = \"diagnostics/quickfix\" }, { \"[\", group = \"prev\" }, { \"]\", group = \"next\" }, { \"g\", group = \"goto\" }, { \"gs\", group = \"surround\" }, { \"z\", group = \"fold\" }, { \"b\", group = \"buffer\", expand = function() return require(\"which-key.extras\").expand.buf() end, }, { \"w\", group = \"windows\", proxy = \"\", expand = function() return require(\"which-key.extras\").expand.win() end, }, -- better descriptions { \"gx\", desc = \"Open with system app\" }, }, }, }, keys = { { \"?\", function() require(\"which-key\").show({ global = false }) end, desc = \"Buffer Keymaps (which-key)\", }, { \"\", function() require(\"which-key\").show({ keys = \"\", loop = true }) end, desc = \"Window Hydra Mode (which-key)\", }, }, config = function(_, opts) local wk = require(\"which-key\") wk.setup(opts) if not vim.tbl_isempty(opts.defaults) then LazyVim.warn(\"which-key: opts.defaults is deprecated. Please use opts.spec instead.\") wk.register(opts.defaults) end end, }","s":"which-key.nvim","u":"/plugins/editor","h":"#which-keynvim","p":1381},{"i":1389,"t":"git signs highlights text that has changed since the list git commit, and also lets you interactively stage & unstage hunks in a commit. Options Full Spec opts = { signs = { add = { text = \"▎\" }, change = { text = \"▎\" }, delete = { text = \"\" }, topdelete = { text = \"\" }, changedelete = { text = \"▎\" }, untracked = { text = \"▎\" }, }, signs_staged = { add = { text = \"▎\" }, change = { text = \"▎\" }, delete = { text = \"\" }, topdelete = { text = \"\" }, changedelete = { text = \"▎\" }, }, on_attach = function(buffer) local gs = package.loaded.gitsigns local function map(mode, l, r, desc) vim.keymap.set(mode, l, r, { buffer = buffer, desc = desc, silent = true }) end -- stylua: ignore start map(\"n\", \"]h\", function() if vim.wo.diff then vim.cmd.normal({ \"]c\", bang = true }) else gs.nav_hunk(\"next\") end end, \"Next Hunk\") map(\"n\", \"[h\", function() if vim.wo.diff then vim.cmd.normal({ \"[c\", bang = true }) else gs.nav_hunk(\"prev\") end end, \"Prev Hunk\") map(\"n\", \"]H\", function() gs.nav_hunk(\"last\") end, \"Last Hunk\") map(\"n\", \"[H\", function() gs.nav_hunk(\"first\") end, \"First Hunk\") map({ \"n\", \"x\" }, \"ghs\", \":Gitsigns stage_hunk\", \"Stage Hunk\") map({ \"n\", \"x\" }, \"ghr\", \":Gitsigns reset_hunk\", \"Reset Hunk\") map(\"n\", \"ghS\", gs.stage_buffer, \"Stage Buffer\") map(\"n\", \"ghu\", gs.undo_stage_hunk, \"Undo Stage Hunk\") map(\"n\", \"ghR\", gs.reset_buffer, \"Reset Buffer\") map(\"n\", \"ghp\", gs.preview_hunk_inline, \"Preview Hunk Inline\") map(\"n\", \"ghb\", function() gs.blame_line({ full = true }) end, \"Blame Line\") map(\"n\", \"ghB\", function() gs.blame() end, \"Blame Buffer\") map(\"n\", \"ghd\", gs.diffthis, \"Diff This\") map(\"n\", \"ghD\", function() gs.diffthis(\"~\") end, \"Diff This ~\") map({ \"o\", \"x\" }, \"ih\", \":Gitsigns select_hunk\", \"GitSigns Select Hunk\") end, } { \"lewis6991/gitsigns.nvim\", event = \"LazyFile\", opts = { signs = { add = { text = \"▎\" }, change = { text = \"▎\" }, delete = { text = \"\" }, topdelete = { text = \"\" }, changedelete = { text = \"▎\" }, untracked = { text = \"▎\" }, }, signs_staged = { add = { text = \"▎\" }, change = { text = \"▎\" }, delete = { text = \"\" }, topdelete = { text = \"\" }, changedelete = { text = \"▎\" }, }, on_attach = function(buffer) local gs = package.loaded.gitsigns local function map(mode, l, r, desc) vim.keymap.set(mode, l, r, { buffer = buffer, desc = desc, silent = true }) end -- stylua: ignore start map(\"n\", \"]h\", function() if vim.wo.diff then vim.cmd.normal({ \"]c\", bang = true }) else gs.nav_hunk(\"next\") end end, \"Next Hunk\") map(\"n\", \"[h\", function() if vim.wo.diff then vim.cmd.normal({ \"[c\", bang = true }) else gs.nav_hunk(\"prev\") end end, \"Prev Hunk\") map(\"n\", \"]H\", function() gs.nav_hunk(\"last\") end, \"Last Hunk\") map(\"n\", \"[H\", function() gs.nav_hunk(\"first\") end, \"First Hunk\") map({ \"n\", \"x\" }, \"ghs\", \":Gitsigns stage_hunk\", \"Stage Hunk\") map({ \"n\", \"x\" }, \"ghr\", \":Gitsigns reset_hunk\", \"Reset Hunk\") map(\"n\", \"ghS\", gs.stage_buffer, \"Stage Buffer\") map(\"n\", \"ghu\", gs.undo_stage_hunk, \"Undo Stage Hunk\") map(\"n\", \"ghR\", gs.reset_buffer, \"Reset Buffer\") map(\"n\", \"ghp\", gs.preview_hunk_inline, \"Preview Hunk Inline\") map(\"n\", \"ghb\", function() gs.blame_line({ full = true }) end, \"Blame Line\") map(\"n\", \"ghB\", function() gs.blame() end, \"Blame Buffer\") map(\"n\", \"ghd\", gs.diffthis, \"Diff This\") map(\"n\", \"ghD\", function() gs.diffthis(\"~\") end, \"Diff This ~\") map({ \"o\", \"x\" }, \"ih\", \":Gitsigns select_hunk\", \"GitSigns Select Hunk\") end, }, }","s":"gitsigns.nvim","u":"/plugins/editor","h":"#gitsignsnvim","p":1381},{"i":1391,"t":"Options Full Spec opts = function() Snacks.toggle({ name = \"Git Signs\", get = function() return require(\"gitsigns.config\").config.signcolumn end, set = function(state) require(\"gitsigns\").toggle_signs(state) end, }):map(\"uG\") end { \"gitsigns.nvim\", opts = function() Snacks.toggle({ name = \"Git Signs\", get = function() return require(\"gitsigns.config\").config.signcolumn end, set = function(state) require(\"gitsigns\").toggle_signs(state) end, }):map(\"uG\") end, }","s":"gitsigns.nvim","u":"/plugins/editor","h":"#gitsignsnvim-1","p":1381},{"i":1393,"t":"better diagnostics list and others Options Full Spec opts = { modes = { lsp = { win = { position = \"right\" }, }, }, } { \"folke/trouble.nvim\", cmd = { \"Trouble\" }, opts = { modes = { lsp = { win = { position = \"right\" }, }, }, }, keys = { { \"xx\", \"Trouble diagnostics toggle\", desc = \"Diagnostics (Trouble)\" }, { \"xX\", \"Trouble diagnostics toggle filter.buf=0\", desc = \"Buffer Diagnostics (Trouble)\" }, { \"cs\", \"Trouble symbols toggle\", desc = \"Symbols (Trouble)\" }, { \"cS\", \"Trouble lsp toggle\", desc = \"LSP references/definitions/... (Trouble)\" }, { \"xL\", \"Trouble loclist toggle\", desc = \"Location List (Trouble)\" }, { \"xQ\", \"Trouble qflist toggle\", desc = \"Quickfix List (Trouble)\" }, { \"[q\", function() if require(\"trouble\").is_open() then require(\"trouble\").prev({ skip_groups = true, jump = true }) else local ok, err = pcall(vim.cmd.cprev) if not ok then vim.notify(err, vim.log.levels.ERROR) end end end, desc = \"Previous Trouble/Quickfix Item\", }, { \"]q\", function() if require(\"trouble\").is_open() then require(\"trouble\").next({ skip_groups = true, jump = true }) else local ok, err = pcall(vim.cmd.cnext) if not ok then vim.notify(err, vim.log.levels.ERROR) end end end, desc = \"Next Trouble/Quickfix Item\", }, }, }","s":"trouble.nvim","u":"/plugins/editor","h":"#troublenvim","p":1381},{"i":1395,"t":"Finds and lists all of the TODO, HACK, BUG, etc comment in your project and loads them into a browsable list. Options Full Spec opts = {} { \"folke/todo-comments.nvim\", cmd = { \"TodoTrouble\", \"TodoTelescope\" }, event = \"LazyFile\", opts = {}, -- stylua: ignore keys = { { \"]t\", function() require(\"todo-comments\").jump_next() end, desc = \"Next Todo Comment\" }, { \"[t\", function() require(\"todo-comments\").jump_prev() end, desc = \"Previous Todo Comment\" }, { \"xt\", \"Trouble todo toggle\", desc = \"Todo (Trouble)\" }, { \"xT\", \"Trouble todo toggle filter = {tag = {TODO,FIX,FIXME}}\", desc = \"Todo/Fix/Fixme (Trouble)\" }, { \"st\", \"TodoTelescope\", desc = \"Todo\" }, { \"sT\", \"TodoTelescope keywords=TODO,FIX,FIXME\", desc = \"Todo/Fix/Fixme\" }, }, }","s":"todo-comments.nvim","u":"/plugins/editor","h":"#todo-commentsnvim","p":1381},{"i":1397,"t":"Example for changing the colorscheme to Gruvbox: lua/plugins/colorscheme.lua return { -- add gruvbox { \"ellisonleao/gruvbox.nvim\" }, -- Configure LazyVim to load gruvbox { \"LazyVim/LazyVim\", opts = { colorscheme = \"gruvbox\", }, } }","s":"Colorscheme","u":"/plugins/colorscheme","h":"","p":1396},{"i":1399,"t":"tokyonight Options Full Spec opts = { style = \"moon\" } { \"folke/tokyonight.nvim\", lazy = true, opts = { style = \"moon\" }, }","s":"tokyonight.nvim","u":"/plugins/colorscheme","h":"#tokyonightnvim","p":1396},{"i":1401,"t":"catppuccin Options Full Spec opts = { lsp_styles = { underlines = { errors = { \"undercurl\" }, hints = { \"undercurl\" }, warnings = { \"undercurl\" }, information = { \"undercurl\" }, }, }, integrations = { aerial = true, alpha = true, cmp = true, dashboard = true, flash = true, fzf = true, grug_far = true, gitsigns = true, headlines = true, illuminate = true, indent_blankline = { enabled = true }, leap = true, lsp_trouble = true, mason = true, mini = true, navic = { enabled = true, custom_bg = \"lualine\" }, neotest = true, neotree = true, noice = true, notify = true, snacks = true, telescope = true, treesitter_context = true, which_key = true, }, } { \"catppuccin/nvim\", lazy = true, name = \"catppuccin\", opts = { lsp_styles = { underlines = { errors = { \"undercurl\" }, hints = { \"undercurl\" }, warnings = { \"undercurl\" }, information = { \"undercurl\" }, }, }, integrations = { aerial = true, alpha = true, cmp = true, dashboard = true, flash = true, fzf = true, grug_far = true, gitsigns = true, headlines = true, illuminate = true, indent_blankline = { enabled = true }, leap = true, lsp_trouble = true, mason = true, mini = true, navic = { enabled = true, custom_bg = \"lualine\" }, neotest = true, neotree = true, noice = true, notify = true, snacks = true, telescope = true, treesitter_context = true, which_key = true, }, }, specs = { { \"akinsho/bufferline.nvim\", optional = true, opts = function(_, opts) if (vim.g.colors_name or \"\"):find(\"catppuccin\") then opts.highlights = require(\"catppuccin.special.bufferline\").get_theme() end end, }, }, }","s":"catppuccin","u":"/plugins/colorscheme","h":"#catppuccin","p":1396},{"i":1403,"t":"Options Full Spec opts = function(_, opts) if (vim.g.colors_name or \"\"):find(\"catppuccin\") then opts.highlights = require(\"catppuccin.special.bufferline\").get_theme() end end { \"akinsho/bufferline.nvim\", optional = true, opts = function(_, opts) if (vim.g.colors_name or \"\"):find(\"catppuccin\") then opts.highlights = require(\"catppuccin.special.bufferline\").get_theme() end end, }","s":"bufferline.nvim (optional)","u":"/plugins/colorscheme","h":"#bufferlinenvim-optional","p":1396},{"i":1406,"t":"Treesitter is a new parser generator tool that we can use in Neovim to power faster and more accurate syntax highlighting. Options Full Spec opts = { -- LazyVim config for treesitter indent = { enable = true }, ---@type lazyvim.TSFeat highlight = { enable = true }, ---@type lazyvim.TSFeat folds = { enable = true }, ---@type lazyvim.TSFeat ensure_installed = { \"bash\", \"c\", \"diff\", \"html\", \"javascript\", \"jsdoc\", \"json\", \"jsonc\", \"lua\", \"luadoc\", \"luap\", \"markdown\", \"markdown_inline\", \"printf\", \"python\", \"query\", \"regex\", \"toml\", \"tsx\", \"typescript\", \"vim\", \"vimdoc\", \"xml\", \"yaml\", }, } { \"nvim-treesitter/nvim-treesitter\", branch = \"main\", version = false, -- last release is way too old and doesn't work on Windows build = function() local TS = require(\"nvim-treesitter\") if not TS.get_installed then LazyVim.error(\"Please restart Neovim and run `:TSUpdate` to use the `nvim-treesitter` **main** branch.\") return end -- make sure we're using the latest treesitter util package.loaded[\"lazyvim.util.treesitter\"] = nil LazyVim.treesitter.build(function() TS.update(nil, { summary = true }) end) end, event = { \"LazyFile\", \"VeryLazy\" }, cmd = { \"TSUpdate\", \"TSInstall\", \"TSLog\", \"TSUninstall\" }, opts_extend = { \"ensure_installed\" }, ---@alias lazyvim.TSFeat { enable?: boolean, disable?: string[] } ---@class lazyvim.TSConfig: TSConfig opts = { -- LazyVim config for treesitter indent = { enable = true }, ---@type lazyvim.TSFeat highlight = { enable = true }, ---@type lazyvim.TSFeat folds = { enable = true }, ---@type lazyvim.TSFeat ensure_installed = { \"bash\", \"c\", \"diff\", \"html\", \"javascript\", \"jsdoc\", \"json\", \"jsonc\", \"lua\", \"luadoc\", \"luap\", \"markdown\", \"markdown_inline\", \"printf\", \"python\", \"query\", \"regex\", \"toml\", \"tsx\", \"typescript\", \"vim\", \"vimdoc\", \"xml\", \"yaml\", }, }, ---@param opts lazyvim.TSConfig config = function(_, opts) local TS = require(\"nvim-treesitter\") setmetatable(require(\"nvim-treesitter.install\"), { __newindex = function(_, k) if k == \"compilers\" then vim.schedule(function() LazyVim.error({ \"Setting custom compilers for `nvim-treesitter` is no longer supported.\", \"\", \"For more info, see:\", \"- [compilers](https://docs.rs/cc/latest/cc/#compile-time-requirements)\", }) end) end end, }) -- some quick sanity checks if not TS.get_installed then return LazyVim.error(\"Please use `:Lazy` and update `nvim-treesitter`\") elseif type(opts.ensure_installed) ~= \"table\" then return LazyVim.error(\"`nvim-treesitter` opts.ensure_installed must be a table\") end -- setup treesitter TS.setup(opts) LazyVim.treesitter.get_installed(true) -- initialize the installed langs -- install missing parsers local install = vim.tbl_filter(function(lang) return not LazyVim.treesitter.have(lang) end, opts.ensure_installed or {}) if #install > 0 then LazyVim.treesitter.build(function() TS.install(install, { summary = true }):await(function() LazyVim.treesitter.get_installed(true) -- refresh the installed langs end) end) end vim.api.nvim_create_autocmd(\"FileType\", { group = vim.api.nvim_create_augroup(\"lazyvim_treesitter\", { clear = true }), callback = function(ev) local ft, lang = ev.match, vim.treesitter.language.get_lang(ev.match) if not LazyVim.treesitter.have(ft) then return end ---@param feat string ---@param query string local function enabled(feat, query) local f = opts[feat] or {} ---@type lazyvim.TSFeat return f.enable ~= false and not (type(f.disable) == \"table\" and vim.tbl_contains(f.disable, lang)) and LazyVim.treesitter.have(ft, query) end -- highlighting if enabled(\"highlight\", \"highlights\") then pcall(vim.treesitter.start, ev.buf) end -- indents if enabled(\"indent\", \"indents\") then LazyVim.set_default(\"indentexpr\", \"v:lua.LazyVim.treesitter.indentexpr()\") end -- folds if enabled(\"folds\", \"folds\") then if LazyVim.set_default(\"foldmethod\", \"expr\") then LazyVim.set_default(\"foldexpr\", \"v:lua.LazyVim.treesitter.foldexpr()\") end end end, }) end, }","s":"nvim-treesitter","u":"/plugins/treesitter","h":"#nvim-treesitter","p":1404},{"i":1408,"t":"Options Full Spec opts = { move = { enable = true, set_jumps = true, -- whether to set jumps in the jumplist -- LazyVim extention to create buffer-local keymaps keys = { goto_next_start = { [\"]f\"] = \"@function.outer\", [\"]c\"] = \"@class.outer\", [\"]a\"] = \"@parameter.inner\" }, goto_next_end = { [\"]F\"] = \"@function.outer\", [\"]C\"] = \"@class.outer\", [\"]A\"] = \"@parameter.inner\" }, goto_previous_start = { [\"[f\"] = \"@function.outer\", [\"[c\"] = \"@class.outer\", [\"[a\"] = \"@parameter.inner\" }, goto_previous_end = { [\"[F\"] = \"@function.outer\", [\"[C\"] = \"@class.outer\", [\"[A\"] = \"@parameter.inner\" }, }, }, } { \"nvim-treesitter/nvim-treesitter-textobjects\", branch = \"main\", event = \"VeryLazy\", opts = { move = { enable = true, set_jumps = true, -- whether to set jumps in the jumplist -- LazyVim extention to create buffer-local keymaps keys = { goto_next_start = { [\"]f\"] = \"@function.outer\", [\"]c\"] = \"@class.outer\", [\"]a\"] = \"@parameter.inner\" }, goto_next_end = { [\"]F\"] = \"@function.outer\", [\"]C\"] = \"@class.outer\", [\"]A\"] = \"@parameter.inner\" }, goto_previous_start = { [\"[f\"] = \"@function.outer\", [\"[c\"] = \"@class.outer\", [\"[a\"] = \"@parameter.inner\" }, goto_previous_end = { [\"[F\"] = \"@function.outer\", [\"[C\"] = \"@class.outer\", [\"[A\"] = \"@parameter.inner\" }, }, }, }, config = function(_, opts) local TS = require(\"nvim-treesitter-textobjects\") if not TS.setup then LazyVim.error(\"Please use `:Lazy` and update `nvim-treesitter`\") return end TS.setup(opts) local function attach(buf) local ft = vim.bo[buf].filetype if not (vim.tbl_get(opts, \"move\", \"enable\") and LazyVim.treesitter.have(ft, \"textobjects\")) then return end ---@type table> local moves = vim.tbl_get(opts, \"move\", \"keys\") or {} for method, keymaps in pairs(moves) do for key, query in pairs(keymaps) do local desc = query:gsub(\"@\", \"\"):gsub(\"%..*\", \"\") desc = desc:sub(1, 1):upper() .. desc:sub(2) desc = (key:sub(1, 1) == \"[\" and \"Prev \" or \"Next \") .. desc desc = desc .. (key:sub(2, 2) == key:sub(2, 2):upper() and \" End\" or \" Start\") if not (vim.wo.diff and key:find(\"[cC]\")) then vim.keymap.set({ \"n\", \"x\", \"o\" }, key, function() require(\"nvim-treesitter-textobjects.move\")[method](query, \"textobjects\") end, { buffer = buf, desc = desc, silent = true, }) end end end end vim.api.nvim_create_autocmd(\"FileType\", { group = vim.api.nvim_create_augroup(\"lazyvim_treesitter_textobjects\", { clear = true }), callback = function(ev) attach(ev.buf) end, }) vim.tbl_map(attach, vim.api.nvim_list_bufs()) end, }","s":"nvim-treesitter-textobjects","u":"/plugins/treesitter","h":"#nvim-treesitter-textobjects","p":1404},{"i":1410,"t":"Automatically add closing tags for HTML and JSX Options Full Spec opts = {} { \"windwp/nvim-ts-autotag\", event = \"LazyFile\", opts = {}, }","s":"nvim-ts-autotag","u":"/plugins/treesitter","h":"#nvim-ts-autotag","p":1404},{"i":1413,"t":"Snacks utils Options Full Spec opts = { bigfile = { enabled = true }, quickfile = { enabled = true }, terminal = { win = { keys = { nav_h = { \"\", term_nav(\"h\"), desc = \"Go to Left Window\", expr = true, mode = \"t\" }, nav_j = { \"\", term_nav(\"j\"), desc = \"Go to Lower Window\", expr = true, mode = \"t\" }, nav_k = { \"\", term_nav(\"k\"), desc = \"Go to Upper Window\", expr = true, mode = \"t\" }, nav_l = { \"\", term_nav(\"l\"), desc = \"Go to Right Window\", expr = true, mode = \"t\" }, hide_slash = { \"\", \"hide\", desc = \"Hide Terminal\", mode = { \"t\", \"n\" } }, hide_underscore = { \"\", \"hide\", desc = \"which_key_ignore\", mode = { \"t\", \"n\" } }, }, }, }, } { \"snacks.nvim\", opts = { bigfile = { enabled = true }, quickfile = { enabled = true }, terminal = { win = { keys = { nav_h = { \"\", term_nav(\"h\"), desc = \"Go to Left Window\", expr = true, mode = \"t\" }, nav_j = { \"\", term_nav(\"j\"), desc = \"Go to Lower Window\", expr = true, mode = \"t\" }, nav_k = { \"\", term_nav(\"k\"), desc = \"Go to Upper Window\", expr = true, mode = \"t\" }, nav_l = { \"\", term_nav(\"l\"), desc = \"Go to Right Window\", expr = true, mode = \"t\" }, hide_slash = { \"\", \"hide\", desc = \"Hide Terminal\", mode = { \"t\", \"n\" } }, hide_underscore = { \"\", \"hide\", desc = \"which_key_ignore\", mode = { \"t\", \"n\" } }, }, }, }, }, -- stylua: ignore keys = { { \".\", function() Snacks.scratch() end, desc = \"Toggle Scratch Buffer\" }, { \"S\", function() Snacks.scratch.select() end, desc = \"Select Scratch Buffer\" }, { \"dps\", function() Snacks.profiler.scratch() end, desc = \"Profiler Scratch Buffer\" }, }, }","s":"snacks.nvim","u":"/plugins/util","h":"#snacksnvim","p":1411},{"i":1415,"t":"Session management. This saves your session in the background, keeping track of open buffers, window arrangement, and more. You can restore sessions when returning through the dashboard. Options Full Spec opts = {} { \"folke/persistence.nvim\", event = \"BufReadPre\", opts = {}, -- stylua: ignore keys = { { \"qs\", function() require(\"persistence\").load() end, desc = \"Restore Session\" }, { \"qS\", function() require(\"persistence\").select() end,desc = \"Select Session\" }, { \"ql\", function() require(\"persistence\").load({ last = true }) end, desc = \"Restore Last Session\" }, { \"qd\", function() require(\"persistence\").stop() end, desc = \"Don't Save Current Session\" }, }, }","s":"persistence.nvim","u":"/plugins/util","h":"#persistencenvim","p":1411},{"i":1417,"t":"library used by other plugins Options Full Spec opts = nil { \"nvim-lua/plenary.nvim\", lazy = true }","s":"plenary.nvim","u":"/plugins/util","h":"#plenarynvim","p":1411},{"i":1420,"t":"The syntax for adding, deleting and changing LSP Keymaps, is the same as for plugin keymaps, but you need to configure it using the opts() method. -- LSP keymaps { \"neovim/nvim-lspconfig\", opts = function() local keys = require(\"lazyvim.plugins.lsp.keymaps\").get() -- change a keymap keys[#keys + 1] = { \"K\", \"echo 'hello'\" } -- disable a keymap keys[#keys + 1] = { \"K\", false } -- add a keymap keys[#keys + 1] = { \"H\", \"echo 'hello'\" } end, }","s":"⌨️ Customizing LSP Keymaps","u":"/plugins/lsp","h":"#️-customizing-lsp-keymaps","p":1418},{"i":1422,"t":"lspconfig Options Full Spec opts = function() ---@class PluginLspOpts local ret = { -- options for vim.diagnostic.config() ---@type vim.diagnostic.Opts diagnostics = { underline = true, update_in_insert = false, virtual_text = { spacing = 4, source = \"if_many\", prefix = \"●\", -- this will set set the prefix to a function that returns the diagnostics icon based on the severity -- prefix = \"icons\", }, severity_sort = true, signs = { text = { [vim.diagnostic.severity.ERROR] = LazyVim.config.icons.diagnostics.Error, [vim.diagnostic.severity.WARN] = LazyVim.config.icons.diagnostics.Warn, [vim.diagnostic.severity.HINT] = LazyVim.config.icons.diagnostics.Hint, [vim.diagnostic.severity.INFO] = LazyVim.config.icons.diagnostics.Info, }, }, }, -- Enable this to enable the builtin LSP inlay hints on Neovim. -- Be aware that you also will need to properly configure your LSP server to -- provide the inlay hints. inlay_hints = { enabled = true, exclude = { \"vue\" }, -- filetypes for which you don't want to enable inlay hints }, -- Enable this to enable the builtin LSP code lenses on Neovim. -- Be aware that you also will need to properly configure your LSP server to -- provide the code lenses. codelens = { enabled = false, }, -- Enable this to enable the builtin LSP folding on Neovim. -- Be aware that you also will need to properly configure your LSP server to -- provide the folds. folds = { enabled = true, }, -- add any global capabilities here capabilities = { workspace = { fileOperations = { didRename = true, willRename = true, }, }, }, -- options for vim.lsp.buf.format -- `bufnr` and `filter` is handled by the LazyVim formatter, -- but can be also overridden when specified format = { formatting_options = nil, timeout_ms = nil, }, -- LSP Server Settings ---@alias lazyvim.lsp.Config vim.lsp.Config|{mason?:boolean, enabled?:boolean} ---@type table servers = { stylua = { enabled = false }, lua_ls = { -- mason = false, -- set to false if you don't want this server to be installed with mason -- Use this to add any additional keymaps -- for specific lsp servers -- ---@type LazyKeysSpec[] -- keys = {}, settings = { Lua = { workspace = { checkThirdParty = false, }, codeLens = { enable = true, }, completion = { callSnippet = \"Replace\", }, doc = { privateName = { \"^_\" }, }, hint = { enable = true, setType = false, paramType = true, paramName = \"Disable\", semicolon = \"Disable\", arrayIndex = \"Disable\", }, }, }, }, }, -- you can do any additional lsp server setup here -- return true if you don't want this server to be setup with lspconfig ---@type table setup = { -- example to setup with typescript.nvim -- tsserver = function(_, opts) -- require(\"typescript\").setup({ server = opts }) -- return true -- end, -- Specify * to use this function as a fallback for any server -- [\"*\"] = function(server, opts) end, }, } return ret end { \"neovim/nvim-lspconfig\", event = \"LazyFile\", dependencies = { \"mason.nvim\", { \"mason-org/mason-lspconfig.nvim\", config = function() end }, }, opts = function() ---@class PluginLspOpts local ret = { -- options for vim.diagnostic.config() ---@type vim.diagnostic.Opts diagnostics = { underline = true, update_in_insert = false, virtual_text = { spacing = 4, source = \"if_many\", prefix = \"●\", -- this will set set the prefix to a function that returns the diagnostics icon based on the severity -- prefix = \"icons\", }, severity_sort = true, signs = { text = { [vim.diagnostic.severity.ERROR] = LazyVim.config.icons.diagnostics.Error, [vim.diagnostic.severity.WARN] = LazyVim.config.icons.diagnostics.Warn, [vim.diagnostic.severity.HINT] = LazyVim.config.icons.diagnostics.Hint, [vim.diagnostic.severity.INFO] = LazyVim.config.icons.diagnostics.Info, }, }, }, -- Enable this to enable the builtin LSP inlay hints on Neovim. -- Be aware that you also will need to properly configure your LSP server to -- provide the inlay hints. inlay_hints = { enabled = true, exclude = { \"vue\" }, -- filetypes for which you don't want to enable inlay hints }, -- Enable this to enable the builtin LSP code lenses on Neovim. -- Be aware that you also will need to properly configure your LSP server to -- provide the code lenses. codelens = { enabled = false, }, -- Enable this to enable the builtin LSP folding on Neovim. -- Be aware that you also will need to properly configure your LSP server to -- provide the folds. folds = { enabled = true, }, -- add any global capabilities here capabilities = { workspace = { fileOperations = { didRename = true, willRename = true, }, }, }, -- options for vim.lsp.buf.format -- `bufnr` and `filter` is handled by the LazyVim formatter, -- but can be also overridden when specified format = { formatting_options = nil, timeout_ms = nil, }, -- LSP Server Settings ---@alias lazyvim.lsp.Config vim.lsp.Config|{mason?:boolean, enabled?:boolean} ---@type table servers = { stylua = { enabled = false }, lua_ls = { -- mason = false, -- set to false if you don't want this server to be installed with mason -- Use this to add any additional keymaps -- for specific lsp servers -- ---@type LazyKeysSpec[] -- keys = {}, settings = { Lua = { workspace = { checkThirdParty = false, }, codeLens = { enable = true, }, completion = { callSnippet = \"Replace\", }, doc = { privateName = { \"^_\" }, }, hint = { enable = true, setType = false, paramType = true, paramName = \"Disable\", semicolon = \"Disable\", arrayIndex = \"Disable\", }, }, }, }, }, -- you can do any additional lsp server setup here -- return true if you don't want this server to be setup with lspconfig ---@type table setup = { -- example to setup with typescript.nvim -- tsserver = function(_, opts) -- require(\"typescript\").setup({ server = opts }) -- return true -- end, -- Specify * to use this function as a fallback for any server -- [\"*\"] = function(server, opts) end, }, } return ret end, ---@param opts PluginLspOpts config = vim.schedule_wrap(function(_, opts) -- setup autoformat LazyVim.format.register(LazyVim.lsp.formatter()) -- setup keymaps LazyVim.lsp.on_attach(function(client, buffer) require(\"lazyvim.plugins.lsp.keymaps\").on_attach(client, buffer) end) LazyVim.lsp.setup() LazyVim.lsp.on_dynamic_capability(require(\"lazyvim.plugins.lsp.keymaps\").on_attach) -- inlay hints if opts.inlay_hints.enabled then LazyVim.lsp.on_supports_method(\"textDocument/inlayHint\", function(client, buffer) if vim.api.nvim_buf_is_valid(buffer) and vim.bo[buffer].buftype == \"\" and not vim.tbl_contains(opts.inlay_hints.exclude, vim.bo[buffer].filetype) then vim.lsp.inlay_hint.enable(true, { bufnr = buffer }) end end) end -- folds if opts.folds.enabled then LazyVim.lsp.on_supports_method(\"textDocument/foldingRange\", function(client, buffer) if LazyVim.set_default(\"foldmethod\", \"expr\") then LazyVim.set_default(\"foldexpr\", \"v:lua.vim.lsp.foldexpr()\") end end) end -- code lens if opts.codelens.enabled and vim.lsp.codelens then LazyVim.lsp.on_supports_method(\"textDocument/codeLens\", function(client, buffer) vim.lsp.codelens.refresh() vim.api.nvim_create_autocmd({ \"BufEnter\", \"CursorHold\", \"InsertLeave\" }, { buffer = buffer, callback = vim.lsp.codelens.refresh, }) end) end -- diagnostics if type(opts.diagnostics.virtual_text) == \"table\" and opts.diagnostics.virtual_text.prefix == \"icons\" then opts.diagnostics.virtual_text.prefix = function(diagnostic) local icons = LazyVim.config.icons.diagnostics for d, icon in pairs(icons) do if diagnostic.severity == vim.diagnostic.severity[d:upper()] then return icon end end return \"●\" end end vim.diagnostic.config(vim.deepcopy(opts.diagnostics)) if opts.capabilities then vim.lsp.config(\"*\", { capabilities = opts.capabilities }) end -- get all the servers that are available through mason-lspconfig local have_mason = LazyVim.has(\"mason-lspconfig.nvim\") local mason_all = have_mason and vim.tbl_keys(require(\"mason-lspconfig.mappings\").get_mason_map().lspconfig_to_package) or {} --[[ @as string[] ]] local mason_exclude = {} ---@type string[] ---@return boolean? exclude automatic setup local function configure(server) local sopts = opts.servers[server] sopts = sopts == true and {} or (not sopts) and { enabled = false } or sopts --[[@as lazyvim.lsp.Config]] if sopts.enabled == false then mason_exclude[#mason_exclude + 1] = server return end local use_mason = sopts.mason ~= false and vim.tbl_contains(mason_all, server) local setup = opts.setup[server] or opts.setup[\"*\"] if setup and setup(server, sopts) then mason_exclude[#mason_exclude + 1] = server else vim.lsp.config(server, sopts) -- configure the server if not use_mason then vim.lsp.enable(server) end end return use_mason end local install = vim.tbl_filter(configure, vim.tbl_keys(opts.servers)) if have_mason then require(\"mason-lspconfig\").setup({ ensure_installed = vim.list_extend(install, LazyVim.opts(\"mason-lspconfig.nvim\").ensure_installed or {}), automatic_enable = { exclude = mason_exclude }, }) end end), }","s":"nvim-lspconfig","u":"/plugins/lsp","h":"#nvim-lspconfig","p":1418},{"i":1424,"t":"Options Full Spec opts = nil { \"mason.nvim\", { \"mason-org/mason-lspconfig.nvim\", config = function() end }, }","s":"mason.nvim","u":"/plugins/lsp","h":"#masonnvim","p":1418},{"i":1426,"t":"Options Full Spec opts = {} { \"mason-org/mason-lspconfig.nvim\", config = function() end }","s":"mason-lspconfig.nvim","u":"/plugins/lsp","h":"#mason-lspconfignvim","p":1418},{"i":1428,"t":"cmdline tools and lsp servers Options Full Spec opts = { ensure_installed = { \"stylua\", \"shfmt\", }, } { \"mason-org/mason.nvim\", cmd = \"Mason\", keys = { { \"cm\", \"Mason\", desc = \"Mason\" } }, build = \":MasonUpdate\", opts_extend = { \"ensure_installed\" }, opts = { ensure_installed = { \"stylua\", \"shfmt\", }, }, ---@param opts MasonSettings | {ensure_installed: string[]} config = function(_, opts) require(\"mason\").setup(opts) local mr = require(\"mason-registry\") mr:on(\"package:install:success\", function() vim.defer_fn(function() -- trigger FileType event to possibly load this newly installed LSP server require(\"lazy.core.handler.event\").trigger({ event = \"FileType\", buf = vim.api.nvim_get_current_buf(), }) end, 100) end) mr.refresh(function() for _, tool in ipairs(opts.ensure_installed) do local p = mr.get_package(tool) if not p:is_installed() then p:install() end end end) end, }","s":"mason.nvim","u":"/plugins/lsp","h":"#masonnvim-1","p":1418},{"i":1431,"t":"This is what powers LazyVim's fancy-looking tabs, which include filetype icons and close buttons. Options Full Spec opts = { options = { -- stylua: ignore close_command = function(n) Snacks.bufdelete(n) end, -- stylua: ignore right_mouse_command = function(n) Snacks.bufdelete(n) end, diagnostics = \"nvim_lsp\", always_show_bufferline = false, diagnostics_indicator = function(_, _, diag) local icons = LazyVim.config.icons.diagnostics local ret = (diag.error and icons.Error .. diag.error .. \" \" or \"\") .. (diag.warning and icons.Warn .. diag.warning or \"\") return vim.trim(ret) end, offsets = { { filetype = \"neo-tree\", text = \"Neo-tree\", highlight = \"Directory\", text_align = \"left\", }, { filetype = \"snacks_layout_box\", }, }, ---@param opts bufferline.IconFetcherOpts get_element_icon = function(opts) return LazyVim.config.icons.ft[opts.filetype] end, }, } { \"akinsho/bufferline.nvim\", event = \"VeryLazy\", keys = { { \"bp\", \"BufferLineTogglePin\", desc = \"Toggle Pin\" }, { \"bP\", \"BufferLineGroupClose ungrouped\", desc = \"Delete Non-Pinned Buffers\" }, { \"br\", \"BufferLineCloseRight\", desc = \"Delete Buffers to the Right\" }, { \"bl\", \"BufferLineCloseLeft\", desc = \"Delete Buffers to the Left\" }, { \"\", \"BufferLineCyclePrev\", desc = \"Prev Buffer\" }, { \"\", \"BufferLineCycleNext\", desc = \"Next Buffer\" }, { \"[b\", \"BufferLineCyclePrev\", desc = \"Prev Buffer\" }, { \"]b\", \"BufferLineCycleNext\", desc = \"Next Buffer\" }, { \"[B\", \"BufferLineMovePrev\", desc = \"Move buffer prev\" }, { \"]B\", \"BufferLineMoveNext\", desc = \"Move buffer next\" }, }, opts = { options = { -- stylua: ignore close_command = function(n) Snacks.bufdelete(n) end, -- stylua: ignore right_mouse_command = function(n) Snacks.bufdelete(n) end, diagnostics = \"nvim_lsp\", always_show_bufferline = false, diagnostics_indicator = function(_, _, diag) local icons = LazyVim.config.icons.diagnostics local ret = (diag.error and icons.Error .. diag.error .. \" \" or \"\") .. (diag.warning and icons.Warn .. diag.warning or \"\") return vim.trim(ret) end, offsets = { { filetype = \"neo-tree\", text = \"Neo-tree\", highlight = \"Directory\", text_align = \"left\", }, { filetype = \"snacks_layout_box\", }, }, ---@param opts bufferline.IconFetcherOpts get_element_icon = function(opts) return LazyVim.config.icons.ft[opts.filetype] end, }, }, config = function(_, opts) require(\"bufferline\").setup(opts) -- Fix bufferline when restoring a session vim.api.nvim_create_autocmd({ \"BufAdd\", \"BufDelete\" }, { callback = function() vim.schedule(function() pcall(nvim_bufferline) end) end, }) end, }","s":"bufferline.nvim","u":"/plugins/ui","h":"#bufferlinenvim","p":1429},{"i":1433,"t":"Displays a fancy status line with git status, LSP diagnostics, filetype information, and more. Options Full Spec opts = function() -- PERF: we don't need this lualine require madness 🤷 local lualine_require = require(\"lualine_require\") lualine_require.require = require local icons = LazyVim.config.icons vim.o.laststatus = vim.g.lualine_laststatus local opts = { options = { theme = \"auto\", globalstatus = vim.o.laststatus == 3, disabled_filetypes = { statusline = { \"dashboard\", \"alpha\", \"ministarter\", \"snacks_dashboard\" } }, }, sections = { lualine_a = { \"mode\" }, lualine_b = { \"branch\" }, lualine_c = { LazyVim.lualine.root_dir(), { \"diagnostics\", symbols = { error = icons.diagnostics.Error, warn = icons.diagnostics.Warn, info = icons.diagnostics.Info, hint = icons.diagnostics.Hint, }, }, { \"filetype\", icon_only = true, separator = \"\", padding = { left = 1, right = 0 } }, { LazyVim.lualine.pretty_path() }, }, lualine_x = { Snacks.profiler.status(), -- stylua: ignore { function() return require(\"noice\").api.status.command.get() end, cond = function() return package.loaded[\"noice\"] and require(\"noice\").api.status.command.has() end, color = function() return { fg = Snacks.util.color(\"Statement\") } end, }, -- stylua: ignore { function() return require(\"noice\").api.status.mode.get() end, cond = function() return package.loaded[\"noice\"] and require(\"noice\").api.status.mode.has() end, color = function() return { fg = Snacks.util.color(\"Constant\") } end, }, -- stylua: ignore { function() return \" \" .. require(\"dap\").status() end, cond = function() return package.loaded[\"dap\"] and require(\"dap\").status() ~= \"\" end, color = function() return { fg = Snacks.util.color(\"Debug\") } end, }, -- stylua: ignore { require(\"lazy.status\").updates, cond = require(\"lazy.status\").has_updates, color = function() return { fg = Snacks.util.color(\"Special\") } end, }, { \"diff\", symbols = { added = icons.git.added, modified = icons.git.modified, removed = icons.git.removed, }, source = function() local gitsigns = vim.b.gitsigns_status_dict if gitsigns then return { added = gitsigns.added, modified = gitsigns.changed, removed = gitsigns.removed, } end end, }, }, lualine_y = { { \"progress\", separator = \" \", padding = { left = 1, right = 0 } }, { \"location\", padding = { left = 0, right = 1 } }, }, lualine_z = { function() return \" \" .. os.date(\"%R\") end, }, }, extensions = { \"neo-tree\", \"lazy\", \"fzf\" }, } -- do not add trouble symbols if aerial is enabled -- And allow it to be overriden for some buffer types (see autocmds) if vim.g.trouble_lualine and LazyVim.has(\"trouble.nvim\") then local trouble = require(\"trouble\") local symbols = trouble.statusline({ mode = \"symbols\", groups = {}, title = false, filter = { range = true }, format = \"{kind_icon}{symbol.name:Normal}\", hl_group = \"lualine_c_normal\", }) table.insert(opts.sections.lualine_c, { symbols and symbols.get, cond = function() return vim.b.trouble_lualine ~= false and symbols.has() end, }) end return opts end { \"nvim-lualine/lualine.nvim\", event = \"VeryLazy\", init = function() vim.g.lualine_laststatus = vim.o.laststatus if vim.fn.argc(-1) > 0 then -- set an empty statusline till lualine loads vim.o.statusline = \" \" else -- hide the statusline on the starter page vim.o.laststatus = 0 end end, opts = function() -- PERF: we don't need this lualine require madness 🤷 local lualine_require = require(\"lualine_require\") lualine_require.require = require local icons = LazyVim.config.icons vim.o.laststatus = vim.g.lualine_laststatus local opts = { options = { theme = \"auto\", globalstatus = vim.o.laststatus == 3, disabled_filetypes = { statusline = { \"dashboard\", \"alpha\", \"ministarter\", \"snacks_dashboard\" } }, }, sections = { lualine_a = { \"mode\" }, lualine_b = { \"branch\" }, lualine_c = { LazyVim.lualine.root_dir(), { \"diagnostics\", symbols = { error = icons.diagnostics.Error, warn = icons.diagnostics.Warn, info = icons.diagnostics.Info, hint = icons.diagnostics.Hint, }, }, { \"filetype\", icon_only = true, separator = \"\", padding = { left = 1, right = 0 } }, { LazyVim.lualine.pretty_path() }, }, lualine_x = { Snacks.profiler.status(), -- stylua: ignore { function() return require(\"noice\").api.status.command.get() end, cond = function() return package.loaded[\"noice\"] and require(\"noice\").api.status.command.has() end, color = function() return { fg = Snacks.util.color(\"Statement\") } end, }, -- stylua: ignore { function() return require(\"noice\").api.status.mode.get() end, cond = function() return package.loaded[\"noice\"] and require(\"noice\").api.status.mode.has() end, color = function() return { fg = Snacks.util.color(\"Constant\") } end, }, -- stylua: ignore { function() return \" \" .. require(\"dap\").status() end, cond = function() return package.loaded[\"dap\"] and require(\"dap\").status() ~= \"\" end, color = function() return { fg = Snacks.util.color(\"Debug\") } end, }, -- stylua: ignore { require(\"lazy.status\").updates, cond = require(\"lazy.status\").has_updates, color = function() return { fg = Snacks.util.color(\"Special\") } end, }, { \"diff\", symbols = { added = icons.git.added, modified = icons.git.modified, removed = icons.git.removed, }, source = function() local gitsigns = vim.b.gitsigns_status_dict if gitsigns then return { added = gitsigns.added, modified = gitsigns.changed, removed = gitsigns.removed, } end end, }, }, lualine_y = { { \"progress\", separator = \" \", padding = { left = 1, right = 0 } }, { \"location\", padding = { left = 0, right = 1 } }, }, lualine_z = { function() return \" \" .. os.date(\"%R\") end, }, }, extensions = { \"neo-tree\", \"lazy\", \"fzf\" }, } -- do not add trouble symbols if aerial is enabled -- And allow it to be overriden for some buffer types (see autocmds) if vim.g.trouble_lualine and LazyVim.has(\"trouble.nvim\") then local trouble = require(\"trouble\") local symbols = trouble.statusline({ mode = \"symbols\", groups = {}, title = false, filter = { range = true }, format = \"{kind_icon}{symbol.name:Normal}\", hl_group = \"lualine_c_normal\", }) table.insert(opts.sections.lualine_c, { symbols and symbols.get, cond = function() return vim.b.trouble_lualine ~= false and symbols.has() end, }) end return opts end, }","s":"lualine.nvim","u":"/plugins/ui","h":"#lualinenvim","p":1429},{"i":1435,"t":"Highly experimental plugin that completely replaces the UI for messages, cmdline and the popupmenu. Options Full Spec opts = { lsp = { override = { [\"vim.lsp.util.convert_input_to_markdown_lines\"] = true, [\"vim.lsp.util.stylize_markdown\"] = true, [\"cmp.entry.get_documentation\"] = true, }, }, routes = { { filter = { event = \"msg_show\", any = { { find = \"%d+L, %d+B\" }, { find = \"; after #%d+\" }, { find = \"; before #%d+\" }, }, }, view = \"mini\", }, }, presets = { bottom_search = true, command_palette = true, long_message_to_split = true, }, } { \"folke/noice.nvim\", event = \"VeryLazy\", opts = { lsp = { override = { [\"vim.lsp.util.convert_input_to_markdown_lines\"] = true, [\"vim.lsp.util.stylize_markdown\"] = true, [\"cmp.entry.get_documentation\"] = true, }, }, routes = { { filter = { event = \"msg_show\", any = { { find = \"%d+L, %d+B\" }, { find = \"; after #%d+\" }, { find = \"; before #%d+\" }, }, }, view = \"mini\", }, }, presets = { bottom_search = true, command_palette = true, long_message_to_split = true, }, }, -- stylua: ignore keys = { { \"sn\", \"\", desc = \"+noice\"}, { \"\", function() require(\"noice\").redirect(vim.fn.getcmdline()) end, mode = \"c\", desc = \"Redirect Cmdline\" }, { \"snl\", function() require(\"noice\").cmd(\"last\") end, desc = \"Noice Last Message\" }, { \"snh\", function() require(\"noice\").cmd(\"history\") end, desc = \"Noice History\" }, { \"sna\", function() require(\"noice\").cmd(\"all\") end, desc = \"Noice All\" }, { \"snd\", function() require(\"noice\").cmd(\"dismiss\") end, desc = \"Dismiss All\" }, { \"snt\", function() require(\"noice\").cmd(\"pick\") end, desc = \"Noice Picker (Telescope/FzfLua)\" }, { \"\", function() if not require(\"noice.lsp\").scroll(4) then return \"\" end end, silent = true, expr = true, desc = \"Scroll Forward\", mode = {\"i\", \"n\", \"s\"} }, { \"\", function() if not require(\"noice.lsp\").scroll(-4) then return \"\" end end, silent = true, expr = true, desc = \"Scroll Backward\", mode = {\"i\", \"n\", \"s\"}}, }, config = function(_, opts) -- HACK: noice shows messages from before it was enabled, -- but this is not ideal when Lazy is installing plugins, -- so clear the messages in this case. if vim.o.filetype == \"lazy\" then vim.cmd([[messages clear]]) end require(\"noice\").setup(opts) end, }","s":"noice.nvim","u":"/plugins/ui","h":"#noicenvim","p":1429},{"i":1437,"t":"icons Options Full Spec opts = { file = { [\".keep\"] = { glyph = \"󰊢\", hl = \"MiniIconsGrey\" }, [\"devcontainer.json\"] = { glyph = \"\", hl = \"MiniIconsAzure\" }, }, filetype = { dotenv = { glyph = \"\", hl = \"MiniIconsYellow\" }, }, } { \"nvim-mini/mini.icons\", lazy = true, opts = { file = { [\".keep\"] = { glyph = \"󰊢\", hl = \"MiniIconsGrey\" }, [\"devcontainer.json\"] = { glyph = \"\", hl = \"MiniIconsAzure\" }, }, filetype = { dotenv = { glyph = \"\", hl = \"MiniIconsYellow\" }, }, }, init = function() package.preload[\"nvim-web-devicons\"] = function() require(\"mini.icons\").mock_nvim_web_devicons() return package.loaded[\"nvim-web-devicons\"] end end, }","s":"mini.icons","u":"/plugins/ui","h":"#miniicons","p":1429},{"i":1439,"t":"ui components Options Full Spec opts = nil { \"MunifTanjim/nui.nvim\", lazy = true }","s":"nui.nvim","u":"/plugins/ui","h":"#nuinvim","p":1429},{"i":1441,"t":"Options Full Spec opts = { indent = { enabled = true }, input = { enabled = true }, notifier = { enabled = true }, scope = { enabled = true }, scroll = { enabled = true }, statuscolumn = { enabled = false }, -- we set this in options.lua toggle = { map = LazyVim.safe_keymap_set }, words = { enabled = true }, } { \"snacks.nvim\", opts = { indent = { enabled = true }, input = { enabled = true }, notifier = { enabled = true }, scope = { enabled = true }, scroll = { enabled = true }, statuscolumn = { enabled = false }, -- we set this in options.lua toggle = { map = LazyVim.safe_keymap_set }, words = { enabled = true }, }, -- stylua: ignore keys = { { \"n\", function() if Snacks.config.picker and Snacks.config.picker.enabled then Snacks.picker.notifications() else Snacks.notifier.show_history() end end, desc = \"Notification History\" }, { \"un\", function() Snacks.notifier.hide() end, desc = \"Dismiss All Notifications\" }, }, }","s":"snacks.nvim","u":"/plugins/ui","h":"#snacksnvim","p":1429},{"i":1443,"t":"Options Full Spec opts = { dashboard = { preset = { pick = function(cmd, opts) return LazyVim.pick(cmd, opts)() end, header = [[ ██╗ █████╗ ███████╗██╗ ██╗██╗ ██╗██╗███╗ ███╗ Z ██║ ██╔══██╗╚══███╔╝╚██╗ ██╔╝██║ ██║██║████╗ ████║ Z ██║ ███████║ ███╔╝ ╚████╔╝ ██║ ██║██║██╔████╔██║ z ██║ ██╔══██║ ███╔╝ ╚██╔╝ ╚██╗ ██╔╝██║██║╚██╔╝██║ z ███████╗██║ ██║███████╗ ██║ ╚████╔╝ ██║██║ ╚═╝ ██║ ╚══════╝╚═╝ ╚═╝╚══════╝ ╚═╝ ╚═══╝ ╚═╝╚═╝ ╚═╝ ]], -- stylua: ignore ---@type snacks.dashboard.Item[] keys = { { icon = \" \", key = \"f\", desc = \"Find File\", action = \":lua Snacks.dashboard.pick('files')\" }, { icon = \" \", key = \"n\", desc = \"New File\", action = \":ene | startinsert\" }, { icon = \" \", key = \"g\", desc = \"Find Text\", action = \":lua Snacks.dashboard.pick('live_grep')\" }, { icon = \" \", key = \"r\", desc = \"Recent Files\", action = \":lua Snacks.dashboard.pick('oldfiles')\" }, { icon = \" \", key = \"c\", desc = \"Config\", action = \":lua Snacks.dashboard.pick('files', {cwd = vim.fn.stdpath('config')})\" }, { icon = \" \", key = \"s\", desc = \"Restore Session\", section = \"session\" }, { icon = \" \", key = \"x\", desc = \"Lazy Extras\", action = \":LazyExtras\" }, { icon = \"󰒲 \", key = \"l\", desc = \"Lazy\", action = \":Lazy\" }, { icon = \" \", key = \"q\", desc = \"Quit\", action = \":qa\" }, }, }, }, } { \"snacks.nvim\", opts = { dashboard = { preset = { pick = function(cmd, opts) return LazyVim.pick(cmd, opts)() end, header = [[ ██╗ █████╗ ███████╗██╗ ██╗██╗ ██╗██╗███╗ ███╗ Z ██║ ██╔══██╗╚══███╔╝╚██╗ ██╔╝██║ ██║██║████╗ ████║ Z ██║ ███████║ ███╔╝ ╚████╔╝ ██║ ██║██║██╔████╔██║ z ██║ ██╔══██║ ███╔╝ ╚██╔╝ ╚██╗ ██╔╝██║██║╚██╔╝██║ z ███████╗██║ ██║███████╗ ██║ ╚████╔╝ ██║██║ ╚═╝ ██║ ╚══════╝╚═╝ ╚═╝╚══════╝ ╚═╝ ╚═══╝ ╚═╝╚═╝ ╚═╝ ]], -- stylua: ignore ---@type snacks.dashboard.Item[] keys = { { icon = \" \", key = \"f\", desc = \"Find File\", action = \":lua Snacks.dashboard.pick('files')\" }, { icon = \" \", key = \"n\", desc = \"New File\", action = \":ene | startinsert\" }, { icon = \" \", key = \"g\", desc = \"Find Text\", action = \":lua Snacks.dashboard.pick('live_grep')\" }, { icon = \" \", key = \"r\", desc = \"Recent Files\", action = \":lua Snacks.dashboard.pick('oldfiles')\" }, { icon = \" \", key = \"c\", desc = \"Config\", action = \":lua Snacks.dashboard.pick('files', {cwd = vim.fn.stdpath('config')})\" }, { icon = \" \", key = \"s\", desc = \"Restore Session\", section = \"session\" }, { icon = \" \", key = \"x\", desc = \"Lazy Extras\", action = \":LazyExtras\" }, { icon = \"󰒲 \", key = \"l\", desc = \"Lazy\", action = \":Lazy\" }, { icon = \" \", key = \"q\", desc = \"Quit\", action = \":qa\" }, }, }, }, }, }","s":"snacks.nvim","u":"/plugins/ui","h":"#snacksnvim-1","p":1429}],"index":{"version":"2.3.9","fields":["t"],"fieldVectors":[["t/2",[0,4.337,1,5.225,2,4.652,3,8.235,4,0.454,5,6.691,6,5.104,7,9.546,8,5.357,9,6.863,10,2.036]],["t/4",[1,4.55,4,0.573,5,5.826,8,4.665,9,5.976,10,1.773,11,8.313,12,0.541,13,8.313,14,8.313,15,7.171,16,8.313,17,8.313,18,8.313,19,2.087,20,1.961,21,0.201,22,5.691,23,4.129,24,7.625,25,8.313,26,1.937,27,7.625,28,2.035,29,7.171,30,3.378]],["t/6",[1,3.521,4,0.544,21,0.24,31,5.549,32,2.412,33,4.904,34,6.432,35,3.292,36,6.432,37,5.899,38,5.549,39,4.721,40,5.549,41,6.432,42,8.729,43,4.904,44,3.164,45,4.904,46,3.998,47,5.549,48,5.078,49,2.946,50,5.287,51,1.575,52,2.528,53,4.142,54,1.769,55,5.287,56,4.067,57,3.759,58,5.287,59,6.265,60,3.259,61,6.432,62,6.432,63,4.754,64,5.899,65,1.746,66,2.243,67,5.549,68,4.222,69,1.045,70,4.067,71,5.899,72,5.899,73,9.167,74,11.108,75,6.432,76,5.125,77,6.432,78,6.432,79,6.432]],["t/8",[0,4.112,80,9.051,81,7.809,82,9.051,83,6.064,84,9.051,85,9.051,86,5.941,87,9.051,88,9.051,89,5.626,90,9.051,91,6.691,92,9.051,93,7.809,94,6.344,95,9.051,96,8.302]],["t/11",[4,0.619,5,4.605,8,3.687,10,1.889,20,1.55,26,2.334,28,1.608,32,1.815,53,5.702,60,3.329,66,3.492,97,6.546,98,5.33,99,4.398,100,6.026,101,4.605,102,1.807,103,3.955,104,4.723,105,5.668,106,5.504,107,6.546,108,5.009,109,2.398,110,0.41,111,6.026,112,5.668,113,6.026,114,5.668,115,5.401,116,5.009,117,6.026,118,6.026,119,5.668]],["t/13",[0,3.994,4,0.608,21,0.213,26,2.048,28,2.152,44,4.324,120,6.872,121,5.559,122,8.063,123,2.746,124,7.226,125,0.528,126,6.702]],["t/15",[0,1.886,1,1.341,2,1.194,4,0.631,19,1.356,20,0.578,21,0.059,22,1.677,23,1.217,26,0.571,28,0.6,30,1.686,35,1.254,44,2.041,54,0.674,60,1.241,66,0.854,69,1.033,70,1.549,99,3.157,109,0.894,119,2.113,120,3.477,126,1.867,127,2.624,128,1.72,129,1.968,130,2.449,131,2.449,132,0.429,133,2.247,134,2.247,135,2.247,136,2.449,137,2.449,138,1.677,139,1.474,140,1.151,141,2.449,142,1.934,143,2.3,144,0.555,145,2.449,146,0.732,147,2.425,148,2.113,149,1.934,150,2.013,151,1.761,152,1.811,153,2.449,154,2.449,155,1.803,156,2.449,157,2.113,158,1.104,159,1.934,160,1.267,161,1.761,162,2.247,163,2.247,164,2.113,165,2.449,166,2.449,167,2.247,168,2.449,169,1.31,170,1.677,171,1.717,172,1.811,173,0.699,174,1.522,175,1.934,176,2.537,177,1.811,178,2.113,179,1.934,180,3.545,181,2.113,182,3.807,183,2.113,184,2.247,185,5.4,186,1.577,187,5.4,188,2.449,189,0.975,190,4.658,191,2.113,192,4.953,193,0.573,194,2.113,195,3.882,196,3.882,197,4.953,198,2.013,199,1.717,200,2.013,201,2.449,202,4.699,203,4.438,204,0.695,205,1.431,206,5.4,207,1.867,208,1.811,209,1.393,210,2.449,211,2.113,212,2.013,213,1.934,214,1.811,215,2.449,216,2.449,217,4.15,218,1.431,219,1.474,220,1.717,221,2.113,222,1.498,223,1.717,224,1.325,225,2.247,226,2.449,227,1.934]],["t/17",[0,2.538,2,3.641,4,0.62,5,1.416,8,1.134,9,1.452,10,0.996,19,1.403,21,0.113,23,1.747,26,1.844,28,0.861,30,2.573,51,1.702,52,2.732,54,0.967,60,1.024,65,0.548,66,2.423,69,0.759,97,1.493,98,2.811,99,2.775,102,0.556,106,1.256,109,3.26,110,0.292,120,1.301,121,1.278,123,2.171,124,1.661,125,0.641,128,1.68,129,2.215,132,1.513,139,2.117,140,0.949,142,1.595,143,1.949,144,0.458,147,3.265,155,0.674,180,2.309,189,1.401,193,0.473,202,1.493,212,1.661,214,1.493,218,1.181,220,1.416,228,1.383,229,0.894,230,2.02,231,3.008,232,4.284,233,1.853,234,2.117,235,2.681,236,2.777,237,1.853,238,1.853,239,2.366,240,4.029,241,1.198,242,1.391,243,1.493,244,1.181,245,1.54,246,1.523,247,1.198,248,0.81,249,1.181,250,2.777,251,1.416,252,2.158,253,1.653,254,1.416,255,1.853,256,1.119,257,1.853,258,1.535,259,2.02,260,1.853,261,2.02,262,2.02,263,2.02,264,2.02,265,1.853,266,1.034,267,3.687,268,3.052,269,1.373,270,3.034,271,3.517,272,2.582,273,1.219,274,1.994,275,3.825,276,4.284,277,3.265,278,2.02,279,2.02,280,2.02,281,1.181,282,2.02,283,2.724,284,1.54,285,0.65,286,1.54,287,2.02,288,1.54,289,3.667,290,1.54,291,1.595,292,2.02,293,1.416,294,1.119,295,0.882,296,1.853,297,2.02,298,1.853,299,1.452,300,1.743,301,3.274,302,0.587,303,1.493,304,2.681,305,2.02,306,1.661,307,1.524,308,1.715,309,1.853,310,1.595,311,1.54,312,2.6,313,1.853,314,1.256,315,1.595,316,1.853,317,4.029,318,1.452,319,1.54,320,1.743,321,1.198,322,0.556,323,2.085,324,1.743,325,1.743,326,0.994,327,1.54,328,2.408,329,1.819,330,1.661,331,1.301,332,1.853,333,1.54,334,2.02,335,1.54,336,1.853,337,1.743,338,1.743,339,1.661,340,2.02,341,1.353,342,2.02,343,1.853,344,1.743,345,2.02]],["t/19",[0,3.624,1,2.697,2,1.467,4,0.611,5,4.385,8,2.765,19,1.815,20,1.162,26,2.647,27,2.761,28,1.206,30,2.938,35,2.523,38,4.251,39,3.384,53,1.939,69,1.016,93,4.251,98,1.812,99,3.107,104,2.164,109,1.799,110,0.308,120,1.939,122,2.761,123,0.94,124,4.051,132,0.864,139,1.812,140,1.415,144,0.682,151,4.498,155,2.663,193,0.704,220,2.11,231,1.939,266,1.541,273,2.235,289,4.747,302,0.875,323,2.922,325,2.597,326,0.851,335,2.295,346,2.761,347,6.053,348,7.801,349,7.231,350,5.417,351,3.01,352,0.891,353,3.757,354,5.398,355,3.643,356,3.301,357,4.52,358,4.928,359,3.454,360,3.757,361,6.257,362,4.251,363,3.01,364,3.01,365,2.225,366,2.761,367,1.793,368,4.928,369,2.761,370,3.01,371,3.01,372,3.01,373,4.928,374,3.01,375,3.643,376,3.01,377,3.01,378,3.01,379,3.01,380,3.01,381,2.597,382,3.01,383,3.01,384,3.01,385,3.01,386,2.597,387,3.01,388,3.01,389,3.01,390,3.01,391,3.01,392,3.01,393,3.02,394,3.01,395,2.761,396,3.01,397,2.597,398,3.01,399,2.295,400,2.597,401,2.597,402,3.01,403,3.01,404,3.235,405,4.029,406,3.01,407,3.543,408,2.597,409,4.928,410,3.01,411,3.01,412,3.01,413,3.01,414,3.01,415,3.01,416,3.01,417,3.01,418,3.01]],["t/21",[0,3.91,5,7.383,10,1.836,12,0.56,26,2.764,28,2.579,30,3.497,110,0.537,152,6.361,204,2.443,302,2.501,404,5.649,419,7.893,420,5.442,421,7.073,422,6.561,423,6.186,424,7.893,425,6.361,426,7.424]],["t/23",[2,3.272,4,0.604,21,0.162,26,2.519,54,1.847,66,3.77,83,4.498,97,4.963,109,3.279,110,0.561,111,6.159,123,2.097,125,0.404,128,2.172,139,4.041,148,5.793,174,5.585,191,5.793,193,1.571,227,5.301,258,2.206,427,6.159,428,4.827,429,6.715,430,6.159,431,6.715,432,5.519,433,6.715,434,4.918,435,6.85,436,6.715,437,5.519,438,3.242,439,6.715,440,4.597,441,6.715,442,5.301,443,6.159,444,4.041]],["t/25",[4,0.587,26,2.109,109,3.304,110,0.565,123,2.827,140,5.104,144,2.05,155,3.022,234,5.448,235,6.901,445,7.809,446,9.051,447,9.051]],["t/27",[4,0.593,6,2.917,8,6.104,9,7.521,10,1.164,19,2.484,23,3.866,30,2.217,69,0.886,109,1.991,110,0.34,123,2.431,125,0.7,128,1.319,132,0.956,143,3.023,147,4.548,158,3.508,189,3.94,193,1.821,203,4.485,212,7.459,220,3.824,224,4.21,231,3.513,234,3.284,235,4.159,236,7.164,237,5.004,238,5.004,239,3.944,240,7.828,241,3.235,242,3.914,243,4.033,244,3.188,245,4.159,246,1.487,247,3.235,248,2.187,277,4.548,322,2.878,438,3.758,448,4.707,449,2.085]],["t/29",[4,0.609,6,2.484,19,1.738,20,1.633,23,5.74,26,1.928,30,2.813,51,1.695,63,3.435,65,2.246,66,3.419,102,1.278,109,2.527,123,3.212,128,1.674,132,1.213,139,2.797,140,4.609,143,3.837,147,2.715,152,5.118,155,2.763,174,2.888,193,2.145,220,3.257,231,2.992,249,2.715,250,3.669,251,4.853,254,3.257,255,4.262,256,2.575,257,4.262,258,2.719,277,2.715,285,1.496,304,3.543,352,1.376,428,4.978,448,4.009,450,3.82,451,4.647,452,4.647,453,4.262,454,4.262,455,6.924,456,2.939,457,5.279,458,5.279,459,6.924,460,2.992,461,4.647,462,2.937,463,3.182,464,4.647,465,4.009,466,3.435,467,2.354,468,2.147,469,2.939,470,4.262,471,2.755,472,2.642]],["t/31",[0,4.174,6,4.912,23,4.563,28,2.249,139,5.53,140,4.318,231,5.916,460,5.916,472,5.223,473,5.447,474,7.253,475,7.004,476,7.552,477,6.29,478,8.427,479,8.427]],["t/33",[0,4.27,19,2.36,23,5.873,28,2.301,66,3.277,353,7.166,480,6.435,481,7.166,482,8.621,483,5.747,484,8.621]],["t/35",[4,0.454,23,5.568,26,2.612,28,2.337,53,6.147,106,5.933,140,4.486,173,2.723,174,5.933]],["t/37",[8,5.234,19,2.342,23,5.492,53,6.006,106,5.798,173,2.661,174,5.798,272,3.466,283,4.012,295,4.829,485,6.249,486,5.234]],["t/39",[4,0.619,21,0.178,23,3.656,66,2.567,109,2.687,125,0.442,193,2.233,258,3.137,268,2.838,269,2.875,272,3.547,275,5.04,286,5.612,288,5.612,289,4.832,291,5.812,293,5.16,295,4.169,473,4.365,487,7.362,488,7.362,489,5.442,490,7.362,491,7.362,492,7.362,493,7.362]],["t/41",[0,4.477,229,2.506,273,2.571,449,2.639,475,7.512,494,9.854,495,2.811]],["t/44",[4,0.603,51,2.035,109,3.034,125,0.674,132,1.457,231,5.353,239,5.68,240,9.671,241,4.928,242,3.289,243,6.145,244,4.858,245,6.337,246,2.266,247,4.928,248,3.332]],["t/46",[4,0.607,30,2.197,57,3.16,69,0.878,123,1.689,125,0.543,128,1.307,132,2.001,205,3.16,239,3.919,241,3.206,244,3.16,245,4.123,246,1.474,266,2.768,299,5.56,323,3.206,367,2.588,467,4.575,471,3.206,496,5.927,497,5.408,498,7.734,499,7.734,500,5.408,501,5.003,502,7.094,503,5.408,504,5.408,505,4.477,506,5.408,507,5.408,508,1.64,509,4.445,510,7.094,511,4.96,512,7.734,513,7.094,514,5.408,515,4.445,516,2.74,517,4.96,518,4.96,519,4.269,520,5.408,521,6.329,522,7.734,523,6.672,524,5.077,525,5.408,526,5.408,527,5.408,528,5.408]],["t/48",[4,0.618,65,2.226,109,2.993,125,0.493,471,4.862,472,4.663,483,5.014,529,8.201,530,7.075,531,7.075,532,8.821,533,7.075,534,4.436,535,7.075,536,7.075,537,7.075,538,7.075]],["t/50",[4,0.616,69,1.449,125,0.536,426,7.695,539,8.181,540,11.564,541,7.331,542,8.181]],["t/52",[2,4.253,4,0.617,125,0.639,132,1.529,246,2.38,268,3.365,269,3.408,543,8.006,544,8.728,545,7.53,546,7.174]],["t/54",[2,3.917,4,0.594,10,1.715,66,2.803,109,2.934,144,2.287,198,6.608,229,2.044,289,6.629,326,2.272,356,5.386,366,7.374,547,5.169,548,6.629,549,6.347,550,8.301,551,7.374,552,5.277,553,5.504,554,4.766,555,4.633,556,8.039,557,8.039]],["t/56",[2,3.327,4,0.612,6,3.65,26,1.591,30,2.774,69,1.109,89,4.243,98,4.109,109,2.492,125,0.41,128,1.651,132,1.789,155,2.279,170,4.674,198,5.612,268,2.632,269,2.666,272,2.537,275,4.674,289,4.481,460,4.396,521,4.785,548,6.703,550,9.581,552,4.481,553,4.674,555,3.934,558,3.737,559,3.783,560,5.205,561,6.262,562,6.827,563,7.838,564,9.085]],["t/58",[10,1.81,19,2.622,20,2.463,21,0.205,26,2.433,28,2.077,32,2.345,54,2.334,65,2.303,102,2.334,144,1.922,146,2.537,173,2.421,204,2.409,229,2.158,273,2.214,302,2.466,322,2.334,326,2.398,352,2.513,449,2.273,495,2.421,565,2.466,566,2.454]],["t/60",[4,0.582,12,0.616,21,0.229,69,1.539,110,0.591,125,0.569,393,4.573,508,2.873,567,8.688]],["t/62",[4,0.624,6,2.23,12,0.271,21,0.101,66,1.454,110,0.26,125,0.384,143,2.311,155,2.588,161,2.999,186,4.109,189,1.661,193,0.976,258,3.702,266,2.135,329,2.158,420,2.638,438,2.014,473,4.595,516,3.927,568,6.382,569,4.473,570,6.382,571,6.382,572,4.171,573,3.826,574,3.599,575,4.171,576,4.171,577,4.171,578,4.171,579,4.171,580,4.171,581,4.171,582,4.171,583,4.171,584,4.171,585,4.171,586,4.171,587,4.171,588,4.171,589,4.171,590,4.171,591,4.171,592,2.999,593,4.171,594,3.599,595,8.895,596,3.429,597,4.171,598,4.717,599,4.588,600,4.171,601,2.924,602,3.18,603,4.171,604,3.293,605,3.826,606,4.171,607,2.473,608,3.826,609,4.171,610,3.826,611,3.826,612,4.171,613,3.18,614,4.171,615,3.083,616,3.429,617,4.171,618,3.083,619,4.171,620,3.429,621,4.171,622,1.895]],["t/64",[4,0.564,12,0.616,21,0.229,110,0.591,125,0.569,239,4.799,508,2.873,595,7.478,623,8.688,624,8.688]],["t/66",[4,0.622,12,0.416,19,2.184,20,2.051,21,0.21,39,3.461,69,1.801,76,4.499,103,5.235,110,0.399,125,0.523,155,3.54,189,2.548,329,3.31,356,5.827,625,6.398,626,5.52,627,8.697,628,8.697,629,8.697,630,8.697,631,6.631,632,8.697,633,6.398,634,6.398]],["t/68",[4,0.619,6,4.109,12,0.5,20,1.813,21,0.237,69,1.248,110,0.48,125,0.59,158,3.464,218,6.319,303,5.681,460,4.949,595,8.537,635,4.557,636,7.686,637,9.815,638,6.63,639,6.317]],["t/70",[4,0.627,12,0.408,19,2.153,21,0.207,56,3.963,69,1.018,110,0.535,125,0.515,196,6.165,239,4.953,248,3.438,473,5.084,595,9.488,623,5.748,624,5.748,640,5.417,641,6.267,642,7.049,643,4.291]],["t/72",[10,1.81,19,2.622,20,2.463,21,0.205,26,2.433,28,2.077,32,2.345,54,2.334,65,2.303,102,2.334,144,1.922,146,2.537,173,2.421,204,2.409,229,2.158,273,2.214,302,2.466,322,2.334,326,2.398,352,2.513,449,2.273,495,2.421,565,2.466,566,2.454]],["t/74",[4,0.624,12,0.338,21,0.126,46,3.232,66,1.813,109,2.745,110,0.325,125,0.452,158,2.344,193,1.217,258,3.842,283,2.237,285,1.674,462,2.408,486,2.918,592,3.739,596,6.181,599,6.351,602,3.965,604,4.106,616,4.275,622,2.363,644,5.201,645,3.645,646,4.756,647,5.201,648,9.419,649,5.201,650,7.52,651,4.486,652,3.844,653,5.201,654,4.77,655,4.77,656,5.201,657,3.844,658,5.201,659,3.844,660,5.201,661,5.201,662,3.645,663,5.201,664,5.401,665,4.275,666,5.201,667,3.739,668,4.275,669,5.201,670,4.77]],["t/76",[0,3.924,4,0.617,10,1.842,19,1.59,20,1.493,21,0.153,22,4.335,23,3.145,24,5.808,26,1.475,32,1.75,60,3.208,66,3.681,97,6.384,98,5.198,99,4.881,100,5.808,101,4.438,102,1.742,103,5.198,104,6.209,105,7.45,112,5.463,113,7.921,114,7.45,115,7.099,116,6.584,117,5.808,118,5.808,119,5.463,138,4.335,393,3.057,671,8.636,672,6.332,673,6.332]],["t/78",[0,2.396,2,0.907,4,0.61,5,1.304,6,0.995,8,1.044,19,1.324,20,1.686,21,0.16,28,0.455,30,3.087,35,1.675,39,1.77,49,1.499,51,0.455,54,0.512,56,1.176,57,3.082,58,3.601,59,1.176,60,1.658,66,1.141,68,1.221,69,1.775,70,1.176,76,2.266,89,1.156,98,3.987,99,1.625,101,1.304,102,0.512,109,0.679,125,0.112,128,0.791,135,1.706,138,2.241,140,2.478,143,1.813,144,1.361,147,1.087,155,2.211,171,1.304,175,1.469,178,1.605,186,1.198,193,0.435,199,3.696,209,1.86,218,1.087,219,1.12,223,2.294,234,1.12,239,0.943,248,0.746,249,1.087,253,2.059,256,1.813,266,0.952,272,0.691,277,1.912,283,1.884,294,1.813,295,2.303,326,0.526,331,1.198,353,2.495,357,3.002,367,0.533,386,1.605,395,1.706,422,1.418,428,2.353,434,1.018,444,1.12,449,0.498,460,1.198,462,1.689,480,2.999,486,2.959,495,0.933,496,2.876,501,3.96,515,1.529,534,1.006,547,0.952,552,1.221,553,2.241,559,1.031,560,1.418,574,1.605,640,1.031,645,1.304,664,1.138,674,1.156,675,1.86,676,1.86,677,1.86,678,1.86,679,3.987,680,1.706,681,2.069,682,2.419,683,1.706,684,2.107,685,1.529,686,1.86,687,1.304,688,1.375,689,1.337,690,1.886,691,1.138,692,3.002,693,3.002,694,1.706,695,1.77,696,1.418,697,1.469,698,1.706,699,1.706,700,1.86,701,1.706,702,1.86,703,1.86,704,1.86,705,2.583,706,1.469,707,1.706,708,3.174,709,1.103,710,1.706,711,1.529,712,1.86,713,1.86,714,1.86,715,3.002,716,1.86,717,1.86,718,1.86,719,1.86,720,1.706,721,1.86,722,1.86,723,1.529,724,1.86,725,1.86,726,1.86,727,2.821,728,1.86,729,1.706,730,1.86,731,1.706,732,3.272,733,1.86,734,1.86,735,1.86,736,2.294,737,1.86,738,1.86,739,1.86,740,2.495,741,1.86,742,1.86,743,1.86,744,1.86,745,1.86,746,3.616,747,1.86,748,1.86,749,1.86,750,1.86,751,1.86,752,1.86,753,1.86,754,1.86,755,1.86,756,1.706,757,1.86,758,1.86,759,2.294,760,1.86,761,1.86,762,1.246,763,1.418,764,1.86,765,1.529,766,1.86,767,1.198,768,2.69,769,1.86,770,2.69,771,1.86,772,1.706,773,1.86,774,1.86,775,1.605,776,1.86,777,1.706,778,1.86,779,1.529,780,1.86,781,3.002,782,2.823,783,1.86,784,1.86,785,1.86,786,1.86,787,1.605,788,1.86,789,1.86,790,1.86,791,1.274,792,2.419,793,1.86,794,1.86,795,1.86,796,1.86,797,1.86,798,1.86,799,1.86,800,1.86,801,1.605,802,1.86,803,1.337,804,1.86,805,1.86,806,1.86,807,1.418,808,1.86,809,1.86,810,1.706,811,1.706,812,1.86,813,1.86,814,1.86,815,1.86,816,1.469,817,1.86,818,1.86,819,1.469,820,1.86,821,2.583,822,1.86,823,1.706,824,1.86,825,1.86,826,1.86,827,1.86,828,1.605,829,1.86,830,1.86,831,1.706,832,3.002,833,1.86,834,1.469,835,1.605,836,2.69,837,1.86,838,1.86,839,1.86,840,1.86,841,1.418,842,1.86,843,1.706,844,1.86,845,2.495,846,1.605,847,1.246,848,1.221,849,1.274,850,1.86,851,1.86,852,1.86,853,1.469,854,1.86,855,1.246,856,1.86,857,1.86]],["t/80",[0,0.756,4,0.62,8,0.497,10,0.189,19,0.418,20,0.209,21,0.021,23,1.745,30,1.205,35,2.052,45,1.793,46,0.551,49,3.896,54,0.244,66,1.398,68,1.946,69,1.381,76,3.593,86,0.582,97,0.655,98,1.002,99,0.827,109,1.082,123,0.52,128,1.913,132,1.555,134,0.813,143,1.303,151,0.637,155,0.296,161,0.637,169,1.585,170,2.03,171,2.078,189,0.353,193,0.389,199,0.621,205,0.518,248,1.607,250,1.314,252,0.409,253,0.417,256,2.697,258,3.777,266,3.169,277,0.518,283,2.402,284,0.676,285,2.372,294,0.491,304,0.676,322,0.816,326,0.47,329,0.459,353,0.676,365,0.655,367,0.85,393,0.803,405,1.072,407,0.637,444,1.416,456,1.487,467,1.78,468,2.248,472,3.174,477,0.607,482,0.813,483,1.813,486,0.497,496,3.195,501,1.303,505,1.069,508,0.269,519,0.7,534,0.479,542,1.526,553,1.139,559,0.922,566,0.256,607,0.526,615,1.23,622,0.403,635,2.643,657,1.23,664,1.017,690,1.355,691,1.438,709,0.987,727,1.072,746,0.534,770,0.729,772,0.813,787,0.765,803,1.196,828,0.765,834,0.7,847,0.594,848,4.064,855,1.115,858,0.886,859,0.813,860,1.526,861,1.196,862,0.886,863,3.52,864,2.965,865,1.664,866,2.987,867,4.039,868,2.078,869,2.926,870,1.526,871,1.664,872,0.886,873,10.021,874,1.002,875,0.886,876,1.758,877,1.052,878,3.846,879,0.886,880,0.886,881,0.729,882,1.115,883,0.886,884,2.029,885,0.886,886,1.664,887,2.965,888,1.436,889,1.368,890,1.436,891,1.664,892,1.664,893,0.886,894,1.664,895,0.886,896,3.514,897,1.664,898,0.886,899,0.886,900,1.664,901,1.664,902,0.886,903,0.886,904,1.664,905,3.025,906,1.664,907,3.019,908,1.139,909,0.813,910,1.664,911,1.436,912,0.886,913,0.813,914,0.886,915,0.886,916,1.875,917,2.805,918,1.526,919,1.436,920,0.886,921,0.765,922,1.526,923,1.436,924,0.765,925,0.886,926,0.813,927,0.886,928,0.886,929,0.886,930,0.886,931,1.664,932,3.057,933,2.965,934,2.965,935,1.664,936,0.813,937,2.352,938,0.886,939,1.526,940,0.765,941,0.886,942,0.886,943,1.664,944,1.691,945,1.436,946,1.664,947,1.664,948,1.526,949,0.886,950,0.813,951,0.886,952,0.729,953,2.719,954,2.341,955,0.886,956,2.965,957,0.886,958,0.886,959,1.526,960,1.526,961,1.986,962,0.729,963,0.886,964,0.886,965,0.886,966,1.166,967,0.886,968,1.166,969,0.886,970,0.729,971,0.886,972,0.886,973,0.886,974,2.157,975,0.886,976,0.886,977,0.886,978,0.765,979,0.886,980,1.23,981,2.352,982,2.352,983,1.368,984,0.886,985,0.886,986,0.886,987,0.765,988,0.886,989,0.886,990,0.886,991,0.886,992,0.886,993,0.886,994,0.886,995,0.886,996,1.664,997,0.813,998,0.765,999,0.886,1000,0.886,1001,1.664,1002,0.813,1003,0.813,1004,0.886,1005,0.886,1006,0.886,1007,1.526,1008,0.729,1009,0.886,1010,0.886,1011,0.886,1012,0.886,1013,0.886,1014,0.886,1015,0.886,1016,0.886,1017,0.886,1018,0.886,1019,1.436,1020,1.664,1021,1.664,1022,1.23,1023,1.664,1024,1.368,1025,1.436,1026,0.886,1027,0.729,1028,0.765,1029,0.886,1030,1.664,1031,0.835,1032,0.886,1033,0.676,1034,0.886,1035,0.813,1036,0.765,1037,1.269,1038,0.813,1039,0.886,1040,1.526,1041,0.886,1042,1.368,1043,0.729,1044,0.886,1045,0.886,1046,1.526,1047,0.886,1048,1.526,1049,0.765,1050,2.352,1051,1.933,1052,1.664,1053,0.886,1054,0.765,1055,0.813,1056,1.196,1057,0.813,1058,0.813,1059,0.886,1060,0.886,1061,0.886,1062,0.813,1063,0.886,1064,0.511,1065,0.813,1066,0.886,1067,0.987,1068,0.813,1069,0.886,1070,0.813,1071,0.886,1072,1.436,1073,0.886,1074,0.813,1075,0.886,1076,0.886]],["t/82",[4,0.615,6,1.408,8,1.478,19,1.429,20,0.621,22,4.56,32,0.728,54,0.725,66,2.797,69,1.303,76,1.363,83,1.765,98,2.656,99,2.191,109,0.961,123,1.778,128,2.06,132,1.889,133,2.416,147,1.539,155,1.473,176,1.611,189,1.049,209,2.508,218,1.539,219,1.585,224,3.079,228,1.804,248,1.769,258,0.866,266,2.914,283,2.449,290,2.008,294,1.46,312,3.261,329,1.363,338,2.272,339,2.165,353,2.008,365,1.947,367,2.442,404,2.896,407,1.894,449,1.182,476,3.627,524,1.729,534,1.425,552,1.729,553,1.804,565,1.282,679,3.427,687,1.846,691,1.611,695,3.602,759,1.846,770,2.165,859,2.416,868,1.846,876,1.562,884,3.806,916,1.666,966,3.092,987,2.272,1027,2.165,1031,2.213,1037,2.008,1056,1.894,1064,1.518,1067,2.616,1077,2.416,1078,2.634,1079,5.482,1080,5.687,1081,2.08,1082,2.634,1083,2.272,1084,2.634,1085,2.634,1086,2.634,1087,2.634,1088,2.634,1089,2.634,1090,2.634,1091,2.634,1092,4.966,1093,2.634,1094,2.416,1095,2.634,1096,2.165,1097,2.634,1098,2.634,1099,2.634,1100,2.634,1101,2.634,1102,2.634,1103,4.412,1104,2.634,1105,2.634,1106,2.634,1107,2.634,1108,2.634,1109,2.634,1110,2.634,1111,5.077,1112,1.846,1113,4.047,1114,1.894,1115,5.693,1116,2.634,1117,2.272,1118,4.412,1119,2.634,1120,4.412,1121,2.634,1122,4.412,1123,2.634,1124,3.99,1125,2.634,1126,2.634,1127,2.416,1128,2.416,1129,2.08,1130,2.08,1131,2.165,1132,2.634,1133,3.375,1134,3.364,1135,1.947,1136,2.008,1137,2.165,1138,2.416,1139,2.416,1140,2.634,1141,4.412,1142,2.634,1143,2.634,1144,2.634,1145,3.261,1146,2.634,1147,2.634,1148,2.634,1149,2.008,1150,2.634,1151,2.634,1152,2.634,1153,2.634,1154,2.634,1155,2.634,1156,2.634,1157,2.634,1158,2.634,1159,2.634,1160,2.634,1161,2.634,1162,2.634,1163,1.729]],["t/85",[30,4.244,32,2.587,35,3.658,49,4.29,66,3.265,89,4.442,102,1.966,109,2.608,128,1.728,139,5.636,283,5.175,323,4.237,359,5.009,397,6.165,456,4.519,469,4.519,483,5.725,560,5.448,835,6.165,849,4.893,874,4.301,876,4.237,882,4.788,911,6.165,1031,3.584,1067,5.552,1164,5.448,1165,5.874,1166,5.448,1167,4.519,1168,5.138,1169,6.555,1170,6.732,1171,8.078,1172,5.642,1173,5.448,1174,6.555,1175,6.555]],["t/87",[4,0.597,20,1.848,60,5.033,66,2.731,128,1.894,132,1.373,139,4.715,140,4.669,144,1.774,147,4.577,155,3.317,224,4.237,283,4.693,695,4.237,1077,7.185,1079,5.79,1092,4.188,1176,10.007,1177,7.833,1178,9.112,1179,7.833,1180,7.185,1181,7.833]],["t/89",[10,1.81,19,2.622,20,2.463,21,0.205,26,2.433,28,2.077,32,2.345,54,2.334,65,2.303,102,2.334,144,1.922,146,2.537,173,2.421,204,2.409,229,2.158,273,2.214,302,2.466,322,2.334,326,2.398,352,2.513,449,2.273,495,2.421,565,2.466,566,2.454]],["t/91",[4,0.625,12,0.394,21,0.146,51,2.049,56,5.293,110,0.378,125,0.503,144,1.895,155,2.794,181,8.279,189,2.409,239,4.241,420,3.826,438,2.921,667,6.017,689,7.445,905,5.202,907,4.284,1182,8.37,1183,7.221,1184,8.37,1185,6.381,1186,7.895,1187,5.549,1188,4.776,1189,5.549]],["t/93",[4,0.577,12,0.516,21,0.192,69,1.627,109,2.896,110,0.495,123,3.128,125,0.602,128,2.787,132,2.127,1187,7.278,1190,6.264,1191,3.941,1192,8.233,1193,10.016,1194,8.641,1195,10.016]],["t/95",[4,0.569,12,0.631,21,0.234,110,0.605,125,0.583,508,2.941,1196,8.366]],["t/97",[4,0.567,12,0.626,21,0.233,110,0.6,125,0.578,508,2.918,1196,8.3,1197,6.446]],["t/99",[4,0.614,12,0.465,21,0.226,69,1.161,110,0.446,125,0.666,132,1.641,181,9.01,239,4.744,241,4.237,242,2.827,246,2.553,247,5.552,248,3.754,505,5.035,640,3.96,1196,6.165,1198,8.078,1199,6.563,1200,6.273]],["t/101",[4,0.585,12,0.545,21,0.25,51,2.049,69,1.36,110,0.522,125,0.706,132,1.815,189,3.333,246,2.823,328,5.73,329,4.329,330,8.512,727,6.668,1201,10.355]],["t/103",[10,1.81,19,2.622,20,2.463,21,0.205,26,2.433,28,2.077,32,2.345,54,2.334,65,2.303,102,2.334,144,1.922,146,2.537,173,2.421,204,2.409,229,2.158,273,2.214,302,2.466,322,2.334,326,2.398,352,2.513,449,2.273,495,2.421,565,2.466,566,2.454]],["t/105",[4,0.627,12,0.329,21,0.122,23,3.656,51,1.802,56,4.655,69,1.721,110,0.315,125,0.442,144,2.162,155,3.187,186,5.594,189,2.011,218,4.302,219,4.431,224,3.982,239,3.73,420,3.194,438,2.438,667,5.292,688,5.442,689,6.863,905,4.576,907,3.768,1135,5.442,1185,5.613,1186,7.278,1189,4.632,1202,7.362,1203,7.362,1204,4.632,1205,4.357]],["t/107",[4,0.621,12,0.476,21,0.177,89,5.911,110,0.457,125,0.572,144,2.154,155,3.175,186,7.465,268,2.821,269,2.858,272,4.307,295,4.153,1206,4.338,1207,9.509]],["t/109",[4,0.577,12,0.516,21,0.192,69,1.627,109,2.896,110,0.495,123,3.128,125,0.602,128,2.787,132,2.127,1190,6.264,1191,3.941,1192,8.233,1194,8.641,1204,7.278,1208,10.016,1209,10.016]],["t/111",[4,0.612,12,0.367,21,0.192,51,1.379,69,0.915,110,0.351,123,2.486,125,0.603,128,1.925,132,1.926,170,5.451,171,5.58,186,5.127,189,2.243,246,2.17,248,3.191,266,5.137,328,3.856,329,2.913,331,3.627,367,2.876,727,5.127,1210,7.302,1211,6.868,1212,7.302,1213,7.923,1214,7.961,1215,7.302,1216,5.58,1217,7.215,1218,7.961,1219,7.961,1220,7.302,1221,6.285]],["t/113",[10,1.81,19,2.622,20,2.463,21,0.205,26,2.433,28,2.077,32,2.345,54,2.334,65,2.303,102,2.334,144,1.922,146,2.537,173,2.421,204,2.409,229,2.158,273,2.214,302,2.466,322,2.334,326,2.398,352,2.513,449,2.273,495,2.421,565,2.466,566,2.454]],["t/115",[4,0.627,10,0.699,12,0.213,21,0.079,49,1.501,69,1.077,76,2.731,110,0.204,123,2.374,125,0.398,128,2.265,132,1.81,155,1.762,158,1.477,186,4.895,193,0.767,246,0.893,258,2.928,285,2.683,341,5.093,367,1.9,438,1.582,462,2.67,467,1.66,468,3.851,592,2.356,598,6.162,599,2.356,613,2.498,622,1.489,631,7.875,645,2.297,657,2.422,695,1.772,855,3.537,878,2.827,916,2.072,1092,1.752,1191,1.627,1222,5.279,1223,5.279,1224,4.554,1225,5.279,1226,5.279,1227,4.168,1228,5.279,1229,4.842,1230,3.277,1231,3.277,1232,2.422,1233,2.297,1234,7.191,1235,2.693,1236,5.054,1237,3.277,1238,3.005,1239,3.277,1240,3.005,1241,2.827,1242,4.025,1243,3.277,1244,2.356,1245,3.277,1246,3.277,1247,3.277,1248,3.005,1249,3.277,1250,3.277,1251,3.277]],["t/117",[4,0.62,12,0.437,21,0.217,69,1.091,110,0.419,125,0.65,132,1.574,158,4.049,186,6.963,246,2.45,547,3.437,598,7.993,801,7.751,855,6.019,1252,4.706,1253,8.537,1254,7.093,1255,5.898,1256,8.241,1257,5.119]],["t/119",[4,0.623,12,0.406,21,0.207,56,3.943,69,1.013,110,0.389,123,2.669,125,0.514,128,2.066,129,2.956,132,1.497,144,1.935,186,5.503,196,4.482,449,2.289,473,5.066,547,3.192,598,6.317,640,5.812,642,5.125,643,4.269,836,7.024,1234,7.372,1258,6.413,1259,8.545,1260,7.838,1261,5.719]],["t/121",[10,1.81,19,2.622,20,2.463,21,0.205,26,2.433,28,2.077,32,2.345,54,2.334,65,2.303,102,2.334,144,1.922,146,2.537,173,2.421,204,2.409,229,2.158,273,2.214,302,2.466,322,2.334,326,2.398,352,2.513,449,2.273,495,2.421,565,2.466,566,2.454]],["t/123",[4,0.623,12,0.428,21,0.159,23,4.398,51,2.452,56,5.6,110,0.41,125,0.532,189,2.616,207,5.009,239,4.486,438,3.172,508,2.685,689,6.366,1185,6.751,1188,5.187,1262,8.855,1263,8.855,1264,8.855,1265,8.122,1266,8.855,1267,7.639,1268,6.026,1269,6.57,1270,6.57]],["t/125",[4,0.588,12,0.447,21,0.166,51,1.681,69,1.481,109,2.506,110,0.428,123,2.848,125,0.548,128,2.638,132,2.12,207,5.234,367,2.613,524,5.986,688,6.741,1190,5.42,1191,3.41,1192,7.496,1194,7.867,1268,6.297,1271,10.91,1272,9.119,1273,9.119,1274,9.119,1275,9.119,1276,9.119]],["t/127",[4,0.567,12,0.626,21,0.233,51,2.355,110,0.6,125,0.578,207,7.335,508,2.918]],["t/129",[4,0.566,12,0.621,21,0.231,51,2.337,110,0.596,125,0.574,207,7.278,508,2.895,1197,6.395]],["t/131",[4,0.613,12,0.454,21,0.223,51,1.71,69,1.134,110,0.436,125,0.66,132,1.925,207,7.873,239,4.672,241,4.14,242,2.763,246,2.514,247,5.468,248,3.697,505,4.99,547,3.574,689,6.63,1198,7.956,1199,6.464,1200,6.178]],["t/133",[21,0.233,26,2.242,28,2.355,144,2.179,173,2.744,229,2.447,273,2.51,449,2.577,495,2.744,565,2.796]],["t/135",[4,0.38,10,1.704,19,2.525,20,2.372,21,0.193,26,1.861,28,1.955,32,2.207,39,4.32,54,2.197,57,5.877,65,2.168,66,2.785,102,2.766,146,3.006,155,2.666,204,2.268,229,2.031,294,4.426,302,2.321,322,2.197,326,2.257,352,2.365,566,2.31,674,6.251,687,5.598,689,5.742,1277,6.89,1278,7.987,1279,7.326]],["t/137",[2,2.629,4,0.624,12,0.219,21,0.081,30,2.192,110,0.21,123,2.412,125,0.324,128,2.38,132,2.036,170,5.287,186,6.853,193,1.262,252,2.493,253,2.536,258,2.538,268,1.298,269,1.315,272,2.509,285,2.486,462,2.473,463,3.694,505,3.509,524,3.542,601,3.782,667,3.879,687,3.782,688,6.666,828,6.662,905,3.354,907,3.953,954,4.26,1186,5.887,1192,4.435,1206,1.996,1220,4.949,1221,4.26,1280,7.722,1281,5.396,1282,5.396,1283,4.949,1284,5.396,1285,4.26,1286,5.396,1287,5.396,1288,4.655,1289,3.989,1290,5.396,1291,5.396,1292,5.396,1293,5.396,1294,4.655,1295,5.396,1296,3.879]],["t/139",[4,0.606,12,0.408,21,0.207,51,1.534,69,1.018,110,0.391,123,3.283,125,0.632,128,2.073,132,1.992,186,5.522,189,2.496,246,2.338,248,3.438,266,5.38,328,4.291,329,3.242,331,4.036,367,2.457,508,2.601,727,5.522,1210,7.866,1211,7.398,1212,7.866,1213,8.298,1215,7.866,1216,6.01,1283,7.866,1297,8.575]],["t/141",[10,1.81,19,2.622,20,2.463,21,0.205,26,2.433,28,2.077,32,2.345,54,2.334,65,2.303,102,2.334,144,1.922,146,2.537,173,2.421,204,2.409,229,2.158,273,2.214,302,2.466,322,2.334,326,2.398,352,2.513,449,2.273,495,2.421,565,2.466,566,2.454]],["t/143",[4,0.608,12,0.449,21,0.167,110,0.431,125,0.657,129,4.34,132,1.916,144,2.073,155,3.056,186,4.446,246,2.495,268,2.662,269,2.696,272,2.565,367,2.623,1206,4.093,1298,9.153,1299,9.153,1300,9.153,1301,9.153,1302,8.396,1303,10.934,1304,10.934]],["t/145",[4,0.622,12,0.235,21,0.087,30,1.469,48,5.588,49,1.656,66,1.991,69,1.306,110,0.226,123,1.784,125,0.343,128,2.67,132,1.988,193,0.846,222,2.211,252,1.67,253,1.699,258,3.416,273,1.49,285,2.818,341,2.422,367,1.637,462,3.12,463,2.476,468,3.714,496,3.749,516,4.435,592,2.6,599,4.106,601,4.003,602,2.757,613,2.757,620,2.972,622,2.595,645,2.534,646,2.287,659,5.232,667,4.106,668,2.972,687,4.003,688,4.221,849,2.476,867,2.476,907,2.923,1236,2.757,1302,6.492,1305,5.711,1306,5.711,1307,5.711,1308,5.711,1309,5.711,1310,3.616,1311,3.119,1312,3.119,1313,5.711,1314,6.492,1315,2.374,1316,5.711,1317,3.616,1318,3.119,1319,2.211,1320,7.078,1321,7.078,1322,3.317,1323,3.616]],["t/147",[4,0.625,12,0.214,21,0.128,44,2.608,51,0.806,69,0.535,70,4.822,110,0.206,123,3.365,125,0.458,128,2.605,132,1.945,162,6.995,167,4.863,170,3.63,171,3.716,189,1.312,246,1.446,266,2.714,328,2.256,329,1.704,330,6.268,331,2.121,367,2.965,463,3.63,505,3.465,508,1.608,727,5.751,1217,7.287,1324,5.302,1325,5.302,1326,5.302,1327,5.302,1328,8.931,1329,7.626,1330,7.626,1331,6.268,1332,3.812,1333,5.302,1334,6.579,1335,5.302,1336,7.626,1337,4.863]],["t/149",[4,0.63,12,0.39,21,0.201,69,0.973,110,0.374,123,2.596,125,0.5,128,2.01,132,1.457,193,1.945,285,2.676,462,2.662,684,5.353,1191,4.129,1244,5.976,1338,10.312,1339,8.313,1340,5.569,1341,3.932]],["t/151",[10,1.81,19,2.622,20,2.463,21,0.205,26,2.433,28,2.077,32,2.345,54,2.334,65,2.303,102,2.334,144,1.922,146,2.537,173,2.421,204,2.409,229,2.158,273,2.214,302,2.466,322,2.334,326,2.398,352,2.513,449,2.273,495,2.421,565,2.466,566,2.454]],["t/153",[4,0.618,12,0.507,21,0.263,51,1.905,110,0.486,123,3.09,125,0.595,128,2.392,132,1.734,189,3.1,329,4.026,1342,9.894,1343,9.894,1344,9.894,1345,7.783]],["t/155",[4,0.612,12,0.556,21,0.207,69,1.388,110,0.533,125,0.63,155,3.502,393,4.125,792,6.317,1346,10.489,1347,8.545,1348,5.989,1349,7.372]],["t/157",[10,1.81,19,2.622,20,2.463,21,0.205,26,2.433,28,2.077,32,2.345,54,2.334,65,2.303,102,2.334,144,1.922,146,2.537,173,2.421,204,2.409,229,2.158,273,2.214,302,2.466,322,2.334,326,2.398,352,2.513,449,2.273,495,2.421,565,2.466,566,2.454]],["t/159",[4,0.619,6,3.551,10,1.417,12,0.432,21,0.216,69,1.636,109,2.424,110,0.414,125,0.536,128,1.606,132,1.164,149,5.243,205,5.212,242,2.627,381,5.73,393,3.206,420,5.64,508,2.014,607,5.288,1258,4.061,1350,5.243,1351,8.92,1352,8.92,1353,5.459,1354,5.459,1355,6.642,1356,5.459,1357,6.642,1358,5.73,1359,6.642,1360,4.775,1361,8.181,1362,5.73]],["t/161",[4,0.611,10,1.849,12,0.564,21,0.209,110,0.541,125,0.521,128,2.095,132,1.519,205,6.182,1258,5.299,1360,6.23,1361,9.704,1362,7.476]],["t/163",[4,0.575,12,0.447,21,0.166,69,1.772,109,2.506,110,0.428,123,3.407,125,0.548,128,2.822,132,2.2,524,5.986,921,7.867,1191,3.41,1353,5.643,1363,5.923,1364,8.364,1365,9.119,1366,8.364,1367,9.119,1368,9.119,1369,9.119,1370,9.119]],["t/165",[4,0.569,12,0.631,21,0.234,110,0.605,125,0.583,508,2.941,1371,8.895]],["t/167",[4,0.622,12,0.392,21,0.202,51,1.474,69,0.978,110,0.376,125,0.621,128,2.017,132,1.967,193,1.408,239,4.226,241,3.569,242,2.382,246,2.274,247,4.945,248,3.344,252,2.781,253,2.829,462,2.671,467,4.849,496,5.475,505,2.735,547,3.082,1350,6.585,1366,5.522,1371,5.522,1372,6.359,1373,5.846,1374,6.856,1375,8.341,1376,6.02]],["t/169",[4,0.621,12,0.53,21,0.246,56,5.152,69,1.323,110,0.508,125,0.612,205,5.95,547,4.17,643,5.578,1350,8.039,1377,7.137]],["t/171",[10,1.81,19,2.622,20,2.463,21,0.205,26,2.433,28,2.077,32,2.345,54,2.334,65,2.303,102,2.334,144,1.922,146,2.537,173,2.421,204,2.409,229,2.158,273,2.214,302,2.466,322,2.334,326,2.398,352,2.513,449,2.273,495,2.421,565,2.466,566,2.454]],["t/173",[4,0.62,12,0.257,21,0.148,51,0.968,65,2.826,109,3.333,110,0.247,123,1.913,125,0.451,132,1.073,193,1.975,246,1.078,258,3.311,266,2.025,285,1.273,367,1.755,405,4.828,444,4.513,462,2.401,463,4.194,468,1.827,471,5.415,472,5.192,483,5.584,530,5.285,531,5.285,532,7.283,533,5.285,534,4.94,535,5.285,536,5.285,537,5.285,538,5.285,849,4.194,877,4.741,1378,9.442,1379,5.285,1380,3.628,1381,3.955,1382,2.772,1383,3.955,1384,3.955,1385,3.955,1386,3.955,1387,3.955,1388,3.955,1389,3.955,1390,3.955,1391,3.955,1392,3.628,1393,3.955,1394,6.126,1395,3.955]],["t/175",[10,1.81,19,2.622,20,2.463,21,0.205,26,2.433,28,2.077,32,2.345,54,2.334,65,2.303,102,2.334,144,1.922,146,2.537,173,2.421,204,2.409,229,2.158,273,2.214,302,2.466,322,2.334,326,2.398,352,2.513,449,2.273,495,2.421,565,2.466,566,2.454]],["t/177",[4,0.617,12,0.337,21,0.125,26,1.747,51,2.365,58,7.94,108,3.948,110,0.323,123,3.017,125,0.581,128,1.252,132,2.073,193,1.211,242,2.049,246,2.044,258,1.702,318,5.39,367,2.148,438,2.5,472,4.262,508,2.274,1350,7.626,1396,10.688,1397,8.083,1398,5.133,1399,9.66,1400,9.66,1401,7.497,1402,7.497,1403,6.877,1404,5.178,1405,5.178,1406,6.468,1407,4.75,1408,5.178,1409,4.75]],["t/179",[10,1.81,19,2.622,20,2.463,21,0.205,26,2.433,28,2.077,32,2.345,54,2.334,65,2.303,102,2.334,144,1.922,146,2.537,173,2.421,204,2.409,229,2.158,273,2.214,302,2.466,322,2.334,326,2.398,352,2.513,449,2.273,495,2.421,565,2.466,566,2.454]],["t/181",[4,0.613,10,1.57,12,0.479,21,0.178,69,1.551,110,0.459,125,0.637,132,1.29,208,7.057,239,3.73,246,2.007,420,4.655,640,4.079,701,6.752,767,6.147,832,8.756,1354,6.051,1410,8.756,1411,9.547,1412,8.756,1413,5.812,1414,7.362,1415,7.362,1416,7.362,1417,7.362]],["t/183",[4,0.567,12,0.626,21,0.233,110,0.6,125,0.578,208,7.112,508,2.918,1413,7.596]],["t/185",[4,0.566,12,0.621,21,0.231,110,0.596,125,0.574,208,7.056,508,2.895,1197,6.395,1413,7.536]],["t/187",[4,0.468,12,0.641,21,0.238,110,0.615,125,0.592,508,2.988,1197,6.601]],["t/189",[4,0.615,12,0.39,21,0.201,69,0.973,110,0.374,125,0.651,132,1.964,208,4.428,239,3.035,241,3.552,242,2.37,244,3.501,245,4.567,246,2.266,247,4.929,248,3.333,505,4.685,705,6.563,1198,7.172,1199,5.826,1200,5.569,1413,4.729,1418,9.458,1419,7.625,1420,8.313,1421,7.172,1422,5.569,1423,8.313,1424,6.563,1425,8.313,1426,8.313]],["t/191",[4,0.628,12,0.412,21,0.209,69,1.596,110,0.395,125,0.519,177,6.384,208,7.265,242,2.505,473,5.12,640,4.785,643,4.335,1197,4.242,1200,5.786,1413,4.999,1418,9.683,1427,6.384,1428,7.921,1429,7.45]],["t/193",[4,0.588,12,0.497,21,0.236,44,5.591,51,1.87,69,1.241,110,0.477,125,0.683,132,1.713,189,3.041,208,5.646,246,2.665,328,5.229,329,3.951,330,8.035,331,4.918,367,2.801,708,4.597,727,6.295,1217,5.013,1430,9.776,1431,9.776]],["t/195",[0,3.653,10,1.715,19,2.772,20,2.382,21,0.194,26,2.353,28,1.968,32,2.221,54,2.211,65,2.182,102,2.211,144,1.821,146,2.403,173,2.293,204,2.283,229,2.044,273,2.098,302,2.336,322,2.211,326,2.272,352,2.38,449,2.153,472,4.571,495,2.293,565,2.336,566,2.325,607,4.766,1096,6.608,1432,6.608,1433,7.465]],["t/196",[4,0.625,12,0.199,21,0.074,69,0.498,110,0.191,125,0.3,128,0.741,132,0.876,138,6.237,189,1.22,193,0.717,209,4.577,222,3.056,249,1.79,252,1.415,253,1.44,258,3.779,285,2.78,356,2.052,444,3.009,462,2.766,468,3.99,516,2.533,521,2.147,534,2.704,607,3.754,681,1.937,720,4.585,746,5.718,821,8.608,847,5.786,861,2.202,877,3.161,1031,1.536,1096,6.006,1163,6.93,1432,4.109,1433,4.681,1434,4.999,1435,4.999,1436,4.585,1437,4.585,1438,3.063,1439,3.063,1440,1.844,1441,2.81,1442,4.999,1443,3.063,1444,3.063,1445,3.063,1446,3.063,1447,3.063,1448,3.063,1449,4.585,1450,3.063,1451,3.063,1452,3.063,1453,2.264,1454,3.811,1455,3.063,1456,2.335,1457,4.999,1458,6.702,1459,4.999,1460,3.063,1461,3.063,1462,3.063,1463,3.063,1464,3.063,1465,4.585,1466,3.063]],["t/198",[21,0.233,26,2.242,28,2.355,144,2.179,173,2.744,229,2.447,273,2.51,449,2.577,495,2.744,565,2.796]],["t/200",[4,0.567,8,2.732,10,1.529,19,2.355,20,2.006,21,0.118,26,1.134,28,1.192,32,1.345,51,1.192,54,1.339,57,4.188,65,1.322,66,2.966,69,0.791,76,3.708,99,3.56,102,1.339,106,3.026,109,1.777,121,3.079,123,1.521,125,0.511,132,0.853,146,1.455,147,2.845,155,1.625,204,1.383,205,6.484,228,3.334,229,2.386,231,4.615,246,1.327,294,2.698,295,2.126,302,1.415,321,2.887,322,1.339,326,1.376,352,1.442,367,1.395,423,3.5,445,6.183,471,2.887,473,4.25,477,3.334,480,3.334,486,2.732,489,3.599,523,4.201,547,2.492,566,1.408,674,4.455,874,2.931,1172,3.844,1206,4.25,1319,2.977,1356,4.002,1362,4.201,1372,7.153,1382,3.413,1397,4.466,1467,4.201,1468,4.466,1469,6.574,1470,4.869,1471,4.869,1472,4.869,1473,4.201,1474,4.869,1475,6.183,1476,4.869,1477,4.869,1478,4.869,1479,4.466,1480,4.466,1481,4.869,1482,4.869,1483,4.869,1484,4.869,1485,4.869,1486,4.869,1487,4.466,1488,4.869,1489,4.869,1490,4.869,1491,4.869,1492,4.869,1493,4.869]],["t/202",[4,0.602,10,1.182,12,0.227,19,1.392,20,1.857,21,0.084,26,0.811,32,1.531,49,3.606,51,0.852,53,3.569,57,3.239,59,3.505,60,2.808,76,2.867,99,1.729,102,0.958,110,0.217,123,2.458,125,0.333,128,2.213,132,1.746,140,3.699,161,6.581,169,4.209,176,3.389,189,1.387,190,6.791,205,5.61,209,3.151,242,2.193,249,3.239,325,4.782,326,1.567,367,2.256,386,4.782,450,4.556,462,1.775,463,3.795,472,3.151,481,4.226,501,5.072,516,4.638,519,4.376,601,3.885,816,6.214,874,3.336,907,4.029,919,8.597,921,4.782,1067,3.286,1188,2.749,1242,4.226,1319,4.813,1360,2.503,1364,5.084,1373,3.885,1403,5.084,1473,4.782,1479,5.084,1480,3.194,1487,5.084,1494,6.214,1495,5.543,1496,5.543,1497,4.782,1498,5.543,1499,5.543,1500,5.543,1501,4.782,1502,4.556,1503,4.376,1504,5.543,1505,4.782,1506,5.543,1507,5.543]],["t/204",[4,0.566,12,0.621,21,0.231,110,0.596,125,0.574,205,5.578,508,2.895,1398,6.536,1508,8.756]],["t/206",[4,0.617,12,0.304,21,0.168,51,1.142,69,0.758,110,0.291,125,0.552,128,1.128,132,2.027,193,1.091,205,2.726,239,4.655,241,2.766,242,1.845,246,1.893,247,4.117,248,2.784,252,3.832,253,3.898,367,2.633,462,1.494,467,2.363,496,4.558,508,2.106,509,5.707,513,6.369,547,2.388,640,3.848,816,7.253,1372,5.294,1373,4.867,1374,5.707,1398,3.194,1497,5.99,1501,5.99,1505,5.99,1508,4.279,1509,6.944,1510,6.944,1511,6.944,1512,6.944,1513,6.944,1514,6.944,1515,6.944,1516,8.427,1517,6.944,1518,6.369,1519,4.665,1520,4.024,1521,4.665,1522,4.665]],["t/208",[4,0.606,12,0.26,19,1.55,21,0.149,30,2.508,32,1.705,54,1.698,56,2.526,58,5.073,69,0.649,103,3.715,110,0.249,123,3.262,125,0.51,128,1.492,132,2.069,176,5.189,205,3.607,209,3.509,246,1.683,367,1.769,408,5.325,481,4.706,505,2.804,508,1.872,524,4.052,547,2.044,560,4.706,640,4.702,642,6.976,643,2.735,816,6.7,905,3.836,907,3.159,1167,3.903,1372,6.47,1373,4.326,1377,5.948,1497,5.325,1501,7.321,1502,5.073,1503,4.873,1505,5.325,1516,5.661,1518,5.661,1523,6.172,1524,6.172,1525,6.172,1526,5.661,1527,8.486,1528,6.172,1529,6.172,1530,7.784,1531,6.172,1532,5.073,1533,6.172,1534,6.172,1535,6.172,1536,6.172,1537,6.172]],["t/210",[21,0.233,26,2.242,28,2.355,144,2.179,173,2.744,229,2.447,273,2.51,449,2.577,495,2.744,565,2.796]],["t/212",[4,0.372,10,1.671,19,2.494,20,2.573,21,0.189,26,2.315,28,1.918,32,2.745,54,2.155,65,2.126,66,2.731,69,1.272,89,4.869,102,2.155,146,2.342,155,2.615,204,2.224,229,1.992,294,4.341,302,2.276,322,2.155,326,2.214,352,2.319,420,4.953,450,6.439,566,2.266,674,6.175,759,5.49,1232,5.79,1233,5.49,1538,5.79,1539,7.833,1540,6.439]],["t/214",[2,0.768,4,0.625,6,0.842,8,1.584,10,0.336,12,0.103,19,1.351,20,1.102,21,0.093,23,2.321,30,1.147,32,0.78,39,3.761,40,4.032,44,1.389,49,1.293,51,1.144,52,1.109,54,0.776,56,3.402,57,2.731,69,1.303,109,1.706,110,0.098,123,1.198,125,0.323,127,0.996,129,1.338,132,1.455,140,0.74,144,1.991,155,2.321,169,0.842,174,1.755,176,1.726,177,1.164,189,0.627,193,0.368,196,2.029,205,3.143,219,1.699,229,0.401,231,1.014,239,1.43,242,1.117,244,2.241,246,0.429,248,0.631,283,1.214,295,2.041,299,3.36,320,1.359,321,0.934,322,0.776,347,1.627,350,2.425,355,1.164,365,1.164,367,1.339,404,1.034,420,1.785,422,2.152,434,0.862,442,2.228,444,1.699,463,1.933,473,1.674,496,2.518,501,0.873,505,0.716,508,1.163,516,1.43,534,2.528,640,4.27,643,1.078,667,2.029,679,1.699,689,2.029,696,3.563,736,1.978,841,2.152,877,1.785,907,0.806,1080,2.771,1174,2.589,1188,1.243,1190,3.028,1197,1.055,1258,1.726,1261,2.589,1289,1.164,1311,2.435,1312,2.435,1360,1.132,1363,2.435,1372,1.201,1377,4.556,1422,4.658,1424,3.69,1427,3.455,1433,2.087,1468,2.589,1530,1.445,1540,3.153,1541,2.823,1542,3.842,1543,2.228,1544,2.823,1545,2.823,1546,5.981,1547,4.287,1548,2.823,1549,1.933,1550,2.823,1551,2.823,1552,3.842,1553,2.435,1554,2.589,1555,2.823,1556,4.674,1557,2.823,1558,4.287,1559,3.309,1560,3.69,1561,2.589,1562,3.153,1563,2.823,1564,2.087,1565,2.823,1566,1.445,1567,1.295,1568,1.575,1569,1.575,1570,1.575,1571,1.575,1572,1.575,1573,1.575,1574,1.575,1575,1.963,1576,1.575,1577,2.823,1578,1.575,1579,1.575,1580,1.575,1581,1.575,1582,3.835,1583,1.575,1584,2.589,1585,1.575,1586,1.575,1587,2.823,1588,2.823,1589,2.435,1590,1.575,1591,1.575,1592,1.575,1593,1.575,1594,3.835,1595,2.823,1596,1.575,1597,3.835,1598,1.575,1599,1.575,1600,1.575,1601,1.575,1602,2.823,1603,3.835,1604,2.823,1605,2.823,1606,1.575,1607,1.575,1608,2.589,1609,2.823,1610,1.575,1611,1.575]],["t/216",[4,0.606,6,4.385,12,0.534,21,0.269,32,2.266,69,1.332,109,2.993,110,0.512,125,0.615,144,1.857,205,4.792,229,2.085,242,3.244,347,4.726,355,6.062,508,2.487,1197,5.494,1360,5.896,1540,6.741,1559,7.075]],["t/218",[4,0.609,12,0.513,21,0.191,44,3.878,109,2.877,110,0.492,125,0.691,132,1.748,246,2.719,511,9.149,643,5.398,1612,11.5,1613,11.5,1614,8.605]],["t/220",[4,0.628,12,0.386,21,0.143,60,4.183,69,1.341,110,0.37,125,0.496,196,5.936,248,3.31,295,3.606,473,4.895,640,4.575,643,4.062,708,4.97,1199,5.787,1200,5.532,1428,7.573,1615,9.891,1616,8.257,1617,8.257,1618,8.257,1619,7.573]],["t/222",[4,0.604,6,4.506,12,0.548,21,0.273,32,2.329,69,1.369,109,3.076,110,0.526,125,0.625,144,1.908,229,2.143,242,3.334,347,4.856,355,6.229,1197,5.646,1540,6.927,1559,7.27]],["t/224",[4,0.621,12,0.53,21,0.246,39,4.406,69,1.804,110,0.508,125,0.612,126,7.763,547,5.212,1620,10.183]],["t/226",[10,1.81,19,2.622,20,2.463,21,0.205,26,2.433,28,2.077,32,2.345,54,2.334,65,2.303,102,2.334,144,1.922,146,2.537,173,2.421,204,2.409,229,2.158,273,2.214,302,2.466,322,2.334,326,2.398,352,2.513,449,2.273,495,2.421,565,2.466,566,2.454]],["t/228",[1,2.934,4,0.621,10,1.143,12,0.349,21,0.13,66,1.869,110,0.335,125,0.322,128,1.296,129,4.26,132,1.72,160,3.976,242,2.121,248,3.081,252,2.476,253,2.519,272,1.992,367,2.575,485,6.02,508,1.626,1621,2.716,1622,4.916,1623,4.916,1624,4.406,1625,4.916,1626,3.39,1627,4.916,1628,4.916,1629,4.916,1630,2.716,1631,4.406,1632,4.916,1633,4.624,1634,6.85,1635,4.916,1636,8.242,1637,4.916,1638,7.05,1639,8.242,1640,4.916,1641,4.916,1642,4.916,1643,4.916,1644,4.916,1645,4.916,1646,4.916,1647,4.916,1648,7.05,1649,5.045,1650,4.429,1651,4.916,1652,4.624]],["t/230",[1,3.041,4,0.62,10,1.185,12,0.362,21,0.134,66,1.937,110,0.347,125,0.334,128,1.343,129,4.345,132,1.748,160,2.873,248,3.161,252,2.566,253,2.611,272,2.064,367,2.626,485,6.14,1622,5.095,1623,5.095,1624,4.566,1625,5.095,1626,3.513,1627,5.095,1628,5.095,1629,5.095,1630,2.814,1631,4.566,1632,5.095,1633,4.792,1634,6.987,1635,5.095,1636,8.406,1637,5.095,1638,7.231,1639,8.406,1640,5.095,1641,5.095,1642,5.095,1643,5.095,1644,5.095,1645,5.095,1646,5.095,1647,5.095,1648,7.231,1649,5.175,1650,4.543,1651,5.095,1652,4.792]],["t/232",[10,1.81,19,2.622,20,2.463,21,0.205,26,2.433,28,2.077,32,2.345,54,2.334,65,2.303,102,2.334,144,1.922,146,2.537,173,2.421,204,2.409,229,2.158,273,2.214,302,2.466,322,2.334,326,2.398,352,2.513,449,2.273,495,2.421,565,2.466,566,2.454]],["t/234",[2,2.34,4,0.62,10,1.024,12,0.19,19,0.732,21,0.071,28,0.714,39,1.578,51,1.737,53,1.878,54,0.802,66,1.017,68,1.915,69,0.78,99,1.449,103,1.756,110,0.182,123,0.911,125,0.289,128,2.728,132,2.026,138,1.997,160,4.365,163,2.676,164,4.143,193,0.682,209,3.48,229,0.742,242,1.154,248,1.925,252,1.348,253,1.371,258,3.708,274,1.246,312,2.156,321,1.729,356,1.954,367,1.376,375,2.156,489,2.156,501,1.616,622,2.182,635,1.729,847,1.954,849,1.997,866,1.954,876,1.729,1064,1.681,1206,1.729,1296,5.101,1319,1.784,1503,3.791,1621,1.478,1624,5.031,1630,2.433,1650,3.527,1653,1.637,1654,2.045,1655,2.517,1656,1.954,1657,1.915,1658,2.517,1659,4.405,1660,2.917,1661,3.366,1662,2.917,1663,4.405,1664,4.802,1665,2.676,1666,2.676,1667,2.917,1668,1.845,1669,2.917,1670,2.676,1671,2.917,1672,2.045,1673,2.676,1674,2.917,1675,2.676,1676,2.917,1677,2.676,1678,2.917,1679,2.676,1680,2.917,1681,4.405,1682,2.917,1683,2.917,1684,2.676,1685,2.224,1686,2.917,1687,2.676,1688,2.517,1689,2.917,1690,2.303,1691,2.156,1692,2.917,1693,2.676,1694,2.917,1695,2.676,1696,2.917,1697,2.676,1698,2.676,1699,3.947,1700,2.398,1701,2.917,1702,2.517,1703,2.517,1704,2.917,1705,2.917,1706,2.917,1707,2.917,1708,2.917,1709,2.917,1710,2.917,1711,2.917,1712,4.802,1713,2.917,1714,3.791,1715,2.917,1716,2.676,1717,2.917,1718,2.917,1719,2.917,1720,2.917]],["t/236",[4,0.598,12,0.568,21,0.211,110,0.545,125,0.639,160,5.496,209,6.041,508,2.647,1503,8.388,1655,7.53,1656,5.847,1657,5.729,1658,7.53]],["t/238",[4,0.596,12,0.589,21,0.219,110,0.565,125,0.653,160,4.682,209,6.175,1503,8.575,1657,5.941,1658,7.809]],["t/240",[4,0.616,10,1.303,12,0.398,21,0.148,51,1.496,110,0.381,125,0.58,128,2.638,132,1.976,160,4.99,193,1.429,242,2.417,246,1.666,252,2.823,253,2.872,258,2.769,285,1.967,367,2.415,462,1.957,468,2.823,1626,3.864,1655,5.271,1656,6.463,1657,4.011,1691,4.517,1721,5.271,1722,5.023,1723,5.023,1724,5.605,1725,6.11,1726,6.11,1727,5.605,1728,6.11,1729,6.11,1730,6.11,1731,6.11,1732,6.11,1733,6.11,1734,8.428,1735,6.11]],["t/242",[4,0.566,12,0.621,21,0.231,51,2.337,110,0.596,125,0.574,508,2.895,1722,7.847,1723,7.847]],["t/244",[2,3.503,4,0.605,6,3.843,10,1.043,12,0.318,21,0.118,28,2.301,32,1.986,51,2.452,53,4.629,69,1.168,96,6.594,99,3.57,102,1.977,103,4.327,106,4.468,107,5.314,110,0.305,125,0.432,128,1.182,132,0.857,139,4.327,160,4.862,242,1.934,273,2.453,274,3.64,294,3.983,308,2.639,404,4.719,405,4.629,423,5.168,424,6.594,438,2.36,473,4.262,547,2.502,594,6.202,1285,7.421,1549,4.922,1653,4.034,1654,5.038,1657,6.17,1699,4.018,1736,4.922,1737,6.594,1738,7.189,1739,7.189,1740,6.594,1741,6.594,1742,6.594,1743,7.189,1744,4.217,1745,4.217,1746,4.889,1747,4.889]],["t/246",[10,1.81,19,2.622,20,2.463,21,0.205,26,2.433,28,2.077,32,2.345,54,2.334,65,2.303,102,2.334,144,1.922,146,2.537,173,2.421,204,2.409,229,2.158,273,2.214,302,2.466,322,2.334,326,2.398,352,2.513,449,2.273,495,2.421,565,2.466,566,2.454]],["t/248",[0,0.818,2,0.877,4,0.623,8,1.01,12,0.117,19,1.293,20,0.75,21,0.077,28,1.045,44,1.564,49,4.239,51,1.261,57,3.437,60,0.912,69,1.055,109,1.88,110,0.112,121,1.138,123,2.028,125,0.257,128,1.032,132,1.621,155,1.963,189,0.717,193,0.744,209,1.807,224,1.719,239,3.556,241,1.067,242,0.712,243,3.155,248,2.994,266,1.627,272,0.669,283,1.836,285,1.023,295,2.25,299,3.703,314,1.119,347,1.037,350,1.138,367,2.352,467,1.611,472,1.807,475,1.372,486,1.784,496,2.087,505,1.444,509,2.613,515,2.613,516,4.158,519,5.127,559,2.854,640,1.761,645,2.228,657,4.801,667,2.285,679,1.913,689,2.285,708,3.101,736,2.228,791,2.176,855,5.004,861,1.294,908,2.176,944,2.285,1064,1.037,1163,2.087,1188,1.421,1190,2.51,1233,1.262,1258,2.61,1311,2.742,1312,2.742,1358,1.553,1363,2.742,1412,2.916,1421,2.742,1422,5.004,1424,2.51,1433,2.35,1552,2.613,1553,3.682,1554,3.915,1558,2.916,1561,2.916,1608,4.725,1614,2.742,1615,2.742,1702,2.742,1703,2.742,1748,2.285,1749,3.927,1750,2.613,1751,2.916,1752,5.151,1753,3.179,1754,7.469,1755,3.179,1756,3.179,1757,3.179,1758,3.179,1759,3.179,1760,3.179,1761,3.179,1762,2.087,1763,3.179,1764,3.179,1765,5.151,1766,3.179,1767,3.179,1768,6.495,1769,3.179,1770,2.916,1771,5.151,1772,3.179,1773,3.179,1774,2.916,1775,5.151,1776,3.179,1777,5.151,1778,3.179,1779,3.179,1780,3.179,1781,2.742,1782,3.179,1783,5.151,1784,3.179,1785,3.179,1786,3.179,1787,2.916,1788,3.179,1789,1.372,1790,1.8]],["t/250",[4,0.558,12,0.602,21,0.224,51,2.266,110,0.578,125,0.556,243,8.685,283,3.982,295,4.043,508,2.807,1258,5.66]],["t/252",[4,0.465,12,0.636,21,0.236,110,0.61,125,0.588,243,7.226,283,4.205,508,2.964]],["t/254",[4,0.465,12,0.636,21,0.236,110,0.61,125,0.588,243,7.226,508,2.964,1258,5.977]],["t/256",[4,0.621,12,0.41,21,0.152,69,1.023,110,0.393,123,2.688,125,0.663,132,1.995,205,6.81,239,3.191,241,3.735,242,3.404,246,2.346,247,5.102,248,3.45,1360,4.529,1372,6.561,1373,6.032,1791,8.606,1792,8.606,1793,7.893,1794,5.778,1795,5.778]],["t/258",[4,0.617,12,0.552,21,0.205,69,1.696,110,0.53,125,0.628,205,6.103,242,3.357,1360,6.101,1794,7.783,1795,9.579]],["t/260",[4,0.567,12,0.626,21,0.233,110,0.6,125,0.578,205,5.622,508,2.918,1360,6.917]],["t/262",[10,1.81,19,2.622,20,2.463,21,0.205,26,2.433,28,2.077,32,2.345,54,2.334,65,2.303,102,2.334,144,1.922,146,2.537,173,2.421,204,2.409,229,2.158,273,2.214,302,2.466,322,2.334,326,2.398,352,2.513,449,2.273,495,2.421,565,2.466,566,2.454]],["t/264",[4,0.626,12,0.222,21,0.083,44,4.464,52,2.144,69,0.886,110,0.213,123,1.704,125,0.545,128,1.319,129,2.587,132,1.364,155,2.599,182,5.004,189,1.36,193,0.799,202,5.754,214,4.033,218,3.188,227,4.307,252,2.52,253,2.564,258,1.122,295,2.383,367,2.6,434,1.869,440,2.337,480,3.736,508,1.655,552,3.581,810,5.004,811,5.004,1145,4.033,1440,2.055,1796,5.456,1797,4.307,1798,5.456,1799,5.456,1800,5.456,1801,5.456,1802,5.456,1803,5.456,1804,5.456,1805,9.895,1806,5.004,1807,5.456,1808,5.456,1809,7.784,1810,5.456,1811,5.456,1812,5.456,1813,4.485,1814,5.456,1815,5.004,1816,5.456,1817,5.456,1818,5.004,1819,4.16,1820,5.456,1821,5.456,1822,5.456,1823,5.456,1824,3.414,1825,3.414,1826,2.454]],["t/266",[4,0.61,12,0.581,21,0.26,69,1.449,110,0.557,125,0.536,155,2.978,193,2.087,235,6.8,440,6.107,508,2.705]],["t/268",[4,0.603,12,0.5,21,0.237,51,1.881,69,1.248,110,0.48,125,0.59,128,2.755,132,1.996,193,1.798,249,4.491,251,5.387,258,2.526,434,4.207,458,5.859,547,3.934,1166,5.859,1826,5.525,1827,6.72,1828,9.815,1829,7.686,1830,4.949]],["t/270",[0,3.47,4,0.616,12,0.346,21,0.185,69,1.452,89,4.747,110,0.332,125,0.588,132,1.713,138,5.229,158,3.442,229,2.486,246,2.082,289,5.014,303,5.646,367,2.801,547,2.72,1031,3.831,1170,5.491,1252,3.724,1253,7.718,1254,6.03,1255,6.417,1257,4.051,1826,7.028,1831,9.889,1832,7.006,1833,9.776,1834,7.638,1835,7.638,1836,7.006,1837,7.006,1838,7.638]],["t/272",[4,0.601,12,0.268,21,0.153,30,3.503,44,5.187,51,1.007,69,1.248,70,5.452,110,0.257,125,0.518,132,1.511,142,4.986,155,2.108,177,4.669,199,6.042,246,1.722,285,2.033,328,2.817,331,2.65,432,8.668,434,6.589,445,7.437,462,2.761,486,4.838,501,3.5,505,2.869,547,2.106,711,5.191,853,4.986,866,4.231,1064,3.639,1217,4.146,1652,5.449,1826,4.54,1839,5.449,1840,6.316,1841,7.907,1842,6.316,1843,10.125,1844,5.793,1845,6.316,1846,8.621,1847,9.815,1848,6.316,1849,5.793,1850,6.316,1851,5.191,1852,6.316]],["t/274",[10,1.81,19,2.622,20,2.463,21,0.205,26,2.433,28,2.077,32,2.345,54,2.334,65,2.303,102,2.334,144,1.922,146,2.537,173,2.421,204,2.409,229,2.158,273,2.214,302,2.466,322,2.334,326,2.398,352,2.513,449,2.273,495,2.421,565,2.466,566,2.454]],["t/276",[4,0.625,12,0.365,20,1.872,21,0.136,66,2.767,69,1.289,110,0.35,123,1.751,125,0.477,128,2.422,132,1.852,193,2.155,258,3.027,367,2.274,456,3.545,505,2.547,791,5.433,855,5.316,1232,4.144,1242,4.274,1424,7.272,1853,7.935,1854,7.935,1855,5.606,1856,5.606,1857,7.278,1858,5.606,1859,9.187,1860,5.606,1861,5.606,1862,5.142,1863,5.606,1864,5.606]],["t/278",[10,1.81,19,2.622,20,2.463,21,0.205,26,2.433,28,2.077,32,2.345,54,2.334,65,2.303,102,2.334,144,1.922,146,2.537,173,2.421,204,2.409,229,2.158,273,2.214,302,2.466,322,2.334,326,2.398,352,2.513,449,2.273,495,2.421,565,2.466,566,2.454]],["t/280",[4,0.62,12,0.537,21,0.2,110,0.515,125,0.617,140,3.88,144,2.325,155,3.428,681,5.221,1865,7.652,1866,5.653]],["t/282",[4,0.623,10,0.973,12,0.297,20,1.61,21,0.11,99,2.265,110,0.285,123,1.424,125,0.492,128,2.197,132,1.855,144,1.033,189,1.816,193,1.597,204,2.324,246,1.243,248,1.828,258,2.689,283,4.393,290,3.477,295,2.981,324,3.934,360,3.477,367,2.345,472,5.165,473,4.048,691,4.174,841,5.205,905,5.086,907,4.189,1092,2.438,1124,3.196,1186,3.477,1224,3.934,1440,2.745,1867,6.827,1868,6.827,1869,5.89,1870,6.827,1871,4.56,1872,5.89,1873,4.56,1874,3.371,1875,4.56,1876,4.56,1877,4.56,1878,4.56,1879,4.56,1880,4.56,1881,4.56,1882,4.56,1883,4.56,1884,4.56,1885,4.56,1886,4.56,1887,3.934]],["t/284",[10,1.81,19,2.622,20,2.463,21,0.205,26,2.433,28,2.077,32,2.345,54,2.334,65,2.303,102,2.334,144,1.922,146,2.537,173,2.421,204,2.409,229,2.158,273,2.214,302,2.466,322,2.334,326,2.398,352,2.513,449,2.273,495,2.421,565,2.466,566,2.454]],["t/286",[4,0.617,12,0.437,15,5.793,21,0.162,69,1.091,110,0.419,123,2.097,125,0.54,128,1.623,129,3.184,132,1.574,144,1.521,193,2.369,285,2.161,367,1.924,462,2.15,468,3.102,469,4.246,505,3.051,709,3.981,1167,4.246,1315,5.898,1575,3.437,1762,5.898,1888,5.519,1889,6.715,1890,6.715,1891,5.119,1892,8.985,1893,8.985,1894,6.715,1895,6.159,1896,6.85,1897,4.827,1898,6.715]],["t/288",[4,0.62,10,1.291,12,0.394,21,0.146,69,0.983,76,3.129,110,0.378,125,0.503,132,1.467,144,1.37,193,1.415,246,1.649,258,3.154,285,3.089,367,1.734,462,3.073,467,4.241,468,5.325,469,6.875,484,7.677,646,5.293,869,3.971,1453,4.472,1456,4.612,1891,7.895,1899,6.05,1900,4.776,1901,6.05,1902,6.05,1903,6.05,1904,6.05]],["t/290",[4,0.574,6,4.839,12,0.589,21,0.219,26,2.109,110,0.565,125,0.544,157,7.809,189,3.604,329,4.682,508,2.745,1532,8.928,1891,6.901,1905,8.302]],["t/292",[4,0.616,12,0.329,21,0.178,51,1.236,65,2.876,69,0.82,109,3.484,110,0.315,125,0.442,193,1.181,258,1.66,293,3.54,405,4.741,444,4.431,462,2.358,463,5.04,471,5.66,472,4.939,483,5.837,533,6.351,534,5.164,537,6.351,849,5.04,877,4.655,1378,9.564,1379,6.351,1380,4.632,1467,4.357,1891,3.85,1900,3.987,1906,6.752,1907,3.987,1908,7.362,1909,7.362,1910,9.547,1911,7.362,1912,7.362,1913,7.362]],["t/294",[10,1.81,19,2.622,20,2.463,21,0.205,26,2.433,28,2.077,32,2.345,54,2.334,65,2.303,102,2.334,144,1.922,146,2.537,173,2.421,204,2.409,229,2.158,273,2.214,302,2.466,322,2.334,326,2.398,352,2.513,449,2.273,495,2.421,565,2.466,566,2.454]],["t/296",[4,0.624,10,0.284,12,0.087,19,1.033,21,0.032,49,1.111,60,2.716,69,1.746,89,1.507,106,0.828,110,0.083,121,1.534,123,1.674,125,0.201,127,1.534,128,1.296,132,1.177,155,2.566,179,1.915,193,0.311,199,4.113,212,3.383,218,3.132,223,0.933,246,0.363,248,0.972,252,0.615,253,0.626,258,1.571,266,1.241,285,1.325,301,5.387,311,1.849,312,3.962,314,3.332,347,1.397,356,0.892,367,2.203,462,1.318,468,2.476,477,3.67,505,1.102,560,1.849,566,0.385,635,1.438,646,1.534,727,1.562,759,4.427,763,5.637,767,1.562,834,3.249,866,1.625,867,2.818,876,2.44,881,3.383,1080,2.44,1432,3.383,1454,1.849,1844,2.224,1865,5.903,1914,2.425,1915,2.425,1916,4.115,1917,9.3,1918,9.574,1919,8.194,1920,4.115,1921,5.382,1922,2.425,1923,2.425,1924,2.425,1925,2.425,1926,2.425,1927,2.425,1928,2.425,1929,2.425,1930,5.36,1931,1.849,1932,2.425,1933,2.425,1934,2.425,1935,1.993,1936,2.425,1937,2.425,1938,2.425,1939,2.425,1940,4.115,1941,2.425,1942,2.425,1943,2.425,1944,2.425,1945,2.425,1946,2.425,1947,2.425,1948,4.115,1949,2.425,1950,2.425,1951,2.425,1952,2.425,1953,2.425,1954,2.425,1955,2.425,1956,2.425,1957,2.425,1958,2.425,1959,2.425,1960,4.115,1961,2.425,1962,5.583,1963,4.232,1964,1.993,1965,1.993,1966,2.425,1967,2.224,1968,2.425,1969,5.36,1970,4.115,1971,2.425,1972,2.425,1973,2.425,1974,2.425,1975,2.425,1976,4.624,1977,2.425,1978,3.339,1979,2.425,1980,2.425,1981,4.115,1982,6.316,1983,2.425,1984,2.425,1985,2.425,1986,2.425,1987,2.425,1988,2.425,1989,2.425,1990,1.332,1991,2.425,1992,2.425,1993,2.224,1994,1.332,1995,1.332,1996,1.332,1997,1.332,1998,1.332,1999,1.332]],["t/298",[10,1.81,19,2.622,20,2.463,21,0.205,26,2.433,28,2.077,32,2.345,54,2.334,65,2.303,102,2.334,144,1.922,146,2.537,173,2.421,204,2.409,229,2.158,273,2.214,302,2.466,322,2.334,326,2.398,352,2.513,449,2.273,495,2.421,565,2.466,566,2.454]],["t/300",[4,0.604,12,0.598,21,0.222,110,0.573,125,0.659,438,4.435,2000,9.187,2001,8.427,2002,9.187]],["t/302",[4,0.622,12,0.386,21,0.143,23,2.946,69,1.341,110,0.37,123,2.579,125,0.496,128,2.483,132,1.799,193,1.932,258,2.713,268,2.287,269,2.317,291,6.518,293,7.197,295,2.591,367,2.943,505,3.751,867,5.653,2001,7.573,2003,6.518,2004,7.573,2005,7.573,2006,8.257,2007,8.257,2008,8.257,2009,7.573]],["t/304",[4,0.621,12,0.53,21,0.246,69,1.804,110,0.508,125,0.612,547,4.17,1377,7.137,2005,9.34,2010,6.431,2011,7.472]],["t/306",[10,1.81,19,2.622,20,2.463,21,0.205,26,2.433,28,2.077,32,2.345,54,2.334,65,2.303,102,2.334,144,1.922,146,2.537,173,2.421,204,2.409,229,2.158,273,2.214,302,2.466,322,2.334,326,2.398,352,2.513,449,2.273,495,2.421,565,2.466,566,2.454]],["t/308",[4,0.604,12,0.598,21,0.222,51,2.249,110,0.573,125,0.659,189,3.659,329,4.752,2012,9.187]],["t/310",[10,1.81,19,2.622,20,2.463,21,0.205,26,2.433,28,2.077,32,2.345,54,2.334,65,2.303,102,2.334,144,1.922,146,2.537,173,2.421,204,2.409,229,2.158,273,2.214,302,2.466,322,2.334,326,2.398,352,2.513,449,2.273,495,2.421,565,2.466,566,2.454]],["t/312",[0,2.072,4,0.62,10,0.585,12,0.178,19,1.145,20,0.646,21,0.142,30,2.774,46,2.835,49,3.128,51,0.671,66,1.59,69,1.476,76,2.359,110,0.171,123,1.424,125,0.352,128,1.978,132,1.883,140,2.143,155,2.279,193,0.641,222,1.676,228,4.01,246,0.747,256,2.527,258,3.1,260,4.183,283,2.519,284,3.477,285,1.468,290,2.089,367,3.034,453,4.183,454,4.183,486,1.538,508,1.383,510,7.506,523,5.053,601,3.196,622,1.245,662,3.196,695,2.467,762,3.055,1031,2.938,1055,4.183,1056,3.279,1057,4.183,1067,1.625,1092,2.438,1111,2.089,1374,2.253,1781,5.89,2013,4.56,2014,4.56,2015,3.934,2016,4.56,2017,2.74,2018,4.183,2019,2.74,2020,4.183,2021,2.74,2022,2.74,2023,6.827,2024,4.56,2025,4.56,2026,4.56,2027,2.74,2028,4.56,2029,4.56,2030,2.74,2031,2.74,2032,2.74,2033,2.74,2034,6.827,2035,4.56,2036,4.56,2037,2.74,2038,2.74,2039,2.74,2040,2.364,2041,2.74,2042,2.74,2043,5.857,2044,4.56,2045,2.74,2046,2.74,2047,4.56,2048,2.74,2049,2.74,2050,3.6,2051,2.74,2052,4.56,2053,2.74,2054,2.026,2055,2.253,2056,2.74,2057,2.74,2058,6.827,2059,2.74,2060,2.74,2061,4.183,2062,2.74,2063,2.74,2064,2.74,2065,2.74,2066,2.74]],["t/314",[10,1.81,19,2.622,20,2.463,21,0.205,26,2.433,28,2.077,32,2.345,54,2.334,65,2.303,102,2.334,144,1.922,146,2.537,173,2.421,204,2.409,229,2.158,273,2.214,302,2.466,322,2.334,326,2.398,352,2.513,449,2.273,495,2.421,565,2.466,566,2.454]],["t/316",[2,3.101,4,0.628,12,0.414,21,0.154,51,1.558,109,3.163,110,0.397,125,0.521,128,1.539,132,1.115,147,5.064,189,2.535,193,1.489,258,2.092,329,3.292,483,5.299,541,7.124,622,2.892,765,7.124,1296,7.606,2067,7.124,2068,6.365,2069,5.491,2070,6.365,2071,5.491]],["t/318",[4,0.595,12,0.404,20,2.009,21,0.15,69,1.383,110,0.387,123,2.66,125,0.512,128,2.53,132,2.126,248,3.414,405,5.484,664,5.207,841,6.492,923,7.346,1296,7.524,1398,5.83,1797,6.723,1874,6.295,2067,5.099,2072,10.466,2073,6.492,2074,8.603,2075,8.516,2076,8.516,2077,7.811,2078,8.516,2079,7.346]],["t/320",[4,0.61,12,0.39,21,0.145,51,1.467,110,0.374,123,2.596,125,0.62,128,2.01,132,2.054,151,5.976,174,5.167,175,6.563,176,5.083,246,2.266,328,4.102,331,3.858,367,2.955,468,3.84,547,3.066,664,5.083,1136,7.862,1211,7.172,1575,4.255,2080,8.313,2081,8.313,2082,8.313,2083,8.313,2084,8.313,2085,8.313,2086,8.313,2087,8.313]],["t/322",[10,1.81,19,2.622,20,2.463,21,0.205,26,2.433,28,2.077,32,2.345,54,2.334,65,2.303,102,2.334,144,1.922,146,2.537,173,2.421,204,2.409,229,2.158,273,2.214,302,2.466,322,2.334,326,2.398,352,2.513,449,2.273,495,2.421,565,2.466,566,2.454]],["t/324",[4,0.615,12,0.398,21,0.148,44,4.146,69,1.832,110,0.381,123,2.632,125,0.507,128,2.514,132,1.912,180,4.011,227,4.824,281,3.571,283,3.625,295,2.668,323,3.623,331,3.935,393,2.95,432,6.927,434,3.345,534,4.558,708,3.678,768,5.023,853,6.653,1169,5.605,1614,7.271,1976,5.271,2088,5.605,2089,8.428,2090,8.428,2091,6.11,2092,5.023,2093,6.11,2094,4.658,2095,6.11,2096,5.271,2097,6.11]],["t/326",[4,0.604,12,0.507,21,0.239,51,1.905,69,1.264,110,0.486,125,0.688,132,2.006,246,2.697,328,5.329,331,5.012,547,3.984,711,8.133,1839,8.536,2092,8.133,2098,9.894,2099,8.536]],["t/328",[10,1.81,19,2.622,20,2.463,21,0.205,26,2.433,28,2.077,32,2.345,54,2.334,65,2.303,102,2.334,144,1.922,146,2.537,173,2.421,204,2.409,229,2.158,273,2.214,302,2.466,322,2.334,326,2.398,352,2.513,449,2.273,495,2.421,565,2.466,566,2.454]],["t/330",[4,0.625,12,0.334,19,1.871,21,0.124,23,3.701,44,4.733,110,0.32,123,2.327,125,0.641,128,1.802,132,1.686,177,5.508,193,1.201,222,4.556,258,1.687,367,2.757,434,5.267,435,5.681,438,2.479,440,3.516,622,2.333,635,4.418,866,4.992,1332,5.357,2100,7.452,2101,7.452,2102,7.452,2103,7.452,2104,7.452,2105,7.452,2106,7.452,2107,7.452,2108,7.452,2109,5.135,2110,5.135]],["t/332",[4,0.606,12,0.556,21,0.254,23,4.244,69,1.388,110,0.533,125,0.514,140,4.016,155,2.853,193,1.999,235,6.515,437,7.024,440,7.181,508,2.591,1543,6.746,1907,6.746]],["t/334",[0,3.449,4,0.617,12,0.343,21,0.183,69,1.445,89,4.718,110,0.329,125,0.585,132,1.706,138,5.197,158,3.421,229,2.476,246,2.069,289,4.982,303,5.611,367,2.79,435,8.196,437,6.239,547,2.696,1031,3.807,1170,5.457,1252,3.692,1253,7.687,1254,5.992,1255,6.391,1257,4.016,1831,9.86,1832,6.962,1836,6.962,2111,9.737,2112,7.59,2113,7.59]],["t/336",[10,1.81,19,2.622,20,2.463,21,0.205,26,2.433,28,2.077,32,2.345,54,2.334,65,2.303,102,2.334,144,1.922,146,2.537,173,2.421,204,2.409,229,2.158,273,2.214,302,2.466,322,2.334,326,2.398,352,2.513,449,2.273,495,2.421,565,2.466,566,2.454]],["t/338",[4,0.627,10,0.949,12,0.124,20,0.448,21,0.046,22,1.299,30,0.771,35,0.972,45,1.447,46,3.324,49,1.526,51,0.465,66,1.551,68,2.186,69,1.593,76,1.723,86,1.246,99,0.943,103,1.142,110,0.118,123,0.593,125,0.267,128,1.95,132,1.747,144,1.518,155,1.786,189,1.772,193,0.444,228,2.28,234,3.219,246,0.517,256,2.466,258,2.861,277,1.109,281,1.109,283,2.301,303,1.403,367,2.07,393,0.916,434,1.823,435,2.539,438,0.916,469,2.106,472,1.893,508,1.01,552,1.246,566,0.963,569,2.334,622,2.43,635,1.125,640,2.964,662,3.119,690,1.919,691,3.27,695,1.027,715,3.055,723,4.396,736,2.334,746,2.005,874,2.005,878,2.873,882,2.231,916,1.2,1031,2.683,1035,3.055,1051,1.56,1067,1.125,1080,1.125,1092,1.781,1137,2.737,1163,2.186,1248,1.741,1258,4.098,1285,2.629,1373,2.334,1433,2.462,2073,4.078,2114,5.704,2115,4.906,2116,5.583,2117,3.33,2118,3.33,2119,3.33,2120,3.33,2121,3.33,2122,2.737,2123,3.33,2124,3.33,2125,3.33,2126,3.33,2127,3.33,2128,3.33,2129,3.33,2130,3.33,2131,3.33,2132,3.33,2133,3.33,2134,3.33,2135,3.33,2136,3.055,2137,2.873,2138,1.741,2139,1.637,2140,5.583,2141,4.396,2142,7.674,2143,5.349,2144,1.498,2145,2.28,2146,1.271,2147,1.741,2148,1.898,2149,1.898,2150,1.56,2151,1.898,2152,1.56,2153,3.33,2154,2.539,2155,1.898,2156,1.898,2157,1.898,2158,1.898,2159,1.898,2160,1.898,2161,3.33,2162,1.898,2163,1.898,2164,3.33,2165,1.898,2166,1.898,2167,1.898,2168,1.898,2169,1.898]],["t/340",[10,1.81,19,2.622,20,2.463,21,0.205,26,2.433,28,2.077,32,2.345,54,2.334,65,2.303,102,2.334,144,1.922,146,2.537,173,2.421,204,2.409,229,2.158,273,2.214,302,2.466,322,2.334,326,2.398,352,2.513,449,2.273,495,2.421,565,2.466,566,2.454]],["t/342",[4,0.468,12,0.641,21,0.238,110,0.615,125,0.592,508,2.988,1341,6.468]],["t/344",[21,0.233,26,2.242,28,2.355,144,2.179,173,2.744,229,2.447,273,2.51,449,2.577,495,2.744,565,2.796]],["t/346",[4,0.38,10,1.704,19,2.525,20,2.596,21,0.243,26,1.861,28,1.955,30,3.245,32,2.779,54,2.197,59,5.051,65,2.168,66,2.785,102,2.766,139,4.807,146,2.387,204,2.268,229,2.031,294,4.426,302,2.321,322,2.197,326,2.843,352,2.365,495,2.278,566,2.31,674,6.251,685,6.565,759,5.598]],["t/348",[0,0.663,4,0.626,8,0.82,10,0.563,12,0.05,19,1.011,21,0.05,26,0.18,28,0.358,30,0.593,35,1.35,49,1.652,59,1.988,60,1.593,63,2.324,65,0.979,66,1.78,69,0.586,110,0.048,120,0.497,123,1.594,125,0.265,127,0.923,128,0.76,129,0.692,132,1.452,142,2.082,151,1.05,152,0.57,155,1.704,158,0.658,169,0.781,193,0.342,199,1.848,219,0.464,234,0.879,246,0.857,248,0.585,256,2.447,258,3.219,266,0.748,281,0.451,283,1.733,295,0.638,321,0.458,322,0.402,367,1.633,399,1.113,434,1.443,438,1.945,449,0.706,456,1.315,457,1.113,462,0.845,467,0.74,468,1.218,469,1.668,472,0.439,501,1.152,502,1.339,505,1.198,508,1.339,516,1.336,534,0.417,546,2.168,554,1.563,565,0.224,607,1.232,615,0.57,622,1.198,635,2.138,646,1.315,651,0.666,652,0.57,664,0.472,679,0.464,684,0.497,690,3.58,691,3.121,709,0.458,762,4.855,791,1.806,823,2.419,855,2.415,863,1.153,866,2.415,869,0.959,874,1.587,889,5.107,908,2.469,917,1.198,961,1.393,966,1.024,980,1.079,1022,0.57,1080,0.458,1145,0.57,1164,0.588,1166,1.113,1167,1.315,1191,1.791,1216,1.024,1217,0.507,1236,1.585,1255,2.899,1289,1.079,1315,2.644,1382,0.541,1422,3.42,1502,2.168,1575,1.064,1668,2.28,1748,0.555,1762,1.731,1813,2.964,1830,0.94,1865,1,1897,1.05,2055,2.168,2061,4.683,2144,0.609,2145,1,2146,0.978,2170,3.605,2171,1.46,2172,1.46,2173,5.698,2174,1.46,2175,1.339,2176,2.637,2177,4.737,2178,2.637,2179,1.2,2180,3.605,2181,1.46,2182,2.367,2183,1.46,2184,2.637,2185,1.46,2186,1.46,2187,1.46,2188,1.46,2189,1.46,2190,1.46,2191,6.213,2192,1.46,2193,1.46,2194,1.46,2195,1.46,2196,1.46,2197,1.339,2198,1.46,2199,1.46,2200,1.46,2201,2.637,2202,1.46,2203,1.46,2204,1.46,2205,1.113,2206,1.153,2207,1.46,2208,1.46,2209,1.46,2210,1.46,2211,1.46,2212,1.46,2213,1.46,2214,1.46,2215,1.46,2216,1.585,2217,4.416,2218,1.46,2219,1.46,2220,1.46,2221,1.153,2222,1.46,2223,1.46,2224,1.46,2225,1.339,2226,2.637,2227,2.419,2228,2.637,2229,4.416,2230,4.683,2231,1.46,2232,1.2,2233,2.637,2234,1.46,2235,1.46,2236,1.46,2237,4.416,2238,2.637,2239,2.637,2240,1.46,2241,2.637,2242,1.46,2243,1.46,2244,1.46,2245,1.46,2246,1.46,2247,1.46,2248,1.46,2249,0.708,2250,0.772,2251,1.46,2252,1.641,2253,0.772,2254,1.46,2255,0.772,2256,0.772,2257,0.772,2258,0.772,2259,0.772,2260,0.772,2261,0.666,2262,0.634,2263,0.772,2264,0.772,2265,1.2,2266,7.819,2267,1.339,2268,1.339,2269,1.585,2270,1.339,2271,1.793,2272,1.153,2273,0.708,2274,0.609,2275,0.588,2276,0.609,2277,0.708,2278,1.153,2279,0.708,2280,1,2281,0.588,2282,0.634,2283,1.339,2284,0.634,2285,0.772,2286,0.588,2287,0.708,2288,0.708,2289,0.609,2290,0.708,2291,0.708,2292,0.609,2293,0.772,2294,0.609,2295,0.772,2296,1.153,2297,0.708,2298,1.153,2299,0.772,2300,0.772,2301,1.153,2302,1.153,2303,0.708,2304,0.708,2305,0.609,2306,0.772,2307,0.666,2308,0.609,2309,0.708,2310,0.609,2311,0.708,2312,1.153,2313,0.708,2314,0.708,2315,0.57,2316,0.609,2317,0.708,2318,2.082,2319,1.46,2320,1.46,2321,0.588,2322,0.708,2323,0.772,2324,1.46,2325,1.46,2326,0.772,2327,0.57]],["t/350",[4,0.567,12,0.626,21,0.233,59,6.084,60,4.875,110,0.6,125,0.578,508,2.918]],["t/352",[4,0.617,12,0.321,21,0.119,69,1.175,110,0.308,125,0.435,128,1.748,132,1.267,193,1.692,204,2.053,252,3.341,253,3.398,258,3.659,268,1.9,269,1.924,367,2.072,1168,5.199,1830,6.764,2003,5.709,2265,5.944,2266,10.212,2328,6.238,2329,7.231,2330,11.134,2331,11.134,2332,7.764,2333,5.709,2334,7.231,2335,5.944,2336,7.231,2337,5.513,2338,5.944,2339,7.231,2340,5.944]],["t/354",[4,0.617,12,0.482,21,0.232,69,1.203,110,0.462,125,0.445,128,2.317,132,1.679,193,1.733,194,6.389,252,3.421,253,3.481,258,3.149,508,2.246,552,4.861,1173,7.307,2341,6.389,2342,5.847,2343,7.566,2344,8.791,2345,9.584,2346,6.793,2347,5.847]],["t/356",[10,1.81,19,2.622,20,2.463,21,0.205,26,2.433,28,2.077,32,2.345,54,2.334,65,2.303,102,2.334,144,1.922,146,2.537,173,2.421,204,2.409,229,2.158,273,2.214,302,2.466,322,2.334,326,2.398,352,2.513,449,2.273,495,2.421,565,2.466,566,2.454]],["t/358",[4,0.625,10,0.501,12,0.153,21,0.057,49,2.835,51,0.981,52,0.924,66,2.158,69,1.441,107,2.962,110,0.147,123,2.361,125,0.315,128,2.49,132,1.74,155,3.891,189,0.936,193,0.55,213,6.711,242,0.93,246,0.641,258,3.191,285,2.958,307,1.019,326,0.664,462,2.943,463,1.609,468,4.245,687,3.671,708,2.412,767,2.58,779,4.305,845,4.718,867,5.176,874,3.724,876,3.669,953,3.676,1653,3.472,1827,1.609,2348,4.007,2349,4.718,2350,5.338,2351,6.188,2352,6.188,2353,4.007,2354,4.007,2355,4.007,2356,4.007,2357,3.164,2358,6.933,2359,3.676,2360,4.007,2361,2.351,2362,2.156,2363,2.028,2364,1.792,2365,3.294,2366,1.69,2367,1.932,2368,2.351,2369,1.932,2370,6.944,2371,5.99,2372,4.804,2373,4.305,2374,2.351,2375,4.007,2376,1.932,2377,2.351,2378,2.156,2379,2.156,2380,2.351,2381,2.156,2382,2.351]],["t/360",[4,0.562,12,0.612,21,0.227,51,2.719,52,3.694,110,0.587,125,0.565,307,4.074,508,2.85,2364,7.166]],["t/362",[4,0.461,12,0.631,21,0.234,51,2.374,52,3.812,110,0.605,125,0.583,307,4.203,508,2.941]],["t/364",[21,0.233,26,2.242,28,2.355,144,2.179,173,2.744,229,2.447,273,2.51,449,2.577,495,2.744,565,2.796]],["t/366",[4,0.39,10,1.749,19,2.567,20,2.412,21,0.247,26,1.911,28,2.008,32,2.266,54,2.256,65,2.226,66,2.859,69,1.332,102,2.256,144,1.857,146,2.452,204,2.329,229,2.085,294,4.544,302,2.383,322,2.256,326,2.318,352,2.428,548,5.383,566,2.372,674,6.356,1907,6.474,2383,6.252,2384,7.075]],["t/368",[4,0.62,12,0.56,21,0.208,110,0.537,125,0.633,274,3.674,308,3.867,2385,9.662,2386,4.193]],["t/370",[4,0.618,12,0.421,21,0.212,69,1.614,110,0.404,125,0.669,132,1.866,158,3.948,244,3.778,246,2.388,1575,4.484,2385,8.035,2387,7.871,2388,8.035,2389,9.187,2390,7.557,2391,9.187,2392,8.76,2393,8.76,2394,3.778,2395,5.931]],["t/372",[4,0.601,12,0.491,21,0.234,39,4.08,69,1.225,110,0.471,125,0.68,132,1.699,246,2.644,247,5.75,367,2.779,555,6.177,569,5.287,2396,6.245,2397,6.133,2398,7.032,2399,9.698,2400,4.77,2401,4.612]],["t/374",[21,0.233,26,2.242,28,2.355,144,2.179,173,2.744,229,2.447,273,2.51,449,2.577,495,2.744,565,2.796]],["t/376",[4,0.372,10,2.327,19,2.494,20,2.343,21,0.24,26,1.825,28,1.918,30,3.183,32,2.164,54,2.155,65,2.126,66,3.804,102,2.155,103,4.715,144,1.774,146,2.342,155,2.615,204,2.224,229,1.992,294,4.341,302,2.276,322,2.155,326,2.214,352,2.319,548,6.521,554,4.644,566,2.266,674,6.175,2384,6.758,2402,6.758]],["t/378",[4,0.62,12,0.56,21,0.208,110,0.537,125,0.633,274,3.674,308,3.867,548,6.915,2386,4.193]],["t/380",[4,0.616,12,0.386,21,0.2,69,1.543,110,0.37,123,2.579,125,0.649,132,1.958,158,3.721,244,3.467,246,2.799,548,5.42,1289,6.103,1575,4.226,1661,5.787,2384,7.123,2387,7.59,2388,7.573,2389,8.859,2390,7.123,2391,8.859,2394,3.467,2395,5.441,2403,4.876,2404,8.257,2405,8.257,2406,8.257]],["t/382",[4,0.601,12,0.491,21,0.234,39,4.08,69,1.225,110,0.471,125,0.68,132,1.699,246,2.644,247,5.75,367,2.779,555,6.177,569,5.287,2396,6.245,2397,6.133,2398,7.032,2400,4.77,2401,4.612,2407,9.698]],["t/384",[21,0.233,26,2.242,28,2.355,144,2.179,173,2.744,229,2.447,273,2.51,449,2.577,495,2.744,565,2.796]],["t/386",[4,0.38,10,1.704,19,2.525,20,2.596,21,0.243,26,1.861,28,1.955,30,3.245,32,2.779,54,2.197,65,2.168,66,2.785,102,2.766,139,4.807,146,2.387,204,2.268,229,2.031,249,4.667,294,4.426,302,2.321,322,2.197,326,2.843,352,2.365,495,2.278,566,2.31,674,6.251,685,6.565,759,5.598]],["t/388",[1,0.565,4,0.624,6,0.552,10,0.573,12,0.067,19,0.675,21,0.046,26,0.447,30,1.366,33,0.787,35,3.137,49,2.808,51,0.47,59,2.503,63,1.987,65,1.568,66,2.447,67,1.655,69,0.806,70,2.838,76,2.321,94,1.345,99,0.513,110,0.064,120,0.665,123,2.531,125,0.115,128,1.813,129,2.128,132,1.601,144,0.234,155,1.498,169,1.437,193,0.629,219,0.621,228,0.707,242,0.759,249,1.965,251,0.724,256,2.487,258,3.478,266,1.721,273,0.269,283,2.135,285,0.618,322,0.528,347,0.595,350,1.213,359,0.724,367,2.583,399,1.463,420,2.503,428,0.742,434,1.84,438,0.498,449,0.901,456,1.7,457,1.463,458,7.218,462,0.615,467,0.523,468,0.886,472,1.528,477,1.314,486,1.077,501,3.201,505,3.065,508,0.313,516,0.972,521,3.778,534,0.558,565,0.3,573,1.76,607,1.594,615,0.763,635,1.138,651,0.891,652,0.763,679,0.621,684,1.236,690,3.532,691,2.744,708,0.621,709,0.612,756,1.76,762,0.692,803,1.379,866,1.285,874,1.155,908,1.314,917,1.549,954,1.515,961,0.692,966,1.345,983,2.764,1022,0.763,1031,0.962,1080,0.612,1081,0.815,1114,1.379,1145,0.763,1164,0.787,1166,1.463,1167,0.653,1191,0.953,1217,0.678,1221,1.515,1315,2.207,1340,3.007,1354,0.849,1575,0.982,1748,0.742,1762,3.538,1827,0.707,1830,1.236,1865,1.314,2015,0.891,2040,1.655,2054,1.418,2055,2.764,2144,0.815,2145,1.314,2146,1.285,2177,1.463,2182,1.26,2267,1.76,2268,0.947,2269,2.049,2270,1.76,2271,2.319,2272,1.515,2273,0.947,2274,0.815,2275,0.787,2276,0.815,2277,0.947,2278,1.515,2279,0.947,2280,1.314,2281,0.787,2282,0.849,2283,1.76,2287,0.947,2288,0.947,2289,0.815,2290,0.947,2291,0.947,2292,0.815,2294,0.815,2296,1.515,2297,0.947,2298,1.515,2301,1.515,2302,1.515,2303,0.947,2304,0.947,2305,0.815,2307,0.891,2308,0.815,2309,0.947,2310,0.815,2311,0.947,2312,1.515,2313,0.947,2314,0.947,2315,0.763,2316,0.815,2317,0.947,2318,2.654,2321,0.787,2322,0.947,2327,0.763,2408,0.947,2409,1.032,2410,0.891,2411,1.032,2412,2.688,2413,1.032,2414,0.815,2415,1.919,2416,4.488,2417,1.919,2418,3.362,2419,3.362,2420,3.362,2421,3.362,2422,3.362,2423,1.919,2424,3.362,2425,3.362,2426,4.488,2427,1.919,2428,4.488,2429,1.919,2430,1.919,2431,1.919,2432,1.919,2433,1.919,2434,1.919,2435,1.919,2436,1.655,2437,1.76,2438,1.919,2439,1.919,2440,1.919,2441,1.76,2442,1.655,2443,1.919,2444,1.919,2445,1.919,2446,1.919,2447,1.919,2448,0.947,2449,0.947,2450,2.319,2451,1.76,2452,2.563,2453,0.947,2454,0.947,2455,0.947,2456,0.947,2457,0.947,2458,0.947,2459,0.947,2460,0.891,2461,0.947,2462,0.947,2463,0.947,2464,0.947,2465,0.947,2466,0.947,2467,0.947,2468,0.891,2469,0.947,2470,0.947,2471,1.032,2472,1.032,2473,1.032,2474,1.032,2475,1.032,2476,1.032,2477,1.032,2478,1.032,2479,1.032,2480,3.362,2481,1.919,2482,1.032,2483,1.032,2484,1.919,2485,1.032]],["t/390",[4,0.607,12,0.452,20,2.167,21,0.168,26,2.141,69,1.128,110,0.433,123,2.869,125,0.417,128,2.49,132,1.804,140,4.318,169,4.912,190,7.926,249,4.057,281,4.057,393,3.352,501,5.091,508,2.106,861,4.992,907,4.703,1241,7.926,1494,7.253,1502,7.552,2262,7.552,2486,6.943,2487,6.943,2488,8.427]],["t/392",[4,0.627,10,0.912,12,0.278,21,0.157,49,2.978,51,1.046,69,0.694,110,0.267,123,2.746,125,0.528,128,1.572,132,1.954,246,1.772,249,2.497,251,2.995,266,4.5,285,2.092,367,2.519,462,2.082,466,6.991,467,4.454,472,3.696,505,2.953,684,4.186,695,3.516,917,5.066,1112,4.556,1191,3.229,2216,4.956,2489,6.501,2490,6.501,2491,5.343,2492,4.956,2493,5.343,2494,5.608,2495,6.501,2496,5.608,2497,6.501,2498,6.501,2499,8.064]],["t/394",[1,3.155,4,0.604,6,3.082,10,1.726,12,0.375,21,0.139,26,1.885,33,4.395,51,1.411,59,6.754,99,2.863,110,0.36,125,0.346,128,1.394,132,1.872,144,1.305,155,1.924,249,4.729,273,1.504,350,3.645,367,2.319,420,6.754,467,2.921,508,1.748,708,3.47,954,6.389,1081,4.551,1221,6.389,1354,4.738,1827,3.947,2449,5.287,2450,8.068,2451,7.423,2452,7.731,2453,5.287,2454,5.287,2455,5.287,2456,5.287,2457,5.287,2458,5.287,2459,5.287,2460,4.973,2461,5.287,2462,5.287,2463,5.287,2464,5.287,2465,5.287,2466,5.287,2467,5.287,2468,4.973,2469,5.287,2470,5.287]],["t/396",[4,0.621,12,0.304,21,0.113,69,1.78,110,0.291,125,0.417,128,2.65,132,1.92,193,1.624,204,1.972,252,3.208,253,3.263,258,3.601,268,1.799,269,1.822,367,1.99,458,5.294,1168,4.992,1830,6.631,2003,5.482,2265,5.707,2328,5.99,2332,7.612,2333,5.482,2335,5.707,2337,5.294,2338,5.707,2340,5.707,2500,6.944,2501,10.297,2502,6.944,2503,6.944,2504,6.944]],["t/398",[10,1.81,19,2.622,20,2.463,21,0.205,26,2.433,28,2.077,32,2.345,54,2.334,65,2.303,102,2.334,144,1.922,146,2.537,173,2.421,204,2.409,229,2.158,273,2.214,302,2.466,322,2.334,326,2.398,352,2.513,449,2.273,495,2.421,565,2.466,566,2.454]],["t/400",[2505,8.511]],["t/402",[4,0.617,12,0.423,21,0.157,51,1.591,52,2.555,110,0.406,125,0.641,128,2.125,132,2.014,246,2.397,321,5.212,327,6.702,695,4.755,1079,6.498,1092,4.7,1205,7.584,1967,8.064,2363,7.584,2506,6.94,2507,9.207,2508,8.791,2509,8.791,2510,8.791]],["t/404",[2,4.164,4,0.619,12,0.406,21,0.151,110,0.389,125,0.514,128,2.066,132,1.838,140,4.016,155,2.853,268,2.404,269,2.435,272,3.623,293,7.351,295,2.723,635,5.066,1494,6.746,1749,6.515,1797,6.746,2094,6.515,2507,7.372,2511,11.349,2512,8.545,2513,7.372,2514,8.545]],["t/406",[4,0.612,12,0.449,21,0.167,26,1.609,28,1.69,110,0.431,125,0.657,132,1.604,155,3.056,246,2.495,248,3.669,268,2.662,269,2.696,272,4.345,275,4.727,709,5.427,1206,5.427,2515,7.524,2516,7.524,2517,9.153,2518,9.153,2519,9.153,2520,7.524]],["t/408",[4,0.613,12,0.51,21,0.189,110,0.489,125,0.69,132,2.01,246,2.708,548,6.521,559,4.341,2387,8.481,2521,8.166,2522,9.934,2523,5.363]],["t/410",[10,1.81,19,2.622,20,2.463,21,0.205,26,2.433,28,2.077,32,2.345,54,2.334,65,2.303,102,2.334,144,1.922,146,2.537,173,2.421,204,2.409,229,2.158,273,2.214,302,2.466,322,2.334,326,2.398,352,2.513,449,2.273,495,2.421,565,2.466,566,2.454]],["t/412",[4,0.628,12,0.24,21,0.089,49,4.66,110,0.23,125,0.349,155,3.575,160,3.003,173,1.053,193,0.864,252,1.706,253,1.735,258,3.227,265,8.611,266,4.805,322,1.016,438,1.783,515,4.772,863,4.583,869,3.811,874,3.494,882,3.889,916,2.335,1191,2.884,1650,2.128,1815,8.611,2280,2.528,2410,5.009,2524,5.806,2525,5.806,2526,5.806,2527,3.692,2528,3.692,2529,3.692,2530,3.692,2531,3.692,2532,3.692,2533,3.692,2534,3.692,2535,3.692,2536,3.692,2537,3.692,2538,3.692,2539,3.692,2540,3.692,2541,3.387,2542,3.692,2543,8.11,2544,3.387,2545,3.692,2546,3.387,2547,3.692,2548,3.387,2549,3.692,2550,2.915,2551,3.387,2552,3.692,2553,3.387,2554,3.387,2555,3.692,2556,3.387,2557,3.692,2558,3.185]],["t/414",[4,0.622,12,0.537,21,0.248,69,1.815,110,0.515,125,0.617,126,6.295,547,5.256,2550,8.106]],["t/416",[4,0.624,12,0.513,21,0.241,69,1.281,110,0.683,125,0.6,1080,5.914,2550,7.875,2559,9.975,2560,6.48,2561,6.01]],["t/418",[4,0.616,12,0.462,21,0.225,69,1.154,110,0.443,125,0.665,128,2.255,132,1.938,158,4.204,246,2.543,1031,4.679,1253,8.73,1254,7.364,1255,6.123,1257,5.417,2550,7.364,2562,9.328,2563,9.328]],["t/420",[4,0.614,12,0.5,21,0.237,51,1.881,69,1.248,110,0.48,125,0.745,132,1.72,246,2.676,2564,10.45,2565,9.815,2566,9.815,2567,4.777]],["t/422",[4,0.584,12,0.581,21,0.26,69,1.449,110,0.557,125,0.647,128,2.603,132,1.886,160,4.614,1621,4.519,2568,10.766]],["t/424",[10,1.81,19,2.622,20,2.463,21,0.205,26,2.433,28,2.077,32,2.345,54,2.334,65,2.303,102,2.334,144,1.922,146,2.537,173,2.421,204,2.409,229,2.158,273,2.214,302,2.466,322,2.334,326,2.398,352,2.513,449,2.273,495,2.421,565,2.466,566,2.454]],["t/426",[4,0.569,12,0.576,21,0.214,110,0.553,125,0.72,132,1.878,246,2.922,274,3.781,2386,4.315,2569,8.81,2570,9.831]],["t/428",[4,0.603,12,0.5,21,0.237,69,1.248,110,0.48,125,0.685,132,1.72,246,2.676,247,5.819,367,2.813,555,5.656,2396,6.32,2397,6.207,2398,7.081,2400,4.86,2401,4.699,2571,9.815]],["t/430",[4,0.625,12,0.523,21,0.244,69,1.306,110,0.502,125,0.607,314,6.277,2394,4.698,2570,9.263,2572,6.078]],["t/432",[10,1.81,19,2.622,20,2.463,21,0.205,26,2.433,28,2.077,32,2.345,54,2.334,65,2.303,102,2.334,144,1.922,146,2.537,173,2.421,204,2.409,229,2.158,273,2.214,302,2.466,322,2.334,326,2.398,352,2.513,449,2.273,495,2.421,565,2.466,566,2.454]],["t/434",[4,0.619,12,0.552,21,0.205,110,0.53,125,0.628,274,3.623,308,3.834,2386,4.135,2573,9.01,2574,5.938]],["t/436",[4,0.624,12,0.545,21,0.202,110,0.522,125,0.622,268,3.227,269,3.268,272,3.848,2575,10.355]],["t/438",[4,0.614,12,0.52,21,0.193,69,1.297,110,0.498,125,0.48,128,1.931,132,1.4,158,4.532,193,1.868,258,2.625,319,6.089,508,2.422,868,5.598,1621,4.046,1650,4.602,2573,8.676,2576,6.565,2577,7.987,2578,7.987,2579,7.326]],["t/440",[10,1.81,19,2.622,20,2.463,21,0.205,26,2.433,28,2.077,32,2.345,54,2.334,65,2.303,102,2.334,144,1.922,146,2.537,173,2.421,204,2.409,229,2.158,273,2.214,302,2.466,322,2.334,326,2.398,352,2.513,449,2.273,495,2.421,565,2.466,566,2.454]],["t/442",[2505,8.511]],["t/444",[4,0.618,12,0.548,21,0.204,51,2.063,52,3.312,110,0.526,125,0.625,307,3.652,308,3.818,1962,8.21,2580,8.548]],["t/446",[4,0.623,12,0.537,21,0.2,110,0.515,125,0.617,268,3.183,269,3.224,272,4.153,295,3.606,2580,8.44]],["t/448",[4,0.612,12,0.449,21,0.167,26,2.651,28,1.69,69,1.487,110,0.431,125,0.657,132,1.604,246,2.495,248,3.669,268,2.662,269,2.696,272,3.401,275,4.727,709,5.427,1206,5.427,2515,7.524,2516,7.524,2520,7.524,2581,9.153,2582,9.153,2583,9.153]],["t/450",[4,0.614,12,0.513,21,0.191,110,0.492,125,0.691,132,2.015,246,2.719,548,6.548,2387,8.501,2521,8.199,2523,5.398,2584,9.975]],["t/452",[21,0.233,26,2.242,28,2.355,144,2.179,173,2.744,229,2.447,273,2.51,449,2.577,495,2.744,565,2.796]],["t/454",[4,0.38,10,1.704,19,2.525,20,2.596,21,0.243,26,1.861,28,1.955,30,3.245,32,2.779,54,2.197,65,2.168,66,2.785,102,2.766,139,4.807,146,2.387,204,2.268,229,2.031,294,4.426,302,2.321,322,2.197,326,2.843,352,2.365,495,2.278,566,2.31,674,6.251,681,5.051,685,6.565,759,5.598]],["t/456",[4,0.625,10,0.354,12,0.108,21,0.04,22,1.136,23,0.824,26,0.386,35,3.162,44,0.816,49,1.354,63,4.118,65,1.677,66,2.154,69,0.905,110,0.184,120,1.068,125,0.178,128,2.71,132,1.983,155,1.335,169,1.58,193,0.935,219,0.998,222,1.014,244,1.727,252,0.766,253,0.779,254,1.162,256,4.183,258,3.835,283,2.657,285,1.563,322,0.813,367,1.77,449,1.071,456,2.529,457,2.254,462,1.555,463,2.024,468,1.366,486,1.659,501,0.919,516,1.498,534,0.897,558,0.908,565,0.482,607,2.878,652,1.226,664,1.807,684,1.903,690,5.17,691,3.406,709,0.983,849,2.024,917,2.304,961,1.111,1031,0.832,1051,2.43,1094,1.521,1114,2.125,1145,1.226,1163,1.94,1164,1.264,1167,1.049,1191,1.468,1217,1.089,1244,2.125,1340,1.98,1341,1.089,1382,1.162,1656,1.111,1748,1.192,1865,2.024,2055,1.363,2145,2.024,2146,1.98,2177,2.254,2269,2.254,2271,3.45,2272,2.334,2274,1.309,2275,1.264,2276,1.309,2278,2.334,2280,2.024,2281,1.264,2284,2.43,2286,1.264,2289,1.309,2292,1.309,2294,2.334,2296,2.334,2298,2.334,2301,2.334,2302,2.334,2305,1.309,2308,1.309,2310,1.309,2312,2.334,2315,1.226,2316,1.309,2318,2.334,2321,1.264,2585,4.855,2586,2.956,2587,2.956,2588,2.956,2589,2.956,2590,2.956,2591,2.956,2592,2.956,2593,2.956,2594,3.999,2595,1.658,2596,2.956,2597,1.363,2598,1.521,2599,1.264,2600,1.658,2601,1.658,2602,1.309,2603,2.956,2604,2.334,2605,1.658,2606,1.658,2607,1.658,2608,1.658,2609,1.431,2610,1.658,2611,2.956,2612,1.658,2613,1.658,2614,1.658,2615,1.658,2616,1.658,2617,1.658,2618,1.658,2619,1.658,2620,1.431,2621,1.658,2622,1.658,2623,1.658,2624,1.658,2625,1.658,2626,1.658,2627,1.658,2628,1.658,2629,1.431,2630,1.658,2631,1.431,2632,1.658]],["t/458",[4,0.628,12,0.36,21,0.134,110,0.345,123,3.109,125,0.657,128,1.9,132,1.915,193,1.838,246,2.142,285,2.53,462,2.517,684,5.061,1191,3.903,1244,5.65,1315,5.159,1340,5.265,1341,3.63,2179,6.46,2216,5.991,2633,9.955,2634,7.859]],["t/460",[4,0.622,12,0.225,21,0.083,69,0.894,110,0.215,125,0.331,128,2.823,132,2.046,193,1.288,204,1.563,222,4.79,252,2.543,253,2.587,258,3.77,268,1.331,269,1.348,295,3.421,367,1.578,434,4.288,1166,5.972,1168,3.958,1806,7.185,1830,5.872,2003,4.346,2265,4.525,2327,4.069,2328,4.749,2332,6.741,2333,4.346,2335,4.525,2337,4.197,2338,4.525,2340,4.525,2635,5.505,2636,5.505,2637,5.505,2638,5.505,2639,5.505,2640,5.505,2641,5.505,2642,5.505,2643,5.505,2644,5.505,2645,7.834,2646,5.505,2647,5.505,2648,5.505,2649,5.505,2650,5.505,2651,5.505]],["t/462",[4,0.618,12,0.471,21,0.175,44,4.642,60,4.781,110,0.451,125,0.669,132,1.653,193,2.207,246,2.572,258,3.101,558,5.165,767,6.076,1163,6.194,1191,4.687,1341,4.746,2602,7.449,2652,8.14]],["t/464",[4,0.63,12,0.271,21,0.101,69,1.41,110,0.26,123,1.993,125,0.384,132,1.729,193,1.493,266,4.444,285,2.054,367,1.829,462,2.781,466,7.294,467,4.399,684,4.109,695,3.452,917,5.003,1112,4.473,1191,4.312,1244,4.588,1340,4.275,1341,2.738,2491,5.246,2492,4.865,2493,5.246,2494,5.505,2496,5.505,2653,5.853,2654,5.853,2655,5.853,2656,5.853,2657,5.853]],["t/466",[4,0.617,12,0.488,21,0.234,69,1.218,110,0.468,125,0.451,128,2.335,132,1.693,193,1.754,194,6.468,252,3.463,253,3.523,258,3.174,508,2.274,552,4.921,1173,7.364,2341,6.468,2342,5.919,2343,7.626,2346,6.876,2347,5.919,2658,9.66]],["t/468",[4,0.613,12,0.439,21,0.218,51,1.653,60,4.569,69,1.097,110,0.421,125,0.542,132,1.58,246,2.459,367,2.584,438,4.354,558,4.936,657,6.666,791,6.175,2602,7.12,2659,5.514,2660,8.556,2661,8.272,2662,7.78,2663,7.78,2664,7.78,2665,7.78,2666,8.272,2667,5.825]],["t/470",[4,0.62,12,0.435,21,0.216,51,1.635,60,4.536,69,1.085,110,0.417,125,0.649,132,1.569,246,2.441,248,3.589,249,5.231,367,2.565,425,6.617,558,4.9,1191,4.446,1422,7.228,2602,7.067,2668,6.436,2669,7.723,2670,8.211,2671,5.761]],["t/472",[4,0.62,10,1.698,12,0.367,21,0.192,44,3.916,51,1.379,60,4.033,69,0.915,110,0.351,123,2.486,125,0.603,132,1.759,193,1.862,246,2.17,258,2.616,367,2.281,467,4.033,558,6.017,767,5.127,1163,5.226,1191,3.954,2221,6.285,2602,6.285,2668,5.723,2672,6.868,2673,9.483,2674,6.544,2675,6.868,2676,6.868,2677,4.629]],["t/474",[4,0.629,12,0.36,21,0.19,69,1.485,110,0.49,123,1.727,125,0.472,132,1.602,193,1.294,266,4.023,285,1.78,367,1.585,462,2.517,465,4.771,466,6.758,467,3.982,508,1.677,684,3.561,695,2.991,917,4.529,1112,3.876,1191,3.903,1244,3.976,1340,3.705,1341,3.63,2491,4.545,2492,4.216,2493,4.545,2494,4.771,2496,4.771,2653,5.072,2654,5.072,2655,5.072,2656,5.072,2657,5.072]],["t/476",[10,1.81,19,2.622,20,2.463,21,0.205,26,2.433,28,2.077,32,2.345,54,2.334,65,2.303,102,2.334,144,1.922,146,2.537,173,2.421,204,2.409,229,2.158,273,2.214,302,2.466,322,2.334,326,2.398,352,2.513,449,2.273,495,2.421,565,2.466,566,2.454]],["t/478",[4,0.619,12,0.556,21,0.207,51,2.092,52,3.359,110,0.533,125,0.63,307,3.703,308,3.851,2452,7.996]],["t/480",[4,0.619,12,0.556,21,0.207,110,0.533,125,0.63,308,3.851,1736,5.851,2678,10.489,2679,9.62]],["t/482",[4,0.624,12,0.545,21,0.202,110,0.522,125,0.622,268,3.227,269,3.268,272,3.848,2680,10.355]],["t/484",[4,0.615,12,0.449,21,0.167,26,1.609,69,1.487,99,5.1,110,0.431,125,0.55,128,2.483,132,1.994,155,2.305,256,3.826,281,4.034,367,2.943,393,3.333,404,6.74,505,3.137,1092,3.691,2144,5.451,2262,5.675,2452,5.264,2681,6.904,2682,7.897,2683,6.904,2684,6.904,2685,6.904]],["t/486",[4,0.567,12,0.626,21,0.233,110,0.6,125,0.578,508,2.918,2452,7.335,2682,8.3]],["t/488",[4,0.613,12,0.494,21,0.235,69,1.233,110,0.474,125,0.682,132,1.706,246,2.654,367,2.79,555,5.611,2396,6.27,2397,6.157,2398,6.052,2400,4.8,2401,4.641,2686,6.824,2687,9.737]],["t/490",[4,0.624,12,0.52,21,0.243,69,1.297,110,0.498,125,0.604,1621,4.046,2452,7.667,2574,4.541,2679,9.225,2688,6.738]],["t/492",[10,1.81,19,2.622,20,2.463,21,0.205,26,2.433,28,2.077,32,2.345,54,2.334,65,2.303,102,2.334,144,1.922,146,2.537,173,2.421,204,2.409,229,2.158,273,2.214,302,2.466,322,2.334,326,2.398,352,2.513,449,2.273,495,2.421,565,2.466,566,2.454]],["t/494",[4,0.619,12,0.537,21,0.2,51,2.021,52,4.036,109,3.014,110,0.515,125,0.617,307,3.578,308,3.77,2689,9.641,2690,6.787]],["t/496",[4,0.567,12,0.626,21,0.233,110,0.6,125,0.578,508,2.918,2691,8.825,2692,8.3]],["t/498",[4,0.6,12,0.581,21,0.216,109,3.255,110,0.557,125,0.647,189,3.552,467,4.519,472,5.071,1440,5.368,2693,8.919,2694,8.919,2695,8.919]],["t/500",[4,0.617,10,1.58,12,0.482,21,0.179,69,1.557,70,4.683,110,0.462,125,0.639,128,1.791,132,1.679,246,2.019,283,3.186,767,6.172,1024,6.088,1134,5.646,2696,9.584,2697,7.406,2698,6.793,2699,7.406,2700,7.406,2701,7.406,2702,8.791,2703,7.406,2704,7.406]],["t/502",[4,0.616,10,0.991,12,0.302,21,0.112,30,2.813,49,3.172,69,1.49,70,6.202,94,3.257,110,0.29,125,0.279,128,1.674,132,1.719,140,2.184,169,2.484,189,1.851,224,2.513,246,1.267,258,2.275,266,2.379,281,2.715,283,4.219,284,5.279,285,2.229,295,2.029,323,2.755,367,1.984,434,2.544,468,3.199,505,2.111,695,2.513,779,3.82,868,4.853,869,3.05,907,2.379,917,3.99,968,3.257,1024,5.691,1079,3.435,1092,2.484,1134,5.279,1167,5.233,1168,3.341,1216,3.257,1440,2.797,1575,2.379,1690,3.669,1851,5.691,1887,4.009,2332,3.435,2689,4.009,2692,5.973,2698,4.262,2705,4.647,2706,4.647,2707,4.647,2708,4.647,2709,4.647,2710,6.924,2711,4.647,2712,4.647,2713,4.647,2714,6.924,2715,4.647,2716,5.973,2717,4.647,2718,4.009,2719,3.435,2720,4.009,2721,4.262,2722,4.647,2723,4.647,2724,4.647]],["t/504",[4,0.613,9,5.292,12,0.479,21,0.231,57,4.302,69,1.196,110,0.459,125,0.674,132,1.964,239,3.73,241,4.365,242,2.912,246,2.603,248,3.827,321,5.66,679,4.431,2686,6.691,2691,6.752,2692,9.14,2725,9.547]],["t/506",[10,1.81,19,2.622,20,2.463,21,0.205,26,2.433,28,2.077,32,2.345,54,2.334,65,2.303,102,2.334,144,1.922,146,2.537,173,2.421,204,2.409,229,2.158,273,2.214,302,2.466,322,2.334,326,2.398,352,2.513,449,2.273,495,2.421,565,2.466,566,2.454]],["t/508",[4,0.624,12,0.545,21,0.202,110,0.522,125,0.622,268,3.227,269,3.268,272,3.848,2726,10.355]],["t/510",[4,0.619,12,0.556,21,0.207,51,2.092,52,3.359,110,0.533,125,0.63,307,3.703,308,3.851,2727,8.621]],["t/512",[4,0.625,12,0.534,21,0.198,110,0.512,125,0.615,2394,4.792,2572,6.155,2727,8.405,2728,10.225]],["t/514",[4,0.567,12,0.626,21,0.233,110,0.6,125,0.578,508,2.918,2727,7.908,2729,8.825]],["t/516",[4,0.624,12,0.507,21,0.239,51,1.905,69,1.264,110,0.486,125,0.595,242,3.079,1133,5.866,1630,5.013,2567,4.838,2727,8.941,2729,7.139]],["t/518",[10,1.81,19,2.622,20,2.463,21,0.205,26,2.433,28,2.077,32,2.345,54,2.334,65,2.303,102,2.334,144,1.922,146,2.537,173,2.421,204,2.409,229,2.158,273,2.214,302,2.466,322,2.334,326,2.398,352,2.513,449,2.273,495,2.421,565,2.466,566,2.454]],["t/520",[4,0.619,12,0.556,21,0.207,51,2.092,52,3.359,110,0.533,125,0.63,307,3.703,308,3.851,2730,9.62]],["t/522",[4,0.62,12,0.564,21,0.209,110,0.541,125,0.636,308,3.884,1736,5.934,2731,9.704]],["t/524",[4,0.626,12,0.523,21,0.194,110,0.502,125,0.607,268,3.1,269,3.139,272,3.752,2732,10.099,2733,10.099]],["t/526",[4,0.613,12,0.494,21,0.235,69,1.233,110,0.474,125,0.682,132,1.706,246,2.654,367,2.79,555,5.611,2396,6.27,2397,6.157,2398,6.052,2400,4.8,2401,4.641,2686,6.824,2734,9.737]],["t/528",[4,0.624,12,0.52,21,0.243,69,1.297,110,0.498,125,0.604,1621,4.046,2574,4.541,2688,6.738,2730,9.225,2731,9.225]],["t/530",[10,1.81,19,2.622,20,2.463,21,0.205,26,2.433,28,2.077,32,2.345,54,2.334,65,2.303,102,2.334,144,1.922,146,2.537,173,2.421,204,2.409,229,2.158,273,2.214,302,2.466,322,2.334,326,2.398,352,2.513,449,2.273,495,2.421,565,2.466,566,2.454]],["t/532",[4,0.618,12,0.545,21,0.202,51,2.049,52,4.07,109,3.055,110,0.522,125,0.622,307,3.627,308,3.802,2350,8.933,2735,6.88]],["t/534",[4,0.631,10,0.988,12,0.301,21,0.112,69,0.752,103,4.156,110,0.289,125,0.415,128,1.119,129,3.274,132,0.811,155,2.305,220,4.839,393,2.235,687,4.839,2736,5.956,2737,6.904,2738,9.154,2739,6.904,2740,6.904,2741,6.333,2742,6.904,2743,6.904,2744,5.675,2745,5.264,2746,6.904,2747,6.904,2748,6.904,2749,6.904,2750,6.904,2751,6.904,2752,6.904,2753,6.904,2754,4.629]],["t/536",[2,3.314,4,0.626,12,0.222,21,0.082,35,2.787,57,3.181,69,1.472,110,0.212,123,1.7,125,0.545,128,1.316,132,0.954,155,1.817,193,1.274,246,1.484,258,1.789,268,2.099,269,1.329,272,3.367,273,1.42,274,2.324,299,3.914,367,1.56,438,2.628,543,8.727,545,4.696,546,4.475,615,4.024,1008,4.475,1227,4.298,1549,3.727,1668,3.442,1749,4.15,2735,4.475,2755,2.448,2756,5.444,2757,5.444,2758,5.444,2759,4.696,2760,5.444,2761,5.444,2762,7.771,2763,5.444,2764,4.993,2765,5.444,2766,5.444,2767,5.444,2768,5.444,2769,5.444,2770,5.444,2771,5.444,2772,5.444,2773,4.993,2774,5.444,2775,5.444,2776,5.444,2777,5.444,2778,4.696,2779,4.993,2780,4.993,2781,5.444,2782,7.771,2783,5.444,2784,5.444]],["t/538",[4,0.609,12,0.5,21,0.237,69,1.248,110,0.48,125,0.685,132,1.72,239,3.894,241,4.557,246,2.676,505,4.459,2785,11.393,2786,11.393,2787,9.815,2788,9.815]],["t/540",[4,0.626,12,0.237,21,0.172,49,2.635,66,2.817,69,0.934,110,0.228,123,1.796,125,0.428,128,1.953,129,4.428,132,1.775,160,3.682,242,1.443,248,3.239,256,4.477,272,2.137,273,0.952,274,1.558,308,1.339,367,1.648,449,1.54,485,5.413,1549,2.498,1575,2.944,1621,1.848,1626,3.637,1631,4.727,1634,7.723,1649,5.304,1654,4.031,1657,2.395,1668,3.637,1672,5.663,1897,4.135,2350,4.962,2386,1.778,2735,2.999,2789,5.751,2790,5.751,2791,4.962,2792,8.036,2793,5.275,2794,6.379,2795,4.962,2796,5.275,2797,4.962,2798,6.641,2799,5.275,2800,5.751,2801,5.275]],["t/542",[4,0.618,12,0.534,21,0.247,69,1.332,110,0.512,125,0.615,273,2.14,274,3.502,308,3.754,1549,5.615,1657,5.383,2386,3.996,2735,6.741,2792,8.405]],["t/544",[10,1.81,19,2.622,20,2.463,21,0.205,26,2.433,28,2.077,32,2.345,54,2.334,65,2.303,102,2.334,144,1.922,146,2.537,173,2.421,204,2.409,229,2.158,273,2.214,302,2.466,322,2.334,326,2.398,352,2.513,449,2.273,495,2.421,565,2.466,566,2.454]],["t/546",[4,0.616,12,0.534,21,0.198,51,2.008,52,3.223,110,0.512,125,0.615,307,3.554,308,3.754,1962,8.072,2802,10.225,2803,10.225,2804,10.225]],["t/548",[4,0.624,12,0.545,21,0.202,110,0.522,125,0.622,268,3.227,269,3.268,272,3.848,2805,10.355]],["t/550",[4,0.614,12,0.513,21,0.191,110,0.492,125,0.691,132,2.015,246,2.719,548,6.548,2387,8.501,2521,8.199,2523,5.398,2806,9.975]],["t/552",[10,1.81,19,2.622,20,2.463,21,0.205,26,2.433,28,2.077,32,2.345,54,2.334,65,2.303,102,2.334,144,1.922,146,2.537,173,2.421,204,2.409,229,2.158,273,2.214,302,2.466,322,2.334,326,2.398,352,2.513,449,2.273,495,2.421,565,2.466,566,2.454]],["t/554",[4,0.579,9,6.706,12,0.607,21,0.225,69,1.515,110,0.582,125,0.561,393,4.503,508,2.829,2807,9.328,2808,9.328]],["t/556",[4,0.618,12,0.548,21,0.204,51,2.063,52,3.312,110,0.526,125,0.625,307,3.652,308,3.818,2809,10.399,2810,8.971]],["t/558",[4,0.618,12,0.545,21,0.202,110,0.522,125,0.622,274,3.574,308,3.802,2386,4.078,2811,9.498,2812,9.498,2813,9.498]],["t/560",[4,0.626,12,0.349,21,0.13,69,1.757,110,0.335,123,2.4,125,0.462,128,2.614,132,1.895,193,1.798,258,2.526,268,2.067,269,2.093,272,2.856,1168,5.525,1285,6.068,1830,4.949,2332,5.681,2381,7.05,2814,7.686,2815,7.686,2816,7.686,2817,7.686,2818,7.686,2819,7.686,2820,7.686,2821,7.686,2822,7.686]],["t/562",[4,0.567,12,0.626,21,0.233,110,0.6,125,0.578,508,2.918,2823,8.825,2824,8.825]],["t/564",[4,0.601,12,0.488,21,0.234,69,1.218,110,0.468,125,0.678,132,1.693,246,2.633,247,6.692,367,2.768,555,5.566,2396,6.22,2397,6.108,2398,7.016,2400,4.741,2401,4.584,2825,9.66,2826,9.66]],["t/566",[4,0.627,12,0.491,21,0.234,69,1.225,110,0.471,125,0.583,2394,4.408,2572,5.837,2810,8.366,2811,8.895,2813,8.895,2827,7.394]],["t/568",[4,0.623,12,0.277,21,0.212,66,3.06,69,0.692,110,0.266,123,2.025,125,0.39,128,2.122,129,4.161,132,1.952,140,3.047,155,2.164,160,4.061,169,3.466,248,2.599,256,3.593,367,1.858,449,1.736,501,3.593,907,3.319,1318,5.593,1575,3.319,1621,2.157,1626,4.1,1649,4.256,1654,4.544,1668,4.1,1672,4.544,1897,4.661,2460,5.593,2793,8.049,2794,6.928,2795,5.593,2796,5.947,2797,5.593,2798,5.329,2810,5.593,2812,5.947,2827,4.943,2828,6.483,2829,6.483,2830,6.483,2831,6.483,2832,6.483,2833,6.483,2834,6.483]],["t/570",[4,0.622,12,0.471,20,2.226,21,0.269,51,1.77,54,2.596,69,1.175,110,0.451,125,0.567,242,2.861,1133,6.601,1630,4.781,2567,4.494,2823,6.632,2824,10.593]],["t/572",[10,1.81,19,2.622,20,2.463,21,0.205,26,2.433,28,2.077,32,2.345,54,2.334,65,2.303,102,2.334,144,1.922,146,2.537,173,2.421,204,2.409,229,2.158,273,2.214,302,2.466,322,2.334,326,2.398,352,2.513,449,2.273,495,2.421,565,2.466,566,2.454]],["t/574",[4,0.624,12,0.545,21,0.202,110,0.522,125,0.622,268,3.227,269,3.268,272,3.848,2835,10.355]],["t/576",[4,0.619,12,0.556,21,0.207,51,2.092,52,3.359,110,0.533,125,0.63,307,3.703,308,3.851,2836,10.489]],["t/578",[10,1.81,19,2.622,20,2.463,21,0.205,26,2.433,28,2.077,32,2.345,54,2.334,65,2.303,102,2.334,144,1.922,146,2.537,173,2.421,204,2.409,229,2.158,273,2.214,302,2.466,322,2.334,326,2.398,352,2.513,449,2.273,495,2.421,565,2.466,566,2.454]],["t/580",[4,0.619,12,0.556,21,0.207,51,2.092,52,3.359,110,0.533,125,0.63,307,3.703,308,3.851,2837,8.621]],["t/582",[4,0.619,12,0.552,21,0.205,110,0.53,125,0.628,274,3.623,308,3.834,559,5.787,2386,4.135,2837,8.584]],["t/584",[4,0.624,12,0.545,21,0.202,110,0.522,125,0.622,268,3.227,269,3.268,272,3.848,2838,10.355]],["t/586",[4,0.625,12,0.523,21,0.244,69,1.306,110,0.502,125,0.607,2394,4.698,2572,6.078,2837,8.301,2839,10.099]],["t/588",[10,1.81,19,2.622,20,2.463,21,0.205,26,2.433,28,2.077,32,2.345,54,2.334,65,2.303,102,2.334,144,1.922,146,2.537,173,2.421,204,2.409,229,2.158,273,2.214,302,2.466,322,2.334,326,2.398,352,2.513,449,2.273,495,2.421,565,2.466,566,2.454]],["t/590",[4,0.614,12,0.516,21,0.192,35,4.062,39,4.292,51,1.943,52,3.937,110,0.495,125,0.602,307,3.439,308,3.677,1113,9.187,2840,10.016,2841,10.016,2842,9.187,2843,10.016]],["t/592",[4,0.601,12,0.612,21,0.227,35,4.811,110,0.587,125,0.668,2844,8.621]],["t/594",[4,0.617,12,0.482,21,0.232,35,5.439,69,1.203,110,0.462,125,0.716,132,1.679,196,5.324,239,4.856,241,4.391,242,2.93,244,4.328,245,5.646,246,2.613,247,5.682,248,3.842,2844,6.793]],["t/596",[10,1.81,19,2.622,20,2.463,21,0.205,26,2.433,28,2.077,32,2.345,54,2.334,65,2.303,102,2.334,144,1.922,146,2.537,173,2.421,204,2.409,229,2.158,273,2.214,302,2.466,322,2.334,326,2.398,352,2.513,449,2.273,495,2.421,565,2.466,566,2.454]],["t/598",[4,0.581,12,0.612,21,0.227,110,0.587,125,0.565,158,4.236,508,2.85,2401,5.747,2845,9.399,2846,8.621]],["t/600",[4,0.619,12,0.556,21,0.207,51,2.092,52,3.359,110,0.533,125,0.63,307,3.703,308,3.851,2846,9.62]],["t/602",[4,0.624,12,0.545,21,0.202,110,0.522,125,0.622,268,3.227,269,3.268,272,3.848,2847,10.355]],["t/604",[10,1.81,19,2.622,20,2.463,21,0.205,26,2.433,28,2.077,32,2.345,54,2.334,65,2.303,102,2.334,144,1.922,146,2.537,173,2.421,204,2.409,229,2.158,273,2.214,302,2.466,322,2.334,326,2.398,352,2.513,449,2.273,495,2.421,565,2.466,566,2.454]],["t/606",[4,0.627,12,0.311,21,0.115,110,0.298,125,0.425,128,2.247,132,1.628,193,1.653,244,5.43,258,3.054,268,1.841,269,1.864,272,2.625,367,2.663,449,2.489,2745,7.085,2848,7.064,2849,7.085,2850,9.293,2851,8.017,2852,9.293,2853,7.064,2854,8.524,2855,9.293,2856,9.293,2857,9.293,2858,7.064]],["t/608",[4,0.606,12,0.5,21,0.186,51,1.881,52,3.021,110,0.48,125,0.685,132,1.72,246,2.676,307,3.331,327,7.483,2859,8.994,2860,7.748,2861,8.467,2862,8.467,2863,9.002,2864,9.002]],["t/610",[4,0.567,12,0.626,21,0.233,110,0.6,125,0.578,508,2.918,2860,7.596,2865,8.825]],["t/612",[4,0.624,12,0.507,21,0.239,51,1.905,69,1.264,110,0.486,125,0.595,242,3.079,1133,5.866,1630,5.013,2567,4.838,2860,8.587,2865,7.139]],["t/614",[4,0.615,12,0.454,21,0.223,69,1.134,110,0.436,123,2.88,125,0.66,132,1.925,246,2.514,367,2.643,555,5.314,1661,6.464,2396,5.939,2397,5.832,2398,5.732,2400,4.416,2401,4.27,2686,6.464,2866,9.222,2867,9.222,2868,9.222]],["t/616",[4,0.625,12,0.392,21,0.202,69,1.555,110,0.376,123,2.605,125,0.621,132,1.811,246,2.274,505,3.79,1258,5.1,1562,6.856,1621,3.05,1661,5.846,2574,3.423,2860,6.585,2869,7.651,2870,10.334,2871,8.341,2872,7.196,2873,8.341,2874,7.196,2875,6.856]],["t/618",[4,0.599,12,0.572,21,0.258,69,1.428,110,0.549,125,0.528,132,1.54,158,4.809,246,2.397,508,2.666,638,7.584,639,7.226,2864,8.063,2876,8.791]],["t/620",[10,1.81,19,2.622,20,2.463,21,0.205,26,2.433,28,2.077,32,2.345,54,2.334,65,2.303,102,2.334,144,1.922,146,2.537,173,2.421,204,2.409,229,2.158,273,2.214,302,2.466,322,2.334,326,2.398,352,2.513,449,2.273,495,2.421,565,2.466,566,2.454]],["t/622",[4,0.619,12,0.556,21,0.207,51,2.092,52,3.359,110,0.533,125,0.63,307,3.703,308,3.851,2877,8.621]],["t/624",[4,0.624,12,0.545,21,0.202,110,0.522,125,0.622,268,3.227,269,3.268,272,3.848,2877,8.512]],["t/626",[4,0.625,12,0.523,21,0.244,69,1.306,110,0.502,125,0.607,2523,5.504,2572,6.078,2877,9.52]],["t/628",[10,1.81,19,2.622,20,2.463,21,0.205,26,2.433,28,2.077,32,2.345,54,2.334,65,2.303,102,2.334,144,1.922,146,2.537,173,2.421,204,2.409,229,2.158,273,2.214,302,2.466,322,2.334,326,2.398,352,2.513,449,2.273,495,2.421,565,2.466,566,2.454]],["t/630",[4,0.619,12,0.556,21,0.207,51,2.092,52,3.359,110,0.533,125,0.63,307,3.703,308,3.851,2878,9.62]],["t/632",[4,0.627,12,0.398,19,2.116,20,2.453,21,0.148,30,3.424,110,0.381,125,0.507,152,6.23,268,2.356,269,2.386,272,3.131,323,4.997,517,7.73,569,5.907,2206,6.653,2574,4.791,2878,9.539,2879,8.428,2880,8.428,2881,8.428,2882,8.428]],["t/634",[4,0.566,12,0.621,21,0.231,110,0.596,125,0.574,434,5.225,508,2.895,2883,7.847,2884,7.278]],["t/636",[4,0.564,12,0.616,21,0.229,110,0.591,125,0.569,434,5.185,508,2.873,1197,6.346,2883,7.786,2884,7.221]],["t/638",[4,0.468,12,0.641,21,0.238,110,0.615,125,0.592,508,2.988,1197,6.601]],["t/640",[4,0.619,12,0.457,21,0.266,69,1.141,110,0.438,125,0.662,132,1.622,239,4.69,241,4.164,242,2.778,246,2.524,247,5.489,248,3.711,266,4.739,434,3.844,547,3.595,2883,5.773,2884,5.354,2885,8.491,2886,8.491,2887,8.491]],["t/642",[4,0.628,12,0.386,21,0.2,56,3.751,69,1.543,110,0.37,125,0.617,177,6.103,242,2.347,266,4.226,434,3.247,473,4.895,547,3.037,640,4.575,643,4.062,1197,3.974,1427,6.103,1429,7.123,2883,4.876,2884,4.523,2885,9.419,2886,7.573,2887,7.573,2888,8.257]],["t/644",[10,1.81,19,2.622,20,2.463,21,0.205,26,2.433,28,2.077,32,2.345,54,2.334,65,2.303,102,2.334,144,1.922,146,2.537,173,2.421,204,2.409,229,2.158,273,2.214,302,2.466,322,2.334,326,2.398,352,2.513,449,2.273,495,2.421,565,2.466,566,2.454]],["t/646",[4,0.618,12,0.545,21,0.202,51,2.049,52,4.07,109,3.055,110,0.522,125,0.622,307,3.627,308,3.802,2889,7.241]],["t/648",[4,0.618,12,0.41,21,0.152,110,0.393,125,0.379,128,2.37,132,1.718,155,2.103,158,4.97,193,1.474,202,4.656,258,3.462,283,2.71,347,3.63,508,1.91,696,4.802,1690,6.794,2682,5.434,2716,5.434,2889,7.102,2890,5.778,2891,5.178,2892,4.973,2893,5.178,2894,5.434,2895,6.299,2896,4.973,2897,8.99,2898,6.299,2899,4.973,2900,6.794,2901,6.299,2902,6.299]],["t/650",[4,0.618,12,0.545,21,0.202,110,0.522,125,0.622,272,3.848,274,3.574,308,3.802,1206,6.139,2386,4.078,2889,6.668]],["t/652",[4,0.618,12,0.545,21,0.202,110,0.522,125,0.622,274,3.574,308,3.802,1630,5.246,1653,5.811,2386,4.078,2889,6.668]],["t/654",[4,0.567,12,0.626,21,0.233,110,0.6,125,0.578,508,2.918,2889,6.196,2903,8.825]],["t/656",[4,0.615,10,1.671,12,0.51,21,0.189,110,0.489,125,0.471,128,1.894,132,1.373,158,3.53,193,1.832,242,3.099,367,2.245,1353,6.439,2889,6.397,2890,7.185,2891,6.439,2892,6.184,2893,6.439,2897,7.185,2904,7.833,2905,9.934,2906,7.833,2907,7.833]],["t/658",[4,0.569,12,0.631,21,0.234,110,0.605,125,0.583,508,2.941,1353,7.971]],["t/660",[4,0.61,12,0.488,21,0.181,110,0.468,125,0.581,128,2.729,132,1.978,158,4.353,193,1.754,258,2.464,458,5.716,1827,6.614,2889,6.22,2891,6.162,2892,5.919,2893,6.162,2896,5.919,2899,5.919,2908,8.86,2909,6.876,2910,6.876,2911,6.876]],["t/662",[2,4.744,4,0.615,6,4.058,12,0.494,21,0.183,69,1.582,86,4.982,110,0.474,123,3.041,125,0.585,128,2.354,132,1.706,268,3.754,269,2.964,341,5.085,460,4.888,1332,7.728,1543,5.992,1907,5.992,2889,4.888]],["t/664",[4,0.618,12,0.534,21,0.247,69,1.332,110,0.512,125,0.615,160,4.242,242,3.244,274,3.502,308,3.011,508,2.487,1621,4.155,1630,4.155,1653,4.602,2386,3.996,2889,5.281]],["t/666",[4,0.625,12,0.5,21,0.237,51,1.881,69,1.248,110,0.48,125,0.59,242,3.04,1133,5.819,1630,4.973,2567,4.777,2889,6.963,2903,7.049]],["t/668",[4,0.618,12,0.471,21,0.228,51,1.77,69,1.175,110,0.589,125,0.567,128,2.281,132,1.653,158,4.252,193,1.692,251,5.068,258,2.376,458,5.513,508,2.193,1827,4.951,2889,6.076,2891,5.944,2892,5.708,2893,5.944,2896,5.708,2899,5.708,2908,6.632,2909,6.632,2910,6.632,2911,6.632]],["t/670",[4,0.627,12,0.491,21,0.234,69,1.225,110,0.471,125,0.583,2394,4.408,2572,5.837,2889,6.245,2892,7.656,2912,9.698,2913,9.698]],["t/672",[4,0.624,12,0.52,21,0.243,69,1.297,110,0.498,125,0.604,1621,4.046,2574,4.541,2688,6.738,2889,6.476,2914,10.057]],["t/674",[10,1.81,19,2.622,20,2.463,21,0.205,26,2.433,28,2.077,32,2.345,54,2.334,65,2.303,102,2.334,144,1.922,146,2.537,173,2.421,204,2.409,229,2.158,273,2.214,302,2.466,322,2.334,326,2.398,352,2.513,449,2.273,495,2.421,565,2.466,566,2.454]],["t/676",[4,0.616,12,0.534,21,0.198,51,2.008,52,3.223,110,0.512,125,0.615,307,3.554,308,3.754,876,6.062,2915,10.225,2916,10.225,2917,10.225]],["t/678",[2,2.181,4,0.627,12,0.375,20,1.056,21,0.065,35,2.292,39,2.421,69,2.04,108,3.413,110,0.167,125,0.405,132,1.577,155,1.495,172,3.309,246,1.221,268,1.033,269,1.047,272,1.663,367,1.283,508,1.358,1575,2.292,1714,5.316,2094,3.413,2773,4.106,2779,4.106,2780,4.106,2918,9.652,2919,3.862,2920,4.477,2921,4.477,2922,4.477,2923,4.477,2924,4.61,2925,4.477,2926,4.477,2927,4.477,2928,4.477,2929,4.477,2930,4.477,2931,4.477,2932,3.862,2933,4.477,2934,4.477,2935,4.477,2936,4.477,2937,4.477,2938,4.477,2939,4.477,2940,4.477,2941,3.862,2942,4.477,2943,6.733,2944,4.477,2945,4.477,2946,4.477,2947,6.733,2948,4.477,2949,4.477,2950,4.477,2951,4.477,2952,4.477,2953,4.477,2954,4.477,2955,3.862]],["t/680",[4,0.617,12,0.537,21,0.2,110,0.515,125,0.617,273,2.154,274,3.525,308,3.77,341,5.531,876,4.895,1549,5.653,2386,4.023,2919,8.858,2956,9.418]],["t/682",[4,0.619,12,0.552,21,0.205,110,0.53,125,0.628,274,3.623,308,3.834,2386,4.135,2957,9.579,2958,9.579]],["t/684",[4,0.619,12,0.552,21,0.205,110,0.53,125,0.628,274,3.623,308,3.834,2386,4.135,2574,5.938,2959,9.579]],["t/686",[4,0.62,12,0.56,21,0.208,110,0.537,125,0.633,274,3.674,308,3.867,2386,4.193,2960,9.662]],["t/688",[4,0.6,12,0.607,21,0.225,110,0.582,125,0.665,160,4.825,876,5.53,2961,8.047]],["t/690",[4,0.567,12,0.626,21,0.233,110,0.6,125,0.578,508,2.918,2962,8.825,2963,8.3]],["t/692",[4,0.629,12,0.414,21,0.154,44,3.131,51,1.558,66,3.022,110,0.397,125,0.521,224,5.33,347,4.994,876,5.138,1332,7.606,2964,8.696,2965,7.949,2966,8.667,2967,7.477,2968,5.232]],["t/694",[4,0.62,12,0.43,21,0.215,69,1.073,110,0.412,125,0.674,132,1.557,242,2.613,246,2.423,274,2.82,308,2.425,367,2.547,555,5.121,2386,3.219,2396,5.723,2397,5.62,2398,5.524,2400,4.177,2401,4.039,2686,6.229,2957,6.059,2958,6.059,2969,8.887,2970,8.887,2971,8.887,2972,8.887]],["t/696",[4,0.627,12,0.46,21,0.225,69,1.147,109,2.578,110,0.441,125,0.624,242,2.794,274,3.016,308,2.593,876,5.509,1621,3.579,2386,3.442,2574,5.904,2688,6.225,2959,6.479,2973,9.293]],["t/698",[4,0.624,12,0.516,21,0.242,69,1.289,110,0.495,125,0.602,876,5.938,2394,4.637,2572,6.028,2919,8.641,2956,9.187]],["t/700",[4,0.622,12,0.513,21,0.241,69,1.281,110,0.492,125,0.658,160,5.16,242,3.119,274,3.366,308,2.895,508,2.391,876,4.674,1621,3.994,2386,3.842,2960,7.231,2961,6.801]],["t/702",[4,0.625,12,0.381,20,1.928,21,0.247,51,1.431,54,2.248,69,1.531,103,4.92,110,0.365,125,0.491,160,4.228,242,2.313,646,5.169,876,4.846,1083,7.052,1133,6.05,1630,4.141,2567,3.634,2961,7.052,2962,5.363,2963,9.263,2974,7.497,2975,7.052,2976,7.497,2977,7.497,2978,7.497]],["t/704",[10,1.81,19,2.622,20,2.463,21,0.205,26,2.433,28,2.077,32,2.345,54,2.334,65,2.303,102,2.334,144,1.922,146,2.537,173,2.421,204,2.409,229,2.158,273,2.214,302,2.466,322,2.334,326,2.398,352,2.513,449,2.273,495,2.421,565,2.466,566,2.454]],["t/706",[4,0.618,12,0.545,21,0.202,51,2.049,52,4.07,109,3.055,110,0.522,125,0.622,307,3.627,308,3.802,312,6.187,338,8.933]],["t/708",[4,0.582,12,0.572,21,0.213,39,4.755,69,1.428,110,0.549,125,0.528,155,2.935,319,6.702,347,5.066,350,5.559,393,4.244,475,6.702,508,2.666,1064,5.066,1789,6.702,2979,6.94,2980,8.063]],["t/710",[2,2.534,4,0.627,6,4.021,12,0.338,20,1.774,21,0.126,32,2.078,69,1.572,99,3.735,110,0.325,125,0.452,132,1.318,144,2.192,246,2.05,268,2.899,269,2.031,272,3.596,273,1.962,274,3.211,312,5.559,336,6.898,337,6.488,393,3.631,460,4.843,559,4.167,1589,6.488,2755,3.739,2981,6.898,2982,6.898,2983,9.679,2984,7.52,2985,7.52]],["t/712",[10,1.81,19,2.622,20,2.463,21,0.205,26,2.433,28,2.077,32,2.345,54,2.334,65,2.303,102,2.334,144,1.922,146,2.537,173,2.421,204,2.409,229,2.158,273,2.214,302,2.466,322,2.334,326,2.398,352,2.513,449,2.273,495,2.421,565,2.466,566,2.454]],["t/714",[4,0.468,12,0.641,21,0.238,110,0.615,125,0.592,508,2.988,2986,9.854]],["t/716",[4,0.567,12,0.626,21,0.233,51,2.355,110,0.6,125,0.578,508,2.918,2364,7.335]],["t/718",[10,1.81,19,2.622,20,2.463,21,0.205,26,2.433,28,2.077,32,2.345,54,2.334,65,2.303,102,2.334,144,1.922,146,2.537,173,2.421,204,2.409,229,2.158,273,2.214,302,2.466,322,2.334,326,2.398,352,2.513,449,2.273,495,2.421,565,2.466,566,2.454]],["t/720",[4,0.618,12,0.545,21,0.202,51,2.049,52,4.07,109,3.055,110,0.522,125,0.622,307,3.627,308,3.802,2349,8.573]],["t/722",[4,0.616,12,0.53,21,0.197,110,0.508,125,0.612,274,3.478,308,3.739,1630,5.159,1653,5.714,2349,8.872,2386,3.97,2924,6.972]],["t/724",[2,4.149,4,0.617,6,4.553,12,0.404,21,0.15,28,2.085,51,2.085,69,1.383,86,4.072,98,3.734,110,0.387,123,2.66,125,0.512,128,2.059,132,1.492,268,3.283,269,2.422,272,4.312,273,2.537,274,4.152,326,1.753,460,5.484,1494,6.723,2383,6.492,2436,5.352,2987,5.69,2988,6.203,2989,6.203,2990,9.6]],["t/726",[2,0.675,4,0.617,8,1.411,10,1.174,12,0.225,20,1.619,21,0.034,22,1.722,23,1.715,26,0.323,28,1.039,32,0.383,51,1.205,54,0.692,65,0.937,66,0.877,69,0.689,86,0.91,89,0.861,91,1.859,98,0.834,99,0.688,101,0.971,103,0.834,109,0.506,110,0.086,123,2.447,125,0.208,127,0.876,128,1.19,129,0.657,132,1.84,140,1.994,144,0.961,155,1.838,158,0.625,160,3.551,179,1.985,180,1.651,184,2.307,193,0.324,195,0.996,213,1.985,223,0.971,224,0.75,229,0.352,239,1.274,242,1.946,246,0.378,248,1.008,258,2.479,272,0.515,281,0.81,283,1.825,285,0.81,286,1.057,288,1.057,289,0.91,294,0.768,295,1.098,314,1.563,326,0.392,367,2.702,408,2.17,438,3.642,442,1.094,449,1.137,462,1.106,468,0.64,476,1.139,477,1.722,485,2.843,501,1.913,508,1.047,558,3.013,561,1.271,563,1.196,631,1.057,635,0.822,679,1.514,690,1.449,691,2.595,695,0.75,1080,2.047,1092,1.345,1124,0.971,1133,0.822,1213,1.985,1233,1.763,1374,1.139,1427,1.024,1543,2.726,1584,1.271,1621,0.702,1630,1.749,1650,3.172,1653,2.381,1657,1.651,1661,0.971,1668,1.59,1700,2.067,1749,1.917,1751,1.271,1793,2.307,1830,1.619,1931,1.057,2150,1.139,2327,3.137,2349,6.173,2371,5.19,2383,1.057,2560,1.139,2561,1.057,2778,1.196,2924,5.165,2932,2.17,2975,1.196,2990,6.919,2991,2.515,2992,3.892,2993,4.244,2994,2.515,2995,2.515,2996,2.515,2997,2.307,2998,2.515,2999,5.931,3000,2.515,3001,2.515,3002,2.515,3003,2.515,3004,7.223,3005,2.515,3006,2.515,3007,2.515,3008,4.244,3009,4.244,3010,2.515,3011,3.167,3012,2.515,3013,2.515,3014,2.515,3015,2.515,3016,2.307,3017,2.979,3018,2.838,3019,3.453,3020,2.515,3021,2.515,3022,2.515,3023,2.515,3024,2.17,3025,2.515,3026,2.307,3027,2.515,3028,4.244,3029,2.307,3030,2.515,3031,2.515,3032,2.515,3033,2.307,3034,2.515,3035,4.513,3036,1.386,3037,2.515,3038,2.307,3039,2.307,3040,4.244,3041,2.515,3042,1.386,3043,1.386,3044,2.515,3045,1.386,3046,1.386,3047,3.453,3048,1.386,3049,2.515,3050,1.386,3051,1.386,3052,1.386,3053,1.386,3054,1.386,3055,1.386,3056,1.386,3057,1.386,3058,1.386,3059,1.094,3060,1.271,3061,1.386,3062,1.386,3063,1.386,3064,1.386,3065,1.196,3066,1.196,3067,3.167,3068,3.453,3069,2.515,3070,2.515,3071,1.386,3072,2.515,3073,1.386,3074,2.515,3075,1.386,3076,1.386,3077,1.386,3078,1.386,3079,1.386,3080,3.453,3081,1.386,3082,1.386,3083,1.386,3084,1.386,3085,1.386,3086,1.386,3087,1.271,3088,1.196,3089,2.17,3090,1.386,3091,2.515,3092,2.515,3093,1.196,3094,1.386,3095,1.094,3096,1.386,3097,2.515,3098,1.386,3099,1.386]],["t/728",[4,0.567,12,0.626,21,0.233,110,0.6,125,0.578,508,2.918,2560,7.908,2561,7.335]],["t/730",[4,0.618,12,0.334,21,0.18,28,1.824,69,0.834,110,0.32,125,0.527,128,1.802,129,3.533,132,1.306,160,4.537,202,3.796,242,2.031,248,2.987,273,1.34,274,2.193,308,1.885,367,2.135,427,6.835,485,7.139,924,6.428,1549,3.516,1621,2.602,1626,4.712,1630,2.602,1633,6.428,1634,5.681,1649,4.891,1653,5.733,1657,3.371,2150,6.125,2349,8.382,2386,2.502,2799,6.835,2924,5.102,3060,6.835,3100,7.909,3101,7.452,3102,7.452,3103,6.835,3104,6.835]],["t/732",[10,1.81,19,2.622,20,2.463,21,0.205,26,2.433,28,2.077,32,2.345,54,2.334,65,2.303,102,2.334,144,1.922,146,2.537,173,2.421,204,2.409,229,2.158,273,2.214,302,2.466,322,2.334,326,2.398,352,2.513,449,2.273,495,2.421,565,2.466,566,2.454]],["t/734",[4,0.624,12,0.545,21,0.202,110,0.522,125,0.622,268,3.227,269,3.268,272,3.848,3105,9.498]],["t/736",[4,0.619,12,0.556,21,0.207,51,2.092,52,3.359,110,0.533,125,0.63,307,3.703,308,3.851,3106,10.489]],["t/738",[10,1.81,19,2.622,20,2.463,21,0.205,26,2.433,28,2.077,32,2.345,54,2.334,65,2.303,102,2.334,144,1.922,146,2.537,173,2.421,204,2.409,229,2.158,273,2.214,302,2.466,322,2.334,326,2.398,352,2.513,449,2.273,495,2.421,565,2.466,566,2.454]],["t/740",[4,0.619,12,0.556,21,0.207,51,2.092,52,3.359,110,0.533,125,0.63,307,3.703,308,3.851,3107,9.048]],["t/742",[4,0.624,12,0.545,21,0.202,110,0.522,125,0.622,268,3.227,269,3.268,272,3.848,3108,10.355]],["t/744",[4,0.625,12,0.523,21,0.244,69,1.306,110,0.502,125,0.607,2394,4.698,2572,6.078,3107,8.712,3109,10.099]],["t/746",[4,0.624,12,0.52,21,0.243,69,1.297,110,0.498,125,0.604,1621,4.046,2574,4.541,2688,6.738,3107,8.676,3110,10.057]],["t/748",[10,1.81,19,2.622,20,2.463,21,0.205,26,2.433,28,2.077,32,2.345,54,2.334,65,2.303,102,2.334,144,1.922,146,2.537,173,2.421,204,2.409,229,2.158,273,2.214,302,2.466,322,2.334,326,2.398,352,2.513,449,2.273,495,2.421,565,2.466,566,2.454]],["t/750",[4,0.618,12,0.545,21,0.202,109,3.055,110,0.522,125,0.622,274,3.574,308,3.802,1630,4.24,1653,4.697,2386,4.078,3111,8.37,3112,8.933]],["t/752",[4,0.618,12,0.545,21,0.202,51,2.049,52,3.29,109,3.055,110,0.522,125,0.622,307,3.627,308,3.802,534,4.527,3113,6.607,3114,8.175]],["t/754",[4,0.623,12,0.534,21,0.198,109,2.993,110,0.512,125,0.615,268,3.162,269,3.203,272,4.14,1206,4.862,3115,10.225]],["t/756",[4,0.623,12,0.5,21,0.237,69,1.248,109,2.805,110,0.48,125,0.59,242,3.04,274,3.282,1621,3.894,2386,3.745,2574,5.58,2688,6.575,3112,8.467,3114,7.748]],["t/758",[4,0.624,12,0.516,21,0.242,69,1.289,109,2.896,110,0.495,125,0.602,559,4.397,2394,4.637,2572,6.028,3112,8.641,3114,7.907]],["t/760",[4,0.611,12,0.479,21,0.231,69,1.196,109,2.687,110,0.459,125,0.674,132,1.673,246,2.603,367,2.736,555,5.501,559,4.079,2396,6.147,2397,6.037,2398,5.934,2400,4.655,2401,4.501,2574,4.185,2686,6.691,3116,9.547,3117,9.547]],["t/762",[4,0.62,12,0.191,21,0.172,30,1.959,66,2.481,69,0.998,109,1.07,110,0.183,123,1.506,125,0.29,128,1.72,129,4.01,132,1.482,138,3.301,155,2.375,160,3.177,161,3.466,173,1.375,180,3.165,211,4.159,221,4.159,227,3.806,242,1.16,248,2.852,274,1.251,367,2.423,420,3.049,449,1.291,477,3.301,485,5.666,505,3.233,558,2.639,690,2.778,709,2.858,1258,2.948,1319,2.948,1621,1.485,1626,3.049,1630,2.443,1634,3.676,1649,4.671,1650,2.778,1653,5.24,1657,4.031,1668,3.049,1672,3.379,1869,4.159,2144,3.806,2386,1.428,2791,4.159,2794,3.806,2797,4.159,2798,3.963,2875,3.963,2924,4.872,2997,4.422,3017,4.159,3018,3.963,3103,4.422,3104,4.422,3114,6.676,3118,7.116,3119,4.821,3120,4.821,3121,4.821,3122,4.821,3123,4.821,3124,4.821,3125,4.821,3126,4.821,3127,4.821,3128,4.159,3129,4.821,3130,4.821,3131,4.821,3132,4.821,3133,4.821,3134,4.821,3135,4.821,3136,7.116,3137,4.821,3138,4.821,3139,4.821,3140,4.821,3141,4.821]],["t/764",[10,1.81,19,2.622,20,2.463,21,0.205,26,2.433,28,2.077,32,2.345,54,2.334,65,2.303,102,2.334,144,1.922,146,2.537,173,2.421,204,2.409,229,2.158,273,2.214,302,2.466,322,2.334,326,2.398,352,2.513,449,2.273,495,2.421,565,2.466,566,2.454]],["t/766",[4,0.604,12,0.527,21,0.196,51,1.981,52,3.181,110,0.505,125,0.698,132,2.034,246,2.765,307,3.507,321,6.012,327,7.731,2506,8.005,3142,9.301]],["t/768",[4,0.62,12,0.386,21,0.143,35,4.226,110,0.37,123,3.207,125,0.496,132,1.799,224,4.466,268,2.287,269,2.317,272,3.068,558,4.52,1740,7.573,2327,6.103,2759,7.123,3142,7.573,3143,8.257,3144,8.257,3145,8.257,3146,8.257,3147,11.176,3148,9.419,3149,8.257,3150,8.257,3151,7.573,3152,8.257]],["t/770",[10,1.81,19,2.622,20,2.463,21,0.205,26,2.433,28,2.077,32,2.345,54,2.334,65,2.303,102,2.334,144,1.922,146,2.537,173,2.421,204,2.409,229,2.158,273,2.214,302,2.466,322,2.334,326,2.398,352,2.513,449,2.273,495,2.421,565,2.466,566,2.454]],["t/772",[4,0.619,12,0.556,21,0.207,51,2.092,52,3.359,110,0.533,125,0.63,307,3.703,308,3.851,3153,10.489]],["t/774",[4,0.624,12,0.545,21,0.202,110,0.522,125,0.622,268,3.227,269,3.268,272,3.848,3154,10.355]],["t/776",[10,1.81,19,2.622,20,2.463,21,0.205,26,2.433,28,2.077,32,2.345,54,2.334,65,2.303,102,2.334,144,1.922,146,2.537,173,2.421,204,2.409,229,2.158,273,2.214,302,2.466,322,2.334,326,2.398,352,2.513,449,2.273,495,2.421,565,2.466,566,2.454]],["t/778",[4,0.617,12,0.537,21,0.2,110,0.515,125,0.617,218,6,274,3.525,308,3.77,2386,4.023,3155,8.858,3156,8.858,3157,9.418]],["t/780",[4,0.624,12,0.545,21,0.202,110,0.522,125,0.622,268,3.227,269,3.268,272,3.848,3158,10.355]],["t/782",[4,0.618,10,1.533,12,0.468,21,0.174,26,1.675,110,0.449,125,0.432,128,2.273,132,1.647,158,3.239,193,1.682,218,6.491,224,3.888,258,2.362,420,4.546,438,3.47,762,6.297,2262,5.909,2849,5.48,3159,7.188,3160,8.109,3161,7.188,3162,7.188,3163,7.188,3164,7.188,3165,7.188,3166,7.188]],["t/784",[4,0.567,12,0.626,21,0.233,110,0.6,125,0.578,218,5.622,508,2.918,3160,8.3]],["t/786",[4,0.626,10,1.18,12,0.36,20,1.304,21,0.134,44,3.866,110,0.345,125,0.549,132,0.969,144,1.78,155,3.648,158,2.492,218,4.592,246,1.508,248,2.217,323,4.659,505,3.571,638,4.771,639,4.545,845,5.991,855,5.265,1296,7.157,1843,5.072,1874,4.088,2448,7.208,3167,7.859,3168,7.859,3169,5.53,3170,5.53,3171,5.53,3172,5.53,3173,9.142,3174,5.53,3175,5.53,3176,5.53,3177,5.53]],["t/788",[4,0.624,12,0.278,21,0.157,69,1.278,110,0.267,123,3.111,125,0.391,132,1.954,155,2.17,218,6.236,246,2.397,266,4.5,367,1.863,501,3.602,505,2.953,548,5.771,554,3.854,1289,6.499,1575,3.327,1661,6.162,2394,2.497,2572,3.913,3155,9.207,3156,8.594,3157,9.789,3178,6.501,3179,6.501,3180,8.064,3181,6.501,3182,6.501,3183,6.501,3184,6.501]],["t/790",[4,0.613,12,0.494,21,0.235,69,1.233,110,0.474,125,0.682,132,1.706,246,2.654,367,2.79,555,5.611,2396,6.27,2397,6.157,2398,6.052,2400,4.8,2401,4.641,2686,6.824,3185,9.737]],["t/792",[4,0.624,12,0.513,21,0.241,69,1.281,110,0.492,125,0.6,218,5.829,1621,3.994,2574,4.482,2688,6.683,3155,8.605,3156,8.605]],["t/794",[10,1.81,19,2.622,20,2.463,21,0.205,26,2.433,28,2.077,32,2.345,54,2.334,65,2.303,102,2.334,144,1.922,146,2.537,173,2.421,204,2.409,229,2.158,273,2.214,302,2.466,322,2.334,326,2.398,352,2.513,449,2.273,495,2.421,565,2.466,566,2.454]],["t/796",[4,0.626,12,0.523,21,0.194,110,0.502,125,0.607,268,3.1,269,3.139,272,3.752,3186,10.099,3187,10.099]],["t/798",[4,0.619,12,0.556,21,0.207,51,2.092,52,3.359,110,0.533,125,0.63,307,3.703,308,3.851,3188,10.489]],["t/800",[21,0.233,26,2.242,28,2.355,144,2.179,173,2.744,229,2.447,273,2.51,449,2.577,495,2.744,565,2.796]],["t/802",[4,0.377,10,1.693,19,2.515,20,2.589,21,0.192,26,1.849,28,1.943,30,4.07,32,2.192,54,2.183,65,2.154,66,2.767,102,2.183,146,2.372,204,2.253,229,2.018,272,2.948,277,4.637,294,4.397,295,3.465,302,2.306,322,2.183,326,2.243,352,2.349,566,2.295,674,6.225,3189,5.865,3190,10.067,3191,7.278,3192,7.935]],["t/804",[4,0.619,12,0.556,21,0.207,51,2.092,52,3.359,110,0.533,125,0.63,307,3.703,308,3.851,3189,7.753]],["t/806",[4,0.629,12,0.419,21,0.155,69,1.418,110,0.401,125,0.525,144,2.594,268,2.48,269,2.512,272,3.243,295,5.003,3190,9.746,3191,9.746]],["t/808",[4,0.617,12,0.537,21,0.2,110,0.515,125,0.617,274,3.525,308,3.77,2386,4.023,2827,7.828,3189,7.59,3193,9.418,3194,8.44]],["t/810",[4,0.564,12,0.616,21,0.229,110,0.591,125,0.569,508,2.873,3195,8.688,3196,8.172,3197,7.478,3198,7.786]],["t/812",[4,0.465,12,0.636,21,0.236,110,0.61,125,0.588,508,2.964,3197,7.717,3198,8.035]],["t/814",[4,0.61,12,0.581,21,0.216,110,0.557,125,0.536,508,2.705,1133,6.383,3196,7.695,3198,7.331,3199,8.181,3200,8.181]],["t/816",[4,0.618,12,0.46,21,0.225,69,1.147,110,0.441,125,0.559,128,2.247,129,4.406,132,1.628,160,5.372,367,2.663,449,2.489,1621,3.579,1626,5.876,1630,4.708,1653,5.215,1668,5.876,1672,6.513,3189,6.869,3201,9.293]],["t/818",[4,0.601,12,0.488,21,0.234,69,1.218,110,0.468,125,0.678,132,1.693,246,2.633,247,6.692,367,2.768,555,5.566,2396,6.22,2397,6.108,2398,7.016,2400,4.741,2401,4.584,3202,9.66,3203,9.66]],["t/820",[4,0.624,12,0.52,21,0.243,69,1.297,110,0.498,125,0.604,1621,4.046,2574,4.541,2688,6.738,3189,7.434,3193,9.225]],["t/822",[4,0.625,12,0.523,21,0.244,69,1.306,110,0.502,125,0.607,2394,4.698,2572,6.078,3189,7.465,3204,10.099]],["t/824",[4,0.626,12,0.454,21,0.223,51,1.71,69,1.134,110,0.436,125,0.554,242,2.763,1133,6.512,1630,4.672,2567,4.34,3195,6.405,3196,8.908,3197,5.513,3198,8.488,3199,8.459,3200,8.459]],["t/826",[21,0.233,26,2.242,28,2.355,144,2.179,173,2.744,229,2.447,273,2.51,449,2.577,495,2.744,565,2.796]],["t/828",[4,0.457,10,1.589,19,2.416,20,2.656,21,0.18,26,1.736,28,1.824,30,4.33,32,2.059,54,2.05,65,2.022,66,2.598,102,2.05,146,2.227,204,2.116,229,1.895,267,7.596,272,2.769,277,4.354,294,4.129,295,4.202,302,2.165,314,4.631,322,2.05,326,2.106,347,4.294,352,2.206,566,2.155,674,5.98,1789,5.681,2337,5.681,3205,8.301,3206,6.834,3207,6.428,3208,7.451,3209,6.428]],["t/830",[4,0.618,12,0.548,21,0.204,51,2.063,52,3.312,110,0.526,125,0.625,307,3.652,308,3.818,3210,10.399,3211,10.399]],["t/832",[2,3.236,4,0.629,12,0.286,20,1.567,21,0.106,110,0.274,125,0.399,128,1.606,132,1.563,140,3.121,155,2.217,170,4.547,193,2.087,258,2.931,267,5.243,268,1.695,269,1.717,272,2.468,286,6.8,288,6.8,289,5.855,1575,3.4,2094,5.064,2357,5.243,2778,5.73,3207,5.73,3209,8.688,3212,6.642,3213,6.642,3214,6.642,3215,7.695,3216,5.064,3217,5.73,3218,6.642]],["t/834",[4,0.612,12,0.423,21,0.157,110,0.406,125,0.641,132,1.87,246,2.397,267,6.94,268,2.506,269,2.538,272,4.44,295,4.66,367,2.519,1575,4.5,3205,7.584,3207,7.584,3209,9.914,3219,8.791,3220,9.789,3221,8.791]],["t/836",[4,0.566,12,0.621,21,0.231,51,2.337,110,0.596,125,0.574,314,5.933,508,2.895,2567,5.933]],["t/838",[4,0.612,10,1.542,12,0.471,21,0.175,110,0.451,125,0.435,128,2.539,132,1.841,158,4.252,160,3.74,180,4.746,193,1.692,195,5.198,252,3.34,253,3.398,258,3.101,314,6.529,1621,3.663,1626,4.573,1630,3.663,1653,5.295,3222,6.238,3223,8.655,3224,6.632,3225,6.238,3226,6.632,3227,6.632]],["t/840",[4,0.621,10,1.481,12,0.452,21,0.249,66,2.421,69,1.492,73,5.99,91,5.133,98,4.179,99,3.449,110,0.433,125,0.552,158,4.141,193,1.624,258,2.282,314,6.4,438,3.352,516,3.518,2558,5.99,3228,9.188,3229,6.943,3230,6.943,3231,6.943,3232,6.369,3233,5.99,3234,6.943,3235,6.369]],["t/842",[4,0.622,12,0.437,20,2.119,21,0.217,51,2.2,54,2.472,69,1.091,110,0.419,125,0.54,220,6.298,242,2.656,314,7.006,1133,5.327,1630,5.479,2359,8.241,2567,5.585,3087,8.241,3236,8.985,3237,8.985]],["t/844",[4,0.614,10,1.464,12,0.447,21,0.22,69,1.115,110,0.428,125,0.413,128,2.476,132,1.794,158,4.11,160,4.717,180,4.507,193,1.606,195,4.936,242,2.716,252,3.172,253,3.227,258,2.997,314,6.365,508,2.082,1621,4.62,1626,4.341,1630,3.478,1653,5.117,3222,5.923,3223,8.364,3224,6.297,3225,5.923,3226,6.297,3227,6.297]],["t/846",[4,0.601,12,0.534,21,0.247,69,1.332,110,0.512,125,0.701,132,1.792,239,4.155,241,4.862,246,2.788,314,6.356,3238,11.665,3239,10.225]],["t/848",[4,0.616,12,0.491,21,0.234,51,2.374,69,1.225,102,2.075,110,0.471,125,0.583,128,2.345,132,1.699,160,5.017,314,6.662,473,4.472,635,4.472,1285,7.656,1630,3.822,1699,6.2,1744,6.508,1745,6.508,3240,6.919]],["t/850",[10,1.81,19,2.622,20,2.463,21,0.205,26,2.433,28,2.077,32,2.345,54,2.334,65,2.303,102,2.334,144,1.922,146,2.537,173,2.421,204,2.409,229,2.158,273,2.214,302,2.466,322,2.334,326,2.398,352,2.513,449,2.273,495,2.421,565,2.466,566,2.454]],["t/852",[2,2.235,4,0.627,10,0.589,12,0.18,21,0.142,39,2.481,66,1.599,68,3.01,69,1.414,83,4.593,91,3.39,108,3.496,110,0.172,125,0.354,128,1.985,132,1.031,155,0.921,189,1.826,193,1.073,224,2.481,246,0.752,273,1.197,283,3.919,285,1.476,290,3.496,321,2.719,367,1.965,393,1.332,442,3.62,462,1.469,468,2.119,472,2.607,553,3.14,565,1.333,659,3.39,765,3.77,1056,3.297,1080,6.994,1564,5.068,1830,2.953,1841,4.206,2182,3.863,2721,4.206,2894,3.956,2900,3.62,3065,3.956,3066,3.956,3067,4.206,3241,4.586,3242,4.206,3243,4.586,3244,4.586,3245,4.586,3246,4.586,3247,4.586,3248,4.586,3249,4.586,3250,3.956,3251,4.586,3252,3.956,3253,4.586,3254,4.586,3255,3.956,3256,3.956,3257,4.586,3258,3.956,3259,4.586,3260,4.586,3261,4.586,3262,4.586,3263,3.956,3264,4.586,3265,2.759,3266,2.759,3267,2.759,3268,2.759,3269,2.759]],["t/854",[4,0.566,12,0.621,21,0.231,110,0.596,125,0.574,508,2.895,2182,7.358,3270,8.756]],["t/856",[4,0.618,12,0.548,21,0.204,51,2.063,52,3.312,110,0.526,125,0.625,307,3.652,308,3.818,2182,6.826,3271,10.399]],["t/858",[4,0.626,12,0.491,21,0.182,110,0.471,125,0.583,197,8.895,268,2.908,269,2.946,272,3.603,2759,8.366,3272,9.698,3273,3.914,3274,9.698]],["t/860",[4,0.567,12,0.626,21,0.233,110,0.6,125,0.578,508,2.918,3275,8.825,3276,8.825]],["t/862",[4,0.617,12,0.485,21,0.233,69,1.21,110,0.465,125,0.677,132,1.686,239,3.775,241,4.418,242,2.948,246,2.623,247,5.705,248,3.857,2182,6.316,2398,7,3270,6.834,3277,9.622]],["t/864",[4,0.624,12,0.507,21,0.239,51,1.905,69,1.264,110,0.486,125,0.595,242,3.079,1133,5.866,1630,5.013,2567,4.838,3275,7.139,3276,9.977]],["t/866",[21,0.233,26,2.242,28,2.355,144,2.179,173,2.744,229,2.447,273,2.51,449,2.577,495,2.744,565,2.796]],["t/868",[4,0.47,10,1.66,19,2.484,20,2.566,21,0.188,26,1.813,28,1.905,30,4.02,32,2.151,54,2.141,65,2.113,66,2.714,102,2.141,146,2.327,204,2.21,229,1.979,272,2.892,277,4.548,294,4.313,295,3.399,302,2.262,322,2.141,326,2.2,352,2.305,566,2.251,674,6.15,3278,6.145,3279,9.075,3280,9.075,3281,7.783,3282,7.783,3283,7.139]],["t/870",[4,0.619,12,0.556,21,0.207,51,2.092,52,3.359,110,0.533,125,0.63,307,3.703,308,3.851,3278,8.28]],["t/872",[4,0.626,12,0.326,21,0.121,91,5.409,110,0.313,125,0.44,129,2.375,144,2.625,169,3.912,268,1.931,269,1.956,270,4.321,272,2.719,273,1.909,295,4.884,554,5.638,1494,5.777,3279,10.634,3280,8.722,3283,10.259,3284,7.318,3285,7.318,3286,9.51]],["t/874",[4,0.617,12,0.537,21,0.2,110,0.515,125,0.617,274,3.525,308,3.77,554,6.088,2386,4.023,2574,5.838,3287,11.693]],["t/876",[4,0.588,10,1.945,12,0.594,21,0.22,110,0.569,125,0.548,128,2.205,132,1.598,160,4.717,1626,5.766,3278,7.199,3288,8.364,3289,8.364]],["t/878",[4,0.567,12,0.626,21,0.233,110,0.6,125,0.578,508,2.918,3197,7.596,3290,8.825]],["t/880",[4,0.601,10,1.823,12,0.556,21,0.254,69,1.388,110,0.533,125,0.514,128,2.066,132,1.497,160,5.425,242,3.381,508,2.591,1621,4.329,1626,5.404,3278,6.746,3288,7.838,3289,7.838]],["t/882",[4,0.627,12,0.491,21,0.234,69,1.225,110,0.471,125,0.583,554,5.75,2394,4.408,2572,5.837,3278,7.656,3291,9.698,3292,9.698]],["t/884",[4,0.617,12,0.388,19,2.08,21,0.2,30,3.366,51,1.459,69,0.968,110,0.372,123,2.587,125,0.498,128,2.003,132,1.452,242,2.358,277,4.841,428,5.956,723,6.81,1133,6.101,1356,6.81,1454,6.316,1630,4.197,2567,3.705,3035,7.599,3197,4.706,3290,10.905,3293,8.285,3294,8.285,3295,8.285,3296,8.285,3297,8.285,3298,8.285]],["t/886",[10,1.81,19,2.622,20,2.463,21,0.205,26,2.433,28,2.077,32,2.345,54,2.334,65,2.303,102,2.334,144,1.922,146,2.537,173,2.421,204,2.409,229,2.158,273,2.214,302,2.466,322,2.334,326,2.398,352,2.513,449,2.273,495,2.421,565,2.466,566,2.454]],["t/888",[4,0.619,12,0.556,21,0.207,51,2.092,52,3.359,110,0.533,125,0.63,307,3.703,308,3.851,3299,9.048]],["t/890",[4,0.622,10,0.863,12,0.263,21,0.098,50,3.326,51,0.991,69,1.816,110,0.253,123,1.947,125,0.375,128,2.536,132,1.886,158,1.824,193,0.947,242,1.601,258,2.499,367,2.18,449,1.084,695,2.189,916,2.559,1080,2.399,1092,2.164,1124,2.836,1216,4.37,2114,4.922,2349,3.085,2364,3.085,2924,4.269,3216,3.085,3299,3.491,3300,9.23,3301,6.235,3302,6.235,3303,6.235,3304,6.235,3305,6.235,3306,6.235,3307,6.235,3308,6.235,3309,6.235,3310,6.235,3311,6.235,3312,6.235,3313,6.235,3314,6.235,3315,5.125,3316,5.379,3317,6.235,3318,4.047,3319,7.962,3320,3.712,3321,4.047,3322,3.712,3323,4.047,3324,3.712,3325,3.712,3326,4.047,3327,3.712,3328,4.047,3329,4.047,3330,6.235,3331,3.712,3332,4.047,3333,4.047]],["t/892",[4,0.567,12,0.626,21,0.233,51,2.355,110,0.6,125,0.578,508,2.918,2364,7.335]],["t/894",[4,0.625,12,0.322,20,1.711,21,0.175,54,1.995,69,0.804,110,0.309,121,4.586,125,0.436,128,1.753,129,4.483,132,1.271,160,4.441,248,3.79,367,2.078,1621,2.507,1626,4.586,1649,6.206,1653,4.07,1668,4.586,2794,7.464,2924,4.966,3299,8.156,3319,8.156,3334,7.253,3335,7.253,3336,9.454,3337,7.253,3338,7.253,3339,7.253,3340,7.253,3341,6.652,3342,7.253]],["t/896",[10,1.81,19,2.622,20,2.463,21,0.205,26,2.433,28,2.077,32,2.345,54,2.334,65,2.303,102,2.334,144,1.922,146,2.537,173,2.421,204,2.409,229,2.158,273,2.214,302,2.466,322,2.334,326,2.398,352,2.513,449,2.273,495,2.421,565,2.466,566,2.454]],["t/898",[2505,8.511]],["t/900",[4,0.619,12,0.556,21,0.207,51,2.092,52,3.359,110,0.533,125,0.63,307,3.703,308,3.851,3343,8.28]],["t/902",[4,0.627,12,0.457,21,0.17,110,0.438,125,0.556,193,2.166,258,3.042,268,2.708,269,2.743,272,3.848,286,7.058,288,7.058,289,6.077,295,3.067,3215,7.986,3343,7.308]],["t/904",[4,0.611,12,0.439,21,0.163,26,2.631,28,1.653,69,1.465,110,0.421,125,0.651,132,1.58,246,2.459,248,3.615,268,2.603,269,2.637,272,3.351,275,4.623,301,6.321,709,5.347,1206,5.347,2515,7.413,2516,7.413,2520,7.413,3343,8.556,3344,9.018,3345,9.018]],["t/906",[4,0.614,12,0.513,21,0.191,110,0.492,125,0.691,132,2.015,246,2.719,548,6.548,2387,8.501,2521,8.199,2523,5.398,3346,9.975]],["t/908",[21,0.233,26,2.242,28,2.355,144,2.179,173,2.744,229,2.447,273,2.51,449,2.577,495,2.744,565,2.796]],["t/910",[4,0.35,10,1.57,19,2.397,20,2.499,21,0.178,26,1.715,28,1.802,30,3.879,32,2.034,39,3.982,54,2.025,65,1.998,66,2.567,102,2.025,146,2.201,169,3.936,204,2.09,229,1.872,272,2.735,277,4.302,294,4.079,295,4.169,302,2.139,322,2.025,326,2.081,352,2.18,362,6.351,473,4.365,555,5.501,566,2.129,674,5.934,1538,8.287,3347,8.236,3348,9.718,3349,6.351,3350,7.362]],["t/912",[4,0.627,12,0.412,21,0.153,57,6.169,69,1.979,110,0.395,125,0.519,144,2.391,189,2.522,295,4.292,1191,4.289,3216,6.584,3351,8.636,3352,8.636,3353,6.332,3354,5.808]],["t/914",[4,0.618,12,0.53,21,0.197,51,1.994,52,4.002,109,2.973,110,0.508,125,0.612,307,3.531,308,3.739,1538,8.211,2690,6.696,3355,10.183]],["t/916",[4,0.624,10,0.566,12,0.173,21,0.064,28,1.086,30,2.717,35,2.271,53,2.857,66,1.547,69,1.456,73,2.287,109,1.619,110,0.165,125,0.402,128,1.617,132,1.632,144,2.029,158,1.195,169,4.791,246,1.559,258,2.198,266,1.357,272,2.485,273,0.692,283,2.877,290,5.098,291,3.502,323,2.63,367,1.639,423,1.906,690,2.556,1112,3.109,1191,2.203,1206,2.63,1213,3.502,1216,5.641,1255,1.74,1258,1.621,1538,8.166,1566,4.069,1630,1.343,1657,2.912,1688,3.827,2383,3.382,2402,2.287,2574,2.522,2792,2.179,2941,3.827,2992,2.432,3029,4.069,3039,2.432,3232,6.134,3316,3.827,3341,4.069,3348,9.621,3356,4.436,3357,4.436,3358,4.436,3359,4.436,3360,4.436,3361,4.436,3362,4.436,3363,4.436,3364,4.436,3365,4.436,3366,4.436,3367,3.827,3368,4.436,3369,4.436,3370,4.436,3371,4.436,3372,4.436,3373,4.436,3374,4.436,3375,4.436,3376,2.651,3377,2.651,3378,4.436,3379,2.651,3380,2.651,3381,4.436,3382,2.651,3383,2.651,3384,4.436,3385,2.651,3386,2.651,3387,2.287,3388,2.651,3389,2.651,3390,2.651]],["t/918",[2,3.327,4,0.626,12,0.444,21,0.165,110,0.426,125,0.546,144,2.465,155,3.033,169,4.857,268,3.503,269,2.666,272,3.376,555,5.235,1538,5.047,2755,4.908,3347,7.838,3391,9.085,3392,9.085]],["t/920",[4,0.615,12,0.454,21,0.223,69,1.134,110,0.436,125,0.66,132,1.925,169,4.931,246,2.514,273,1.822,274,2.982,327,8.374,555,5.314,1538,5.162,1549,4.781,1657,4.584,2386,3.403,2792,7.581,2859,8.671,3347,9.476]],["t/922",[4,0.624,12,0.534,21,0.247,51,2.008,69,1.332,110,0.512,125,0.615,1630,5.181,2567,5.097,3393,10.225]],["t/924",[21,0.233,26,2.242,28,2.355,144,2.179,173,2.744,229,2.447,273,2.51,449,2.577,495,2.744,565,2.796]],["t/926",[2,2.556,4,0.598,6,2.804,10,1.119,19,1.9,20,2.094,21,0.127,26,1.222,28,2.379,30,3.607,32,2.091,54,1.443,60,2.657,65,1.424,66,3.095,83,3.514,98,3.157,101,3.676,102,1.443,105,4.525,109,1.914,115,6.22,121,4.785,123,1.638,146,1.568,193,1.227,195,3.771,204,1.489,213,4.141,223,3.676,229,1.334,248,3.033,294,2.906,302,1.524,322,2.081,326,2.139,352,1.553,423,3.771,460,3.378,471,5.761,558,2.871,566,1.517,674,4.703,1036,9.261,1244,3.771,2137,6.528,2720,4.525,2842,4.811,3394,10.735,3395,4.525,3396,7.567,3397,8.877,3398,7.567,3399,8.913,3400,4.525,3401,4.525,3402,5.245,3403,5.245,3404,5.245]],["t/928",[4,0.581,12,0.612,21,0.227,110,0.587,125,0.565,438,4.538,508,2.85,1905,8.621,3405,7.42,3406,8.621]],["t/930",[4,0.61,12,0.408,21,0.151,57,5.713,109,2.287,110,0.391,123,1.957,125,0.377,128,2.073,132,1.842,158,2.824,239,4.345,242,2.479,244,3.662,248,3.438,281,3.662,283,2.696,318,7.028,367,2.457,405,4.036,480,4.291,486,3.517,508,1.901,509,5.151,640,6.448,695,3.39,1092,3.351,1124,4.392,3405,8.298,3407,5.151,3408,8.575,3409,6.267,3410,6.267,3411,5.748,3412,5.748,3413,6.267,3414,6.267,3415,6.267]],["t/932",[1,3.155,4,0.611,12,0.375,19,2.032,21,0.139,23,2.863,30,3.288,66,2.01,69,1.519,101,4.04,102,1.586,104,4.144,110,0.36,125,0.346,128,1.394,132,1.01,139,3.47,140,2.709,149,4.551,155,1.924,193,1.349,242,2.281,258,1.894,281,3.369,315,7.383,318,4.144,367,1.652,369,5.287,438,2.783,505,2.619,508,1.748,519,4.551,553,5.541,622,2.619,679,3.47,1356,4.738,1650,5.389,1656,3.862,1672,4.04,1691,4.261,2145,3.947,3405,6.389,3407,4.738,3416,6.982,3417,5.765,3418,5.765,3419,5.765,3420,5.765,3421,9.352,3422,5.765,3423,5.765,3424,5.765,3425,5.765,3426,5.765,3427,5.765,3428,5.765,3429,5.765,3430,5.765,3431,5.765]],["t/934",[4,0.566,12,0.621,21,0.231,57,5.578,110,0.596,125,0.574,508,2.895,3405,7.536,3407,7.847]],["t/936",[4,0.62,12,0.548,21,0.204,110,0.526,125,0.625,274,3.598,308,3.818,549,6.653,554,4.996,2386,4.106,3432,8.971]],["t/938",[4,0.619,12,0.541,21,0.249,51,2.035,52,4.053,69,1.35,110,0.519,125,0.62,307,3.603,308,3.786,3433,9.458]],["t/940",[4,0.62,12,0.368,21,0.193,69,1.504,110,0.353,125,0.604,128,1.931,132,1.762,158,4.532,246,2.177,315,6.305,547,2.896,855,5.351,932,6.089,1031,4.006,1128,7.326,1170,5.742,1252,3.966,1253,7.94,1254,6.305,1255,6.602,1257,4.313,3399,7.326,3406,7.326,3416,6.89,3434,7.987,3435,7.987,3436,10.057,3437,7.987]],["t/942",[4,0.628,12,0.421,19,2.199,21,0.212,56,4.089,57,3.778,69,1.05,110,0.404,125,0.527,196,6.298,242,2.558,248,3.512,473,5.194,547,3.31,640,4.854,643,4.427,3405,9.263,3407,5.315,3438,8.76]],["t/944",[4,0.596,12,0.507,21,0.239,69,1.264,110,0.486,125,0.688,132,2.006,158,4.459,246,2.697,1575,5.065,1621,3.943,2574,4.425,3432,8.536,3439,9.075,3440,11.446,3441,9.894]],["t/946",[4,0.622,12,0.437,21,0.217,69,1.091,110,0.419,125,0.65,132,1.895,158,4.049,246,2.45,559,4.979,1575,4.599,1668,5.682,2389,9.329,2390,7.751,2394,3.924,3432,7.751,3439,8.241,3442,8.985,3443,8.985]],["t/948",[10,1.81,19,2.622,20,2.463,21,0.205,26,2.433,28,2.077,32,2.345,54,2.334,65,2.303,102,2.334,144,1.922,146,2.537,173,2.421,204,2.409,229,2.158,273,2.214,302,2.466,322,2.334,326,2.398,352,2.513,449,2.273,495,2.421,565,2.466,566,2.454]],["t/950",[2,2.623,4,0.624,12,0.219,19,1.936,20,2.125,21,0.081,109,3.288,110,0.21,123,1.681,125,0.463,127,3.405,132,1.351,147,3.146,158,3.475,176,3.292,218,3.146,224,5.858,231,3.467,236,4.25,244,3.146,246,1.468,268,1.295,269,1.311,272,2.865,294,4.991,310,7.764,321,3.192,326,1.522,558,2.947,1083,4.645,1112,5.404,2860,4.25,2861,4.645,2862,7.771,3059,4.25,3444,9.835,3445,9.008,3446,5.384,3447,5.384,3448,7.71,3449,5.384,3450,5.384,3451,5.384,3452,5.384,3453,9.835,3454,7.71,3455,5.384,3456,5.384,3457,5.384,3458,5.384]],["t/952",[4,0.6,12,0.607,21,0.225,70,5.898,110,0.582,125,0.665,3459,8.555,3460,8.555]],["t/954",[0,3.896,4,0.601,12,0.408,21,0.207,44,5.171,69,1.018,70,6.182,109,3.13,110,0.391,123,2.678,125,0.662,132,1.842,177,6.339,239,3.175,241,3.716,242,2.479,246,2.338,367,2.457,554,5.084,1419,9.641,1421,7.398,1422,7.615,2604,6.77,3459,5.748,3460,5.748,3461,8.575,3462,8.575,3463,8.575,3464,8.575]],["t/956",[10,1.81,19,2.622,20,2.463,21,0.205,26,2.433,28,2.077,32,2.345,54,2.334,65,2.303,102,2.334,144,1.922,146,2.537,173,2.421,204,2.409,229,2.158,273,2.214,302,2.466,322,2.334,326,2.398,352,2.513,449,2.273,495,2.421,565,2.466,566,2.454]],["t/958",[4,0.62,12,0.56,21,0.208,51,2.107,52,3.382,110,0.537,125,0.633,308,3.867,3465,9.662]],["t/960",[4,0.624,12,0.534,21,0.247,51,2.008,69,1.332,110,0.512,125,0.615,268,3.162,272,3.799,3466,10.225]],["t/962",[10,1.81,19,2.622,20,2.463,21,0.205,26,2.433,28,2.077,32,2.345,54,2.334,65,2.303,102,2.334,144,1.922,146,2.537,173,2.421,204,2.409,229,2.158,273,2.214,302,2.466,322,2.334,326,2.398,352,2.513,449,2.273,495,2.421,565,2.466,566,2.454]],["t/964",[4,0.619,12,0.419,21,0.155,51,1.575,52,3.431,109,2.348,110,0.401,125,0.639,132,2.007,246,2.38,307,2.788,321,6.3,327,6.654,2506,6.891,2884,8.733,3467,6.432,3468,9.167,3469,8.729,3470,8.729,3471,8.729,3472,8.729]],["t/966",[4,0.619,10,1.507,12,0.46,21,0.171,99,3.508,110,0.441,125,0.425,128,1.708,132,1.238,140,4.367,155,2.358,158,3.183,193,1.652,258,2.321,285,2.274,295,3.085,393,4.486,505,3.209,869,6.1,917,4.07,1907,5.577,3216,5.385,3473,7.064,3474,7.064,3475,7.064,3476,7.064,3477,7.064,3478,7.064,3479,7.064,3480,5.806,3481,6.094,3482,7.064]],["t/968",[2,3.134,4,0.626,12,0.419,21,0.211,69,1.609,110,0.401,125,0.525,193,2.042,202,6.452,258,2.868,268,3.365,269,2.512,272,3.243,868,6.118,940,7.53,2719,7.854,2755,4.624,2884,4.904,3481,7.53,3483,8.729,3484,8.729]],["t/970",[10,1.81,19,2.622,20,2.463,21,0.205,26,2.433,28,2.077,32,2.345,54,2.334,65,2.303,102,2.334,144,1.922,146,2.537,173,2.421,204,2.409,229,2.158,273,2.214,302,2.466,322,2.334,326,2.398,352,2.513,449,2.273,495,2.421,565,2.466,566,2.454]],["t/972",[4,0.618,12,0.548,21,0.204,51,2.063,52,3.312,110,0.526,125,0.625,307,3.652,308,3.818,3485,7.687,3486,8.21]],["t/974",[4,0.624,12,0.545,21,0.202,110,0.522,125,0.622,268,3.227,269,3.268,272,3.848,3487,10.355]],["t/976",[4,0.618,12,0.545,21,0.202,110,0.522,125,0.622,273,2.184,274,3.574,308,3.802,341,5.607,1549,5.73,2386,4.078,3485,6.187,3488,10.355]],["t/978",[4,0.602,10,1.836,12,0.56,21,0.208,110,0.537,125,0.517,128,2.547,132,1.846,158,3.878,1827,5.892,3485,7.786,3486,6.793,3489,7.893,3490,7.893,3491,7.893]],["t/980",[4,0.603,10,1.849,12,0.564,21,0.209,110,0.541,125,0.521,128,2.558,132,1.854,158,3.905,1827,5.934,3485,6.406,3486,6.842,3492,7.949,3493,7.949,3494,7.949]],["t/982",[4,0.611,12,0.482,21,0.232,69,1.203,110,0.462,125,0.675,132,1.679,246,2.613,367,2.746,555,5.523,2397,6.061,2398,5.957,2400,4.683,2401,4.528,2686,6.717,3495,9.584,3496,9.584,3497,9.584,3498,9.584]],["t/984",[4,0.626,12,0.488,21,0.234,69,1.218,110,0.468,125,0.581,1621,3.798,2574,4.262,2688,6.471,3485,7.14,3499,11.288,3500,8.86]],["t/986",[4,0.628,12,0.432,21,0.216,69,1.079,110,0.414,125,0.536,2394,3.881,2572,5.369,3485,7.958,3486,7.042,3500,8.181,3501,8.92,3502,11.564,3503,8.92]],["t/988",[4,0.616,10,1.997,12,0.465,21,0.226,51,1.749,69,1.161,110,0.584,125,0.43,128,2.68,132,1.942,158,4.22,251,5.009,508,2.167,1827,6.411,3485,7.72,3486,7.392,3489,6.555,3490,6.555,3491,6.555,3492,6.555,3493,6.555,3494,6.555]],["t/990",[10,1.81,19,2.622,20,2.463,21,0.205,26,2.433,28,2.077,32,2.345,54,2.334,65,2.303,102,2.334,144,1.922,146,2.537,173,2.421,204,2.409,229,2.158,273,2.214,302,2.466,322,2.334,326,2.398,352,2.513,449,2.273,495,2.421,565,2.466,566,2.454]],["t/992",[4,0.465,12,0.636,21,0.236,110,0.61,125,0.588,268,3.769,269,3.817,508,2.964]],["t/994",[10,1.81,19,2.622,20,2.463,21,0.205,26,2.433,28,2.077,32,2.345,54,2.334,65,2.303,102,2.334,144,1.922,146,2.537,173,2.421,204,2.409,229,2.158,273,2.214,302,2.466,322,2.334,326,2.398,352,2.513,449,2.273,495,2.421,565,2.466,566,2.454]],["t/996",[4,0.619,12,0.556,21,0.207,51,2.092,52,3.359,110,0.533,125,0.63,307,3.703,308,3.851,3504,8.28]],["t/998",[4,0.617,12,0.537,21,0.2,110,0.515,125,0.617,274,3.525,308,3.77,2386,4.023,2827,7.828,3194,8.44,3504,8.106,3505,9.418]],["t/1000",[4,0.625,12,0.516,21,0.192,69,1.627,110,0.495,125,0.602,144,2.268,268,3.059,269,3.099,272,3.721,3506,10.016]],["t/1002",[4,0.595,12,0.46,21,0.225,69,1.147,94,6.513,110,0.441,125,0.663,132,1.628,246,2.533,247,5.509,367,2.663,555,6.358,569,6.513,2205,7.084,2396,5.984,2397,5.876,2398,6.858,2400,4.467,2401,4.319,2827,7.084,3194,7.638,3504,7.336,3507,9.293]],["t/1004",[4,0.624,12,0.52,21,0.243,69,1.297,110,0.498,125,0.604,1621,4.046,2574,4.541,2688,6.738,3504,7.94,3505,9.225]],["t/1006",[4,0.623,12,0.51,21,0.24,69,1.272,110,0.489,125,0.597,2394,4.577,2572,5.979,2827,7.574,3194,8.166,3504,9.058]],["t/1008",[10,1.81,19,2.622,20,2.463,21,0.205,26,2.433,28,2.077,32,2.345,54,2.334,65,2.303,102,2.334,144,1.922,146,2.537,173,2.421,204,2.409,229,2.158,273,2.214,302,2.466,322,2.334,326,2.398,352,2.513,449,2.273,495,2.421,565,2.466,566,2.454]],["t/1010",[4,0.619,12,0.556,21,0.207,51,2.092,52,3.359,110,0.533,125,0.63,307,3.703,308,3.851,1149,7.996]],["t/1012",[4,0.626,12,0.311,20,1.666,21,0.115,35,3.616,66,2.463,69,1.147,110,0.298,125,0.425,128,1.708,132,1.238,193,1.653,228,4.836,258,2.321,268,1.841,269,1.864,272,2.625,295,3.085,367,2.663,449,1.892,485,4.732,552,4.637,1170,6.681,1172,5.577,1233,4.951,1315,4.637,2745,5.385,2849,5.385,2851,6.094,3018,5.806,3508,6.479,3509,9.293,3510,9.293,3511,7.064,3512,7.064,3513,7.064,3514,7.064,3515,7.064,3516,6.479]],["t/1014",[4,0.624,12,0.471,21,0.175,110,0.451,125,0.567,158,3.259,193,1.692,258,2.376,438,3.491,622,3.285,762,4.844,1149,7.194,2849,5.513,3160,6.238,3508,10.212,3517,9.436,3518,7.231,3519,7.231,3520,7.231,3521,7.231,3522,7.231]],["t/1016",[4,0.627,12,0.503,21,0.187,110,0.483,125,0.592,467,5.786,1149,7.513,1654,6.907,2342,6.106,3523,7.094]],["t/1018",[4,0.625,12,0.503,21,0.238,69,1.256,110,0.483,125,0.592,1149,7.513,2394,4.519,2572,5.931,2718,8.501,3516,9.039,3524,9.039]],["t/1020",[10,1.81,19,2.622,20,2.463,21,0.205,26,2.433,28,2.077,32,2.345,54,2.334,65,2.303,102,2.334,144,1.922,146,2.537,173,2.421,204,2.409,229,2.158,273,2.214,302,2.466,322,2.334,326,2.398,352,2.513,449,2.273,495,2.421,565,2.466,566,2.454]],["t/1022",[2505,8.511]],["t/1024",[4,0.618,12,0.548,21,0.204,51,2.063,52,3.312,110,0.526,125,0.625,307,3.652,308,3.818,1962,8.21,1963,8.21]],["t/1026",[4,0.625,12,0.513,21,0.191,109,2.877,110,0.492,125,0.6,268,3.04,269,3.079,272,4.066,295,3.443,2232,8.199,3525,9.975]],["t/1028",[4,0.617,12,0.404,21,0.15,26,2.265,28,1.519,69,1.383,110,0.387,125,0.629,132,1.492,246,2.322,248,3.414,268,2.392,269,2.422,272,3.889,275,4.247,301,5.969,709,5.049,1206,6.205,1963,8.263,2515,7,2516,7,2520,7,3526,8.516,3527,8.516,3528,8.516,3529,8.516,3530,8.516]],["t/1030",[10,1.81,19,2.622,20,2.463,21,0.205,26,2.433,28,2.077,32,2.345,54,2.334,65,2.303,102,2.334,144,1.922,146,2.537,173,2.421,204,2.409,229,2.158,273,2.214,302,2.466,322,2.334,326,2.398,352,2.513,449,2.273,495,2.421,565,2.466,566,2.454]],["t/1032",[4,0.582,12,0.572,21,0.213,39,4.755,69,1.428,110,0.549,125,0.528,155,2.935,319,6.702,347,5.066,350,5.559,393,4.244,475,6.702,508,2.666,1064,5.066,1789,6.702,2979,6.94,2980,8.063]],["t/1034",[2,1.668,4,0.627,6,2.924,12,0.223,20,1.29,21,0.083,26,1.274,30,2.222,32,1.511,33,4.169,39,4.217,69,1.476,99,2.716,109,1.996,110,0.214,125,0.329,132,0.958,140,2.57,144,2.058,155,3.307,203,4.495,246,1.491,268,2.108,269,1.337,272,2.897,273,1.427,274,2.335,319,4.169,320,4.717,337,7.838,365,4.042,393,2.64,460,3.521,501,3.03,559,3.03,740,4.169,1036,4.717,1475,6.726,1589,4.717,1749,4.169,2383,4.169,2755,2.461,2979,4.317,2981,5.016,2982,5.016,3531,7.796,3532,5.468,3533,5.468,3534,5.468,3535,5.468,3536,5.468,3537,7.796,3538,5.468,3539,5.468,3540,5.468,3541,5.468,3542,5.468,3543,5.468,3544,5.468,3545,5.468]],["t/1036",[21,0.233,26,2.242,28,2.355,144,2.179,173,2.744,229,2.447,273,2.51,449,2.577,495,2.744,565,2.796]],["t/1038",[4,0.39,10,1.749,19,2.567,20,2.628,21,0.198,26,1.911,28,2.008,32,2.266,54,2.256,65,2.226,66,2.859,69,1.332,102,2.256,140,3.854,146,2.452,155,2.738,204,2.329,229,2.085,294,4.544,302,2.383,322,2.256,326,2.318,352,2.428,559,4.544,566,2.372,674,6.356,679,4.936,3546,8.201]],["t/1040",[0,3.076,2,3.299,4,0.623,12,0.294,20,1.917,21,0.109,65,1.838,110,0.281,123,2.115,125,0.407,128,1.637,129,3.21,132,1.583,155,2.26,176,2.757,214,5.005,219,4.075,222,4.14,248,2.714,256,3.752,268,1.739,269,1.761,272,2.516,277,3.956,295,2.957,355,5.005,367,1.94,462,2.168,479,6.21,550,9.291,554,5.357,559,3.752,679,4.075,690,3.902,841,5.162,1199,4.745,1748,4.867,1750,5.565,3547,6.771,3548,6.771,3549,6.771,3550,9.035,3551,6.771,3552,5.565,3553,6.771,3554,4.51]],["t/1042",[10,1.81,19,2.622,20,2.463,21,0.205,26,2.433,28,2.077,32,2.345,54,2.334,65,2.303,102,2.334,144,1.922,146,2.537,173,2.421,204,2.409,229,2.158,273,2.214,302,2.466,322,2.334,326,2.398,352,2.513,449,2.273,495,2.421,565,2.466,566,2.454]],["t/1044",[4,0.619,12,0.556,21,0.207,51,2.092,52,3.359,110,0.533,125,0.63,307,3.703,308,3.851,3555,9.048]],["t/1046",[4,0.624,12,0.545,21,0.202,110,0.522,125,0.622,268,3.227,269,3.268,272,3.848,3556,10.355]],["t/1048",[4,0.566,12,0.621,21,0.231,110,0.596,125,0.574,508,2.895,3555,8.235,3557,8.756,3558,8.756]],["t/1050",[4,0.624,12,0.503,21,0.238,51,1.893,69,1.256,110,0.483,125,0.592,242,3.06,1133,5.843,1630,4.993,2567,4.807,3555,9.356,3557,7.094,3558,7.094]],["t/1052",[10,1.81,19,2.622,20,2.463,21,0.205,26,2.433,28,2.077,32,2.345,54,2.334,65,2.303,102,2.334,144,1.922,146,2.537,173,2.421,204,2.409,229,2.158,273,2.214,302,2.466,322,2.334,326,2.398,352,2.513,449,2.273,495,2.421,565,2.466,566,2.454]],["t/1054",[4,0.614,12,0.568,21,0.211,110,0.545,125,0.639,242,3.453,268,3.365,269,3.408,438,4.214,508,2.647,3559,8.006,3560,8.006]],["t/1056",[4,0.605,12,0.602,21,0.224,110,0.578,125,0.662,438,4.469,3559,8.491,3560,8.491]],["t/1058",[10,1.81,19,2.622,20,2.463,21,0.205,26,2.433,28,2.077,32,2.345,54,2.334,65,2.303,102,2.334,144,1.922,146,2.537,173,2.421,204,2.409,229,2.158,273,2.214,302,2.466,322,2.334,326,2.398,352,2.513,449,2.273,495,2.421,565,2.466,566,2.454]],["t/1060",[2,1.315,4,0.624,6,1.03,9,1.385,12,0.067,19,0.847,20,0.796,21,0.025,51,0.826,57,1.972,66,1.884,69,1.505,109,1.231,110,0.065,123,2.112,125,0.203,127,3.418,128,1.635,129,1.6,132,1.805,140,1.586,143,1.87,144,1.839,155,1.503,169,1.03,176,1.178,193,0.451,204,0.547,224,1.825,229,0.49,244,1.972,246,0.92,248,1.353,258,2.394,268,1.736,269,0.405,272,2.512,273,0.503,274,0.823,275,4.629,283,0.829,286,1.469,288,1.469,289,2.955,293,2.365,300,1.662,301,3.155,311,2.572,321,1.142,347,2.594,350,4.276,353,1.469,355,2.494,359,2.365,367,2.424,404,2.215,449,1.646,460,1.24,505,2.792,508,0.584,516,1.709,521,2.365,545,1.662,546,1.583,552,1.265,566,0.557,640,1.067,688,1.424,690,1.944,706,2.664,731,3.095,848,2.215,874,1.159,932,1.469,978,1.662,1031,1.692,1168,1.385,1191,1.676,1236,2.572,1241,1.662,1258,2.063,1289,1.424,1340,1.291,1348,1.35,1552,1.583,1564,2.494,1762,2.215,1770,1.767,1781,1.662,1830,1.24,1964,1.583,1965,1.583,2040,1.662,2094,1.469,2099,2.911,2216,1.469,2232,4.443,2327,1.424,2332,1.424,2333,1.521,2690,1.583,2745,4.121,2755,0.745,2851,3.884,2854,1.767,2932,1.662,2955,2.911,2999,4.129,3017,2.911,3033,1.767,3215,1.662,3233,1.662,3561,5.405,3562,2.664,3563,3.095,3564,3.374,3565,3.374,3566,1.926,3567,1.926,3568,1.926,3569,1.926,3570,1.926,3571,1.926,3572,1.926,3573,1.926,3574,1.926,3575,1.926,3576,1.926,3577,1.926,3578,1.926,3579,1.926,3580,1.926,3581,1.926,3582,1.926,3583,1.926,3584,1.926,3585,1.926,3586,1.662,3587,1.926,3588,1.767,3589,1.926,3590,1.926,3591,1.926,3592,1.926,3593,1.926,3594,1.926,3595,1.926,3596,1.926,3597,1.926,3598,1.926,3599,1.767,3600,1.926,3601,3.374,3602,3.374,3603,3.374,3604,1.926,3605,1.926,3606,1.926,3607,1.926,3608,1.926,3609,1.926,3610,1.926,3611,1.926,3612,1.926,3613,1.926,3614,1.926,3615,3.374,3616,1.926,3617,3.374,3618,3.374,3619,1.926,3620,3.374,3621,1.926,3622,1.926,3623,1.926,3624,1.926,3625,1.926,3626,1.926,3627,1.926,3628,1.926,3629,1.926,3630,1.926,3631,1.926,3632,1.926,3633,1.926,3634,1.926,3635,3.374,3636,1.926,3637,3.374,3638,1.926,3639,1.926,3640,1.926,3641,1.926,3642,1.926,3643,3.374,3644,1.926]],["t/1062",[4,0.596,12,0.53,21,0.197,110,0.508,125,0.699,132,1.784,246,2.776,274,3.478,1630,5.159,1653,5.714,2386,3.97,2569,8.37,2859,9.187,3645,8.785]],["t/1064",[4,0.632,12,0.246,21,0.091,44,1.856,51,0.923,66,2.059,110,0.235,125,0.355,224,2.04,347,3.402,1332,8.529,2122,4.853,2964,9.751,2965,7.548,2968,3.101,3151,5.415,3646,5.904,3647,7.548,3648,8.229,3649,5.904,3650,5.904,3651,5.904,3652,5.904,3653,5.904,3654,7.548,3655,5.904,3656,5.904]],["t/1066",[4,0.623,10,1.281,12,0.146,21,0.093,66,2.094,69,1.098,110,0.14,125,0.361,128,1.452,129,3.497,132,1.88,160,2.62,242,0.889,246,0.613,248,2.408,256,3.328,272,1.433,274,0.959,301,2.702,311,2.939,317,3.326,367,2.739,449,1.033,485,4.023,505,1.752,508,1.169,1081,3.044,1206,2.286,1348,2.702,1427,2.85,1520,3.326,1575,3.074,1621,1.138,1626,2.438,1630,3.425,1631,3.169,1634,5.624,1649,3.942,1653,2.842,1668,2.438,1672,2.702,1714,4.741,1716,3.536,1897,2.772,1964,3.169,1965,3.169,2122,7.419,2386,1.095,2569,1.847,2791,3.326,2794,4.741,2795,3.326,2798,6.845,2801,3.536,2859,3.044,2941,7.184,3395,3.326,3645,4.369,3657,6.006,3658,3.536,3659,3.856,3660,6.006,3661,8.327,3662,7.377,3663,6.006,3664,3.856,3665,3.856,3666,3.856,3667,3.856,3668,3.856,3669,3.856,3670,7.377,3671,3.856,3672,3.856,3673,3.856,3674,6.006,3675,9.559,3676,3.856,3677,3.856,3678,6.006,3679,6.006,3680,6.006,3681,6.006,3682,3.856]],["t/1068",[4,0.619,12,0.465,21,0.226,30,3.805,51,1.749,69,1.161,110,0.446,125,0.563,277,5.472,706,7.392,1112,6.563,1630,5.615,1653,5.255,1699,5.874,1741,8.589,1744,6.165,1745,6.165,3645,8.078,3658,10.166]],["t/1070",[10,1.81,19,2.622,20,2.463,21,0.205,26,2.433,28,2.077,32,2.345,54,2.334,65,2.303,102,2.334,144,1.922,146,2.537,173,2.421,204,2.409,229,2.158,273,2.214,302,2.466,322,2.334,326,2.398,352,2.513,449,2.273,495,2.421,565,2.466,566,2.454]],["t/1072",[0,2.169,4,0.611,12,0.311,20,1.126,21,0.115,35,3.616,69,0.775,110,0.298,123,2.902,125,0.559,128,1.154,132,1.933,189,1.901,198,3.924,222,2.919,242,1.889,246,1.926,248,1.914,281,2.79,367,2.41,554,4.188,555,5.984,559,2.645,563,4.119,569,4.951,640,2.645,690,4.071,697,5.577,841,3.64,1114,3.432,1199,3.346,1216,3.346,1440,2.873,1619,4.379,1736,3.269,1748,3.432,1896,5.385,2205,3.64,2261,4.119,2396,4.549,2397,6.272,2398,4.391,2400,3.019,2401,4.319,2403,3.924,2686,4.951,2764,6.479,3315,3.924,3411,4.379,3412,4.379,3552,3.924,3683,9.293,3684,7.064,3685,7.064,3686,7.064,3687,7.064,3688,7.064,3689,7.064,3690,4.379,3691,4.774,3692,4.774,3693,4.774]],["t/1074",[4,0.569,12,0.631,21,0.234,110,0.605,125,0.583,508,2.941,1736,6.64]],["t/1076",[4,0.595,6,3.61,10,1.44,19,2.264,20,2.127,21,0.163,26,2.101,28,1.653,32,1.866,51,2.208,54,1.857,65,1.832,102,1.857,109,2.464,121,4.269,123,2.109,125,0.406,144,1.529,146,2.018,173,1.926,174,4.197,204,1.917,229,1.717,273,1.762,302,1.962,322,1.857,326,1.908,352,1.999,423,4.854,449,1.808,460,4.348,495,1.926,565,1.962,566,1.953,1133,5.347,1475,5.825,1630,5.145,2567,5.605,2719,4.991,2924,6.175,3694,10.155,3695,6.752]],["t/1078",[2,0.959,4,0.622,8,1.929,10,1.885,12,0.128,21,0.048,37,3.153,39,1.065,46,1.223,51,0.842,66,1.199,69,1.269,98,2.069,99,2.725,106,1.223,110,0.123,121,2.174,123,1.43,125,0.275,127,1.245,128,2.201,129,0.933,132,1.999,155,1.528,161,1.415,169,1.052,193,0.46,199,1.38,234,2.069,242,0.779,246,0.537,248,2.745,252,0.909,253,0.925,258,2.904,266,1.76,321,2.714,322,1.509,367,2.239,381,5.374,462,1.101,471,1.167,472,1.955,485,1.319,496,1.292,505,2.08,521,3.208,524,1.292,559,1.091,604,2.714,618,1.455,622,2.08,646,2.174,679,1.185,708,1.185,736,1.38,775,1.698,932,2.621,961,3.676,1031,1.724,1064,1.134,1067,1.167,1133,5.881,1134,4.183,1135,1.455,1136,1.501,1183,3.949,1217,2.257,1564,1.455,1630,5.37,1650,3.589,1722,1.618,1723,1.618,2179,3.763,2357,2.714,2564,3.153,2567,1.223,2576,1.618,2924,3.757,2963,4.733,2974,3.153,2975,2.966,2976,3.153,2977,3.153,2978,3.153,3088,3.949,3089,2.966,3093,1.698,3095,1.554,3315,1.618,3696,3.438,3697,3.438,3698,3.438,3699,3.438,3700,3.438,3701,1.968,3702,1.805,3703,1.805,3704,1.968,3705,1.805,3706,1.968,3707,1.968,3708,1.968,3709,1.968,3710,1.968,3711,1.968,3712,1.968,3713,1.968,3714,1.968,3715,1.968,3716,1.968,3717,1.968,3718,1.968,3719,1.968,3720,1.805,3721,1.968,3722,1.968,3723,1.968,3724,3.438,3725,1.968,3726,1.968,3727,3.438,3728,1.968,3729,3.438,3730,1.968,3731,1.968,3732,3.438,3733,1.968,3734,1.968,3735,1.968,3736,3.438,3737,1.968,3738,1.968,3739,1.968,3740,1.968,3741,1.968,3742,1.968,3743,1.968,3744,1.968,3745,1.968,3746,1.805,3747,1.968,3748,1.968,3749,3.153,3750,1.968,3751,1.968,3752,1.968,3753,1.968,3754,1.805,3755,1.968,3756,1.698]],["t/1080",[4,0.566,12,0.621,21,0.231,51,2.337,110,0.596,125,0.574,508,2.895,1722,7.847,1723,7.847]],["t/1082",[4,0.609,12,0.537,21,0.248,69,1.341,110,0.515,125,0.496,128,1.996,132,1.447,160,5.311,193,1.931,252,3.814,253,3.88,258,2.713,508,2.504,1621,4.183,1653,4.633,3095,6.518,3757,7.573,3758,8.257]],["t/1084",[10,1.81,19,2.622,20,2.463,21,0.205,26,2.433,28,2.077,32,2.345,54,2.334,65,2.303,102,2.334,144,1.922,146,2.537,173,2.421,204,2.409,229,2.158,273,2.214,302,2.466,322,2.334,326,2.398,352,2.513,449,2.273,495,2.421,565,2.466,566,2.454]],["t/1086",[4,0.621,12,0.548,21,0.204,110,0.526,125,0.625,144,2.355,155,3.472,1341,5.532,2659,6.358]],["t/1088",[0,0.956,1,1.994,4,0.629,10,1.028,12,0.137,21,0.051,26,0.49,29,1.815,43,1.604,51,0.515,60,4.451,65,1.559,66,2.48,69,0.783,86,1.381,99,1.045,110,0.131,123,1.138,125,0.219,128,1.389,132,1.415,143,2.019,144,0.476,155,0.702,189,0.838,209,2.071,229,0.926,246,0.574,252,1.683,253,1.712,281,1.229,285,1.173,367,2.038,393,3.897,438,5.03,495,1.039,657,7.702,695,1.97,807,2.777,819,2.876,1031,1.055,1037,2.777,1067,1.247,1092,1.948,1200,2.441,1288,1.815,1319,2.227,1575,1.865,1650,1.212,2050,2.876,2152,2.994,2154,1.604,2230,1.729,2269,2.777,2275,2.777,2280,2.494,2281,2.777,2659,4.666,2660,2.876,2662,3.143,2663,4.956,2664,3.143,2665,3.143,2667,1.815,3759,2.104,3760,3.643,3761,3.143,3762,6.155,3763,3.643,3764,3.341,3765,3.643,3766,3.643,3767,3.143,3768,3.643,3769,3.643,3770,2.994,3771,3.643,3772,3.643,3773,3.643,3774,3.643,3775,2.777,3776,2.994,3777,3.643,3778,3.643,3779,3.643,3780,3.143,3781,3.643,3782,3.643,3783,3.643,3784,3.643,3785,3.643,3786,3.643,3787,3.643,3788,1.93,3789,1.729,3790,1.93,3791,2.104,3792,1.93,3793,2.104,3794,1.93,3795,1.815,3796,4.157,3797,1.815,3798,2.104,3799,1.93,3800,1.815,3801,2.104]],["t/1090",[10,1.81,19,2.622,20,2.463,21,0.205,26,2.433,28,2.077,32,2.345,54,2.334,65,2.303,102,2.334,144,1.922,146,2.537,173,2.421,204,2.409,229,2.158,273,2.214,302,2.466,322,2.334,326,2.398,352,2.513,449,2.273,495,2.421,565,2.466,566,2.454]],["t/1092",[4,0.619,12,0.527,21,0.196,110,0.505,125,0.609,140,3.803,144,2.508,155,3.385,681,5.117,746,6.988,1866,5.541,3802,6.652]],["t/1094",[4,0.623,12,0.291,20,1.588,21,0.108,46,4.185,110,0.279,123,2.811,125,0.405,128,2.176,132,1.777,144,1.525,155,3.005,189,1.783,219,4.053,224,3.642,234,5.418,248,2.699,274,2.875,333,5.133,393,3.251,407,4.841,662,4.719,746,5.418,1112,4.719,1233,3.138,1267,5.809,1440,2.695,1819,5.133,1874,4.977,2073,5.133,2074,5.535,2079,5.809,2659,4.117,3803,6.733,3804,6.733,3805,6.733,3806,6.733,3807,5.316,3808,6.733,3809,6.733,3810,5.809,3811,5.809,3812,6.176,3813,5.809,3814,4.106,3815,4.106,3816,3.862,3817,4.477]],["t/1096",[10,1.81,19,2.622,20,2.463,21,0.205,26,2.433,28,2.077,32,2.345,54,2.334,65,2.303,102,2.334,144,1.922,146,2.537,173,2.421,204,2.409,229,2.158,273,2.214,302,2.466,322,2.334,326,2.398,352,2.513,449,2.273,495,2.421,565,2.466,566,2.454]],["t/1098",[4,0.621,12,0.548,21,0.204,110,0.526,125,0.625,144,2.355,155,3.472,1341,5.532,2659,6.358]],["t/1100",[1,1.469,4,0.631,10,0.956,12,0.097,20,0.633,21,0.036,26,0.625,44,4.602,49,1.229,51,0.657,60,3.796,65,1.216,66,2.349,69,0.436,99,2.57,110,0.093,123,1.399,125,0.347,128,1.629,132,1.506,143,1.487,144,0.608,155,1.223,193,2.189,209,1.526,229,0.682,252,1.24,253,1.261,258,3.075,285,1.442,303,1.101,331,1.728,367,1.931,393,3.909,467,2.27,468,1.24,495,0.765,524,1.761,635,1.591,695,1.451,705,2.118,768,2.206,807,2.046,819,2.118,882,1.798,924,2.315,966,1.881,1031,1.346,1037,2.046,1067,1.591,1080,1.591,1092,1.435,1185,1.135,1191,4.647,1200,3.002,1227,2.118,1319,1.641,1542,2.206,1575,1.374,1762,1.761,2054,1.984,2152,2.206,2154,2.046,2182,1.761,2221,2.118,2230,2.206,2269,2.046,2275,2.046,2280,1.837,2281,2.046,2436,2.315,2659,3.164,2660,2.118,2668,1.929,2674,2.206,2677,1.224,3240,2.461,3761,4.977,3762,5.137,3764,2.461,3767,2.315,3770,2.206,3775,2.046,3776,2.206,3789,2.206,3795,2.315,3796,4.977,3797,2.315,3799,2.461,3800,2.315,3818,2.683,3819,2.683,3820,2.683,3821,2.683,3822,2.683,3823,2.683,3824,2.683,3825,2.683,3826,5.769,3827,2.683,3828,2.683,3829,2.683,3830,2.683,3831,1.489,3832,1.489,3833,1.489,3834,1.489]],["t/1102",[10,1.81,19,2.622,20,2.463,21,0.205,26,2.433,28,2.077,32,2.345,54,2.334,65,2.303,102,2.334,144,1.922,146,2.537,173,2.421,204,2.409,229,2.158,273,2.214,302,2.466,322,2.334,326,2.398,352,2.513,449,2.273,495,2.421,565,2.466,566,2.454]],["t/1104",[4,0.619,12,0.53,21,0.197,110,0.508,125,0.612,140,3.829,144,2.516,155,3.399,681,5.152,682,6.022,1866,5.578,3835,7.986]],["t/1106",[1,1.52,4,0.619,12,0.181,19,1.158,20,1.624,21,0.067,30,1.874,51,0.68,69,1.338,76,1.437,101,4.826,102,1.269,110,0.173,114,5.94,123,3.053,125,0.495,128,1.992,132,1.956,155,2.75,189,2.355,193,1.927,211,5.94,231,2.97,246,1.257,248,1.849,284,3.516,324,3.979,329,3.059,367,2.361,430,2.548,472,3.914,505,2.095,508,0.842,524,3.027,635,2.734,682,6.452,695,2.495,777,4.23,847,1.861,848,1.823,866,3.09,867,3.158,884,5.102,1003,4.23,1064,2.658,1092,2.466,1124,3.232,1130,3.641,1131,3.791,1191,1.38,1256,4.23,1331,2.283,1398,3.158,1437,4.23,1526,4.23,1575,2.361,1672,3.232,1874,3.409,1897,3.316,2073,3.516,2074,3.791,2216,3.516,3835,6.816,3836,2.778,3837,9.137,3838,4.612,3839,4.612,3840,4.612,3841,6.885,3842,4.612,3843,6.885,3844,6.885,3845,6.885,3846,4.612,3847,4.612,3848,4.612,3849,4.612,3850,4.612,3851,2.396,3852,2.548]],["t/1108",[10,1.81,19,2.622,20,2.463,21,0.205,26,2.433,28,2.077,32,2.345,54,2.334,65,2.303,102,2.334,144,1.922,146,2.537,173,2.421,204,2.409,229,2.158,273,2.214,302,2.466,322,2.334,326,2.398,352,2.513,449,2.273,495,2.421,565,2.466,566,2.454]],["t/1110",[4,0.62,12,0.338,21,0.214,46,3.232,51,1.273,59,3.289,69,1.572,110,0.325,125,0.452,128,1.818,132,1.548,143,2.882,155,1.736,189,2.071,200,4.275,209,2.957,219,3.13,234,4.526,250,4.106,274,2.221,281,3.039,323,3.083,333,3.965,347,2.997,350,3.289,393,2.511,397,4.486,400,4.486,407,3.739,434,5.298,481,3.965,486,2.918,534,4.068,662,3.645,682,3.844,695,4.068,746,5.317,821,4.106,998,4.486,1092,4.021,1124,3.645,1267,4.486,1440,3.13,1819,3.965,1935,4.275,2050,4.106,2659,3.18,3810,4.486,3811,4.486,3812,4.77,3813,4.486,3853,7.52,3854,5.201,3855,4.77,3856,4.486,3857,4.77,3858,5.201,3859,5.201,3860,5.201,3861,5.201,3862,5.201]],["t/1112",[4,0.623,12,0.5,21,0.186,110,0.48,125,0.59,140,3.612,144,2.449,155,3.277,681,4.86,746,5.907,1398,5.262,1866,5.262,3807,7.748,3835,5.525,3863,7.049]],["t/1114",[4,0.618,12,0.497,21,0.236,69,1.241,110,0.477,125,0.588,140,3.589,144,2.442,155,3.263,189,3.041,746,4.597,1398,5.229,1440,4.597,3802,6.278,3807,8.512,3814,7.005,3815,7.005,3816,6.589,3863,7.005]],["t/1116",[10,1.81,19,2.622,20,2.463,21,0.205,26,2.433,28,2.077,32,2.345,54,2.334,65,2.303,102,2.334,144,1.922,146,2.537,173,2.421,204,2.409,229,2.158,273,2.214,302,2.466,322,2.334,326,2.398,352,2.513,449,2.273,495,2.421,565,2.466,566,2.454]],["t/1118",[4,0.624,12,0.449,21,0.221,51,1.69,69,1.668,110,0.571,125,0.617,140,3.245,144,1.564,155,2.305,189,2.749,329,3.571,508,2.094,569,6.415,847,6.132,1331,5.675,3851,5.956,3852,6.333,3864,9.153,3865,9.153,3866,6.904,3867,6.904,3868,6.333]],["t/1120",[4,0.62,12,0.523,21,0.244,51,1.968,69,1.306,110,0.502,125,0.607,140,3.778,144,2.287,155,3.371,847,7.397,3851,6.936,3868,7.374]],["t/1122",[10,1.81,19,2.622,20,2.463,21,0.205,26,2.433,28,2.077,32,2.345,54,2.334,65,2.303,102,2.334,144,1.922,146,2.537,173,2.421,204,2.409,229,2.158,273,2.214,302,2.466,322,2.334,326,2.398,352,2.513,449,2.273,495,2.421,565,2.466,566,2.454]],["t/1123",[4,0.625,12,0.091,21,0.034,43,1.066,46,3.442,49,2.978,66,0.884,68,1.665,69,0.412,76,1.312,83,0.937,102,0.698,110,0.087,123,2.614,125,0.333,128,1.339,132,1.894,142,4.372,158,4.383,169,1.356,189,0.557,193,0.814,219,3.334,222,4.81,234,3.334,252,0.646,253,0.657,258,0.833,283,1.091,329,0.723,367,1.587,444,4.368,467,1.285,516,0.709,601,1.777,622,0.635,635,1.503,640,1.405,646,3.502,662,3.882,681,1.604,697,5.132,708,1.526,727,4.186,801,7.221,855,3.71,866,1.699,877,4.589,888,3.687,889,7.226,890,3.687,961,1.699,1031,2.143,1043,5.965,1051,2.084,1056,1.823,1130,3.374,1131,3.513,1133,3.854,1134,3.258,1135,1.874,1136,3.258,1137,2.084,1138,2.326,1170,1.823,1229,6.656,1252,2.995,1255,5.494,1257,1.066,1340,4.355,1575,2.187,1813,1.15,1897,3.072,2010,2.002,2115,2.326,2116,2.326,2139,2.188,2225,2.326,2442,2.188,2493,5.343,3811,2.188,3813,2.188,3869,1.399,3870,7.216,3871,4.273,3872,2.536,3873,2.326,3874,2.326,3875,4.273,3876,4.273,3877,2.536,3878,2.536,3879,2.536,3880,2.536,3881,2.536,3882,2.536,3883,2.536,3884,2.536,3885,2.536,3886,2.536,3887,2.536,3888,2.536,3889,2.536,3890,6.501,3891,4.273,3892,4.273,3893,2.536,3894,2.536,3895,2.536,3896,2.536,3897,3.687,3898,4.273,3899,2.536,3900,2.536,3901,2.536,3902,2.536,3903,2.536,3904,2.002,3905,1.399,3906,1.399]],["t/1125",[4,0.617,12,0.494,19,2.445,21,0.235,30,3.084,51,1.858,69,1.233,76,3.926,110,0.474,123,3.041,125,0.585,128,2.354,132,1.706,251,5.32,266,4.984,516,3.845,2437,8.931,3907,7.59,3908,9.737]],["t/1127",[4,0.597,12,0.468,21,0.227,46,4.468,51,1.76,66,2.506,68,6.17,69,1.168,76,3.718,110,0.449,125,0.668,132,1.647,234,6.686,246,2.563,435,7.166,662,6.588,1031,3.606,1137,7.726,1252,7.341,1467,6.201,2138,6.593,2139,6.201,3909,11.108,3910,9.4]],["t/1129",[4,0.623,12,0.209,21,0.125,69,1.062,99,1.593,110,0.2,123,2.345,125,0.312,128,1.815,132,1.933,266,5.475,367,3.161,426,4.477,444,5.311,552,2.106,729,6.887,807,3.956,877,5.58,1043,7.252,1252,2.248,1255,5.792,1575,2.656,1813,4.266,1896,5.725,1897,3.731,2668,3.731,3911,2.942,3912,5.994,3913,5.19,3914,7.509,3915,7.509,3916,5.19,3917,5.19,3918,5.19,3919,5.19,3920,5.19,3921,7.509,3922,5.19,3923,7.509,3924,5.19,3925,7.509,3926,9.67,3927,9.67,3928,7.509,3929,7.509,3930,5.19,3931,5.19,3932,2.637]],["t/1131",[10,1.81,19,2.622,20,2.463,21,0.205,26,2.433,28,2.077,32,2.345,54,2.334,65,2.303,102,2.334,144,1.922,146,2.537,173,2.421,204,2.409,229,2.158,273,2.214,302,2.466,322,2.334,326,2.398,352,2.513,449,2.273,495,2.421,565,2.466,566,2.454]],["t/1133",[4,0.611,12,0.404,20,2.009,21,0.15,51,1.519,52,3.822,110,0.387,123,2.66,125,0.512,128,2.059,132,1.986,189,2.47,248,3.414,307,2.689,367,2.44,462,2.727,767,5.484,792,8.108,847,5.705,1410,7.811,1440,3.734,1874,6.295,2073,6.492,2074,7,3933,8.516,3934,8.516,3935,10.466,3936,8.516,3937,8.516]],["t/1135",[10,1.81,19,2.622,20,2.463,21,0.205,26,2.433,28,2.077,32,2.345,54,2.334,65,2.303,102,2.334,144,1.922,146,2.537,173,2.421,204,2.409,229,2.158,273,2.214,302,2.466,322,2.334,326,2.398,352,2.513,449,2.273,495,2.421,565,2.466,566,2.454]],["t/1137",[4,0.624,12,0.545,21,0.202,110,0.522,125,0.622,268,3.227,269,3.268,272,3.848,3938,10.355]],["t/1139",[4,0.62,12,0.56,21,0.208,110,0.537,125,0.633,274,3.674,308,3.867,343,9.662,2386,4.193]],["t/1141",[4,0.619,12,0.297,21,0.11,51,1.116,52,2.683,72,8.333,109,1.664,110,0.285,125,0.546,128,1.651,132,2.042,246,1.861,307,1.976,318,4.908,321,4.048,339,5.612,367,1.956,695,3.693,1654,4.785,2206,5.39,2506,5.39,2569,5.612,3939,4.56,3940,6.827,3941,6.827,3942,10.886,3943,6.827,3944,6.827,3945,6.262,3946,6.827,3947,6.827,3948,6.827,3949,6.827,3950,6.827,3951,6.827,3952,6.827,3953,6.827,3954,5.89,3955,6.827,3956,6.827,3957,6.827,3958,6.827,3959,6.827,3960,6.827,3961,6.827,3962,6.827,3963,6.827]],["t/1143",[10,1.81,19,2.622,20,2.463,21,0.205,26,2.433,28,2.077,32,2.345,54,2.334,65,2.303,102,2.334,144,1.922,146,2.537,173,2.421,204,2.409,229,2.158,273,2.214,302,2.466,322,2.334,326,2.398,352,2.513,449,2.273,495,2.421,565,2.466,566,2.454]],["t/1145",[4,0.621,12,0.541,21,0.201,110,0.519,125,0.62,140,3.907,144,2.335,155,3.442,333,6.337,1341,5.457,2659,6.305]],["t/1147",[1,1.221,4,0.628,10,2.034,12,0.145,21,0.054,26,0.52,29,1.924,33,4.556,51,0.938,60,1.941,66,2.562,69,0.622,99,1.108,110,0.139,123,1.866,125,0.23,128,1.218,132,1.52,143,1.236,144,0.505,155,1.681,173,0.636,189,0.888,209,2.178,229,0.974,246,0.608,248,2.396,249,4.293,252,1.77,253,1.801,285,1.233,332,2.046,335,4.556,347,1.285,350,1.41,356,1.494,360,1.7,367,2.854,393,2.885,400,1.924,425,5.431,495,1.093,695,2.072,807,1.7,819,3.025,821,1.761,1031,1.119,1067,1.322,1092,2.048,1111,1.7,1191,3.649,1200,2.567,1227,3.025,1288,1.924,1319,3.654,1382,1.563,1422,2.567,1935,1.833,2050,3.025,2154,1.7,2221,3.025,2230,1.833,2269,2.921,2275,2.921,2281,2.921,2668,3.621,2669,3.305,2671,1.924,3148,3.514,3761,5.156,3762,6.327,3767,3.305,3770,3.149,3776,3.149,3780,3.305,3788,2.046,3789,1.833,3790,2.046,3792,2.046,3794,2.046,3795,1.924,3796,4.345,3797,1.924,3800,1.924,3855,2.046,3856,1.924,3857,2.046,3964,3.831,3965,5.482,3966,3.831,3967,5.036,3968,3.831,3969,5.976,3970,3.831,3971,3.831,3972,3.831,3973,3.831,3974,5.976,3975,3.831,3976,3.831,3977,3.831,3978,3.831,3979,2.23,3980,2.23,3981,3.831,3982,2.23,3983,2.23,3984,2.23,3985,2.23,3986,2.046,3987,2.23]],["t/1149",[10,1.81,19,2.622,20,2.463,21,0.205,26,2.433,28,2.077,32,2.345,54,2.334,65,2.303,102,2.334,144,1.922,146,2.537,173,2.421,204,2.409,229,2.158,273,2.214,302,2.466,322,2.334,326,2.398,352,2.513,449,2.273,495,2.421,565,2.466,566,2.454]],["t/1151",[3988,9.498]],["t/1153",[4,0.582,12,0.616,21,0.229,69,1.539,110,0.591,125,0.569,393,4.573,508,2.873,3989,9.472]],["t/1155",[4,0.628,10,0.708,12,0.216,21,0.08,83,2.225,110,0.207,125,0.402,132,0.582,183,5.772,193,0.777,246,0.905,258,4.069,375,2.455,399,2.532,483,2.031,618,2.455,622,2.425,762,2.225,907,1.7,1022,2.455,1031,3.843,1033,2.532,1067,3.967,1135,2.455,1235,2.73,1373,4.689,1649,2.18,1851,2.73,2146,2.225,2282,4.387,2513,2.865,3367,2.865,3990,3.321,3991,3.321,3992,3.321,3993,3.321,3994,3.046,3995,3.321,3996,3.321,3997,3.046,3998,3.321,3999,3.046,4000,3.321,4001,3.046,4002,3.321,4003,2.73,4004,3.046,4005,3.321,4006,3.046,4007,3.321,4008,3.046,4009,3.046,4010,3.321,4011,4.387,4012,3.046,4013,3.046,4014,3.321,4015,3.046,4016,3.321,4017,2.865,4018,3.321,4019,3.046,4020,3.321,4021,3.046,4022,3.321,4023,3.046,4024,3.046,4025,3.321,4026,3.046,4027,3.321,4028,3.046,4029,3.321,4030,5.499,4031,2.73,4032,3.046,4033,3.321,4034,3.046,4035,3.321,4036,3.046,4037,3.321,4038,3.321,4039,3.321,4040,3.046,4041,3.321,4042,3.046,4043,3.046,4044,3.046,4045,3.321,4046,3.046,4047,3.321,4048,3.046,4049,3.321]],["t/1157",[10,1.81,19,2.622,20,2.463,21,0.205,26,2.433,28,2.077,32,2.345,54,2.334,65,2.303,102,2.334,144,1.922,146,2.537,173,2.421,204,2.409,229,2.158,273,2.214,302,2.466,322,2.334,326,2.398,352,2.513,449,2.273,495,2.421,565,2.466,566,2.454]],["t/1159",[4,0.595,12,0.556,21,0.207,66,3.657,110,0.533,125,0.514,128,2.066,132,1.497,281,4.993,505,3.882,508,2.591,534,4.622,2744,7.024,3128,7.372,4050,7.372,4051,8.545,4052,8.545,4053,8.545,4054,7.838]],["t/1161",[4,0.628,12,0.334,21,0.124,66,1.79,69,1.563,110,0.32,125,0.448,128,1.802,132,1.306,155,3.558,193,1.201,249,4.354,258,1.687,281,3.001,365,5.508,438,2.479,516,3.775,601,6.147,657,5.508,695,2.777,1079,3.796,1092,2.745,1564,3.796,1650,2.959,2363,4.43,2599,5.681,3128,4.43,3354,4.71,3756,6.428,4050,6.428,4054,4.71,4055,7.452,4056,7.452,4057,7.452,4058,5.135,4059,5.135,4060,4.71,4061,4.43,4062,5.135]],["t/1163",[4,0.632,12,0.22,21,0.082,44,1.661,51,0.827,66,1.885,110,0.211,125,0.325,224,1.826,1332,8.582,2964,9.812,2967,10.298,2968,2.775,4063,5.408,4064,5.408,4065,5.408,4066,5.408,4067,5.408,4068,5.408,4069,5.408,4070,5.408,4071,5.408,4072,5.408,4073,5.408]],["t/1165",[0,3.459,4,0.619,10,2.081,12,0.344,21,0.184,44,3.745,49,4.469,51,1.295,69,0.859,110,0.33,125,0.586,132,1.887,176,4.655,193,1.781,203,6.258,246,2.076,258,2.502,367,2.182,467,3.858,505,4.433,558,5.34,853,6.011,1191,3.782,2668,5.474,2673,9.288,2674,6.258,2675,6.569,2676,6.569,2677,4.349,4061,6.569,4074,7.614,4075,7.614,4076,7.614]],["t/1167",[4,0.617,10,1.75,12,0.382,21,0.198,44,4.034,49,4.684,69,0.954,110,0.367,125,0.615,132,1.952,151,5.896,193,1.919,246,2.236,258,2.695,367,2.93,505,4.646,1191,4.073,1341,3.857,2652,7.075,4061,7.075,4077,10.226,4078,11.142,4079,8.201,4080,8.201,4081,8.201]],["t/1169",[10,1.81,19,2.622,20,2.463,21,0.205,26,2.433,28,2.077,32,2.345,54,2.334,65,2.303,102,2.334,144,1.922,146,2.537,173,2.421,204,2.409,229,2.158,273,2.214,302,2.466,322,2.334,326,2.398,352,2.513,449,2.273,495,2.421,565,2.466,566,2.454]],["t/1171",[4,0.621,12,0.382,21,0.142,23,2.918,45,4.479,66,2.049,69,0.954,110,0.367,125,0.493,128,2.472,132,1.792,193,1.374,256,4.545,258,2.695,273,1.533,274,2.509,281,3.433,285,2.64,308,3.011,341,3.936,483,3.592,607,3.483,690,3.386,691,3.592,695,3.178,1019,7.075,1022,4.343,1028,5.069,1049,7.075,1092,3.141,1549,4.023,2050,4.638,2152,4.829,2386,2.863,4082,10.489,4083,5.875,4084,5.875,4085,8.201]],["t/1173",[10,1.81,19,2.622,20,2.463,21,0.205,26,2.433,28,2.077,32,2.345,54,2.334,65,2.303,102,2.334,144,1.922,146,2.537,173,2.421,204,2.409,229,2.158,273,2.214,302,2.466,322,2.334,326,2.398,352,2.513,449,2.273,495,2.421,565,2.466,566,2.454]],["t/1175",[0,1.797,4,0.621,8,2.22,10,0.494,12,0.488,21,0.125,39,1.252,51,0.567,69,0.995,70,5.065,110,0.144,120,1.491,123,2.637,125,0.311,127,3.874,128,1.481,129,2.904,132,1.731,144,1.387,147,1.353,158,1.782,180,2.596,189,0.922,199,1.622,246,1.67,258,0.761,301,2.772,302,0.673,310,4.836,311,3.016,321,1.372,323,1.372,356,1.551,367,2.887,470,3.628,521,1.622,534,4.332,541,3.251,547,2.025,695,2.801,727,2.547,767,2.547,791,2.708,803,2.844,908,5.133,980,1.711,1080,3.632,1092,1.238,1186,1.765,1199,4.823,1200,1.551,1260,2.123,1332,4.404,1334,4.468,1440,1.393,1538,2.924,1575,2.651,1702,1.997,1869,5.936,1931,3.948,1962,5.432,1963,3.123,1964,3.251,1965,3.251,2054,5.542,2182,4.921,2580,3.251,2861,3.412,2862,3.412,3024,3.412,3343,3.123,3705,4.75,3762,3.948,4086,3.955,4087,3.955,4088,6.881,4089,6.126,4090,3.955,4091,3.955,4092,3.955,4093,3.955,4094,3.955,4095,3.955,4096,3.955,4097,3.955,4098,7.497,4099,5.179,4100,2.315,4101,2.315,4102,2.315,4103,2.123,4104,2.315,4105,2.315,4106,2.315,4107,2.315,4108,3.955,4109,3.955,4110,3.955,4111,2.315,4112,7.497,4113,2.315,4114,2.315,4115,3.955,4116,2.315,4117,3.955,4118,3.955,4119,3.628,4120,2.315,4121,2.315,4122,2.315]],["t/1177",[10,1.81,19,2.622,20,2.463,21,0.205,26,2.433,28,2.077,32,2.345,54,2.334,65,2.303,102,2.334,144,1.922,146,2.537,173,2.421,204,2.409,229,2.158,273,2.214,302,2.466,322,2.334,326,2.398,352,2.513,449,2.273,495,2.421,565,2.466,566,2.454]],["t/1179",[4,0.611,10,1.533,12,0.468,21,0.174,69,1.527,110,0.449,123,2.245,125,0.63,128,1.738,132,2.02,189,2.863,246,1.96,329,3.718,367,2.06,508,2.18,607,4.262,646,5.944,869,4.719,1827,4.922,4123,9.4,4124,7.188,4125,7.188,4126,7.188,4127,7.188,4128,7.188,4129,7.188,4130,7.188,4131,7.188,4132,7.188]],["t/1181",[4,0.611,12,0.564,21,0.256,51,2.122,69,1.408,110,0.541,125,0.521,193,2.027,251,6.074,254,6.074,258,2.848,508,2.628,558,4.744,2366,6.23]],["t/1183",[4,0.611,12,0.564,21,0.256,60,4.391,69,1.408,110,0.541,125,0.521,193,2.027,254,6.074,258,2.848,508,2.628,558,4.744,2249,7.949,2366,6.23]],["t/1185",[4,0.614,12,0.449,21,0.221,51,1.69,69,1.122,110,0.431,125,0.55,132,1.604,246,2.495,367,2.623,558,5.01,791,6.267,2366,6.58,2659,5.597,2660,8.632,2661,8.396,2662,7.897,2663,7.897,2664,7.897,2665,7.897,2666,8.396,2667,5.956,4133,7.524]],["t/1187",[4,0.62,12,0.435,21,0.216,51,1.635,69,1.085,110,0.417,125,0.649,132,1.569,246,2.441,248,3.589,249,5.231,367,2.565,425,6.617,558,4.9,1191,4.446,1422,7.228,2366,6.436,2668,6.436,2669,7.723,2670,8.211,2671,5.761,4133,7.359]],["t/1189",[4,0.62,10,1.698,12,0.367,21,0.192,44,3.916,51,1.379,69,0.915,110,0.351,123,2.486,125,0.603,132,1.759,193,1.862,246,2.17,258,2.616,367,2.281,467,4.033,558,6.017,767,5.127,1163,5.226,1191,3.954,2221,6.285,2366,5.723,2668,5.723,2672,6.868,2673,9.483,2674,6.544,2675,6.868,2676,6.868,2677,4.629,4133,6.544]],["t/1191",[4,0.618,12,0.462,21,0.225,44,4.588,69,1.154,110,0.443,125,0.665,132,1.635,193,2.182,246,2.543,258,3.065,558,5.106,767,6.007,1163,6.123,1191,4.633,1341,4.664,2366,6.706,2652,8.047,4133,7.667]],["t/1193",[10,1.81,19,2.622,20,2.463,21,0.205,26,2.433,28,2.077,32,2.345,54,2.334,65,2.303,102,2.334,144,1.922,146,2.537,173,2.421,204,2.409,229,2.158,273,2.214,302,2.466,322,2.334,326,2.398,352,2.513,449,2.273,495,2.421,565,2.466,566,2.454]],["t/1195",[3988,9.498]],["t/1197",[4,0.627,12,0.211,21,0.078,49,2.398,69,1.44,110,0.202,125,0.315,158,4.834,159,9.718,189,2.084,193,0.758,249,3.059,258,3.72,322,1.811,438,1.565,462,1.676,469,3.31,684,3.37,695,1.754,868,3.668,917,3.793,1033,3.99,2146,2.172,2414,4.132,2492,2.472,2900,2.559,3250,2.797,3252,2.797,3255,2.797,3256,2.797,3258,4.515,3263,2.797,3480,2.665,4003,6.815,4011,4.302,4030,2.665,4031,2.665,4134,5.234,4135,5.234,4136,5.234,4137,6.037,4138,2.974,4139,3.242,4140,8.866,4141,6.582,4142,6.582,4143,7.604,4144,2.974,4145,2.974,4146,2.974,4147,2.974,4148,2.974,4149,2.974,4150,5.234]],["t/1199",[4,0.611,12,0.294,20,1.597,21,0.109,59,5.714,60,4.578,69,1.1,76,4.674,103,4.075,110,0.281,125,0.543,132,1.981,159,7.644,246,1.846,249,3.956,367,2.589,521,6.333,681,4.281,684,2.904,916,4.281,1080,4.014,1092,3.62,1111,5.162,1114,4.867,1117,5.841,1319,4.14,1340,4.536,1575,3.466,1866,4.636,2441,6.21,2442,5.841,2863,6.21,3562,8.028,4138,4.136,4151,6.771,4152,10.169,4153,6.771,4154,6.771,4155,6.771,4156,5.841,4157,8.287,4158,6.771,4159,6.771,4160,6.771,4161,6.771,4162,6.771]],["t/1201",[10,1.81,19,2.622,20,2.463,21,0.205,26,2.433,28,2.077,32,2.345,54,2.334,65,2.303,102,2.334,144,1.922,146,2.537,173,2.421,204,2.409,229,2.158,273,2.214,302,2.466,322,2.334,326,2.398,352,2.513,449,2.273,495,2.421,565,2.466,566,2.454]],["t/1203",[4,0.6,10,1.903,12,0.581,21,0.216,110,0.557,125,0.536,128,2.156,132,1.563,438,4.306,781,8.181,1139,9.875,4163,8.919,4164,8.919]],["t/1205",[10,1.81,19,2.622,20,2.463,21,0.205,26,2.433,28,2.077,32,2.345,54,2.334,65,2.303,102,2.334,144,1.922,146,2.537,173,2.421,204,2.409,229,2.158,273,2.214,302,2.466,322,2.334,326,2.398,352,2.513,449,2.273,495,2.421,565,2.466,566,2.454]],["t/1207",[4,0.623,12,0.267,20,0.967,21,0.099,55,5.178,76,2.121,110,0.256,125,0.379,158,5.13,193,0.959,258,3.829,486,2.301,566,1.186,622,1.863,626,3.538,659,3.032,708,2.469,907,2.099,968,2.875,1031,2.057,1042,3.371,1064,2.363,1067,2.432,1167,3.984,1649,6.095,2154,3.127,2365,7.074,2367,3.371,2369,3.371,2373,3.371,2376,5.178,2979,3.238,3349,3.538,3401,3.538,4165,4.101,4166,10.442,4167,11.528,4168,4.101,4169,3.762,4170,4.101,4171,4.101,4172,4.101,4173,3.762,4174,4.101,4175,3.762,4176,3.538,4177,4.101,4178,3.762,4179,4.101,4180,4.101,4181,3.762,4182,4.101,4183,3.762,4184,4.101,4185,3.762,4186,4.101,4187,4.101,4188,3.762,4189,4.101,4190,3.762]],["t/1209",[4,0.618,12,0.548,21,0.204,51,2.063,52,3.312,110,0.526,125,0.625,307,3.652,308,3.818,4166,9.538,4176,8.971]],["t/1211",[0,2.938,4,0.416,5,4.532,10,1.379,19,2.199,20,2.512,21,0.156,23,3.211,26,2.593,28,1.583,32,1.787,51,2.432,52,3.443,54,1.779,65,1.755,99,3.211,102,1.779,110,0.404,139,3.892,144,1.984,146,1.933,173,1.844,174,4.019,204,1.836,229,2.227,273,1.687,294,4.854,302,2.545,318,4.648,322,1.779,326,1.828,352,1.915,428,4.648,449,1.732,495,1.844,565,1.879,566,1.87,792,4.78,831,5.931,1279,5.931,1348,4.532,1349,5.578,1532,5.315,1714,5.105,4191,6.466,4192,6.466,4193,6.466,4194,5.931,4195,6.466,4196,6.466,4197,6.466,4198,5.931,4199,5.931,4200,6.466,4201,5.578,4202,6.466]],["t/1213",[0,4.442,1,5.351,4,0.487,6,3.681,8,3.864,21,0.166,26,1.074,35,5.249,38,8.434,45,3.516,46,2.867,47,3.979,48,3.641,51,2.017,54,1.269,55,3.791,64,4.23,65,1.869,66,3.186,67,3.979,76,2.386,86,4.519,89,2.867,99,2.291,103,4.144,109,2.513,112,7.107,144,1.044,176,5.037,191,5.94,204,1.955,273,2.384,335,7.453,346,4.23,354,3.979,356,5.519,365,3.409,404,3.027,486,3.864,574,3.979,690,2.658,803,3.316,848,4.519,944,4.95,1422,5.519,1433,5.089,1650,3.967,2414,5.435,2744,3.791,2755,3.316,3024,3.979,3954,3.979,4203,4.612,4204,6.885,4205,6.885,4206,9.136,4207,4.612,4208,4.612,4209,4.612,4210,4.612,4211,8.238,4212,6.885,4213,6.885,4214,4.612,4215,4.612,4216,9.136,4217,4.612,4218,4.612,4219,4.612,4220,4.612,4221,4.612,4222,4.612,4223,6.885,4224,4.612,4225,4.612,4226,4.612,4227,4.612,4228,4.612]],["t/1216",[0,4.052,1,5.893,4,0.512,31,9.288,39,4.824,103,5.368,147,5.212,295,3.895,302,2.592,347,5.14,360,6.8,876,5.288,1453,6.593,2337,6.8,4229,8.919,4230,8.181,4231,8.181]],["t/1218",[1,3.866,4,0.442,28,1.729,30,2.87,31,6.094,39,3.821,46,4.391,47,6.094,48,5.577,51,2.701,52,4.082,56,4.467,57,4.128,94,4.951,103,4.252,140,3.32,143,3.914,144,1.6,155,2.358,176,4.319,273,1.843,274,3.016,295,4.058,306,5.806,323,4.188,347,4.07,405,4.549,471,4.188,516,3.579,740,5.385,763,5.385,1127,6.479,1165,5.806,1232,5.221,1233,4.951,1277,6.094,1382,4.951,1427,5.221,1560,5.577,1650,4.07,1736,4.836,1737,6.479,1750,5.806,4232,9.293,4233,5.806,4234,7.064,4235,7.064,4236,7.064]],["t/1220",[0,4.082,19,2.256,26,2.703,143,5.992,147,6.319,149,7.093,174,5.585,350,5.682,359,6.297,360,8.244,471,5.327,551,8.241,4237,7.385,4238,8.985]],["t/1222",[30,4.336,51,2.613,56,5.559,59,5.559,60,4.454,144,2.417,229,2.714,239,5.822,277,6.236,471,6.327,4156,9.206,4239,8.791,4240,8.791]],["t/1224",[30,3.009,51,2.601,59,7.105,60,5.383,144,1.677,205,4.328,229,1.883,239,5.693,249,4.328,277,4.328,283,3.186,295,3.234,471,7.367,642,9.565,746,6.395,1258,4.528,2450,6.389,2488,6.793,3802,6.088,3816,8.268,4156,6.389,4241,6.793,4242,6.793]],["t/1226",[4,0.398,19,2.101,109,3.055,116,6.381,140,3.933,147,4.891,155,2.794,174,7.646,193,1.958,450,6.88,682,6.187,683,7.677,1377,5.866,3217,7.22,4230,7.677,4241,7.677,4242,7.677,4243,8.37,4244,8.37,4245,8.37,4246,8.37,4247,7.677,4248,8.37,4249,8.37]],["t/1228",[4,0.403,23,4.215,97,6.273,462,3.345,622,5.608,682,6.273,746,5.108,1685,6.469,1819,6.469,3835,6.101,3904,6.699,4250,9.579,4251,7.783,4252,7.321,4253,7.783,4254,7.783,4255,7.783,4256,7.783,4257,7.783,4258,8.486]],["t/1230",[0,4.082,19,2.256,30,2.728,51,2.2,53,4.324,83,4.498,94,4.706,104,4.827,106,5.585,107,4.963,121,4.246,143,5.611,147,5.918,149,5.301,150,8.324,229,1.707,277,3.924,289,4.408,350,4.246,359,4.706,360,5.119,404,4.408,407,4.827,422,5.119,547,4.599,688,4.963,848,4.408,1049,5.793,1056,4.827,1252,4.706,1789,5.119,1866,6.152,2599,5.119,2659,6.192,2718,5.793,2719,4.963,3059,5.301,3870,6.159,4201,7.751,4237,7.386,4259,6.715,4260,6.715,4261,6.715,4262,6.159,4263,6.159,4264,6.715,4265,6.159,4266,6.715,4267,6.715]],["t/1232",[1,3.126,4,0.271,10,1.218,20,1.347,26,1.33,30,3.781,35,2.923,39,4.349,51,1.398,66,3.244,81,4.927,89,3.55,94,4.003,106,3.55,115,4.694,143,5.156,144,1.293,159,4.508,176,4.916,186,3.677,218,4.698,224,3.089,229,2.808,275,3.91,277,5.437,293,4.003,295,2.494,301,4.003,359,7.078,478,5.238,489,4.221,548,6.108,558,3.126,598,4.221,635,3.386,639,4.694,848,3.749,1130,6.347,1206,3.386,1406,4.927,1656,3.826,2009,5.238,2232,4.694,2507,4.927,2580,4.694,2689,4.927,2837,4.694,2877,4.694,3105,5.238,3114,4.508,3189,4.221,3217,6.936,3343,4.508,3433,5.238,3465,5.238,3563,5.238,3874,5.238,4268,5.711,4269,5.711,4270,7.374,4271,5.711,4272,5.711,4273,5.711,4274,5.711,4275,5.711,4276,5.238,4277,5.238,4278,5.711,4279,4.694,4280,5.238,4281,5.238,4282,5.711,4283,5.711]],["t/1234",[0,2.855,1,5.358,4,0.524,19,2.56,20,0.964,21,0.185,23,2.03,26,2.375,30,3.11,51,1.874,52,1.607,69,0.664,76,2.114,81,3.526,89,2.541,109,1.492,116,3.116,125,0.246,128,0.988,140,2.953,143,5.138,144,2.1,150,3.36,155,2.098,171,4.404,172,3.021,174,2.541,176,2.499,200,3.36,205,2.389,209,2.324,228,2.799,229,2.802,268,1.576,283,1.758,295,1.785,304,3.116,318,2.939,326,1.155,347,4.411,348,3.526,350,2.585,355,3.021,356,5.755,359,6.861,422,3.116,425,3.021,474,3.227,486,4.821,495,1.166,501,2.265,534,3.399,547,2.092,622,1.857,631,3.116,706,4.96,707,3.749,746,2.46,792,4.645,848,5.024,944,6.176,945,5.421,1025,3.526,1031,2.05,1206,5.093,1277,7.999,1348,2.865,1349,3.526,1350,3.227,1398,2.799,1427,3.021,1872,3.526,1888,3.36,1935,3.36,2414,3.227,2720,3.526,2736,3.526,3026,3.749,3059,3.227,3802,3.36,3807,3.227,4194,3.749,4198,3.749,4231,5.763,4252,3.526,4262,3.749,4277,7.02,4279,3.36,4280,3.749,4281,3.749,4284,4.088,4285,4.088,4286,4.088,4287,4.088,4288,3.749,4289,3.526,4290,4.088]],["t/1236",[0,3.305,1,1.664,4,0.536,19,2.28,20,1.172,21,0.073,26,1.157,28,1.216,30,2.956,35,2.543,39,1.644,40,2.623,43,2.318,44,1.496,45,3.788,51,2.107,52,1.195,54,0.836,60,2.517,65,0.825,70,1.923,89,3.088,93,2.623,94,2.131,97,2.247,98,2.99,101,2.131,104,2.186,109,1.11,116,3.788,120,3.199,128,1.201,129,1.442,139,4.378,140,2.961,143,5.032,144,1.816,152,2.247,155,2.103,173,0.867,174,4.984,176,1.859,178,2.623,223,2.131,229,2.564,234,1.83,248,1.219,256,4.031,267,2.4,273,0.793,283,2.71,293,2.131,295,2.751,302,1.444,314,1.89,326,0.859,354,2.623,359,6.87,362,2.623,367,0.871,375,2.247,405,1.958,419,2.789,421,2.499,428,2.186,434,1.664,437,2.499,449,1.948,474,3.922,480,2.082,481,4.803,486,4.082,495,1.417,516,2.517,547,1.556,549,2.4,550,2.499,554,5.102,555,2.863,559,3.491,569,4.415,622,1.381,631,2.318,640,1.685,664,1.859,665,4.084,679,1.83,680,2.789,690,4.192,691,3.038,692,6.672,693,2.789,694,2.789,695,2.687,696,2.318,697,2.4,698,2.789,699,5.778,708,1.83,792,2.247,861,2.186,1129,2.4,1165,2.499,1178,2.789,1199,2.131,1348,2.131,1377,2.131,1382,3.482,1542,2.499,1547,2.789,1837,2.789,2067,2.499,2069,2.623,2071,2.623,2092,4.084,2401,3.038,2403,2.499,2523,2.082,2574,1.729,2659,1.859,2719,2.247,3100,2.499,3205,5.435,3206,2.789,3552,5.178,3562,4.973,3897,2.623,4201,2.623,4237,4.084,4288,2.789,4291,3.04,4292,3.04,4293,3.04,4294,3.04,4295,4.968,4296,3.04,4297,3.04,4298,4.968,4299,2.789,4300,3.04,4301,2.789,4302,3.04,4303,4.968,4304,3.04,4305,3.04,4306,3.04,4307,3.04,4308,3.04,4309,3.04,4310,3.04]],["t/1238",[0,3.582,8,3.117,19,2.301,20,2.162,26,2.454,28,1.93,30,3.204,32,1.535,35,2.843,44,2.733,51,1.36,52,3.099,65,1.508,66,1.937,70,3.513,106,3.453,107,4.106,120,3.577,126,4.235,128,1.906,144,1.258,148,4.792,150,6.48,192,5.095,204,1.577,205,3.246,223,3.893,272,2.064,273,1.449,283,2.39,295,3.443,304,4.235,306,4.566,323,4.674,335,4.235,341,3.721,401,4.792,422,4.235,471,3.293,473,4.674,501,4.369,518,5.095,534,3.005,547,2.843,549,4.385,554,3.293,559,3.078,631,4.235,635,3.293,665,6.48,746,3.344,917,3.201,1206,3.293,1213,4.385,1217,3.646,1319,3.396,1656,3.721,1703,4.792,1819,4.235,1888,4.566,2114,4.385,2408,5.095,2523,3.803,2574,4.482,2659,3.396,2744,4.566,3113,4.385,3897,4.792,4017,4.792,4279,4.566,4311,5.555,4312,7.907,4313,7.884,4314,5.555,4315,5.555,4316,5.555,4317,5.555,4318,5.555,4319,5.555,4320,5.555]],["t/1240",[0,3.994,4,0.418,19,2.679,23,5.3,30,3.572,53,5.661,86,5.771,193,2.057,219,5.291,456,5.559,736,8.054,782,7.584,1742,8.063,2561,6.702,4321,8.063,4322,8.791,4323,8.063,4324,8.791]],["t/1242",[0,1.015,4,0.24,35,3.765,46,1.389,49,4.256,52,0.878,66,1.758,68,3.311,76,4.935,109,1.401,143,2.126,169,3.199,170,2.627,171,2.69,172,1.652,193,0.523,199,2.69,250,3.029,256,2.126,283,3.874,285,4.142,304,1.704,322,1.056,326,1.085,393,1.079,405,1.439,444,3.036,456,3.189,462,1.916,467,3.413,468,4.16,469,2.427,477,1.53,480,1.53,483,3.658,486,1.254,496,5.166,501,2.795,534,2.076,553,1.53,559,2.795,566,0.646,607,1.325,615,2.837,622,4.968,635,3.994,646,2.427,664,1.366,679,2.31,682,1.652,690,2.211,691,2.346,709,1.325,746,1.345,770,1.837,787,1.928,803,2.759,834,1.764,848,2.519,855,2.571,863,3.981,866,4.513,869,3.311,874,2.31,876,3.548,877,2.427,881,1.837,882,2.571,888,3.311,889,3.154,890,3.311,905,4.571,907,4.252,908,2.627,909,2.05,911,3.311,913,2.05,916,2.427,917,2.211,918,2.05,919,1.928,922,3.52,923,1.928,926,2.05,932,2.926,939,2.05,940,1.928,944,2.759,945,3.311,948,3.52,950,2.05,952,1.837,961,3.379,962,1.837,966,2.69,968,2.69,970,1.837,978,1.928,980,2.837,983,3.154,987,1.928,997,2.05,998,1.928,1002,2.05,1007,2.05,1008,1.837,1022,2.837,1024,3.154,1025,3.311,1027,1.837,1028,1.928,1031,1.121,1033,1.704,1037,1.704,1038,2.05,1040,3.52,1042,3.154,1043,1.837,1046,2.05,1048,3.52,1054,1.928,1056,2.759,1058,2.05,1062,2.05,1064,1.288,1065,2.05,1067,2.275,1068,2.05,1070,2.05,1072,3.311,1074,2.05,1180,3.52,1315,2.519,1575,1.144,1819,1.704,2252,3.029,2321,1.704,3273,0.902,3835,1.606,3904,3.029,4250,3.52,4251,2.05,4252,1.928,4253,3.52,4254,3.52,4255,2.05,4256,3.52,4257,2.05,4289,1.928,4325,2.235,4326,3.837,4327,2.235,4328,2.235,4329,2.235,4330,2.235,4331,2.235,4332,2.235]],["t/1244",[4,0.461,43,4.705,49,2.827,66,2.152,173,1.761,193,1.444,204,3.109,219,5.108,285,4.111,291,6.699,293,5.948,295,2.695,323,3.659,462,1.977,468,3.92,618,4.562,640,3.42,696,6.47,869,5.57,870,5.661,905,5.275,907,4.344,1163,4.051,1168,6.101,1191,4.215,1650,3.557,1830,6.725,2332,6.273,2333,4.873,2335,5.073,2337,4.705,2338,5.073,2340,5.073,2741,5.661,3216,4.705,3273,2.491,4333,6.172,4334,8.486,4335,8.486,4336,7.784]],["t/1246",[193,1.702,283,5.327,285,4.022,444,4.378,462,2.33,467,4.799,483,6.441,622,3.305,848,6.218,874,4.378,877,4.6,882,4.873,905,6.547,907,5.392,908,7.64,1170,6.81,1171,8.172,1172,5.742,3273,2.936,4337,6.672,4338,6.672]],["t/1248",[193,2.269,285,3.122,462,3.106,468,4.48,559,5.374,970,7.971,1654,6.797,3273,3.914,3400,8.366]],["t/1250",[49,5.028,52,4.314,193,1.856,285,3.533,462,2.541,466,8.521,467,5.561,468,5.325,469,7.516,516,4.02,622,3.605,736,5.562,763,6.049,917,5.772,2182,6.575,3100,6.522,3273,3.202]],["t/1252",[193,2.287,285,3.147,462,3.131,468,4.516,471,5.796,917,5.633,2315,7.226,3273,3.945]],["t/1254",[193,2.324,274,4.242,285,3.198,462,3.181,3273,4.009,3586,8.57]],["t/1256",[49,4.939,193,1.787,285,3.983,462,2.446,467,5.462,607,4.528,684,4.918,908,5.229,1064,4.401,1453,5.646,1456,5.823,1560,6.029,1564,5.646,1762,5.013,2010,9.275,2357,6.029,3273,3.082,3835,7.028,4339,7.005,4340,7.005,4341,7.005,4342,6.278,4343,7.005,4344,7.005,4345,7.005,4346,7.005,4347,7.005]],["t/1258",[102,2.418,193,2.057,285,3.847,462,2.815,486,4.933,516,4.454,553,6.019,1064,5.066,1319,7.307,3273,3.548,3775,8.136,4348,8.063,4349,8.063,4350,9.206]],["t/1260",[10,0.765,22,2.454,23,1.78,26,0.835,35,4.462,44,1.763,63,5.914,65,2.366,66,3.232,110,0.224,120,2.308,169,3.032,193,0.838,219,2.157,254,2.512,256,5.136,283,4.459,285,4.148,322,1.56,421,5.784,449,1.885,456,5.059,457,4.324,462,1.148,468,2.62,501,1.986,516,3.565,534,1.939,558,1.962,565,1.041,607,4.743,622,1.628,652,2.649,664,3.467,681,5.059,690,5.595,691,5.937,709,2.125,849,3.883,917,3.268,961,2.401,1031,1.798,1145,2.649,1164,2.733,1167,2.267,1217,2.353,1685,2.733,1748,2.577,1865,3.883,2114,6.316,2141,4.662,2145,5.968,2146,3.799,2177,4.324,2252,2.83,2272,4.477,2274,2.83,2276,2.83,2278,4.477,2280,3.883,2284,4.662,2286,2.733,2289,2.83,2292,2.83,2294,4.477,2296,4.477,2298,4.477,2301,4.477,2302,4.477,2305,2.83,2308,2.83,2310,2.83,2312,4.477,2315,2.649,2316,2.83,2318,4.477,2321,2.733,2597,2.946,2599,4.324,2604,2.83,2609,3.092,2620,3.092,2629,3.092,2631,3.092,3273,1.447,4342,2.946,4351,3.287]],["t/1262",[193,1.985,234,6.286,285,3.973,462,2.718,907,4.344,944,7.508,968,5.948,1173,9,1315,6.855,2343,8.245,2347,8.245,3273,3.425,4352,9.579]],["t/1264",[169,5.269,193,1.809,234,7.258,283,3.327,285,3.993,295,3.378,322,2.711,434,4.233,440,6.747,462,2.477,709,4.585,907,3.959,952,6.357,961,5.181,962,6.357,966,6.907,968,5.421,1422,6.602,3273,3.121,4353,7.094,4354,9.039,4355,9.039]],["t/1266",[23,4.598,49,4.241,76,4.788,193,2.748,283,3.982,285,3.543,456,5.854,462,3.525,3273,3.736,4356,8.491,4357,8.491]],["t/1268",[143,4.007,161,5.198,193,1.692,285,4.047,462,2.316,473,4.287,516,3.663,592,5.198,594,6.238,595,9.926,596,5.944,598,6.975,599,6.784,601,5.068,602,5.513,604,5.708,605,6.632,607,4.287,608,6.632,610,6.632,611,6.632,613,5.513,615,5.345,616,5.944,618,5.345,620,5.944,622,3.285,3273,2.918,4358,3.259,4359,7.231]],["t/1270",[66,2.614,109,3.526,193,1.754,283,3.225,285,4.009,462,2.401,486,4.207,592,5.39,596,7.94,599,7.683,602,5.716,604,5.919,616,6.162,622,3.406,645,5.255,646,6.108,648,10.715,652,5.542,654,6.876,655,6.876,659,5.542,664,5.906,667,5.39,668,6.162,670,6.876,3273,3.026,4358,3.379,4360,7.497]],["t/1272",[49,3.635,193,1.856,285,3.907,462,2.541,467,4.02,468,5.491,592,5.705,598,7.404,599,5.705,613,6.049,622,3.605,645,5.562,916,5.018,1191,3.941,1234,9.945,1235,6.522,1236,7.636,1238,7.278,1240,7.278,1242,6.049,3273,3.202,4358,3.576,4361,7.935]],["t/1274",[4,0.35,48,8.364,49,3.372,66,2.567,193,1.722,285,3.953,462,2.358,468,5.179,516,5.368,592,5.292,599,6.863,602,5.612,613,5.612,620,6.051,622,4.337,645,5.16,646,4.655,659,7.832,668,6.051,849,5.04,1236,5.612,1314,9.718,1315,4.832,1318,6.351,1319,4.501,1322,6.752,3273,2.971,4358,3.317,4362,7.362]],["t/1276",[65,2.718,109,2.896,193,1.856,285,3.967,405,5.11,444,4.776,462,2.541,468,3.666,471,4.705,483,4.852,530,6.845,531,6.845,532,8.641,534,4.292,535,6.845,536,6.845,538,6.845,877,5.018,1378,9.73,1392,7.278,3273,3.202,4358,3.576,4363,7.935]],["t/1278",[108,7.335,193,2.251,285,3.097,462,3.081,1406,8.3,1407,8.825,1409,8.825,3273,3.883,4358,4.336,4364,9.621]],["t/1280",[138,7.586,193,1.232,209,5.868,222,4.641,285,4.018,444,4.569,462,1.687,468,4.966,516,3.846,607,5.276,746,6.826,821,9.633,847,7.202,877,4.8,1031,2.642,1096,8.003,1163,7.876,1432,6.239,1433,6.577,1441,4.832,1449,6.962,1453,3.894,1454,5.787,1456,4.016,1458,8.931,1465,6.962,3273,2.126,4358,2.374,4365,5.268]],["t/1282",[68,4.383,164,7.723,193,1.562,285,4.12,375,4.936,462,2.139,501,3.7,622,4.067,635,3.959,847,4.474,866,4.474,876,3.959,1064,3.848,1319,4.083,1624,8.301,1650,5.819,1659,8.211,1661,4.68,1663,8.211,1665,6.125,1666,6.125,1668,4.223,1670,6.125,1672,4.68,1673,6.125,1675,6.125,1677,6.125,1679,6.125,1681,8.211,1684,6.125,1685,5.091,1687,6.125,1688,5.761,1690,5.272,1691,4.936,1693,6.125,1695,6.125,1697,6.125,3273,2.695,4358,3.009,4366,6.125]],["t/1284",[160,4.862,193,2.199,285,3.576,462,3.01,468,4.342,1656,6.297,1691,6.948,1724,8.621,1727,8.621,3273,3.793,4358,4.236,4366,8.621]],["t/1286",[193,2.269,285,3.122,434,5.308,440,6.64,462,3.106,1826,6.972,3273,3.914,4358,4.37,4367,8.895]],["t/1288",[193,2.251,285,3.097,434,5.266,462,3.081,1166,7.335,1826,6.917,1830,6.196,3273,3.883,4358,4.336,4367,8.825]],["t/1290",[49,4.868,193,2.042,285,3.837,462,2.795,468,5.507,646,6.719,763,8.101,1921,9.746,1993,9.746,3273,3.523,4358,3.933,4368,8.728]],["t/1292",[66,4.321,193,1.624,285,4.021,462,2.224,505,3.155,727,4.471,767,4.471,791,4.754,807,5.294,853,5.481,1242,5.294,1424,5.481,1857,8.427,1859,11.457,1862,6.369,3273,2.802,4358,3.129,4369,6.943,4370,6.943,4371,6.943,4372,6.943,4373,6.943,4374,6.943,4375,6.943,4376,6.943,4377,6.943,4378,6.943,4379,6.943,4380,6.943]],["t/1294",[4,0.528,193,2.199,204,3.154,285,3.576,462,3.01,905,5.842,907,4.811,3273,3.793,4358,4.236,4381,9.399]],["t/1296",[76,4.515,193,2.042,285,3.687,462,2.795,467,5.383,468,5.292,469,7.244,1453,6.452,1456,6.654,1891,8.733,1900,6.89,3273,3.523,4358,3.933,4382,8.006]],["t/1298",[193,2.287,285,3.147,462,3.131,1378,7.717,1906,8.966,3273,3.945,4358,4.405,4382,8.966]],["t/1300",[193,2.233,285,3.073,462,3.057,622,4.337,664,5.837,2067,7.847,2069,8.235,2071,8.235,3273,3.853,4358,4.302,4383,8.756]],["t/1302",[66,3.787,193,2.117,228,6.197,256,5.016,285,3.496,462,2.899,486,5.079,1031,5.448,2018,9.962,2020,9.962,3273,3.653,4358,4.079,4383,8.302]],["t/1304",[193,2.269,285,3.122,435,7.393,440,6.64,462,3.106,622,4.406,3273,3.914,4358,4.37,4384,9.698]],["t/1306",[173,2.308,193,1.893,285,3.984,322,2.226,462,2.592,916,5.117,1191,5.036,1650,4.663,2280,5.541,2541,7.423,2543,10.966,2544,7.423,2546,7.423,2548,7.423,2550,6.389,2551,7.423,2553,7.423,2554,7.423,2556,7.423,2558,6.981,3273,3.266,4358,3.647,4385,8.093]],["t/1308",[66,2.506,128,2.273,193,1.682,213,8.269,285,4.013,462,2.302,468,5.645,687,5.038,779,7.726,845,5.48,1653,5.878,2358,8.622,2365,7.726,2367,5.909,2369,5.909,2371,9.583,2372,8.622,2373,7.726,2376,5.909,2378,6.593,2379,6.593,3273,2.901,4358,3.239,4386,7.188]],["t/1310",[193,1.985,256,5.787,285,3.8,462,2.718,681,7.466,690,6.018,691,6.386,2114,9.32,2141,8.584,2145,7.151,3273,3.425,4358,3.824,4387,8.486]],["t/1312",[10,0.863,22,2.771,23,2.01,26,0.943,35,4.724,44,1.991,63,6.317,65,2.505,66,3.399,110,0.253,120,2.606,169,3.334,193,0.947,219,2.436,254,2.836,256,4.735,283,4.194,285,4.148,322,1.715,449,2.037,456,4.81,457,4.754,462,1.296,468,2.88,501,2.242,516,3.159,534,2.189,558,2.215,565,1.176,607,5.067,652,2.991,664,3.812,690,5.319,691,5.643,709,2.399,849,4.269,917,3.593,961,2.711,1031,2.03,1145,2.991,1164,3.085,1167,2.559,1217,2.656,1748,2.909,1865,4.269,2145,4.269,2146,4.177,2177,4.754,2272,4.922,2274,3.195,2276,3.195,2278,4.922,2280,4.269,2284,5.125,2286,3.085,2289,3.195,2292,3.195,2294,4.922,2296,4.922,2298,4.922,2301,4.922,2302,4.922,2305,3.195,2308,3.195,2310,3.195,2312,4.922,2315,2.991,2316,3.195,2318,4.922,2321,3.085,2597,3.326,2599,3.085,2604,3.195,2609,3.491,2620,3.491,2629,3.491,2631,3.491,3273,1.633,4358,1.824,4388,3.712]],["t/1314",[193,2.233,285,3.608,462,3.057,1173,7.278,2343,8.85,2347,7.536,3273,3.853,4358,4.302,4388,8.756]],["t/1316",[193,2.251,285,3.097,462,3.081,1650,5.544,2573,8.3,2576,7.908,2579,8.825,3273,3.883,4358,4.336,4389,9.621]],["t/1318",[193,2.087,202,6.593,283,3.837,285,3.866,462,2.856,696,6.8,1690,8.499,2716,7.695,2894,7.695,2896,7.041,2899,7.041,2900,8.499,3273,3.6,4358,4.019,4390,8.181]],["t/1320",[193,2.287,285,3.147,462,3.131,2896,7.717,2899,7.717,3273,3.945,4358,4.405,4390,8.966]],["t/1322",[193,2.269,218,5.667,285,3.122,462,3.106,762,6.497,2849,7.393,3273,3.914,4358,4.37,4391,9.698]],["t/1324",[180,6.17,193,2.199,195,6.757,285,3.576,462,3.01,1653,6.233,3222,8.109,3225,8.109,3273,3.793,4358,4.236,4392,8.621]],["t/1326",[193,2.269,285,3.122,462,3.106,516,4.913,3233,8.366,3235,8.895,3273,3.914,4358,4.37,4392,8.895]],["t/1328",[50,7.385,193,2.102,285,3.734,449,2.406,462,2.877,3216,6.85,3273,3.626,3319,10.007,3320,8.241,3322,8.241,3324,8.241,3325,8.241,3327,8.241,4358,4.049,4393,8.985]],["t/1330",[193,2.269,285,3.122,462,3.106,622,4.406,1691,7.168,3273,3.914,3416,8.366,4358,4.37,4394,9.698]],["t/1332",[193,2.287,285,3.147,462,3.131,3273,3.945,3480,8.035,3481,8.433,4358,4.405,4395,9.775]],["t/1334",[193,2.251,285,3.097,462,3.081,622,4.371,762,6.446,1149,7.335,2849,7.335,3273,3.883,4358,4.336,4396,9.621]],["t/1336",[66,3.203,161,4.992,193,1.624,285,4.021,462,2.224,485,4.652,622,4.678,708,4.179,1064,4.001,1133,7.347,1134,7.005,1135,5.133,1136,5.294,1650,6.315,2576,5.707,2924,7.05,3088,8.883,3089,7.926,3093,5.99,3095,5.481,3273,2.802,3746,6.369,3749,8.427,3754,6.369,3756,5.99,4358,3.129,4397,6.369]],["t/1338",[193,2.269,285,3.122,462,3.106,1653,5.442,3095,7.656,3273,3.914,3757,8.895,4358,4.37,4397,8.895]],["t/1340",[76,4.825,193,2.182,285,3.559,462,2.987,516,4.726,622,4.238,1252,7.75,3273,3.764,3904,8.73,4358,4.204,4398,9.328]],["t/1342",[193,2.287,285,3.147,462,3.131,3273,3.945,4050,8.433,4060,8.966,4358,4.405,4399,9.775]],["t/1344",[83,3.705,183,7.887,193,1.294,285,4.18,375,4.088,399,4.216,462,1.771,483,3.381,618,4.088,622,3.571,762,3.705,907,2.831,1022,4.088,1031,4.993,1033,4.216,1067,5.42,1135,4.088,1235,4.545,1373,6.408,1649,3.63,1851,4.545,2146,3.705,2282,6.46,2513,4.771,3273,2.232,3367,4.771,3994,5.072,3997,5.072,3999,5.072,4001,5.072,4003,4.545,4004,5.072,4006,5.072,4008,5.072,4009,5.072,4011,6.46,4012,5.072,4013,5.072,4015,5.072,4017,4.771,4019,5.072,4021,5.072,4023,5.072,4024,5.072,4026,5.072,4028,5.072,4030,7.515,4031,4.545,4032,5.072,4034,5.072,4036,5.072,4040,5.072,4042,5.072,4043,5.072,4044,5.072,4046,5.072,4048,5.072,4358,2.492,4400,5.53]],["t/1346",[193,2.182,256,5.169,285,3.559,462,2.987,690,5.375,691,5.703,1019,9.54,3273,3.764,4082,10.142,4358,4.204,4401,9.328]],["t/1348",[159,10.016,193,1.497,285,4.084,322,2.718,462,2.049,917,5.694,1033,6.631,2146,4.286,2414,5.051,2492,4.878,2900,5.051,3250,5.52,3252,5.52,3255,5.52,3256,5.52,3258,7.503,3263,5.52,3273,2.582,3480,5.259,4003,8.122,4011,7.149,4030,5.259,4031,5.259,4137,5.869,4143,9.063,4144,5.869,4145,5.869,4146,5.869,4147,5.869,4148,5.869,4149,5.869,4358,2.883,4402,6.398]],["t/1350",[193,2.287,254,6.851,285,3.147,462,3.131,558,5.351,3273,3.945,4358,4.405,4403,8.966]],["t/1352",[193,2.287,254,6.851,285,3.147,462,3.131,558,5.351,3273,3.945,4358,4.405,4403,8.966]],["t/1354",[20,1.584,55,7.386,76,3.473,193,1.571,285,4.073,462,2.15,486,3.768,566,1.942,622,3.051,626,5.793,659,4.963,708,4.041,907,3.437,968,4.706,1031,3.368,1042,5.519,1064,3.869,1067,3.981,1167,5.682,1649,7.399,2154,5.119,2365,8.888,2367,5.519,2369,5.519,2373,5.519,2376,7.386,2979,5.301,3273,2.71,3349,5.793,3401,5.793,4169,6.159,4173,6.159,4175,6.159,4176,5.793,4178,6.159,4181,6.159,4183,6.159,4185,6.159,4188,6.159,4190,6.159,4358,3.026,4404,6.715]],["t/1357",[4,0.614,10,0.995,12,0.304,21,0.113,51,1.142,52,2.729,68,4.558,69,1.78,98,2.808,106,4.316,110,0.291,125,0.499,127,4.391,129,2.212,132,0.817,155,2.318,189,1.858,218,5.369,246,1.272,323,4.117,329,2.413,428,4.992,449,1.86,462,2.224,679,2.808,775,8.884,803,4.992,816,6.548,845,5.294,847,4.652,861,4.992,907,4.703,1031,4.16,1067,5.824,1358,5.99,1469,6.369,1931,3.556,2122,5.707,4405,10.665,4406,10.297,4407,10.297,4408,6.944,4409,6.944,4410,6.944,4411,4.665,4412,4.665]],["t/1359",[1,4.55,4,0.592,12,0.541,21,0.201,110,0.519,125,0.62,129,3.941,189,3.31,329,4.3,448,7.171,474,6.562,944,7.413,1185,6.337,1206,4.928,1849,7.625,2342,6.562,3113,6.562,3523,7.625,4237,6.833,4413,7.171,4414,8.313,4415,8.313]],["t/1361",[4,0.625,9,2.368,10,0.703,12,0.214,21,0.08,49,2.429,51,0.806,91,2.435,104,2.368,109,1.202,110,0.206,123,1.656,125,0.4,128,2.361,132,1.465,157,4.574,180,3.48,189,1.312,200,4.358,209,3.783,246,0.898,248,2.126,283,2.281,323,3.144,329,1.704,367,1.519,469,3.353,505,2.409,516,3.371,524,2.162,645,3.716,759,3.716,845,4.042,980,3.919,983,4.358,1315,3.48,1379,4.574,1473,4.574,1532,2.708,1553,2.842,1762,3.48,1865,3.63,2054,3.919,2088,3.022,2175,8.191,2561,2.512,2745,2.512,3395,4.574,4119,4.863,4416,3.294,4417,3.294,4418,3.294,4419,5.302,4420,5.302,4421,8.931,4422,5.302,4423,5.302,4424,5.302,4425,5.302,4426,5.302,4427,5.302,4428,4.863,4429,5.302,4430,4.863,4431,5.302,4432,5.302,4433,5.302,4434,4.574,4435,5.302,4436,5.302,4437,5.302,4438,5.302,4439,5.302,4440,5.302,4441,5.302,4442,7.626,4443,5.302,4444,5.302,4445,3.294,4446,3.294,4447,3.294,4448,3.294]],["t/1363",[0,4.863,1,2.847,4,0.629,5,5.271,12,0.338,21,0.126,28,1.841,39,2.813,57,3.039,60,2.635,110,0.325,125,0.452,129,2.466,158,2.344,225,4.77,404,3.414,438,2.511,601,3.645,679,3.13,681,4.756,1258,6.91,1615,4.486,1865,7.738,1866,5.149,4449,6.898,4450,7.52,4451,7.52,4452,5.201]],["t/1365",[10,1.81,19,2.622,20,2.463,21,0.205,26,2.433,28,2.077,32,2.345,54,2.334,65,2.303,102,2.334,144,1.922,146,2.537,173,2.421,204,2.409,229,2.158,273,2.214,302,2.466,322,2.334,326,2.398,352,2.513,449,2.273,495,2.421,565,2.466,566,2.454]],["t/1367",[4,0.619,12,0.537,21,0.2,51,2.021,52,4.036,109,3.014,110,0.515,125,0.617,307,3.578,308,3.77,2690,6.787,4453,9.641]],["t/1369",[2,3.97,4,0.622,12,0.53,21,0.197,110,0.508,125,0.612,268,3.926,269,3.181,272,3.783,2755,5.857,4453,7.028,4454,10.183]],["t/1371",[4,0.624,12,0.516,21,0.242,69,1.289,110,0.495,125,0.602,554,4.705,2394,4.637,2572,6.028,4453,9.468,4455,10.016]],["t/1373",[0,4.371,21,0.233,28,1.824,30,4.33,102,2.05,139,4.485,143,4.129,151,5.357,220,6.744,223,5.223,224,4.03,229,2.447,231,6.196,236,5.882,277,4.354,352,2.206,442,7.596,449,1.996,554,6.677,559,5.332,1668,6.084,2150,6.125,2205,5.681,2387,5.508,2391,6.428,2523,6.588,2745,5.681,3059,5.882,4456,7.451,4457,7.451,4458,7.451,4459,6.834,4460,6.834]],["t/1375",[0,2.797,4,0.625,8,2.234,10,0.498,12,0.152,20,1.452,21,0.167,26,0.928,30,2.502,54,1.694,60,2.017,66,1.388,69,1.223,102,1.095,110,0.146,121,3.893,123,2.351,125,0.452,128,1.489,129,2.919,132,1.697,147,4.399,151,2.862,155,2.055,193,0.546,204,1.13,214,2.943,229,1.012,236,3.143,242,0.923,244,1.363,248,0.935,252,1.839,258,0.767,273,0.609,281,1.363,285,0.751,299,2.862,329,1.207,344,6.495,356,5.043,367,1.981,393,1.126,423,2.862,438,1.126,462,0.747,468,1.078,505,1.809,554,5.023,559,2.206,640,1.293,646,1.475,697,3.143,727,2.564,970,1.917,1114,1.677,1199,1.635,1200,1.563,1216,1.635,1255,2.613,1258,2.434,1429,3.435,1520,3.435,1562,3.272,1654,1.635,1661,2.79,1668,2.518,1736,1.597,1896,3.035,2205,3.035,2261,2.012,2394,1.363,2403,1.917,2523,1.597,2572,2.396,2719,2.943,2872,3.435,2874,3.435,2875,3.272,3242,3.652,3387,3.435,3400,5.311,3524,3.652,3552,1.917,3690,2.139,3954,3.435,4459,3.652,4460,5.647,4461,3.981,4462,5.208,4463,3.981,4464,3.981,4465,3.981,4466,3.981,4467,3.981,4468,4.777,4469,5.208,4470,3.652,4471,3.981,4472,3.981,4473,3.981,4474,3.981,4475,3.981,4476,6.157,4477,6.157,4478,3.652,4479,3.981,4480,2.333,4481,3.981,4482,2.333,4483,2.333,4484,2.333,4485,2.333]],["t/1377",[4,0.569,12,0.631,21,0.234,110,0.605,125,0.583,508,2.941,1736,6.64]],["t/1380",[0,2.705,4,0.619,8,2.14,10,0.473,12,0.248,15,3.29,21,0.121,28,0.934,30,3.364,51,0.934,66,1.33,69,0.815,83,1.486,91,1.64,102,1.638,104,1.595,109,2.448,110,0.138,121,2.411,123,1.86,125,0.301,128,1.44,129,1.808,132,1.742,175,1.751,189,2.671,196,1.595,221,1.914,222,1.356,224,5.011,231,2.456,246,0.605,248,3.599,266,2.567,299,3.606,321,3.977,341,1.486,367,2.247,375,1.64,404,1.456,476,3.135,477,3.434,480,3.434,489,1.64,505,1.733,549,9.278,554,1.315,560,1.691,566,0.642,792,2.819,836,3.135,846,3.29,874,1.335,916,1.403,932,1.691,1056,1.595,1080,1.315,1092,1.186,1186,1.691,1205,3.29,1206,1.315,1255,1.456,1258,2.332,1289,1.64,1382,2.673,1436,2.035,1440,1.335,1562,3.135,1575,3.048,1621,1.124,1650,3.865,1661,4.701,1931,1.691,2099,3.29,2197,2.035,2206,4.701,2216,1.691,2383,1.691,2402,1.914,2523,1.519,2574,3.385,2604,1.751,2688,2.555,2869,2.035,2872,3.29,2874,3.29,2875,3.135,2987,2.035,3018,1.823,3331,2.035,3945,2.035,4470,5.461,4478,3.498,4486,2.218,4487,2.218,4488,2.218,4489,3.813,4490,3.498,4491,3.813,4492,3.813,4493,5.954,4494,5.954,4495,3.813,4496,3.813,4497,2.218,4498,2.218,4499,3.813,4500,2.218,4501,5.954,4502,2.218,4503,3.813,4504,2.218,4505,2.218,4506,3.813,4507,2.218,4508,2.218,4509,2.218,4510,2.218,4511,2.218,4512,2.218,4513,2.218,4514,3.813,4515,2.218,4516,2.218,4517,2.218,4518,3.813,4519,2.218,4520,2.218,4521,2.218,4522,2.218,4523,2.218,4524,2.218,4525,2.218,4526,2.218,4527,2.218,4528,2.218]],["t/1383",[4,0.625,12,0.404,21,0.15,66,2.163,69,1.008,110,0.387,125,0.512,128,1.5,132,1.087,193,1.451,258,2.039,285,1.997,367,2.44,438,2.995,462,1.987,468,2.866,471,3.678,474,4.897,508,1.881,917,3.575,1130,4.897,1131,5.099,2227,7.811,2315,4.586,4270,5.69,4529,6.203,4530,8.516,4531,6.203,4532,6.203,4533,6.203,4534,6.203,4535,10.466,4536,6.203,4537,6.203,4538,6.203,4539,6.203,4540,6.203,4541,6.203]],["t/1385",[4,0.62,12,0.291,21,0.108,33,3.413,49,4.124,51,1.096,52,3.538,69,0.727,110,0.279,125,0.405,128,2.544,129,2.123,132,1.844,189,1.783,193,1.047,223,3.138,252,2.068,253,2.104,258,3.332,285,2.605,329,2.316,462,3.248,465,3.862,466,7.135,467,4.1,468,4.159,469,6.104,489,3.309,516,3.411,622,2.034,708,2.695,709,2.654,736,4.719,763,5.133,835,3.862,905,2.783,907,2.292,917,4.664,1167,2.831,1191,2.223,1714,3.534,1888,3.68,1931,3.413,2182,4.42,2491,3.68,2492,3.413,3100,3.68,4413,3.862,4542,4.477,4543,6.733,4544,4.477,4545,4.477,4546,4.477,4547,4.477,4548,4.477]],["t/1387",[4,0.628,10,0.498,12,0.152,19,1,21,0.056,23,1.159,30,0.948,35,2.038,49,2.82,69,0.379,76,2.694,86,1.531,110,0.384,123,1.923,125,0.313,128,1.82,129,1.106,132,1.485,155,0.779,189,0.929,193,1.982,219,1.404,246,0.636,258,2.023,277,1.363,283,2.24,285,1.282,323,2.36,329,1.207,367,0.668,423,1.677,440,2.726,449,0.625,456,1.475,462,1.668,468,1.839,480,1.597,481,1.778,496,2.613,706,1.841,708,1.404,723,3.272,740,3.035,782,2.012,803,3.744,861,2.862,905,2.474,907,2.038,917,2.294,1031,1.997,1072,3.435,1080,7.099,1373,4.315,1377,2.79,1378,3.143,1567,1.917,1653,2.234,1656,2.667,1685,3.035,1691,2.943,1830,2.564,1900,3.143,2054,2.943,2141,3.272,2145,2.726,2146,2.667,2147,3.652,2252,3.143,2286,3.035,2410,2.012,2499,2.139,2560,1.917,2561,1.778,3065,2.012,3066,6.936,3273,1.607,3762,3.035,3904,3.143,4247,3.652,4321,2.139,4350,3.435,4356,2.139,4357,2.139,4549,2.333,4550,3.981,4551,3.652,4552,3.981,4553,3.981,4554,3.981,4555,3.981,4556,3.981,4557,3.981,4558,3.981,4559,3.981,4560,3.981,4561,3.981,4562,2.333,4563,2.333,4564,2.333,4565,2.333,4566,2.333,4567,2.333]],["t/1389",[4,0.623,12,0.294,21,0.047,35,1.735,49,3.107,69,1.259,86,2.226,109,1.98,110,0.121,125,0.204,128,2.386,132,1.869,147,3.603,189,0.771,209,6.12,252,1.566,253,1.593,258,2.229,283,3.648,285,1.747,322,0.533,367,1.555,399,2.585,468,3.134,469,2.144,472,3.856,477,2.321,483,3.317,501,1.879,516,1.718,534,1.048,664,3.317,687,2.376,762,2.271,868,2.376,873,9.959,874,4.666,882,3.635,905,2.107,907,1.735,936,3.11,1027,4.46,1064,1.954,1129,5.355,1296,3.25,1440,1.166,1900,2.677,2136,1.777,2137,6.302,2182,3.562,2286,7.863,2702,4.977,3316,2.925,4103,4.977,4413,1.671,4551,4.977,4568,1.937,4569,5.426,4570,5.426,4571,3.39,4572,3.39,4573,3.39,4574,3.39,4575,3.39,4576,3.39,4577,4.977,4578,5.426,4579,3.39,4580,3.39,4581,3.39,4582,3.39,4583,3.39,4584,5.426,4585,3.39,4586,3.39,4587,3.39,4588,3.39,4589,3.39,4590,3.39,4591,3.39,4592,5.426,4593,3.39,4594,3.39,4595,5.426,4596,5.426,4597,3.39,4598,3.39,4599,3.39,4600,1.937]],["t/1391",[4,0.597,12,0.488,20,2.278,21,0.181,35,4.945,110,0.468,123,3.017,125,0.581,128,2.729,132,2.096,248,3.872,1296,6.944,1874,7.14,2073,7.364,2079,8.333,4601,9.66,4602,9.66,4603,7.497]],["t/1393",[4,0.623,12,0.268,21,0.099,69,1.4,110,0.257,125,0.38,128,1.527,132,1.72,169,4.972,193,0.963,234,6.151,235,3.137,258,3.465,283,1.77,295,3.765,322,2.114,367,1.81,434,3.457,438,1.987,440,4.324,443,5.793,444,3.801,462,2.023,622,1.87,709,2.44,861,2.958,907,2.106,952,3.382,954,4.986,959,5.793,960,5.793,961,2.757,962,3.382,966,4.427,968,2.884,1167,3.994,1221,6.806,1340,4.231,1422,4.231,4353,3.774,4354,5.793,4355,5.793,4604,4.115,4605,9.003,4606,8.53,4607,4.115,4608,4.115,4609,4.115,4610,6.316,4611,4.115,4612,6.316,4613,4.115,4614,4.115,4615,4.115]],["t/1395",[4,0.618,12,0.362,21,0.134,65,1.508,99,2.759,110,0.347,125,0.474,128,1.906,132,1.382,189,2.212,193,1.3,222,3.396,234,4.745,252,2.566,253,2.611,258,3.596,322,2.169,438,2.682,558,3.041,622,2.524,907,2.843,944,6.589,968,3.893,1173,8.58,1315,5.175,1440,3.344,1797,4.385,1976,4.792,2341,4.792,2342,4.385,2343,6.224,2344,7.231,2347,6.224,4352,7.231,4434,4.792,4605,7.231,4606,5.095,4616,5.555,4617,5.555,4618,5.555,4619,5.555,4620,5.555,4621,5.555,4622,5.555,4623,5.555,4624,5.555,4625,5.555]],["t/1397",[0,3.855,4,0.609,28,2.077,99,4.215,109,3.097,120,6.725,121,5.366,123,2.65,124,6.975,125,0.51,147,4.959,232,10.828,233,7.783,4626,8.486]],["t/1399",[4,0.614,12,0.564,21,0.209,69,1.408,110,0.541,125,0.636,393,4.184,401,7.476,539,7.949,541,8.696,4627,10.579]],["t/1401",[4,0.628,12,0.204,21,0.123,59,3.227,69,2.068,71,8.8,107,3.772,110,0.318,125,0.446,126,3.89,132,0.894,144,1.68,170,3.494,171,3.577,172,3.772,239,2.585,246,0.857,248,1.26,249,2.982,274,2.179,331,3.286,333,3.89,393,1.517,407,3.669,466,3.772,547,2.612,681,3.227,1129,4.029,1133,3.025,1398,3.494,1826,3.669,1872,4.402,1891,3.89,2010,4.029,2092,4.194,2140,4.681,2659,3.12,3468,2.711,3932,2.583,4628,5.103,4629,4.681,4630,5.103,4631,5.103,4632,5.103,4633,5.103,4634,5.103,4635,5.103,4636,5.103,4637,3.142,4638,2.882,4639,2.882,4640,2.882]],["t/1403",[4,0.591,12,0.537,21,0.248,69,1.341,110,0.515,125,0.703,132,2.049,246,2.799,3468,8.858,3932,6.787,4638,9.418,4639,9.418,4640,9.418]],["t/1406",[0,1.818,1,2.19,2,1.143,3,2.024,4,0.61,6,1.254,8,1.316,10,1.116,12,0.153,20,0.553,21,0.057,30,2.511,39,1.269,49,1.833,50,3.288,51,1.513,52,3.814,53,1.511,60,2.027,69,1.44,76,1.214,89,1.458,101,1.644,103,1.412,106,2.487,108,1.789,110,0.146,123,2.358,125,0.371,127,3.307,128,0.967,129,3.823,132,1.9,140,1.103,143,1.3,144,1.826,155,1.336,158,1.057,173,0.669,179,1.852,180,1.54,189,0.934,218,2.338,244,3.056,246,1.091,266,1.201,273,1.81,301,2.804,306,3.288,307,1.017,308,1.92,309,3.67,310,3.158,311,3.05,312,2.957,313,3.67,314,2.487,315,5.476,316,3.67,317,3.451,318,2.876,319,3.05,321,3.101,329,1.214,339,3.288,341,1.572,347,1.352,348,2.024,350,1.484,367,2.164,393,1.133,404,1.54,405,1.511,420,1.484,438,1.133,460,1.511,475,1.789,508,0.711,521,1.644,524,1.54,534,3.751,618,1.734,664,2.446,740,4.712,746,3.72,867,1.606,869,2.626,916,1.484,1064,1.352,1080,1.391,1092,1.254,1111,1.789,1124,1.644,1136,3.05,1165,1.928,1232,2.957,1233,2.804,1242,1.789,1294,3.451,1348,2.804,1440,1.412,1543,1.852,1567,1.928,1650,1.352,1654,4.332,1762,1.54,1789,1.789,2096,3.451,2468,2.024,2506,1.852,2859,3.158,3113,1.852,3387,2.024,3588,2.152,3873,2.152,4276,3.67,4279,1.928,4312,2.024,4641,2.346,4642,8.494,4643,4.001,4644,4.001,4645,4.001,4646,4.001,4647,4.001,4648,4.001,4649,4.001,4650,4.001,4651,2.346,4652,4.001,4653,2.346,4654,2.346,4655,2.346,4656,2.346,4657,2.152,4658,4.001,4659,2.346,4660,2.346,4661,2.346,4662,2.346,4663,2.346,4664,2.346,4665,2.346,4666,2.152,4667,4.001,4668,2.346,4669,2.346,4670,2.346,4671,2.346,4672,2.346,4673,2.346,4674,2.346,4675,2.346,4676,3.67,4677,2.346,4678,2.346,4679,2.346,4680,2.346,4681,2.346,4682,2.346,4683,2.346,4684,2.346,4685,2.346,4686,2.346,4687,2.346,4688,2.346,4689,2.346,4690,2.152,4691,2.152,4692,2.346]],["t/1408",[0,2.178,4,0.624,10,0.621,12,0.189,20,1.13,21,0.07,23,3.035,30,1.182,49,4.265,51,1.173,52,2.784,69,1.369,83,3.211,86,1.91,110,0.182,123,1.497,125,0.367,127,1.84,128,1.159,129,1.38,132,1.741,144,1.384,158,1.311,189,1.159,193,1.833,195,2.092,214,3.543,246,0.793,258,3.06,283,2.629,284,2.219,285,0.937,307,1.261,315,2.297,329,1.505,367,2.553,393,1.405,405,1.874,468,1.344,469,1.84,505,1.322,727,1.874,848,5.142,868,2.04,905,1.809,907,1.49,916,1.84,1080,1.725,1092,1.556,1111,2.219,1114,2.092,1117,2.511,1124,2.04,1167,3.031,1224,2.511,1232,2.151,1233,2.04,1294,2.511,1348,2.04,1762,6.112,2015,4.135,2096,4.135,2307,4.135,2672,4.135,4199,6.498,4428,8.54,4430,8.54,4577,2.669,4666,2.669,4676,2.669,4693,4.793,4694,4.793,4695,4.793,4696,9.311,4697,4.793,4698,4.793,4699,4.793,4700,2.91,4701,2.91,4702,2.91,4703,2.91,4704,2.91,4705,2.91,4706,2.91,4707,2.91,4708,2.91,4709,4.793,4710,2.91,4711,2.91,4712,2.91,4713,2.91,4714,2.91,4715,2.91,4716,2.91]],["t/1410",[4,0.598,12,0.568,21,0.211,98,5.253,109,3.186,110,0.545,125,0.639,189,3.476,310,6.89,1067,5.175,1348,6.117,1440,5.253,4301,8.006,4434,7.53,4717,8.728,4718,8.728]],["t/1413",[4,0.627,12,0.183,21,0.068,49,4.717,68,4.558,69,1.673,76,4.753,110,0.176,125,0.28,128,1.444,132,1.046,144,1.572,193,1.397,252,1.301,253,1.324,258,3.556,283,2.569,285,2.235,421,4.908,444,2.808,456,1.781,462,3.298,516,1.427,622,1.28,681,1.781,705,6.548,834,3.683,863,3.683,867,6.291,869,3.062,874,2.808,876,5.447,877,2.95,881,3.834,882,3.125,1054,4.024,1265,4.279,1315,6.759,1340,3.125,1575,2.388,1685,2.147,1866,1.928,2145,1.928,2252,2.223,4312,2.43,4719,4.665,4720,4.665,4721,4.665,4722,4.665,4723,4.665,4724,4.665,4725,4.665,4726,4.665,4727,4.665,4728,4.665,4729,4.665,4730,2.816,4731,2.816,4732,2.816]],["t/1415",[4,0.614,12,0.396,21,0.147,69,0.988,76,3.145,102,1.672,106,3.779,110,0.379,123,1.899,125,0.505,128,2.509,132,1.686,189,2.421,193,1.422,252,2.809,253,2.857,258,3.162,283,2.615,486,3.412,516,3.08,553,5.75,665,4.998,1008,4.998,1031,3.05,1064,4.84,1175,5.577,1319,7.058,1454,4.635,2362,5.577,2659,3.717,3562,4.8,3775,7.336,3776,6.903,4348,5.577,4349,5.577,4350,7.246,4733,6.08,4734,6.08,4735,6.08,4736,6.08,4737,6.08]],["t/1417",[4,0.576,12,0.598,21,0.222,26,2.14,30,3.733,51,2.249,69,1.492,110,0.573,125,0.552,393,4.435,508,2.786,2364,7.004,4449,8.427]],["t/1420",[4,0.608,23,5.807,26,1.609,28,1.69,30,2.805,32,1.908,109,2.52,125,0.55,128,1.669,132,1.21,140,3.245,147,5.349,152,5.104,155,2.305,174,4.291,193,1.615,195,4.963,268,2.662,269,2.696,295,3.997,367,1.978,483,4.221,505,4.665,869,6.008,874,4.156,2003,5.451,2004,9.418,3113,5.451,4738,9.153,4739,9.153]],["t/1422",[0,0.959,1,2.644,2,3.604,4,0.622,10,0.45,12,0.074,20,1.535,21,0.103,23,1.459,28,1.302,30,1.485,32,1.335,44,2.832,54,1.005,57,1.234,60,1.07,69,1.498,94,0.802,98,0.689,102,1.329,109,1.334,110,0.071,121,1.335,123,2.31,125,0.428,127,1.335,128,1.392,129,2.917,132,1.696,139,2.908,140,2.27,144,2.192,155,2.765,169,2.288,172,4.547,179,0.904,180,1.386,189,0.456,193,0.494,209,1.2,214,2.701,220,2.561,222,1.291,224,1.142,242,0.453,244,0.669,246,0.576,252,0.975,268,1.65,269,0.447,270,2.535,272,3.597,273,0.767,274,2.063,275,1.445,276,1.936,283,2.477,294,2.025,295,3.698,296,1.936,298,1.936,299,1.518,300,1.821,303,3.571,308,0.42,321,0.679,323,2.537,367,1.957,471,1.252,473,2.864,480,1.445,489,1.56,505,0.959,508,1.108,554,1.252,559,1.17,640,1.17,736,1.48,740,4.056,791,1.445,843,1.05,867,0.784,974,1.936,980,0.846,1079,0.846,1081,3.814,1092,0.612,1112,2.561,1176,1.05,1183,1.821,1185,1.609,1216,2.059,1296,1.518,1382,1.48,1440,0.689,1454,0.873,1575,1.081,1698,1.05,1700,0.941,1736,0.784,1749,3.263,1750,0.941,1895,1.936,1896,2.786,1963,1.667,2094,0.873,2205,3.683,2327,2.701,2719,1.56,2736,1.821,3011,1.936,3220,1.05,3315,2.415,3599,1.05,3702,1.936,3703,1.05,4233,1.735,4289,4.59,4299,4.431,4336,3.351,4468,1.936,4490,1.05,4629,1.936,4657,1.936,4690,1.05,4691,1.05,4740,2.111,4741,2.111,4742,2.111,4743,2.111,4744,2.111,4745,2.111,4746,2.111,4747,2.111,4748,2.111,4749,2.111,4750,2.111,4751,2.111,4752,3.654,4753,2.111,4754,2.111,4755,2.111,4756,2.111,4757,2.111,4758,2.938,4759,2.111,4760,2.111,4761,2.111,4762,2.111,4763,2.111,4764,2.111,4765,2.111,4766,2.111,4767,2.111,4768,2.111,4769,2.111,4770,2.111,4771,2.111,4772,0.987,4773,1.145,4774,1.145,4775,1.145,4776,1.145,4777,1.145,4778,1.145,4779,1.145,4780,1.145,4781,1.145,4782,1.145,4783,1.145,4784,1.145,4785,1.145,4786,1.145,4787,1.145,4788,1.145,4789,1.145,4790,1.145,4791,1.145,4792,2.111,4793,1.145,4794,1.145,4795,2.111,4796,1.05,4797,1.145,4798,1.145,4799,1.145,4800,1.145,4801,2.111,4802,2.938,4803,1.145,4804,1.145,4805,1.145,4806,2.111,4807,1.145,4808,5.32,4809,1.145,4810,2.111,4811,2.938,4812,1.145,4813,1.145,4814,1.145,4815,1.145,4816,1.145,4817,1.145,4818,1.145,4819,1.145,4820,1.145,4821,1.145,4822,1.145,4823,1.145,4824,1.145]],["t/1424",[4,0.596,10,1.931,12,0.589,21,0.219,110,0.565,125,0.544,128,2.188,132,1.586,274,3.865,508,2.745,1736,6.197,4233,7.44,4772,7.809]],["t/1426",[4,0.59,10,1.975,12,0.602,21,0.224,110,0.578,125,0.556,128,2.238,132,1.622,274,3.953,4233,7.609,4772,7.986]],["t/1428",[4,0.617,10,1.169,12,0.357,21,0.132,99,2.722,110,0.342,125,0.596,127,3.466,128,1.325,132,1.909,189,3.11,193,1.282,224,4.224,244,3.202,246,1.494,252,3.607,258,1.801,272,2.901,273,1.43,274,3.884,295,3.41,308,3.64,341,5.231,344,6.736,367,2.238,420,3.466,438,2.646,836,4.505,1114,3.94,1163,3.597,1200,3.671,1560,4.326,1567,4.505,1575,2.805,1700,4.505,1887,4.728,2077,5.027,2386,2.67,3038,5.027,3586,4.728,4323,5.027,4825,5.48,4826,5.48,4827,5.48,4828,5.48,4829,5.48,4830,5.48,4831,5.48,4832,5.48,4833,5.48,4834,5.48,4835,5.48,4836,5.48,4837,5.48]],["t/1431",[3,2.43,4,0.623,10,0.601,12,0.183,21,0.144,44,2.937,46,4.316,110,0.176,123,2.169,125,0.463,128,0.681,132,1.766,155,1.557,169,2.494,189,1.121,193,0.659,209,2.652,224,4.162,228,3.194,244,2.726,246,1.628,252,3.208,253,3.263,258,3.228,283,4.1,302,0.818,329,1.457,367,1.99,444,1.695,467,2.363,483,3.651,496,1.849,524,1.849,534,2.523,552,1.849,622,1.28,662,4.867,848,3.062,874,1.695,877,3.776,882,1.887,905,3.712,907,3.057,908,4.754,1067,1.67,1079,2.082,1092,1.506,1170,3.354,1171,4.024,1172,2.223,1319,1.722,1575,2.388,1721,2.43,1774,4.279,1896,3.556,2660,2.223,3016,4.279,3180,4.279,3775,2.147,3911,2.583,3912,4.279,3932,2.315,4265,2.583,4337,2.583,4338,2.583,4796,4.279,4838,2.816,4839,4.665,4840,6.944,4841,6.944,4842,4.665,4843,4.665,4844,4.665,4845,6.944,4846,4.665,4847,6.944,4848,4.665,4849,4.665,4850,4.665,4851,4.665,4852,4.665,4853,4.665,4854,4.665,4855,2.816,4856,2.816,4857,2.816,4858,2.816,4859,2.816,4860,4.665,4861,4.665,4862,2.816,4863,2.816,4864,2.816,4865,2.816,4866,2.816,4867,2.816]],["t/1433",[4,0.627,12,0.088,20,0.319,21,0.082,22,1.682,32,0.679,35,0.691,43,1.03,44,1.209,46,1.527,51,0.331,53,1.582,59,1.554,69,0.676,70,4.028,99,0.671,102,0.676,103,2.504,106,0.839,107,0.998,109,0.897,110,0.084,123,3.204,125,0.325,128,2.502,129,1.165,132,1.879,144,0.556,155,1.389,169,1.807,170,1.682,171,1.722,172,1.816,173,0.701,174,2.586,175,3.285,176,2.544,189,0.538,222,1.502,224,1.828,234,2.504,252,2.942,253,2.993,266,3.26,281,0.789,283,1.057,295,0.59,328,0.925,329,0.699,331,2.176,333,1.873,335,1.03,367,2.218,393,1.186,425,1.816,432,3.42,434,4.236,444,3.257,462,1.333,501,0.748,505,2.69,559,1.361,640,1.361,662,1.722,664,1.502,679,1.479,705,1.066,709,1.457,710,2.253,711,2.019,767,1.582,768,3.42,846,2.12,877,3.422,1080,1.457,1129,3.285,1217,1.613,1232,1.816,1255,1.613,1331,5.857,1334,5.495,1337,2.253,1542,2.019,1721,1.165,1787,2.253,1826,1.766,1839,2.12,2177,1.03,2179,2.019,2206,1.94,2659,1.502,2955,2.12,3720,2.253,3810,2.12,3856,1.165,3965,4.964,3986,2.253,4157,1.239,4868,2.457,4869,2.457,4870,2.457,4871,2.457,4872,2.457,4873,2.457,4874,5.412,4875,3.379,4876,2.457,4877,2.457,4878,2.457,4879,2.457,4880,2.457,4881,2.457,4882,2.457,4883,2.457,4884,2.457,4885,2.457,4886,2.457,4887,2.457,4888,2.457,4889,2.457,4890,2.457,4891,4.161,4892,2.457,4893,2.457,4894,2.457,4895,2.457,4896,2.457,4897,4.161,4898,2.457,4899,2.457,4900,2.457,4901,2.457,4902,2.457,4903,2.457,4904,2.457,4905,2.457,4906,2.457,4907,2.457,4908,2.457,4909,2.457,4910,2.457,4911,2.457,4912,2.457,4913,2.457,4914,2.457,4915,2.457,4916,2.457,4917,2.457,4918,2.457,4919,1.351,4920,1.351]],["t/1435",[4,0.626,10,0.606,12,0.185,21,0.069,26,1.095,49,3.543,57,1.661,65,2.261,69,1.784,110,0.177,123,1.468,125,0.361,128,2.23,132,1.81,138,4.115,144,0.644,189,2.394,193,0.665,222,2.874,231,3.027,246,0.775,252,1.313,253,1.336,258,3.143,273,0.742,285,1.513,295,2.053,329,1.47,393,2.269,462,1.925,467,3.045,471,1.685,607,1.685,684,1.83,708,1.711,759,1.992,765,3.864,791,1.946,867,3.218,868,3.295,908,3.218,916,2.973,980,5.162,1064,1.638,1377,3.295,1398,3.218,1453,2.101,1456,2.167,1552,2.336,1560,3.711,1564,2.101,1656,1.904,1762,3.086,1797,2.244,2010,6.578,2011,2.607,2357,5.513,3789,2.336,3835,3.379,4263,2.607,4339,2.607,4340,2.607,4341,2.607,4342,2.336,4343,2.607,4344,2.607,4345,2.607,4346,2.607,4347,2.607,4921,2.842,4922,4.701,4923,4.701,4924,4.701,4925,4.701,4926,4.701,4927,4.701,4928,4.701,4929,4.701,4930,4.701,4931,4.701,4932,2.842,4933,2.842,4934,2.842,4935,2.842,4936,2.842,4937,2.842,4938,2.842,4939,2.842,4940,2.842,4941,2.842,4942,2.842]],["t/1437",[4,0.629,12,0.35,21,0.13,44,2.648,51,1.318,66,2.688,69,0.875,110,0.336,123,1.681,125,0.463,128,1.864,132,1.351,224,4.17,281,3.146,393,2.599,1332,7.786,2964,8.902,2967,6.651,2968,4.425,3562,6.087,3647,7.072,3654,7.072,4943,7.71,4944,7.71,4945,5.384,4946,7.71,4947,7.71,4948,5.384,4949,5.384]],["t/1439",[4,0.579,12,0.607,21,0.225,69,1.515,110,0.582,125,0.561,393,4.503,508,2.829,567,8.555,1656,6.249,4950,9.328]],["t/1441",[4,0.629,12,0.287,20,1.571,21,0.107,69,1.88,110,0.275,116,5.077,125,0.4,128,1.61,132,1.406,144,2.677,155,2.223,193,1.032,252,2.038,253,2.074,258,2.189,407,4.788,472,3.786,607,2.616,622,3.026,746,4.009,860,6.109,1244,4.788,1818,6.109,1865,4.56,1866,3.021,2597,3.627,2598,4.047,2599,5.077,3807,5.258,3835,4.788,4342,3.627,4351,4.047,4951,4.412,4952,4.412,4953,4.412,4954,4.412]],["t/1443",[4,0.632,10,0.794,12,0.14,21,0.052,44,5.16,49,1.704,60,4.138,65,1.585,66,2.514,110,0.135,123,1.162,125,0.433,129,1.764,132,0.652,143,2.062,193,2.511,209,2.115,229,0.946,252,1.719,253,1.749,256,2.062,258,3.447,285,1.198,393,3.481,425,2.75,467,1.885,468,1.719,495,1.061,819,2.937,882,2.493,966,2.608,1037,2.837,1191,5.066,1227,2.937,1319,3.571,1377,2.608,1762,2.442,1866,1.476,2054,2.75,2182,2.442,2280,2.547,2366,2.675,2659,2.275,3762,6.227,3770,3.058,3775,2.837,3780,3.21,4955,3.721,4956,3.721,4957,3.721,4958,5.841,4959,3.721,4960,3.721,4961,3.721]]],"invertedIndex":[["",{"_index":4,"t":{"2":{"position":[[37,2]]},"4":{"position":[[0,2],[49,2],[107,2],[125,2],[185,2]]},"6":{"position":[[7,2],[53,2],[437,1],[468,1],[503,1],[551,1]]},"11":{"position":[[350,3],[358,1],[360,3],[371,1],[373,1],[375,3],[392,1],[394,1],[396,3],[412,1],[414,1],[416,3],[429,1],[431,1],[433,3],[449,1],[451,3],[463,1],[465,3],[479,1],[481,3],[485,2],[488,1],[490,3],[504,3]]},"13":{"position":[[6,1],[116,1],[118,1],[144,1],[146,1],[160,1],[176,1],[178,1],[180,1]]},"15":{"position":[[0,1],[130,1],[215,1],[217,1],[228,1],[271,1],[486,1],[522,2],[530,1],[532,1],[656,1],[705,1],[714,2],[754,1],[756,1],[763,1],[765,1],[772,1],[774,5],[780,2],[786,1],[788,1],[795,1],[797,4],[802,2],[809,1],[811,1],[821,1],[823,1],[825,3],[829,2],[867,2],[881,1],[883,2],[886,2],[909,1],[911,2],[914,2],[936,1],[938,1],[940,2],[943,2],[964,2],[976,1],[978,5],[984,2],[999,1],[1001,1],[1009,1],[1011,2],[1014,2],[1022,1],[1024,2],[1027,2],[1035,1],[1037,2],[1040,2],[1048,1],[1050,2],[1053,2],[1056,2],[1063,1],[1065,1],[1073,1],[1075,2],[1078,2],[1090,1],[1092,2],[1095,2],[1106,1],[1108,2],[1111,2],[1114,2],[1123,1],[1125,1],[1133,1],[1135,2],[1138,2],[1149,1],[1151,3],[1155,2],[1164,1],[1166,2],[1169,2],[1180,1],[1182,3],[1186,2],[1195,1],[1197,2],[1200,2],[1211,1],[1213,2],[1216,2],[1229,1],[1231,2],[1234,2],[1246,1],[1248,3],[1252,2],[1267,1],[1269,2],[1272,2],[1283,1],[1285,2],[1288,2],[1296,1],[1298,2],[1301,2],[1315,1],[1317,2],[1320,2],[1329,1],[1331,2],[1334,2],[1343,1],[1345,2],[1348,2],[1356,1],[1358,2],[1361,2],[1371,1],[1373,2],[1376,2],[1388,1],[1390,3],[1394,2],[1407,1],[1409,2],[1412,2],[1419,1],[1421,2],[1424,2],[1435,1],[1437,2],[1440,2],[1450,1],[1452,3],[1456,2],[1466,1],[1468,2],[1471,2],[1484,1],[1486,3],[1490,2],[1498,1],[1500,2],[1503,2],[1513,1],[1515,3],[1519,2],[1529,1],[1531,2],[1534,2],[1546,1],[1548,2],[1551,2],[1562,1],[1564,2],[1567,2],[1579,1],[1581,2],[1584,2],[1597,1],[1599,2],[1602,2],[1613,1],[1615,3],[1619,2],[1629,1],[1631,2],[1634,2],[1644,1],[1646,3],[1650,2],[1664,1],[1666,2],[1669,2],[1680,1],[1682,3],[1686,2],[1694,1],[1696,2],[1699,2],[1716,1],[1718,2],[1721,2],[1729,1],[1731,2],[1734,2],[1743,1],[1745,2],[1748,2],[1760,1],[1762,3],[1766,2],[1769,2],[1772,2],[1829,1],[1831,1],[1841,1],[1843,1],[1986,2],[1998,1],[2012,1],[2081,1],[2083,1],[2295,2],[2298,2],[2301,1]]},"17":{"position":[[131,1],[154,1],[191,1],[246,1],[263,1],[292,2],[332,1],[358,1],[360,1],[374,1],[387,2],[390,2],[418,1],[491,1],[493,1],[516,1],[523,2],[526,2],[548,1],[580,1],[588,2],[630,1],[665,1],[667,1],[689,2],[729,1],[776,1],[783,1],[793,2],[801,2],[873,1],[913,1],[915,1],[974,1],[1047,1],[1090,2],[1103,1],[1125,2],[1128,2],[1159,1],[1161,1],[1172,1],[1174,1],[1192,1],[1222,1],[1224,1],[1242,1],[1250,2],[1270,1],[1294,1],[1299,2],[1302,2],[1305,2],[1336,1],[1392,1],[1394,1],[1431,1],[1433,1],[1523,1],[1525,3],[1529,2],[1532,2],[1535,2],[1606,1],[1646,1],[1648,1],[1693,1],[1846,1],[1855,1],[1870,1],[1891,2],[1952,1],[1959,1],[1983,1],[1992,2],[2005,2],[2037,1],[2039,1],[2076,1],[2078,1],[2170,1],[2172,3],[2176,2],[2386,1],[2388,1],[2440,1],[2497,1],[2504,2],[2535,1],[2590,5],[2596,1],[2626,2],[2629,2],[2632,2],[2797,1],[2806,1],[2849,2],[2883,1],[2925,1],[2927,1],[2946,1],[2948,1],[3090,2],[3093,2],[3096,2],[3315,1],[3357,1],[3442,1],[3465,2],[3473,2],[3542,1],[3579,1],[3598,1],[3656,1],[3676,4],[3686,2],[3694,2],[3759,1],[3796,1],[3815,1],[3835,1],[3879,1],[3886,2],[3926,1],[3935,1],[3978,2],[4068,1],[4077,1],[4114,2],[4167,1],[4201,1],[4203,1],[4222,1],[4224,1],[4269,2],[4272,2],[4275,2],[4278,1]]},"19":{"position":[[311,1],[313,1],[342,1],[350,2],[353,1],[382,1],[390,2],[393,1],[780,1],[782,3],[1030,1],[1055,2],[1142,1],[1195,1],[1229,1],[1251,1],[1289,2],[1313,2],[1343,1],[1388,2],[1391,1],[1411,2],[1414,1],[1445,2],[1448,2],[1457,3],[1556,1],[1558,1],[1598,1],[1626,1],[1646,2],[1686,1],[1695,1],[1707,2],[1710,2],[1722,1],[1724,1],[1951,1],[2132,1],[2188,1],[2190,4],[2271,2],[2282,1],[2284,1],[2298,1],[2300,1],[2326,1],[2328,2],[2339,1],[2341,1],[2351,1],[2407,1],[2436,2],[2493,1],[2495,1],[2501,1],[2503,1],[2550,1],[2552,1],[2656,2],[2659,2],[2662,2],[2665,2]]},"23":{"position":[[316,1],[341,1],[380,1],[405,1],[407,1],[409,1],[457,1],[477,1],[479,2],[487,1],[489,1],[571,1],[582,2],[585,2],[588,1]]},"25":{"position":[[92,1],[113,1],[145,1],[153,2],[156,1]]},"27":{"position":[[664,1],[691,1],[764,1],[766,1],[789,1],[796,2],[799,1],[818,1],[853,1],[855,1],[877,2],[917,1],[964,1],[971,1],[981,2],[989,1],[991,1]]},"29":{"position":[[216,1],[256,1],[258,1],[337,1],[391,1],[406,2],[448,1],[521,1],[564,2],[577,1],[599,2],[602,2],[605,2],[775,1],[802,1],[804,1],[842,1],[854,1],[856,1],[872,2],[881,2],[884,2],[887,1],[966,2],[1039,1],[1134,1],[1154,1],[1156,1],[1210,1],[1225,2],[1228,1],[1235,2]]},"35":{"position":[[56,1]]},"39":{"position":[[127,1],[159,1],[161,1],[171,1],[173,1],[184,1],[186,1],[193,1],[195,1],[197,1],[256,1],[277,2],[280,1],[334,1],[350,2],[353,2],[356,2],[359,2],[362,2],[365,1]]},"44":{"position":[[36,1],[71,1],[73,1],[95,2],[135,1],[182,1],[189,1],[199,2],[207,1]]},"46":{"position":[[50,1],[109,1],[152,1],[172,1],[213,1],[265,2],[355,2],[376,1],[406,1],[446,1],[458,1],[575,1],[582,2],[685,1],[689,2],[817,1],[828,3],[844,1],[960,1],[965,2],[1048,1],[1059,3],[1063,2],[1071,1]]},"48":{"position":[[0,1],[36,1],[38,1],[49,1],[51,1],[57,1],[73,1],[87,1],[106,1],[125,1],[142,1],[166,1],[175,2],[178,2],[181,1]]},"50":{"position":[[0,1],[32,1],[34,1],[48,1],[63,1],[65,1],[76,1],[100,1],[117,2],[120,2],[123,1]]},"52":{"position":[[0,1],[32,1],[34,1],[42,1],[44,1],[53,1],[106,1],[108,1],[119,1],[126,2],[129,2],[132,1]]},"54":{"position":[[254,1],[256,1],[265,1],[307,2],[310,1],[319,1],[366,2],[369,1]]},"56":{"position":[[222,1],[254,1],[256,1],[266,1],[268,1],[277,1],[279,2],[282,2],[291,1],[293,1],[302,1],[385,2],[456,1],[482,2],[555,1],[577,2],[580,2],[583,1]]},"60":{"position":[[23,1],[29,1],[60,1],[67,1]]},"62":{"position":[[23,1],[25,1],[36,1],[59,1],[61,1],[76,1],[86,2],[99,1],[101,1],[120,1],[129,2],[132,1],[134,1],[164,1],[186,2],[288,1],[307,1],[309,1],[320,1],[343,1],[345,1],[360,1],[370,2],[383,1],[385,1],[404,1],[413,2],[416,2],[423,1],[425,1],[638,2],[646,1],[648,1],[650,1],[693,1],[708,2],[711,1],[755,1],[776,2],[779,1],[823,1],[839,2],[842,1],[887,1],[904,2],[907,1],[954,1],[973,2],[976,1],[1022,1],[1046,2],[1049,1],[1096,1],[1116,2],[1119,1],[1173,1],[1200,2],[1203,1],[1250,1],[1269,2],[1272,1],[1316,1],[1332,2],[1335,1],[1381,1],[1399,2],[1402,2],[1405,1]]},"64":{"position":[[23,1],[29,1],[62,1]]},"66":{"position":[[49,1],[51,1],[85,1],[87,1],[111,1],[141,1],[164,1],[166,1],[180,1],[188,2],[239,1],[247,2],[250,1],[252,1],[289,1],[312,1],[325,1],[327,1],[361,1],[363,1],[387,1],[417,1],[440,1],[442,1],[456,1],[464,2],[515,1],[523,2],[526,2],[529,1]]},"68":{"position":[[79,1],[81,1],[94,1],[96,1],[119,2],[122,1],[124,1],[180,1],[193,1],[195,1],[208,1],[210,1],[233,2],[236,2],[242,1],[244,1],[267,2],[270,1]]},"70":{"position":[[56,1],[58,1],[68,1],[70,1],[80,1],[82,1],[93,2],[106,1],[108,1],[117,1],[119,1],[128,1],[155,1],[166,1],[168,2],[171,2],[174,1],[176,1],[207,1],[221,1],[223,1],[256,2],[264,1],[266,1],[276,1],[278,1],[288,1],[290,1],[301,2],[314,1],[316,1],[325,1],[327,1],[336,1],[363,1],[374,1],[376,2],[379,2],[382,2],[385,1]]},"74":{"position":[[23,1],[25,2],[28,1],[60,1],[62,3],[71,1],[73,1],[75,1],[90,3],[99,1],[113,1],[115,1],[126,1],[128,2],[131,1],[175,1],[193,2],[196,1],[245,1],[262,2],[265,1],[318,1],[336,2],[339,1],[394,1],[414,2],[417,1],[466,1],[489,2],[492,1],[540,1],[552,1],[571,2],[574,1],[625,1],[642,1],[644,1],[676,2],[679,2],[701,1],[755,1],[771,2],[774,1],[826,1],[840,2],[843,2],[846,1]]},"76":{"position":[[285,3],[293,1],[295,3],[306,1],[308,1],[310,3],[327,1],[329,1],[331,3],[347,1],[349,1],[351,3],[364,1],[366,1],[368,3],[384,1],[386,3],[398,1],[400,3],[414,1],[416,3],[420,2],[423,1],[425,3],[439,3]]},"78":{"position":[[358,1],[360,1],[362,1],[385,1],[387,4],[432,1],[541,1],[712,1],[909,1],[1025,1],[1087,1],[1144,1],[1202,1],[1246,1],[1281,1],[1283,1],[1292,1],[1308,2],[1317,1],[1433,1],[1443,1],[1616,1],[1618,1],[1630,1],[1688,1],[1837,1],[1868,1],[1885,1],[1909,1],[2048,1],[2077,2],[2143,1],[2186,1],[2198,1],[2275,1],[2355,1],[2419,1],[2470,1],[2472,1],[2483,1],[2485,4],[2500,1],[2502,4],[2512,1],[2514,1],[2516,2],[2527,1],[2529,1],[2531,2],[2539,1],[2541,4],[2550,1],[2552,1],[2554,2],[2557,1],[2573,1],[2593,1],[2617,1],[2619,2],[2637,1],[2693,1],[2729,1],[2757,1],[2789,1],[2826,1],[2888,1],[2912,1],[2951,1],[3002,1],[3062,1],[3100,1],[3141,1],[3175,1],[3239,1],[3281,1],[3332,1],[3375,1],[3377,1],[3461,1],[3478,1],[3516,1],[3566,1],[3576,1],[3586,1],[3596,1],[3603,2],[3619,1],[3690,1],[3731,1],[3828,1],[3886,1],[3942,1],[3963,1],[3965,1],[3972,1],[3989,1],[4043,1],[4069,1],[4129,1],[4178,1],[4235,1],[4279,1],[4381,1],[4403,1],[4426,1],[4489,1],[4580,1],[4650,1],[4687,1],[4786,1]]},"80":{"position":[[449,1],[508,2],[525,2],[530,1],[537,1],[545,1],[552,1],[567,1],[582,1],[589,2],[607,2],[629,2],[634,1],[641,1],[649,1],[656,1],[671,1],[686,1],[693,2],[711,2],[728,2],[733,1],[740,1],[748,1],[755,1],[768,1],[783,1],[790,2],[808,2],[828,2],[833,1],[840,1],[848,1],[855,1],[868,1],[883,1],[890,2],[966,1],[973,1],[1002,1],[1009,2],[1040,1],[1047,1],[1077,1],[1084,2],[1115,1],[1122,1],[1152,1],[1159,2],[1190,1],[1197,1],[1227,1],[1234,2],[1319,1],[1326,1],[1353,2],[1399,1],[1406,1],[1433,2],[1488,1],[1495,1],[1521,2],[1577,1],[1584,1],[1610,2],[1665,3],[1669,1],[1688,1],[1695,1],[1709,2],[1750,1],[1752,1],[1754,1],[1766,1],[1779,1],[1786,1],[1798,2],[1846,1],[1853,1],[1867,2],[1901,1],[1915,1],[1922,1],[1934,2],[1982,5],[1988,1],[2010,1],[2017,1],[2031,2],[2079,2],[2082,2],[2085,1],[2097,1],[2113,1],[2120,1],[2132,2],[2186,1],[2193,1],[2209,2],[2248,1],[2255,1],[2271,2],[2311,1],[2318,1],[2334,2],[2370,1],[2377,1],[2393,2],[2435,1],[2442,1],[2469,2],[2510,1],[2517,1],[2544,2],[2605,1],[2612,1],[2630,2],[2697,1],[2704,1],[2729,2],[2771,1],[2778,1],[2807,2],[2873,2],[2966,1],[2973,1],[2986,1],[3016,2],[3177,1],[3184,1],[3194,1],[3211,1],[3226,1],[3228,1],[3339,1],[3346,1],[3359,1],[3382,2],[3424,1],[3431,1],[3444,1],[3467,2],[3509,1],[3516,1],[3529,1],[3552,2],[3599,1],[3606,1],[3619,1],[3642,2],[3684,1],[3691,1],[3704,1],[3727,2],[3769,1],[3776,1],[3789,1],[3812,2],[3849,4],[3874,4],[3899,4],[3953,2],[3984,1],[3991,1],[4005,2],[4063,1],[4070,1],[4085,2],[4117,4],[4138,4],[4224,1],[4231,1],[4253,2],[4316,1],[4323,1],[4345,2],[4395,1],[4402,1],[4411,2],[4466,1],[4473,1],[4486,2],[4559,1],[4588,1],[4596,1],[4609,2],[4726,1],[4733,1],[4751,2],[4824,1],[4857,1],[4870,2],[4987,1],[4994,1],[5012,2],[5045,1],[5052,1],[5074,2],[5107,1],[5114,1],[5132,2],[5164,2],[5215,1],[5222,2],[5230,1],[5237,1],[5248,2],[5287,1],[5360,1],[5381,1],[5406,1],[5469,1],[5477,2],[5538,1],[5545,1],[5566,2],[5607,1],[5614,1],[5634,2],[5676,1],[5683,1],[5703,2],[5753,1],[5760,1],[5775,2],[5826,1],[5833,1],[5848,2],[5897,1],[5904,1],[5921,2],[5971,1],[5978,1],[5995,2],[6172,1],[6179,1],[6242,1],[6249,1],[6318,1],[6325,1],[6495,1],[6501,1],[6509,1],[6530,1],[6568,1],[6643,1],[6649,1],[6657,1],[6677,1],[6714,1],[6827,1],[6833,1],[6847,1],[6856,1],[6863,1],[7285,2],[7345,1],[7351,1],[7372,2],[7380,1],[7387,1],[7410,2],[7469,1],[7476,1],[7494,2],[7564,1],[7571,1],[7589,2],[7660,1],[7667,1],[7686,2],[7757,1],[7764,1],[7793,2],[7858,1],[7879,2],[7887,1],[7894,1],[7906,2],[7924,2],[7976,1],[7983,1],[8005,2],[8022,2],[8074,1],[8126,1],[8134,2],[8142,1],[8149,1],[8171,2],[8220,1],[8227,1],[8240,2],[8307,1],[8314,1],[8330,2],[8426,1],[8433,1],[8450,2],[8537,1],[8544,1],[8566,2],[8647,1],[8654,1],[8673,2],[8731,1],[8737,1],[8754,2],[8762,1],[8769,1],[8793,2],[8851,1],[8857,1],[8874,2],[8882,1],[8889,1],[8913,2],[8971,1],[8977,1],[8994,2],[9002,1],[9009,1],[9030,2],[9063,2],[9076,1],[9083,1],[9113,1],[9120,2],[9155,1],[9162,1],[9192,1],[9199,2],[9235,1],[9242,1],[9267,1],[9274,2],[9427,1],[9434,1],[9447,2],[9497,1],[9504,1],[9525,2],[9576,1],[9583,1],[9597,2],[9650,1],[9657,1],[9669,2],[9719,1],[9726,1],[9739,2],[9790,1],[9797,1],[9811,2],[9865,1],[9872,1],[9889,2]]},"82":{"position":[[651,2],[660,1],[668,1],[675,2],[807,2],[810,1],[818,1],[851,1],[881,2],[928,2],[996,1],[1004,1],[1042,1],[1096,2],[1181,2],[1184,1],[1192,1],[1229,1],[1260,1],[1303,3],[1324,1],[1326,2],[1347,2],[1433,1],[1441,1],[1473,1],[1505,1],[1507,1],[1521,1],[1533,1],[1671,1],[1689,1],[1722,4],[1740,1],[1786,1],[1802,2],[1870,2],[1946,1],[1954,1],[1989,1],[1991,1],[2211,2],[2223,1],[2269,1],[2396,1],[2404,1],[2411,2],[2419,1],[2428,1],[2448,1],[2461,1],[2478,2],[2491,2],[2590,1],[2598,1],[2633,1],[2635,1],[2643,2],[2655,1],[2701,1],[2714,2],[2803,1],[2811,1],[2844,1],[2846,1],[2901,2],[2913,1],[2945,1],[2972,1],[2984,2],[3063,2],[3066,1],[3074,1],[3109,1],[3111,1],[3138,2],[3150,1],[3190,1],[3199,2],[3336,2],[3339,1],[3347,1],[3386,1],[3473,1],[3579,2]]},"87":{"position":[[82,1],[208,2],[211,1],[221,1],[223,1],[231,2],[243,1],[273,1],[286,2]]},"91":{"position":[[31,1],[33,1],[53,1],[82,1],[84,1],[94,1],[127,1],[129,1],[138,1],[170,1],[187,1],[193,4],[203,1],[209,4],[214,2],[217,2],[220,1],[222,1],[256,1],[275,1],[298,1],[322,1],[324,1],[344,1],[373,1],[375,1],[385,1],[418,1],[420,1],[429,1],[461,1],[478,1],[484,4],[494,1],[500,4],[505,2],[508,2],[511,2],[514,1]]},"93":{"position":[[44,1],[87,1],[277,1],[312,1],[355,1],[546,1]]},"95":{"position":[[23,1],[29,1],[46,1]]},"97":{"position":[[23,1],[29,1],[69,1]]},"99":{"position":[[42,1],[92,1],[99,1],[124,1],[138,1],[145,2],[152,1],[183,1],[204,1],[206,1],[223,2],[231,1],[281,1],[288,1],[313,1],[327,1],[334,2],[342,1]]},"101":{"position":[[23,1],[127,1],[167,1],[181,1],[200,1],[305,1]]},"105":{"position":[[31,1],[33,1],[46,1],[48,1],[58,1],[91,1],[122,1],[145,1],[147,1],[156,1],[188,1],[205,1],[211,4],[221,1],[227,4],[232,2],[235,2],[244,1],[246,1],[256,1],[264,2],[277,1],[279,1],[290,1],[303,1],[311,2],[314,1],[316,1],[348,1],[367,1],[392,1],[414,1],[416,1],[429,1],[431,1],[441,1],[474,1],[505,1],[528,1],[530,1],[539,1],[571,1],[588,1],[594,4],[604,1],[610,4],[615,2],[618,2],[627,1],[629,1],[639,1],[647,2],[660,1],[662,1],[673,1],[686,1],[694,2],[697,2],[700,1]]},"107":{"position":[[47,1],[49,1],[59,1],[61,1],[129,1],[131,1],[141,1],[149,2],[152,2],[155,1],[157,1],[189,1],[191,1],[201,1],[203,1],[271,1],[273,1],[283,1],[291,2],[294,2],[297,2],[300,1]]},"109":{"position":[[44,1],[87,1],[236,1],[269,1],[312,1],[462,1]]},"111":{"position":[[31,1],[177,1],[236,1],[255,1],[259,2],[265,2],[280,1],[302,1],[357,2],[399,2],[442,1],[448,1],[488,1],[502,1],[521,1],[667,1],[726,1],[745,1],[749,2],[755,2],[770,1],[792,1],[847,2],[889,2],[932,1],[939,1]]},"115":{"position":[[23,1],[47,1],[77,1],[102,2],[124,1],[143,1],[159,1],[161,1],[168,1],[170,2],[173,1],[175,2],[183,2],[186,1],[188,2],[201,1],[203,2],[214,2],[222,1],[224,3],[233,2],[236,2],[246,1],[248,1],[256,1],[263,2],[266,1],[272,1],[315,1],[329,1],[351,1],[375,1],[405,1],[430,2],[452,1],[471,1],[487,1],[489,1],[496,1],[498,2],[501,1],[503,2],[511,2],[514,1],[516,2],[529,1],[531,2],[542,2],[550,1],[552,3],[561,2],[564,2],[574,1],[576,1],[584,1],[591,2],[594,1],[606,1],[608,1],[610,1],[632,1],[655,1],[680,1],[687,2],[690,1],[705,3],[714,1],[728,1],[730,1],[741,1],[743,2],[746,1],[822,1],[853,1],[855,1],[866,2],[869,2],[872,1],[947,1],[977,1],[979,1],[990,2],[993,2],[996,1],[1045,1],[1060,2],[1063,2],[1091,2],[1094,2],[1155,1],[1190,1],[1192,1],[1203,2],[1206,2],[1209,1],[1285,1],[1324,1],[1326,1],[1337,2],[1340,2],[1343,2],[1353,1],[1384,1],[1449,1],[1459,1],[1486,1],[1528,1],[1557,1],[1570,2],[1595,1]]},"117":{"position":[[40,1],[71,1],[87,2],[115,1],[120,1],[144,1],[167,1],[169,1],[177,1],[182,2],[185,2],[192,1],[222,1],[235,1],[266,1],[282,2],[310,1],[315,1],[339,1],[362,1],[364,1],[372,1],[377,2],[380,2],[388,1]]},"119":{"position":[[41,1],[43,1],[53,1],[55,1],[67,1],[69,1],[76,1],[78,1],[109,3],[157,1],[193,2],[216,2],[219,2],[222,2],[225,1],[227,1],[258,1],[320,1],[322,1],[332,1],[334,1],[346,1],[348,1],[355,1],[357,1],[388,3],[436,1],[472,2],[495,2],[498,2],[501,2],[504,2],[507,1]]},"123":{"position":[[23,1],[25,1],[35,1],[37,1],[57,1],[87,1],[99,2],[128,1],[161,1],[163,1],[207,2],[210,1],[212,1],[254,1],[275,1],[277,1],[320,2],[328,1],[330,1],[340,1],[342,1],[362,1],[392,1],[404,2],[433,1],[466,1],[468,1],[512,2],[515,2],[518,1]]},"125":{"position":[[44,1],[120,1],[175,1],[205,1],[398,1],[439,1],[515,1],[570,1],[600,1],[794,1]]},"127":{"position":[[23,1],[29,1],[49,1]]},"129":{"position":[[23,1],[29,1],[72,1]]},"131":{"position":[[39,1],[110,1],[117,1],[145,1],[159,1],[166,2],[177,1],[208,1],[229,1],[231,1],[251,2],[259,1],[330,1],[337,1],[365,1],[379,1],[386,2],[398,1]]},"135":{"position":[[203,1]]},"137":{"position":[[47,1],[49,1],[59,1],[61,1],[71,1],[73,1],[98,1],[100,1],[102,1],[108,4],[165,1],[169,2],[182,1],[216,1],[218,1],[229,2],[232,2],[235,1],[241,4],[298,1],[303,2],[316,1],[350,1],[352,1],[363,2],[366,2],[369,2],[372,2],[375,2],[384,1],[386,1],[396,1],[546,1],[673,1],[684,1],[686,1],[704,1],[775,1],[786,2],[858,2],[953,2],[956,2],[968,2],[971,1],[973,1],[1005,1],[1007,1],[1017,1],[1019,1],[1029,1],[1031,1],[1056,1],[1058,1],[1060,1],[1066,4],[1123,1],[1127,2],[1140,1],[1174,1],[1176,1],[1187,2],[1190,2],[1193,1],[1199,4],[1256,1],[1261,2],[1274,1],[1308,1],[1310,1],[1321,2],[1324,2],[1327,2],[1330,2],[1333,2],[1342,1],[1344,1],[1354,1],[1504,1],[1631,1],[1642,1],[1644,1],[1662,1],[1733,1],[1744,2],[1816,2],[1911,2],[1914,2],[1926,2],[1929,2],[1932,1]]},"139":{"position":[[31,1],[229,1],[258,1],[277,1],[281,2],[300,1],[342,1],[348,1],[388,1],[402,1],[421,1],[619,1],[648,1],[667,1],[671,2],[690,1],[732,1],[739,1]]},"143":{"position":[[47,1],[76,1],[173,2],[200,1],[218,2],[242,1],[268,2],[279,1],[311,1],[340,1],[437,2],[464,1],[482,2],[506,1],[532,2],[544,1]]},"145":{"position":[[23,1],[106,1],[129,1],[230,1],[260,1],[343,1],[366,1],[491,1],[493,1],[532,1],[570,2],[588,1],[590,1],[596,2],[604,1],[611,2],[614,1],[629,3],[638,1],[652,1],[654,1],[665,1],[667,2],[670,1],[676,4],[735,1],[761,1],[763,1],[784,2],[787,2],[790,1],[860,1],[885,2],[888,1],[1034,1],[1036,1],[1048,1],[1055,1],[1057,2],[1065,1],[1081,2],[1084,1],[1153,1],[1179,2],[1182,1],[1244,1],[1255,2],[1268,1],[1270,1],[1281,2],[1289,1],[1304,2],[1307,1],[1369,1],[1380,2],[1393,1],[1408,2],[1411,1],[1473,1],[1489,2],[1502,1],[1504,1],[1510,2],[1518,1],[1545,2],[1548,1],[1618,1],[1620,1],[1631,2],[1639,1],[1667,2],[1670,2],[1673,1]]},"147":{"position":[[31,1],[63,1],[65,1],[73,1],[75,1],[77,2],[80,2],[101,2],[113,1],[115,1],[117,2],[120,2],[133,2],[144,1],[146,1],[148,2],[151,2],[171,2],[181,1],[183,1],[231,2],[234,1],[277,1],[303,1],[401,1],[454,2],[472,1],[498,1],[542,1],[635,1],[640,1],[664,1],[671,2],[715,1],[741,1],[783,2],[786,1],[788,2],[800,1],[819,3],[833,1],[887,1],[902,1],[922,1],[927,1],[958,1],[965,2],[972,1],[1012,1],[1026,1],[1045,1],[1077,1],[1079,1],[1087,1],[1089,1],[1091,2],[1094,2],[1115,2],[1127,1],[1129,1],[1131,2],[1134,2],[1147,2],[1158,1],[1160,1],[1162,2],[1165,2],[1185,2],[1195,1],[1197,1],[1245,2],[1248,1],[1291,1],[1317,1],[1415,1],[1468,2],[1486,1],[1512,1],[1556,1],[1649,1],[1654,1],[1678,1],[1685,2],[1729,1],[1755,1],[1797,2],[1800,1],[1802,2],[1814,1],[1833,3],[1847,1],[1901,1],[1916,1],[1936,1],[1941,1],[1972,1],[1979,2],[1987,1]]},"149":{"position":[[23,1],[25,1],[34,1],[36,1],[46,1],[48,1],[64,1],[140,2],[147,1],[149,1],[157,1],[159,1],[166,1],[168,1],[180,1],[182,1],[206,1],[208,1],[219,2],[222,2],[225,2],[228,2],[231,2],[234,2],[237,1],[239,1],[271,1],[284,1],[286,1],[295,1],[297,1],[307,1],[309,1],[325,1],[401,2],[408,1],[410,1],[418,1],[420,1],[427,1],[429,1],[441,1],[443,1],[467,1],[469,1],[480,2],[483,2],[486,2],[489,2],[492,2],[495,2],[498,2],[501,1]]},"153":{"position":[[23,1],[25,1],[35,1],[37,1],[60,1],[180,2],[183,1],[185,1],[219,1],[238,1],[240,1],[250,1],[252,1],[275,1],[395,2],[398,2],[401,1]]},"155":{"position":[[23,1],[25,1],[42,1],[51,1],[53,1],[107,1],[120,1],[122,1],[139,1],[148,2],[151,1]]},"159":{"position":[[35,1],[37,1],[47,1],[75,1],[92,1],[94,1],[121,1],[135,1],[284,1],[286,1],[288,1],[329,1],[450,1],[452,1],[479,2],[494,1],[496,2],[504,2],[507,2],[515,1],[517,1],[527,1],[555,1],[572,2],[575,1]]},"161":{"position":[[23,1],[25,2],[28,1],[69,1],[190,1],[192,1],[219,2],[234,1],[236,2],[244,1]]},"163":{"position":[[50,1],[99,1],[260,1],[413,1],[440,1],[489,1],[650,1],[804,1]]},"165":{"position":[[23,1],[29,1],[58,1]]},"167":{"position":[[44,1],[77,1],[79,1],[88,1],[151,1],[180,1],[187,1],[199,2],[206,1],[237,1],[258,1],[260,1],[289,2],[297,1],[330,1],[332,1],[341,1],[404,1],[433,1],[440,1],[452,2],[483,1],[485,1],[487,1],[546,1],[552,2],[555,1],[617,1],[619,1],[630,1],[632,2],[635,2],[638,1]]},"169":{"position":[[45,1],[47,1],[58,1],[60,1],[69,1],[82,2],[85,1],[87,1],[118,1],[131,1],[133,1],[144,1],[146,1],[155,1],[168,2],[171,2],[174,1]]},"173":{"position":[[23,1],[25,1],[36,1],[38,1],[44,1],[106,1],[142,1],[196,1],[249,1],[291,1],[338,1],[367,2],[370,1],[372,1],[406,1],[486,1],[533,1],[535,1],[537,1],[563,1],[589,1],[591,1],[602,1],[604,2],[607,1],[636,1],[659,2],[662,1],[689,1],[716,2],[719,1],[751,1],[777,2],[780,1],[812,1],[838,2],[841,1],[871,1],[895,2],[898,1],[935,1],[976,2],[979,1],[990,1],[1041,1],[1109,1],[1111,1],[1122,1],[1124,1],[1130,1],[1192,1],[1228,1],[1282,1],[1335,1],[1377,1],[1424,1],[1453,2],[1456,2],[1459,1]]},"177":{"position":[[23,1],[66,2],[99,1],[101,1],[115,1],[146,1],[172,1],[198,1],[209,1],[295,1],[359,1],[376,1],[409,1],[444,1],[462,1],[467,3],[475,1],[492,1],[494,1],[496,1],[562,1],[597,2],[600,2],[608,1],[651,2],[684,1],[686,1],[700,1],[731,1],[757,1],[783,1],[794,1],[880,1],[944,1],[962,1]]},"181":{"position":[[42,1],[44,1],[56,1],[80,1],[90,1],[98,1],[100,1],[131,1],[206,1],[208,1],[220,1],[244,1],[254,1],[262,2],[272,1],[339,1]]},"183":{"position":[[23,1],[29,1],[53,1]]},"185":{"position":[[23,1],[29,1],[76,1]]},"187":{"position":[[23,1]]},"189":{"position":[[23,1],[73,1],[80,1],[109,1],[123,1],[130,2],[156,1],[276,2],[308,1],[310,2],[326,1],[357,1],[378,1],[380,1],[404,2],[444,1],[494,1],[501,1],[530,1],[544,1],[551,2],[577,1],[697,2],[729,1],[731,2],[748,1]]},"191":{"position":[[23,1],[25,1],[35,1],[37,1],[46,1],[48,1],[64,2],[77,1],[79,1],[93,1],[95,1],[102,1],[128,1],[141,1],[149,2],[152,2],[155,2],[158,1],[160,1],[191,1],[212,1],[214,1],[261,2],[269,1],[271,1],[281,1],[283,1],[292,1],[294,1],[310,2],[323,1],[325,1],[339,1],[341,1],[348,1],[374,1],[387,1],[395,2],[398,2],[401,2],[404,2],[407,1]]},"193":{"position":[[54,1],[85,1],[216,1],[256,1],[270,1],[289,1],[320,1],[452,1]]},"196":{"position":[[23,1],[25,1],[44,1],[46,1],[63,1],[93,2],[106,1],[108,1],[116,1],[122,2],[125,1],[127,1],[162,1],[175,1],[204,1],[223,1],[225,1],[244,1],[246,1],[263,1],[293,2],[306,1],[308,1],[316,1],[322,2],[325,2],[333,1],[335,1],[337,1],[391,2],[505,2],[593,1],[595,1],[606,2],[614,1],[637,2],[658,1],[691,1],[693,1],[704,2],[712,1],[726,2],[729,1],[766,1],[768,1],[779,2],[787,1],[813,2],[816,1],[854,1],[856,1],[867,2],[875,1],[902,2],[905,1],[944,1],[946,1],[957,2],[965,1],[994,2],[997,1],[1037,1],[1039,1],[1050,2],[1058,1],[1088,2],[1091,1],[1133,1],[1172,2],[1175,1],[1218,1],[1258,2],[1261,1],[1313,1],[1354,2],[1357,1],[1410,1],[1452,2],[1455,1],[1507,1],[1548,2],[1551,1],[1604,1],[1646,2],[1649,1],[1703,1],[1728,2],[1731,1],[1784,1],[1808,2],[1811,1],[1866,1],[1898,2],[1901,1],[1955,1],[1986,2],[1989,1],[2033,1],[2065,2],[2068,1],[2113,1],[2146,2],[2149,2],[2152,1]]},"200":{"position":[[330,1],[518,2],[528,1],[530,1],[564,1],[911,1],[978,1],[980,1],[1134,2],[1362,1],[1369,2],[1372,1],[1376,2]]},"202":{"position":[[23,1],[123,1],[279,1],[336,1],[370,1],[381,1],[383,1],[422,2],[672,1],[674,1],[681,1],[691,2],[750,1],[752,1],[761,1],[949,1],[1035,2],[1038,1],[1044,1],[1079,1],[1153,1],[1192,1],[1292,1],[1448,1],[1505,1],[1539,1],[1550,1],[1552,1],[1591,2],[1841,1],[1843,1],[1850,1],[1860,2],[1919,1],[1921,1],[1930,1],[2118,1],[2204,2],[2207,1],[2214,1]]},"204":{"position":[[23,1],[29,1],[61,1]]},"206":{"position":[[44,1],[74,1],[108,1],[145,1],[147,1],[156,1],[249,2],[285,1],[287,2],[290,2],[298,1],[357,1],[364,1],[382,2],[413,1],[556,1],[587,1],[608,1],[636,1],[668,1],[683,1],[713,1],[747,1],[784,1],[786,1],[795,1],[888,2],[924,1],[926,2],[929,2],[937,1],[996,1],[1003,1],[1021,2],[1052,1],[1267,1],[1295,1],[1297,1],[1344,1],[1350,1],[1352,1],[1362,1]]},"208":{"position":[[45,1],[125,1],[127,1],[136,1],[154,1],[196,1],[242,1],[595,1],[643,2],[698,1],[700,1],[747,1],[824,1],[876,2],[893,1],[930,2],[963,1],[969,1],[1000,1],[1013,1],[1093,1],[1095,1],[1104,1],[1122,1],[1164,1],[1210,1],[1563,1],[1611,2],[1666,1],[1668,1],[1715,1],[1792,1],[1844,2],[1861,1],[1898,2],[1931,1],[1938,1]]},"212":{"position":[[262,1]]},"214":{"position":[[23,1],[25,1],[36,1],[38,1],[47,1],[60,2],[74,1],[76,1],[295,1],[435,1],[445,2],[459,1],[461,1],[470,1],[472,1],[526,1],[528,1],[538,1],[546,2],[549,2],[557,1],[559,1],[566,1],[568,1],[581,1],[583,1],[591,2],[594,2],[597,2],[614,1],[616,1],[628,1],[655,1],[662,2],[676,1],[678,1],[688,1],[704,2],[707,2],[762,1],[764,1],[774,1],[781,2],[792,1],[794,1],[877,1],[879,3],[891,1],[893,1],[931,2],[934,2],[945,1],[947,1],[957,1],[972,1],[974,1],[983,1],[1008,1],[1028,1],[1037,2],[1051,1],[1053,1],[1060,1],[1062,1],[1074,1],[1076,1],[1088,1],[1096,1],[1098,2],[1106,1],[1108,1],[1120,1],[1163,2],[1166,3],[1175,2],[1189,1],[1191,1],[1201,1],[1208,2],[1211,2],[1214,2],[1224,1],[1226,1],[1235,1],[1256,1],[1258,1],[1280,2],[1283,2],[1286,1],[1288,1],[1318,1],[1353,4],[1364,1],[1432,1],[1434,1],[1513,2],[1529,1],[1531,1],[1601,1],[1635,1],[1708,1],[1710,3],[1722,1],[1757,4],[1762,2],[1765,2],[1774,1],[1776,1],[1808,2],[1865,1],[1867,1],[1878,1],[1880,1],[1889,1],[1902,2],[1916,1],[1918,1],[2137,1],[2277,1],[2287,2],[2301,1],[2303,1],[2312,1],[2314,1],[2368,1],[2370,1],[2380,1],[2388,2],[2391,2],[2399,1],[2401,1],[2408,1],[2410,1],[2423,1],[2425,1],[2433,2],[2436,2],[2439,2],[2456,1],[2458,1],[2470,1],[2497,1],[2504,2],[2518,1],[2520,1],[2530,1],[2546,2],[2549,2],[2604,1],[2606,1],[2616,1],[2623,2],[2634,1],[2636,1],[2719,1],[2721,3],[2733,1],[2735,1],[2773,2],[2776,2],[2787,1],[2789,1],[2799,1],[2814,1],[2816,1],[2825,1],[2850,1],[2870,1],[2879,2],[2893,1],[2895,1],[2902,1],[2904,1],[2916,1],[2918,1],[2930,1],[2938,1],[2940,2],[2948,1],[2950,1],[2962,1],[3005,2],[3008,3],[3017,2],[3031,1],[3033,1],[3043,1],[3050,2],[3053,2],[3056,2],[3066,1],[3068,1],[3077,1],[3098,1],[3100,1],[3122,2],[3125,2],[3128,2],[3163,1],[3165,1],[3176,1],[3195,1],[3197,1],[3206,1],[3268,2],[3307,1],[3370,1],[3440,3],[3478,1],[3510,1],[3517,1],[3534,1],[3558,2],[3595,2],[3598,1],[3617,2],[3798,2],[3852,1],[3854,1],[3981,3],[3997,1],[4042,1],[4044,1],[4105,3],[4121,1],[4201,1],[4303,3],[4421,1],[4484,1],[4506,1],[4539,1],[4634,1],[4767,1],[4894,1],[4923,1],[5024,1],[5063,1],[5218,1],[5270,1]]},"216":{"position":[[23,1],[29,1],[99,1],[133,1],[206,1],[208,3],[220,1],[255,4],[260,2],[263,1]]},"218":{"position":[[33,1],[69,1],[90,2],[120,1],[176,3],[212,1],[239,1],[275,1],[296,2],[326,1],[382,3],[419,1]]},"220":{"position":[[31,1],[33,1],[43,1],[45,1],[60,1],[62,1],[68,1],[70,1],[89,1],[107,2],[110,2],[123,1],[125,1],[135,1],[137,1],[144,1],[164,1],[209,1],[254,2],[257,2],[260,2],[263,1],[265,1],[292,1],[294,1],[304,1],[306,1],[321,1],[323,1],[329,1],[331,1],[350,1],[368,2],[371,2],[384,1],[386,1],[396,1],[398,1],[405,1],[425,1],[470,1],[515,2],[518,2],[521,2],[524,2],[527,1]]},"222":{"position":[[56,1],[58,2],[61,1],[95,1],[168,1],[170,3],[182,1],[217,4],[222,1]]},"224":{"position":[[42,1],[44,1],[59,1],[61,1],[73,1],[80,2],[83,1],[85,1],[110,1],[123,1],[125,1],[140,1],[142,1],[154,1],[161,2],[164,2],[167,1]]},"228":{"position":[[23,1],[29,1],[69,1],[71,1],[73,1],[137,1],[160,1],[195,1],[236,1],[238,1],[245,1],[262,1],[295,1],[316,1],[358,1],[376,1],[403,1],[425,1],[472,1],[531,1],[533,1],[535,1],[542,1],[560,1],[577,1],[609,1],[611,3],[615,2],[618,1],[625,1],[643,1],[660,1],[703,1],[718,1],[726,2],[729,1],[736,2],[739,2],[742,1]]},"230":{"position":[[23,1],[25,2],[28,1],[92,1],[115,1],[150,1],[191,1],[193,1],[200,1],[217,1],[250,1],[271,1],[313,1],[331,1],[358,1],[380,1],[427,1],[486,1],[488,1],[490,1],[497,1],[515,1],[532,1],[564,1],[566,3],[570,2],[573,1],[580,1],[598,1],[615,1],[658,1],[673,1],[681,2],[684,1],[691,1]]},"234":{"position":[[23,1],[25,2],[28,1],[67,1],[80,1],[189,1],[191,1],[250,1],[292,1],[294,3],[298,2],[301,2],[327,1],[329,1],[331,1],[424,3],[438,1],[463,2],[466,1],[538,1],[560,2],[563,1],[626,1],[643,2],[646,1],[706,1],[717,2],[730,1],[748,2],[751,1],[819,1],[837,2],[840,1],[900,1],[928,2],[931,1],[995,1],[1009,2],[1012,1],[1071,1],[1080,2],[1083,1],[1140,1],[1147,2],[1150,1],[1213,1],[1226,2],[1229,1],[1292,1],[1305,2],[1308,1],[1372,1],[1386,2],[1389,1],[1449,1],[1459,2],[1462,1],[1528,1],[1544,2],[1547,1],[1609,1],[1621,2],[1624,1],[1688,1],[1702,2],[1705,1],[1776,1],[1788,2],[1791,2],[1801,1],[2035,1],[2045,1],[2058,1],[2069,2],[2130,1],[2143,2],[2166,1],[2173,1],[2201,2],[2210,1],[2217,1],[2235,1],[2273,1],[2290,1],[2300,1],[2302,1],[2368,1],[2407,1],[2452,1],[2531,1]]},"236":{"position":[[23,1],[29,1],[88,1],[130,1],[132,3],[136,2],[139,1]]},"238":{"position":[[53,1],[55,2],[58,1],[100,1],[102,3],[106,1]]},"240":{"position":[[49,1],[51,2],[54,1],[93,1],[95,1],[121,2],[147,1],[149,1],[151,1],[204,2],[217,1],[228,2],[231,1],[292,1],[307,1],[320,2],[323,2],[331,1],[333,3],[344,1],[374,1],[403,1],[494,1],[580,1],[663,1],[701,1]]},"242":{"position":[[23,1],[29,1],[55,1]]},"244":{"position":[[46,1],[48,1],[167,1],[295,1],[297,3],[420,2],[440,1],[442,1],[520,2],[523,1],[525,1],[572,1],[592,1],[594,1],[625,2],[633,1],[635,1],[754,1],[882,1],[884,3],[1007,2],[1027,1],[1029,1],[1107,2],[1110,2],[1168,1],[1186,1]]},"248":{"position":[[38,1],[109,1],[124,1],[173,2],[215,1],[222,1],[243,1],[250,2],[263,1],[295,1],[347,1],[361,1],[377,1],[379,3],[441,1],[443,1],[457,1],[483,2],[503,2],[523,2],[536,1],[612,1],[652,1],[693,1],[733,1],[775,1],[803,3],[817,1],[859,1],[887,3],[905,1],[940,1],[971,1],[985,3],[999,1],[1030,1],[1037,3],[1052,1],[1085,1],[1115,3],[1232,1],[1291,1],[1378,2],[1398,3],[1410,1],[1433,1],[1440,1],[1452,2],[1455,1],[1462,1],[1475,2],[1478,1],[1485,1],[1494,2],[1497,2],[1500,1],[1502,1],[1509,1],[1520,2],[1523,3],[1538,1],[1540,1],[1549,1],[1585,1],[1649,1],[1668,2],[1698,1],[1700,1],[1707,1],[1764,1],[1816,1],[1904,1],[1927,1],[1973,2],[1976,3],[2005,2],[2021,1],[2023,1],[2088,1],[2107,1],[2118,1],[2136,1],[2148,2],[2159,1],[2179,1],[2185,1],[2215,1],[2261,1],[2291,1],[2293,1],[2361,2],[2555,1],[2557,1],[2576,1],[2578,1],[2589,1],[2594,1],[2599,3],[2608,1],[2679,1],[2694,1],[2743,2],[2785,1],[2792,1],[2813,1],[2820,2],[2833,1],[2865,1],[2917,1],[2931,1],[2947,1],[2949,3],[3011,1],[3013,1],[3027,1],[3053,2],[3073,2],[3093,2],[3106,1],[3182,1],[3222,1],[3263,1],[3303,1],[3345,1],[3373,3],[3387,1],[3429,1],[3457,3],[3475,1],[3510,1],[3541,1],[3555,3],[3569,1],[3600,1],[3607,3],[3622,1],[3655,1],[3685,3],[3802,1],[3861,1],[3948,2],[3968,3],[3980,1],[4003,1],[4010,1],[4022,2],[4025,1],[4032,1],[4045,2],[4048,1],[4055,1],[4064,2],[4067,2],[4070,1],[4072,1],[4079,1],[4090,2],[4093,3],[4108,1],[4110,1],[4119,1],[4155,1],[4219,1],[4238,2],[4268,1],[4270,1],[4277,1],[4334,1],[4386,1],[4474,1],[4497,1],[4543,2],[4546,3],[4575,2],[4591,1],[4593,1],[4658,1],[4677,1],[4688,1],[4706,1],[4718,2],[4729,1],[4749,1],[4761,1],[4783,1]]},"250":{"position":[[23,1],[29,1],[97,1]]},"252":{"position":[[23,1]]},"254":{"position":[[23,1]]},"256":{"position":[[32,1],[65,1],[67,1],[76,1],[135,1],[201,1],[208,1],[221,2],[232,1],[267,1],[269,1],[271,1],[303,1],[305,1],[325,1],[333,2],[349,1],[351,1],[384,2],[387,2],[390,2],[398,1],[431,1],[433,1],[442,1],[501,1],[567,1],[574,1],[587,2],[599,1]]},"258":{"position":[[23,1],[25,1],[45,1],[53,1],[55,1],[87,1],[89,1],[109,1],[117,2],[133,1],[135,1],[168,2],[171,1]]},"260":{"position":[[23,1],[29,1],[62,1]]},"264":{"position":[[23,1],[48,1],[195,1],[197,1],[207,1],[223,1],[282,1],[337,1],[402,1],[444,1],[465,1],[467,1],[481,1],[502,1],[504,1],[545,2],[560,1],[575,1],[577,1],[597,1],[615,1],[617,1],[625,1],[708,1],[730,1],[732,1],[734,2],[737,2],[740,2],[749,1],[770,1],[810,1],[812,1],[823,1],[825,5],[841,1],[843,5],[860,1],[862,2],[865,2],[879,1],[881,1],[883,2],[886,2],[889,1],[907,1],[939,1],[958,1],[983,1],[1130,1],[1132,1],[1142,1],[1158,1],[1217,1],[1272,1],[1337,1],[1379,1],[1400,1],[1402,1],[1416,1],[1437,1],[1439,1],[1480,2],[1495,1],[1510,1],[1512,1],[1532,1],[1550,1],[1552,1],[1560,1],[1643,1],[1665,1],[1667,1],[1669,2],[1672,2],[1675,2],[1684,1],[1705,1],[1745,1],[1747,1],[1758,1],[1760,5],[1776,1],[1778,5],[1795,1],[1797,2],[1800,2],[1814,1],[1816,1],[1818,2],[1821,2],[1824,1],[1848,1],[1850,1],[1852,1],[1898,1],[1919,2],[1922,2],[1925,1]]},"266":{"position":[[23,1],[29,1],[62,1],[75,1],[77,1],[79,1],[101,2],[104,2],[107,1]]},"268":{"position":[[45,1],[158,1],[202,1],[215,1],[334,1],[336,1],[338,1],[388,1],[414,2],[417,2],[420,1]]},"270":{"position":[[40,1],[75,1],[130,1],[199,1],[325,1],[333,1],[346,2],[364,1],[380,2],[408,1],[416,1],[431,1],[450,1],[463,1],[479,2],[486,1],[516,1],[529,1],[564,1],[619,1],[688,1],[814,1],[822,1],[835,2],[853,1],[869,2],[897,1],[905,1],[920,1],[939,1],[952,1],[968,2],[976,1]]},"272":{"position":[[43,1],[135,1],[151,1],[153,1],[155,2],[196,1],[198,3],[384,1],[451,1],[646,1],[728,1],[730,4],[770,1],[778,2],[789,1],[829,1],[842,1],[934,1],[950,1],[952,1],[954,2],[995,1],[997,3],[1183,1],[1250,1],[1445,1],[1527,1],[1529,4],[1569,1],[1577,2],[1589,1]]},"276":{"position":[[23,1],[25,1],[32,1],[34,1],[42,1],[79,2],[91,1],[93,1],[110,1],[118,2],[121,1],[123,1],[156,1],[175,1],[177,1],[184,1],[186,1],[194,1],[231,2],[243,1],[245,1],[262,1],[270,2],[273,2],[281,1],[305,1],[307,1],[309,1],[377,1],[395,2],[398,1],[438,1],[514,1],[538,2],[541,1],[549,1],[578,1],[591,2],[654,1],[673,1],[675,2],[681,2],[705,1]]},"280":{"position":[[44,1],[46,1],[54,1],[56,1],[66,1],[74,1],[76,1],[78,1],[100,1],[102,1],[110,1],[112,1],[122,1],[130,1],[132,1],[134,1]]},"282":{"position":[[23,1],[25,1],[33,1],[58,1],[87,1],[89,1],[101,1],[103,1],[111,2],[114,2],[117,1],[119,1],[152,1],[171,1],[173,1],[181,1],[206,1],[235,1],[237,1],[249,1],[251,1],[259,2],[262,2],[265,2],[275,1],[354,1],[374,1],[448,1],[476,1],[675,2],[682,2],[711,1],[718,1],[742,2],[756,2],[759,1],[780,1],[789,2],[894,2],[901,2],[944,1],[955,1],[981,1],[1071,2],[1084,1],[1086,1],[1088,1],[1090,5],[1101,1],[1120,2],[1123,1],[1125,5],[1136,1],[1155,2],[1158,2],[1161,1]]},"286":{"position":[[85,1],[87,1],[103,1],[110,1],[112,1],[143,1],[156,1],[203,1],[205,2],[250,2],[265,1],[270,1],[272,1],[284,1],[286,1],[302,1],[304,1],[331,1],[333,1],[349,1],[356,2],[359,1]]},"288":{"position":[[23,1],[25,2],[28,1],[59,1],[72,1],[74,1],[76,1],[88,1],[90,1],[106,2],[114,1],[134,2],[137,1],[149,1],[151,1],[167,2],[175,1],[196,2],[199,1],[212,1],[214,1],[230,2],[238,1],[260,2],[263,2],[273,1],[304,1],[362,1],[428,2],[462,2],[475,1]]},"290":{"position":[[67,1],[73,1],[101,1],[114,1]]},"292":{"position":[[92,1],[94,1],[105,1],[107,1],[113,1],[175,1],[211,1],[265,1],[318,1],[360,1],[407,1],[436,2],[439,1],[441,1],[479,1],[492,1],[494,1],[505,1],[507,1],[513,1],[575,1],[611,1],[665,1],[718,1],[760,1],[807,1],[836,2],[839,2],[847,1],[849,1],[851,1],[859,3],[868,1],[882,2],[885,2],[888,1]]},"296":{"position":[[23,1],[49,1],[94,1],[127,1],[129,1],[131,5],[137,4],[142,2],[150,1],[166,1],[174,2],[199,1],[323,1],[325,1],[422,2],[522,1],[694,1],[702,2],[720,1],[753,1],[755,1],[835,2],[843,1],[858,1],[866,2],[882,1],[915,1],[917,1],[1041,2],[1049,1],[1064,1],[1072,2],[1101,1],[1134,1],[1136,1],[1155,2],[1163,1],[1178,1],[1186,2],[1196,1],[1210,1],[1212,1],[1218,1],[1231,1],[1251,1],[1278,1],[1310,1],[1342,1],[1363,1],[1377,1],[1395,1],[1414,1],[1428,1],[1444,1],[1456,2],[1466,1],[1468,1],[1478,1],[1480,1],[1555,4],[1875,1],[1877,1],[1901,2],[1908,1],[1910,1],[1943,1],[1945,1],[1962,1],[1964,3],[1995,1],[2005,3],[2036,1],[2046,3],[2050,2],[2064,1],[2066,1],[2099,1],[2101,1],[2118,1],[2120,3],[2124,2],[2131,1],[2133,1],[2162,1],[2173,3],[2204,1],[2215,3],[2219,2],[2231,1],[2233,1],[2266,1],[2268,1],[2270,2],[2273,3],[2283,2],[2291,1],[2307,1],[2315,3],[2354,2],[2362,1],[2364,1],[2417,2],[2424,1],[2426,1],[2459,1],[2461,1],[2475,2],[2483,1],[2575,1],[2618,3],[2622,2],[2632,1],[2634,1],[2667,1],[2669,1],[2683,2],[2686,3],[2690,2],[2693,2],[2696,1],[2702,1],[2736,1],[2749,1],[2826,1],[2828,1],[2830,1],[2882,1],[2895,1],[2915,1],[2928,2],[2931,1],[2984,1],[2997,1],[3017,1],[3030,2],[3033,1],[3092,1],[3105,1],[3125,1],[3138,2],[3141,1],[3201,1],[3214,1],[3234,1],[3247,2],[3250,2],[3258,1],[3284,1],[3329,1],[3362,1],[3364,1],[3366,5],[3372,4],[3377,2],[3385,1],[3401,1],[3409,2],[3434,1],[3558,1],[3560,1],[3657,2],[3757,1],[3929,1],[3937,2],[3955,1],[3988,1],[3990,1],[4070,2],[4078,1],[4093,1],[4101,2],[4117,1],[4150,1],[4152,1],[4276,2],[4284,1],[4299,1],[4307,2],[4336,1],[4369,1],[4371,1],[4390,2],[4398,1],[4413,1],[4421,2],[4431,1],[4445,1],[4447,1],[4453,1],[4466,1],[4486,1],[4513,1],[4545,1],[4577,1],[4598,1],[4612,1],[4630,1],[4649,1],[4663,1],[4679,1],[4691,2],[4701,1],[4703,1],[4713,1],[4715,1],[4790,4],[5110,1],[5112,1],[5136,2],[5143,1],[5145,1],[5178,1],[5180,1],[5197,1],[5199,3],[5230,1],[5240,3],[5271,1],[5281,3],[5285,2],[5299,1],[5301,1],[5334,1],[5336,1],[5353,1],[5355,3],[5359,2],[5366,1],[5368,1],[5397,1],[5408,3],[5439,1],[5450,3],[5454,2],[5466,1],[5468,1],[5501,1],[5503,1],[5505,2],[5508,3],[5518,2],[5526,1],[5542,1],[5550,3],[5589,2],[5597,1],[5599,1],[5652,2],[5659,1],[5661,1],[5694,1],[5696,1],[5710,2],[5718,1],[5810,1],[5853,3],[5857,2],[5867,1],[5869,1],[5902,1],[5904,1],[5918,2],[5921,3],[5925,2],[5928,2],[5931,1],[5945,1],[6045,2],[6192,1],[6216,1]]},"300":{"position":[[23,1],[25,2],[28,1],[61,1],[81,1],[83,3],[87,1]]},"302":{"position":[[35,1],[59,1],[117,1],[122,1],[124,1],[168,1],[199,3],[203,2],[233,2],[236,1],[238,1],[240,2],[278,1],[291,1],[325,1],[337,1],[343,1],[375,1],[399,1],[457,1],[462,1],[464,1],[508,1],[539,3],[543,2],[573,2],[576,1],[578,1],[580,2],[618,1],[631,1],[665,1],[677,1],[684,1]]},"304":{"position":[[41,1],[43,1],[53,1],[55,1],[68,1],[75,2],[78,1],[80,1],[111,1],[124,1],[126,1],[136,1],[138,1],[151,1],[158,2],[161,2],[164,1]]},"308":{"position":[[23,1],[25,2],[28,1],[59,1],[78,1],[80,3],[84,1]]},"312":{"position":[[23,1],[25,1],[35,1],[37,1],[47,1],[67,1],[87,1],[93,2],[104,1],[106,1],[242,1],[251,2],[254,1],[256,1],[287,1],[289,1],[299,1],[301,1],[311,1],[331,1],[351,1],[357,2],[368,1],[370,1],[506,1],[515,2],[518,2],[526,1],[528,1],[530,1],[630,1],[679,2],[682,1],[766,1],[793,2],[796,2],[806,1],[880,1],[905,1],[960,1],[1022,4],[1053,1],[1080,1],[1117,1],[1204,1],[1206,1],[1215,1],[1228,1],[1230,2],[1253,1],[1313,1],[1374,1],[1454,2],[1538,1],[1540,2],[1553,2],[1556,1],[1584,1],[1725,1],[1741,2],[1763,1],[1774,1],[1776,2],[1789,2],[1792,1],[1828,1],[1835,2],[1838,1],[1885,1],[1894,1],[1909,1],[1916,2],[1943,1],[1977,1],[2029,1],[2079,2],[2163,1],[2173,1],[2209,1],[2239,1],[2351,1],[2360,1],[2375,1],[2399,1],[2401,1],[2491,1],[2500,1],[2525,1],[2537,1],[2539,1],[2950,2],[2989,1],[2999,1],[3035,1],[3119,2],[3127,1]]},"316":{"position":[[39,1],[41,1],[48,1],[50,1],[58,1],[74,1],[76,1],[82,1],[84,4],[96,1],[98,4],[110,1],[112,4],[117,2],[120,2],[123,1],[125,1],[156,1],[175,1],[177,1],[179,1],[255,1],[285,2],[288,2],[296,1],[298,1],[305,1],[307,1],[315,1],[331,1],[333,1],[339,1],[341,4],[353,1],[355,4],[367,1],[369,4],[374,2],[377,2],[380,2],[383,1]]},"318":{"position":[[23,1],[57,1],[82,1],[125,2],[142,1],[183,1],[402,1],[422,1],[456,1],[481,1],[524,2],[541,1],[582,1],[802,1]]},"320":{"position":[[43,1],[71,1],[136,2],[163,1],[190,1],[234,1],[242,1],[266,1],[292,1],[310,1],[334,1],[370,1],[398,1],[463,2],[490,1],[517,1],[561,1],[569,1],[593,1],[619,1],[637,1],[662,1]]},"324":{"position":[[159,1],[179,1],[191,1],[193,1],[195,2],[208,1],[228,1],[239,1],[289,1],[297,1],[303,1],[333,1],[346,1],[379,1],[559,1],[579,1],[591,1],[593,1],[595,2],[608,1],[628,1],[639,1],[689,1],[697,1],[704,1]]},"326":{"position":[[43,1],[135,1],[163,1],[175,2],[186,1],[226,1],[239,1],[331,1],[359,1],[371,2],[383,1]]},"330":{"position":[[23,1],[51,1],[99,1],[101,1],[111,1],[113,1],[121,1],[123,3],[134,1],[178,2],[189,1],[191,1],[205,1],[229,1],[241,2],[244,1],[324,1],[326,1],[333,1],[387,1],[400,1],[422,1],[453,1],[455,1],[457,1],[498,1],[517,1],[519,2],[526,1],[544,1],[572,1],[620,1],[622,1],[632,1],[634,1],[642,1],[644,3],[655,1],[699,2],[710,1],[712,1],[726,1],[750,1],[762,2],[765,1],[845,1],[847,1],[854,1],[908,1],[921,1],[944,1]]},"332":{"position":[[90,1],[96,1],[129,1],[142,1],[144,1],[146,1],[168,2],[171,2],[174,1]]},"334":{"position":[[40,1],[75,1],[131,1],[201,1],[330,1],[338,1],[350,1],[352,1],[369,1],[385,2],[413,1],[421,1],[437,1],[457,1],[470,1],[483,2],[490,1],[520,1],[533,1],[568,1],[624,1],[694,1],[823,1],[831,1],[843,1],[845,1],[862,1],[878,2],[906,1],[914,1],[930,1],[950,1],[963,1],[976,2],[984,1]]},"338":{"position":[[37,1],[39,1],[49,1],[51,1],[91,2],[126,1],[128,1],[180,2],[194,1],[196,1],[210,1],[239,1],[241,1],[251,1],[258,2],[284,1],[292,2],[302,1],[304,1],[315,1],[317,1],[325,1],[341,1],[369,1],[385,1],[387,1],[416,1],[451,1],[507,1],[535,2],[544,1],[546,1],[618,1],[627,1],[634,2],[647,1],[681,2],[690,1],[692,1],[719,1],[721,1],[733,1],[741,1],[743,2],[746,2],[749,2],[778,1],[780,1],[789,1],[791,1],[808,1],[896,1],[898,4],[921,1],[923,4],[947,1],[968,2],[982,1],[984,1],[994,1],[996,1],[1007,1],[1009,5],[1022,1],[1024,5],[1030,2],[1033,2],[1036,2],[1039,1],[1041,1],[1078,1],[1096,1],[1098,1],[1100,1],[1172,1],[1184,1],[1201,2],[1214,1],[1247,2],[1250,1],[1322,1],[1334,1],[1349,2],[1362,1],[1390,2],[1393,1],[1427,1],[1466,1],[1473,2],[1476,1],[1510,1],[1544,1],[1551,2],[1554,1],[1626,1],[1649,1],[1656,2],[1669,1],[1687,2],[1690,1],[1762,1],[1782,1],[1789,2],[1802,1],[1823,2],[1826,2],[1840,1],[1890,1],[2066,1],[2074,1],[2131,1],[2139,1],[2146,3],[2155,1],[2195,1],[2212,1],[2284,1],[2341,2],[2394,2],[2407,1],[2409,1],[2419,1],[2421,1],[2461,2],[2496,1],[2498,1],[2550,2],[2564,1],[2566,1],[2580,1],[2609,1],[2611,1],[2621,1],[2628,2],[2654,1],[2662,2],[2672,1],[2674,1],[2685,1],[2687,1],[2695,1],[2711,1],[2739,1],[2755,1],[2757,1],[2786,1],[2821,1],[2877,1],[2905,2],[2914,1],[2916,1],[2988,1],[2997,1],[3004,2],[3017,1],[3051,2],[3060,1],[3062,1],[3089,1],[3091,1],[3103,1],[3111,1],[3113,2],[3116,2],[3119,2],[3148,1],[3150,1],[3159,1],[3161,1],[3178,1],[3266,1],[3268,4],[3291,1],[3293,4],[3317,1],[3338,2],[3352,1],[3354,1],[3364,1],[3366,1],[3377,1],[3379,5],[3392,1],[3394,5],[3400,2],[3403,2],[3406,2],[3409,2],[3419,1],[3545,1],[3594,1],[3619,2],[3659,1],[3661,1],[3669,1],[3698,1],[3708,2],[3711,1],[3719,1],[3750,1],[3760,2],[3763,2],[3839,1],[3849,1],[3872,1],[3997,2],[4005,1]]},"342":{"position":[[23,1]]},"346":{"position":[[223,1]]},"348":{"position":[[23,1],[53,1],[87,1],[114,1],[177,1],[236,1],[290,1],[346,1],[392,1],[451,1],[511,1],[573,1],[680,1],[749,1],[795,1],[822,1],[861,1],[870,2],[885,1],[897,1],[995,1],[1183,1],[1189,1],[1208,1],[1210,2],[1213,2],[1216,1],[1222,1],[1238,1],[1240,1],[1252,1],[1271,1],[1273,2],[1276,1],[1282,1],[1296,1],[1298,1],[1300,1],[1305,1],[1307,2],[1310,2],[1344,2],[1368,1],[1394,2],[1426,1],[1456,1],[1473,1],[1475,1],[1477,2],[1496,1],[1504,2],[1516,1],[1518,1],[1533,1],[1568,1],[1592,2],[1606,1],[1608,1],[1618,1],[1620,1],[1633,1],[1635,1],[1645,1],[1670,1],[1696,1],[1721,1],[1747,1],[1764,2],[1783,1],[1800,2],[1803,2],[1868,1],[1942,1],[1951,1],[1953,2],[1956,2],[1967,1],[1969,1],[1977,1],[1979,1],[1981,1],[1983,2],[2042,4],[2047,2],[2050,1],[2052,2],[2065,1],[2077,2],[2080,2],[2097,2],[2117,1],[2127,1],[2129,1],[2138,1],[2252,1],[2286,1],[2305,1],[2310,1],[2317,1],[2329,1],[2344,1],[2394,1],[2404,1],[2414,3],[2422,1],[2431,1],[2454,1],[2485,1],[2497,1],[2502,1],[2511,1],[2534,1],[2558,2],[2561,2],[2564,1],[2569,1],[2579,1],[2581,1],[2589,1],[2665,1],[2699,1],[2713,1],[2718,1],[2726,2],[2729,2],[2745,1],[2747,1],[2755,1],[2769,1],[2780,1],[2791,1],[2806,1],[2808,1],[2822,1],[2824,1],[2826,4],[2831,2],[2834,2],[2837,2],[2840,2],[2849,1],[2851,1],[2864,1],[2881,1],[2883,1],[2895,1],[2897,1],[2921,2],[2934,1],[2936,1],[2960,2],[2963,2],[2966,2],[2974,1],[2976,1],[2986,1],[2988,1],[3000,1],[3002,1],[3026,2],[3039,1],[3041,1],[3065,2],[3068,2],[3071,2],[3078,1],[3080,1],[3090,1],[3092,1],[3104,1],[3139,2],[3160,1],[3191,2],[3217,1],[3226,2],[3242,1],[3244,1],[3256,1],[3285,2],[3322,2],[3325,2],[3328,1],[3334,1],[3360,1],[3377,1],[3407,1],[3441,1],[3468,1],[3531,1],[3590,1],[3644,1],[3700,1],[3746,1],[3805,1],[3865,1],[3927,1],[4034,1],[4103,1],[4149,1],[4176,1],[4215,1],[4224,2],[4239,1],[4251,1],[4349,1],[4537,1],[4543,1],[4562,1],[4564,2],[4567,2],[4570,1],[4576,1],[4592,1],[4594,1],[4606,1],[4625,1],[4627,2],[4630,1],[4636,1],[4650,1],[4652,1],[4654,1],[4659,1],[4661,2],[4664,2],[4698,2],[4722,1],[4748,2],[4780,1],[4810,1],[4827,1],[4829,1],[4831,2],[4850,1],[4858,2],[4870,1],[4872,1],[4887,1],[4922,1],[4946,2],[4960,1],[4962,1],[4972,1],[4974,1],[4987,1],[4989,1],[4999,1],[5024,1],[5050,1],[5075,1],[5101,1],[5118,2],[5137,1],[5154,2],[5157,2],[5222,1],[5296,1],[5305,1],[5307,2],[5310,2],[5321,1],[5323,1],[5331,1],[5333,1],[5335,1],[5337,2],[5396,4],[5401,2],[5404,1],[5406,2],[5419,1],[5431,2],[5434,2],[5451,2],[5471,1],[5481,1],[5483,1],[5492,1],[5606,1],[5640,1],[5659,1],[5664,1],[5671,1],[5683,1],[5698,1],[5748,1],[5758,1],[5768,3],[5776,1],[5785,1],[5808,1],[5839,1],[5851,1],[5856,1],[5865,1],[5888,1],[5912,2],[5915,2],[5918,1],[5923,1],[5933,1],[5935,1],[5943,1],[6019,1],[6053,1],[6067,1],[6072,1],[6080,2],[6083,2],[6099,1],[6101,1],[6109,1],[6123,1],[6134,1],[6145,1],[6160,1],[6162,1],[6176,1],[6178,1],[6180,4],[6185,2],[6188,2],[6191,2],[6194,2],[6203,1],[6205,1],[6218,1],[6235,1],[6237,1],[6249,1],[6251,1],[6275,2],[6288,1],[6290,1],[6314,2],[6317,2],[6320,2],[6328,1],[6330,1],[6340,1],[6342,1],[6354,1],[6356,1],[6380,2],[6393,1],[6395,1],[6419,2],[6422,2],[6425,2],[6432,1],[6434,1],[6444,1],[6446,1],[6458,1],[6493,2],[6514,1],[6545,2],[6571,1],[6580,2],[6596,1],[6598,1],[6610,1],[6639,2],[6676,2],[6679,2],[6682,1],[6696,1],[6727,2],[6906,1],[6917,2],[6928,2],[6931,1],[6975,2],[7024,1],[7117,1],[7168,1],[7227,1],[7274,1],[7276,1],[7288,1],[7290,2],[7304,1],[7333,2],[7442,1],[7444,1],[7446,1],[7469,1],[7483,1],[7497,1],[7504,2],[7507,1],[7530,1],[7544,1],[7558,1],[7565,2],[7568,1],[7648,1],[7667,2],[7670,1],[7717,1],[7737,2],[7740,1],[7795,1],[7815,2],[7818,1],[7867,1],[7893,2],[7904,1],[7985,1],[7997,2],[8000,1],[8048,1],[8066,2],[8069,1],[8119,1],[8140,2],[8143,1],[8187,1],[8213,2],[8216,1],[8254,1],[8261,1],[8269,3],[8278,1],[8299,2],[8302,1],[8352,1],[8379,2],[8382,1],[8431,1],[8442,2],[8445,1],[8486,1],[8492,1],[8507,3],[8516,1],[8533,2],[8543,1],[8595,1],[8607,2],[8610,1],[8659,1],[8680,2],[8683,1],[8735,1],[8747,2],[8750,1],[8801,1],[8812,2],[8815,1],[8865,1],[8879,2],[8892,1],[8942,1],[8956,2],[8959,1],[9014,1],[9033,2],[9036,1],[9085,1],[9103,2],[9106,1],[9152,1],[9169,2],[9172,1],[9228,1],[9248,2],[9251,1],[9300,1],[9313,2],[9316,1],[9378,1],[9394,2],[9397,1],[9458,1],[9481,2],[9484,1],[9532,1],[9552,2],[9555,1],[9597,1],[9604,1],[9612,3],[9621,1],[9636,2],[9639,1],[9689,1],[9704,2],[9707,1],[9758,1],[9786,2],[9789,1],[9835,1],[9848,2],[9851,1],[9899,1],[9912,2],[9915,1],[9963,1],[9981,2],[9984,1],[10034,1],[10048,2],[10051,1],[10097,1],[10114,2],[10117,1],[10164,1],[10175,2],[10178,1],[10227,1],[10245,2],[10248,1],[10297,1],[10317,2],[10320,1],[10363,1],[10370,1],[10378,3],[10387,1],[10402,2],[10405,1],[10455,1],[10467,1],[10492,2],[10495,1],[10539,1],[10546,1],[10554,3],[10563,1],[10575,1],[10595,2],[10598,1],[10649,1],[10678,2],[10681,1],[10763,1],[10781,2],[10794,1],[10811,2],[10814,1],[10902,1],[10920,2],[10933,1],[10962,2],[10965,2],[10968,1]]},"350":{"position":[[23,1],[29,1],[41,1]]},"352":{"position":[[23,1],[47,1],[134,1],[136,1],[220,1],[245,1],[260,2],[263,1],[346,1],[369,1],[376,2],[379,1],[467,1],[491,2],[494,1],[575,1],[602,2],[605,2],[612,1],[644,1],[668,1],[755,1],[757,1],[841,1],[866,1],[881,2],[884,1],[967,1],[990,1],[997,2],[1000,1],[1088,1],[1112,2],[1115,1],[1196,1],[1223,2],[1226,2],[1234,1]]},"354":{"position":[[23,1],[29,1],[68,1],[99,1],[101,1],[103,1],[176,1],[185,2],[188,1],[213,2],[261,1],[263,1],[288,1],[290,2],[303,1],[322,2],[325,2],[328,1]]},"358":{"position":[[23,1],[25,1],[51,1],[53,1],[58,1],[72,1],[85,1],[96,1],[107,1],[120,1],[133,1],[142,2],[168,1],[170,1],[175,1],[189,1],[202,1],[213,1],[224,1],[237,1],[250,1],[259,2],[280,1],[282,3],[307,1],[309,3],[334,1],[458,1],[460,1],[501,1],[503,1],[532,2],[548,1],[550,1],[612,2],[620,1],[622,1],[624,1],[639,3],[648,1],[668,1],[670,1],[681,1],[683,2],[686,1],[713,1],[715,1],[726,2],[734,1],[748,2],[751,1],[846,1],[848,1],[859,2],[867,1],[893,1],[901,2],[904,1],[997,1],[999,1],[1010,2],[1018,1],[1042,1],[1050,2],[1053,1],[1154,1],[1156,1],[1167,2],[1175,1],[1207,1],[1215,2],[1218,1],[1289,1],[1297,2],[1310,1],[1327,2],[1330,1],[1405,1],[1412,2],[1425,1],[1427,1],[1438,2],[1446,1],[1472,2],[1475,1],[1553,1],[1572,2],[1575,1],[1671,1],[1673,1],[1684,2],[1692,1],[1719,1],[1727,2],[1730,1],[1834,1],[1836,1],[1847,2],[1855,1],[1890,1],[1898,2],[1901,1],[1997,1],[1999,1],[2010,2],[2018,1],[2045,1],[2053,2],[2056,1],[2134,1],[2136,1],[2147,2],[2155,1],[2181,2],[2184,2],[2192,1],[2194,1],[2220,1],[2222,1],[2227,1],[2241,1],[2254,1],[2265,1],[2276,1],[2289,1],[2302,1],[2311,2],[2337,1],[2339,1],[2344,1],[2358,1],[2371,1],[2382,1],[2393,1],[2406,1],[2419,1],[2428,2],[2449,1],[2451,3],[2476,1],[2478,3],[2503,1],[2627,2],[2637,1],[2840,1]]},"360":{"position":[[23,1],[29,1],[91,1]]},"362":{"position":[[23,1]]},"366":{"position":[[204,1]]},"368":{"position":[[23,1],[25,1],[44,1],[46,1],[56,1],[58,1],[60,1],[91,1],[93,1],[112,1],[114,1],[124,1],[126,2],[129,1]]},"370":{"position":[[23,1],[65,1],[92,2],[155,1],[186,2],[258,1],[279,2],[304,1],[306,1],[320,1],[328,1],[334,1],[370,1],[410,1],[452,1],[479,2],[542,1],[573,2],[645,1],[666,2],[691,1],[693,1],[707,1],[715,1],[722,1]]},"372":{"position":[[39,1],[69,1],[103,1],[121,2],[186,1],[223,1],[236,1],[266,1],[300,1],[318,2],[384,1]]},"376":{"position":[[274,1]]},"378":{"position":[[23,1],[25,1],[44,1],[46,1],[59,1],[61,1],[63,1],[94,1],[96,1],[115,1],[117,1],[130,1],[132,2],[135,1]]},"380":{"position":[[31,1],[73,1],[100,2],[163,1],[194,2],[269,1],[290,2],[318,1],[320,1],[332,1],[417,2],[452,1],[458,1],[494,1],[534,1],[576,1],[603,2],[666,1],[697,2],[772,1],[793,2],[821,1],[823,1],[835,1],[920,2],[955,1],[962,1]]},"382":{"position":[[39,1],[69,1],[103,1],[121,2],[189,1],[226,1],[239,1],[269,1],[303,1],[321,2],[390,1]]},"386":{"position":[[223,1]]},"388":{"position":[[171,1],[198,1],[253,1],[354,1],[386,1],[434,1],[495,1],[507,1],[528,1],[535,4],[573,1],[605,1],[653,1],[714,1],[723,1],[744,1],[751,4],[795,2],[834,1],[842,1],[853,1],[873,1],[887,1],[898,2],[937,1],[945,1],[960,1],[980,1],[993,1],[1004,2],[1047,1],[1059,1],[1074,1],[1094,1],[1107,1],[1118,2],[1171,2],[1188,1],[1198,4],[1203,1],[1216,1],[1227,2],[1269,1],[1286,4],[1291,3],[1295,1],[1312,1],[1323,1],[1325,1],[1341,1],[1343,2],[1346,2],[1365,1],[1367,2],[1370,2],[1511,1],[1535,1],[1656,1],[1711,2],[1714,2],[1764,1],[1766,1],[1770,1],[1772,1],[1784,1],[1815,1],[1846,1],[1880,1],[1919,1],[1960,1],[2000,1],[2044,1],[2076,2],[2081,1],[2083,1],[2091,1],[2108,2],[2111,2],[2114,2],[2125,1],[2127,1],[2140,1],[2142,1],[2157,1],[2180,1],[2188,2],[2191,2],[2194,1],[2200,1],[2239,1],[2262,1],[2339,1],[2341,1],[2343,1],[2395,1],[2408,2],[2480,2],[2520,2],[2570,1],[2582,2],[2597,1],[2675,1],[2752,1],[2765,2],[2785,2],[2958,1],[2960,1],[2969,2],[2977,1],[3161,2],[3187,2],[3190,2],[3198,1],[3200,1],[3202,1],[3285,1],[3304,2],[3307,1],[3354,1],[3374,2],[3377,1],[3435,1],[3455,2],[3458,1],[3507,1],[3533,2],[3544,1],[3655,1],[3668,2],[3671,1],[3722,1],[3740,2],[3743,1],[3793,1],[3814,2],[3817,1],[3861,1],[3887,2],[3890,1],[3928,1],[3935,1],[3943,3],[3952,1],[3973,2],[3976,1],[4029,1],[4056,2],[4059,1],[4111,1],[4122,2],[4125,1],[4166,1],[4172,1],[4187,3],[4196,1],[4213,2],[4223,1],[4278,1],[4290,2],[4293,1],[4348,1],[4360,2],[4363,1],[4417,1],[4428,2],[4431,1],[4484,1],[4498,2],[4511,1],[4564,1],[4578,2],[4581,1],[4639,1],[4658,2],[4661,1],[4717,1],[4735,2],[4738,1],[4807,1],[4824,2],[4827,1],[4886,1],[4906,2],[4909,1],[4961,1],[4974,2],[4977,1],[5032,1],[5048,2],[5051,1],[5114,1],[5137,2],[5140,1],[5188,1],[5208,2],[5211,1],[5253,1],[5260,1],[5268,3],[5277,1],[5292,2],[5295,1],[5348,1],[5363,2],[5366,1],[5420,1],[5448,2],[5451,1],[5503,1],[5516,2],[5519,1],[5570,1],[5583,2],[5586,1],[5637,1],[5655,2],[5658,1],[5711,1],[5725,2],[5728,1],[5777,1],[5794,2],[5797,1],[5852,1],[5864,2],[5867,1],[5917,1],[5928,2],[5931,1],[5983,1],[6001,2],[6004,1],[6048,1],[6061,1],[6063,1],[6068,3],[6077,1],[6097,2],[6100,1],[6144,1],[6151,1],[6171,1],[6173,1],[6178,3],[6187,1],[6202,2],[6205,1],[6255,1],[6267,1],[6292,2],[6295,1],[6339,1],[6346,1],[6354,3],[6363,1],[6375,1],[6395,2],[6398,1],[6442,1],[6459,1],[6466,3],[6475,1],[6504,2],[6507,1],[6594,1],[6630,2],[6643,1],[6660,2],[6663,1],[6759,1],[6795,2],[6808,1],[6837,2],[6840,2],[6848,1],[6875,1],[6930,1],[7031,1],[7063,1],[7111,1],[7172,1],[7184,1],[7205,1],[7212,4],[7250,1],[7282,1],[7330,1],[7391,1],[7400,1],[7421,1],[7428,4],[7472,2],[7511,1],[7519,1],[7530,1],[7550,1],[7564,1],[7575,2],[7614,1],[7622,1],[7637,1],[7657,1],[7670,1],[7681,2],[7724,1],[7736,1],[7751,1],[7771,1],[7784,1],[7795,2],[7848,2],[7865,1],[7875,4],[7880,1],[7893,1],[7904,2],[7946,1],[7963,4],[7968,3],[7972,1],[7989,1],[8000,1],[8002,1],[8018,1],[8020,2],[8023,2],[8042,1],[8044,2],[8047,2],[8188,1],[8212,1],[8333,1],[8388,2],[8391,2],[8441,1],[8443,1],[8447,1],[8449,1],[8461,1],[8492,1],[8523,1],[8557,1],[8596,1],[8637,1],[8677,1],[8721,1],[8753,2],[8758,1],[8760,1],[8768,1],[8785,2],[8788,2],[8791,2],[8802,1],[8804,1],[8817,1],[8819,1],[8834,1],[8857,1],[8865,2],[8868,2],[8871,1],[8878,1]]},"390":{"position":[[52,1],[58,1],[91,1],[104,1],[185,1],[232,1],[234,1],[252,1],[254,2],[354,1],[401,1],[403,1],[421,1],[423,2],[460,1]]},"392":{"position":[[46,1],[182,1],[184,4],[195,1],[197,1],[205,1],[207,1],[214,1],[216,2],[226,1],[228,1],[235,1],[255,1],[257,1],[327,2],[354,2],[357,2],[367,1],[398,1],[512,2],[533,1],[581,3],[585,1],[596,1],[598,1],[602,1],[604,1],[608,1],[616,2],[621,1],[623,1],[635,1],[643,1],[645,2],[648,2],[655,1],[699,1],[712,1],[848,1],[850,4],[861,1],[863,1],[871,1],[873,1],[880,1],[882,2],[892,1],[894,1],[901,1],[921,1],[923,1],[993,2],[1020,2],[1023,2],[1033,1],[1064,1],[1178,2],[1199,1],[1247,3],[1251,1],[1262,1],[1264,1],[1268,1],[1270,1],[1274,1],[1282,2],[1287,1],[1289,1],[1301,1],[1309,1],[1311,2],[1314,2],[1322,1]]},"394":{"position":[[23,1],[25,2],[28,1],[80,1],[93,2],[165,2],[205,2],[255,1],[267,2],[282,1],[360,1],[437,1],[450,2],[470,2],[643,1],[645,1],[654,2],[662,1],[846,2],[872,1]]},"396":{"position":[[23,1],[47,1],[134,1],[136,1],[212,1],[219,2],[232,1],[257,1],[272,2],[275,1],[325,1],[348,1],[355,2],[358,1],[438,1],[445,2],[458,1],[482,2],[485,1],[566,1],[573,2],[586,1],[613,2],[616,2],[623,1],[655,1],[679,1],[766,1],[768,1],[844,1],[851,2],[864,1],[889,1],[904,2],[907,1],[957,1],[980,1],[987,2],[990,1],[1070,1],[1077,2],[1090,1],[1114,2],[1117,1],[1198,1],[1205,2],[1218,1],[1245,2],[1248,2],[1256,1]]},"402":{"position":[[23,1],[74,2],[129,1],[149,2],[214,2],[217,1],[227,1],[229,1],[270,2],[282,1],[337,2],[344,1],[370,1],[421,2],[476,1],[496,2],[561,2],[564,1],[574,1],[576,1],[617,2],[629,1],[684,2],[692,1]]},"404":{"position":[[35,1],[37,1],[47,1],[49,1],[61,1],[63,3],[67,2],[76,1],[78,1],[90,1],[263,1],[294,2],[297,1],[299,1],[331,1],[333,1],[343,1],[345,1],[357,1],[359,3],[363,2],[372,1],[374,1],[386,1],[559,1],[590,2],[593,2],[596,1]]},"406":{"position":[[49,1],[145,1],[147,1],[154,1],[193,1],[323,1],[332,2],[335,2],[342,1],[374,1],[470,1],[472,1],[479,1],[518,1],[648,1],[657,2],[660,2],[668,1]]},"408":{"position":[[34,1],[125,1],[152,2],[189,1],[191,1],[204,1],[214,1],[237,1],[328,1],[355,2],[392,1],[394,1],[407,1],[418,1]]},"412":{"position":[[23,1],[25,1],[31,1],[50,1],[52,1],[63,1],[65,1],[77,1],[96,1],[115,1],[134,1],[143,2],[146,2],[154,1],[156,1],[167,1],[169,1],[180,1],[185,2],[188,2],[199,1],[201,1],[212,1],[214,1],[225,1],[230,2],[233,2],[245,1],[247,1],[258,1],[260,1],[271,1],[276,2],[279,2],[282,1],[284,1],[316,1],[318,1],[572,2],[580,1],[582,1],[588,1],[607,1],[609,1],[620,1],[622,1],[634,1],[653,1],[672,1],[691,1],[700,2],[703,2],[711,1],[713,1],[724,1],[726,1],[737,1],[742,2],[745,2],[756,1],[758,1],[769,1],[771,1],[782,1],[787,2],[790,2],[802,1],[804,1],[815,1],[817,1],[828,1],[833,2],[836,2],[839,2],[865,1],[867,1],[869,1],[917,1],[931,2],[934,1],[979,1],[992,2],[995,1],[1048,1],[1071,2],[1074,1],[1120,1],[1138,2],[1141,1],[1188,1],[1205,2],[1208,1],[1260,1],[1276,2],[1279,1],[1331,1],[1347,2],[1350,2],[1353,1]]},"414":{"position":[[23,1],[25,1],[40,1],[42,1],[53,1],[60,2],[63,1],[65,1],[90,1],[103,1],[105,1],[120,1],[122,1],[133,1],[140,2],[143,2],[146,1]]},"416":{"position":[[23,1],[25,1],[32,1],[34,1],[36,1],[57,1],[70,2],[73,2],[76,1],[78,1],[113,1],[126,1],[128,1],[135,1],[137,1],[139,1],[160,1],[173,2],[176,2],[179,2],[182,1]]},"418":{"position":[[23,1],[54,1],[70,2],[98,1],[106,1],[123,1],[146,1],[191,2],[198,1],[228,1],[241,1],[272,1],[288,2],[316,1],[324,1],[341,1],[364,1],[409,2],[417,1]]},"420":{"position":[[23,1],[48,1],[58,2],[76,1],[96,2],[123,1],[167,1],[202,1],[215,1],[240,1],[250,2],[268,1],[288,2],[315,1],[360,1]]},"422":{"position":[[23,1],[73,1],[109,1],[122,1],[173,1]]},"426":{"position":[[23,1],[92,1],[123,1],[193,1]]},"428":{"position":[[23,1],[53,1],[87,1],[105,2],[170,1],[207,1],[220,1],[250,1],[284,1],[302,2],[368,1]]},"430":{"position":[[23,1],[25,1],[44,1],[46,1],[59,1],[61,1],[71,2],[74,2],[77,1],[79,1],[115,1],[128,1],[130,1],[149,1],[151,1],[164,1],[166,1],[176,2],[179,2],[182,2],[185,1]]},"434":{"position":[[23,1],[25,1],[44,1],[46,1],[63,1],[65,1],[67,1],[98,1],[100,1],[119,1],[121,1],[138,1],[140,2],[143,1]]},"436":{"position":[[23,1],[25,1],[35,1],[37,1],[49,1],[51,3],[55,2],[58,1],[60,1],[92,1],[94,1],[104,1],[106,1],[118,1],[120,3],[124,2],[127,2],[130,1]]},"438":{"position":[[23,1],[29,1],[63,1],[65,1],[74,2],[82,1],[84,1],[86,1],[146,1],[169,1],[207,1],[215,2],[218,2],[221,1]]},"444":{"position":[[23,1],[25,1],[44,1],[46,1],[63,1],[65,1],[67,1],[109,1],[111,1],[130,1],[132,1],[149,1],[151,2],[154,1]]},"446":{"position":[[35,1],[37,1],[47,1],[49,1],[57,1],[59,3],[63,2],[66,1],[68,1],[100,1],[102,1],[112,1],[114,1],[122,1],[124,3],[128,2],[131,2],[134,1]]},"448":{"position":[[49,1],[145,1],[147,1],[154,1],[187,1],[309,1],[317,2],[320,2],[327,1],[359,1],[455,1],[457,1],[464,1],[497,1],[619,1],[627,2],[630,2],[638,1]]},"450":{"position":[[23,1],[114,1],[141,2],[172,1],[174,1],[187,1],[197,1],[220,1],[311,1],[338,2],[369,1],[371,1],[384,1],[395,1]]},"454":{"position":[[223,1]]},"456":{"position":[[23,1],[25,1],[34,1],[36,1],[42,1],[44,1],[52,1],[54,1],[61,1],[63,1],[75,1],[77,1],[98,1],[100,1],[111,2],[114,2],[117,2],[120,2],[123,2],[134,1],[136,1],[175,1],[200,1],[221,1],[261,1],[268,2],[281,1],[330,4],[349,1],[377,2],[416,2],[419,2],[422,1],[424,1],[452,1],[454,1],[463,1],[465,1],[471,1],[473,1],[481,1],[483,1],[490,1],[492,1],[504,1],[506,1],[527,1],[529,1],[540,2],[543,2],[546,2],[549,2],[552,2],[563,1],[565,1],[604,1],[629,1],[650,1],[690,1],[697,2],[710,1],[759,4],[778,1],[806,2],[845,2],[848,2],[851,2],[877,1],[879,1],[881,1],[941,1],[953,2],[956,1],[998,1],[1018,2],[1021,1],[1089,1],[1109,2],[1112,1],[1161,1],[1187,2],[1190,1],[1256,1],[1281,2],[1292,1],[1353,1],[1365,2],[1368,1],[1426,1],[1441,1],[1448,2],[1461,1],[1479,2],[1482,1],[1532,1],[1553,2],[1556,1],[1600,1],[1626,2],[1629,1],[1667,1],[1674,1],[1682,3],[1691,1],[1712,2],[1715,1],[1778,1],[1805,2],[1808,1],[1855,1],[1866,2],[1869,1],[1926,1],[1928,1],[1934,1],[1941,3],[1955,1],[1972,2],[1975,1],[2037,1],[2050,2],[2060,1],[2122,1],[2143,2],[2146,1],[2203,1],[2214,2],[2227,1],[2249,2],[2252,1],[2316,1],[2331,2],[2334,1],[2397,1],[2411,2],[2422,1],[2481,1],[2498,2],[2501,1],[2567,1],[2589,2],[2592,1],[2640,1],[2660,2],[2663,1],[2705,1],[2712,1],[2720,3],[2729,1],[2744,2],[2747,1],[2805,1],[2832,2],[2835,1],[2883,1],[2929,1],[2931,1],[2942,1],[2944,2],[2947,1],[2989,1],[2996,1],[3004,3],[3013,1],[3054,1],[3056,1],[3067,1],[3069,2],[3082,1],[3145,1],[3159,2],[3162,1],[3230,1],[3249,2],[3252,1],[3314,1],[3327,2],[3330,1],[3399,1],[3419,2],[3422,1],[3484,1],[3497,2],[3500,1],[3565,1],[3581,2],[3584,1],[3656,1],[3679,2],[3682,1],[3740,1],[3755,2],[3758,1],[3822,1],[3837,2],[3840,1],[3899,1],[3909,2],[3912,1],[3971,1],[3981,2],[3984,1],[4045,1],[4057,2],[4060,1],[4121,1],[4139,2],[4142,1],[4199,1],[4213,2],[4216,1],[4275,1],[4285,2],[4288,1],[4348,1],[4359,2],[4362,1],[4422,1],[4440,2],[4443,1],[4501,1],[4514,2],[4523,1],[4589,1],[4606,2],[4609,2],[4612,1]]},"458":{"position":[[23,1],[123,3],[127,1],[136,1],[138,1],[148,1],[150,1],[165,1],[260,2],[267,1],[269,1],[277,1],[279,1],[286,1],[288,1],[300,1],[302,1],[325,1],[327,1],[338,2],[341,2],[344,2],[347,2],[350,2],[353,2],[356,2],[367,1],[395,1],[495,3],[499,1],[508,1],[510,1],[520,1],[522,1],[537,1],[632,2],[639,1],[641,1],[649,1],[651,1],[658,1],[660,1],[672,1],[674,1],[697,1],[699,1],[710,2],[713,2],[716,2],[719,2],[722,2],[725,2],[728,2],[740,1]]},"460":{"position":[[23,1],[47,1],[134,1],[136,1],[197,1],[222,1],[237,2],[240,1],[302,1],[315,1],[330,2],[333,1],[398,1],[422,2],[425,1],[491,1],[518,2],[521,1],[583,1],[612,2],[625,1],[646,1],[665,2],[668,1],[740,1],[769,2],[782,1],[813,1],[835,2],[838,1],[903,1],[929,1],[961,2],[964,1],[1029,1],[1055,1],[1087,2],[1090,2],[1097,1],[1129,1],[1153,1],[1240,1],[1242,1],[1303,1],[1328,1],[1343,2],[1346,1],[1408,1],[1421,1],[1436,2],[1439,1],[1504,1],[1528,2],[1531,1],[1597,1],[1624,2],[1627,1],[1689,1],[1718,2],[1731,1],[1752,1],[1771,2],[1774,1],[1846,1],[1875,2],[1888,1],[1919,1],[1941,2],[1944,1],[2009,1],[2035,1],[2067,2],[2070,1],[2135,1],[2161,1],[2193,2],[2196,2],[2204,1]]},"462":{"position":[[23,1],[87,1],[94,1],[96,2],[99,2],[106,1],[118,1],[139,1],[174,2],[181,1],[209,1],[273,1],[280,1],[282,2],[285,2],[292,1],[304,1],[325,1],[360,2],[368,1]]},"464":{"position":[[23,1],[25,1],[34,1],[36,1],[42,1],[44,1],[52,1],[54,1],[61,1],[63,1],[75,1],[77,1],[93,1],[95,1],[106,1],[108,2],[117,1],[119,1],[129,2],[132,2],[135,2],[138,2],[149,1],[151,1],[159,1],[210,1],[212,4],[223,1],[225,1],[233,1],[235,1],[242,1],[244,2],[254,1],[256,1],[263,1],[283,1],[285,1],[355,2],[384,2],[387,2],[397,1],[425,1],[501,2],[509,2],[512,2],[515,1],[517,1],[545,1],[547,1],[556,1],[558,1],[564,1],[566,1],[574,1],[576,1],[583,1],[585,1],[597,1],[599,1],[615,1],[617,1],[628,1],[630,2],[639,1],[641,1],[651,2],[654,2],[657,2],[660,2],[671,1],[673,1],[681,1],[732,1],[734,4],[745,1],[747,1],[755,1],[757,1],[764,1],[766,2],[776,1],[778,1],[785,1],[805,1],[807,1],[877,2],[906,2],[909,2],[919,1],[947,1],[1023,2],[1031,2],[1034,2],[1037,2],[1040,1]]},"466":{"position":[[23,1],[29,1],[68,1],[99,1],[101,1],[103,1],[170,1],[179,2],[182,1],[207,2],[249,1],[251,1],[276,1],[278,2],[291,1],[310,2],[313,2],[316,1]]},"468":{"position":[[23,1],[61,1],[85,2],[88,1],[90,2],[93,1],[166,1],[207,1],[284,1],[317,1],[330,1],[368,1],[392,2],[395,1],[397,2],[400,1],[473,1],[514,1],[592,1]]},"470":{"position":[[23,1],[55,1],[57,1],[59,1],[66,1],[87,1],[131,1],[146,2],[153,2],[169,2],[172,1],[213,1],[250,1],[263,1],[295,1],[297,1],[299,1],[306,1],[327,1],[371,1],[386,2],[393,2],[409,2],[412,1],[454,1]]},"472":{"position":[[23,1],[119,1],[121,1],[130,1],[169,1],[171,1],[189,1],[191,2],[194,2],[201,1],[208,1],[224,1],[240,2],[256,2],[300,1],[302,1],[358,1],[395,1],[408,1],[504,1],[506,1],[515,1],[554,1],[556,1],[574,1],[576,2],[579,2],[586,1],[593,1],[609,1],[625,2],[641,2],[685,1],[687,1],[744,1]]},"474":{"position":[[23,1],[29,1],[60,1],[74,1],[76,1],[78,1],[106,1],[108,1],[117,1],[119,1],[125,1],[127,1],[135,1],[137,1],[144,1],[146,1],[158,1],[160,1],[176,1],[178,1],[189,1],[191,2],[200,1],[202,1],[212,2],[215,2],[218,2],[221,2],[232,1],[234,1],[242,1],[293,1],[295,4],[306,1],[308,1],[316,1],[318,1],[325,1],[327,2],[337,1],[339,1],[346,1],[366,1],[368,1],[438,2],[467,2],[470,2],[480,1],[508,1],[584,2],[592,2],[595,2],[598,2],[601,2],[604,2],[607,1]]},"478":{"position":[[23,1],[25,1],[44,1],[46,1],[56,1],[58,1],[60,1],[102,1],[104,1],[123,1],[125,1],[135,1],[137,2],[140,1]]},"480":{"position":[[23,1],[25,1],[44,1],[46,1],[73,1],[75,1],[77,1],[98,1],[100,1],[119,1],[121,1],[148,1],[150,2],[153,1]]},"482":{"position":[[23,1],[25,1],[35,1],[37,1],[48,1],[50,3],[54,2],[57,1],[59,1],[91,1],[93,1],[103,1],[105,1],[116,1],[118,3],[122,2],[125,2],[128,1]]},"484":{"position":[[23,1],[25,2],[28,1],[64,1],[77,1],[103,1],[144,1],[186,2],[208,2],[249,1],[251,1],[272,1],[274,2],[284,1],[349,1],[360,1],[409,2],[422,1],[424,3],[428,1]]},"486":{"position":[[23,1],[29,1],[50,1]]},"488":{"position":[[23,1],[53,1],[87,1],[121,3],[125,1],[164,2],[171,1],[208,1],[221,1],[251,1],[285,1],[319,3],[323,1],[362,2],[370,1]]},"490":{"position":[[23,1],[25,1],[41,1],[43,1],[51,1],[53,1],[67,2],[70,2],[73,1],[75,1],[112,1],[125,1],[127,1],[143,1],[145,1],[153,1],[155,1],[169,2],[172,2],[175,2],[178,1]]},"494":{"position":[[12,1],[59,1],[61,1],[80,1],[82,1],[94,1],[96,1],[98,1],[140,1],[142,1],[161,1],[163,1],[175,1],[177,2],[180,1]]},"496":{"position":[[23,1],[29,1],[57,1]]},"498":{"position":[[42,1],[44,2],[47,1],[84,1],[86,3],[96,1],[109,1]]},"500":{"position":[[61,1],[63,1],[80,1],[85,1],[87,1],[116,1],[118,1],[135,1],[140,2],[150,1],[191,1],[348,1],[355,1],[362,2],[446,1],[453,1],[460,2],[468,1]]},"502":{"position":[[40,1],[42,2],[45,1],[71,1],[92,1],[194,1],[271,1],[393,1],[462,1],[567,2],[570,1],[580,1],[595,3],[608,1],[634,1],[696,1],[704,1],[713,2],[821,1],[832,2],[864,6],[883,1],[892,1],[907,1],[920,1],[977,1],[979,1],[997,1],[1008,2],[1040,6],[1058,1],[1067,1],[1082,1],[1095,1],[1148,1],[1150,1],[1157,2],[1319,1],[1359,1],[1371,1]]},"504":{"position":[[46,1],[88,2],[134,1],[141,1],[153,2],[164,1],[195,1],[216,1],[218,1],[246,2],[254,1],[296,2],[342,1],[349,1],[361,2],[373,1]]},"508":{"position":[[23,1],[25,1],[35,1],[37,1],[46,1],[48,3],[52,2],[55,1],[57,1],[89,1],[91,1],[101,1],[103,1],[112,1],[114,3],[118,2],[121,2],[124,1]]},"510":{"position":[[23,1],[25,1],[44,1],[46,1],[55,1],[57,1],[59,1],[101,1],[103,1],[122,1],[124,1],[133,1],[135,2],[138,1]]},"512":{"position":[[23,1],[25,1],[44,1],[46,1],[53,1],[55,1],[71,2],[74,2],[77,1],[79,1],[111,1],[113,1],[132,1],[134,1],[141,1],[143,1],[159,2],[162,2],[165,2],[168,1]]},"514":{"position":[[23,1],[29,1],[56,1]]},"516":{"position":[[23,1],[25,1],[36,1],[38,1],[57,1],[59,3],[63,2],[66,1],[68,1],[103,1],[124,1],[126,1],[153,2],[161,1],[163,1],[174,1],[176,1],[195,1],[197,3],[201,2],[204,2],[207,1]]},"520":{"position":[[23,1],[25,1],[44,1],[46,1],[61,1],[63,1],[65,1],[107,1],[109,1],[128,1],[130,1],[145,1],[147,2],[150,1]]},"522":{"position":[[23,1],[25,1],[44,1],[46,1],[59,1],[61,1],[63,1],[84,1],[86,1],[105,1],[107,1],[120,1],[122,2],[125,1]]},"524":{"position":[[23,1],[25,1],[35,1],[37,1],[48,1],[50,3],[86,1],[88,3],[92,2],[95,1],[97,1],[129,1],[131,1],[141,1],[143,1],[154,1],[156,3],[192,1],[194,3],[198,2],[201,2],[204,1]]},"526":{"position":[[23,1],[53,1],[87,1],[121,3],[125,1],[162,2],[169,1],[206,1],[219,1],[249,1],[283,1],[317,3],[321,1],[358,2],[366,1]]},"528":{"position":[[23,1],[25,1],[41,1],[43,1],[56,1],[58,1],[71,2],[74,2],[77,1],[79,1],[116,1],[129,1],[131,1],[147,1],[149,1],[162,1],[164,1],[177,2],[180,2],[183,2],[186,1]]},"532":{"position":[[47,1],[49,1],[68,1],[70,1],[78,1],[80,1],[82,1],[124,1],[126,1],[145,1],[147,1],[155,1],[157,2],[160,1]]},"534":{"position":[[23,1],[25,1],[39,1],[41,1],[50,1],[59,2],[66,1],[68,1],[153,1],[155,1],[162,1],[164,4],[181,1],[183,4],[199,1],[201,4],[216,1],[218,4],[233,1],[235,4],[262,1],[264,4],[269,2],[283,1],[285,1],[296,1],[298,4],[312,1],[314,4],[335,1],[337,4],[356,1],[358,4],[380,1],[382,4],[408,1],[410,4],[435,1],[437,4],[442,2],[445,2],[448,1],[450,1],[488,1],[503,1],[526,1],[528,1],[542,1],[544,1],[553,1],[562,2],[569,1],[571,1],[656,1],[658,1],[665,1],[667,4],[684,1],[686,4],[702,1],[704,4],[719,1],[721,4],[736,1],[738,4],[765,1],[767,4],[772,2],[786,1],[788,1],[799,1],[801,4],[815,1],[817,4],[838,1],[840,4],[859,1],[861,4],[883,1],[885,4],[911,1],[913,4],[938,1],[940,4],[945,2],[948,2],[951,2],[954,1]]},"536":{"position":[[37,2],[63,1],[65,1],[75,1],[77,1],[122,1],[124,1],[131,1],[133,1],[135,1],[196,1],[229,2],[232,2],[248,1],[250,1],[445,2],[461,1],[463,1],[480,1],[482,1],[493,2],[496,2],[503,1],[505,1],[517,1],[539,1],[555,1],[582,1],[613,1],[644,1],[669,2],[685,1],[687,1],[705,1],[732,1],[757,1],[765,2],[768,2],[771,2],[780,1],[782,1],[791,1],[833,1],[957,3],[961,1],[970,1],[977,3],[999,2],[1002,1],[1004,1],[1036,1],[1038,1],[1048,1],[1050,1],[1095,1],[1097,1],[1104,1],[1106,1],[1108,1],[1169,1],[1202,2],[1205,2],[1221,1],[1223,1],[1418,2],[1434,1],[1436,1],[1453,1],[1455,1],[1466,2],[1469,2],[1476,1],[1478,1],[1490,1],[1512,1],[1528,1],[1555,1],[1586,1],[1617,1],[1642,2],[1658,1],[1660,1],[1678,1],[1705,1],[1730,1],[1738,2],[1741,2],[1744,2],[1753,1],[1755,1],[1764,1],[1806,1],[1930,3],[1934,1],[1943,1],[1950,3],[1972,2],[1975,2],[1978,1]]},"538":{"position":[[23,1],[56,1],[74,2],[102,1],[132,2],[222,1],[253,1],[266,1],[299,1],[317,2],[345,1],[375,2],[466,1]]},"540":{"position":[[23,1],[46,1],[136,1],[138,1],[145,1],[162,1],[182,1],[206,1],[208,1],[218,1],[237,1],[239,1],[241,1],[262,2],[265,2],[268,1],[309,2],[340,1],[342,1],[344,1],[351,1],[373,1],[390,1],[415,1],[469,2],[488,2],[491,4],[513,1],[537,2],[540,1],[547,1],[569,1],[586,1],[613,1],[654,1],[678,2],[681,1],[691,1],[727,1],[748,1],[750,1],[823,1],[836,1],[838,1],[857,1],[859,1],[872,1],[874,2],[877,2],[885,1],[908,1],[998,1],[1000,1],[1007,1],[1024,1],[1044,1],[1068,1],[1070,1],[1080,1],[1099,1],[1101,1],[1103,1],[1124,2],[1127,2],[1130,1],[1171,2],[1202,1],[1204,1],[1206,1],[1213,1],[1235,1],[1252,1],[1277,1],[1331,2],[1350,2],[1353,4],[1375,1],[1399,2],[1402,1],[1409,1],[1431,1],[1448,1],[1475,1],[1516,1],[1540,2],[1543,1],[1554,1]]},"542":{"position":[[23,1],[25,1],[44,1],[46,1],[59,1],[61,1],[63,1],[136,1],[149,1],[151,1],[170,1],[172,1],[185,1],[187,2],[190,1]]},"546":{"position":[[23,1],[25,1],[44,1],[46,1],[109,1],[111,1],[113,1],[155,1],[157,1],[176,1],[178,1],[241,1],[243,2],[246,1]]},"548":{"position":[[23,1],[25,1],[35,1],[37,1],[45,1],[47,3],[51,2],[54,1],[56,1],[88,1],[90,1],[100,1],[102,1],[110,1],[112,3],[116,2],[119,2],[122,1]]},"550":{"position":[[23,1],[114,1],[141,2],[174,1],[176,1],[189,1],[199,1],[222,1],[313,1],[340,2],[373,1],[375,1],[388,1],[399,1]]},"554":{"position":[[23,1],[29,1],[73,1],[80,1]]},"556":{"position":[[23,1],[25,1],[44,1],[46,1],[68,1],[70,1],[72,1],[114,1],[116,1],[135,1],[137,1],[159,1],[161,2],[164,1]]},"558":{"position":[[23,1],[25,1],[44,1],[46,1],[86,1],[88,1],[90,1],[121,1],[123,1],[142,1],[144,1],[184,1],[186,2],[189,1]]},"560":{"position":[[23,1],[25,1],[35,1],[37,1],[54,1],[56,3],[70,1],[72,1],[83,1],[85,1],[115,1],[186,2],[194,1],[196,1],[198,1],[385,1],[406,2],[409,2],[436,1],[471,1],[504,1],[512,2],[515,2],[518,1],[520,1],[552,1],[554,1],[564,1],[566,1],[583,1],[585,3],[599,1],[601,1],[612,1],[614,1],[644,1],[715,2],[723,1],[725,1],[727,1],[914,1],[935,2],[938,2],[965,1],[1000,1],[1033,1],[1041,2],[1044,2],[1047,2],[1050,1]]},"562":{"position":[[23,1],[29,1],[60,1]]},"564":{"position":[[23,1],[53,1],[87,1],[105,2],[235,1],[272,1],[285,1],[315,1],[349,1],[367,2],[498,1]]},"566":{"position":[[23,1],[25,1],[44,1],[46,1],[51,1],[53,1],[67,2],[77,1],[79,1],[92,2],[95,2],[98,1],[100,1],[136,1],[149,1],[151,1],[170,1],[172,1],[177,1],[179,1],[193,2],[203,1],[205,1],[218,2],[221,2],[224,2],[227,1]]},"568":{"position":[[23,1],[46,1],[140,1],[142,1],[149,1],[173,1],[210,1],[212,1],[214,1],[237,2],[248,1],[250,1],[261,1],[270,2],[273,1],[324,2],[392,1],[394,1],[396,1],[403,1],[424,1],[449,1],[523,1],[570,2],[589,2],[592,4],[614,1],[638,2],[641,1],[655,1],[691,1],[704,1],[727,1],[821,1],[823,1],[830,1],[854,1],[891,1],[893,1],[895,1],[918,2],[929,1],[931,1],[942,1],[951,2],[954,1],[1005,2],[1073,1],[1075,1],[1077,1],[1084,1],[1105,1],[1130,1],[1204,1],[1251,2],[1270,2],[1273,4],[1295,1],[1319,2],[1322,1],[1337,1]]},"570":{"position":[[23,1],[25,1],[36,1],[38,1],[59,1],[61,1],[109,2],[112,2],[115,1],[117,1],[152,1],[173,1],[175,1],[206,2],[214,1],[216,1],[227,1],[229,1],[250,1],[252,1],[300,2],[303,2],[306,2],[309,1]]},"574":{"position":[[23,1],[25,1],[35,1],[37,1],[48,1],[50,3],[54,2],[57,1],[59,1],[91,1],[93,1],[103,1],[105,1],[116,1],[118,3],[122,2],[125,2],[128,1]]},"576":{"position":[[23,1],[25,1],[44,1],[46,1],[57,1],[59,1],[61,1],[103,1],[105,1],[124,1],[126,1],[137,1],[139,2],[142,1]]},"580":{"position":[[23,1],[25,1],[44,1],[46,1],[54,1],[56,1],[58,1],[100,1],[102,1],[121,1],[123,1],[131,1],[133,2],[136,1]]},"582":{"position":[[23,1],[25,1],[44,1],[46,1],[61,1],[63,1],[65,1],[96,1],[98,1],[117,1],[119,1],[134,1],[136,2],[139,1]]},"584":{"position":[[23,1],[25,1],[35,1],[37,1],[45,1],[47,3],[51,2],[54,1],[56,1],[88,1],[90,1],[100,1],[102,1],[110,1],[112,3],[116,2],[119,2],[122,1]]},"586":{"position":[[23,1],[25,1],[44,1],[46,1],[52,1],[54,1],[69,2],[72,2],[75,1],[77,1],[113,1],[126,1],[128,1],[147,1],[149,1],[155,1],[157,1],[172,2],[175,2],[178,2],[181,1]]},"590":{"position":[[46,1],[48,1],[67,1],[69,1],[141,1],[143,1],[145,1],[187,1],[189,1],[208,1],[210,1],[282,1],[284,2],[287,1]]},"592":{"position":[[23,1],[25,2],[28,1],[57,1],[59,2],[62,1]]},"594":{"position":[[23,1],[70,1],[77,1],[85,2],[92,1],[123,1],[144,1],[146,1],[148,1],[177,1],[179,2],[182,2],[185,2],[242,1],[289,1],[296,1],[304,2],[312,1]]},"598":{"position":[[23,1],[29,1],[60,1],[69,1]]},"600":{"position":[[23,1],[25,1],[44,1],[46,1],[55,1],[57,1],[59,1],[101,1],[103,1],[122,1],[124,1],[133,1],[135,2],[138,1]]},"602":{"position":[[23,1],[25,1],[35,1],[37,1],[47,1],[49,3],[53,2],[56,1],[58,1],[90,1],[92,1],[102,1],[104,1],[114,1],[116,3],[120,2],[123,2],[126,1]]},"606":{"position":[[23,1],[25,1],[35,1],[37,1],[48,1],[50,1],[57,1],[59,1],[61,1],[101,1],[169,1],[209,1],[211,1],[296,2],[299,2],[312,1],[325,2],[328,1],[368,1],[436,1],[476,1],[478,1],[565,2],[568,2],[581,1],[596,2],[599,2],[602,2],[605,2],[608,1],[610,1],[642,1],[644,1],[654,1],[656,1],[667,1],[669,1],[676,1],[678,1],[680,1],[720,1],[788,1],[828,1],[830,1],[915,2],[918,2],[931,1],[944,2],[947,1],[987,1],[1055,1],[1095,1],[1097,1],[1184,2],[1187,2],[1200,1],[1215,2],[1218,2],[1221,2],[1224,2],[1227,2],[1230,1]]},"608":{"position":[[23,1],[65,1],[92,2],[134,1],[160,2],[224,1],[266,1],[308,1],[335,2],[377,1],[403,2],[468,1]]},"610":{"position":[[23,1],[29,1],[59,1]]},"612":{"position":[[23,1],[25,1],[36,1],[38,1],[59,1],[61,3],[65,2],[68,1],[70,1],[105,1],[126,1],[128,1],[158,2],[166,1],[168,1],[179,1],[181,1],[202,1],[204,3],[208,2],[211,2],[214,1]]},"614":{"position":[[23,1],[53,1],[87,1],[121,3],[125,1],[175,1],[239,3],[243,2],[250,1],[287,1],[300,1],[330,1],[364,1],[398,3],[402,1],[452,1],[516,3],[520,2],[528,1]]},"616":{"position":[[23,1],[62,1],[64,1],[73,1],[75,1],[85,2],[88,1],[103,1],[105,1],[113,1],[115,1],[127,1],[177,2],[180,1],[187,1],[210,1],[228,2],[231,1],[237,1],[274,1],[287,1],[326,1],[328,1],[337,1],[339,1],[349,2],[352,1],[367,1],[369,1],[377,1],[379,1],[391,1],[441,2],[444,1],[451,1],[474,1],[492,2],[495,1],[502,1]]},"618":{"position":[[23,1],[29,1],[85,1],[96,1],[134,1],[147,2],[155,1]]},"622":{"position":[[23,1],[25,1],[44,1],[46,1],[56,1],[58,1],[60,1],[102,1],[104,1],[123,1],[125,1],[135,1],[137,2],[140,1]]},"624":{"position":[[23,1],[25,1],[35,1],[37,1],[45,1],[47,3],[51,2],[54,1],[56,1],[88,1],[90,1],[100,1],[102,1],[110,1],[112,3],[116,2],[119,2],[122,1]]},"626":{"position":[[23,1],[25,1],[44,1],[46,1],[54,1],[56,1],[66,2],[69,2],[72,1],[74,1],[101,1],[114,1],[116,1],[135,1],[137,1],[145,1],[147,1],[157,2],[160,2],[163,2],[166,1]]},"630":{"position":[[23,1],[25,1],[44,1],[46,1],[56,1],[58,1],[60,1],[102,1],[104,1],[123,1],[125,1],[135,1],[137,2],[140,1]]},"632":{"position":[[23,1],[25,1],[35,1],[37,1],[47,1],[49,1],[60,1],[62,1],[134,1],[136,1],[153,1],[171,1],[173,1],[187,1],[196,2],[199,2],[202,2],[205,2],[208,2],[211,1],[213,1],[245,1],[247,1],[257,1],[259,1],[269,1],[271,1],[282,1],[284,1],[356,1],[358,1],[375,1],[393,1],[395,1],[409,1],[418,2],[421,2],[424,2],[427,2],[430,2],[433,2],[436,1]]},"634":{"position":[[23,1],[29,1],[60,1]]},"636":{"position":[[23,1],[29,1],[83,1]]},"638":{"position":[[23,1]]},"640":{"position":[[39,1],[86,1],[93,1],[119,1],[121,1],[132,1],[146,2],[149,2],[156,1],[187,1],[208,1],[210,1],[241,2],[249,1],[296,1],[303,1],[329,1],[331,1],[342,1],[356,2],[359,2],[367,1]]},"642":{"position":[[45,1],[47,1],[57,1],[59,1],[68,1],[70,1],[88,2],[101,1],[103,1],[119,1],[121,1],[128,1],[152,1],[165,1],[167,1],[178,1],[192,2],[195,2],[198,2],[201,2],[204,1],[206,1],[237,1],[258,1],[260,1],[314,2],[322,1],[324,1],[334,1],[336,1],[345,1],[347,1],[365,2],[378,1],[380,1],[396,1],[398,1],[405,1],[429,1],[442,1],[444,1],[455,1],[469,2],[472,2],[475,2],[478,2],[481,2],[484,1]]},"646":{"position":[[49,1],[51,1],[70,1],[72,1],[84,1],[86,1],[88,1],[130,1],[132,1],[151,1],[153,1],[165,1],[167,2],[170,1]]},"648":{"position":[[23,1],[29,1],[68,1],[80,1],[82,1],[131,2],[139,1],[141,1],[143,1],[189,1],[207,1],[225,2],[228,1],[318,1],[336,1],[358,2],[361,1],[439,1],[457,1],[477,2],[480,1],[586,1],[604,1],[623,2],[626,2],[629,1]]},"650":{"position":[[23,1],[25,1],[44,1],[46,1],[74,1],[76,1],[78,1],[109,1],[111,1],[130,1],[132,1],[160,1],[162,2],[165,1]]},"652":{"position":[[23,1],[25,1],[44,1],[46,1],[72,1],[74,1],[76,1],[107,1],[109,1],[128,1],[130,1],[156,1],[158,2],[161,1]]},"654":{"position":[[23,1],[29,1],[56,1]]},"656":{"position":[[23,1],[25,2],[28,1],[75,1],[77,1],[98,2],[104,1],[106,1],[155,2],[165,1],[201,1],[296,1],[302,1],[314,2],[322,1]]},"658":{"position":[[23,1],[29,1],[50,1]]},"660":{"position":[[23,1],[132,1],[168,1],[170,1],[219,2],[227,1],[342,1],[344,1],[346,1],[398,1],[416,1],[428,2],[431,2],[434,1]]},"662":{"position":[[97,1],[99,1],[107,1],[109,1],[115,1],[145,2],[148,1],[150,1],[182,1],[184,1],[192,1],[194,1],[200,1],[230,2],[233,2],[236,1]]},"664":{"position":[[23,1],[29,1],[65,1],[86,1],[88,1],[90,1],[121,1],[123,1],[142,1],[144,1],[170,1],[172,2],[175,2],[178,2],[181,1]]},"666":{"position":[[23,1],[25,1],[36,1],[38,1],[60,1],[62,3],[66,2],[69,1],[71,1],[106,1],[127,1],[129,1],[131,1],[158,2],[161,2],[169,1],[171,1],[182,1],[184,1],[206,1],[208,3],[212,2],[215,2],[218,1]]},"668":{"position":[[23,1],[29,1],[73,1],[87,1],[89,1],[91,1],[127,1],[129,1],[178,2],[186,1],[301,1],[303,1],[305,1],[357,1],[375,1],[387,2],[390,2],[393,2],[396,2],[399,1]]},"670":{"position":[[23,1],[25,1],[44,1],[46,1],[56,1],[58,1],[71,2],[80,1],[82,1],[96,2],[99,2],[102,1],[104,1],[140,1],[153,1],[155,1],[174,1],[176,1],[186,1],[188,1],[201,2],[210,1],[212,1],[226,2],[229,2],[232,2],[235,1]]},"672":{"position":[[23,1],[25,1],[41,1],[43,1],[53,1],[55,1],[65,2],[68,2],[71,1],[73,1],[110,1],[123,1],[125,1],[141,1],[143,1],[153,1],[155,1],[165,2],[168,2],[171,2],[174,1]]},"676":{"position":[[23,1],[25,1],[44,1],[46,1],[81,1],[83,1],[85,1],[127,1],[129,1],[148,1],[150,1],[185,1],[187,2],[190,1]]},"678":{"position":[[23,1],[25,1],[35,1],[37,1],[45,1],[47,1],[58,1],[60,1],[68,1],[70,1],[80,1],[99,1],[101,1],[114,1],[132,1],[155,1],[179,1],[192,1],[205,1],[232,1],[247,1],[255,2],[264,1],[266,1],[288,1],[319,1],[349,1],[372,1],[403,1],[426,1],[453,1],[461,2],[473,1],[475,1],[485,1],[506,1],[526,1],[541,1],[549,2],[568,1],[595,1],[615,1],[640,1],[642,1],[644,1],[653,1],[665,1],[675,1],[692,1],[708,2],[726,1],[734,2],[737,2],[740,2],[743,2],[752,1],[754,1],[762,1],[1032,1],[1139,1],[1141,1],[1148,1],[1163,1],[1165,1],[1178,1],[1216,1],[1243,2],[1252,1],[1260,1],[1303,2],[1306,1],[1308,1],[1340,1],[1342,1],[1352,1],[1354,1],[1362,1],[1364,1],[1375,1],[1377,1],[1385,1],[1387,1],[1397,1],[1416,1],[1418,1],[1431,1],[1449,1],[1472,1],[1496,1],[1509,1],[1522,1],[1549,1],[1564,1],[1572,2],[1581,1],[1583,1],[1605,1],[1636,1],[1666,1],[1689,1],[1720,1],[1743,1],[1770,1],[1778,2],[1790,1],[1792,1],[1802,1],[1823,1],[1843,1],[1858,1],[1866,2],[1885,1],[1912,1],[1932,1],[1957,1],[1959,1],[1961,1],[1970,1],[1982,1],[1992,1],[2009,1],[2025,2],[2043,1],[2051,2],[2054,2],[2057,2],[2060,2],[2069,1],[2071,1],[2079,1],[2349,1],[2456,1],[2458,1],[2465,1],[2480,1],[2482,1],[2495,1],[2533,1],[2560,2],[2569,1],[2577,1],[2620,2],[2623,2],[2626,1]]},"680":{"position":[[53,1],[55,1],[74,1],[76,1],[101,1],[103,1],[105,1],[136,1],[138,1],[157,1],[159,1],[184,1],[186,2],[189,1]]},"682":{"position":[[23,1],[25,1],[44,1],[46,1],[71,1],[73,1],[75,1],[106,1],[108,1],[127,1],[129,1],[154,1],[156,2],[159,1]]},"684":{"position":[[23,1],[25,1],[44,1],[46,1],[64,1],[66,1],[68,1],[99,1],[101,1],[120,1],[122,1],[140,1],[142,2],[145,1]]},"686":{"position":[[23,1],[25,1],[44,1],[46,1],[56,1],[58,1],[60,1],[91,1],[93,1],[112,1],[114,1],[124,1],[126,2],[129,1]]},"688":{"position":[[23,1],[25,2],[28,1],[57,1],[59,3],[63,1]]},"690":{"position":[[23,1],[29,1],[64,1]]},"692":{"position":[[38,1],[40,1],[47,1],[49,1],[67,1],[69,1],[77,1],[79,4],[87,1],[105,2],[108,2],[120,1],[122,1],[131,1],[133,1],[141,1],[143,5],[152,1],[170,2],[173,2],[176,1],[178,1],[209,1],[211,1],[218,1],[220,1],[238,1],[240,1],[248,1],[250,4],[258,1],[276,2],[279,2],[291,1],[293,1],[302,1],[304,1],[312,1],[314,5],[323,1],[341,2],[344,2],[347,2],[350,1]]},"694":{"position":[[23,1],[53,1],[87,1],[121,3],[125,1],[267,2],[274,1],[311,1],[332,1],[334,1],[336,1],[367,1],[369,1],[388,1],[390,1],[415,1],[417,2],[420,2],[423,2],[431,1],[461,1],[495,1],[529,3],[533,1],[675,2],[683,1]]},"696":{"position":[[35,1],[37,1],[53,1],[55,1],[60,1],[62,1],[79,2],[82,2],[85,1],[87,1],[124,1],[145,1],[147,1],[149,1],[180,1],[182,1],[201,1],[203,1],[221,1],[223,2],[226,2],[229,2],[237,1],[239,1],[255,1],[257,1],[262,1],[264,1],[281,2],[284,2],[287,2],[290,1]]},"698":{"position":[[23,1],[25,1],[44,1],[46,1],[51,1],[53,1],[78,2],[81,2],[84,1],[86,1],[122,1],[135,1],[137,1],[156,1],[158,1],[163,1],[165,1],[190,2],[193,2],[196,2],[199,1]]},"700":{"position":[[23,1],[29,1],[65,1],[86,1],[88,1],[90,1],[121,1],[123,1],[142,1],[144,1],[154,1],[156,2],[159,2],[162,1],[191,1],[193,3],[197,2],[200,2],[203,1]]},"702":{"position":[[23,1],[25,1],[36,1],[38,1],[59,1],[61,1],[131,1],[133,1],[135,1],[141,1],[150,1],[162,1],[177,2],[195,1],[234,2],[237,2],[240,1],[242,1],[277,1],[298,1],[300,1],[335,2],[343,1],[345,1],[356,1],[358,1],[379,1],[381,1],[451,1],[453,1],[455,1],[461,1],[470,1],[482,1],[497,2],[515,1],[554,2],[557,2],[560,2],[563,1]]},"706":{"position":[[46,1],[48,1],[67,1],[69,1],[79,1],[81,1],[83,1],[125,1],[127,1],[146,1],[148,1],[158,1],[160,2],[163,1]]},"708":{"position":[[43,1],[49,1],[80,1],[96,1],[136,1]]},"710":{"position":[[49,1],[51,1],[100,1],[102,1],[111,1],[113,1],[164,1],[223,1],[261,2],[367,1],[369,1],[376,1],[378,1],[387,1],[389,1],[398,1],[406,2],[418,1],[420,1],[429,1],[436,2],[439,2],[442,2],[445,2],[448,2],[451,1],[453,1],[485,1],[487,1],[536,1],[538,1],[547,1],[549,1],[600,1],[659,1],[697,2],[803,1],[805,1],[812,1],[814,1],[823,1],[825,1],[834,1],[842,2],[854,1],[856,1],[865,1],[872,2],[875,2],[878,2],[881,2],[884,2],[887,2],[890,1]]},"714":{"position":[[23,1]]},"716":{"position":[[23,1],[29,1],[56,1]]},"720":{"position":[[47,1],[49,1],[68,1],[70,1],[79,1],[81,1],[83,1],[125,1],[127,1],[146,1],[148,1],[157,1],[159,2],[162,1]]},"722":{"position":[[23,1],[25,1],[44,1],[46,1],[82,1],[84,1],[86,1],[117,1],[119,1],[138,1],[140,1],[176,1],[178,2],[181,1]]},"724":{"position":[[168,1],[170,1],[219,1],[221,1],[229,1],[231,3],[235,2],[244,1],[246,1],[254,1],[311,2],[314,1],[316,1],[348,1],[350,1],[399,1],[401,1],[409,1],[411,3],[415,2],[424,1],[426,1],[434,1],[491,2],[494,2],[497,1]]},"726":{"position":[[66,1],[89,1],[91,1],[117,1],[170,1],[302,1],[313,1],[462,1],[609,1],[665,2],[678,2],[694,2],[732,1],[788,2],[801,2],[817,2],[963,1],[979,1],[1008,1],[1054,1],[1096,1],[1136,1],[1203,1],[1205,1],[1260,1],[1309,2],[1421,1],[1423,1],[1440,1],[1467,1],[1469,2],[1472,2],[1585,1],[1587,3],[1596,1],[1613,1],[1615,1],[1622,1],[1624,1],[1637,1],[1639,1],[1656,1],[1658,1],[1668,1],[1677,2],[1680,2],[1683,2],[1686,2],[1689,1],[1695,1],[1737,1],[1739,1],[1764,2],[1770,1],[1793,1],[1816,1],[1818,1],[1844,1],[1897,1],[2029,1],[2040,1],[2189,1],[2336,1],[2392,2],[2405,2],[2421,2],[2459,1],[2515,2],[2528,2],[2544,2],[2690,1],[2706,1],[2735,1],[2781,1],[2823,1],[2863,1],[2930,1],[2932,1],[2987,1],[3036,2],[3148,1],[3150,1],[3167,1],[3194,1],[3196,2],[3199,2],[3312,1],[3314,3],[3323,1],[3340,1],[3342,1],[3349,1],[3351,1],[3364,1],[3366,1],[3383,1],[3385,1],[3395,1],[3404,2],[3407,2],[3410,2],[3413,2],[3416,1],[3430,1],[3586,1],[3588,2],[3664,1],[3799,1],[4147,1],[4254,1],[4281,1],[4313,1],[4350,1],[4352,1],[4362,1],[4373,2],[4385,1],[4442,1],[4548,1],[4609,2],[5036,1],[5046,1],[5073,1],[5089,2],[5308,1],[5319,1],[5349,1],[5423,2],[5448,1],[5480,1],[5487,1],[5501,1],[5513,1],[5535,1],[5547,2],[5550,1],[5611,1],[5632,2],[5635,1],[5692,1],[5713,2],[5716,1],[5777,1],[5792,2],[5795,1],[5855,1],[5873,2],[5876,1],[5932,1],[5953,2],[5956,2],[5959,2],[5971,1],[5978,1],[5992,1],[6004,1],[6026,1],[6038,2],[6041,1],[6124,1],[6144,2],[6147,1],[6236,1],[6258,2],[6261,1],[6346,1],[6368,2],[6371,2],[6374,2],[6432,1],[6908,1],[6915,1],[6929,1],[6941,1],[6962,1],[6971,2],[6974,1],[7052,1],[7070,2],[7122,2],[7135,1],[7153,2],[7156,1],[7243,1],[7261,2],[7313,2],[7326,1],[7348,2],[7351,1],[7404,1],[7417,2],[7420,2],[7423,2],[7548,2],[7659,1]]},"728":{"position":[[23,1],[29,1],[54,1]]},"730":{"position":[[77,1],[237,1],[278,1],[280,1],[282,1],[289,1],[307,1],[324,1],[362,1],[382,1],[390,2],[393,1],[399,1],[435,1],[448,1],[608,1],[649,1],[651,1],[653,1],[660,1],[678,1],[695,1],[733,1],[753,1],[761,2],[764,1],[784,1],[786,1],[788,1],[819,1],[821,1],[840,1],[842,1],[878,1],[880,2],[883,2],[886,2],[889,1]]},"734":{"position":[[23,1],[25,1],[35,1],[37,1],[47,1],[49,3],[53,2],[56,1],[58,1],[90,1],[92,1],[102,1],[104,1],[114,1],[116,3],[120,2],[123,2],[126,1]]},"736":{"position":[[23,1],[25,1],[44,1],[46,1],[53,1],[55,1],[57,1],[99,1],[101,1],[120,1],[122,1],[129,1],[131,2],[134,1]]},"740":{"position":[[23,1],[25,1],[44,1],[46,1],[54,1],[56,1],[58,1],[100,1],[102,1],[121,1],[123,1],[131,1],[133,2],[136,1]]},"742":{"position":[[23,1],[25,1],[35,1],[37,1],[46,1],[48,3],[52,2],[55,1],[57,1],[89,1],[91,1],[101,1],[103,1],[112,1],[114,3],[118,2],[121,2],[124,1]]},"744":{"position":[[23,1],[25,1],[44,1],[46,1],[52,1],[54,1],[65,2],[68,2],[71,1],[73,1],[109,1],[122,1],[124,1],[143,1],[145,1],[151,1],[153,1],[164,2],[167,2],[170,2],[173,1]]},"746":{"position":[[23,1],[25,1],[41,1],[43,1],[49,1],[51,1],[62,2],[65,2],[68,1],[70,1],[107,1],[120,1],[122,1],[138,1],[140,1],[146,1],[148,1],[159,2],[162,2],[165,2],[168,1]]},"750":{"position":[[60,1],[62,1],[81,1],[83,1],[94,1],[96,1],[98,1],[129,1],[131,1],[150,1],[152,1],[163,1],[165,2],[168,1]]},"752":{"position":[[47,1],[49,1],[68,1],[70,1],[81,1],[83,1],[85,1],[127,1],[129,1],[148,1],[150,1],[161,1],[163,2],[166,1]]},"754":{"position":[[43,1],[45,1],[55,1],[57,1],[82,1],[84,3],[88,2],[91,1],[93,1],[125,1],[127,1],[137,1],[139,1],[164,1],[166,3],[170,2],[173,2],[176,1]]},"756":{"position":[[35,1],[37,1],[53,1],[55,1],[64,1],[66,1],[77,1],[79,2],[82,1],[84,1],[121,1],[142,1],[173,1],[175,1],[191,1],[193,1],[202,1],[204,1],[215,1],[217,2],[220,2],[223,1]]},"758":{"position":[[38,1],[40,1],[59,1],[61,1],[70,1],[72,1],[83,1],[85,2],[88,1],[90,1],[126,1],[139,1],[141,1],[160,1],[162,1],[171,1],[173,1],[184,1],[186,2],[189,2],[192,1]]},"760":{"position":[[50,1],[80,1],[114,1],[148,3],[152,1],[219,2],[226,1],[263,1],[276,1],[306,1],[340,1],[374,3],[378,1],[445,2],[453,1]]},"762":{"position":[[36,1],[59,1],[128,1],[130,1],[137,1],[161,1],[195,1],[197,1],[229,1],[237,2],[240,1],[272,1],[274,1],[276,1],[283,1],[303,1],[320,1],[537,1],[561,1],[582,1],[589,1],[612,1],[625,1],[649,2],[664,1],[733,1],[866,1],[902,1],[904,3],[926,1],[935,2],[938,1],[1067,1],[1087,1],[1104,1],[1142,1],[1155,1],[1157,3],[1173,1],[1199,1],[1222,1],[1230,2],[1233,1],[1239,1],[1275,1],[1296,1],[1327,1],[1350,1],[1419,1],[1421,1],[1428,1],[1452,1],[1486,1],[1488,1],[1520,1],[1528,2],[1531,1],[1563,1],[1565,1],[1567,1],[1574,1],[1594,1],[1611,1],[1828,1],[1852,1],[1873,1],[1880,1],[1903,1],[1916,1],[1940,2],[1955,1],[2024,1],[2157,1],[2193,1],[2195,3],[2217,1],[2226,2],[2229,1],[2358,1],[2378,1],[2395,1],[2433,1],[2446,1],[2448,3],[2464,1],[2490,1],[2513,1],[2521,2],[2524,1],[2531,1]]},"766":{"position":[[23,1],[74,2],[129,1],[139,2],[150,1],[192,1],[243,2],[298,1],[308,2],[320,1]]},"768":{"position":[[23,1],[25,1],[35,1],[37,1],[48,1],[50,1],[62,1],[64,1],[146,2],[162,1],[164,1],[336,2],[339,2],[342,2],[345,1],[347,1],[379,1],[381,1],[391,1],[393,1],[404,1],[406,1],[418,1],[420,1],[502,2],[518,1],[520,1],[692,2],[695,2],[698,2],[701,2],[704,1]]},"772":{"position":[[23,1],[25,1],[44,1],[46,1],[57,2],[60,1],[62,1],[104,1],[106,1],[125,1],[127,1],[138,2],[141,2],[144,1]]},"774":{"position":[[23,1],[25,1],[35,1],[37,1],[48,1],[50,3],[54,2],[57,1],[59,1],[91,1],[93,1],[103,1],[105,1],[116,1],[118,3],[122,2],[125,2],[128,1]]},"778":{"position":[[23,1],[25,1],[44,1],[46,1],[84,1],[86,1],[88,1],[119,1],[121,1],[140,1],[142,1],[180,1],[182,2],[185,1]]},"780":{"position":[[23,1],[25,1],[35,1],[37,1],[48,1],[50,3],[54,2],[57,1],[59,1],[91,1],[93,1],[103,1],[105,1],[116,1],[118,3],[122,2],[125,2],[128,1]]},"782":{"position":[[40,1],[42,2],[45,1],[83,1],[85,1],[153,2],[162,1],[206,1],[208,1],[234,1],[236,2],[279,1],[281,1],[283,1],[302,1],[355,1],[377,2],[380,2],[390,1],[433,1]]},"784":{"position":[[23,1],[29,1],[55,1]]},"786":{"position":[[23,1],[25,1],[32,1],[34,1],[41,1],[56,1],[77,1],[82,2],[93,1],[95,1],[102,1],[117,1],[119,3],[123,2],[135,1],[137,1],[147,1],[156,2],[159,1],[161,1],[213,1],[215,1],[222,1],[224,1],[231,1],[246,1],[267,1],[272,2],[283,1],[285,1],[292,1],[307,1],[309,3],[313,2],[325,1],[327,1],[337,1],[346,2],[349,2],[355,1],[357,1],[409,2],[419,1],[499,1],[524,1],[562,1],[622,1]]},"788":{"position":[[23,1],[25,1],[38,1],[40,1],[59,1],[61,1],[73,1],[186,1],[193,1],[195,1],[197,3],[231,2],[256,1],[258,1],[270,1],[300,1],[345,2],[410,1],[419,2],[422,2],[442,1],[444,1],[459,1],[461,1],[511,2],[531,1],[533,1],[583,2],[586,2],[589,1],[591,1],[627,1],[640,1],[642,1],[655,1],[657,1],[676,1],[678,1],[690,1],[803,1],[810,1],[812,1],[814,3],[848,2],[873,1],[875,1],[887,1],[917,1],[962,2],[1027,1],[1036,2],[1039,2],[1059,1],[1061,1],[1076,1],[1078,1],[1128,2],[1148,1],[1150,1],[1200,2],[1203,2],[1206,2],[1209,1]]},"790":{"position":[[23,1],[53,1],[87,1],[121,3],[125,1],[171,2],[178,1],[215,1],[228,1],[258,1],[292,1],[326,3],[330,1],[376,2],[384,1]]},"792":{"position":[[23,1],[25,1],[41,1],[43,1],[54,1],[56,1],[78,2],[81,2],[84,1],[86,1],[123,1],[136,1],[138,1],[154,1],[156,1],[167,1],[169,1],[191,2],[194,2],[197,2],[200,1]]},"796":{"position":[[23,1],[25,1],[35,1],[37,1],[46,1],[48,3],[58,1],[60,3],[64,2],[67,1],[69,1],[101,1],[103,1],[113,1],[115,1],[124,1],[126,3],[136,1],[138,3],[142,2],[145,2],[148,1]]},"798":{"position":[[23,1],[25,1],[44,1],[46,1],[55,2],[58,1],[60,1],[102,1],[104,1],[123,1],[125,1],[134,2],[137,2],[140,1]]},"802":{"position":[[230,1]]},"804":{"position":[[23,1],[25,1],[44,1],[46,1],[54,1],[56,1],[58,1],[100,1],[102,1],[121,1],[123,1],[131,1],[133,2],[136,1]]},"806":{"position":[[23,1],[25,1],[35,1],[37,1],[48,1],[50,1],[60,1],[66,2],[81,2],[97,1],[99,1],[109,1],[115,2],[134,2],[143,1],[145,1],[155,1],[163,2],[166,2],[169,1],[171,1],[203,1],[205,1],[215,1],[217,1],[228,1],[230,1],[240,1],[246,2],[261,2],[277,1],[279,1],[289,1],[295,2],[314,2],[323,1],[325,1],[335,1],[343,2],[346,2],[349,2],[352,1]]},"808":{"position":[[23,1],[25,1],[44,1],[46,1],[73,2],[76,1],[78,1],[109,1],[111,1],[130,1],[132,1],[159,2],[162,2],[165,1]]},"810":{"position":[[23,1],[29,1],[84,1]]},"812":{"position":[[23,1]]},"814":{"position":[[23,1],[29,1],[67,1],[69,1],[89,1],[91,1],[110,2],[113,2],[116,1]]},"816":{"position":[[23,1],[46,1],[80,1],[82,1],[89,1],[113,1],[141,1],[143,3],[147,1],[153,1],[189,1],[202,1],[225,1],[259,1],[261,1],[268,1],[292,1],[320,1],[322,3],[326,1],[333,1]]},"818":{"position":[[23,1],[53,1],[87,1],[105,2],[234,1],[271,1],[284,1],[314,1],[348,1],[366,2],[496,1]]},"820":{"position":[[23,1],[25,1],[41,1],[43,1],[49,1],[51,1],[61,2],[64,2],[67,1],[69,1],[106,1],[119,1],[121,1],[137,1],[139,1],[145,1],[147,1],[157,2],[160,2],[163,2],[166,1]]},"822":{"position":[[23,1],[25,1],[44,1],[46,1],[52,1],[54,1],[71,2],[74,2],[77,1],[79,1],[115,1],[128,1],[130,1],[149,1],[151,1],[157,1],[159,1],[176,2],[179,2],[182,2],[185,1]]},"824":{"position":[[23,1],[25,1],[36,1],[38,1],[76,1],[78,1],[98,1],[100,1],[119,2],[122,2],[125,2],[128,1],[130,1],[165,1],[186,1],[188,1],[243,2],[251,1],[253,1],[264,1],[266,1],[304,1],[306,1],[326,1],[328,1],[347,2],[350,2],[353,2],[356,2],[359,1]]},"828":{"position":[[235,1],[337,1]]},"830":{"position":[[23,1],[25,1],[44,1],[46,1],[63,1],[65,1],[67,1],[109,1],[111,1],[130,1],[132,1],[149,1],[151,2],[154,1]]},"832":{"position":[[23,1],[25,1],[35,1],[37,1],[44,1],[46,1],[56,1],[58,1],[71,1],[84,2],[100,1],[102,1],[113,1],[115,1],[126,1],[137,2],[140,2],[148,1],[150,1],[152,1],[219,1],[241,2],[244,2],[247,2],[259,1],[261,1],[268,1],[270,1],[272,1],[339,1],[361,2],[364,2],[367,2],[370,2],[379,1],[381,1],[390,1],[523,1],[547,2],[550,1],[552,1],[584,1],[586,1],[596,1],[598,1],[605,1],[607,1],[617,1],[619,1],[632,1],[645,2],[661,1],[663,1],[674,1],[676,1],[687,1],[698,2],[701,2],[709,1],[711,1],[713,1],[780,1],[802,2],[805,2],[808,2],[820,1],[822,1],[829,1],[831,1],[833,1],[900,1],[922,2],[925,2],[928,2],[931,2],[940,1],[942,1],[951,1],[1084,1],[1108,2],[1111,2],[1114,1]]},"834":{"position":[[23,1],[57,1],[59,1],[118,1],[177,1],[203,2],[235,1],[244,2],[261,2],[277,1],[309,1],[343,1],[345,1],[404,1],[463,1],[489,2],[521,1],[530,2],[547,2],[564,1]]},"836":{"position":[[23,1],[29,1],[62,1]]},"838":{"position":[[23,1],[25,2],[28,1],[85,1],[87,1],[89,1],[163,1],[184,1],[195,2],[198,1],[271,1],[291,1],[302,2],[305,2],[315,1],[380,1]]},"840":{"position":[[23,1],[25,1],[35,1],[37,1],[70,1],[78,2],[81,1],[83,1],[125,1],[146,1],[148,1],[158,1],[160,1],[193,1],[201,2],[204,2],[281,1],[298,1],[300,1],[302,1],[347,1],[373,1],[384,1],[386,2],[389,1]]},"842":{"position":[[23,1],[25,1],[36,1],[38,1],[59,1],[61,1],[132,1],[154,1],[176,2],[179,2],[182,1],[184,1],[219,1],[240,1],[242,1],[275,2],[283,1],[285,1],[296,1],[298,1],[319,1],[321,1],[392,1],[414,1],[436,2],[439,2],[442,2],[445,1]]},"844":{"position":[[23,1],[29,1],[65,1],[86,1],[88,1],[145,1],[147,1],[149,1],[223,1],[244,1],[255,2],[258,1],[331,1],[351,1],[362,2],[365,2],[375,1],[440,2],[443,1]]},"846":{"position":[[23,1],[62,1],[86,2],[136,1],[167,1],[180,1],[219,1],[243,2],[294,1]]},"848":{"position":[[78,1],[80,1],[91,1],[93,1],[102,1],[120,2],[123,1],[125,1],[168,1],[181,1],[183,1],[194,1],[196,1],[205,1],[223,2],[226,2],[229,1]]},"852":{"position":[[23,1],[25,1],[93,1],[95,1],[97,1],[108,1],[120,2],[128,1],[130,1],[144,1],[358,1],[367,1],[374,2],[432,1],[441,1],[448,2],[460,1],[499,1],[512,1],[514,1],[525,2],[528,1],[554,1],[562,2],[565,1],[591,1],[609,2],[612,1],[638,1],[649,2],[652,1],[678,1],[692,2],[695,1],[721,1],[730,2],[733,1],[759,1],[771,2],[774,1],[800,1],[809,2],[812,1],[838,1],[852,2],[855,1],[881,1],[892,2],[895,1],[921,1],[935,2],[938,1],[964,1],[982,2],[985,1],[1011,1],[1024,2],[1027,1],[1053,1],[1062,2],[1065,2],[1073,2],[1086,1],[1088,3],[1092,1],[1094,1],[1118,1],[1132,1],[1134,1],[1202,1],[1204,1],[1206,1],[1217,1],[1229,2],[1237,1],[1239,1],[1253,1],[1467,1],[1476,1],[1483,2],[1541,1],[1550,1],[1557,2],[1569,1],[1608,1],[1621,1],[1623,1],[1634,2],[1637,1],[1663,1],[1671,2],[1674,1],[1700,1],[1718,2],[1721,1],[1747,1],[1758,2],[1761,1],[1787,1],[1801,2],[1804,1],[1830,1],[1839,2],[1842,1],[1868,1],[1880,2],[1883,1],[1909,1],[1918,2],[1921,1],[1947,1],[1961,2],[1964,1],[1990,1],[2001,2],[2004,1],[2030,1],[2044,2],[2047,1],[2073,1],[2091,2],[2094,1],[2120,1],[2133,2],[2136,1],[2162,1],[2171,2],[2174,2],[2182,2],[2195,1],[2197,3],[2201,2],[2211,1],[2261,1],[2323,1],[2342,1]]},"854":{"position":[[23,1],[29,1],[46,1]]},"856":{"position":[[23,1],[25,1],[44,1],[46,1],[62,1],[64,1],[66,1],[108,1],[110,1],[129,1],[131,1],[147,1],[149,2],[152,1]]},"858":{"position":[[23,1],[25,1],[35,1],[37,1],[57,1],[59,1],[74,1],[76,1],[122,2],[125,2],[128,2],[131,1],[133,1],[165,1],[167,1],[177,1],[179,1],[199,1],[201,1],[216,1],[218,1],[264,2],[267,2],[270,2],[273,2],[276,1]]},"860":{"position":[[23,1],[29,1],[64,1]]},"862":{"position":[[23,1],[56,1],[74,2],[104,1],[111,1],[121,2],[128,1],[159,1],[180,1],[182,1],[199,2],[207,1],[240,1],[258,2],[288,1],[295,1],[305,2],[313,1]]},"864":{"position":[[23,1],[25,1],[36,1],[38,1],[61,1],[63,3],[67,2],[70,1],[72,1],[107,1],[128,1],[130,1],[165,2],[173,1],[175,1],[186,1],[188,1],[211,1],[213,3],[217,2],[220,2],[223,1]]},"868":{"position":[[228,1],[270,1]]},"870":{"position":[[23,1],[25,1],[44,1],[46,1],[55,1],[57,1],[59,1],[101,1],[103,1],[122,1],[124,1],[133,1],[135,2],[138,1]]},"872":{"position":[[23,1],[25,1],[35,1],[37,1],[48,1],[50,1],[60,1],[66,2],[81,2],[95,1],[97,1],[107,1],[113,2],[130,2],[141,1],[143,1],[307,1],[319,2],[340,2],[357,2],[371,1],[373,1],[383,1],[395,2],[412,2],[415,2],[418,1],[420,1],[475,1],[477,1],[487,1],[489,1],[500,1],[502,1],[512,1],[518,2],[533,2],[547,1],[549,1],[559,1],[565,2],[582,2],[593,1],[595,1],[759,1],[771,2],[792,2],[809,2],[823,1],[825,1],[835,1],[847,2],[864,2],[867,2],[870,2],[873,1]]},"874":{"position":[[23,1],[25,1],[44,1],[46,1],[76,1],[78,1],[80,1],[111,1],[113,1],[132,1],[134,1],[164,1],[166,2],[169,1]]},"876":{"position":[[23,1],[25,2],[28,1],[61,1],[107,1]]},"878":{"position":[[23,1],[29,1],[58,1]]},"880":{"position":[[23,1],[29,1],[65,1],[86,1],[88,1],[121,1],[167,2],[170,1]]},"882":{"position":[[23,1],[25,1],[44,1],[46,1],[53,1],[55,1],[67,2],[76,1],[78,1],[93,2],[96,2],[99,1],[101,1],[137,1],[150,1],[152,1],[171,1],[173,1],[180,1],[182,1],[194,2],[203,1],[205,1],[220,2],[223,2],[226,2],[229,1]]},"884":{"position":[[23,1],[25,1],[36,1],[38,1],[58,1],[60,1],[175,1],[255,2],[266,2],[269,2],[272,1],[274,1],[309,1],[330,1],[332,1],[361,2],[369,1],[371,1],[382,1],[384,1],[404,1],[406,1],[521,1],[601,2],[612,2],[615,2],[618,2],[621,1]]},"888":{"position":[[23,1],[25,1],[44,1],[46,1],[56,1],[58,1],[60,1],[102,1],[104,1],[123,1],[125,1],[135,1],[137,2],[140,1]]},"890":{"position":[[23,1],[56,1],[135,1],[166,1],[168,1],[189,1],[219,1],[261,1],[286,1],[319,1],[344,1],[346,1],[451,2],[472,1],[491,1],[517,1],[629,1],[669,1],[671,1],[698,2],[706,1],[708,1],[710,1],[797,1],[818,2],[821,1],[894,1],[922,2],[925,1],[998,1],[1026,2],[1029,2],[1035,1],[1037,1],[1062,2],[1070,1],[1103,1],[1182,1],[1213,1],[1215,1],[1236,1],[1266,1],[1308,1],[1333,1],[1366,1],[1391,1],[1393,1],[1498,2],[1519,1],[1538,1],[1564,1],[1684,1],[1740,1],[1785,1],[1793,1],[1800,2],[1843,1],[1853,1],[1873,1],[1951,1],[1972,2],[1980,1]]},"892":{"position":[[23,1],[29,1],[56,1]]},"894":{"position":[[23,1],[64,1],[106,1],[108,1],[110,1],[117,1],[136,1],[153,1],[175,1],[177,1],[187,1],[213,1],[215,1],[253,2],[283,2],[286,2],[289,1],[296,1],[315,1],[332,1],[356,1],[358,1],[368,1],[384,2],[387,2],[390,1],[396,1],[432,1],[445,1],[486,1],[528,1],[530,1],[532,1],[539,1],[558,1],[575,1],[597,1],[599,1],[609,1],[635,1],[637,1],[675,2],[705,2],[708,2],[711,1],[718,1],[737,1],[754,1],[778,1],[780,1],[790,1],[806,2],[809,2],[812,1],[819,1]]},"900":{"position":[[23,1],[25,1],[44,1],[46,1],[57,1],[59,1],[61,1],[103,1],[105,1],[124,1],[126,1],[137,1],[139,2],[142,1]]},"902":{"position":[[35,1],[37,1],[47,1],[49,1],[58,1],[60,1],[67,1],[69,1],[71,1],[138,1],[160,2],[163,2],[166,2],[169,2],[172,1],[174,1],[206,1],[208,1],[218,1],[220,1],[229,1],[231,1],[238,1],[240,1],[242,1],[309,1],[331,2],[334,2],[337,2],[340,2],[343,2],[346,1]]},"904":{"position":[[49,1],[145,1],[147,1],[154,1],[193,1],[322,1],[330,2],[333,2],[340,1],[372,1],[468,1],[470,1],[477,1],[516,1],[645,1],[653,2],[656,2],[664,1]]},"906":{"position":[[23,1],[114,1],[141,2],[173,1],[175,1],[188,1],[198,1],[221,1],[312,1],[339,2],[371,1],[373,1],[386,1],[397,1]]},"910":{"position":[[330,1]]},"912":{"position":[[42,1],[44,1],[57,1],[59,1],[68,1],[70,1],[80,1],[88,2],[91,2],[98,1],[100,1],[110,1],[126,1],[145,1],[159,1],[167,2],[170,1],[172,1],[202,1],[204,1],[227,2],[235,1],[237,1],[250,1],[252,1],[261,1],[263,1],[273,1],[281,2],[284,2],[291,1],[293,1],[303,1],[319,1],[338,1],[352,1],[360,2],[363,2],[366,1]]},"914":{"position":[[9,1],[56,1],[58,1],[77,1],[79,1],[95,1],[97,1],[99,1],[141,1],[143,1],[162,1],[164,1],[180,1],[182,2],[185,1]]},"916":{"position":[[23,1],[25,1],[34,1],[36,1],[48,1],[149,1],[156,1],[180,1],[188,2],[272,1],[279,1],[308,1],[316,2],[341,1],[343,1],[410,1],[412,1],[420,1],[422,1],[436,1],[465,1],[486,1],[488,1],[497,1],[505,2],[508,2],[575,1],[589,2],[666,1],[668,1],[677,1],[691,2],[711,2],[724,1],[726,1],[735,1],[743,2],[752,1],[754,1],[764,1],[766,1],[866,2],[993,1],[1005,2],[1008,2],[1011,2],[1014,2],[1017,1],[1019,1],[1047,1],[1049,1],[1058,2],[1066,1],[1068,1],[1077,1],[1079,1],[1091,1],[1192,1],[1199,1],[1223,1],[1231,2],[1315,1],[1322,1],[1351,1],[1359,2],[1384,1],[1386,1],[1453,1],[1455,1],[1463,1],[1465,1],[1479,1],[1508,1],[1529,1],[1531,1],[1540,1],[1548,2],[1551,2],[1618,1],[1632,2],[1709,1],[1711,1],[1720,1],[1734,2],[1754,2],[1767,1],[1769,1],[1778,1],[1786,2],[1795,1],[1797,1],[1807,1],[1809,1],[1909,2],[2036,1],[2048,2],[2051,2],[2054,2],[2057,2],[2060,2],[2070,1],[2139,1],[2191,1],[2222,2],[2274,1],[2320,2],[2350,1],[2352,1],[2362,1],[2441,1],[2466,1],[2518,3],[2530,3],[2572,2],[2690,1],[2698,1],[2715,1],[2717,1],[2728,1]]},"918":{"position":[[35,2],[61,1],[63,1],[73,1],[75,1],[86,1],[88,1],[98,1],[112,2],[127,2],[144,1],[146,1],[156,1],[164,2],[167,2],[170,1],[172,1],[204,1],[206,1],[216,1],[218,1],[229,1],[231,1],[241,1],[255,2],[270,2],[287,1],[289,1],[299,1],[307,2],[310,2],[313,2],[316,1]]},"920":{"position":[[57,1],[99,1],[126,2],[168,1],[181,2],[199,2],[257,1],[267,2],[278,1],[313,1],[326,1],[368,1],[395,2],[437,1],[450,2],[468,2],[526,1],[536,2],[548,1]]},"922":{"position":[[23,1],[25,1],[36,1],[38,1],[65,1],[67,3],[71,2],[74,1],[76,1],[111,1],[124,1],[126,1],[137,1],[139,1],[166,1],[168,3],[172,2],[175,2],[178,1]]},"926":{"position":[[283,1],[285,1],[294,1],[353,1],[404,1],[480,1],[482,1],[487,1],[494,1],[507,1],[554,2],[560,1],[567,1],[584,1],[631,2],[637,1],[749,1],[751,5],[770,2],[776,3]]},"928":{"position":[[23,1],[29,1],[55,1],[63,1]]},"930":{"position":[[23,1],[29,1],[84,1],[103,1],[118,1],[171,1],[181,1],[200,1],[268,1],[351,1],[389,1],[396,1],[410,1],[501,1],[508,1],[534,2],[605,1],[615,2],[627,2],[635,1]]},"932":{"position":[[23,1],[29,1],[67,1],[69,1],[131,2],[147,1],[168,1],[170,1],[172,1],[215,1],[231,2],[234,2],[242,1],[271,1],[335,1],[365,1],[377,2],[424,1],[462,1],[474,2],[521,1],[556,1],[856,1],[869,1]]},"934":{"position":[[23,1],[29,1],[71,1]]},"936":{"position":[[8,1],[44,1],[46,1],[65,1],[67,1],[80,1],[82,1],[84,1],[115,1],[117,1],[136,1],[138,1],[151,1],[153,2],[156,1]]},"938":{"position":[[34,1],[36,1],[55,1],[57,1],[65,1],[67,1],[69,1],[115,1],[128,1],[130,1],[149,1],[151,1],[159,1],[161,2],[164,1]]},"940":{"position":[[40,1],[71,1],[87,2],[115,1],[123,1],[140,1],[157,1],[171,1],[183,1],[217,2],[232,1],[249,2],[278,1],[286,1],[310,1],[321,2],[328,1],[358,1],[371,1],[402,1],[418,2],[446,1],[454,1],[471,1],[488,1],[502,1],[514,1],[548,2],[563,1],[580,2],[609,1],[617,1],[641,1],[652,2],[660,1]]},"942":{"position":[[45,1],[47,1],[57,1],[59,1],[69,1],[71,1],[82,2],[95,1],[97,1],[106,1],[108,1],[115,1],[134,1],[166,2],[169,2],[172,2],[175,1],[177,1],[208,1],[221,1],[223,1],[233,1],[235,1],[245,1],[247,1],[258,2],[271,1],[273,1],[282,1],[284,1],[291,1],[310,1],[342,2],[345,2],[348,2],[351,2],[367,1],[369,1],[411,2],[414,1]]},"944":{"position":[[23,1],[97,1],[125,2],[185,1],[222,1],[235,1],[309,1],[337,2],[398,1]]},"946":{"position":[[23,1],[68,1],[70,1],[77,1],[79,1],[91,1],[109,1],[111,1],[113,2],[116,1],[175,1],[206,2],[269,1],[305,1],[318,1],[363,1],[365,1],[372,1],[374,1],[386,1],[404,1],[406,1],[408,2],[411,1],[470,1],[501,2],[565,1]]},"950":{"position":[[23,1],[25,1],[35,1],[37,1],[51,1],[53,1],[119,1],[121,1],[134,2],[205,1],[207,3],[282,1],[284,2],[346,1],[348,1],[367,1],[369,1],[380,1],[389,1],[391,1],[504,1],[506,1],[520,1],[522,1],[541,1],[543,1],[552,1],[574,1],[593,1],[607,2],[610,2],[613,2],[616,2],[619,2],[628,1],[630,1],[644,1],[679,1],[699,2],[862,1],[946,3],[1061,3],[1070,2],[1073,1],[1075,1],[1107,1],[1109,1],[1119,1],[1121,1],[1135,1],[1137,1],[1203,1],[1205,1],[1218,2],[1289,1],[1291,3],[1366,1],[1368,2],[1430,1],[1432,1],[1451,1],[1453,1],[1464,1],[1473,1],[1475,1],[1588,1],[1590,1],[1604,1],[1606,1],[1625,1],[1627,1],[1636,1],[1658,1],[1677,1],[1691,2],[1694,2],[1697,2],[1700,2],[1703,2],[1712,1],[1714,1],[1728,1],[1763,1],[1783,2],[1946,1],[2030,3],[2145,3],[2154,2],[2157,2],[2160,1]]},"952":{"position":[[23,1],[25,2],[28,1],[77,1],[79,2],[82,1]]},"954":{"position":[[23,1],[102,1],[150,1],[288,1],[319,1],[340,1],[342,1],[344,1],[393,1],[395,2],[398,2],[401,2],[409,1],[488,1],[536,1],[675,1]]},"958":{"position":[[23,1],[25,1],[44,1],[46,1],[57,1],[59,1],[61,1],[87,1],[89,1],[108,1],[110,1],[121,1],[123,2],[126,1]]},"960":{"position":[[23,1],[25,1],[35,1],[37,1],[48,1],[50,3],[54,2],[57,1],[59,1],[88,1],[101,1],[103,1],[113,1],[115,1],[126,1],[128,3],[132,2],[135,2],[138,1]]},"964":{"position":[[54,1],[89,1],[109,2],[143,2],[198,1],[218,2],[257,2],[313,1],[323,2],[354,1],[356,1],[366,1],[376,1],[418,1],[453,1],[473,2],[507,2],[562,1],[582,2],[621,2],[677,1],[687,2],[718,1],[720,1],[730,1],[741,1]]},"966":{"position":[[23,1],[25,2],[28,1],[52,1],[112,1],[155,1],[157,1],[165,1],[167,1],[173,1],[175,1],[252,1],[283,2],[326,1],[328,1],[330,1],[350,3],[359,1],[375,1],[383,2],[386,2],[389,1]]},"968":{"position":[[36,2],[62,1],[64,1],[74,1],[76,1],[85,1],[87,1],[94,1],[96,1],[98,1],[148,1],[172,1],[179,2],[182,2],[185,2],[188,2],[191,1],[193,1],[229,1],[242,1],[244,1],[254,1],[256,1],[265,1],[267,1],[274,1],[276,1],[278,1],[328,1],[352,1],[359,2],[362,2],[365,2],[368,2],[371,2],[374,1]]},"972":{"position":[[23,1],[25,1],[44,1],[46,1],[67,1],[69,1],[71,1],[113,1],[115,1],[134,1],[136,1],[157,1],[159,2],[162,1]]},"974":{"position":[[23,1],[25,1],[35,1],[37,1],[51,1],[53,3],[57,2],[60,1],[62,1],[94,1],[96,1],[106,1],[108,1],[122,1],[124,3],[128,2],[131,2],[134,1]]},"976":{"position":[[60,1],[62,1],[81,1],[83,1],[94,1],[96,1],[98,1],[129,1],[131,1],[150,1],[152,1],[163,1],[165,2],[168,1]]},"978":{"position":[[23,1],[25,2],[28,1],[74,1],[76,1],[97,2],[107,1],[228,1]]},"980":{"position":[[23,1],[25,2],[28,1],[71,1],[73,1],[94,2],[104,1],[221,1]]},"982":{"position":[[23,1],[57,1],[91,1],[125,3],[129,1],[259,2],[266,1],[303,1],[316,1],[350,1],[384,1],[418,3],[422,1],[552,2],[560,1]]},"984":{"position":[[23,1],[25,1],[41,1],[43,1],[55,1],[57,1],[80,2],[86,1],[88,1],[111,2],[114,2],[117,1],[119,1],[156,1],[169,1],[171,1],[187,1],[189,1],[201,1],[203,1],[226,2],[232,1],[234,1],[257,2],[260,2],[263,2],[266,1]]},"986":{"position":[[23,1],[25,1],[44,1],[46,1],[52,1],[54,1],[69,2],[82,1],[84,1],[102,2],[108,1],[110,1],[128,2],[150,1],[152,1],[170,2],[173,2],[176,1],[178,1],[214,1],[227,1],[229,1],[248,1],[250,1],[256,1],[258,1],[273,2],[286,1],[288,1],[306,2],[312,1],[314,1],[332,2],[354,1],[356,1],[374,2],[377,2],[380,2],[383,1]]},"988":{"position":[[23,1],[29,1],[73,1],[87,1],[89,1],[91,1],[137,1],[139,1],[160,2],[170,1],[291,2],[294,1],[337,1],[339,1],[360,2],[370,1],[487,2],[490,2],[493,1]]},"992":{"position":[[23,1]]},"996":{"position":[[23,1],[25,1],[44,1],[46,1],[55,1],[57,1],[59,1],[101,1],[103,1],[122,1],[124,1],[133,1],[135,2],[138,1]]},"998":{"position":[[23,1],[25,1],[44,1],[46,1],[75,2],[78,1],[80,1],[111,1],[113,1],[132,1],[134,1],[163,2],[166,2],[169,1]]},"1000":{"position":[[23,1],[25,1],[35,1],[37,1],[62,1],[64,1],[74,1],[82,2],[85,2],[88,1],[90,1],[122,1],[124,1],[134,1],[136,1],[161,1],[163,1],[173,1],[181,2],[184,2],[187,2],[190,1]]},"1002":{"position":[[23,1],[53,1],[87,1],[105,2],[222,1],[259,1],[272,1],[302,1],[336,1],[354,2],[472,1]]},"1004":{"position":[[23,1],[25,1],[41,1],[43,1],[50,1],[52,1],[63,2],[66,2],[69,1],[71,1],[108,1],[121,1],[123,1],[139,1],[141,1],[148,1],[150,1],[161,2],[164,2],[167,2],[170,1]]},"1006":{"position":[[23,1],[25,1],[44,1],[46,1],[53,1],[55,1],[73,2],[76,2],[79,1],[81,1],[117,1],[130,1],[132,1],[151,1],[153,1],[160,1],[162,1],[180,2],[183,2],[186,2],[189,1]]},"1010":{"position":[[23,1],[25,1],[44,1],[46,1],[56,2],[59,1],[61,1],[103,1],[105,1],[124,1],[126,1],[136,2],[139,2],[142,1]]},"1012":{"position":[[23,1],[25,1],[35,1],[37,1],[48,1],[50,1],[57,1],[59,1],[61,1],[103,1],[150,1],[217,1],[249,1],[251,1],[262,2],[265,2],[299,1],[301,2],[325,1],[344,2],[347,2],[370,1],[434,1],[436,1],[452,1],[466,2],[469,2],[472,2],[475,1],[477,1],[509,1],[511,1],[521,1],[523,1],[534,1],[536,1],[543,1],[545,1],[547,1],[589,1],[636,1],[703,1],[735,1],[737,1],[748,2],[751,2],[785,1],[787,2],[811,1],[830,2],[833,2],[856,1],[920,1],[922,1],[938,1],[952,2],[955,2],[958,2],[961,2],[964,1]]},"1014":{"position":[[23,1],[25,1],[44,1],[46,1],[57,1],[71,2],[74,1],[76,1],[114,1],[116,1],[177,2],[185,1],[187,1],[189,1],[208,1],[255,1],[281,2],[284,2],[292,1],[294,1],[313,1],[315,1],[326,1],[340,2],[343,2],[346,1]]},"1016":{"position":[[23,1],[25,1],[32,1],[34,1],[42,1],[44,1],[46,3],[55,3],[62,3],[66,2],[69,2],[72,1],[74,1],[107,1],[109,1],[116,1],[118,1],[126,1],[128,1],[130,3],[139,3],[146,3],[150,2],[153,2],[156,2],[159,1]]},"1018":{"position":[[23,1],[25,1],[44,1],[46,1],[54,1],[56,1],[81,1],[92,2],[95,2],[98,1],[100,1],[136,1],[149,1],[151,1],[170,1],[172,1],[180,1],[182,1],[207,1],[218,2],[221,2],[224,2],[227,1]]},"1024":{"position":[[23,1],[25,1],[44,1],[46,1],[61,1],[63,1],[65,1],[107,1],[109,1],[128,1],[130,1],[145,1],[147,2],[150,1]]},"1026":{"position":[[39,1],[41,1],[51,1],[53,1],[62,1],[64,3],[74,1],[76,3],[80,2],[83,1],[85,1],[117,1],[119,1],[129,1],[131,1],[140,1],[142,3],[152,1],[154,3],[158,2],[161,2],[164,1]]},"1028":{"position":[[49,1],[195,1],[197,1],[204,1],[241,1],[336,1],[338,1],[346,2],[365,1],[418,1],[426,2],[429,2],[436,1],[468,1],[614,1],[616,1],[623,1],[660,1],[755,1],[757,1],[765,2],[784,1],[837,1],[845,2],[848,2],[856,1]]},"1032":{"position":[[43,1],[49,1],[80,1],[96,1],[136,1]]},"1034":{"position":[[49,1],[51,1],[100,1],[102,1],[111,1],[113,1],[202,1],[204,1],[219,1],[221,1],[236,1],[238,1],[260,1],[285,1],[293,2],[296,2],[299,2],[351,1],[410,1],[478,3],[520,1],[536,1],[538,1],[547,1],[549,1],[561,1],[563,1],[573,1],[581,1],[583,2],[591,1],[593,1],[607,1],[623,1],[625,1],[634,1],[642,2],[654,1],[674,1],[676,1],[777,1],[865,1],[867,3],[871,2],[874,2],[877,2],[880,2],[883,2],[886,1],[888,1],[920,1],[922,1],[971,1],[973,1],[982,1],[984,1],[1073,1],[1075,1],[1090,1],[1092,1],[1107,1],[1109,1],[1131,1],[1156,1],[1164,2],[1167,2],[1170,2],[1222,1],[1281,1],[1349,3],[1391,1],[1407,1],[1409,1],[1418,1],[1420,1],[1432,1],[1434,1],[1444,1],[1452,1],[1454,2],[1462,1],[1464,1],[1478,1],[1494,1],[1496,1],[1505,1],[1513,2],[1525,1],[1545,1],[1547,1],[1648,1],[1736,1],[1738,3],[1742,2],[1745,2],[1748,2],[1751,2],[1754,2],[1757,2],[1760,1]]},"1038":{"position":[[184,1]]},"1040":{"position":[[23,1],[25,1],[74,1],[76,1],[85,1],[87,1],[98,1],[100,1],[211,1],[213,1],[220,1],[229,2],[239,1],[254,2],[257,2],[260,2],[269,1],[271,1],[280,1],[344,1],[375,1],[400,1],[418,1],[432,1],[444,2],[526,2],[529,1],[531,1],[601,1],[603,1],[652,1],[654,1],[663,1],[665,1],[676,1],[678,1],[789,1],[791,1],[798,1],[807,2],[817,1],[832,2],[835,2],[838,2],[847,1],[849,1],[858,1],[922,1],[953,1],[978,1],[996,1],[1010,1],[1022,2],[1104,2],[1107,2],[1110,1]]},"1044":{"position":[[23,1],[25,1],[44,1],[46,1],[54,1],[56,1],[58,1],[100,1],[102,1],[121,1],[123,1],[131,1],[133,2],[136,1]]},"1046":{"position":[[23,1],[25,1],[35,1],[37,1],[43,1],[45,3],[49,2],[52,1],[54,1],[86,1],[88,1],[98,1],[100,1],[106,1],[108,3],[112,2],[115,2],[118,1]]},"1048":{"position":[[23,1],[29,1],[59,1]]},"1050":{"position":[[23,1],[25,1],[36,1],[38,1],[56,1],[58,3],[62,2],[65,1],[67,1],[102,1],[123,1],[125,1],[155,2],[163,1],[165,1],[176,1],[178,1],[196,1],[198,3],[202,2],[205,2],[208,1]]},"1054":{"position":[[23,1],[29,1],[69,1],[71,1],[73,1],[101,1],[119,1],[121,3],[125,2],[128,2],[131,1]]},"1056":{"position":[[23,1],[25,2],[28,1],[56,1],[74,1],[76,3],[80,1]]},"1060":{"position":[[49,1],[51,1],[100,1],[102,1],[332,1],[334,1],[344,1],[353,2],[362,1],[364,1],[374,1],[383,2],[392,1],[394,1],[491,1],[493,1],[597,2],[609,1],[611,1],[637,1],[651,1],[653,1],[682,1],[711,1],[732,1],[734,1],[755,1],[772,1],[774,1],[803,1],[811,2],[814,2],[817,2],[831,1],[833,1],[859,1],[861,1],[871,1],[882,2],[893,1],[895,1],[919,1],[927,2],[941,1],[943,1],[962,1],[964,1],[974,1],[981,2],[1008,1],[1010,1],[1020,1],[1027,2],[1045,1],[1047,1],[1057,1],[1070,2],[1088,1],[1090,1],[1100,1],[1107,2],[1135,1],[1137,1],[1147,1],[1154,2],[1171,1],[1173,1],[1183,1],[1191,2],[1194,2],[1197,2],[1200,2],[1208,1],[1210,1],[1212,1],[1241,1],[1287,1],[1368,1],[1415,1],[1417,1],[1460,2],[1468,1],[1476,2],[1489,1],[1517,2],[1520,1],[1569,1],[1617,1],[1619,1],[1643,2],[1651,1],[1659,2],[1672,1],[1693,2],[1696,1],[1763,1],[1785,2],[1788,1],[1860,1],[1885,2],[1888,1],[1955,1],[1982,2],[1985,1],[2046,1],[2071,2],[2074,1],[2131,1],[2170,2],[2183,1],[2216,2],[2219,2],[2222,2],[2225,2],[2234,1],[2236,1],[2466,1],[2522,1],[2578,1],[2691,1],[2734,1],[2828,1],[2839,1],[2879,1],[2900,1],[2928,2],[2931,2],[2949,2],[2960,2],[3047,2],[3074,1],[3146,2],[3292,1],[3377,1],[3474,1],[3484,1],[3513,1],[3515,1],[3542,2],[3545,2],[3564,1],[3631,1],[3641,1],[3683,1],[3685,1],[3726,1],[3733,1],[3752,1],[3771,1],[3788,1],[3812,1],[3825,1],[3845,1],[3860,1],[3885,1],[3890,2],[3893,2],[3896,2],[3949,1],[4034,1],[4043,1],[4085,1],[4128,7],[4141,2],[4218,1],[4255,1],[4289,2],[4292,4],[4308,1],[4318,2],[4489,1],[4520,3],[4578,3],[4587,2],[4590,1],[4592,1],[4624,1],[4626,1],[4675,1],[4677,1],[4907,1],[4909,1],[4919,1],[4928,2],[4937,1],[4939,1],[4949,1],[4958,2],[4967,1],[4969,1],[5066,1],[5068,1],[5172,2],[5184,1],[5186,1],[5212,1],[5226,1],[5228,1],[5257,1],[5286,1],[5307,1],[5309,1],[5330,1],[5347,1],[5349,1],[5378,1],[5386,2],[5389,2],[5392,2],[5406,1],[5408,1],[5434,1],[5436,1],[5446,1],[5457,2],[5468,1],[5470,1],[5494,1],[5502,2],[5516,1],[5518,1],[5537,1],[5539,1],[5549,1],[5556,2],[5583,1],[5585,1],[5595,1],[5602,2],[5620,1],[5622,1],[5632,1],[5645,2],[5663,1],[5665,1],[5675,1],[5682,2],[5710,1],[5712,1],[5722,1],[5729,2],[5746,1],[5748,1],[5758,1],[5766,2],[5769,2],[5772,2],[5775,2],[5783,1],[5785,1],[5787,1],[5816,1],[5862,1],[5943,1],[5990,1],[5992,1],[6035,2],[6043,1],[6051,2],[6064,1],[6092,2],[6095,1],[6144,1],[6192,1],[6194,1],[6218,2],[6226,1],[6234,2],[6247,1],[6268,2],[6271,1],[6338,1],[6360,2],[6363,1],[6435,1],[6460,2],[6463,1],[6530,1],[6557,2],[6560,1],[6621,1],[6646,2],[6649,1],[6706,1],[6745,2],[6758,1],[6791,2],[6794,2],[6797,2],[6800,2],[6809,1],[6811,1],[7041,1],[7097,1],[7153,1],[7266,1],[7309,1],[7403,1],[7414,1],[7454,1],[7475,1],[7503,2],[7506,2],[7524,2],[7535,2],[7622,2],[7649,1],[7721,2],[7867,1],[7952,1],[8049,1],[8059,1],[8088,1],[8090,1],[8117,2],[8120,2],[8139,1],[8206,1],[8216,1],[8258,1],[8260,1],[8301,1],[8308,1],[8327,1],[8346,1],[8363,1],[8387,1],[8400,1],[8420,1],[8435,1],[8460,1],[8465,2],[8468,2],[8471,2],[8524,1],[8609,1],[8618,1],[8660,1],[8703,7],[8716,2],[8793,1],[8830,1],[8864,2],[8867,4],[8883,1],[8893,2],[9064,1],[9095,3],[9153,3],[9162,2],[9165,2],[9168,1]]},"1062":{"position":[[23,1],[65,1],[92,2],[155,1],[186,1],[228,1],[255,2],[319,1]]},"1064":{"position":[[38,1],[40,1],[47,1],[49,1],[68,1],[70,1],[78,1],[80,5],[89,1],[109,2],[130,1],[132,1],[140,1],[142,4],[150,1],[169,2],[188,1],[190,1],[198,1],[200,4],[208,1],[228,2],[247,1],[249,1],[257,1],[259,4],[267,1],[285,2],[309,1],[311,1],[319,1],[321,5],[330,1],[350,2],[370,1],[372,1],[380,1],[382,4],[390,1],[409,2],[430,1],[432,1],[440,1],[442,4],[450,1],[469,2],[496,1],[498,1],[506,1],[508,4],[516,1],[535,2],[552,1],[554,1],[562,1],[564,4],[572,1],[590,2],[593,2],[596,1],[598,1],[629,1],[631,1],[638,1],[640,1],[659,1],[661,1],[669,1],[671,5],[680,1],[700,2],[721,1],[723,1],[731,1],[733,4],[741,1],[760,2],[779,1],[781,1],[789,1],[791,4],[799,1],[819,2],[838,1],[840,1],[848,1],[850,4],[858,1],[876,2],[900,1],[902,1],[910,1],[912,5],[921,1],[941,2],[961,1],[963,1],[971,1],[973,4],[981,1],[1000,2],[1021,1],[1023,1],[1031,1],[1033,4],[1041,1],[1060,2],[1087,1],[1089,1],[1097,1],[1099,4],[1107,1],[1126,2],[1143,1],[1145,1],[1153,1],[1155,4],[1163,1],[1181,2],[1184,2],[1187,2],[1190,1]]},"1066":{"position":[[23,1],[46,1],[121,2],[141,1],[148,1],[150,2],[221,1],[223,1],[230,1],[247,1],[267,1],[291,1],[293,1],[303,1],[330,1],[332,1],[344,2],[347,2],[350,1],[392,1],[490,1],[533,1],[569,1],[602,2],[705,1],[707,1],[774,1],[789,1],[850,1],[902,1],[1025,1],[1085,1],[1112,2],[1173,1],[1175,1],[1177,1],[1184,1],[1206,1],[1223,1],[1248,1],[1265,1],[1300,1],[1326,1],[1357,1],[1359,1],[1403,2],[1432,1],[1434,1],[1484,2],[1487,2],[1490,1],[1497,1],[1519,1],[1536,1],[1558,1],[1599,1],[1634,1],[1660,1],[1691,1],[1693,1],[1737,2],[1766,1],[1768,1],[1818,2],[1821,2],[1824,1],[1838,1],[1874,1],[1895,1],[1897,1],[1899,1],[1930,1],[1972,1],[1999,2],[2063,2],[2066,2],[2074,1],[2097,1],[2172,2],[2192,1],[2199,1],[2201,2],[2272,1],[2274,1],[2281,1],[2298,1],[2318,1],[2342,1],[2344,1],[2354,1],[2381,1],[2383,1],[2395,2],[2398,2],[2401,1],[2443,1],[2541,1],[2584,1],[2620,1],[2653,2],[2756,1],[2758,1],[2825,1],[2840,1],[2901,1],[2953,1],[3076,1],[3136,1],[3163,2],[3224,1],[3226,1],[3228,1],[3235,1],[3257,1],[3274,1],[3299,1],[3316,1],[3351,1],[3377,1],[3408,1],[3410,1],[3454,2],[3483,1],[3485,1],[3535,2],[3538,2],[3541,1],[3548,1],[3570,1],[3587,1],[3609,1],[3650,1],[3685,1],[3711,1],[3742,1],[3744,1],[3788,2],[3817,1],[3819,1],[3869,2],[3872,2],[3875,1],[3890,1]]},"1068":{"position":[[23,1],[25,1],[112,1],[114,1],[124,1],[126,1],[137,1],[139,2],[142,1],[144,1],[187,1],[200,1],[202,1],[289,1],[291,1],[301,1],[303,1],[314,1],[316,2],[319,2],[322,1]]},"1072":{"position":[[31,1],[61,1],[96,1],[220,1],[254,3],[258,1],[391,2],[398,1],[432,1],[459,1],[461,1],[476,2],[484,1],[599,1],[626,1],[691,1],[706,1],[756,1],[770,1],[808,2],[826,2],[842,1],[868,1],[958,2],[1031,2],[1049,1],[1079,1],[1114,1],[1238,1],[1272,3],[1276,1],[1409,2],[1417,1]]},"1074":{"position":[[23,1],[29,1],[44,1]]},"1076":{"position":[[158,1],[160,1],[193,2],[196,1],[227,1],[229,1],[240,1],[242,1],[262,1],[264,2],[267,2],[270,1]]},"1078":{"position":[[23,1],[25,1],[248,1],[250,3],[325,1],[327,1],[351,1],[353,1],[371,1],[373,1],[375,1],[381,1],[390,1],[402,1],[417,2],[438,1],[449,2],[455,2],[465,1],[467,1],[482,1],[489,2],[499,1],[501,1],[515,1],[522,2],[534,1],[536,1],[543,1],[623,1],[643,1],[651,2],[685,2],[688,1],[690,1],[729,1],[731,1],[757,2],[765,1],[767,1],[990,1],[992,3],[1067,1],[1069,1],[1093,1],[1095,1],[1113,1],[1115,1],[1117,1],[1123,1],[1132,1],[1144,1],[1159,2],[1180,1],[1191,2],[1197,2],[1207,1],[1209,1],[1224,1],[1231,2],[1241,1],[1243,1],[1257,1],[1264,2],[1276,1],[1278,1],[1285,1],[1365,1],[1385,1],[1393,2],[1427,2],[1430,2],[1440,1],[1477,1],[1557,1],[1559,1],[1568,1],[1683,1],[1715,1],[1731,1],[1748,1],[1766,3],[1790,2],[1793,2],[1859,1],[1879,2],[1985,1],[2029,1],[2108,1],[2142,1],[2152,1],[2165,3],[2182,1],[2243,2],[2292,1],[2301,1],[2351,1],[2426,2],[2472,2],[2524,1],[2526,2],[2572,3],[2593,2],[2626,2],[2650,1],[2691,1],[2696,1],[2719,2],[2747,1],[2779,2],[2838,1],[2966,1],[3025,1],[3063,1],[3065,2],[3073,2],[3076,1],[3130,1],[3135,1],[3167,1],[3241,1],[3243,1],[3259,3],[3268,1],[3280,1],[3349,1],[3378,2],[3381,1],[3465,1],[3488,2],[3491,1],[3569,1],[3602,2],[3605,1],[3671,1],[3697,2],[3700,1],[3771,1],[3794,2],[3797,1],[3870,1],[3899,2],[3902,1],[3968,1],[3987,1],[3994,2],[4007,1],[4033,2],[4036,1],[4114,1],[4148,2],[4151,1],[4218,1],[4237,2],[4240,1],[4329,1],[4356,2],[4359,2],[4362,1]]},"1080":{"position":[[23,1],[29,1],[55,1]]},"1082":{"position":[[23,1],[29,1],[65,1],[96,1],[98,1],[100,1],[164,1],[184,1],[202,2],[205,2],[208,1]]},"1086":{"position":[[23,1],[25,1],[37,1],[39,1],[49,1],[57,1],[59,1],[61,1],[89,1],[91,1],[103,1],[105,1],[115,1],[123,1],[125,1],[127,1]]},"1088":{"position":[[107,1],[136,1],[183,1],[185,2],[188,3],[192,6],[199,11],[211,6],[218,10],[229,4],[236,3],[240,20],[261,7],[269,11],[281,5],[289,3],[293,8],[302,5],[308,7],[316,3],[320,17],[340,3],[344,8],[353,5],[359,5],[365,4],[370,18],[391,11],[403,11],[415,3],[419,7],[427,6],[434,3],[438,3],[442,11],[454,11],[466,3],[470,5],[476,6],[483,3],[487,2],[519,1],[591,1],[593,1],[617,2],[620,1],[622,2],[625,1],[697,2],[700,1],[702,2],[705,1],[779,2],[782,1],[784,2],[787,1],[874,2],[877,1],[879,2],[882,1],[967,2],[970,1],[972,2],[975,1],[1057,2],[1060,1],[1062,2],[1065,1],[1158,2],[1161,1],[1163,2],[1166,1],[1230,3],[1234,1],[1236,2],[1239,1],[1290,2],[1293,1],[1295,2],[1298,1],[1325,1],[1400,1],[1441,1],[1496,1],[1546,1],[1596,1],[1641,1],[1666,1],[1696,1],[1718,1],[1731,1],[1745,1],[1774,1],[1821,1],[1823,2],[1826,3],[1830,6],[1837,11],[1849,6],[1856,10],[1867,4],[1874,3],[1878,20],[1899,7],[1907,11],[1919,5],[1927,3],[1931,8],[1940,5],[1946,7],[1954,3],[1958,17],[1978,3],[1982,8],[1991,5],[1997,5],[2003,4],[2008,18],[2029,11],[2041,11],[2053,3],[2057,7],[2065,6],[2072,3],[2076,3],[2080,11],[2092,11],[2104,3],[2108,5],[2114,6],[2121,3],[2125,2],[2157,1],[2229,1],[2231,1],[2255,2],[2258,1],[2260,2],[2263,1],[2335,2],[2338,1],[2340,2],[2343,1],[2417,2],[2420,1],[2422,2],[2425,1],[2512,2],[2515,1],[2517,2],[2520,1],[2605,2],[2608,1],[2610,2],[2613,1],[2695,2],[2698,1],[2700,2],[2703,1],[2796,2],[2799,1],[2801,2],[2804,1],[2868,3],[2872,1],[2874,2],[2877,1],[2928,2],[2931,1],[2933,2],[2936,1],[2963,1],[3038,1],[3079,1],[3134,1],[3184,1],[3234,1],[3279,1],[3312,1],[3409,2],[3476,1],[3483,1],[3499,1],[3524,1],[3565,2],[3647,1],[3654,1],[3670,1],[3699,1],[3724,1],[3759,1],[3791,1],[3797,1],[3804,1],[3840,1],[3842,2],[3859,1],[3861,2],[3877,2],[3880,3],[3884,2],[3899,2],[3902,1],[3915,1],[3917,2],[3923,2],[3963,2],[3971,1]]},"1092":{"position":[[78,1],[80,1],[89,1],[91,1],[101,1],[109,2],[112,1],[114,1],[136,1],[138,1],[147,1],[149,1],[159,1],[167,2],[170,2],[173,1]]},"1094":{"position":[[23,1],[57,1],[83,1],[156,1],[205,1],[215,1],[223,2],[259,1],[268,1],[270,1],[277,1],[279,4],[293,1],[295,4],[300,2],[309,1],[311,1],[324,1],[342,1],[350,2],[361,1],[363,1],[375,1],[377,1],[553,2],[556,2],[559,1],[565,1],[612,1],[631,1],[665,1],[691,1],[764,1],[813,1],[823,1],[831,2],[867,1],[876,1],[878,1],[885,1],[887,4],[901,1],[903,4],[908,2],[917,1],[919,1],[932,1],[950,1],[958,2],[969,1],[971,1],[983,1],[985,1],[1161,2],[1164,2],[1167,1],[1179,1],[1188,1]]},"1098":{"position":[[23,1],[25,1],[37,1],[39,1],[49,1],[57,1],[59,1],[61,1],[89,1],[91,1],[103,1],[105,1],[115,1],[123,1],[125,1],[127,1]]},"1100":{"position":[[23,1],[47,1],[49,2],[52,3],[56,6],[63,11],[75,6],[82,10],[93,4],[100,3],[104,20],[125,7],[133,11],[145,5],[153,3],[157,8],[166,5],[172,7],[180,3],[184,17],[204,3],[208,8],[217,5],[223,5],[229,4],[234,18],[255,11],[267,11],[279,3],[283,7],[291,6],[298,3],[302,3],[306,11],[318,11],[330,3],[334,5],[340,6],[347,3],[351,2],[359,1],[381,2],[389,2],[410,1],[412,1],[420,1],[435,1],[437,1],[564,1],[573,2],[583,1],[585,1],[594,1],[644,1],[646,1],[648,1],[657,1],[688,1],[690,1],[709,1],[711,2],[714,2],[721,1],[727,2],[730,1],[739,1],[746,1],[767,1],[769,1],[787,1],[789,2],[792,2],[799,1],[805,2],[808,1],[817,1],[858,1],[860,1],[882,1],[884,2],[887,2],[894,1],[900,2],[903,1],[912,1],[954,1],[956,1],[975,1],[977,2],[980,2],[987,1],[993,2],[996,1],[1005,1],[1049,1],[1051,1],[1067,1],[1069,2],[1072,2],[1079,1],[1085,2],[1088,1],[1097,1],[1141,1],[1143,1],[1168,1],[1170,2],[1173,2],[1180,1],[1186,2],[1189,1],[1198,1],[1219,1],[1221,1],[1242,1],[1244,2],[1247,2],[1254,1],[1260,2],[1263,1],[1272,1],[1287,1],[1289,1],[1303,1],[1305,3],[1309,2],[1316,1],[1322,2],[1325,1],[1334,1],[1391,1],[1393,1],[1407,1],[1409,2],[1412,2],[1419,1],[1425,2],[1428,2],[1438,1],[1463,1],[1498,1],[1530,1],[1536,1],[1543,1],[1557,1],[1559,2],[1576,1],[1578,2],[1594,2],[1597,3],[1601,2],[1616,2],[1619,1],[1632,1],[1634,2],[1640,2],[1648,1],[1655,2],[1658,1],[1719,1],[1733,2],[1749,2],[1789,1],[1791,1],[1856,2],[1912,1],[1922,1],[1971,1],[1988,1],[2063,1],[2071,1],[2085,2],[2098,2],[2121,1],[2154,1],[2292,1],[2316,1],[2318,2],[2321,3],[2325,6],[2332,11],[2344,6],[2351,10],[2362,4],[2369,3],[2373,20],[2394,7],[2402,11],[2414,5],[2422,3],[2426,8],[2435,5],[2441,7],[2449,3],[2453,17],[2473,3],[2477,8],[2486,5],[2492,5],[2498,4],[2503,18],[2524,11],[2536,11],[2548,3],[2552,7],[2560,6],[2567,3],[2571,3],[2575,11],[2587,11],[2599,3],[2603,5],[2609,6],[2616,3],[2620,2],[2628,1],[2650,2],[2658,2],[2679,1],[2681,1],[2689,1],[2704,1],[2706,1],[2833,1],[2842,2],[2852,1],[2854,1],[2863,1],[2913,1],[2915,1],[2917,1],[2926,1],[2957,1],[2959,1],[2978,1],[2980,2],[2983,2],[2990,1],[2996,2],[2999,1],[3008,1],[3015,1],[3036,1],[3038,1],[3056,1],[3058,2],[3061,2],[3068,1],[3074,2],[3077,1],[3086,1],[3127,1],[3129,1],[3151,1],[3153,2],[3156,2],[3163,1],[3169,2],[3172,1],[3181,1],[3223,1],[3225,1],[3244,1],[3246,2],[3249,2],[3256,1],[3262,2],[3265,1],[3274,1],[3318,1],[3320,1],[3336,1],[3338,2],[3341,2],[3348,1],[3354,2],[3357,1],[3366,1],[3410,1],[3412,1],[3437,1],[3439,2],[3442,2],[3449,1],[3455,2],[3458,1],[3467,1],[3488,1],[3490,1],[3511,1],[3513,2],[3516,2],[3523,1],[3529,2],[3532,1],[3541,1],[3556,1],[3558,1],[3572,1],[3574,3],[3578,2],[3585,1],[3591,2],[3594,1],[3603,1],[3660,1],[3662,1],[3676,1],[3678,2],[3681,2],[3688,1],[3694,2],[3697,2],[3707,1],[3732,1],[3767,1],[3799,1],[3805,1],[3812,1],[3826,1],[3828,2],[3845,1],[3847,2],[3863,2],[3866,3],[3870,2],[3885,2],[3888,1],[3901,1],[3903,2],[3909,2],[3917,1],[3924,2],[3927,1],[3988,1],[4002,2],[4018,2],[4058,1],[4060,1],[4125,2],[4181,1],[4191,1],[4240,1],[4257,1],[4332,1],[4340,1],[4354,2],[4367,2],[4391,1]]},"1104":{"position":[[69,1],[71,1],[80,1],[82,1],[92,1],[100,2],[103,1],[105,1],[127,1],[129,1],[138,1],[140,1],[150,1],[158,2],[161,2],[164,1]]},"1106":{"position":[[117,1],[209,1],[256,2],[272,1],[289,2],[299,2],[302,3],[323,3],[331,2],[365,1],[388,1],[395,1],[402,2],[449,1],[459,1],[482,1],[521,1],[533,2],[751,1],[773,1],[832,1],[876,1],[933,1],[1001,1],[1010,1],[1012,1],[1021,1],[1060,1],[1071,1],[1081,3],[1085,2],[1095,1],[1097,1],[1106,1],[1145,1],[1157,1],[1167,3],[1181,1],[1223,1],[1286,1],[1331,1],[1340,3],[1344,2],[1347,2],[1354,1],[1388,1],[1407,1],[1423,2],[1436,1],[1528,1],[1575,2],[1591,1],[1608,2],[1618,2],[1621,3],[1642,3],[1650,2],[1684,1],[1707,1],[1714,1],[1721,2],[1768,1],[1778,1],[1801,1],[1840,1],[1852,2],[2070,1],[2092,1],[2151,1],[2195,1],[2252,1],[2320,1],[2329,1],[2331,1],[2340,1],[2379,1],[2390,1],[2400,3],[2404,2],[2414,1],[2416,1],[2425,1],[2464,1],[2476,1],[2486,3],[2500,1],[2542,1],[2605,1],[2650,1],[2659,3],[2663,2],[2666,2],[2674,1]]},"1110":{"position":[[176,1],[178,1],[190,1],[192,4],[204,1],[206,4],[219,1],[221,1],[237,1],[244,2],[247,1],[249,1],[289,1],[360,1],[379,1],[381,1],[393,1],[395,4],[407,1],[409,4],[422,1],[424,1],[440,1],[447,2],[450,2],[458,1],[511,1],[521,1],[523,1],[727,2],[739,1],[782,1],[794,2],[833,1],[843,1],[879,1],[936,1],[948,2],[956,1]]},"1112":{"position":[[78,1],[80,1],[89,1],[91,1],[99,1],[101,1],[111,1],[119,2],[122,2],[125,1],[127,1],[149,1],[151,1],[160,1],[162,1],[170,1],[172,1],[182,1],[190,2],[193,2],[196,2],[199,1]]},"1114":{"position":[[87,1],[89,1],[97,1],[99,1],[109,1],[117,2],[120,1],[122,1],[172,1],[186,1],[205,1],[207,1],[215,1],[217,1],[227,1],[235,2],[238,2],[241,1]]},"1118":{"position":[[23,1],[25,1],[44,1],[65,1],[75,1],[77,1],[114,1],[133,1],[149,2],[162,1],[164,1],[183,1],[204,1],[214,2],[223,1],[225,1],[258,1],[295,1],[308,1],[310,1],[319,1],[321,1],[330,1],[338,2],[341,2],[344,2],[347,2],[350,1]]},"1120":{"position":[[51,1],[53,1],[62,1],[64,1],[73,1],[81,2],[84,1],[86,1],[123,1],[136,1],[138,1],[147,1],[149,1],[158,1],[166,2],[169,2],[172,1]]},"1123":{"position":[[69,1],[93,1],[95,1],[104,1],[106,1],[108,1],[113,1],[134,1],[136,1],[145,1],[151,2],[161,1],[231,2],[234,2],[242,2],[245,1],[250,1],[266,1],[268,1],[277,1],[283,2],[293,1],[363,2],[366,2],[374,2],[388,1],[393,1],[407,1],[420,2],[423,1],[428,1],[443,1],[445,1],[454,1],[459,2],[521,1],[564,2],[579,2],[582,1],[590,1],[606,1],[630,1],[632,1],[641,1],[647,1],[649,2],[652,1],[660,1],[683,1],[714,1],[716,1],[725,1],[730,1],[732,2],[735,2],[743,1],[745,1],[747,1],[755,1],[779,1],[799,2],[817,2],[826,1],[828,1],[830,1],[838,1],[855,1],[874,1],[876,1],[884,1],[890,1],[892,2],[895,2],[903,1],[905,1],[939,1],[1014,1],[1089,1],[1166,1],[1212,2],[1215,1],[1264,1],[1266,1],[1279,1],[1297,1],[1317,1],[1345,1],[1369,1],[1381,1],[1397,1],[1440,2],[1501,1],[1509,1],[1521,1],[1523,2],[1538,1],[1573,1],[1594,1],[1644,2],[1661,1],[1674,1],[1786,2],[1864,2],[1880,1],[1895,2],[1922,1],[1927,1],[1947,1],[2027,2],[2062,2],[2105,2],[2157,2],[2239,2],[2255,1],[2270,2],[2297,1],[2302,1],[2328,1],[2330,1],[2339,1],[2345,2],[2354,1],[2407,1],[2493,2],[2535,2],[2587,2],[2610,1],[2637,1],[2656,1],[2658,1],[2660,1],[2722,1],[2739,2],[2760,1],[2822,1],[2845,2],[2848,2],[2856,1],[2880,1],[2882,1],[2891,1],[2893,1],[2895,1],[2900,1],[2921,1],[2923,1],[2932,1],[2938,2],[2948,1],[3018,2],[3021,2],[3029,2],[3032,1],[3037,1],[3053,1],[3055,1],[3064,1],[3070,2],[3080,1],[3150,2],[3153,2],[3161,2],[3175,1],[3180,1],[3194,1],[3207,2],[3210,1],[3215,1],[3230,1],[3232,1],[3241,1],[3246,2],[3308,1],[3351,2],[3366,2],[3369,1],[3377,1],[3393,1],[3417,1],[3419,1],[3428,1],[3434,1],[3436,2],[3439,1],[3447,1],[3470,1],[3501,1],[3503,1],[3512,1],[3517,1],[3519,2],[3522,2],[3530,1],[3532,1],[3534,1],[3542,1],[3566,1],[3586,2],[3604,2],[3613,1],[3615,1],[3617,1],[3625,1],[3642,1],[3661,1],[3663,1],[3671,1],[3677,1],[3679,2],[3682,2],[3690,1],[3692,1],[3726,1],[3801,1],[3876,1],[3953,1],[3999,2],[4002,1],[4051,1],[4053,1],[4066,1],[4084,1],[4104,1],[4132,1],[4156,1],[4168,1],[4184,1],[4227,2],[4288,1],[4296,1],[4308,1],[4310,2],[4325,1],[4360,1],[4381,1],[4431,2],[4448,1],[4461,1],[4573,2],[4651,2],[4667,1],[4682,2],[4709,1],[4714,1],[4734,1],[4814,2],[4849,2],[4892,2],[4944,2],[5026,2],[5042,1],[5057,2],[5084,1],[5089,1],[5115,1],[5117,1],[5126,1],[5132,2],[5141,1],[5194,1],[5280,2],[5322,2],[5374,2],[5398,1]]},"1125":{"position":[[51,1],[53,1],[64,1],[66,1],[89,1],[144,2],[147,1],[149,1],[193,1],[206,1],[208,1],[219,1],[221,1],[244,1],[299,2],[302,2],[305,1]]},"1127":{"position":[[75,1],[132,1],[174,1],[226,1],[291,1],[333,1],[346,1],[403,1],[445,1],[497,1],[563,1]]},"1129":{"position":[[66,1],[92,1],[157,1],[181,1],[239,1],[260,1],[302,1],[304,1],[311,1],[313,3],[327,1],[338,1],[340,3],[355,1],[359,1],[400,2],[415,1],[441,1],[443,1],[454,2],[470,2],[513,1],[531,1],[548,2],[560,1],[591,2],[616,2],[625,2],[628,4],[633,2],[678,2],[728,2],[741,2],[750,2],[753,5],[767,2],[779,1],[796,2],[808,1],[831,2],[885,1],[901,1],[936,1],[993,1],[1008,1],[1046,1],[1059,1],[1085,1],[1150,1],[1174,1],[1232,1],[1253,1],[1295,1],[1297,1],[1304,1],[1306,3],[1320,1],[1331,1],[1333,3],[1348,1],[1352,1],[1393,2],[1408,1],[1434,1],[1436,1],[1447,2],[1463,2],[1506,1],[1524,1],[1541,2],[1553,1],[1584,2],[1609,2],[1618,2],[1621,4],[1626,2],[1671,2],[1721,2],[1734,2],[1743,2],[1746,5],[1760,2],[1772,1],[1789,2],[1801,1],[1824,2],[1878,1],[1894,1],[1929,1],[1986,1],[2002,1]]},"1133":{"position":[[23,1],[46,1],[99,1],[127,1],[146,1],[247,1],[254,1],[276,1],[280,1],[286,1],[337,1],[356,1],[379,1],[432,1],[460,1],[479,1],[580,1],[587,1],[609,1],[613,1],[620,1]]},"1137":{"position":[[23,1],[25,1],[35,1],[37,1],[46,1],[48,3],[52,2],[55,1],[57,1],[89,1],[91,1],[101,1],[103,1],[112,1],[114,3],[118,2],[121,2],[124,1]]},"1139":{"position":[[23,1],[25,1],[44,1],[46,1],[61,1],[63,1],[65,1],[96,1],[98,1],[117,1],[119,1],[134,1],[136,2],[139,1]]},"1141":{"position":[[52,1],[128,2],[223,1],[225,1],[232,1],[247,1],[262,1],[271,2],[283,1],[285,1],[298,1],[307,2],[318,1],[320,1],[343,1],[373,1],[407,1],[439,1],[468,4],[473,1],[481,2],[484,2],[690,1],[732,1],[808,2],[903,1],[905,1],[912,1],[927,1],[942,1],[951,2],[963,1],[965,1],[978,1],[987,2],[998,1],[1000,1],[1023,1],[1053,1],[1087,1],[1119,1],[1148,4],[1153,1],[1161,2],[1164,2],[1371,1]]},"1145":{"position":[[37,1],[39,1],[51,1],[53,1],[63,1],[71,1],[73,1],[75,1],[103,1],[105,1],[117,1],[119,1],[129,1],[137,1],[139,1],[141,1]]},"1147":{"position":[[43,1],[67,1],[84,1],[86,3],[90,6],[97,11],[109,6],[116,10],[127,4],[136,1],[138,3],[142,20],[163,7],[171,11],[183,5],[191,2],[194,1],[196,3],[200,8],[209,5],[215,7],[223,3],[227,17],[247,2],[250,1],[252,3],[256,8],[265,5],[271,5],[277,4],[282,18],[303,2],[306,1],[308,11],[320,11],[332,3],[336,7],[344,6],[351,3],[355,3],[359,2],[362,1],[364,11],[376,11],[388,3],[392,5],[398,6],[405,3],[409,2],[412,2],[431,1],[446,2],[471,1],[512,1],[519,1],[534,1],[552,1],[558,2],[569,1],[589,1],[645,1],[647,1],[665,1],[680,1],[694,1],[696,1],[782,1],[1219,2],[1236,1],[1238,1],[1275,2],[1278,2],[1281,2],[1339,2],[1342,1],[1362,1],[1398,1],[1469,1],[1488,1],[1512,1],[1529,1],[1531,3],[1535,6],[1542,11],[1554,6],[1561,10],[1572,4],[1581,1],[1583,3],[1587,20],[1608,7],[1616,11],[1628,5],[1636,2],[1639,1],[1641,3],[1645,8],[1654,5],[1660,7],[1668,3],[1672,17],[1692,2],[1695,1],[1697,3],[1701,8],[1710,5],[1716,5],[1722,4],[1727,18],[1748,2],[1751,1],[1753,11],[1765,11],[1777,3],[1781,7],[1789,6],[1796,3],[1800,3],[1804,2],[1807,1],[1809,11],[1821,11],[1833,3],[1837,5],[1843,6],[1850,3],[1854,2],[1857,2],[1876,1],[1891,2],[1916,1],[1957,1],[1964,1],[1979,1],[1997,1],[2003,2],[2014,1],[2034,1],[2090,1],[2092,1],[2110,1],[2125,1],[2139,1],[2141,1],[2227,1],[2664,2],[2681,1],[2683,1],[2720,2],[2723,2],[2726,2],[2784,2],[2787,1],[2815,1],[2903,2],[2970,1],[2980,1],[3012,1],[3053,2],[3074,1],[3158,1],[3168,1],[3197,1],[3224,1],[3259,1],[3291,1],[3297,1],[3304,1],[3328,1],[3343,2],[3371,1],[3384,2],[3387,2],[3404,1],[3406,2],[3421,2],[3424,1],[3437,1],[3439,2],[3445,2],[3544,2],[3598,2],[3606,1]]},"1153":{"position":[[23,1],[29,1],[59,1],[66,1]]},"1155":{"position":[[31,1],[33,2],[36,1],[63,1],[65,3],[76,1],[167,1],[169,1],[171,1],[186,3],[195,1],[207,2],[210,1],[226,3],[235,1],[248,2],[251,1],[299,1],[309,2],[312,1],[361,1],[372,2],[375,1],[424,1],[436,2],[439,1],[488,1],[500,2],[503,1],[554,1],[567,2],[570,1],[586,3],[595,1],[607,2],[610,1],[659,1],[671,2],[674,1],[720,1],[729,2],[732,1],[748,3],[757,1],[768,2],[771,1],[813,1],[830,2],[833,1],[849,3],[858,1],[876,2],[879,1],[923,1],[933,2],[936,1],[982,1],[994,2],[997,1],[1042,1],[1053,2],[1056,1],[1099,1],[1108,2],[1111,1],[1156,1],[1167,2],[1170,1],[1216,1],[1228,2],[1231,1],[1276,1],[1288,2],[1291,1],[1338,1],[1351,2],[1354,1],[1370,3],[1379,1],[1391,2],[1394,1],[1442,1],[1452,2],[1455,1],[1503,1],[1513,2],[1516,1],[1565,1],[1576,2],[1579,1],[1628,1],[1639,2],[1642,1],[1691,1],[1702,2],[1705,1],[1756,1],[1769,2],[1772,1],[1788,3],[1797,1],[1810,2],[1813,1],[1862,1],[1873,2],[1876,1],[1923,1],[1932,2],[1935,1],[1984,1],[1995,2],[1998,2],[2001,1]]},"1159":{"position":[[23,1],[29,1],[107,1],[152,1],[189,1],[204,2],[236,1]]},"1161":{"position":[[23,1],[25,1],[32,1],[34,1],[42,1],[57,1],[66,2],[82,1],[84,1],[94,1],[111,1],[128,1],[137,2],[150,1],[152,1],[161,1],[163,1],[172,2],[175,2],[178,1],[180,1],[207,1],[209,1],[225,2],[233,1],[235,1],[237,1],[272,1],[285,2],[288,2],[296,1],[298,1],[305,1],[307,1],[315,1],[330,1],[339,2],[355,1],[357,1],[367,1],[384,1],[401,1],[410,2],[423,1],[425,1],[434,1],[436,1],[445,2],[448,2],[451,2],[459,1],[560,2],[563,1],[573,1],[575,1],[590,2],[619,2],[631,1],[704,2],[712,1]]},"1163":{"position":[[38,1],[40,1],[47,1],[49,1],[70,1],[72,1],[80,1],[82,4],[90,1],[108,2],[130,1],[132,1],[140,1],[142,4],[150,1],[168,2],[188,1],[190,1],[198,1],[200,4],[208,1],[226,2],[249,1],[251,1],[259,1],[261,4],[269,1],[287,2],[304,1],[306,1],[314,1],[316,4],[324,1],[342,2],[359,1],[361,1],[369,1],[371,4],[379,1],[397,2],[413,1],[415,1],[423,1],[425,5],[434,1],[452,2],[467,1],[469,1],[477,1],[479,4],[487,1],[505,2],[522,1],[524,1],[532,1],[534,4],[542,1],[560,2],[577,1],[579,1],[587,1],[589,4],[597,1],[615,2],[631,1],[633,1],[641,1],[643,4],[651,1],[669,2],[672,2],[675,1],[677,1],[708,1],[710,1],[717,1],[719,1],[740,1],[742,1],[750,1],[752,4],[760,1],[778,2],[800,1],[802,1],[810,1],[812,4],[820,1],[838,2],[858,1],[860,1],[868,1],[870,4],[878,1],[896,2],[919,1],[921,1],[929,1],[931,4],[939,1],[957,2],[974,1],[976,1],[984,1],[986,4],[994,1],[1012,2],[1029,1],[1031,1],[1039,1],[1041,4],[1049,1],[1067,2],[1083,1],[1085,1],[1093,1],[1095,5],[1104,1],[1122,2],[1137,1],[1139,1],[1147,1],[1149,4],[1157,1],[1175,2],[1192,1],[1194,1],[1202,1],[1204,4],[1212,1],[1230,2],[1247,1],[1249,1],[1257,1],[1259,4],[1267,1],[1285,2],[1301,1],[1303,1],[1311,1],[1313,4],[1321,1],[1339,2],[1342,2],[1345,2],[1348,1]]},"1165":{"position":[[23,1],[58,1],[60,1],[69,1],[90,1],[92,1],[108,1],[110,4],[119,1],[126,1],[142,1],[158,2],[174,2],[218,1],[220,1],[266,1],[327,2],[433,1],[470,1],[483,1],[518,1],[520,1],[529,1],[550,1],[552,1],[568,1],[570,4],[579,1],[586,1],[602,1],[618,2],[634,2],[678,1],[680,1],[726,1],[787,2],[894,1]]},"1167":{"position":[[23,1],[63,1],[65,1],[72,1],[74,2],[77,2],[84,1],[96,1],[115,1],[131,1],[158,1],[235,2],[304,1],[396,1],[428,1],[441,1],[481,1],[483,1],[490,1],[492,2],[495,2],[502,1],[514,1],[533,1],[549,1],[576,1],[653,2],[722,1],[815,1]]},"1171":{"position":[[54,1],[56,1],[75,1],[77,1],[87,1],[89,1],[91,1],[122,1],[124,1],[143,1],[145,1],[155,1],[157,2],[165,1],[167,1],[169,1],[222,2],[235,1],[252,2],[255,1],[308,2],[311,1],[317,1],[338,2],[351,1],[373,2],[376,2],[384,1],[475,1],[485,1],[510,1],[527,1],[627,2],[635,1]]},"1175":{"position":[[23,1],[45,1],[81,1],[152,1],[154,1],[164,1],[175,1],[177,1],[314,2],[419,1],[429,2],[445,1],[447,1],[459,1],[501,1],[508,3],[522,1],[524,1],[534,1],[566,1],[617,1],[649,1],[717,1],[719,3],[723,2],[728,2],[733,2],[738,2],[743,2],[748,2],[834,1],[836,1],[847,1],[854,2],[857,2],[860,2],[863,1],[869,1],[912,1],[925,1],[1003,1],[1022,1],[1044,1],[1080,1],[1151,1],[1153,1],[1163,1],[1174,1],[1176,1],[1313,2],[1418,1],[1428,2],[1444,1],[1446,1],[1458,1],[1500,1],[1507,3],[1521,1],[1523,1],[1533,1],[1565,1],[1616,1],[1648,1],[1716,1],[1718,3],[1722,2],[1727,2],[1732,2],[1737,2],[1742,2],[1747,2],[1833,1],[1835,1],[1846,1],[1853,2],[1856,2],[1859,2],[1862,1],[1876,1],[1919,2],[2048,1],[2059,1],[2077,1],[2079,2],[2087,2],[2117,1],[2119,1],[2129,1],[2240,2],[2278,3],[2288,3],[2305,2],[2335,2],[2374,3],[2386,3],[2403,2],[2421,1],[2469,1],[2527,1],[2546,3],[2557,4],[2576,1],[2603,1],[2661,1],[2688,2],[2697,2],[2736,1],[2758,1],[2766,2],[2790,1],[2820,1],[2888,1],[2893,1],[2895,3],[2899,2],[2909,1],[2911,3],[2915,2],[2921,2],[2960,1],[2962,1],[2973,1],[2980,2],[2983,1],[3033,1]]},"1179":{"position":[[23,1],[25,1],[39,1],[47,1],[49,1],[83,1],[85,1],[99,1],[107,2],[116,1],[137,1],[207,1],[270,1],[341,2],[390,1],[518,1]]},"1181":{"position":[[23,1],[29,1],[73,1],[86,1],[88,1],[90,1],[117,1],[130,2],[133,2],[136,1]]},"1183":{"position":[[23,1],[29,1],[60,1],[73,1],[75,1],[77,1],[104,1],[117,2],[120,2],[123,1]]},"1185":{"position":[[23,1],[61,1],[85,2],[88,1],[90,2],[93,1],[142,1],[183,1],[260,1],[293,1],[306,1],[344,1],[368,2],[371,1],[373,2],[376,1],[425,1],[466,1],[544,1]]},"1187":{"position":[[23,1],[55,1],[57,1],[59,1],[66,1],[102,1],[118,1],[133,2],[140,2],[156,2],[159,1],[200,1],[237,1],[250,1],[282,1],[284,1],[286,1],[293,1],[329,1],[345,1],[360,2],[367,2],[383,2],[386,1],[428,1]]},"1189":{"position":[[23,1],[119,1],[121,1],[130,1],[143,1],[145,1],[178,1],[180,2],[183,2],[190,1],[197,1],[213,1],[229,2],[245,2],[289,1],[291,1],[347,1],[384,1],[397,1],[493,1],[495,1],[504,1],[517,1],[519,1],[552,1],[554,2],[557,2],[564,1],[571,1],[587,1],[603,2],[619,2],[663,1],[665,1],[722,1]]},"1191":{"position":[[23,1],[87,1],[96,1],[109,1],[143,1],[145,2],[148,2],[155,1],[162,2],[169,1],[201,1],[214,1],[278,1],[287,1],[300,1],[334,1],[336,2],[339,2],[346,1],[353,2],[361,1]]},"1197":{"position":[[28,1],[30,1],[47,1],[78,1],[107,1],[126,1],[141,1],[143,1],[172,1],[188,1],[190,1],[192,1],[200,1],[224,1],[237,1],[239,2],[247,1],[249,1],[266,1],[297,1],[326,1],[345,1],[360,2],[368,1],[370,1],[372,1],[421,1],[444,2],[447,1],[498,1],[523,2],[526,1],[572,1],[592,2],[595,1],[643,1],[665,2],[668,1],[716,1],[738,2],[741,1],[786,1],[804,2],[807,1],[827,3],[836,1],[861,1],[870,2],[873,1],[893,3],[902,1],[931,1],[940,2],[943,1],[963,3],[972,1],[994,1],[1003,2],[1006,1],[1026,3],[1035,1],[1057,1],[1066,2],[1069,1],[1089,3],[1098,1],[1120,1],[1129,2],[1132,1],[1152,3],[1161,1],[1180,1],[1189,2],[1192,1],[1213,3],[1222,1],[1245,1],[1254,2],[1257,1],[1278,3],[1287,1],[1310,1],[1319,2],[1322,1],[1342,3],[1351,1],[1374,1],[1383,2],[1386,1],[1406,3],[1415,1],[1442,1],[1451,2],[1454,1],[1456,4],[1481,1],[1491,1],[1508,1],[1515,2],[1518,1],[1520,4],[1545,1],[1555,1],[1572,1],[1579,2],[1582,2],[1585,1]]},"1199":{"position":[[35,1],[166,1],[236,1],[314,1],[497,1],[505,1],[552,1],[560,1],[567,3],[580,1],[606,1],[608,1],[617,1],[679,1],[784,1],[786,2],[845,2],[852,1],[882,1],[1013,1],[1083,1],[1161,1],[1344,1],[1352,1],[1399,1],[1407,1],[1414,3],[1427,1],[1453,1],[1455,1],[1464,1],[1526,1],[1631,1],[1633,2],[1692,2],[1700,1]]},"1203":{"position":[[23,1],[25,2],[28,1],[62,1],[86,1],[123,1],[133,1]]},"1207":{"position":[[23,1],[25,2],[28,1],[61,1],[76,1],[78,1],[80,1],[95,3],[104,1],[114,2],[117,1],[185,1],[205,2],[208,1],[270,1],[291,1],[300,2],[303,1],[370,1],[394,1],[403,2],[406,1],[480,1],[504,1],[513,2],[516,1],[597,1],[629,1],[639,2],[642,1],[707,1],[739,1],[748,2],[751,1],[818,1],[847,1],[856,2],[859,1],[926,1],[959,1],[968,2],[971,1],[1034,1],[1055,1],[1064,2],[1067,1],[1131,1],[1159,2],[1162,1],[1223,1],[1248,1],[1257,2],[1260,1],[1328,1],[1347,1],[1356,2],[1359,1],[1428,1],[1456,1],[1465,2],[1468,2],[1476,1],[1478,3],[1482,1]]},"1209":{"position":[[23,1],[25,1],[44,1],[46,1],[66,2],[69,1],[71,1],[113,1],[115,1],[134,1],[136,1],[156,2],[159,2],[162,1]]},"1211":{"position":[[69,1],[305,1]]},"1213":{"position":[[160,1],[196,1],[648,1],[719,1],[1159,1],[1348,1]]},"1216":{"position":[[7,2],[120,2]]},"1218":{"position":[[38,1],[527,1]]},"1226":{"position":[[290,1]]},"1228":{"position":[[41,1]]},"1232":{"position":[[708,2]]},"1234":{"position":[[539,1],[1521,1],[1546,1],[1548,1],[1562,1],[1564,1],[1574,1],[1582,2],[1585,1],[1587,1]]},"1236":{"position":[[714,1],[832,1],[1563,4],[1889,1],[1926,1],[2456,1],[2513,1],[2571,1],[2615,1],[2650,1],[2652,1],[2661,1],[2677,2],[2686,1],[2751,1],[2753,1],[2761,1]]},"1240":{"position":[[220,1]]},"1242":{"position":[[661,1],[678,1],[2103,2]]},"1244":{"position":[[284,1],[377,2],[397,2]]},"1274":{"position":[[300,2]]},"1294":{"position":[[70,2],[90,2]]},"1357":{"position":[[102,2],[105,2],[111,2],[137,1],[139,1],[147,1],[149,1],[158,1],[174,1],[191,1],[199,2],[265,1],[367,1],[369,1],[380,2],[507,1],[565,1],[573,1],[575,1],[607,1],[626,1],[628,1],[636,1],[638,1],[647,1],[663,1],[680,1],[688,2],[754,1],[856,1],[858,1],[869,2],[996,1],[1054,1],[1062,2],[1072,1],[1122,1]]},"1359":{"position":[[153,1],[155,2],[158,1],[192,1],[211,1],[213,3],[217,1]]},"1361":{"position":[[14,1],[210,1],[232,1],[260,1],[270,1],[296,1],[298,1],[302,1],[345,1],[347,1],[401,2],[406,1],[408,1],[462,2],[465,3],[471,1],[500,1],[523,1],[543,3],[561,1],[590,1],[610,1],[627,3],[642,1],[644,1],[671,2],[682,4],[687,13],[701,3],[705,2],[718,1],[720,1],[734,2],[749,1],[751,1],[771,1],[867,2],[870,11],[882,2],[887,1],[925,1],[975,1],[1018,1],[1028,3],[1064,2],[1067,1],[1073,1],[1102,1],[1121,1],[1143,1],[1171,1],[1181,1],[1207,1],[1209,1],[1213,1],[1256,1],[1258,1],[1312,2],[1317,1],[1319,1],[1373,2],[1376,3],[1382,1],[1411,1],[1434,1],[1454,3],[1472,1],[1501,1],[1521,1],[1538,3],[1553,1],[1555,1],[1582,2],[1593,4],[1598,13],[1612,3],[1616,2],[1629,1],[1631,1],[1645,2],[1660,1],[1662,1],[1682,1],[1778,2],[1781,11],[1793,2],[1798,1],[1836,1],[1886,1],[1929,1],[1939,3],[1975,2],[1978,1],[1992,1],[2158,1]]},"1363":{"position":[[126,1],[128,1],[138,1],[140,1],[142,1],[149,1],[179,1],[181,1],[193,1],[195,2],[198,1],[205,1],[224,1],[226,1],[238,1],[240,2],[243,1],[250,1],[273,1],[275,1],[286,1],[288,2],[291,1],[298,1],[319,1],[321,1],[333,1],[335,2],[338,2],[341,1],[343,1],[370,1],[383,1],[401,1],[403,1],[413,1],[415,1],[417,1],[424,1],[454,1],[456,1],[468,1],[470,2],[473,1],[480,1],[499,1],[501,1],[513,1],[515,2],[518,1],[525,1],[548,1],[550,1],[561,1],[563,2],[566,1],[573,1],[594,1],[596,1],[608,1],[610,2],[613,2],[616,2],[619,1]]},"1367":{"position":[[13,1],[60,1],[62,1],[81,1],[83,1],[96,1],[98,1],[100,1],[142,1],[144,1],[163,1],[165,1],[178,1],[180,2],[183,1]]},"1369":{"position":[[62,1],[64,1],[74,1],[76,1],[90,1],[92,3],[96,2],[99,1],[101,1],[133,1],[135,1],[145,1],[147,1],[161,1],[163,3],[167,2],[170,2],[173,1]]},"1371":{"position":[[46,1],[48,1],[67,1],[69,1],[80,1],[82,1],[96,2],[99,2],[102,1],[104,1],[140,1],[153,1],[155,1],[174,1],[176,1],[187,1],[189,1],[203,2],[206,2],[209,2],[212,1]]},"1375":{"position":[[23,1],[49,1],[120,2],[322,2],[325,1],[333,1],[345,2],[390,1],[392,1],[414,1],[416,1],[429,1],[443,1],[487,1],[536,1],[579,2],[599,1],[601,1],[607,1],[609,1],[620,2],[628,1],[630,1],[646,2],[652,1],[654,1],[664,2],[667,2],[917,1],[919,1],[930,1],[932,1],[942,1],[944,1],[960,1],[967,1],[969,2],[975,1],[1051,1],[1053,1],[1068,1],[1122,2],[1125,1],[1132,1],[1155,1],[1179,2],[1188,1],[1238,1],[1240,1],[1258,1],[1260,1],[1262,1],[1273,1],[1279,2],[1285,2],[1288,2],[1291,1],[1309,1],[1349,1],[1351,1],[1366,2],[1374,1],[1386,1],[1408,1],[1410,1],[1412,1],[1478,1],[1480,1],[1493,2],[1507,1],[1514,2],[1527,1],[1529,1],[1540,2],[1548,1],[1575,2],[1578,2],[1586,1],[1707,1],[1734,1],[1749,1],[1764,1],[1814,1],[1820,2],[1836,1],[1862,1],[1998,2],[2016,1],[2042,1],[2113,2],[2315,2],[2318,1],[2326,1],[2338,2],[2383,1],[2385,1],[2407,1],[2409,1],[2422,1],[2436,1],[2480,1],[2529,1],[2572,2],[2592,1],[2594,1],[2600,1],[2602,1],[2613,2],[2621,1],[2623,1],[2639,2],[2645,1],[2647,1],[2657,2],[2660,2],[2910,1],[2912,1],[2923,1],[2925,1],[2935,1],[2937,1],[2953,1],[2960,1],[2962,2],[2968,1],[3044,1],[3046,1],[3061,1],[3115,2],[3118,1],[3125,1],[3148,1],[3172,2],[3181,1],[3231,1],[3233,1],[3251,1],[3253,1],[3255,1],[3266,1],[3272,2],[3278,2],[3281,2],[3284,1],[3310,1],[3321,1]]},"1377":{"position":[[23,1],[29,1],[44,1]]},"1380":{"position":[[132,1],[134,1],[171,1],[173,1],[220,2],[237,1],[239,1],[246,1],[248,1],[257,2],[271,3],[320,5],[326,1],[328,1],[346,2],[452,1],[454,1],[474,2],[480,5],[486,1],[488,1],[498,2],[501,2],[622,1],[624,1],[706,1],[708,1],[852,1],[906,2],[909,1],[916,1],[939,1],[963,2],[966,2],[969,1],[971,1],[1005,1],[1024,1],[1026,1],[1063,1],[1065,1],[1112,2],[1129,1],[1131,1],[1138,1],[1140,1],[1149,2],[1163,3],[1212,5],[1218,1],[1220,1],[1238,2],[1344,1],[1346,1],[1366,2],[1372,5],[1378,1],[1380,1],[1390,2],[1393,2],[1514,1],[1516,1],[1598,1],[1600,1],[1744,1],[1798,2],[1801,1],[1808,1],[1831,1],[1855,2],[1858,2],[1861,2],[1871,1],[1899,1],[1901,2],[1915,1],[1992,2],[2032,2],[2067,1],[2155,2],[2195,1],[2224,2],[2317,1],[2353,1],[2414,1],[2467,1],[2469,1],[2471,3],[2475,1],[2622,1],[2679,1],[2714,3],[2747,1],[2848,1],[2969,1],[3033,2],[3093,3],[3174,3],[3257,1],[3259,1],[3270,1],[3301,1],[3315,1],[3362,1],[3407,1],[3479,1],[3481,2],[3490,1],[3498,1],[3512,2],[3555,2],[3656,1],[3735,1],[3743,1],[3786,1],[3794,1],[3801,3],[3814,1],[3841,2],[3849,1]]},"1383":{"position":[[56,1],[58,1],[75,1],[80,1],[82,1],[116,1],[118,1],[135,1],[140,2],[147,1],[149,1],[178,2],[186,1],[188,1],[190,1],[228,1],[260,1],[277,2],[280,2],[330,1],[347,1],[349,1],[363,1],[377,2],[380,2],[387,4],[392,2],[407,2],[410,2],[423,1],[425,1],[436,2],[444,1],[468,2],[471,2],[474,1]]},"1385":{"position":[[165,1],[167,2],[170,1],[198,1],[219,1],[254,1],[256,3],[283,1],[285,1],[287,1],[299,1],[301,1],[317,2],[365,1],[375,2],[378,1],[390,1],[392,1],[408,2],[462,1],[483,2],[486,1],[498,1],[552,1],[569,2],[572,1],[584,1],[586,1],[597,2],[658,1],[680,2],[683,1],[699,1],[701,1],[707,2],[757,1],[781,2],[834,1],[854,1],[856,1],[872,2],[924,1],[926,1],[942,1],[961,1],[970,1],[972,2],[985,1],[1022,2],[1025,2],[1028,1]]},"1387":{"position":[[147,1],[149,1],[158,1],[178,1],[180,3],[189,1],[191,1],[193,1],[200,1],[202,1],[213,2],[216,1],[241,1],[250,2],[253,1],[274,1],[283,2],[286,1],[307,1],[317,2],[320,1],[342,1],[355,2],[358,1],[379,1],[393,2],[396,1],[417,1],[425,2],[428,1],[450,1],[460,2],[463,1],[484,1],[501,2],[504,1],[525,1],[536,2],[539,1],[560,1],[567,2],[570,1],[591,1],[616,2],[619,1],[621,4],[632,1],[641,2],[644,1],[646,4],[657,1],[666,2],[669,1],[682,1],[691,2],[694,1],[708,1],[721,2],[724,1],[737,1],[746,2],[749,1],[770,1],[789,1],[855,2],[858,1],[879,1],[898,1],[916,1],[982,2],[1008,1],[1021,1],[1046,2],[1049,2],[1052,2],[1055,1],[1057,1],[1089,1],[1115,1],[1117,1],[1126,2],[1134,1],[1136,1],[1145,1],[1165,1],[1167,3],[1176,1],[1178,1],[1180,1],[1187,1],[1189,1],[1200,2],[1203,1],[1228,1],[1237,2],[1240,1],[1261,1],[1270,2],[1273,1],[1294,1],[1304,2],[1307,1],[1329,1],[1342,2],[1345,1],[1366,1],[1380,2],[1383,1],[1404,1],[1412,2],[1415,1],[1437,1],[1447,2],[1450,1],[1471,1],[1488,2],[1491,1],[1512,1],[1523,2],[1526,1],[1547,1],[1554,2],[1557,1],[1578,1],[1603,2],[1606,1],[1608,4],[1619,1],[1628,2],[1631,1],[1633,4],[1644,1],[1653,2],[1656,1],[1669,1],[1678,2],[1681,1],[1695,1],[1708,2],[1711,1],[1724,1],[1733,2],[1736,1],[1757,1],[1776,1],[1842,2],[1845,1],[1866,1],[1885,1],[1903,1],[1969,2],[1995,1],[2008,1],[2033,2],[2036,2],[2039,2],[2042,2],[2050,1],[2052,1],[2054,1],[2115,1],[2123,2],[2136,1],[2168,2],[2171,1],[2233,1],[2249,1],[2256,2],[2269,1],[2304,2],[2307,2],[2317,1],[2346,1],[2549,1]]},"1389":{"position":[[108,1],[160,1],[162,1],[170,1],[172,1],[178,1],[180,1],[187,1],[189,3],[193,2],[203,1],[205,1],[212,1],[214,3],[218,2],[228,1],[230,1],[237,1],[239,3],[243,2],[256,1],[258,1],[265,1],[267,3],[271,2],[287,1],[289,1],[296,1],[298,3],[302,2],[315,1],[317,1],[324,1],[326,3],[330,2],[333,2],[349,1],[351,1],[357,1],[359,1],[366,1],[368,3],[372,2],[382,1],[384,1],[391,1],[393,3],[397,2],[407,1],[409,1],[416,1],[418,3],[422,2],[435,1],[437,1],[444,1],[446,3],[450,2],[466,1],[468,1],[475,1],[477,3],[481,2],[484,2],[497,1],[525,1],[615,1],[624,1],[639,1],[654,1],[661,2],[766,1],[773,2],[897,1],[904,2],[1099,2],[1174,2],[1538,1],[1545,2],[1752,3],[1771,2],[1843,1],[1845,1],[1880,1],[1899,1],[1901,1],[1909,1],[1911,1],[1917,1],[1919,1],[1926,1],[1928,3],[1932,2],[1942,1],[1944,1],[1951,1],[1953,3],[1957,2],[1967,1],[1969,1],[1976,1],[1978,3],[1982,2],[1995,1],[1997,1],[2004,1],[2006,3],[2010,2],[2026,1],[2028,1],[2035,1],[2037,3],[2041,2],[2054,1],[2056,1],[2063,1],[2065,3],[2069,2],[2072,2],[2088,1],[2090,1],[2096,1],[2098,1],[2105,1],[2107,3],[2111,2],[2121,1],[2123,1],[2130,1],[2132,3],[2136,2],[2146,1],[2148,1],[2155,1],[2157,3],[2161,2],[2174,1],[2176,1],[2183,1],[2185,3],[2189,2],[2205,1],[2207,1],[2214,1],[2216,3],[2220,2],[2223,2],[2236,1],[2264,1],[2354,1],[2363,1],[2378,1],[2393,1],[2400,2],[2505,1],[2512,2],[2636,1],[2643,2],[2838,2],[2913,2],[3277,1],[3284,2],[3491,3],[3510,2],[3582,2],[3585,1]]},"1391":{"position":[[23,1],[57,1],[76,1],[150,1],[238,1],[262,1],[296,1],[315,1],[389,1],[478,1]]},"1393":{"position":[[58,1],[60,1],[68,1],[70,1],[76,1],[78,1],[84,1],[86,1],[97,1],[107,2],[110,2],[113,2],[116,1],[118,1],[146,1],[148,1],[160,2],[168,1],[170,1],[178,1],[180,1],[186,1],[188,1],[194,1],[196,1],[207,1],[217,2],[220,2],[223,2],[226,2],[234,1],[236,1],[238,1],[298,1],[324,2],[327,1],[400,1],[433,2],[436,1],[492,1],[514,2],[517,1],[569,1],[614,2],[617,1],[673,1],[701,2],[704,1],[759,1],[787,2],[790,1],[884,1],[897,1],[904,2],[926,1],[1020,1],[1056,2],[1059,1],[1153,1],[1166,1],[1173,2],[1195,1],[1289,1],[1321,2],[1324,2],[1327,1]]},"1395":{"position":[[133,1],[135,2],[138,1],[172,1],[174,1],[207,2],[216,1],[235,1],[237,3],[264,1],[266,1],[268,1],[334,1],[356,2],[359,1],[425,1],[451,2],[454,1],[507,1],[526,2],[529,1],[578,1],[585,1],[616,1],[645,2],[648,1],[695,1],[704,2],[707,1],[778,1],[797,2],[800,2],[803,1]]},"1397":{"position":[[84,1],[101,1],[130,2],[170,1],[196,1],[198,1],[212,1],[225,2],[228,1],[230,1]]},"1399":{"position":[[34,1],[36,1],[44,1],[53,1],[55,1],[87,1],[100,1],[102,1],[110,1],[119,2],[122,1]]},"1401":{"position":[[34,1],[36,1],[49,1],[51,1],[64,1],[66,1],[75,1],[77,1],[91,2],[100,1],[102,1],[116,2],[128,1],[130,1],[144,2],[159,1],[161,1],[175,2],[178,2],[181,2],[197,1],[199,1],[208,1],[222,1],[234,1],[252,1],[266,1],[278,1],[295,1],[312,1],[330,1],[349,1],[374,1],[376,1],[386,1],[393,2],[401,1],[421,1],[435,1],[448,1],[462,1],[464,1],[474,1],[492,1],[504,2],[515,1],[531,1],[545,1],[560,1],[575,1],[593,1],[620,1],[638,1],[646,2],[649,1],[651,1],[677,1],[690,1],[711,1],[713,1],[726,1],[728,1],[741,1],[743,1],[752,1],[754,1],[768,2],[777,1],[779,1],[793,2],[805,1],[807,1],[821,2],[836,1],[838,1],[852,2],[855,2],[858,2],[874,1],[876,1],[885,1],[899,1],[911,1],[929,1],[943,1],[955,1],[972,1],[989,1],[1007,1],[1026,1],[1051,1],[1053,1],[1063,1],[1070,2],[1078,1],[1098,1],[1112,1],[1125,1],[1139,1],[1141,1],[1151,1],[1169,1],[1181,2],[1192,1],[1208,1],[1222,1],[1237,1],[1252,1],[1270,1],[1297,1],[1315,1],[1323,2],[1326,2],[1335,1],[1337,1],[1339,1],[1377,1],[1390,1],[1479,1],[1543,2],[1546,2],[1549,1]]},"1403":{"position":[[23,1],[112,1],[175,1],[213,1],[226,1],[315,1],[379,1]]},"1406":{"position":[[146,1],[148,1],[190,1],[192,1],[201,1],[208,2],[245,1],[247,1],[256,1],[263,2],[296,1],[298,1],[307,1],[314,2],[358,1],[360,1],[586,2],[589,1],[591,1],[635,1],[653,1],[727,1],[749,1],[1017,1],[1074,1],[1084,1],[1091,2],[1110,1],[1112,1],[1137,2],[1144,1],[1146,1],[1196,2],[1211,1],[1213,1],[1234,2],[1262,1],[1301,1],[1345,1],[1347,1],[1389,1],[1391,1],[1400,1],[1407,2],[1444,1],[1446,1],[1455,1],[1462,2],[1495,1],[1497,1],[1506,1],[1513,2],[1557,1],[1559,1],[1785,2],[1788,2],[1830,1],[1859,1],[1937,1],[1950,1],[1972,2],[2106,3],[2133,1],[2207,2],[2224,2],[2391,2],[2640,1],[2743,3],[2759,1],[2824,1],[2834,1],[2985,1],[2993,1],[3045,1],[3053,1],[3060,3],[3073,1],[3103,1],[3298,1],[3314,2],[3357,2],[3391,2],[3887,2],[3895,1]]},"1408":{"position":[[23,1],[25,1],[32,1],[34,1],[43,1],[61,1],[166,1],[168,1],[186,1],[188,1],[197,1],[225,1],[250,1],[271,2],[288,1],[290,1],[299,1],[327,1],[352,1],[373,2],[396,1],[398,1],[407,1],[435,1],[460,1],[481,2],[502,1],[504,1],[513,1],[541,1],[566,1],[587,2],[590,2],[593,2],[596,1],[598,1],[654,1],[670,1],[689,1],[691,1],[698,1],[700,1],[709,1],[727,1],[832,1],[834,1],[852,1],[854,1],[863,1],[891,1],[916,1],[937,2],[954,1],[956,1],[965,1],[993,1],[1018,1],[1039,2],[1062,1],[1064,1],[1073,1],[1101,1],[1126,1],[1147,2],[1168,1],[1170,1],[1179,1],[1207,1],[1232,1],[1253,2],[1256,2],[1259,2],[1262,2],[1272,1],[1301,1],[1490,1],[1679,1],[1718,2],[1807,1],[1842,3],[1851,1],[1876,2],[1896,1],[1913,2],[1916,3],[1930,1],[1941,2],[1944,2],[1957,1],[1964,2],[1982,2],[2011,1],[2021,1],[2109,2],[2207,1],[2216,1],[2228,1],[2243,1],[2251,2],[2310,1],[2318,1],[2382,1],[2390,1],[2397,3],[2410,1],[2445,2],[2499,1]]},"1410":{"position":[[71,1],[73,2],[76,1],[110,1],[129,1],[131,3],[135,1]]},"1413":{"position":[[36,1],[38,1],[48,1],[50,1],[60,1],[67,2],[80,1],[82,1],[92,1],[99,2],[111,1],[113,1],[119,1],[121,1],[128,1],[130,1],[138,1],[140,1],[171,1],[199,1],[212,1],[218,2],[227,1],[229,1],[260,1],[289,1],[302,1],[308,2],[317,1],[319,1],[350,1],[379,1],[392,1],[398,2],[407,1],[409,1],[440,1],[469,1],[482,1],[488,2],[502,1],[504,1],[510,4],[528,1],[552,1],[554,1],[565,1],[567,2],[586,1],[588,1],[612,1],[639,1],[641,1],[652,1],[654,2],[657,2],[660,2],[663,2],[666,1],[668,1],[690,1],[692,1],[702,1],[704,1],[714,1],[721,2],[734,1],[736,1],[746,1],[753,2],[765,1],[767,1],[773,1],[775,1],[782,1],[784,1],[792,1],[794,1],[825,1],[853,1],[866,1],[872,2],[881,1],[883,1],[914,1],[943,1],[956,1],[962,2],[971,1],[973,1],[1004,1],[1033,1],[1046,1],[1052,2],[1061,1],[1063,1],[1094,1],[1123,1],[1136,1],[1142,2],[1156,1],[1158,1],[1164,4],[1182,1],[1206,1],[1208,1],[1219,1],[1221,2],[1240,1],[1242,1],[1266,1],[1293,1],[1295,1],[1306,1],[1308,2],[1311,2],[1314,2],[1317,2],[1320,2],[1346,1],[1348,1],[1350,1],[1403,1],[1429,2],[1432,1],[1492,1],[1518,2],[1521,1],[1585,1],[1613,2],[1616,2],[1619,1]]},"1415":{"position":[[210,1],[212,2],[215,1],[249,1],[270,1],[272,3],[299,1],[301,1],[303,1],[370,1],[390,2],[393,1],[461,1],[480,2],[483,1],[545,1],[552,2],[565,1],[590,2],[593,1],[660,1],[691,2],[694,2],[697,1]]},"1417":{"position":[[53,1],[59,1],[91,1],[98,1]]},"1420":{"position":[[162,1],[194,1],[218,1],[295,1],[300,1],[302,1],[333,1],[366,1],[371,1],[373,1],[386,1],[415,1],[420,1],[422,1],[453,1],[460,1]]},"1422":{"position":[[33,1],[80,1],[82,1],[164,1],[166,1],[178,1],[203,1],[225,1],[227,1],[237,1],[249,1],[269,1],[271,4],[388,1],[399,2],[416,1],[430,1],[432,1],[439,1],[441,1],[475,1],[548,1],[620,1],[692,1],[733,2],[736,2],[739,2],[923,1],[925,1],[935,1],[951,1],[953,1],[961,2],[1024,2],[1205,1],[1207,1],[1217,1],[1226,2],[1394,1],[1396,1],[1406,1],[1414,2],[1466,1],[1468,1],[1480,1],[1482,1],[1499,1],[1501,1],[1513,1],[1532,1],[1540,2],[1543,2],[1546,2],[1696,1],[1698,1],[1719,1],[1737,1],[1744,2],[1908,1],[1910,1],[1919,1],[1921,1],[1931,1],[1939,2],[1949,1],[1951,1],[1962,1],[2149,1],[2151,3],[2164,1],[2166,1],[2172,1],[2174,1],[2186,1],[2188,1],[2206,1],[2215,2],[2227,1],[2229,1],[2238,1],[2246,2],[2260,1],[2262,1],[2276,1],[2289,2],[2296,1],[2298,1],[2312,1],[2314,1],[2321,2],[2324,2],[2332,1],[2334,1],[2343,1],[2359,1],[2378,1],[2396,1],[2419,1],[2443,1],[2456,2],[2459,2],[2462,2],[2465,2],[2468,2],[2674,1],[2676,1],[2731,1],[2791,1],[2798,2],[2835,1],[2890,5],[2896,1],[2926,2],[2929,1],[2946,1],[2979,1],[3006,1],[3008,1],[3024,1],[3067,1],[3084,2],[3087,2],[3095,1],[3142,1],[3144,1],[3226,1],[3228,1],[3240,1],[3265,1],[3287,1],[3289,1],[3299,1],[3311,1],[3331,1],[3333,4],[3450,1],[3461,2],[3478,1],[3492,1],[3494,1],[3501,1],[3503,1],[3537,1],[3610,1],[3682,1],[3754,1],[3795,2],[3798,2],[3801,2],[3985,1],[3987,1],[3997,1],[4013,1],[4015,1],[4023,2],[4086,2],[4267,1],[4269,1],[4279,1],[4288,2],[4456,1],[4458,1],[4468,1],[4476,2],[4528,1],[4530,1],[4542,1],[4544,1],[4561,1],[4563,1],[4575,1],[4594,1],[4602,2],[4605,2],[4608,2],[4758,1],[4760,1],[4781,1],[4799,1],[4806,2],[4970,1],[4972,1],[4981,1],[4983,1],[4993,1],[5001,2],[5011,1],[5013,1],[5024,1],[5211,1],[5213,3],[5226,1],[5228,1],[5234,1],[5236,1],[5248,1],[5250,1],[5268,1],[5277,2],[5289,1],[5291,1],[5300,1],[5308,2],[5322,1],[5324,1],[5338,1],[5351,2],[5358,1],[5360,1],[5374,1],[5376,1],[5383,2],[5386,2],[5394,1],[5396,1],[5405,1],[5421,1],[5440,1],[5458,1],[5481,1],[5505,1],[5518,2],[5521,2],[5524,2],[5527,2],[5530,2],[5736,1],[5738,1],[5793,1],[5853,1],[5860,2],[5897,1],[5952,5],[5958,1],[5988,2],[5991,1],[6045,1],[6584,2],[6587,2],[6703,1],[6711,1],[6720,2],[7222,2],[7225,1],[7234,1],[7253,1],[7281,2],[7347,2],[7399,2],[7452,1],[7487,1],[7576,2],[7646,3],[7758,1],[7773,1],[7793,2],[7883,1],[7937,1],[8044,2],[8049,2],[8065,2],[8088,1],[8090,2],[8200,1],[8229,1],[8237,2],[8249,2],[8271,1],[8281,1],[8289,1],[8346,2],[8389,1],[8394,1],[8430,1],[8444,2],[8505,1],[8613,1],[8618,1],[8774,1],[8901,1],[8985,4],[9007,1],[9009,1],[9019,1],[9035,2],[9038,2],[9051,1]]},"1424":{"position":[[23,1],[29,1],[45,1],[88,1],[105,2],[108,1]]},"1426":{"position":[[23,1],[25,2],[28,1],[71,1],[88,1]]},"1428":{"position":[[53,1],[55,1],[74,1],[76,1],[97,2],[100,1],[102,1],[132,1],[148,1],[150,1],[152,1],[191,1],[201,1],[203,2],[212,1],[242,1],[244,1],[265,2],[273,1],[275,1],[294,1],[296,1],[317,2],[320,2],[352,1],[390,1],[448,1],[670,1],[688,1],[722,2],[818,1],[900,1]]},"1431":{"position":[[121,1],[123,1],[133,1],[135,1],[169,1],[246,1],[297,1],[334,1],[365,1],[400,1],[445,1],[475,2],[489,2],[492,1],[494,1],[499,3],[503,2],[535,2],[554,3],[592,1],[594,1],[596,1],[607,1],[626,1],[650,1],[676,1],[686,2],[689,1],[700,1],[723,2],[726,2],[788,1],[856,2],[859,1],[861,1],[896,1],[915,1],[917,1],[919,1],[972,1],[987,2],[990,1],[1054,1],[1084,2],[1087,1],[1141,1],[1173,2],[1176,1],[1229,1],[1260,2],[1263,1],[1311,1],[1327,2],[1330,1],[1378,1],[1394,2],[1397,1],[1442,1],[1458,2],[1461,1],[1506,1],[1522,2],[1525,1],[1569,1],[1590,2],[1593,1],[1637,1],[1658,2],[1661,2],[1669,1],[1671,1],[1681,1],[1683,1],[1717,1],[1794,1],[1845,1],[1882,1],[1913,1],[1948,1],[1993,1],[2023,2],[2037,2],[2040,1],[2042,1],[2047,3],[2051,2],[2083,2],[2102,3],[2140,1],[2142,1],[2144,1],[2155,1],[2174,1],[2198,1],[2224,1],[2234,2],[2237,1],[2248,1],[2271,2],[2274,2],[2336,1],[2404,2],[2407,2],[2417,1],[2566,2],[2569,1],[2580,1],[2650,2],[2658,1]]},"1433":{"position":[[118,1],[183,2],[208,1],[261,1],[283,1],[323,1],[361,1],[363,1],[373,1],[375,1],[383,1],[406,1],[425,2],[450,1],[452,1],[465,1],[467,1],[525,1],[527,2],[530,2],[542,1],[544,1],[556,1],[558,1],[567,2],[580,1],[582,1],[593,2],[606,1],[608,1],[638,1],[663,1],[665,1],[673,1],[705,1],[736,1],[767,1],[793,2],[796,2],[799,1],[823,1],[841,1],[843,3],[855,1],[857,1],[864,1],[875,1],[879,1],[881,2],[884,1],[916,2],[919,2],[932,1],[934,1],[980,1],[1052,1],[1153,1],[1173,1],[1178,1],[1211,1],[1218,2],[1239,1],[1308,1],[1406,1],[1426,1],[1431,1],[1463,1],[1470,2],[1491,1],[1511,2],[1514,1],[1516,2],[1553,1],[1623,2],[1626,2],[1640,1],[1660,1],[1665,1],[1694,1],[1701,2],[1722,1],[1761,1],[1805,1],[1825,1],[1830,1],[1861,1],[1868,2],[1871,1],[1889,1],[1891,1],[1899,1],[1927,1],[1957,1],[1978,2],[1988,1],[2016,1],[2069,1],[2077,1],[2104,1],[2132,1],[2152,1],[2163,2],[2166,2],[2179,1],[2181,1],[2183,1],[2207,1],[2209,1],[2211,2],[2222,1],[2224,1],[2231,1],[2242,1],[2246,1],[2248,2],[2251,1],[2273,1],[2275,1],[2282,1],[2293,1],[2297,1],[2299,2],[2302,2],[2315,1],[2317,1],[2337,2],[2340,1],[2342,2],[2364,2],[2367,2],[2381,1],[2383,1],[2411,2],[2414,1],[2612,1],[2647,1],[2675,1],[2695,1],[2697,3],[2707,1],[2723,1],[2725,1],[2733,1],[2740,2],[2750,1],[2796,1],[2818,2],[2859,1],[2891,1],[2933,2],[2965,2],[2988,1],[3025,1],[3044,1],[3082,1],[3120,1],[3192,1],[3194,1],[3196,1],[3263,1],[3281,1],[3346,2],[3371,1],[3424,1],[3446,1],[3486,1],[3524,1],[3526,1],[3536,1],[3538,1],[3546,1],[3569,1],[3588,2],[3613,1],[3615,1],[3628,1],[3630,1],[3688,1],[3690,2],[3693,2],[3705,1],[3707,1],[3719,1],[3721,1],[3730,2],[3743,1],[3745,1],[3756,2],[3769,1],[3771,1],[3801,1],[3826,1],[3828,1],[3836,1],[3868,1],[3899,1],[3930,1],[3956,2],[3959,2],[3962,1],[3986,1],[4004,1],[4006,3],[4018,1],[4020,1],[4027,1],[4038,1],[4042,1],[4044,2],[4047,1],[4079,2],[4082,2],[4095,1],[4097,1],[4143,1],[4215,1],[4316,1],[4336,1],[4341,1],[4374,1],[4381,2],[4402,1],[4471,1],[4569,1],[4589,1],[4594,1],[4626,1],[4633,2],[4654,1],[4674,2],[4677,1],[4679,2],[4716,1],[4786,2],[4789,2],[4803,1],[4823,1],[4828,1],[4857,1],[4864,2],[4885,1],[4924,1],[4968,1],[4988,1],[4993,1],[5024,1],[5031,2],[5034,1],[5052,1],[5054,1],[5062,1],[5090,1],[5120,1],[5141,2],[5151,1],[5179,1],[5232,1],[5240,1],[5267,1],[5295,1],[5315,1],[5326,2],[5329,2],[5342,1],[5344,1],[5346,1],[5370,1],[5372,1],[5374,2],[5385,1],[5387,1],[5394,1],[5405,1],[5409,1],[5411,2],[5414,1],[5436,1],[5438,1],[5445,1],[5456,1],[5460,1],[5462,2],[5465,2],[5478,1],[5480,1],[5500,2],[5503,1],[5505,2],[5527,2],[5530,2],[5544,1],[5546,1],[5574,2],[5577,1],[5775,1],[5810,1],[5838,1],[5858,1],[5860,3],[5870,1],[5886,1],[5888,1],[5896,1],[5903,2],[5913,1],[5959,1],[5981,2],[6022,1],[6054,1],[6096,2],[6128,2],[6152,1]]},"1435":{"position":[[123,1],[125,1],[131,1],[133,1],[144,1],[146,1],[197,1],[239,1],[279,1],[287,2],[290,2],[300,1],[302,1],[304,1],[313,1],[315,1],[323,1],[341,1],[343,1],[345,1],[352,1],[367,2],[370,1],[377,1],[379,2],[394,2],[397,1],[404,1],[406,2],[422,2],[425,2],[428,2],[436,1],[446,2],[449,2],[460,1],[462,1],[478,1],[502,1],[532,1],[540,2],[543,1],[545,1],[573,1],[592,1],[594,1],[600,1],[602,1],[613,1],[615,1],[666,1],[708,1],[748,1],[756,2],[759,2],[769,1],[771,1],[773,1],[782,1],[784,1],[792,1],[810,1],[812,1],[814,1],[821,1],[836,2],[839,1],[846,1],[848,2],[863,2],[866,1],[873,1],[875,2],[891,2],[894,2],[897,2],[905,1],[915,2],[918,2],[929,1],[931,1],[947,1],[971,1],[1001,1],[1009,2],[1012,2],[1038,1],[1040,1],[1042,1],[1058,3],[1067,1],[1080,1],[1163,1],[1175,1],[1196,2],[1199,1],[1266,1],[1289,2],[1292,1],[1362,1],[1380,2],[1383,1],[1449,1],[1463,2],[1466,1],[1536,1],[1552,2],[1555,1],[1622,1],[1658,2],[1661,1],[1757,1],[1770,1],[1783,1],[1808,1],[1826,2],[1829,1],[1926,1],[1939,1],[1952,1],[1978,1],[1998,2],[2008,1],[2201,2],[2282,1]]},"1437":{"position":[[29,1],[31,1],[38,1],[40,1],[52,1],[54,1],[62,1],[64,5],[73,1],[91,2],[116,1],[118,1],[126,1],[128,4],[136,1],[155,2],[158,2],[170,1],[172,1],[181,1],[183,1],[191,1],[193,4],[201,1],[221,2],[224,2],[227,1],[229,1],[260,1],[273,1],[275,1],[282,1],[284,1],[296,1],[298,1],[306,1],[308,5],[317,1],[335,2],[360,1],[362,1],[370,1],[372,4],[380,1],[399,2],[402,2],[414,1],[416,1],[425,1],[427,1],[435,1],[437,4],[445,1],[465,2],[468,2],[471,2],[479,1],[529,1],[641,1]]},"1439":{"position":[[37,1],[43,1],[74,1],[81,1]]},"1441":{"position":[[23,1],[25,1],[34,1],[36,1],[46,1],[53,2],[62,1],[64,1],[74,1],[81,2],[93,1],[95,1],[105,1],[112,2],[121,1],[123,1],[133,1],[140,2],[150,1],[152,1],[162,1],[169,2],[185,1],[187,1],[197,1],[205,2],[245,1],[247,1],[253,1],[279,2],[288,1],[290,1],[300,1],[307,2],[310,1],[312,1],[334,1],[336,1],[345,1],[347,1],[357,1],[364,2],[373,1],[375,1],[385,1],[392,2],[404,1],[406,1],[416,1],[423,2],[432,1],[434,1],[444,1],[451,2],[461,1],[463,1],[473,1],[480,2],[496,1],[498,1],[508,1],[516,2],[556,1],[558,1],[564,1],[590,2],[599,1],[601,1],[611,1],[618,2],[621,2],[647,1],[649,1],[651,1],[819,1],[844,2],[847,1],[907,1],[937,2],[940,2],[943,1]]},"1443":{"position":[[23,1],[25,1],[37,1],[39,1],[48,1],[50,1],[57,1],[124,1],[126,2],[129,3],[133,6],[140,11],[152,6],[159,10],[170,4],[177,3],[181,20],[202,7],[210,11],[222,5],[230,3],[234,8],[243,5],[249,7],[257,3],[261,17],[281,3],[285,8],[294,5],[300,5],[306,4],[311,18],[332,11],[344,11],[356,3],[360,7],[368,6],[375,3],[379,3],[383,11],[395,11],[407,3],[411,5],[417,6],[424,3],[428,3],[488,1],[490,1],[492,1],[499,1],[501,2],[504,2],[511,1],[523,1],[545,1],[585,2],[588,1],[595,1],[597,2],[600,2],[607,1],[619,1],[640,1],[648,1],[663,2],[666,1],[673,1],[675,2],[678,2],[685,1],[697,1],[719,1],[763,2],[766,1],[773,1],[775,2],[778,2],[785,1],[797,1],[822,1],[865,2],[868,1],[875,1],[877,2],[880,2],[887,1],[899,1],[918,1],[962,1],[992,2],[995,1],[1002,1],[1004,2],[1007,2],[1014,1],[1026,1],[1055,1],[1067,2],[1070,1],[1077,1],[1079,2],[1082,2],[1089,1],[1101,1],[1125,1],[1141,2],[1144,1],[1151,1],[1153,3],[1157,2],[1164,1],[1176,1],[1193,1],[1203,2],[1206,1],[1213,1],[1215,2],[1218,2],[1225,1],[1237,1],[1254,1],[1262,2],[1265,2],[1268,2],[1271,2],[1274,1],[1276,1],[1298,1],[1300,1],[1312,1],[1314,1],[1323,1],[1325,1],[1332,1],[1399,1],[1401,2],[1404,3],[1408,6],[1415,11],[1427,6],[1434,10],[1445,4],[1452,3],[1456,20],[1477,7],[1485,11],[1497,5],[1505,3],[1509,8],[1518,5],[1524,7],[1532,3],[1536,17],[1556,3],[1560,8],[1569,5],[1575,5],[1581,4],[1586,18],[1607,11],[1619,11],[1631,3],[1635,7],[1643,6],[1650,3],[1654,3],[1658,11],[1670,11],[1682,3],[1686,5],[1692,6],[1699,3],[1703,3],[1763,1],[1765,1],[1767,1],[1774,1],[1776,2],[1779,2],[1786,1],[1798,1],[1820,1],[1860,2],[1863,1],[1870,1],[1872,2],[1875,2],[1882,1],[1894,1],[1915,1],[1923,1],[1938,2],[1941,1],[1948,1],[1950,2],[1953,2],[1960,1],[1972,1],[1994,1],[2038,2],[2041,1],[2048,1],[2050,2],[2053,2],[2060,1],[2072,1],[2097,1],[2140,2],[2143,1],[2150,1],[2152,2],[2155,2],[2162,1],[2174,1],[2193,1],[2237,1],[2267,2],[2270,1],[2277,1],[2279,2],[2282,2],[2289,1],[2301,1],[2330,1],[2342,2],[2345,1],[2352,1],[2354,2],[2357,2],[2364,1],[2376,1],[2400,1],[2416,2],[2419,1],[2426,1],[2428,3],[2432,2],[2439,1],[2451,1],[2468,1],[2478,2],[2481,1],[2488,1],[2490,2],[2493,2],[2500,1],[2512,1],[2529,1],[2537,2],[2540,2],[2543,2],[2546,2],[2549,2],[2552,1]]}}}],["0",{"_index":266,"t":{"17":{"position":[[1296,2]]},"19":{"position":[[1316,1]]},"46":{"position":[[268,1]]},"62":{"position":[[189,1]]},"78":{"position":[[4788,1]]},"80":{"position":[[528,1],[632,1],[731,1],[831,1],[4598,1],[4612,1],[4859,1],[4873,1],[6503,2],[6532,1],[6651,2],[6679,1]]},"82":{"position":[[1788,1],[1852,2],[3192,1]]},"111":{"position":[[257,1],[282,1],[747,1],[772,1]]},"139":{"position":[[279,1],[302,1],[669,1],[692,1]]},"147":{"position":[[889,1],[1903,1]]},"173":{"position":[[1043,1]]},"248":{"position":[[1959,2],[4529,2]]},"296":{"position":[[1542,3],[4777,3]]},"348":{"position":[[2396,2],[5750,2]]},"388":{"position":[[1174,1],[1748,1],[7851,1],[8425,1]]},"392":{"position":[[209,2],[212,1],[875,2],[878,1]]},"412":{"position":[[182,2],[227,2],[273,2],[739,2],[784,2],[830,2]]},"464":{"position":[[237,2],[240,1],[759,2],[762,1]]},"474":{"position":[[320,2],[323,1]]},"502":{"position":[[395,1]]},"640":{"position":[[134,2],[344,2]]},"642":{"position":[[180,2],[457,2]]},"788":{"position":[[150,2],[412,1],[767,2],[1029,1]]},"916":{"position":[[2575,1]]},"1078":{"position":[[2184,1],[2429,1]]},"1125":{"position":[[137,1],[292,1]]},"1129":{"position":[[329,2],[357,1],[515,1],[562,1],[810,1],[938,1],[1322,2],[1350,1],[1508,1],[1555,1],[1803,1],[1931,1]]},"1380":{"position":[[2493,2],[3036,1],[3658,1]]},"1406":{"position":[[2761,1]]},"1433":{"position":[[877,1],[2244,1],[2284,2],[3122,1],[3265,1],[4040,1],[5407,1],[5447,2]]}}}],["0.10",{"_index":4277,"t":{"1232":{"position":[[711,4]]},"1234":{"position":[[940,4],[1177,4],[1285,4]]}}}],["0.11.2",{"_index":31,"t":{"6":{"position":[[10,6]]},"1216":{"position":[[10,6],[123,7]]},"1218":{"position":[[40,6]]}}}],["0.3",{"_index":3434,"t":{"940":{"position":[[173,4],[504,4]]}}}],["0.4",{"_index":1229,"t":{"115":{"position":[[258,4],[586,4]]},"1123":{"position":[[147,3],[279,3],[643,3],[886,3],[2341,3],[2934,3],[3066,3],[3430,3],[3673,3],[5128,3]]}}}],["0.5",{"_index":2230,"t":{"348":{"position":[[2312,4],[2331,4],[2591,4],[2720,5],[2782,4],[2793,4],[5666,4],[5685,4],[5945,4],[6074,5],[6136,4],[6147,4]]},"1088":{"position":[[3799,4]]},"1100":{"position":[[1538,4],[3807,4]]},"1147":{"position":[[3299,4]]}}}],["0.7.0",{"_index":3857,"t":{"1110":{"position":[[315,5]]},"1147":{"position":[[1424,5]]}}}],["0.8",{"_index":2229,"t":{"348":{"position":[[2288,3],[2701,4],[2757,4],[2771,4],[5642,3],[6055,4],[6111,4],[6125,4]]}}}],["0x01",{"_index":1974,"t":{"296":{"position":[[1689,6],[4924,6]]}}}],["0x1a1f",{"_index":1975,"t":{"296":{"position":[[1696,7],[4931,7]]}}}],["1",{"_index":505,"t":{"46":{"position":[[311,2],[687,1],[963,1],[1015,2]]},"80":{"position":[[5372,1],[5378,2],[7288,1]]},"99":{"position":[[89,2],[126,2],[278,2],[315,2]]},"131":{"position":[[107,2],[147,2],[327,2],[367,2]]},"137":{"position":[[167,1],[301,1],[1125,1],[1259,1]]},"147":{"position":[[388,2],[802,1],[1402,2],[1816,1]]},"167":{"position":[[604,2]]},"189":{"position":[[70,2],[111,2],[491,2],[532,2]]},"208":{"position":[[934,1],[1902,1]]},"214":{"position":[[4508,1]]},"248":{"position":[[1970,2],[4540,2]]},"272":{"position":[[387,2],[1186,2]]},"276":{"position":[[551,2]]},"286":{"position":[[267,2]]},"296":{"position":[[1546,2],[4781,2]]},"302":{"position":[[119,2],[459,2]]},"348":{"position":[[1347,1],[3288,1],[4701,1],[6642,1]]},"388":{"position":[[793,1],[896,1],[1002,1],[1116,1],[1225,1],[1581,2],[7470,1],[7573,1],[7679,1],[7793,1],[7902,1],[8258,2]]},"392":{"position":[[504,2],[1170,2]]},"484":{"position":[[211,1]]},"502":{"position":[[464,1]]},"538":{"position":[[174,2],[417,2]]},"616":{"position":[[217,5],[481,5]]},"762":{"position":[[640,5],[846,2],[1931,5],[2137,2]]},"786":{"position":[[79,2],[269,2]]},"788":{"position":[[154,2],[771,2]]},"932":{"position":[[337,1]]},"966":{"position":[[286,1]]},"1060":{"position":[[3773,2],[3814,2],[3847,2],[3887,2],[3989,2],[8348,2],[8389,2],[8422,2],[8462,2],[8564,2]]},"1066":{"position":[[1115,1],[3166,1]]},"1078":{"position":[[2303,1],[2693,2],[3132,2]]},"1106":{"position":[[1333,1],[2652,1]]},"1159":{"position":[[154,1]]},"1165":{"position":[[289,2],[293,1],[749,2],[753,1]]},"1167":{"position":[[189,2],[193,1],[607,2],[611,1]]},"1292":{"position":[[94,1]]},"1361":{"position":[[674,7],[1585,7]]},"1375":{"position":[[1162,5],[3155,5]]},"1380":{"position":[[946,5],[1838,5]]},"1408":{"position":[[1910,2]]},"1420":{"position":[[297,2],[368,2],[417,2]]},"1422":{"position":[[8391,2],[8615,2]]},"1433":{"position":[[866,2],[2233,2],[2295,1],[3117,2],[4029,2],[5396,2],[5458,1]]}}}],["1):upper",{"_index":1224,"t":{"115":{"position":[[91,10],[419,10]]},"282":{"position":[[731,10]]},"1408":{"position":[[1865,10]]}}}],["1)gv=gv",{"_index":903,"t":{"80":{"position":[[2099,13]]}}}],["10",{"_index":781,"t":{"78":{"position":[[3143,2],[3177,2]]},"1203":{"position":[[125,2]]}}}],["100",{"_index":1200,"t":{"99":{"position":[[140,4],[329,4]]},"131":{"position":[[161,4],[381,4]]},"189":{"position":[[125,4],[546,4]]},"191":{"position":[[130,4],[376,4]]},"220":{"position":[[211,4],[472,4]]},"1088":{"position":[[3793,3],[3806,4]]},"1100":{"position":[[1532,3],[1545,4],[3801,3],[3814,4]]},"1147":{"position":[[3293,3],[3306,4]]},"1175":{"position":[[2807,3]]},"1375":{"position":[[1736,4]]},"1428":{"position":[[730,4]]}}}],["1000",{"_index":832,"t":{"78":{"position":[[4298,4],[4332,6]]},"181":{"position":[[58,5],[222,5]]}}}],["10000",{"_index":839,"t":{"78":{"position":[[4405,5]]}}}],["127.0.0.1",{"_index":1633,"t":{"228":{"position":[[277,12]]},"230":{"position":[[232,12]]},"730":{"position":[[364,12],[735,12]]}}}],["1464982242",{"_index":2946,"t":{"678":{"position":[[902,10],[2219,10]]}}}],["15",{"_index":2225,"t":{"348":{"position":[[2187,2],[5541,2]]},"1123":{"position":[[727,2],[3514,2]]}}}],["150",{"_index":1437,"t":{"196":{"position":[[118,3],[318,3]]},"1106":{"position":[[1147,4],[2466,4]]}}}],["16",{"_index":546,"t":{"52":{"position":[[115,3]]},"348":{"position":[[2294,3],[2319,3],[5648,3],[5673,3]]},"536":{"position":[[489,3],[1462,3]]},"1060":{"position":[[1333,4],[5908,4]]}}}],["1==gi",{"_index":898,"t":{"80":{"position":[[1832,13]]}}}],["2",{"_index":727,"t":{"78":{"position":[[2188,1],[3518,1],[4180,1]]},"80":{"position":[[6560,2],[6706,2]]},"101":{"position":[[81,2],[258,2]]},"111":{"position":[[90,2],[580,2]]},"139":{"position":[[142,2],[532,2]]},"147":{"position":[[274,2],[624,3],[712,2],[1288,2],[1638,3],[1726,2]]},"193":{"position":[[160,2],[395,2]]},"296":{"position":[[1549,2],[4784,2]]},"1123":{"position":[[975,2],[1051,2],[1126,2],[1204,2],[3762,2],[3838,2],[3913,2],[3991,2]]},"1175":{"position":[[664,3],[1663,3]]},"1292":{"position":[[124,1]]},"1375":{"position":[[1268,4],[3261,4]]},"1408":{"position":[[1979,2]]}}}],["2):upper",{"_index":4710,"t":{"1408":{"position":[[1996,10]]}}}],["2.19.0",{"_index":36,"t":{"6":{"position":[[56,6]]}}}],["20",{"_index":3872,"t":{"1123":{"position":[[456,2],[3243,2]]}}}],["200",{"_index":841,"t":{"78":{"position":[[4428,3]]},"214":{"position":[[657,4],[2499,4]]},"282":{"position":[[35,4],[183,4]]},"318":{"position":[[367,4],[766,4]]},"1040":{"position":[[420,4],[998,4]]},"1072":{"position":[[628,4]]}}}],["2000",{"_index":1869,"t":{"282":{"position":[[60,5],[208,5]]},"762":{"position":[[1224,5],[2515,5]]},"1175":{"position":[[503,4],[849,4],[1502,4],[1848,4],[2975,4]]}}}],["2022/02/19",{"_index":1979,"t":{"296":{"position":[[1749,12],[4984,12]]}}}],["2096386344",{"_index":3374,"t":{"916":{"position":[[974,10],[2017,10]]}}}],["22",{"_index":2669,"t":{"470":{"position":[[149,3],[389,3]]},"1147":{"position":[[449,3],[1894,3]]},"1187":{"position":[[136,3],[363,3]]}}}],["2==gi",{"_index":899,"t":{"80":{"position":[[1903,11]]}}}],["3",{"_index":767,"t":{"78":{"position":[[2914,1]]},"181":{"position":[[82,2],[246,2]]},"296":{"position":[[1552,2],[4787,2]]},"358":{"position":[[435,1],[2604,1]]},"462":{"position":[[84,2],[270,2]]},"472":{"position":[[341,2],[726,2]]},"500":{"position":[[82,2],[137,2]]},"1133":{"position":[[278,1],[611,1]]},"1175":{"position":[[681,3],[1680,3]]},"1189":{"position":[[330,2],[704,2]]},"1191":{"position":[[84,2],[275,2]]},"1292":{"position":[[154,1]]},"1433":{"position":[[428,2],[3591,2]]}}}],["30",{"_index":1781,"t":{"248":{"position":[[1812,3],[4382,3]]},"312":{"position":[[69,3],[89,3],[333,3],[353,3]]},"1060":{"position":[[757,3],[5332,3]]}}}],["300",{"_index":833,"t":{"78":{"position":[[4306,3]]}}}],["3000",{"_index":4469,"t":{"1375":{"position":[[431,5],[1509,4],[2424,5]]}}}],["34",{"_index":4238,"t":{"1220":{"position":[[178,2]]}}}],["3rd}/luv/librari",{"_index":4450,"t":{"1363":{"position":[[151,21],[426,21]]}}}],["4",{"_index":791,"t":{"78":{"position":[[3334,1]]},"248":{"position":[[679,3],[3249,3]]},"276":{"position":[[76,2],[228,2]]},"348":{"position":[[2307,2],[2715,2],[5661,2],[6069,2]]},"468":{"position":[[269,2],[576,2]]},"1175":{"position":[[698,2],[1697,2]]},"1185":{"position":[[245,2],[528,2]]},"1292":{"position":[[184,1]]},"1422":{"position":[[239,2],[3301,2]]},"1435":{"position":[[1887,2]]}}}],["40",{"_index":1779,"t":{"248":{"position":[[1755,3],[4325,3]]}}}],["43",{"_index":2674,"t":{"472":{"position":[[259,2],[644,2]]},"1100":{"position":[[1752,2],[4021,2]]},"1165":{"position":[[177,2],[637,2]]},"1189":{"position":[[248,2],[622,2]]}}}],["5",{"_index":853,"t":{"78":{"position":[[4652,1]]},"272":{"position":[[453,2],[1252,2]]},"324":{"position":[[230,2],[630,2]]},"1165":{"position":[[416,2],[876,2]]},"1292":{"position":[[214,1]]}}}],["50",{"_index":1256,"t":{"117":{"position":[[179,2],[374,2]]},"1106":{"position":[[1062,3],[2381,3]]}}}],["500",{"_index":4119,"t":{"1175":{"position":[[2769,3],[2792,3]]},"1361":{"position":[[272,4],[1183,4]]}}}],["5005",{"_index":3104,"t":{"730":{"position":[[384,5],[755,5]]},"762":{"position":[[1144,5],[2435,5]]}}}],["52",{"_index":718,"t":{"78":{"position":[[1995,2]]}}}],["6",{"_index":4376,"t":{"1292":{"position":[[244,1]]}}}],["7",{"_index":4378,"t":{"1292":{"position":[[274,1]]}}}],["8",{"_index":807,"t":{"78":{"position":[[3692,1]]},"1088":{"position":[[1643,1],[3281,1]]},"1100":{"position":[[378,2],[2647,2]]},"1129":{"position":[[491,2],[1484,2]]},"1147":{"position":[[3346,2]]},"1292":{"position":[[304,1]]}}}],["80",{"_index":2227,"t":{"348":{"position":[[2227,3],[2640,3],[5581,3],[5994,3]]},"1383":{"position":[[77,2],[137,2]]}}}],["8086",{"_index":1636,"t":{"228":{"position":[[310,5],[705,7],[720,5]]},"230":{"position":[[265,5],[660,7],[675,5]]}}}],["9",{"_index":1862,"t":{"276":{"position":[[554,1]]},"1292":{"position":[[334,1]]}}}],["900",{"_index":4121,"t":{"1175":{"position":[[2800,3]]}}}],["950",{"_index":4120,"t":{"1175":{"position":[[2777,3]]}}}],["99",{"_index":744,"t":{"78":{"position":[[2575,2]]}}}],["_",{"_index":1575,"t":{"214":{"position":[[3397,2],[4256,2],[4986,2]]},"286":{"position":[[212,2]]},"320":{"position":[[101,2],[428,2]]},"348":{"position":[[1166,2],[4520,2],[6944,2]]},"370":{"position":[[99,2],[486,2]]},"380":{"position":[[107,2],[610,2]]},"388":{"position":[[1620,2],[8297,2]]},"502":{"position":[[106,2]]},"540":{"position":[[278,2],[1140,2]]},"568":{"position":[[283,2],[964,2]]},"678":{"position":[[952,2],[2269,2]]},"788":{"position":[[96,2],[713,2]]},"832":{"position":[[442,2],[1003,2]]},"834":{"position":[[124,2],[410,2]]},"944":{"position":[[47,2],[259,2]]},"946":{"position":[[122,2],[417,2]]},"1066":{"position":[[67,2],[921,2],[2118,2],[2972,2]]},"1088":{"position":[[1331,2],[2969,2]]},"1100":{"position":[[1664,2],[3933,2]]},"1106":{"position":[[221,2],[1540,2]]},"1123":{"position":[[1812,2],[2187,2],[4599,2],[4974,2]]},"1129":{"position":[[365,2],[1358,2]]},"1175":{"position":[[580,2],[1579,2],[2435,2]]},"1199":{"position":[[623,2],[1470,2]]},"1242":{"position":[[2134,2]]},"1380":{"position":[[360,3],[446,5],[1252,3],[1338,5]]},"1413":{"position":[[594,4],[1248,4]]},"1422":{"position":[[2316,4],[5378,4]]},"1428":{"position":[[766,2]]},"1431":{"position":[[379,2],[1927,2]]}}}],["_>\",function",{"_index":1053,"t":{"80":{"position":[[8935,14]]}}}],["__newindex",{"_index":4662,"t":{"1406":{"position":[[1939,10]]}}}],["_reference\"](fals",{"_index":1883,"t":{"282":{"position":[[685,20]]}}}],["_size",{"_index":3927,"t":{"1129":{"position":[[551,8],[770,8],[799,8],[834,8],[1544,8],[1763,8],[1792,8],[1827,8]]}}}],["abbr",{"_index":1776,"t":{"248":{"position":[[1702,4],[4272,4]]}}}],["abeldekat/cmp",{"_index":1508,"t":{"204":{"position":[[31,14]]},"206":{"position":[[638,14]]}}}],["abil",{"_index":4416,"t":{"1361":{"position":[[46,7]]}}}],["abov",{"_index":304,"t":{"17":{"position":[[2777,6],[3177,5]]},"29":{"position":[[44,6]]},"80":{"position":[[4338,6]]},"1234":{"position":[[98,5]]},"1238":{"position":[[1014,6]]},"1242":{"position":[[842,5]]}}}],["accept",{"_index":667,"t":{"74":{"position":[[757,7]]},"91":{"position":[[131,6],[422,6]]},"105":{"position":[[149,6],[532,6]]},"137":{"position":[[476,6],[1434,6]]},"145":{"position":[[39,6],[276,6]]},"214":{"position":[[463,6],[2305,6]]},"248":{"position":[[1122,6],[3692,6]]},"1270":{"position":[[96,6]]}}}],["accept_suggest",{"_index":1262,"t":{"123":{"position":[[39,17],[344,17]]}}}],["accur",{"_index":4641,"t":{"1406":{"position":[[93,8]]}}}],["action",{"_index":1191,"t":{"93":{"position":[[14,6]]},"109":{"position":[[14,6]]},"115":{"position":[[1295,7]]},"125":{"position":[[14,6]]},"149":{"position":[[38,7],[299,7]]},"163":{"position":[[20,6]]},"348":{"position":[[106,7],[2873,7],[2978,7],[3460,7],[6227,7],[6332,7]]},"388":{"position":[[190,7],[6867,7]]},"392":{"position":[[360,6],[1026,6]]},"412":{"position":[[1050,7],[1268,7]]},"456":{"position":[[126,7],[555,7]]},"458":{"position":[[140,7],[512,7]]},"462":{"position":[[132,6],[318,6]]},"464":{"position":[[141,7],[390,6],[663,7],[912,6]]},"470":{"position":[[80,6],[320,6]]},"472":{"position":[[123,6],[508,6]]},"474":{"position":[[224,7],[473,6]]},"912":{"position":[[118,7],[311,7]]},"916":{"position":[[164,8],[1207,8]]},"1060":{"position":[[3358,7],[3517,7],[7933,7],[8092,7]]},"1100":{"position":[[650,6],[732,6],[810,6],[905,6],[998,6],[1090,6],[1191,6],[1265,6],[1327,6],[2919,6],[3001,6],[3079,6],[3174,6],[3267,6],[3359,6],[3460,6],[3534,6],[3596,6]]},"1106":{"position":[[28,8]]},"1147":{"position":[[488,7],[527,6],[536,7],[1933,7],[1972,6],[1981,7]]},"1165":{"position":[[62,6],[522,6]]},"1167":{"position":[[108,6],[526,6]]},"1187":{"position":[[95,6],[322,6]]},"1189":{"position":[[123,6],[497,6]]},"1191":{"position":[[89,6],[280,6]]},"1244":{"position":[[224,6],[368,6]]},"1272":{"position":[[164,7]]},"1306":{"position":[[179,6],[216,6]]},"1385":{"position":[[916,7]]},"1443":{"position":[[538,6],[633,6],[712,6],[815,6],[911,6],[1118,6],[1186,6],[1247,6],[1813,6],[1908,6],[1987,6],[2090,6],[2186,6],[2393,6],[2461,6],[2522,6]]}}}],["action_st",{"_index":2419,"t":{"388":{"position":[[373,12],[592,12],[7050,12],[7269,12]]}}}],["action_state.get_current_lin",{"_index":2421,"t":{"388":{"position":[[436,31],[655,31],[7113,31],[7332,31]]}}}],["actions.clos",{"_index":2447,"t":{"388":{"position":[[2093,14],[8770,14]]}}}],["actions.cycle_history_next",{"_index":2443,"t":{"388":{"position":[[1921,27],[8598,27]]}}}],["actions.cycle_history_prev",{"_index":2444,"t":{"388":{"position":[[1962,27],[8639,27]]}}}],["actions.preview_scrolling_down",{"_index":2445,"t":{"388":{"position":[[2002,31],[8679,31]]}}}],["actions.preview_scrolling_up",{"_index":2446,"t":{"388":{"position":[[2046,29],[8723,29]]}}}],["actions.toggle_hidden",{"_index":2239,"t":{"348":{"position":[[2938,21],[3043,21],[6292,21],[6397,21]]}}}],["actions.toggle_ignor",{"_index":2238,"t":{"348":{"position":[[2899,21],[3004,21],[6253,21],[6358,21]]}}}],["activ",{"_index":481,"t":{"33":{"position":[[43,7]]},"202":{"position":[[616,8],[1785,8]]},"208":{"position":[[817,6],[1785,6]]},"1110":{"position":[[0,6]]},"1236":{"position":[[1457,6],[1547,6],[1793,6]]},"1387":{"position":[[70,6]]}}}],["actual",{"_index":2436,"t":{"388":{"position":[[1418,6],[8095,6]]},"724":{"position":[[82,8]]},"1100":{"position":[[506,6],[2775,6]]}}}],["ad",{"_index":174,"t":{"15":{"position":[[1067,5]]},"23":{"position":[[0,6],[32,6]]},"29":{"position":[[0,6]]},"35":{"position":[[49,6]]},"37":{"position":[[43,5]]},"214":{"position":[[799,6],[2641,6]]},"320":{"position":[[236,5],[563,5]]},"1076":{"position":[[82,6]]},"1211":{"position":[[335,5]]},"1220":{"position":[[82,6]]},"1226":{"position":[[0,5],[19,5],[39,5],[59,5],[78,5],[95,5]]},"1234":{"position":[[215,5]]},"1236":{"position":[[0,5],[203,5],[722,5],[1117,5],[1154,5]]},"1420":{"position":[[15,7]]},"1433":{"position":[[1893,5],[2071,5],[5056,5],[5234,5]]}}}],["adapt",{"_index":1630,"t":{"228":{"position":[[228,7]]},"230":{"position":[[183,7]]},"234":{"position":[[129,8],[1853,8]]},"516":{"position":[[27,8],[165,8]]},"570":{"position":[[27,8],[218,8]]},"612":{"position":[[27,8],[170,8]]},"652":{"position":[[63,8],[147,8]]},"664":{"position":[[161,8]]},"666":{"position":[[27,8],[173,8]]},"702":{"position":[[27,8],[347,8]]},"722":{"position":[[60,9],[154,9]]},"726":{"position":[[3776,9],[3938,8],[6544,9]]},"730":{"position":[[856,9]]},"750":{"position":[[28,8]]},"762":{"position":[[177,9],[1468,9]]},"816":{"position":[[126,9],[305,9]]},"824":{"position":[[27,8],[255,8]]},"838":{"position":[[365,9]]},"842":{"position":[[27,8],[108,8],[287,8],[368,8]]},"844":{"position":[[425,9]]},"848":{"position":[[18,8]]},"864":{"position":[[27,8],[177,8]]},"884":{"position":[[27,8],[373,8]]},"916":{"position":[[2354,7]]},"922":{"position":[[27,8],[128,8]]},"1050":{"position":[[27,8],[167,8]]},"1062":{"position":[[141,9],[304,9]]},"1066":{"position":[[315,9],[366,8],[2048,9],[2366,9],[2417,8]]},"1068":{"position":[[37,7],[73,7],[214,7],[250,7]]},"1076":{"position":[[61,9],[106,8],[231,8]]},"1078":{"position":[[47,8],[99,7],[131,7],[156,7],[180,7],[239,8],[316,8],[789,8],[841,7],[873,7],[898,7],[922,7],[981,8],[1058,8],[2144,7],[2515,8],[2739,7],[2958,7],[3017,7],[3137,7],[3169,8]]}}}],["adapter(config",{"_index":3739,"t":{"1078":{"position":[[3027,15]]}}}],["adapter.adapt",{"_index":3736,"t":{"1078":{"position":[[2913,15],[2968,15]]}}}],["adapter.adapter(config",{"_index":3737,"t":{"1078":{"position":[[2934,23]]}}}],["adapter.host",{"_index":1643,"t":{"228":{"position":[[412,12]]},"230":{"position":[[367,12]]}}}],["adapter.port",{"_index":1641,"t":{"228":{"position":[[390,12]]},"230":{"position":[[345,12]]}}}],["adapter.setup",{"_index":3734,"t":{"1078":{"position":[[2865,13]]}}}],["adapter.setup(config",{"_index":3735,"t":{"1078":{"position":[[2884,21]]}}}],["adapter/com.microsoft.java.debug.plugin",{"_index":3042,"t":{"726":{"position":[[3838,39]]}}}],["adapter_id",{"_index":3715,"t":{"1078":{"position":[[2154,10]]}}}],["adapters[#adapt",{"_index":3729,"t":{"1078":{"position":[[2672,18],[3111,18]]}}}],["adaptertyp",{"_index":3657,"t":{"1066":{"position":[[70,11],[153,11],[2121,11],[2204,11]]}}}],["add",{"_index":109,"t":{"11":{"position":[[180,3]]},"15":{"position":[[440,3]]},"17":{"position":[[133,3],[251,3],[616,3],[920,3],[1311,3],[1541,3],[2855,3],[3380,3],[3839,5],[3984,3],[4120,3]]},"19":{"position":[[249,3],[1563,3]]},"23":{"position":[[321,3],[494,3]]},"25":{"position":[[30,3]]},"27":{"position":[[804,3]]},"29":{"position":[[142,3],[412,3]]},"39":{"position":[[33,3]]},"44":{"position":[[22,3]]},"48":{"position":[[53,3]]},"54":{"position":[[207,3]]},"56":{"position":[[170,3]]},"74":{"position":[[468,4],[627,4]]},"78":{"position":[[234,3]]},"80":{"position":[[231,3],[3818,3],[4233,4],[4325,4]]},"82":{"position":[[250,3]]},"85":{"position":[[405,3]]},"93":{"position":[[0,3]]},"109":{"position":[[0,3]]},"125":{"position":[[0,3]]},"159":{"position":[[0,3]]},"163":{"position":[[0,3]]},"173":{"position":[[40,3],[56,3],[565,4],[1126,3],[1142,3]]},"200":{"position":[[651,4]]},"214":{"position":[[259,3],[1568,3],[2101,3],[3716,3]]},"216":{"position":[[66,3]]},"218":{"position":[[0,3]]},"222":{"position":[[0,3]]},"248":{"position":[[417,3],[2387,3],[2465,4],[2987,3]]},"292":{"position":[[109,3],[125,3],[509,3],[525,3]]},"316":{"position":[[78,3],[335,3]]},"494":{"position":[[0,3]]},"498":{"position":[[0,3]]},"532":{"position":[[0,3]]},"646":{"position":[[0,3]]},"696":{"position":[[0,3]]},"706":{"position":[[0,3]]},"720":{"position":[[0,3]]},"726":{"position":[[4798,4]]},"750":{"position":[[0,3]]},"752":{"position":[[0,3]]},"754":{"position":[[0,3]]},"756":{"position":[[0,3]]},"758":{"position":[[0,3]]},"760":{"position":[[0,3]]},"762":{"position":[[0,3]]},"914":{"position":[[0,3]]},"916":{"position":[[514,3],[1557,3]]},"926":{"position":[[899,3]]},"930":{"position":[[446,3]]},"950":{"position":[[140,3],[705,3],[978,3],[1224,3],[1789,3],[2062,3]]},"954":{"position":[[203,3],[589,3]]},"964":{"position":[[0,3]]},"1026":{"position":[[0,3]]},"1034":{"position":[[126,3],[997,3]]},"1060":{"position":[[410,3],[1862,4],[4985,3],[6437,4]]},"1076":{"position":[[52,3]]},"1141":{"position":[[0,3]]},"1213":{"position":[[420,3],[937,3]]},"1226":{"position":[[230,3]]},"1234":{"position":[[75,3]]},"1236":{"position":[[658,3]]},"1242":{"position":[[806,3],[830,3]]},"1270":{"position":[[121,3],[285,3]]},"1276":{"position":[[77,3]]},"1361":{"position":[[37,4]]},"1367":{"position":[[0,3]]},"1380":{"position":[[565,3],[1457,3],[2722,3],[3001,3],[3104,3]]},"1389":{"position":[[174,3],[353,3],[1913,3],[2092,3]]},"1397":{"position":[[89,3]]},"1410":{"position":[[14,3]]},"1420":{"position":[[391,3]]},"1422":{"position":[[1420,3],[2059,3],[4482,3],[5121,3]]},"1433":{"position":[[2426,3],[5589,3]]}}}],["add(\"fish",{"_index":3960,"t":{"1141":{"position":[[617,11],[1297,11]]}}}],["add(\"git_config",{"_index":3956,"t":{"1141":{"position":[[537,17],[1217,17]]}}}],["add(\"hyprlang",{"_index":3958,"t":{"1141":{"position":[[576,15],[1256,15]]}}}],["add(\"rasi",{"_index":3963,"t":{"1141":{"position":[[670,11],[1350,11]]}}}],["add(lang",{"_index":3940,"t":{"1141":{"position":[[87,9],[767,9]]}}}],["added",{"_index":3450,"t":{"950":{"position":[[403,7],[1487,7]]}}}],["addit",{"_index":294,"t":{"17":{"position":[[2197,10]]},"78":{"position":[[242,10],[1400,10]]},"80":{"position":[[239,10]]},"82":{"position":[[258,10]]},"135":{"position":[[0,10]]},"200":{"position":[[0,10]]},"212":{"position":[[0,10]]},"244":{"position":[[194,10],[781,10]]},"346":{"position":[[0,10]]},"366":{"position":[[0,10]]},"376":{"position":[[0,10]]},"386":{"position":[[0,10]]},"454":{"position":[[0,10]]},"726":{"position":[[7454,10]]},"802":{"position":[[0,10]]},"828":{"position":[[0,10]]},"868":{"position":[[0,10]]},"910":{"position":[[0,10]]},"926":{"position":[[0,10]]},"950":{"position":[[144,10],[290,10],[982,10],[1228,10],[1374,10],[2066,10]]},"1038":{"position":[[0,10]]},"1211":{"position":[[312,10],[408,10]]},"1422":{"position":[[2067,10],[2489,10],[5129,10],[5551,10]]}}}],["addition",{"_index":3026,"t":{"726":{"position":[[1369,12],[3096,12]]},"1234":{"position":[[1072,13]]}}}],["adjust",{"_index":1548,"t":{"214":{"position":[[373,7],[2215,7]]}}}],["advanc",{"_index":4316,"t":{"1238":{"position":[[573,8]]}}}],["aerial",{"_index":1826,"t":{"264":{"position":[[1900,7]]},"268":{"position":[[403,10]]},"270":{"position":[[418,9],[433,9],[907,9],[922,9]]},"272":{"position":[[137,9],[936,9]]},"1286":{"position":[[77,6]]},"1288":{"position":[[89,8]]},"1401":{"position":[[201,6],[878,6]]},"1433":{"position":[[2449,6],[5612,6]]}}}],["aerial.nvim",{"_index":1837,"t":{"270":{"position":[[285,13],[774,13]]},"1236":{"position":[[1170,11]]}}}],["aerial:bd:venvselectaerialtoggleavanteaskavantechatavantechatnewavanteeditavantefocusavantehistoryavantemodelsavanterefreshavantestopavanteswitchprovideravantetogglebnextbpreviousbufferlinecloseleftbufferlinecloserightbufferlinecyclenextbufferlinecycleprevbufferlinegroupclos",{"_index":4856,"t":{"1431":{"position":[[1006,26]]}}}],["cmd>bufferlinemovenextbufferlinemoveprevbufferlinetogglepincall",{"_index":2714,"t":{"502":{"position":[[841,10],[1017,10]]}}}],["cmd>claudecod",{"_index":650,"t":{"74":{"position":[[281,16],[355,16]]}}}],["cmd>claudecodeclaudecodeadd",{"_index":656,"t":{"74":{"position":[[433,19]]}}}],["cmd>claudecodediffacceptclaudecodediffdenyclaudecodefocusclaudecodesendclaudecodetreeadddbuitogglee",{"_index":910,"t":{"80":{"position":[[2419,7],[2494,7]]}}}],["cmd>echo",{"_index":4738,"t":{"1420":{"position":[[309,10],[429,10]]}}}],["cmd>enewexecut",{"_index":892,"t":{"80":{"position":[[1645,13],[1730,13]]}}}],["cmd>fzflua",{"_index":2266,"t":{"348":{"position":[[7583,12],[7755,12],[7920,12],[8016,12],[8318,12],[8398,12],[8559,12],[8626,12],[8699,12],[8766,12],[8831,12],[8908,12],[8975,12],[9052,12],[9122,12],[9188,12],[9267,12],[9332,12],[9413,12],[9655,12],[9723,12],[9805,12],[9867,12],[9931,12],[10000,12],[10067,12],[10133,12],[10194,12]]},"352":{"position":[[144,12],[271,12],[387,12],[502,12],[765,12],[892,12],[1008,12],[1123,12]]}}}],["cmd>ghclosecommitghcloseprghclosereviewghcollapsecommitghcollapseprghcollapsereviewghcreatethreadghdeletereviewghexpandcommitghexpandprghexpandreviewghnextthreadghopenissueghopenprghopentocommitghopentoprghpopoutcommitghpopoutprghprdetailsghpreviewissueghrefreshprghstartreviewghsubmitreviewghtogglethreadhlsevalalllazylspclangdswitchsourceheaderltpanellua",{"_index":4167,"t":{"1207":{"position":[[133,9],[224,9],[319,9],[422,9],[532,9],[658,9],[767,9],[875,9],[987,9],[1083,9],[1178,9],[1276,9],[1375,9]]}}}],["cmd>markdownpreviewtogglemasonnohlsearchdiffupdatenorm",{"_index":927,"t":{"80":{"position":[[3121,43]]}}}],["cmd>norm",{"_index":941,"t":{"80":{"position":[[4043,11]]}}}],["cmd>octo",{"_index":4140,"t":{"1197":{"position":[[388,10],[463,10],[542,10],[611,10],[684,10],[757,10]]}}}],["cmd>outlineoverseerbuildoverseerclearcacheoverseerinfooverseerquickactionoverseerrunoverseertaskactionoverseertoggleqaresiz",{"_index":886,"t":{"80":{"position":[[1297,12],[1377,12]]}}}],["cmd>symbolsoutlinetabclosetabfirsttablasttabnewtabnexttabonlytabprevioustelescop",{"_index":458,"t":{"29":{"position":[[353,15],[1172,15]]},"268":{"position":[[354,15]]},"388":{"position":[[3217,15],[3392,15],[3560,15],[3687,15],[3992,15],[4075,15],[4239,15],[4309,15],[4379,15],[4447,15],[4527,15],[4597,15],[4677,15],[4754,15],[4843,15],[4925,15],[4993,15],[5067,15],[5311,15],[5382,15],[5467,15],[5535,15],[5602,15],[5674,15],[5744,15],[5813,15],[5883,15],[5947,15]]},"396":{"position":[[283,15],[915,15]]},"660":{"position":[[366,15]]},"668":{"position":[[325,15]]}}}],["cmd>todotelescop",{"_index":4624,"t":{"1395":{"position":[[723,19]]}}}],["cmd>todotelescopetroubl",{"_index":4605,"t":{"1393":{"position":[[254,13],[343,13],[452,13],[533,13],[633,13],[720,13]]},"1395":{"position":[[470,13],[545,13]]}}}],["cmd>typescriptorganizeimportstypescriptrenamefiletypstpreviewtogglevertic",{"_index":891,"t":{"80":{"position":[[1457,14],[1546,14]]}}}],["cmd>wlua",{"_index":3080,"t":{"726":{"position":[[6058,15],[6164,15],[6278,15]]}}}],["esc>m",{"_index":897,"t":{"80":{"position":[[1819,12],[1888,12]]}}}],["escap",{"_index":918,"t":{"80":{"position":[[2846,6],[2988,7]]},"1242":{"position":[[609,6]]}}}],["eslint",{"_index":550,"t":{"54":{"position":[[85,7],[140,6]]},"56":{"position":[[25,6],[37,6],[94,6],[270,6],[295,6],[388,8]]},"1040":{"position":[[78,6],[111,6],[273,6],[377,8],[434,9],[656,6],[689,6],[851,6],[955,8],[1012,9]]},"1236":{"position":[[1554,8]]}}}],["eslint.config.j",{"_index":3652,"t":{"1064":{"position":[[288,20],[879,20]]}}}],["eslintrc",{"_index":3547,"t":{"1040":{"position":[[127,8],[705,8]]}}}],["eslintrc.j",{"_index":3646,"t":{"1064":{"position":[[51,16],[642,16]]}}}],["esy.json",{"_index":3150,"t":{"768":{"position":[[217,11],[573,11]]}}}],["etc",{"_index":1976,"t":{"296":{"position":[[1704,5],[1762,5],[2563,4],[4939,5],[4997,5],[5798,4]]},"324":{"position":[[111,3]]},"1395":{"position":[[44,3]]}}}],["ev.buf",{"_index":4685,"t":{"1406":{"position":[[3571,7]]}}}],["ev.match",{"_index":4674,"t":{"1406":{"position":[[3105,9]]}}}],["eval",{"_index":1727,"t":{"240":{"position":[[294,7]]},"1284":{"position":[[72,4]]}}}],["evalu",{"_index":2716,"t":{"502":{"position":[[957,10],[1128,10]]},"648":{"position":[[209,9]]},"1318":{"position":[[80,8]]}}}],["evaluate_singl",{"_index":3968,"t":{"1147":{"position":[[649,15],[2094,15]]}}}],["event",{"_index":189,"t":{"15":{"position":[[1323,5]]},"17":{"position":[[3573,5],[3790,5]]},"27":{"position":[[93,6],[112,6],[153,6],[498,6]]},"62":{"position":[[282,5]]},"66":{"position":[[283,5]]},"80":{"position":[[106,5]]},"82":{"position":[[120,5]]},"91":{"position":[[269,5]]},"101":{"position":[[175,5]]},"105":{"position":[[386,5]]},"111":{"position":[[496,5]]},"123":{"position":[[248,5]]},"139":{"position":[[396,5]]},"147":{"position":[[1020,5]]},"153":{"position":[[213,5]]},"193":{"position":[[264,5]]},"196":{"position":[[198,5]]},"202":{"position":[[1073,5]]},"214":{"position":[[1768,5]]},"248":{"position":[[2255,5]]},"264":{"position":[[933,5]]},"282":{"position":[[146,5]]},"290":{"position":[[95,5]]},"308":{"position":[[53,5]]},"316":{"position":[[150,5]]},"338":{"position":[[3538,6],[3663,5],[3713,5]]},"358":{"position":[[495,5]]},"498":{"position":[[90,5]]},"502":{"position":[[65,5]]},"852":{"position":[[205,5],[1314,5]]},"912":{"position":[[196,5]]},"1072":{"position":[[426,5]]},"1088":{"position":[[1690,5]]},"1094":{"position":[[606,5]]},"1106":{"position":[[654,5],[1382,5],[1973,5]]},"1110":{"position":[[354,5]]},"1114":{"position":[[180,5]]},"1118":{"position":[[108,5]]},"1123":{"position":[[2631,5]]},"1133":{"position":[[331,5]]},"1147":{"position":[[1463,5]]},"1175":{"position":[[997,5]]},"1179":{"position":[[110,5]]},"1197":{"position":[[182,5],[194,5]]},"1357":{"position":[[601,5]]},"1359":{"position":[[186,5]]},"1361":{"position":[[1096,5]]},"1380":{"position":[[139,5],[164,6],[999,5],[1031,5],[1056,6]]},"1385":{"position":[[192,5]]},"1387":{"position":[[1083,5]]},"1389":{"position":[[1874,5]]},"1395":{"position":[[210,5]]},"1406":{"position":[[1104,5]]},"1408":{"position":[[664,5]]},"1410":{"position":[[104,5]]},"1415":{"position":[[243,5]]},"1422":{"position":[[2973,5]]},"1428":{"position":[[564,5],[664,5]]},"1431":{"position":[[890,5]]},"1433":{"position":[[3019,5]]},"1435":{"position":[[317,5],[567,5],[786,5]]}}}],["event.buf",{"_index":1115,"t":{"82":{"position":[[1535,9],[2385,10],[2430,10]]}}}],["event.data.to",{"_index":2066,"t":{"312":{"position":[[3099,14]]}}}],["event.match",{"_index":1160,"t":{"82":{"position":[[3510,11]]}}}],["event.match:match(\"^%w%w",{"_index":1158,"t":{"82":{"position":[[3407,38]]}}}],["events.file_mov",{"_index":2163,"t":{"338":{"position":[[3671,18]]}}}],["events.file_renam",{"_index":2165,"t":{"338":{"position":[[3721,20]]}}}],["everyth",{"_index":4228,"t":{"1213":{"position":[[1451,10]]}}}],["exact",{"_index":461,"t":{"29":{"position":[[637,5]]}}}],["exactli",{"_index":419,"t":{"21":{"position":[[31,7]]},"1236":{"position":[[917,7]]}}}],["exafunction/codeium.nvim",{"_index":1187,"t":{"91":{"position":[[224,27]]},"93":{"position":[[279,27]]}}}],["exampl",{"_index":121,"t":{"13":{"position":[[77,7]]},"17":{"position":[[2393,7]]},"200":{"position":[[478,7]]},"248":{"position":[[2525,8]]},"296":{"position":[[509,7],[3744,7]]},"894":{"position":[[275,7],[697,7]]},"926":{"position":[[220,7],[415,7]]},"1076":{"position":[[71,7]]},"1078":{"position":[[257,7],[999,7]]},"1230":{"position":[[101,9]]},"1375":{"position":[[977,7],[1190,7],[2970,7],[3183,7]]},"1380":{"position":[[632,7],[1524,7]]},"1397":{"position":[[0,7]]},"1422":{"position":[[2681,7],[5743,7]]}}}],["exclud",{"_index":1112,"t":{"82":{"position":[[1497,7]]},"392":{"position":[[247,7],[913,7]]},"464":{"position":[[275,7],[797,7]]},"474":{"position":[[358,7]]},"916":{"position":[[756,7],[1799,7]]},"950":{"position":[[58,7],[807,8],[1142,7],[1891,8]]},"1068":{"position":[[116,7],[293,7]]},"1094":{"position":[[353,7],[961,7]]},"1422":{"position":[[943,7],[4005,7],[8131,7],[9011,7]]}}}],["excludedpackag",{"_index":3309,"t":{"890":{"position":[[327,16],[1374,16]]}}}],["exec",{"_index":3298,"t":{"884":{"position":[[232,7],[578,7]]}}}],["execut",{"_index":1672,"t":{"234":{"position":[[918,9]]},"540":{"position":[[195,10],[457,11],[1057,10],[1319,11]]},"568":{"position":[[151,13],[832,13]]},"762":{"position":[[139,13],[1430,13]]},"816":{"position":[[91,13],[270,13]]},"932":{"position":[[601,9]]},"1066":{"position":[[280,10],[2331,10]]},"1106":{"position":[[663,7],[1982,7]]},"1282":{"position":[[232,8]]}}}],["executionpolici",{"_index":575,"t":{"62":{"position":[[208,15]]}}}],["exist",{"_index":476,"t":{"31":{"position":[[80,8]]},"82":{"position":[[337,8],[3286,5]]},"726":{"position":[[4627,8]]},"1380":{"position":[[2642,5],[3211,5]]}}}],["exit",{"_index":386,"t":{"19":{"position":[[1436,8]]},"78":{"position":[[2316,7]]},"202":{"position":[[528,4],[1697,4]]}}}],["exp",{"_index":2693,"t":{"498":{"position":[[6,3]]}}}],["expand",{"_index":1373,"t":{"167":{"position":[[81,6],[334,6]]},"202":{"position":[[743,6],[1912,6]]},"206":{"position":[[149,6],[788,6]]},"208":{"position":[[740,6],[1708,6]]},"256":{"position":[[69,6],[435,6]]},"338":{"position":[[867,9],[3237,9]]},"1155":{"position":[[363,8],[1044,8],[1630,8]]},"1344":{"position":[[134,6],[400,6],[610,6]]},"1387":{"position":[[782,6],[909,6],[1769,6],[1896,6]]}}}],["expand_from_lsp(args.bodi",{"_index":1511,"t":{"206":{"position":[[173,26],[812,26]]}}}],["expand_from_lsp(snippet",{"_index":1533,"t":{"208":{"position":[[767,24],[1735,24]]}}}],["expand_select_overrid",{"_index":1505,"t":{"202":{"position":[[951,22],[2120,22]]},"206":{"position":[[390,22],[1029,22]]},"208":{"position":[[219,22],[1187,22]]}}}],["expander_collaps",{"_index":2132,"t":{"338":{"position":[[877,18],[3247,18]]}}}],["expander_expand",{"_index":2133,"t":{"338":{"position":[[903,17],[3273,17]]}}}],["expander_highlight",{"_index":2134,"t":{"338":{"position":[[928,18],[3298,18]]}}}],["expect",{"_index":3696,"t":{"1078":{"position":[[74,8],[816,8]]}}}],["experiment",{"_index":1552,"t":{"214":{"position":[[477,12],[713,12],[2319,12],[2555,12]]},"248":{"position":[[2008,12],[4578,12]]},"1060":{"position":[[719,12],[5294,12]]},"1435":{"position":[[7,12]]}}}],["explain",{"_index":451,"t":{"29":{"position":[[34,9]]}}}],["explicitli",{"_index":1770,"t":{"248":{"position":[[1194,10],[3764,10]]},"1060":{"position":[[399,10],[4974,10]]}}}],["explor",{"_index":2114,"t":{"338":{"position":[[5,8],[1216,9],[1364,9],[1429,9],[1512,9],[1676,10],[1812,10]]},"890":{"position":[[480,10],[1527,10]]},"1238":{"position":[[340,9]]},"1260":{"position":[[219,8],[258,8],[371,8],[411,8]]},"1310":{"position":[[85,8],[124,8],[159,8],[199,8]]}}}],["expr",{"_index":867,"t":{"80":{"position":[[562,4],[666,4],[763,4],[863,4],[2968,4],[3341,4],[3426,4],[3511,4],[3601,4],[3686,4],[3771,4]]},"145":{"position":[[599,4]]},"296":{"position":[[2877,4],[2979,4],[3087,4],[3196,4]]},"302":{"position":[[273,4],[613,4]]},"358":{"position":[[888,4],[1037,4],[1202,4],[1714,4],[1885,4],[2040,4]]},"1106":{"position":[[390,4],[1709,4]]},"1406":{"position":[[3790,7]]},"1413":{"position":[[194,4],[284,4],[374,4],[464,4],[848,4],[938,4],[1028,4],[1118,4]]},"1422":{"position":[[6894,7]]},"1435":{"position":[[1765,4],[1934,4]]}}}],["express",{"_index":2742,"t":{"534":{"position":[[188,10],[691,10]]}}}],["ext",{"_index":4535,"t":{"1383":{"position":[[256,3],[365,3],[373,3],[395,3]]}}}],["extend",{"_index":9,"t":{"2":{"position":[[83,6]]},"4":{"position":[[73,6]]},"17":{"position":[[3260,6]]},"27":{"position":[[58,8],[127,8],[194,8],[264,8],[405,8]]},"504":{"position":[[0,6]]},"554":{"position":[[48,8]]},"1060":{"position":[[448,6],[5023,6]]},"1361":{"position":[[0,7]]}}}],["extend_or_overrid",{"_index":3050,"t":{"726":{"position":[[4256,20]]}}}],["extens",{"_index":2206,"t":{"348":{"position":[[1622,10],[4976,10]]},"632":{"position":[[118,9],[340,9]]},"1141":{"position":[[213,9],[893,9]]},"1380":{"position":[[515,9],[747,9],[1407,9],[1639,9]]},"1433":{"position":[[2370,10],[5533,10]]}}}],["extent",{"_index":4694,"t":{"1408":{"position":[[120,9],[786,9]]}}}],["extmark_opt",{"_index":4099,"t":{"1175":{"position":[[821,12],[1820,12],[2947,12]]}}}],["extra",{"_index":229,"t":{"17":{"position":[[137,5],[2676,5]]},"41":{"position":[[27,6]]},"54":{"position":[[122,7]]},"58":{"position":[[24,5]]},"72":{"position":[[24,5]]},"89":{"position":[[24,5]]},"103":{"position":[[24,5]]},"113":{"position":[[24,5]]},"121":{"position":[[24,5]]},"133":{"position":[[24,5]]},"135":{"position":[[28,5]]},"141":{"position":[[24,5]]},"151":{"position":[[24,5]]},"157":{"position":[[24,5]]},"171":{"position":[[24,5]]},"175":{"position":[[24,5]]},"179":{"position":[[24,5]]},"195":{"position":[[89,5]]},"198":{"position":[[24,5]]},"200":{"position":[[28,5],[622,5],[1020,8],[1353,8]]},"210":{"position":[[24,5]]},"212":{"position":[[28,5]]},"214":{"position":[[1688,6]]},"216":{"position":[[186,6]]},"222":{"position":[[148,6]]},"226":{"position":[[24,5]]},"232":{"position":[[24,5]]},"234":{"position":[[166,9]]},"246":{"position":[[24,5]]},"262":{"position":[[24,5]]},"270":{"position":[[247,5],[299,5],[736,5],[788,5]]},"274":{"position":[[24,5]]},"278":{"position":[[24,5]]},"284":{"position":[[24,5]]},"294":{"position":[[24,5]]},"298":{"position":[[24,5]]},"306":{"position":[[24,5]]},"310":{"position":[[24,5]]},"314":{"position":[[24,5]]},"322":{"position":[[24,5]]},"328":{"position":[[24,5]]},"334":{"position":[[251,5],[304,5],[744,5],[797,5]]},"336":{"position":[[24,5]]},"340":{"position":[[24,5]]},"344":{"position":[[24,5]]},"346":{"position":[[28,5]]},"356":{"position":[[24,5]]},"364":{"position":[[24,5]]},"366":{"position":[[28,5]]},"374":{"position":[[24,5]]},"376":{"position":[[28,5]]},"384":{"position":[[24,5]]},"386":{"position":[[28,5]]},"398":{"position":[[24,5]]},"410":{"position":[[24,5]]},"424":{"position":[[24,5]]},"432":{"position":[[24,5]]},"440":{"position":[[24,5]]},"452":{"position":[[24,5]]},"454":{"position":[[28,5]]},"476":{"position":[[24,5]]},"492":{"position":[[24,5]]},"506":{"position":[[24,5]]},"518":{"position":[[24,5]]},"530":{"position":[[24,5]]},"544":{"position":[[24,5]]},"552":{"position":[[24,5]]},"572":{"position":[[24,5]]},"578":{"position":[[24,5]]},"588":{"position":[[24,5]]},"596":{"position":[[24,5]]},"604":{"position":[[24,5]]},"620":{"position":[[24,5]]},"628":{"position":[[24,5]]},"644":{"position":[[24,5]]},"674":{"position":[[24,5]]},"704":{"position":[[24,5]]},"712":{"position":[[24,5]]},"718":{"position":[[24,5]]},"726":{"position":[[3462,5]]},"732":{"position":[[24,5]]},"738":{"position":[[24,5]]},"748":{"position":[[24,5]]},"764":{"position":[[24,5]]},"770":{"position":[[24,5]]},"776":{"position":[[24,5]]},"794":{"position":[[24,5]]},"800":{"position":[[24,5]]},"802":{"position":[[28,5]]},"826":{"position":[[24,5]]},"828":{"position":[[28,5]]},"850":{"position":[[24,5]]},"866":{"position":[[24,5]]},"868":{"position":[[28,5]]},"886":{"position":[[24,5]]},"896":{"position":[[24,5]]},"908":{"position":[[24,5]]},"910":{"position":[[28,5]]},"924":{"position":[[24,5]]},"926":{"position":[[28,5]]},"948":{"position":[[24,5]]},"956":{"position":[[24,5]]},"962":{"position":[[24,5]]},"970":{"position":[[24,5]]},"990":{"position":[[24,5]]},"994":{"position":[[24,5]]},"1008":{"position":[[24,5]]},"1020":{"position":[[24,5]]},"1030":{"position":[[24,5]]},"1036":{"position":[[24,5]]},"1038":{"position":[[28,5]]},"1042":{"position":[[24,5]]},"1052":{"position":[[24,5]]},"1058":{"position":[[24,5]]},"1060":{"position":[[474,6],[5049,6]]},"1070":{"position":[[24,5]]},"1076":{"position":[[296,5]]},"1084":{"position":[[24,5]]},"1088":{"position":[[1173,8],[2811,8]]},"1090":{"position":[[24,5]]},"1096":{"position":[[24,5]]},"1100":{"position":[[1228,8],[3497,8]]},"1102":{"position":[[24,5]]},"1108":{"position":[[24,5]]},"1116":{"position":[[24,5]]},"1122":{"position":[[24,5]]},"1131":{"position":[[24,5]]},"1135":{"position":[[24,5]]},"1143":{"position":[[24,5]]},"1147":{"position":[[1107,8],[2552,8]]},"1149":{"position":[[24,5]]},"1157":{"position":[[24,5]]},"1169":{"position":[[24,5]]},"1173":{"position":[[24,5]]},"1177":{"position":[[24,5]]},"1193":{"position":[[24,5]]},"1201":{"position":[[24,5]]},"1205":{"position":[[24,5]]},"1211":{"position":[[5,5],[504,5]]},"1222":{"position":[[103,5],[201,5]]},"1224":{"position":[[262,5]]},"1230":{"position":[[132,5]]},"1232":{"position":[[9,6],[314,5],[404,5],[590,7],[660,5],[799,7]]},"1234":{"position":[[431,6],[497,6],[572,6],[637,6],[670,6],[856,6],[1123,7],[1232,6],[1345,6],[1606,7]]},"1236":{"position":[[10,5],[215,5],[767,6],[951,6],[1123,5],[1160,5],[1281,5],[1332,6],[2146,5],[2269,5]]},"1365":{"position":[[24,5]]},"1373":{"position":[[81,5],[277,5]]},"1375":{"position":[[1218,5],[3211,5]]},"1443":{"position":[[1109,8],[2384,8]]}}}],["extract",{"_index":2371,"t":{"358":{"position":[[1020,8],[1177,8],[1694,8],[1857,8],[2020,8]]},"726":{"position":[[5537,9],[5613,8],[5694,8],[6028,9],[6126,8],[6238,8],[6348,8]]},"1308":{"position":[[107,7],[164,7],[197,7],[357,7]]}}}],["f",{"_index":1762,"t":{"248":{"position":[[688,4],[3258,4]]},"286":{"position":[[231,4],[236,4]]},"348":{"position":[[388,3],[506,4],[3742,3],[3860,4]]},"388":{"position":[[955,4],[1069,4],[1212,3],[1995,4],[7632,4],[7746,4],[7889,3],[8672,4]]},"1060":{"position":[[4159,1],[4375,1],[8734,1],[8950,1]]},"1100":{"position":[[723,3],[2992,3]]},"1256":{"position":[[54,2]]},"1361":{"position":[[469,1],[1380,1]]},"1406":{"position":[[3296,1]]},"1408":{"position":[[190,6],[292,6],[400,6],[506,6],[856,6],[958,6],[1066,6],[1172,6]]},"1435":{"position":[[1667,4],[1737,3]]},"1443":{"position":[[513,4],[1788,4]]}}}],["f.enabl",{"_index":4680,"t":{"1406":{"position":[[3348,8]]}}}],["f/t",{"_index":1889,"t":{"286":{"position":[[41,3]]}}}],["f:%l:%c:%m",{"_index":754,"t":{"78":{"position":[[2731,13]]}}}],["f:find(\"^ent",{"_index":3639,"t":{"1060":{"position":[[4165,14],[8740,14]]}}}],["f[%d]%d",{"_index":4435,"t":{"1361":{"position":[[722,11],[1633,11]]}}}],["f[%p][%l%d]+%f[^%l%d",{"_index":4439,"t":{"1361":{"position":[[821,25],[1732,25]]}}}],["f[%s][%l%d]+%f[^%l%d",{"_index":4438,"t":{"1361":{"position":[[795,25],[1706,25]]}}}],["f[%w",{"_index":4109,"t":{"1175":{"position":[[2262,7],[2360,7]]}}}],["f[^<%w",{"_index":4433,"t":{"1361":{"position":[[656,14],[1567,14]]}}}],["fail",{"_index":381,"t":{"19":{"position":[[1345,7]]},"159":{"position":[[223,5]]},"1078":{"position":[[2175,6],[2246,8],[2285,6],[2294,6],[2419,6]]}}}],["fallback",{"_index":299,"t":{"17":{"position":[[2563,8]]},"46":{"position":[[797,10],[1028,10]]},"214":{"position":[[90,8],[1932,8],[3985,11],[4109,11]]},"248":{"position":[[1265,10],[1381,11],[3835,10],[3951,11]]},"536":{"position":[[647,8],[1620,8]]},"1375":{"position":[[538,11],[2531,11]]},"1380":{"position":[[456,9],[1348,9],[3005,8]]},"1422":{"position":[[2863,8],[5925,8]]}}}],["fals",{"_index":155,"t":{"15":{"position":[[707,6],[2000,6],[2014,6]]},"17":{"position":[[582,5]]},"19":{"position":[[344,5],[384,5],[1953,6],[2134,6],[2409,6]]},"25":{"position":[[147,5]]},"29":{"position":[[106,6],[310,7],[875,5]]},"56":{"position":[[557,5]]},"62":{"position":[[122,6],[264,6],[406,6]]},"66":{"position":[[113,6],[143,6],[389,6],[419,6]]},"78":{"position":[[470,7],[1690,5],[1839,6],[3283,5],[3621,5],[4689,5]]},"80":{"position":[[8128,5]]},"82":{"position":[[2271,5],[2703,5]]},"87":{"position":[[84,5],[275,5]]},"91":{"position":[[140,6],[431,6]]},"105":{"position":[[158,6],[258,5],[541,6],[641,5]]},"107":{"position":[[143,5],[285,5]]},"115":{"position":[[1530,5],[1559,5]]},"135":{"position":[[205,5]]},"143":{"position":[[176,5],[440,5]]},"155":{"position":[[44,6],[141,6]]},"200":{"position":[[122,7]]},"212":{"position":[[264,5]]},"214":{"position":[[297,6],[1010,6],[1030,6],[1090,5],[2139,6],[2852,6],[2872,6],[2932,5]]},"248":{"position":[[1170,7],[2141,6],[2217,6],[3740,7],[4711,6]]},"264":{"position":[[284,5],[599,6],[1219,5],[1534,6]]},"266":{"position":[[95,5]]},"272":{"position":[[648,6],[1447,6]]},"280":{"position":[[68,5],[124,5]]},"296":{"position":[[152,6],[524,6],[1146,8],[1879,6],[2293,6],[2497,6],[3387,6],[3759,6],[4381,8],[5114,6],[5528,6],[5732,6]]},"312":{"position":[[244,6],[508,6],[2635,6],[2732,6]]},"332":{"position":[[162,5]]},"338":{"position":[[212,6],[735,5],[2582,6],[3105,5]]},"348":{"position":[[873,5],[2866,6],[3219,6],[4227,5],[6220,6],[6573,6],[8263,5],[9606,5],[10372,5],[10548,5]]},"358":{"position":[[60,6],[74,6],[87,6],[98,6],[109,6],[122,6],[135,6],[177,6],[191,6],[204,6],[215,6],[226,6],[239,6],[252,6],[1291,5],[2229,6],[2243,6],[2256,6],[2267,6],[2278,6],[2291,6],[2304,6],[2346,6],[2360,6],[2373,6],[2384,6],[2395,6],[2408,6],[2421,6]]},"376":{"position":[[276,5]]},"388":{"position":[[2264,6],[2979,5],[3937,5],[5262,5],[6153,6],[6348,5]]},"394":{"position":[[664,5]]},"404":{"position":[[265,5],[561,5]]},"406":{"position":[[325,6],[650,6]]},"412":{"position":[[33,6],[79,6],[98,6],[117,6],[136,6],[590,6],[636,6],[655,6],[674,6],[693,6]]},"456":{"position":[[1676,5],[2714,5],[2998,5]]},"484":{"position":[[105,5]]},"534":{"position":[[52,6],[555,6]]},"536":{"position":[[988,5],[1961,5]]},"568":{"position":[[263,6],[944,6]]},"648":{"position":[[70,6]]},"678":{"position":[[116,6],[1433,6]]},"708":{"position":[[98,6]]},"726":{"position":[[1405,5],[1494,5],[3132,5],[3221,5],[3885,6],[4079,6]]},"762":{"position":[[231,5],[928,6],[1522,5],[2219,6]]},"786":{"position":[[43,6],[104,6],[149,6],[233,6],[294,6],[339,6]]},"788":{"position":[[157,7],[774,7]]},"832":{"position":[[525,5],[1086,5]]},"852":{"position":[[1120,6]]},"918":{"position":[[158,5],[301,5]]},"932":{"position":[[858,5]]},"966":{"position":[[54,6]]},"1032":{"position":[[98,6]]},"1034":{"position":[[262,6],[575,5],[609,6],[779,6],[1133,6],[1446,5],[1480,6],[1650,6]]},"1038":{"position":[[122,5]]},"1040":{"position":[[402,6],[980,6]]},"1060":{"position":[[346,6],[376,6],[1185,5],[4921,6],[4951,6],[5760,5]]},"1078":{"position":[[645,5],[1387,5],[2722,5]]},"1086":{"position":[[51,5],[117,5]]},"1088":{"position":[[1733,6]]},"1092":{"position":[[103,5],[161,5]]},"1094":{"position":[[326,6],[344,5],[934,6],[952,5]]},"1098":{"position":[[51,5],[117,5]]},"1100":{"position":[[566,6],[2156,6],[2835,6]]},"1104":{"position":[[94,5],[152,5]]},"1106":{"position":[[211,5],[1288,5],[1301,5],[1530,5],[2607,5],[2620,5]]},"1110":{"position":[[291,6]]},"1112":{"position":[[113,5],[184,5]]},"1114":{"position":[[111,5],[229,5]]},"1118":{"position":[[332,5]]},"1120":{"position":[[75,5],[160,5]]},"1145":{"position":[[65,5],[131,5]]},"1147":{"position":[[1284,7],[1400,6],[2729,7]]},"1161":{"position":[[44,6],[59,6],[130,6],[317,6],[332,6],[403,6]]},"1218":{"position":[[529,6]]},"1226":{"position":[[292,5]]},"1234":{"position":[[759,6],[1576,5]]},"1236":{"position":[[716,5],[1891,5],[1928,5]]},"1357":{"position":[[193,5],[682,5]]},"1375":{"position":[[445,6],[489,6],[2438,6],[2482,6]]},"1387":{"position":[[2117,5]]},"1406":{"position":[[655,6],[3360,5]]},"1420":{"position":[[380,5]]},"1422":{"position":[[205,6],[1219,6],[1933,5],[1964,6],[1981,5],[2208,6],[2361,6],[3267,6],[4281,6],[4995,5],[5026,6],[5043,5],[5270,6],[5423,6],[8283,5],[8349,5],[8447,5]]},"1431":{"position":[[336,6],[1884,6]]},"1433":{"position":[[2709,6],[2936,5],[5872,6],[6099,5]]},"1441":{"position":[[199,5],[510,5]]}}}],["fanci",{"_index":1721,"t":{"240":{"position":[[0,5]]},"1431":{"position":[[30,5]]},"1433":{"position":[[11,5]]}}}],["fantoma",{"_index":2813,"t":{"558":{"position":[[75,10],[173,10]]},"566":{"position":[[81,10],[207,10]]}}}],["far",{"_index":1131,"t":{"82":{"position":[[2061,5]]},"1106":{"position":[[467,5],[1786,5]]},"1123":{"position":[[846,5],[863,5],[3633,5],[3650,5]]},"1383":{"position":[[244,5]]}}}],["far.nvim",{"_index":4270,"t":{"1232":{"position":[[154,9],[169,8]]},"1383":{"position":[[100,10]]}}}],["fast",{"_index":17,"t":{"4":{"position":[[120,4]]}}}],["faster",{"_index":4279,"t":{"1232":{"position":[[734,6]]},"1234":{"position":[[172,6]]},"1238":{"position":[[161,6]]},"1406":{"position":[[77,6]]}}}],["favor",{"_index":3217,"t":{"832":{"position":[[465,5],[1026,5]]},"1226":{"position":[[176,5]]},"1232":{"position":[[51,5],[140,5]]}}}],["fd",{"_index":67,"t":{"6":{"position":[[371,2]]},"388":{"position":[[939,5],[7616,5]]},"1213":{"position":[[1221,2]]}}}],["fdfind",{"_index":2431,"t":{"388":{"position":[[1049,9],[7726,9]]}}}],["feat",{"_index":4677,"t":{"1406":{"position":[[3219,4]]}}}],["featur",{"_index":150,"t":{"15":{"position":[[617,8]]},"1230":{"position":[[297,8],[443,8],[604,8]]},"1234":{"position":[[1062,9]]},"1238":{"position":[[180,8],[678,8]]}}}],["februari",{"_index":1950,"t":{"296":{"position":[[930,11],[4165,11]]}}}],["fedora:latest",{"_index":4221,"t":{"1213":{"position":[[1135,13]]}}}],["feel",{"_index":4271,"t":{"1232":{"position":[[197,5]]}}}],["fg",{"_index":1334,"t":{"147":{"position":[[637,2],[924,2],[1651,2],[1938,2]]},"1175":{"position":[[2817,2],[2906,2],[2918,2]]},"1433":{"position":[[1175,2],[1428,2],[1662,2],[1827,2],[4338,2],[4591,2],[4825,2],[4990,2]]}}}],["field",{"_index":190,"t":{"15":{"position":[[1337,5],[1877,8],[2117,8]]},"202":{"position":[[84,5],[237,5],[1253,5],[1406,5]]},"390":{"position":[[165,5],[335,5]]}}}],["fifth",{"_index":1925,"t":{"296":{"position":[[365,8],[3600,8]]}}}],["file",{"_index":66,"t":{"6":{"position":[[364,6]]},"11":{"position":[[4,5],[112,5],[233,5]]},"15":{"position":[[1351,4]]},"17":{"position":[[14,4],[112,6],[867,5],[950,5],[1118,6],[1969,6]]},"23":{"position":[[69,5],[123,5],[197,4],[228,4]]},"29":{"position":[[290,5],[399,6],[442,5],[592,6],[1218,6]]},"33":{"position":[[105,5]]},"39":{"position":[[344,5]]},"54":{"position":[[249,4]]},"62":{"position":[[232,4]]},"74":{"position":[[632,6]]},"76":{"position":[[4,5],[168,5],[227,5],[579,5]]},"78":{"position":[[297,4],[4445,4]]},"80":{"position":[[294,4],[3923,4],[3999,5],[4421,4],[4480,5],[7779,4]]},"82":{"position":[[523,4],[716,4],[2525,5],[3016,5],[3235,5],[3468,4]]},"85":{"position":[[137,6],[418,5]]},"87":{"position":[[161,5]]},"135":{"position":[[83,5]]},"145":{"position":[[1371,8],[1401,6]]},"200":{"position":[[83,5],[1044,4],[1217,5]]},"212":{"position":[[83,5]]},"228":{"position":[[589,6]]},"230":{"position":[[544,6]]},"234":{"position":[[2350,4]]},"276":{"position":[[388,6],[668,4]]},"312":{"position":[[671,7],[2392,6]]},"338":{"position":[[0,4],[830,4],[3200,4]]},"346":{"position":[[83,5]]},"348":{"position":[[1242,9],[2843,5],[4596,9],[6197,5],[7875,5],[8134,5],[8195,5],[8286,5],[8360,5],[8371,7]]},"358":{"position":[[1137,6],[1195,6],[1817,6],[1878,6]]},"366":{"position":[[83,5]]},"376":{"position":[[83,5],[162,4],[192,4]]},"386":{"position":[[83,5]]},"388":{"position":[[47,5],[845,7],[1381,5],[1425,5],[3515,5],[3808,5],[3869,5],[3960,5],[4037,5],[4048,7],[7522,7],[8058,5],[8102,5]]},"454":{"position":[[83,5]]},"456":{"position":[[1169,5],[1547,5],[1608,5],[1699,5],[1786,5],[1797,7]]},"540":{"position":[[400,6],[496,7],[1262,6],[1358,7]]},"568":{"position":[[434,6],[597,7],[1115,6],[1278,7]]},"692":{"position":[[42,4],[213,4]]},"726":{"position":[[36,6],[4953,5]]},"762":{"position":[[328,6],[442,4],[1619,6],[1733,4]]},"802":{"position":[[83,5]]},"828":{"position":[[83,5]]},"840":{"position":[[233,5]]},"852":{"position":[[217,5],[1326,5]]},"868":{"position":[[83,5]]},"910":{"position":[[83,5]]},"916":{"position":[[746,5],[1789,5]]},"926":{"position":[[83,5],[669,4],[936,4]]},"932":{"position":[[740,4]]},"1012":{"position":[[337,6],[823,6]]},"1038":{"position":[[83,5]]},"1060":{"position":[[1674,5],[3728,4],[3943,5],[4310,7],[6249,5],[8303,4],[8518,5],[8885,7]]},"1064":{"position":[[42,4],[633,4]]},"1066":{"position":[[1233,6],[1250,10],[3284,6],[3301,10]]},"1078":{"position":[[3472,4],[3585,5]]},"1088":{"position":[[632,6],[711,6],[796,7],[2270,6],[2349,6],[2434,7]]},"1100":{"position":[[548,4],[697,6],[775,6],[869,7],[2817,4],[2966,6],[3044,6],[3138,7]]},"1123":{"position":[[481,5],[3268,5]]},"1127":{"position":[[30,5]]},"1147":{"position":[[716,6],[770,6],[831,7],[2161,6],[2215,6],[2276,7]]},"1159":{"position":[[59,5],[74,5]]},"1161":{"position":[[495,4]]},"1163":{"position":[[42,4],[712,4]]},"1171":{"position":[[426,4]]},"1213":{"position":[[153,6],[525,5],[641,6],[1071,5]]},"1232":{"position":[[100,6],[438,4],[866,4]]},"1238":{"position":[[335,4]]},"1242":{"position":[[763,4],[882,4],[1832,4]]},"1244":{"position":[[323,4]]},"1260":{"position":[[42,5],[353,4],[451,5],[486,5],[516,5],[527,6]]},"1270":{"position":[[289,4]]},"1274":{"position":[[166,4]]},"1292":{"position":[[89,4],[119,4],[149,4],[179,4],[209,4],[239,4],[269,4],[299,4],[329,4],[387,4]]},"1302":{"position":[[43,5],[119,5]]},"1308":{"position":[[217,4]]},"1312":{"position":[[94,5],[260,4],[283,5],[318,5],[348,5],[359,6]]},"1336":{"position":[[344,4],[385,5]]},"1375":{"position":[[1025,4],[3018,4]]},"1380":{"position":[[680,4],[1572,4]]},"1383":{"position":[[27,5]]},"1437":{"position":[[33,4],[277,4]]},"1443":{"position":[[531,6],[626,6],[807,7],[1806,6],[1901,6],[2082,7]]}}}],["file/find",{"_index":4550,"t":{"1387":{"position":[[381,11],[1368,11]]}}}],["file_nam",{"_index":3510,"t":{"1012":{"position":[[140,9],[304,10],[626,9],[790,10]]}}}],["file_typ",{"_index":637,"t":{"68":{"position":[[83,10],[197,10]]}}}],["filenam",{"_index":3945,"t":{"1141":{"position":[[274,8],[954,8]]},"1380":{"position":[[3261,8]]}}}],["fileoper",{"_index":4753,"t":{"1422":{"position":[[1484,14],[4546,14]]}}}],["files_set_cwd",{"_index":2044,"t":{"312":{"position":[[1929,13],[2476,14]]}}}],["filesfilt",{"_index":4541,"t":{"1383":{"position":[[351,11]]}}}],["filesystem",{"_index":2115,"t":{"338":{"position":[[53,13],[183,10],[2423,13],[2553,10]]},"1123":{"position":[[1268,10],[4055,10]]}}}],["filetyp",{"_index":224,"t":{"15":{"position":[[2068,8]]},"27":{"position":[[176,9],[220,9]]},"82":{"position":[[1887,9],[2753,9],[3052,10]]},"87":{"position":[[197,10]]},"105":{"position":[[267,9],[650,9]]},"248":{"position":[[400,8],[2970,8]]},"502":{"position":[[171,12]]},"692":{"position":[[0,8],[111,8],[282,8]]},"726":{"position":[[4901,9]]},"768":{"position":[[52,9],[408,9]]},"782":{"position":[[416,11]]},"852":{"position":[[196,8],[1305,8]]},"950":{"position":[[68,8],[155,9],[272,9],[717,9],[816,9],[993,9],[1152,8],[1239,9],[1356,9],[1801,9],[1900,9],[2077,9]]},"1060":{"position":[[422,10],[481,9],[4997,10],[5056,9]]},"1064":{"position":[[0,8]]},"1094":{"position":[[365,9],[973,9]]},"1163":{"position":[[0,8]]},"1232":{"position":[[357,9]]},"1373":{"position":[[469,9]]},"1380":{"position":[[275,8],[306,10],[364,8],[391,9],[1167,8],[1198,10],[1256,8],[1283,9],[2661,8],[2702,8],[2806,8]]},"1422":{"position":[[967,9],[4029,9]]},"1428":{"position":[[555,8],[672,11]]},"1431":{"position":[[64,8],[598,8],[691,8],[2146,8],[2239,8]]},"1433":{"position":[[63,8],[801,11],[3964,11]]},"1437":{"position":[[161,8],[405,8]]}}}],["filetypes_exclud",{"_index":3446,"t":{"950":{"position":[[101,17],[1185,17]]}}}],["filetypes_includ",{"_index":3447,"t":{"950":{"position":[[187,17],[1271,17]]}}}],["filter",{"_index":222,"t":{"15":{"position":[[2052,6]]},"145":{"position":[[1027,6]]},"196":{"position":[[2057,7],[2138,7]]},"312":{"position":[[1208,6]]},"330":{"position":[[127,6],[648,6]]},"456":{"position":[[1919,6]]},"460":{"position":[[576,6],[733,6],[1682,6],[1839,6]]},"1040":{"position":[[425,6],[1003,6]]},"1072":{"position":[[763,6]]},"1123":{"position":[[154,6],[286,6],[514,6],[1587,6],[1940,6],[2400,6],[2941,6],[3073,6],[3301,6],[4374,6],[4727,6],[5187,6]]},"1280":{"position":[[179,6],[213,6]]},"1380":{"position":[[3181,6]]},"1395":{"position":[[571,6]]},"1422":{"position":[[1598,8],[4660,8]]},"1433":{"position":[[2716,6],[5879,6]]},"1435":{"position":[[306,6],[775,6]]}}}],["filter.buf=0u",{"_index":937,"t":{"80":{"position":[[3859,5],[3884,5],[3909,5]]}}}],["gai",{"_index":2643,"t":{"460":{"position":[[840,6],[1946,6]]}}}],["galore#san",{"_index":930,"t":{"80":{"position":[[3262,12]]}}}],["gao",{"_index":2648,"t":{"460":{"position":[[966,6],[2072,6]]}}}],["garymjr/nvim",{"_index":1794,"t":{"256":{"position":[[273,13]]},"258":{"position":[[57,13]]}}}],["gbprod/yanky.nvim",{"_index":1438,"t":{"196":{"position":[[129,20]]}}}],["gc",{"_index":2057,"t":{"312":{"position":[[2470,5]]}}}],["gc_detail",{"_index":2921,"t":{"678":{"position":[[103,10],[1420,10]]}}}],["gccfxauf",{"_index":984,"t":{"80":{"position":[[6040,48]]}}}],["lazyvim.format.snacks_toggle(true):map(\"uf",{"_index":985,"t":{"80":{"position":[[6089,52]]}}}],["lazyvim.get_pkg_path(\"angular",{"_index":2518,"t":{"406":{"position":[[195,29],[520,29]]}}}],["lazyvim.get_pkg_path(\"astro",{"_index":2582,"t":{"448":{"position":[[189,27],[499,27]]}}}],["lazyvim.get_pkg_path(\"svelt",{"_index":3344,"t":{"904":{"position":[[195,28],[518,28]]}}}],["lazyvim.get_pkg_path(\"vu",{"_index":3528,"t":{"1028":{"position":[[243,25],[662,25]]}}}],["lazyvim.ha",{"_index":3055,"t":{"726":{"position":[[4520,12]]}}}],["lazyvim.has(\"blink.cmp",{"_index":3053,"t":{"726":{"position":[[4444,24]]}}}],["lazyvim.has(\"flash.nvim",{"_index":2489,"t":{"392":{"position":[[73,25],[739,25]]}}}],["lazyvim.has(\"mason",{"_index":1698,"t":{"234":{"position":[[1881,18]]},"1422":{"position":[[7885,18]]}}}],["lazyvim.has(\"mason.nvim",{"_index":2992,"t":{"726":{"position":[[122,25],[1849,25],[3612,25],[6380,25]]},"916":{"position":[[2093,25]]}}}],["lazyvim.has(\"mini.snippet",{"_index":1405,"t":{"177":{"position":[[411,28]]}}}],["lazyvim.has(\"neo",{"_index":3877,"t":{"1123":{"position":[[1220,16],[4007,16]]}}}],["lazyvim.has(\"nvim",{"_index":1793,"t":{"256":{"position":[[140,17],[506,17]]},"726":{"position":[[3708,17],[6476,17]]}}}],["lazyvim.has(\"telescope.nvim",{"_index":2381,"t":{"358":{"position":[[2695,29]]},"560":{"position":[[206,29],[735,29]]}}}],["lazyvim.has(\"trouble.nvim",{"_index":2179,"t":{"348":{"position":[[607,27],[3961,27]]},"458":{"position":[[46,27],[418,27]]},"1078":{"position":[[559,27],[1301,27],[1811,27]]},"1433":{"position":[[2565,27],[5728,27]]}}}],["lazyvim.has(plugin",{"_index":1402,"t":{"177":{"position":[[250,19],[835,19]]}}}],["lazyvim.has_extra(\"ai.sidekick",{"_index":1283,"t":{"137":{"position":[[609,32],[1567,32]]},"139":{"position":[[54,32],[444,32]]}}}],["lazyvim.has_extra(\"coding.nvim",{"_index":3409,"t":{"930":{"position":[[216,30]]}}}],["lazyvim.has_extra(\"editor.fzf",{"_index":4153,"t":{"1199":{"position":[[187,31],[1034,31]]}}}],["lazyvim.has_extra(\"editor.snacks_pick",{"_index":4154,"t":{"1199":{"position":[[255,41],[1102,41]]}}}],["lazyvim.has_extra(\"editor.telescop",{"_index":4151,"t":{"1199":{"position":[[111,37],[958,37]]}}}],["lazyvim.has_extra(\"formatting.pretti",{"_index":2521,"t":{"408":{"position":[[57,40],[260,40]]},"450":{"position":[[46,40],[243,40]]},"550":{"position":[[46,40],[245,40]]},"906":{"position":[[46,40],[244,40]]}}}],["lazyvim.info(\"rebuild",{"_index":2466,"t":{"388":{"position":[[3004,24]]},"394":{"position":[[689,24]]}}}],["lazyvim.info(\"tinymist",{"_index":3513,"t":{"1012":{"position":[[268,23],[754,23]]}}}],["lazyvim.inject.args(opts.formatting.format",{"_index":1420,"t":{"189":{"position":[[158,43],[579,43]]}}}],["lazyvim.is_win",{"_index":1354,"t":{"159":{"position":[[142,17]]},"181":{"position":[[133,16]]},"388":{"position":[[2788,17]]},"394":{"position":[[473,17]]}}}],["lazyvim.lsp.action[\"source.addmissingimports.t",{"_index":3587,"t":{"1060":{"position":[[1804,50],[6379,50]]}}}],["lazyvim.lsp.action[\"source.fixall.t",{"_index":3592,"t":{"1060":{"position":[[2001,39],[6576,39]]}}}],["lazyvim.lsp.action[\"source.organizeimport",{"_index":3215,"t":{"832":{"position":[[168,45],[288,45],[729,45],[849,45]]},"902":{"position":[[87,45],[258,45]]},"1060":{"position":[[1712,45],[6287,45]]}}}],["lazyvim.lsp.action[\"source.removeunused.t",{"_index":3590,"t":{"1060":{"position":[[1904,45],[6479,45]]}}}],["lazyvim.lsp.config",{"_index":4758,"t":{"1422":{"position":[[1780,18],[4842,18],[8308,20]]}}}],["lazyvim.lsp.config|boolean",{"_index":4761,"t":{"1422":{"position":[[1872,27],[4934,27]]}}}],["lazyvim.lsp.execut",{"_index":2851,"t":{"606":{"position":[[139,21],[406,21],[758,21],[1025,21]]},"1012":{"position":[[187,21],[673,21]]},"1060":{"position":[[1338,21],[1539,21],[2101,21],[5913,21],[6114,21],[6676,21]]}}}],["lazyvim.lsp.format",{"_index":3691,"t":{"1072":{"position":[[729,20]]}}}],["lazyvim.lsp.formatt",{"_index":3551,"t":{"1040":{"position":[[346,23],[924,23]]}}}],["lazyvim.lsp.on_attach(function(cli",{"_index":2094,"t":{"324":{"position":[[386,38]]},"404":{"position":[[103,38],[399,38]]},"678":{"position":[[913,38],[2230,38]]},"832":{"position":[[403,38],[964,38]]},"1060":{"position":[[3192,38],[7767,38]]},"1422":{"position":[[6169,38]]}}}],["lazyvim.lsp.on_dynamic_capability(require(\"lazyvim.plugins.lsp.keymaps\").on_attach",{"_index":4777,"t":{"1422":{"position":[[6306,83]]}}}],["lazyvim.lsp.on_supports_method(\"textdocument/codelen",{"_index":4791,"t":{"1422":{"position":[[7044,55]]}}}],["lazyvim.lsp.on_supports_method(\"textdocument/foldingrang",{"_index":4786,"t":{"1422":{"position":[[6772,59]]}}}],["lazyvim.lsp.on_supports_method(\"textdocument/inlayhint",{"_index":4779,"t":{"1422":{"position":[[6438,56]]}}}],["lazyvim.lsp.setup",{"_index":4776,"t":{"1422":{"position":[[6286,19]]}}}],["lazyvim.lualine.cmp_source(\"cmp_tabnin",{"_index":1431,"t":{"193":{"position":[[163,41],[398,41]]}}}],["lazyvim.lualine.cmp_source(\"codeium",{"_index":1201,"t":{"101":{"position":[[84,38],[261,38]]}}}],["lazyvim.lualine.pretty_path",{"_index":4887,"t":{"1433":{"position":[[886,29],[4049,29]]}}}],["lazyvim.lualine.root_dir",{"_index":4881,"t":{"1433":{"position":[[610,27],[3773,27]]}}}],["lazyvim.lualine.status(lazyvim.config.icons.kinds.copilot",{"_index":1212,"t":{"111":{"position":[[93,58],[583,58]]},"139":{"position":[[145,58],[535,58]]}}}],["lazyvim.mini.ai_buff",{"_index":4441,"t":{"1361":{"position":[[889,23],[1800,23]]}}}],["lazyvim.mini.ai_whichkey(opt",{"_index":4448,"t":{"1361":{"position":[[2112,30]]}}}],["lazyvim.mini.pairs(opt",{"_index":4412,"t":{"1357":{"position":[[1092,24]]}}}],["lazyvim.news.changelog",{"_index":1047,"t":{"80":{"position":[[8507,24]]}}}],["lazyvim.on_load(\"telescope.nvim",{"_index":1827,"t":{"268":{"position":[[58,33],[228,33]]},"358":{"position":[[2730,33]]},"388":{"position":[[2616,33]]},"394":{"position":[[301,33]]},"660":{"position":[[36,33],[240,33]]},"668":{"position":[[199,33]]},"978":{"position":[[120,33]]},"980":{"position":[[117,33]]},"988":{"position":[[183,33],[383,33]]},"1179":{"position":[[415,33]]}}}],["lazyvim.on_load(\"which",{"_index":4447,"t":{"1361":{"position":[[2043,22]]}}}],["lazyvim.on_very_lazy(funct",{"_index":2261,"t":{"348":{"position":[[7181,31]]},"1072":{"position":[[497,31]]},"1375":{"position":[[1644,31]]}}}],["lazyvim.opts(\"clangd_extensions.nvim",{"_index":2783,"t":{"536":{"position":[[835,38],[1808,38]]}}}],["lazyvim.opts(\"fzf",{"_index":2263,"t":{"348":{"position":[[7306,17]]}}}],["lazyvim.opts(\"mason",{"_index":4822,"t":{"1422":{"position":[[8928,19]]}}}],["lazyvim.opts(\"mini.surround",{"_index":1384,"t":{"173":{"position":[[488,29]]}}}],["lazyvim.opts(\"neo",{"_index":3879,"t":{"1123":{"position":[[1399,17],[4186,17]]}}}],["lazyvim.opts(\"sidekick.nvim",{"_index":1299,"t":{"143":{"position":[[78,29],[342,29]]}}}],["lazyvim.pick",{"_index":3767,"t":{"1088":{"position":[[650,16],[2288,16]]},"1100":{"position":[[664,18],[2933,18]]},"1147":{"position":[[723,15],[2168,15]]}}}],["lazyvim.pick(\"colorschem",{"_index":2322,"t":{"348":{"position":[[10614,29]]},"388":{"position":[[6414,27]]}}}],["lazyvim.pick(\"fil",{"_index":2271,"t":{"348":{"position":[[7839,22],[8159,22],[8232,21]]},"388":{"position":[[3479,22],[3833,22],[3906,21]]},"456":{"position":[[1133,22],[1572,22],[1645,21]]}}}],["lazyvim.pick(\"find_fil",{"_index":2422,"t":{"388":{"position":[[468,26],[687,26],[7145,26],[7364,26]]}}}],["lazyvim.pick(\"grep",{"_index":2595,"t":{"456":{"position":[[971,21]]}}}],["lazyvim.pick(\"grep_cword",{"_index":2319,"t":{"348":{"position":[[10264,27],[10336,26]]}}}],["lazyvim.pick(\"grep_str",{"_index":2480,"t":{"388":{"position":[[6020,27],[6116,27],[6221,28],[6311,27]]}}}],["lazyvim.pick(\"grep_visu",{"_index":2320,"t":{"348":{"position":[[10421,28],[10511,27]]}}}],["lazyvim.pick(\"grep_word",{"_index":2611,"t":{"456":{"position":[[2851,26],[2963,25]]}}}],["lazyvim.pick(\"live_grep",{"_index":2269,"t":{"348":{"position":[[7685,26],[9500,26],[9571,25]]},"388":{"position":[[3322,26],[5156,26],[5227,25]]},"456":{"position":[[2608,26],[2679,25]]},"1088":{"position":[[908,27],[2546,27]]},"1100":{"position":[[919,29],[3188,29]]},"1147":{"position":[[904,26],[2349,26]]}}}],["lazyvim.pick(\"oldfil",{"_index":2281,"t":{"348":{"position":[[8461,24]]},"388":{"position":[[4141,24]]},"456":{"position":[[1824,25]]},"1088":{"position":[[816,26],[2454,26]]},"1100":{"position":[[824,28],[3093,28]]},"1147":{"position":[[839,25],[2284,25]]}}}],["lazyvim.pick(cmd",{"_index":4956,"t":{"1443":{"position":[[86,17],[1361,17]]}}}],["lazyvim.pick.config_fil",{"_index":2275,"t":{"348":{"position":[[8085,28]]},"388":{"position":[[3759,28]]},"456":{"position":[[1498,28]]},"1088":{"position":[[997,29],[2635,29]]},"1100":{"position":[[1012,31],[3281,31]]},"1147":{"position":[[967,28],[2412,28]]}}}],["lazyvim.pick.open(ctx.__info.cmd",{"_index":2188,"t":{"348":{"position":[[915,33],[4269,33]]}}}],["lazyvim.pick.picker.nam",{"_index":1442,"t":{"196":{"position":[[366,24],[480,24]]}}}],["lazyvim.plugin",{"_index":391,"t":{"19":{"position":[[1628,17]]}}}],["lazyvim.plugin.extra_idx(\"editor.aeri",{"_index":1834,"t":{"270":{"position":[[132,41],[621,41]]}}}],["lazyvim.plugin.extra_idx(\"editor.outlin",{"_index":2112,"t":{"334":{"position":[[133,42],[626,42]]}}}],["lazyvim.plugin.extra_idx(\"ui.edgi",{"_index":1832,"t":{"270":{"position":[[77,35],[566,35]]},"334":{"position":[[77,35],[570,35]]}}}],["lazyvim.plugins.extras.ai.avant",{"_index":4359,"t":{"1268":{"position":[[8,32]]}}}],["lazyvim.plugins.extras.ai.claudecod",{"_index":4360,"t":{"1270":{"position":[[8,36]]}}}],["lazyvim.plugins.extras.ai.copilot",{"_index":4361,"t":{"1272":{"position":[[8,33]]}}}],["lazyvim.plugins.extras.ai.sidekick",{"_index":4362,"t":{"1274":{"position":[[8,34]]}}}],["lazyvim.plugins.extras.coding.mini",{"_index":4363,"t":{"1276":{"position":[[8,34]]}}}],["lazyvim.plugins.extras.coding.neogen",{"_index":4364,"t":{"1278":{"position":[[8,36]]}}}],["lazyvim.plugins.extras.coding.yanki",{"_index":4365,"t":{"1280":{"position":[[8,35]]}}}],["lazyvim.plugins.extras.dap.cor",{"_index":4366,"t":{"1282":{"position":[[8,31]]},"1284":{"position":[[8,31]]}}}],["lazyvim.plugins.extras.editor.aeri",{"_index":4367,"t":{"1286":{"position":[[8,36]]},"1288":{"position":[[8,36]]}}}],["lazyvim.plugins.extras.editor.di",{"_index":4368,"t":{"1290":{"position":[[8,34]]}}}],["lazyvim.plugins.extras.editor.harpoon2",{"_index":4369,"t":{"1292":{"position":[[8,38]]}}}],["lazyvim.plugins.extras.editor.illumin",{"_index":4381,"t":{"1294":{"position":[[8,40]]}}}],["lazyvim.plugins.extras.editor.leap",{"_index":4382,"t":{"1296":{"position":[[8,34]]},"1298":{"position":[[8,34]]}}}],["lazyvim.plugins.extras.editor.mini",{"_index":4383,"t":{"1300":{"position":[[8,34]]},"1302":{"position":[[8,34]]}}}],["lazyvim.plugins.extras.editor.outlin",{"_index":4384,"t":{"1304":{"position":[[8,37]]}}}],["lazyvim.plugins.extras.editor.overs",{"_index":4385,"t":{"1306":{"position":[[8,38]]}}}],["lazyvim.plugins.extras.editor.refactor",{"_index":4386,"t":{"1308":{"position":[[8,41]]}}}],["lazyvim.plugins.extras.editor.snacks_explor",{"_index":4387,"t":{"1310":{"position":[[8,45]]}}}],["lazyvim.plugins.extras.editor.snacks_pick",{"_index":4388,"t":{"1312":{"position":[[8,43]]},"1314":{"position":[[8,43]]}}}],["lazyvim.plugins.extras.formatting.pretti",{"_index":557,"t":{"54":{"position":[[321,44]]}}}],["lazyvim.plugins.extras.lang.ans",{"_index":4389,"t":{"1316":{"position":[[8,35]]}}}],["lazyvim.plugins.extras.lang.haskel",{"_index":4390,"t":{"1318":{"position":[[8,35]]},"1320":{"position":[[8,35]]}}}],["lazyvim.plugins.extras.lang.json",{"_index":340,"t":{"17":{"position":[[4079,34]]}}}],["lazyvim.plugins.extras.lang.markdown",{"_index":4391,"t":{"1322":{"position":[[8,36]]}}}],["lazyvim.plugins.extras.lang.python",{"_index":4392,"t":{"1324":{"position":[[8,34]]},"1326":{"position":[[8,34]]}}}],["lazyvim.plugins.extras.lang.scala",{"_index":4393,"t":{"1328":{"position":[[8,33]]}}}],["lazyvim.plugins.extras.lang.sql",{"_index":4394,"t":{"1330":{"position":[[8,31]]}}}],["lazyvim.plugins.extras.lang.tex",{"_index":4395,"t":{"1332":{"position":[[8,31]]}}}],["lazyvim.plugins.extras.lang.typescript",{"_index":305,"t":{"17":{"position":[[2808,40]]}}}],["lazyvim.plugins.extras.lang.typst",{"_index":4396,"t":{"1334":{"position":[[8,33]]}}}],["lazyvim.plugins.extras.linting.eslint",{"_index":556,"t":{"54":{"position":[[267,39]]}}}],["lazyvim.plugins.extras.test.cor",{"_index":4397,"t":{"1336":{"position":[[8,32]]},"1338":{"position":[[8,32]]}}}],["lazyvim.plugins.extras.ui.edgi",{"_index":4398,"t":{"1340":{"position":[[8,30]]}}}],["lazyvim.plugins.extras.ui.mini",{"_index":334,"t":{"17":{"position":[[3937,31]]}}}],["lazyvim.plugins.extras.util.chezmoi",{"_index":4399,"t":{"1342":{"position":[[8,35]]}}}],["lazyvim.plugins.extras.util.gh",{"_index":4400,"t":{"1344":{"position":[[8,30]]}}}],["lazyvim.plugins.extras.util.gitui",{"_index":4401,"t":{"1346":{"position":[[8,33]]}}}],["lazyvim.plugins.extras.util.octo",{"_index":4402,"t":{"1348":{"position":[[8,32]]}}}],["lazyvim.plugins.extras.util.project",{"_index":4403,"t":{"1350":{"position":[[8,35]]},"1352":{"position":[[8,35]]}}}],["lazyvim.plugins.extras.util.rest",{"_index":4404,"t":{"1354":{"position":[[8,32]]}}}],["lazyvim.root",{"_index":1051,"t":{"80":{"position":[[8739,14],[8859,14],[8979,14]]},"338":{"position":[[1186,14]]},"456":{"position":[[202,14],[631,14]]},"1123":{"position":[[1764,16],[4551,16]]}}}],["lazyvim.root.get",{"_index":4083,"t":{"1171":{"position":[[319,18]]}}}],["lazyvim.root.git",{"_index":1021,"t":{"80":{"position":[[7353,18],[7860,18]]}}}],["lazyvim.safe_keymap_set",{"_index":860,"t":{"80":{"position":[[360,25],[451,23]]},"1441":{"position":[[255,23],[566,23]]}}}],["lazyvim.set_default(\"foldexpr",{"_index":4691,"t":{"1406":{"position":[[3803,31]]},"1422":{"position":[[6907,31]]}}}],["lazyvim.set_default(\"foldmethod",{"_index":4690,"t":{"1406":{"position":[[3756,33]]},"1422":{"position":[[6860,33]]}}}],["lazyvim.set_default(\"indentexpr",{"_index":4687,"t":{"1406":{"position":[[3631,33]]}}}],["lazyvim.terminal.setup(\"pwsh",{"_index":702,"t":{"78":{"position":[[1459,30]]}}}],["lazyvim.treesitter.build(funct",{"_index":4652,"t":{"1406":{"position":[[1023,35],[2768,35]]}}}],["lazyvim.treesitter.get_installed(tru",{"_index":4667,"t":{"1406":{"position":[[2526,38],[2861,38]]}}}],["lazyvim.treesitter.have(ft",{"_index":4676,"t":{"1406":{"position":[[3165,27],[3445,27]]},"1408":{"position":[[1561,27]]}}}],["lazyvim.treesitter.have(lang",{"_index":4670,"t":{"1406":{"position":[[2683,29]]}}}],["lazyvim.tsconfig",{"_index":4658,"t":{"1406":{"position":[[1313,17],[1806,16]]}}}],["lazyvim.tsfeat",{"_index":4642,"t":{"1406":{"position":[[220,14],[275,14],[326,14],[1247,14],[1419,14],[1474,14],[1525,14],[3326,14]]}}}],["lazyvim.ui.fg",{"_index":4248,"t":{"1226":{"position":[[159,13]]}}}],["lazyvim.util.cmp",{"_index":1790,"t":{"248":{"position":[[4763,19]]}}}],["lazyvim.warn",{"_index":2113,"t":{"334":{"position":[[220,13],[713,13]]}}}],["lazyvim.warn(\"`telescop",{"_index":2462,"t":{"388":{"position":[[2857,24]]},"394":{"position":[[542,24]]}}}],["lazyvim.warn(\"lint",{"_index":4523,"t":{"1380":{"position":[[3447,20]]}}}],["lazyvim.warn(\"th",{"_index":1835,"t":{"270":{"position":[[217,17],[706,17]]}}}],["lazyvim.warn(\"which",{"_index":4565,"t":{"1387":{"position":[[2427,19]]}}}],["lazyvim/lazyvim",{"_index":124,"t":{"13":{"position":[[120,18]]},"17":{"position":[[334,18]]},"19":{"position":[[355,18],[1600,18]]},"1397":{"position":[[172,18]]}}}],["lazyvim_",{"_index":1082,"t":{"82":{"position":[[399,10]]}}}],["lazyvimkeymap",{"_index":4084,"t":{"1171":{"position":[[487,17]]}}}],["lazyvimstart",{"_index":3794,"t":{"1088":{"position":[[3672,17]]},"1147":{"position":[[3170,17]]}}}],["lcount",{"_index":1120,"t":{"82":{"position":[[1733,6],[1805,6]]}}}],["ldelossa/gh.nvim",{"_index":3991,"t":{"1155":{"position":[[38,19]]}}}],["ldelossa/litee.nvim",{"_index":3989,"t":{"1153":{"position":[[31,22]]}}}],["leader",{"_index":456,"t":{"29":{"position":[[296,13]]},"80":{"position":[[2481,12],[9053,9],[9132,12]]},"85":{"position":[[117,9]]},"276":{"position":[[580,10]]},"348":{"position":[[7570,12],[7672,12],[7742,12]]},"388":{"position":[[3204,12],[3309,12],[3379,12]]},"456":{"position":[[883,12],[958,12],[1023,12]]},"1240":{"position":[[175,8]]},"1242":{"position":[[469,9],[2159,8],[2190,9]]},"1260":{"position":[[61,9],[81,9],[115,9],[143,9]]},"1266":{"position":[[66,9]]},"1312":{"position":[[113,9],[133,9],[161,9]]},"1387":{"position":[[2056,12]]},"1413":{"position":[[1352,12]]}}}],["leader>",{"_index":2145,"t":{"338":{"position":[[1395,12],[1478,12]]},"348":{"position":[[8894,13],[8961,13]]},"388":{"position":[[4513,13],[4583,13]]},"456":{"position":[[3084,13],[3164,13]]},"932":{"position":[[818,9]]},"1260":{"position":[[209,9],[248,9],[745,9],[779,10],[802,10]]},"1310":{"position":[[75,9],[114,9]]},"1312":{"position":[[577,10],[600,10]]},"1387":{"position":[[506,12],[1493,12]]},"1413":{"position":[[1434,12]]}}}],["leader>1",{"_index":4370,"t":{"1292":{"position":[[68,9]]}}}],["leader>2",{"_index":4371,"t":{"1292":{"position":[[98,9]]}}}],["leader>3",{"_index":4372,"t":{"1292":{"position":[[128,9]]}}}],["leader>4",{"_index":4373,"t":{"1292":{"position":[[158,9]]}}}],["leader>5",{"_index":4374,"t":{"1292":{"position":[[188,9]]}}}],["leader>6",{"_index":4375,"t":{"1292":{"position":[[218,9]]}}}],["leader>7",{"_index":4377,"t":{"1292":{"position":[[248,9]]}}}],["leader>8",{"_index":4379,"t":{"1292":{"position":[[278,9]]}}}],["leader>9",{"_index":4380,"t":{"1292":{"position":[[308,9]]}}}],["leader>d",{"_index":1074,"t":{"80":{"position":[[9751,17]]},"1242":{"position":[[2479,14]]}}}],["leader>f",{"_index":1068,"t":{"80":{"position":[[9537,17]]},"1242":{"position":[[2397,14]]}}}],["leader>l",{"_index":1062,"t":{"80":{"position":[[9389,17]]},"1242":{"position":[[2337,14]]}}}],["leader>o",{"_index":1065,"t":{"80":{"position":[[9459,17]]},"1242":{"position":[[2363,14]]}}}],["leader>a",{"_index":599,"t":{"62":{"position":[[781,13],[1274,13]]},"74":{"position":[[77,12],[494,13],[576,13]]},"115":{"position":[[692,12]]},"145":{"position":[[616,12],[890,13]]},"1268":{"position":[[116,10],[321,10]]},"1270":{"position":[[66,9],[274,10],[296,10]]},"1272":{"position":[[90,9]]},"1274":{"position":[[64,9],[212,10]]}}}],["leader>aa",{"_index":592,"t":{"62":{"position":[[652,13]]},"74":{"position":[[703,13]]},"115":{"position":[[748,13]]},"145":{"position":[[792,13]]},"1268":{"position":[[62,10]]},"1270":{"position":[[85,10]]},"1272":{"position":[[109,10]]},"1274":{"position":[[83,10]]}}}],["leader>ab",{"_index":655,"t":{"74":{"position":[[419,13]]},"1270":{"position":[[110,10]]}}}],["leader>ac",{"_index":596,"t":{"62":{"position":[[713,13]]},"74":{"position":[[133,13],[341,13]]},"1268":{"position":[[86,10]]},"1270":{"position":[[142,10],[169,10]]}}}],["leader>ad",{"_index":668,"t":{"74":{"position":[[776,13]]},"145":{"position":[[1086,13]]},"1270":{"position":[[198,10]]},"1274":{"position":[[116,10]]}}}],["leader>af",{"_index":602,"t":{"62":{"position":[[844,13]]},"74":{"position":[[198,13]]},"145":{"position":[[1309,13]]},"1268":{"position":[[141,10]]},"1270":{"position":[[221,10]]},"1274":{"position":[[150,10]]}}}],["leader>ah",{"_index":605,"t":{"62":{"position":[[909,13]]},"1268":{"position":[[167,10]]}}}],["leader>am",{"_index":608,"t":{"62":{"position":[[978,13]]},"1268":{"position":[[195,10]]}}}],["leader>an",{"_index":611,"t":{"62":{"position":[[1051,13]]},"1268":{"position":[[228,10]]}}}],["leader>ap",{"_index":613,"t":{"62":{"position":[[1121,13]]},"115":{"position":[[1211,13]]},"145":{"position":[[1550,13]]},"1268":{"position":[[257,10]]},"1272":{"position":[[146,10]]},"1274":{"position":[[173,10]]}}}],["leader>aq",{"_index":1240,"t":{"115":{"position":[[998,13]]},"1272":{"position":[[191,10]]}}}],["leader>ar",{"_index":616,"t":{"62":{"position":[[1205,13]]},"74":{"position":[[267,13]]},"1268":{"position":[[293,10]]},"1270":{"position":[[247,10]]}}}],["leader>at",{"_index":620,"t":{"62":{"position":[[1337,13]]},"145":{"position":[[1184,13]]},"1268":{"position":[[346,10]]},"1274":{"position":[[236,10]]}}}],["leader>av",{"_index":1322,"t":{"145":{"position":[[1413,13]]},"1274":{"position":[[262,10]]}}}],["leader>ax",{"_index":1238,"t":{"115":{"position":[[874,13]]},"1272":{"position":[[232,10]]}}}],["leader>b",{"_index":2147,"t":{"338":{"position":[[1692,13]]},"1387":{"position":[[751,12],[1738,12]]}}}],["leader>bb",{"_index":909,"t":{"80":{"position":[[2405,13]]},"1242":{"position":[[433,10]]}}}],["leader>bd",{"_index":911,"t":{"80":{"position":[[2556,13],[2741,13]]},"85":{"position":[[202,10]]},"1242":{"position":[[504,10],[565,10]]}}}],["leader>bl",{"_index":4337,"t":{"1246":{"position":[[21,10]]},"1431":{"position":[[1178,13]]}}}],["leader>bo",{"_index":913,"t":{"80":{"position":[[2642,13]]},"1242":{"position":[[531,10]]}}}],["leader>bp",{"_index":1171,"t":{"85":{"position":[[344,10],[394,10]]},"1246":{"position":[[61,10],[85,10]]},"1431":{"position":[[921,13],[992,13]]}}}],["leader>br",{"_index":4338,"t":{"1246":{"position":[[124,10]]},"1431":{"position":[[1089,13]]}}}],["leader>c",{"_index":440,"t":{"23":{"position":[[411,13]]},"264":{"position":[[1854,13]]},"266":{"position":[[81,13]]},"330":{"position":[[459,13]]},"332":{"position":[[8,10],[148,13]]},"1264":{"position":[[21,10],[52,10]]},"1286":{"position":[[66,10]]},"1304":{"position":[[67,10]]},"1387":{"position":[[255,12],[1242,12]]},"1393":{"position":[[438,13],[519,13]]}}}],["leader>ca",{"_index":4334,"t":{"1244":{"position":[[208,10],[350,10]]}}}],["leader>cc",{"_index":4335,"t":{"1244":{"position":[[236,10],[265,10]]}}}],["leader>cd",{"_index":978,"t":{"80":{"position":[[5497,13]]},"1060":{"position":[[1987,13],[6562,13]]},"1242":{"position":[[1008,10]]}}}],["leader>cf",{"_index":970,"t":{"80":{"position":[[5167,13]]},"1242":{"position":[[985,10]]},"1248":{"position":[[21,10]]},"1375":{"position":[[1414,13]]}}}],["leader>cg",{"_index":3074,"t":{"726":{"position":[[5718,14],[5797,14]]}}}],["leader>ch",{"_index":2756,"t":{"536":{"position":[[137,13],[1110,13]]}}}],["leader>cl",{"_index":4333,"t":{"1244":{"position":[[21,10]]}}}],["leader>cm",{"_index":3586,"t":{"1060":{"position":[[1790,13],[6365,13]]},"1254":{"position":[[21,10]]},"1428":{"position":[[154,13]]}}}],["leader>cn",{"_index":1407,"t":{"177":{"position":[[498,13]]},"1278":{"position":[[66,10]]}}}],["leader>co",{"_index":286,"t":{"17":{"position":[[1803,13]]},"39":{"position":[[199,13]]},"726":{"position":[[5878,13]]},"832":{"position":[[154,13],[274,13],[715,13],[835,13]]},"902":{"position":[[73,13],[244,13]]},"1060":{"position":[[1698,13],[6273,13]]}}}],["leader>cp",{"_index":2849,"t":{"606":{"position":[[63,13],[330,13],[682,13],[949,13]]},"782":{"position":[[285,13]]},"1012":{"position":[[63,13],[549,13]]},"1014":{"position":[[191,13]]},"1322":{"position":[[66,10]]},"1334":{"position":[[63,10]]}}}],["leader>cr",{"_index":291,"t":{"17":{"position":[[1914,13]]},"39":{"position":[[282,13]]},"302":{"position":[[126,13],[466,13]]},"916":{"position":[[89,13],[1132,13]]},"1244":{"position":[[305,10],[330,10]]}}}],["leader>cu",{"_index":3589,"t":{"1060":{"position":[[1890,13],[6465,13]]}}}],["leader>cv",{"_index":3233,"t":{"840":{"position":[[304,13]]},"1060":{"position":[[2076,13],[6651,13]]},"1326":{"position":[[64,10]]}}}],["leader>cx",{"_index":3069,"t":{"726":{"position":[[5515,13],[6006,13]]}}}],["leader>cxc",{"_index":3072,"t":{"726":{"position":[[5637,14],[6263,14]]}}}],["leader>cxm",{"_index":3079,"t":{"726":{"position":[[6043,14]]}}}],["leader>cxv",{"_index":3070,"t":{"726":{"position":[[5552,14],[6149,14]]}}}],["leader>d",{"_index":1691,"t":{"234":{"position":[[1549,13]]},"240":{"position":[[233,13]]},"932":{"position":[[174,12]]},"1282":{"position":[[411,10]]},"1284":{"position":[[61,10]]},"1330":{"position":[[61,9]]},"1387":{"position":[[288,12],[1275,12]]}}}],["leader>da",{"_index":1666,"t":{"234":{"position":[[648,13]]},"1282":{"position":[[61,10]]}}}],["leader>db",{"_index":1659,"t":{"234":{"position":[[333,13],[468,13]]},"1282":{"position":[[88,10],[119,10]]}}}],["leader>dc",{"_index":1663,"t":{"234":{"position":[[565,13],[753,13]]},"1282":{"position":[[153,10],[179,10]]}}}],["leader>dg",{"_index":1670,"t":{"234":{"position":[[842,13]]},"1282":{"position":[[206,10]]}}}],["leader>di",{"_index":1673,"t":{"234":{"position":[[933,13]]},"1282":{"position":[[243,10]]}}}],["leader>dj",{"_index":1675,"t":{"234":{"position":[[1014,13]]},"1282":{"position":[[266,10]]}}}],["leader>dk",{"_index":1677,"t":{"234":{"position":[[1085,13]]},"1282":{"position":[[284,10]]}}}],["leader>dl",{"_index":1679,"t":{"234":{"position":[[1152,13]]},"1282":{"position":[[300,10]]}}}],["leader>do",{"_index":1681,"t":{"234":{"position":[[1231,13],[1310,13]]},"1282":{"position":[[322,10],[344,10]]}}}],["leader>dp",{"_index":1685,"t":{"234":{"position":[[1391,13]]},"1228":{"position":[[228,10]]},"1260":{"position":[[171,11]]},"1282":{"position":[[367,10]]},"1387":{"position":[[322,13],[1309,13]]},"1413":{"position":[[1523,14]]}}}],["leader>dpc",{"_index":3225,"t":{"838":{"position":[[200,14]]},"844":{"position":[[260,14]]},"1324":{"position":[[64,11]]}}}],["leader>dph",{"_index":4331,"t":{"1242":{"position":[[1681,11]]}}}],["leader>dpp",{"_index":4330,"t":{"1242":{"position":[[1651,11]]}}}],["leader>dpt",{"_index":3222,"t":{"838":{"position":[[91,14]]},"844":{"position":[[151,14]]},"1324":{"position":[[90,11]]}}}],["leader>dr",{"_index":1688,"t":{"234":{"position":[[1464,13]]},"916":{"position":[[211,13],[1254,13]]},"1282":{"position":[[386,10]]}}}],["leader>dt",{"_index":1693,"t":{"234":{"position":[[1626,13]]},"1282":{"position":[[432,10]]}}}],["leader>du",{"_index":1724,"t":{"240":{"position":[[153,13]]},"1284":{"position":[[82,10]]}}}],["leader>dw",{"_index":1695,"t":{"234":{"position":[[1707,13]]},"1282":{"position":[[455,10]]}}}],["leader>f",{"_index":2141,"t":{"338":{"position":[[1102,13],[1252,13],[1408,13],[1491,13]]},"1260":{"position":[[360,10],[400,10]]},"1310":{"position":[[148,10],[188,10]]},"1387":{"position":[[360,12],[1347,12]]}}}],["leader>fb",{"_index":2272,"t":{"348":{"position":[[7906,13],[8002,13]]},"388":{"position":[[3546,13],[3673,13]]},"456":{"position":[[1294,13],[1370,13]]},"1260":{"position":[[282,10],[303,10]]},"1312":{"position":[[189,10],[210,10]]}}}],["leader>fc",{"_index":2274,"t":{"348":{"position":[[8071,13]]},"388":{"position":[[3745,13]]},"456":{"position":[[1484,13]]},"1260":{"position":[[330,10]]},"1312":{"position":[[237,10]]}}}],["leader>ff",{"_index":457,"t":{"29":{"position":[[339,13],[1158,13]]},"348":{"position":[[8145,13],[8218,13]]},"388":{"position":[[3819,13],[3892,13]]},"456":{"position":[[1558,13],[1631,13]]},"1260":{"position":[[435,10],[470,10]]},"1312":{"position":[[267,10],[302,10]]}}}],["leader>fg",{"_index":2276,"t":{"348":{"position":[[8304,13]]},"388":{"position":[[3978,13]]},"456":{"position":[[1717,13]]},"1260":{"position":[[500,10]]},"1312":{"position":[[332,10]]}}}],["leader>fm",{"_index":2018,"t":{"312":{"position":[[532,13],[684,13]]},"1302":{"position":[[70,10],[127,10]]}}}],["leader>fn",{"_index":950,"t":{"80":{"position":[[4435,13]]},"1242":{"position":[[867,10]]}}}],["leader>fp",{"_index":254,"t":{"17":{"position":[[976,13]]},"29":{"position":[[450,13]]},"456":{"position":[[1977,13]]},"1181":{"position":[[92,13]]},"1183":{"position":[[79,13]]},"1260":{"position":[[536,10]]},"1312":{"position":[[368,10]]},"1350":{"position":[[65,10]]},"1352":{"position":[[65,10]]}}}],["leader>fr",{"_index":2278,"t":{"348":{"position":[[8384,13],[8447,13]]},"388":{"position":[[4061,13],[4127,13]]},"456":{"position":[[1810,13],[1871,13]]},"1260":{"position":[[558,10],[578,10]]},"1312":{"position":[[390,10],[410,10]]}}}],["leader>ft",{"_index":1048,"t":{"80":{"position":[[8599,13],[8685,13]]},"1242":{"position":[[2039,10],[2067,10]]}}}],["leader>g",{"_index":2146,"t":{"338":{"position":[[1556,13]]},"348":{"position":[[8752,13],[8817,13]]},"388":{"position":[[4365,13],[4433,13]]},"456":{"position":[[2254,13],[2336,13]]},"1155":{"position":[[173,12]]},"1197":{"position":[[743,13]]},"1260":{"position":[[665,10],[689,10]]},"1312":{"position":[[497,10],[521,10]]},"1344":{"position":[[60,9]]},"1348":{"position":[[219,10]]},"1387":{"position":[[398,12],[1385,12]]}}}],["leader>gb",{"_index":1025,"t":{"80":{"position":[[7601,13],[7927,13]]},"1234":{"position":[[9,10]]},"1242":{"position":[[1781,10],[1868,10]]}}}],["leader>gc",{"_index":2282,"t":{"348":{"position":[[8545,13]]},"388":{"position":[[4225,13]]},"1155":{"position":[[212,13],[314,14]]},"1344":{"position":[[80,10],[122,11]]}}}],["leader>gcc",{"_index":3994,"t":{"1155":{"position":[[253,14]]},"1344":{"position":[[102,11]]}}}],["leader>gco",{"_index":3997,"t":{"1155":{"position":[[377,14]]},"1344":{"position":[[143,11]]}}}],["leader>gcp",{"_index":3999,"t":{"1155":{"position":[[441,14]]},"1344":{"position":[[165,11]]}}}],["leader>gcz",{"_index":4001,"t":{"1155":{"position":[[505,14]]},"1344":{"position":[[187,11]]}}}],["leader>gd",{"_index":2284,"t":{"348":{"position":[[8612,13]]},"456":{"position":[[2062,13],[2148,13]]},"1260":{"position":[[604,10],[634,10]]},"1312":{"position":[[436,10],[466,10]]}}}],["leader>gf",{"_index":1028,"t":{"80":{"position":[[7698,13]]},"1171":{"position":[[567,13]]},"1242":{"position":[[1809,10]]}}}],["leader>gg",{"_index":1019,"t":{"80":{"position":[[7304,13],[7422,13]]},"1171":{"position":[[171,13],[257,13]]},"1346":{"position":[[63,10],[93,10]]}}}],["leader>gh",{"_index":4551,"t":{"1387":{"position":[[430,13],[1417,13]]},"1389":{"position":[[1102,14],[1243,14],[2841,14],[2982,14]]}}}],["leader>ghb",{"_index":4592,"t":{"1389":{"position":[[1491,14],[1576,14],[3230,14],[3315,14]]}}}],["leader>ghd",{"_index":4595,"t":{"1389":{"position":[[1643,14],[1693,14],[3382,14],[3432,14]]}}}],["leader>ghp",{"_index":4590,"t":{"1389":{"position":[[1420,14],[3159,14]]}}}],["leader>ghr",{"_index":4584,"t":{"1389":{"position":[[1177,14],[1363,14],[2916,14],[3102,14]]}}}],["leader>ghu",{"_index":4587,"t":{"1389":{"position":[[1300,14],[3039,14]]}}}],["leader>gi",{"_index":1033,"t":{"80":{"position":[[8025,13]]},"1155":{"position":[[572,13]]},"1197":{"position":[[374,13],[449,13]]},"1242":{"position":[[1902,10]]},"1344":{"position":[[210,10]]},"1348":{"position":[[62,10],[94,10]]}}}],["leader>gio",{"_index":4006,"t":{"1155":{"position":[[676,14]]},"1344":{"position":[[231,11]]}}}],["leader>gip",{"_index":4004,"t":{"1155":{"position":[[612,14]]},"1344":{"position":[[250,11]]}}}],["leader>gl",{"_index":1022,"t":{"80":{"position":[[7510,13],[7805,13]]},"348":{"position":[[8685,13]]},"388":{"position":[[4295,13]]},"1155":{"position":[[734,13]]},"1171":{"position":[[608,13]]},"1242":{"position":[[1754,10],[1847,10]]},"1344":{"position":[[272,10]]}}}],["leader>glt",{"_index":4009,"t":{"1155":{"position":[[773,14]]},"1344":{"position":[[292,11]]}}}],["leader>go",{"_index":2069,"t":{"316":{"position":[[181,13]]},"1236":{"position":[[121,11]]},"1300":{"position":[[69,10]]}}}],["leader>gp",{"_index":4011,"t":{"1155":{"position":[[835,13],[999,14]]},"1197":{"position":[[528,13],[597,13]]},"1344":{"position":[[319,10],[388,11]]},"1348":{"position":[[128,10],[157,10]]}}}],["leader>gpc",{"_index":4013,"t":{"1155":{"position":[[881,14]]},"1344":{"position":[[346,11]]}}}],["leader>gpd",{"_index":4015,"t":{"1155":{"position":[[938,14]]},"1344":{"position":[[366,11]]}}}],["leader>gpo",{"_index":4019,"t":{"1155":{"position":[[1058,14]]},"1344":{"position":[[409,11]]}}}],["leader>gpp",{"_index":4021,"t":{"1155":{"position":[[1113,14]]},"1344":{"position":[[428,11]]}}}],["leader>gpr",{"_index":4024,"t":{"1155":{"position":[[1172,14]]},"1344":{"position":[[449,11]]}}}],["leader>gpt",{"_index":4026,"t":{"1155":{"position":[[1233,14]]},"1344":{"position":[[471,11]]}}}],["leader>gpz",{"_index":4028,"t":{"1155":{"position":[[1293,14]]},"1344":{"position":[[493,11]]}}}],["leader>gr",{"_index":4030,"t":{"1155":{"position":[[1356,13],[1581,14],[1644,14]]},"1197":{"position":[[670,13]]},"1344":{"position":[[516,10],[598,11],[619,11]]},"1348":{"position":[[188,10]]}}}],["leader>grb",{"_index":4032,"t":{"1155":{"position":[[1396,14]]},"1344":{"position":[[537,11]]}}}],["leader>grc",{"_index":4034,"t":{"1155":{"position":[[1457,14]]},"1344":{"position":[[557,11]]}}}],["leader>grd",{"_index":4036,"t":{"1155":{"position":[[1518,14]]},"1344":{"position":[[577,11]]}}}],["leader>grz",{"_index":4040,"t":{"1155":{"position":[[1707,14]]},"1344":{"position":[[640,11]]}}}],["leader>gt",{"_index":4042,"t":{"1155":{"position":[[1774,13]]},"1344":{"position":[[663,10]]}}}],["leader>gtc",{"_index":4044,"t":{"1155":{"position":[[1815,14]]},"1344":{"position":[[685,11]]}}}],["leader>gtn",{"_index":4046,"t":{"1155":{"position":[[1878,14]]},"1344":{"position":[[706,11]]}}}],["leader>gtt",{"_index":4048,"t":{"1155":{"position":[[1937,14]]},"1344":{"position":[[725,11]]}}}],["leader>h",{"_index":1857,"t":{"276":{"position":[[311,12],[400,12]]},"1292":{"position":[[338,9],[369,9]]}}}],["leader>k",{"_index":940,"t":{"80":{"position":[[4030,12]]},"968":{"position":[[100,12],[280,12]]},"1242":{"position":[[779,9]]}}}],["leader>l",{"_index":948,"t":{"80":{"position":[[4365,12],[8483,12]]},"1242":{"position":[[850,9],[2009,9]]}}}],["leader>m",{"_index":3320,"t":{"890":{"position":[[712,13]]},"1328":{"position":[[99,10]]}}}],["leader>mc",{"_index":3322,"t":{"890":{"position":[[823,13]]},"1328":{"position":[[63,10]]}}}],["leader>mh",{"_index":3325,"t":{"890":{"position":[[927,13]]},"1328":{"position":[[128,10]]}}}],["leader>n",{"_index":2597,"t":{"456":{"position":[[1192,12]]},"1260":{"position":[[712,9]]},"1312":{"position":[[544,9]]},"1441":{"position":[[653,12]]}}}],["leader>o",{"_index":2559,"t":{"416":{"position":[[38,12],[141,12]]}}}],["leader>ob",{"_index":2551,"t":{"412":{"position":[[1143,13]]},"1306":{"position":[[68,10]]}}}],["leader>oc",{"_index":2556,"t":{"412":{"position":[[1281,13]]},"1306":{"position":[[94,10]]}}}],["leader>oi",{"_index":2548,"t":{"412":{"position":[[1076,13]]},"1306":{"position":[[119,10]]}}}],["leader>oo",{"_index":2544,"t":{"412":{"position":[[936,13]]},"1306":{"position":[[146,10]]}}}],["leader>oq",{"_index":2546,"t":{"412":{"position":[[997,13]]},"1306":{"position":[[168,10]]}}}],["leader>ot",{"_index":2554,"t":{"412":{"position":[[1210,13]]},"1306":{"position":[[200,10]]}}}],["leader>ow",{"_index":2541,"t":{"412":{"position":[[871,13]]},"1306":{"position":[[225,10]]}}}],["leader>p",{"_index":1441,"t":{"196":{"position":[[339,12]]},"1280":{"position":[[65,9]]}}}],["leader>q",{"_index":4350,"t":{"1258":{"position":[[95,10],[124,10]]},"1387":{"position":[[465,12],[1452,12]]},"1415":{"position":[[305,13],[395,13]]}}}],["leader>qd",{"_index":4348,"t":{"1258":{"position":[[21,10]]},"1415":{"position":[[595,13]]}}}],["leader>ql",{"_index":4349,"t":{"1258":{"position":[[61,10]]},"1415":{"position":[[485,13]]}}}],["leader>qq",{"_index":1038,"t":{"80":{"position":[[8191,13]]},"1242":{"position":[[1936,10]]}}}],["leader>r",{"_index":2365,"t":{"358":{"position":[[626,12],[688,13]]},"1207":{"position":[[82,12],[408,13],[1164,13],[1262,13]]},"1308":{"position":[[71,9],[321,10]]},"1354":{"position":[[62,9],[164,10],[402,10],[432,10]]}}}],["leader>rb",{"_index":2369,"t":{"358":{"position":[[906,13]]},"1207":{"position":[[119,13]]},"1308":{"position":[[96,10]]},"1354":{"position":[[80,10]]}}}],["leader>rc",{"_index":2376,"t":{"358":{"position":[[1477,13]]},"1207":{"position":[[210,13],[305,13]]},"1308":{"position":[[126,10]]},"1354":{"position":[[109,10],[135,10]]}}}],["leader>rf",{"_index":2372,"t":{"358":{"position":[[1055,13],[1577,13],[1732,13]]},"1308":{"position":[[153,10],[186,10]]}}}],["leader>rg",{"_index":4173,"t":{"1207":{"position":[[518,13]]},"1354":{"position":[[193,10]]}}}],["leader>ri",{"_index":2367,"t":{"358":{"position":[[753,13]]},"1207":{"position":[[644,13]]},"1308":{"position":[[227,10]]},"1354":{"position":[[230,10]]}}}],["leader>rn",{"_index":4178,"t":{"1207":{"position":[[753,13]]},"1354":{"position":[[267,10]]}}}],["leader>rp",{"_index":2373,"t":{"358":{"position":[[1220,13],[1332,13],[2058,13]]},"1207":{"position":[[861,13]]},"1308":{"position":[[259,10],[296,10]]},"1354":{"position":[[301,10]]}}}],["leader>rq",{"_index":4181,"t":{"1207":{"position":[[973,13]]},"1354":{"position":[[339,10]]}}}],["leader>rr",{"_index":4183,"t":{"1207":{"position":[[1069,13]]},"1354":{"position":[[365,10]]}}}],["leader>rt",{"_index":4188,"t":{"1207":{"position":[[1361,13]]},"1354":{"position":[[456,10]]}}}],["leader>rx",{"_index":2379,"t":{"358":{"position":[[1903,13]]},"1308":{"position":[[346,10]]}}}],["leader>sa",{"_index":2292,"t":{"348":{"position":[[9038,13]]},"388":{"position":[[4663,13]]},"456":{"position":[[3254,13]]},"1260":{"position":[[830,10]]},"1312":{"position":[[628,10]]}}}],["leader>sb",{"_index":2294,"t":{"348":{"position":[[9108,13]]},"388":{"position":[[4740,13]]},"456":{"position":[[2424,13],[2503,13]]},"1260":{"position":[[852,10],[878,10]]},"1312":{"position":[[650,10],[676,10]]}}}],["leader>sc",{"_index":2296,"t":{"348":{"position":[[9174,13],[9253,13]]},"388":{"position":[[4829,13],[4911,13]]},"456":{"position":[[3332,13],[3424,13]]},"1260":{"position":[[909,10],[938,10]]},"1312":{"position":[[707,10],[736,10]]}}}],["leader>sd",{"_index":2298,"t":{"348":{"position":[[9318,13],[9399,13]]},"388":{"position":[[4979,13],[5053,13]]},"456":{"position":[[3502,13],[3586,13]]},"1260":{"position":[[960,10],[985,10]]},"1312":{"position":[[758,10],[783,10]]}}}],["leader>sg",{"_index":2301,"t":{"348":{"position":[[9486,13],[9557,13]]},"388":{"position":[[5142,13],[5213,13]]},"456":{"position":[[2594,13],[2665,13]]},"1260":{"position":[[1017,10],[1046,10]]},"1312":{"position":[[815,10],[844,10]]}}}],["leader>sh",{"_index":2302,"t":{"348":{"position":[[9641,13],[9709,13]]},"388":{"position":[[5297,13],[5368,13]]},"456":{"position":[[3684,13],[3760,13]]},"1260":{"position":[[1070,10],[1094,10]]},"1312":{"position":[[868,10],[892,10]]}}}],["leader>si",{"_index":2620,"t":{"456":{"position":[[3842,13]]},"1260":{"position":[[1118,10]]},"1312":{"position":[[916,10]]}}}],["leader>sj",{"_index":2305,"t":{"348":{"position":[[9791,13]]},"388":{"position":[[5453,13]]},"456":{"position":[[3914,13]]},"1260":{"position":[[1137,10]]},"1312":{"position":[[935,10]]}}}],["leader>sk",{"_index":2308,"t":{"348":{"position":[[9853,13]]},"388":{"position":[[5521,13]]},"456":{"position":[[3986,13]]},"1260":{"position":[[1156,10]]},"1312":{"position":[[954,10]]}}}],["leader>sl",{"_index":2310,"t":{"348":{"position":[[9917,13]]},"388":{"position":[[5588,13]]},"456":{"position":[[4062,13]]},"1260":{"position":[[1177,10]]},"1312":{"position":[[975,10]]}}}],["leader>sm",{"_index":2312,"t":{"348":{"position":[[9986,13],[10053,13]]},"388":{"position":[[5660,13],[5730,13]]},"456":{"position":[[4144,13],[4218,13]]},"1260":{"position":[[1204,10],[1223,10]]},"1312":{"position":[[1002,10],[1021,10]]}}}],["leader>sn",{"_index":4339,"t":{"1256":{"position":[[80,10]]},"1435":{"position":[[1044,13]]}}}],["leader>sna",{"_index":4340,"t":{"1256":{"position":[[100,11]]},"1435":{"position":[[1385,14]]}}}],["leader>snd",{"_index":4341,"t":{"1256":{"position":[[124,11]]},"1435":{"position":[[1468,14]]}}}],["leader>snh",{"_index":4343,"t":{"1256":{"position":[[150,11]]},"1435":{"position":[[1294,14]]}}}],["leader>snl",{"_index":4344,"t":{"1256":{"position":[[178,11]]},"1435":{"position":[[1201,14]]}}}],["leader>snt",{"_index":4345,"t":{"1256":{"position":[[211,11]]},"1435":{"position":[[1557,14]]}}}],["leader>so",{"_index":2478,"t":{"388":{"position":[[5799,13]]}}}],["leader>sp",{"_index":2609,"t":{"456":{"position":[[2749,13]]},"1260":{"position":[[1246,10]]},"1312":{"position":[[1044,10]]}}}],["leader>sq",{"_index":2316,"t":{"348":{"position":[[10180,13]]},"388":{"position":[[5933,13]]},"456":{"position":[[4364,13]]},"1260":{"position":[[1282,10]]},"1312":{"position":[[1080,10]]}}}],["leader>sr",{"_index":2315,"t":{"348":{"position":[[10119,13]]},"388":{"position":[[5869,13]]},"456":{"position":[[4290,13]]},"1252":{"position":[[21,10]]},"1260":{"position":[[1309,10]]},"1312":{"position":[[1107,10]]},"1383":{"position":[[192,13]]}}}],["leader>ss",{"_index":1166,"t":{"85":{"position":[[213,10]]},"268":{"position":[[340,13]]},"348":{"position":[[10683,13],[10816,13]]},"388":{"position":[[6509,13],[6665,13]]},"460":{"position":[[523,13],[670,13],[1629,13],[1776,13]]},"1288":{"position":[[66,10]]}}}],["leader>st",{"_index":2343,"t":{"354":{"position":[[105,13],[190,13]]},"466":{"position":[[105,13],[184,13]]},"1262":{"position":[[21,10],[39,10]]},"1314":{"position":[[73,10],[91,10]]},"1395":{"position":[[650,13],[709,13]]}}}],["leader>su",{"_index":2629,"t":{"456":{"position":[[4445,13]]},"1260":{"position":[[1329,10]]},"1312":{"position":[[1127,10]]}}}],["leader>sw",{"_index":2318,"t":{"348":{"position":[[10250,13],[10322,13],[10407,13],[10497,13]]},"388":{"position":[[6006,13],[6102,13],[6207,13],[6297,13]]},"456":{"position":[[2837,13],[2949,13]]},"1260":{"position":[[1351,10],[1403,10]]},"1312":{"position":[[1149,10],[1201,10]]}}}],["leader>sz",{"_index":4060,"t":{"1161":{"position":[[239,13]]},"1342":{"position":[[65,10]]}}}],["leader>t",{"_index":3088,"t":{"726":{"position":[[6943,12]]},"1078":{"position":[[3245,13],[3799,13],[4153,13]]},"1336":{"position":[[62,9],[263,10],[301,10]]}}}],["leader>ta",{"_index":2576,"t":{"438":{"position":[[88,13]]},"1078":{"position":[[3282,13]]},"1316":{"position":[[65,10]]},"1336":{"position":[[80,10]]}}}],["leader>td",{"_index":3757,"t":{"1082":{"position":[[102,13]]},"1338":{"position":[[62,10]]}}}],["leader>tl",{"_index":3746,"t":{"1078":{"position":[[3702,13]]},"1336":{"position":[[118,10]]}}}],["leader>to",{"_index":3749,"t":{"1078":{"position":[[3904,13],[4038,13]]},"1336":{"position":[[150,10],[185,10]]}}}],["leader>tr",{"_index":3093,"t":{"726":{"position":[[7158,13]]},"1078":{"position":[[3607,13]]},"1336":{"position":[[228,10]]}}}],["leader>tt",{"_index":3089,"t":{"726":{"position":[[6976,13],[7353,13]]},"1078":{"position":[[3383,13],[3493,13]]},"1336":{"position":[[329,10],[361,10]]}}}],["leader>tw",{"_index":3754,"t":{"1078":{"position":[[4242,13]]},"1336":{"position":[[403,10]]}}}],["leader>u",{"_index":3904,"t":{"1123":{"position":[[2662,13],[2762,13]]},"1228":{"position":[[135,10]]},"1242":{"position":[[1230,10],[1617,10]]},"1340":{"position":[[60,10],[85,10]]},"1387":{"position":[[541,12],[1528,12]]}}}],["leader>ua",{"_index":4256,"t":{"1228":{"position":[[103,10]]},"1242":{"position":[[1419,10],[1552,10]]}}}],["leader>ub",{"_index":4328,"t":{"1242":{"position":[[1488,10]]}}}],["leader>uc",{"_index":2321,"t":{"348":{"position":[[10600,13]]},"388":{"position":[[6400,13]]},"456":{"position":[[4525,13]]},"1242":{"position":[[1385,10]]},"1260":{"position":[[1450,10]]},"1312":{"position":[[1248,10]]}}}],["leader>ud",{"_index":4254,"t":{"1228":{"position":[[74,10]]},"1242":{"position":[[1320,10],[1524,10]]}}}],["leader>uf",{"_index":1180,"t":{"87":{"position":[[324,10]]},"1242":{"position":[[1148,10],[1189,10]]}}}],["leader>ug",{"_index":4257,"t":{"1228":{"position":[[163,10]]},"1242":{"position":[[1583,10]]}}}],["leader>uh",{"_index":4332,"t":{"1242":{"position":[[1722,10]]}}}],["leader>ui",{"_index":1040,"t":{"80":{"position":[[8279,13],[8342,13]]},"1242":{"position":[[1958,10],[1983,10]]}}}],["leader>ul",{"_index":4326,"t":{"1242":{"position":[[1284,10],[1352,10]]}}}],["leader>un",{"_index":4351,"t":{"1260":{"position":[[1476,10]]},"1441":{"position":[[849,13]]}}}],["leader>ur",{"_index":926,"t":{"80":{"position":[[3107,13]]},"1242":{"position":[[643,10]]}}}],["leader>ut",{"_index":4327,"t":{"1242":{"position":[[1447,10]]}}}],["leader>uw",{"_index":4325,"t":{"1242":{"position":[[1259,10]]}}}],["leader>uz",{"_index":4250,"t":{"1228":{"position":[[0,10],[30,10]]},"1242":{"position":[[2278,10],[2308,10]]}}}],["leader>w",{"_index":4556,"t":{"1387":{"position":[[860,12],[1847,12]]}}}],["leader>wd",{"_index":1058,"t":{"80":{"position":[[9211,13]]},"1242":{"position":[[2221,10]]}}}],["leader>wm",{"_index":4252,"t":{"1228":{"position":[[43,10]]},"1234":{"position":[[121,10]]},"1242":{"position":[[2248,10]]}}}],["leader>x",{"_index":4553,"t":{"1387":{"position":[[572,12],[1559,12]]}}}],["leader>xl",{"_index":952,"t":{"80":{"position":[[4515,13]]},"1242":{"position":[[889,10]]},"1264":{"position":[[106,10]]},"1393":{"position":[[619,13]]}}}],["leader>xq",{"_index":962,"t":{"80":{"position":[[4780,13]]},"1242":{"position":[[916,10]]},"1264":{"position":[[143,10]]},"1393":{"position":[[706,13]]}}}],["leader>xt",{"_index":4352,"t":{"1262":{"position":[[67,10],[95,10]]},"1395":{"position":[[456,13],[531,13]]}}}],["leader>xx",{"_index":4354,"t":{"1264":{"position":[[180,10],[215,10]]},"1393":{"position":[[240,13],[329,13]]}}}],["leap",{"_index":1891,"t":{"286":{"position":[[57,4]]},"288":{"position":[[116,5],[177,5],[240,5],[299,4]]},"290":{"position":[[39,4]]},"292":{"position":[[64,4]]},"1296":{"position":[[67,4],[95,4],[121,4]]},"1401":{"position":[[396,4],[1073,4]]}}}],["leap.add_default_mappings(tru",{"_index":1904,"t":{"288":{"position":[[370,31]]}}}],["leap.nvim",{"_index":4193,"t":{"1211":{"position":[[110,12]]}}}],["leap.opts[k",{"_index":1903,"t":{"288":{"position":[[349,12]]}}}],["leav",{"_index":357,"t":{"19":{"position":[[546,5],[1983,5]]},"78":{"position":[[610,5],[799,5]]}}}],["left",{"_index":877,"t":{"80":{"position":[[982,4],[1449,7]]},"173":{"position":[[233,5],[759,4],[1319,5]]},"196":{"position":[[1802,5],[1980,5]]},"214":{"position":[[1017,10],[2859,10]]},"292":{"position":[[302,5],[702,5]]},"1123":{"position":[[738,4],[1006,7],[1281,7],[1848,7],[2223,7],[3525,4],[3793,7],[4068,7],[4635,7],[5010,7]]},"1129":{"position":[[306,4],[384,7],[594,6],[1299,4],[1377,7],[1587,6]]},"1242":{"position":[[85,4],[249,5]]},"1246":{"position":[[54,4]]},"1276":{"position":[[161,4]]},"1280":{"position":[[116,4],[148,4]]},"1413":{"position":[[180,4],[834,4]]},"1431":{"position":[[678,7],[1254,5],[2226,7]]},"1433":{"position":[[859,4],[2226,4],[2277,4],[4022,4],[5389,4],[5440,4]]}}}],["left_siz",{"_index":3919,"t":{"1129":{"position":[[317,9],[1310,9]]}}}],["legend",{"_index":2950,"t":{"678":{"position":[[1156,6],[2473,6]]}}}],["len",{"_index":4788,"t":{"1422":{"position":[[6988,4]]}}}],["length",{"_index":3545,"t":{"1034":{"position":[[851,9],[1722,9]]}}}],["lens",{"_index":4752,"t":{"1422":{"position":[[1073,6],[1188,7],[4135,6],[4250,7]]}}}],["leoluz/nvim",{"_index":2961,"t":{"688":{"position":[[30,12]]},"700":{"position":[[164,12]]},"702":{"position":[[215,11],[535,11]]}}}],["lervag/vimtex",{"_index":3473,"t":{"966":{"position":[[30,16]]}}}],["less",{"_index":1471,"t":{"200":{"position":[[217,4]]}}}],["let",{"_index":4413,"t":{"1359":{"position":[[25,4]]},"1385":{"position":[[93,7]]},"1389":{"position":[[79,4]]}}}],["level",{"_index":998,"t":{"80":{"position":[[6579,6]]},"1110":{"position":[[100,5]]},"1242":{"position":[[1411,5]]}}}],["lewis6991/gitsigns.nvim",{"_index":4600,"t":{"1389":{"position":[[1847,26]]}}}],["lh",{"_index":453,"t":{"29":{"position":[[164,3]]},"312":{"position":[[1272,4],[1875,4]]}}}],["lhaskel",{"_index":2891,"t":{"648":{"position":[[95,11]]},"656":{"position":[[119,11]]},"660":{"position":[[183,11]]},"668":{"position":[[142,11]]}}}],["lib",{"_index":2457,"t":{"388":{"position":[[2748,3]]},"394":{"position":[[433,3]]}}}],["librari",{"_index":4449,"t":{"1363":{"position":[[130,7],[405,7]]},"1417":{"position":[[0,7]]}}}],["library_path",{"_index":3381,"t":{"916":{"position":[[2261,12],[2426,14]]}}}],["light",{"_index":1006,"t":{"80":{"position":[[6835,8]]}}}],["line",{"_index":501,"t":{"46":{"position":[[203,5],[304,4],[314,5]]},"78":{"position":[[2400,4],[2966,5],[3116,4],[3258,4],[3339,5],[4613,4],[4706,4]]},"80":{"position":[[1621,5],[5547,5],[7680,5]]},"202":{"position":[[64,5],[217,5],[629,4],[1233,5],[1386,5],[1798,4]]},"214":{"position":[[4583,5]]},"234":{"position":[[909,4]]},"272":{"position":[[634,5],[1433,5]]},"348":{"position":[[2190,5],[5544,5],[9162,6]]},"388":{"position":[[429,4],[530,4],[648,4],[746,4],[4817,6],[7106,4],[7207,4],[7325,4],[7423,4]]},"390":{"position":[[145,5],[315,5]]},"456":{"position":[[2491,6]]},"568":{"position":[[489,5],[1170,5]]},"726":{"position":[[905,4],[2632,4],[3519,4]]},"788":{"position":[[99,4],[716,4]]},"1034":{"position":[[176,4],[1047,4]]},"1234":{"position":[[116,4]]},"1238":{"position":[[702,5],[715,5]]},"1242":{"position":[[1019,4],[1370,4],[1802,4]]},"1260":{"position":[[870,5]]},"1282":{"position":[[223,4]]},"1312":{"position":[[668,5]]},"1389":{"position":[[1560,6],[3299,6]]},"1433":{"position":[[24,4]]}}}],["line:find",{"_index":3179,"t":{"788":{"position":[[171,14],[788,14]]}}}],["line_starts_at",{"_index":2696,"t":{"500":{"position":[[65,14],[120,14]]}}}],["linebreak=tru",{"_index":4286,"t":{"1234":{"position":[[221,14]]}}}],["linefoldingonli",{"_index":3536,"t":{"1034":{"position":[[269,15],[1140,15]]}}}],["linehl",{"_index":1711,"t":{"234":{"position":[[2266,6]]}}}],["lines",{"_index":2894,"t":{"648":{"position":[[145,17]]},"852":{"position":[[940,17],[2049,17]]},"1318":{"position":[[65,14]]}}}],["localleader>a",{"_index":3250,"t":{"852":{"position":[[530,17],[1639,17]]},"1197":{"position":[[809,17]]},"1348":{"position":[[246,14]]}}}],["localleader>b",{"_index":3251,"t":{"852":{"position":[[567,17],[1676,17]]}}}],["localleader>c",{"_index":3252,"t":{"852":{"position":[[614,17],[1723,17]]},"1197":{"position":[[875,17]]},"1348":{"position":[[280,14]]}}}],["localleader>f",{"_index":3254,"t":{"852":{"position":[[654,17],[1763,17]]}}}],["localleader>g",{"_index":3255,"t":{"852":{"position":[[697,17],[1806,17]]},"1197":{"position":[[1388,17]]},"1348":{"position":[[318,14]]}}}],["localleader>gd",{"_index":2722,"t":{"502":{"position":[[1269,15]]}}}],["localleader>h",{"_index":2896,"t":{"648":{"position":[[230,17]]},"660":{"position":[[348,17]]},"668":{"position":[[307,17]]},"1318":{"position":[[95,14]]},"1320":{"position":[[65,14]]}}}],["localleader>i",{"_index":3256,"t":{"852":{"position":[[735,17],[1844,17]]},"1197":{"position":[[1008,17]]},"1348":{"position":[[354,14]]}}}],["localleader>k",{"_index":2721,"t":{"502":{"position":[[1250,14]]},"852":{"position":[[776,17],[1885,17]]}}}],["localleader>l",{"_index":3480,"t":{"966":{"position":[[332,17]]},"1197":{"position":[[945,17]]},"1332":{"position":[[61,14]]},"1348":{"position":[[385,14]]}}}],["localleader>p",{"_index":3258,"t":{"852":{"position":[[814,17],[1923,17]]},"1197":{"position":[[1134,17],[1259,18]]},"1348":{"position":[[416,14],[477,15]]}}}],["localleader>pr",{"_index":4147,"t":{"1197":{"position":[[1194,18]]},"1348":{"position":[[444,15]]}}}],["localleader>q",{"_index":3260,"t":{"852":{"position":[[857,17],[1966,17]]}}}],["localleader>r",{"_index":2900,"t":{"648":{"position":[[363,17],[482,17]]},"852":{"position":[[897,17],[2006,17]]},"1197":{"position":[[1071,17]]},"1318":{"position":[[129,14],[161,14]]},"1348":{"position":[[510,14]]}}}],["localleader>t",{"_index":3262,"t":{"852":{"position":[[987,17],[2096,17]]}}}],["localleader>v",{"_index":3263,"t":{"852":{"position":[[1029,17],[2138,17]]},"1197":{"position":[[1324,17]]},"1348":{"position":[[541,14]]}}}],["locat",{"_index":709,"t":{"78":{"position":[[1733,8]]},"80":{"position":[[4492,8],[4735,9]]},"286":{"position":[[19,8]]},"348":{"position":[[9965,9]]},"388":{"position":[[5639,9]]},"406":{"position":[[184,8],[509,8]]},"448":{"position":[[178,8],[488,8]]},"456":{"position":[[4123,9]]},"762":{"position":[[447,7],[1738,7]]},"904":{"position":[[184,8],[507,8]]},"1028":{"position":[[232,8],[651,8]]},"1242":{"position":[[900,8]]},"1260":{"position":[[1188,8]]},"1264":{"position":[[117,8]]},"1312":{"position":[[986,8]]},"1385":{"position":[[132,9]]},"1393":{"position":[[675,9]]},"1433":{"position":[[2253,11],[5416,11]]}}}],["loclist",{"_index":4608,"t":{"1393":{"position":[[647,7]]}}}],["loclistu",{"_index":988,"t":{"80":{"position":[[6192,20]]}}}],["map(\"ua",{"_index":1003,"t":{"80":{"position":[[6726,20]]},"1106":{"position":[[893,20],[2212,20]]}}}],["map(\"ub",{"_index":1009,"t":{"80":{"position":[[6883,20]]}}}],["map(\"uc",{"_index":999,"t":{"80":{"position":[[6586,20]]}}}],["map(\"ug",{"_index":2079,"t":{"318":{"position":[[377,20],[776,20]]},"1094":{"position":[[231,20],[839,20]]},"1391":{"position":[[213,20],[452,20]]}}}],["map(\"ul",{"_index":992,"t":{"80":{"position":[[6345,20]]}}}],["map(\"um",{"_index":3177,"t":{"786":{"position":[[596,20]]}}}],["map(\"ut",{"_index":3937,"t":{"1133":{"position":[[219,20],[552,20]]}}}],["map(\"uw",{"_index":990,"t":{"80":{"position":[[6258,20]]}}}],["map(\"ux",{"_index":1880,"t":{"282":{"position":[[551,20]]}}}],["map(\"i",{"_index":896,"t":{"80":{"position":[[1801,8],[1870,8],[3840,8],[3865,8],[3890,8]]}}}],["map(\"n",{"_index":873,"t":{"80":{"position":[[938,8],[1012,8],[1087,8],[1162,8],[1278,8],[1356,8],[1436,8],[1524,8],[1627,8],[1712,8],[2146,8],[2212,8],[2274,8],[2337,8],[2396,8],[2472,8],[2547,8],[2633,8],[2732,8],[3295,8],[3555,8],[4021,8],[4164,8],[4256,8],[4356,8],[4426,8],[4506,8],[4771,8],[5015,8],[5077,8],[5488,8],[5569,8],[5637,8],[5706,8],[5778,8],[5851,8],[5924,8],[7295,8],[7413,8],[7501,8],[7592,8],[7689,8],[7796,8],[8182,8],[8270,8],[8333,8],[8474,8],[8590,8],[8676,8],[9044,8],[9123,8],[9202,8],[9380,8],[9450,8],[9528,8],[9600,8],[9672,8],[9742,8],[9814,8]]},"1389":{"position":[[692,8],[823,8],[954,8],[1018,8],[1234,8],[1291,8],[1354,8],[1411,8],[1482,8],[1567,8],[1634,8],[1684,8],[2431,8],[2562,8],[2693,8],[2757,8],[2973,8],[3030,8],[3093,8],[3150,8],[3221,8],[3306,8],[3373,8],[3423,8]]}}}],["map(\"o",{"_index":935,"t":{"80":{"position":[[3470,8],[3730,8]]}}}],["map(\"v",{"_index":900,"t":{"80":{"position":[[1937,8],[2034,8]]}}}],["map(\"x",{"_index":933,"t":{"80":{"position":[[3385,8],[3645,8],[4108,8],[4129,8]]}}}],["map(key",{"_index":1881,"t":{"282":{"position":[[587,8]]}}}],["map(mod",{"_index":4575,"t":{"1389":{"position":[[566,9],[2305,9]]}}}],["map({\"n",{"_index":1032,"t":{"80":{"position":[[8008,9]]}}}],["map({\"n\",\"t",{"_index":1052,"t":{"80":{"position":[[8796,14],[8916,14]]}}}],["map_split",{"_index":2032,"t":{"312":{"position":[[1243,9]]}}}],["map_split(buf_id",{"_index":2058,"t":{"312":{"position":[[2541,17],[2642,17],[2739,17],[2844,17]]}}}],["march",{"_index":1951,"t":{"296":{"position":[[942,8],[4177,8]]}}}],["mark",{"_index":565,"t":{"58":{"position":[[68,6]]},"72":{"position":[[68,6]]},"82":{"position":[[1684,4],[1855,5]]},"89":{"position":[[68,6]]},"103":{"position":[[68,6]]},"113":{"position":[[68,6]]},"121":{"position":[[68,6]]},"133":{"position":[[68,6]]},"141":{"position":[[68,6]]},"151":{"position":[[68,6]]},"157":{"position":[[68,6]]},"171":{"position":[[68,6]]},"175":{"position":[[68,6]]},"179":{"position":[[68,6]]},"195":{"position":[[133,6]]},"198":{"position":[[68,6]]},"210":{"position":[[68,6]]},"226":{"position":[[68,6]]},"232":{"position":[[68,6]]},"246":{"position":[[68,6]]},"262":{"position":[[68,6]]},"274":{"position":[[68,6]]},"278":{"position":[[68,6]]},"284":{"position":[[68,6]]},"294":{"position":[[68,6]]},"298":{"position":[[68,6]]},"306":{"position":[[68,6]]},"310":{"position":[[68,6]]},"314":{"position":[[68,6]]},"322":{"position":[[68,6]]},"328":{"position":[[68,6]]},"336":{"position":[[68,6]]},"340":{"position":[[68,6]]},"344":{"position":[[68,6]]},"348":{"position":[[10108,5]]},"356":{"position":[[68,6]]},"364":{"position":[[68,6]]},"374":{"position":[[68,6]]},"384":{"position":[[68,6]]},"388":{"position":[[5788,5]]},"398":{"position":[[68,6]]},"410":{"position":[[68,6]]},"424":{"position":[[68,6]]},"432":{"position":[[68,6]]},"440":{"position":[[68,6]]},"452":{"position":[[68,6]]},"456":{"position":[[4277,7]]},"476":{"position":[[68,6]]},"492":{"position":[[68,6]]},"506":{"position":[[68,6]]},"518":{"position":[[68,6]]},"530":{"position":[[68,6]]},"544":{"position":[[68,6]]},"552":{"position":[[68,6]]},"572":{"position":[[68,6]]},"578":{"position":[[68,6]]},"588":{"position":[[68,6]]},"596":{"position":[[68,6]]},"604":{"position":[[68,6]]},"620":{"position":[[68,6]]},"628":{"position":[[68,6]]},"644":{"position":[[68,6]]},"674":{"position":[[68,6]]},"704":{"position":[[68,6]]},"712":{"position":[[68,6]]},"718":{"position":[[68,6]]},"732":{"position":[[68,6]]},"738":{"position":[[68,6]]},"748":{"position":[[68,6]]},"764":{"position":[[68,6]]},"770":{"position":[[68,6]]},"776":{"position":[[68,6]]},"794":{"position":[[68,6]]},"800":{"position":[[68,6]]},"826":{"position":[[68,6]]},"850":{"position":[[68,6]]},"852":{"position":[[602,6],[1711,6]]},"866":{"position":[[68,6]]},"886":{"position":[[68,6]]},"896":{"position":[[68,6]]},"908":{"position":[[68,6]]},"924":{"position":[[68,6]]},"948":{"position":[[68,6]]},"956":{"position":[[68,6]]},"962":{"position":[[68,6]]},"970":{"position":[[68,6]]},"990":{"position":[[68,6]]},"994":{"position":[[68,6]]},"1008":{"position":[[68,6]]},"1020":{"position":[[68,6]]},"1030":{"position":[[68,6]]},"1036":{"position":[[68,6]]},"1042":{"position":[[68,6]]},"1052":{"position":[[68,6]]},"1058":{"position":[[68,6]]},"1070":{"position":[[68,6]]},"1076":{"position":[[340,6]]},"1084":{"position":[[68,6]]},"1090":{"position":[[68,6]]},"1096":{"position":[[68,6]]},"1102":{"position":[[68,6]]},"1108":{"position":[[68,6]]},"1116":{"position":[[68,6]]},"1122":{"position":[[68,6]]},"1131":{"position":[[68,6]]},"1135":{"position":[[68,6]]},"1143":{"position":[[68,6]]},"1149":{"position":[[68,6]]},"1157":{"position":[[68,6]]},"1169":{"position":[[68,6]]},"1173":{"position":[[68,6]]},"1177":{"position":[[68,6]]},"1193":{"position":[[68,6]]},"1201":{"position":[[68,6]]},"1205":{"position":[[68,6]]},"1211":{"position":[[548,6]]},"1260":{"position":[[1215,5]]},"1312":{"position":[[1013,5]]},"1365":{"position":[[68,6]]}}}],["mark[1",{"_index":1122,"t":{"82":{"position":[[1778,7],[1794,7]]}}}],["markdown",{"_index":218,"t":{"15":{"position":[[1989,8]]},"17":{"position":[[2995,11]]},"68":{"position":[[98,11],[212,11],[246,11]]},"78":{"position":[[4723,8]]},"82":{"position":[[2890,10]]},"105":{"position":[[281,8],[664,8]]},"264":{"position":[[527,11],[1462,11]]},"296":{"position":[[1386,8],[1397,11],[2222,8],[4621,8],[4632,11],[5457,8]]},"778":{"position":[[69,9],[165,9]]},"782":{"position":[[0,8],[210,9],[304,11],[357,9]]},"784":{"position":[[31,9]]},"786":{"position":[[359,11],[509,10]]},"788":{"position":[[42,10],[446,12],[496,9],[568,9],[659,10],[1063,12],[1113,9],[1185,9]]},"792":{"position":[[45,8],[158,8]]},"950":{"position":[[123,10],[1207,10]]},"1232":{"position":[[0,8],[91,8]]},"1322":{"position":[[77,8]]},"1357":{"position":[[535,8],[556,8],[1024,8],[1045,8]]},"1406":{"position":[[456,11],[1655,11]]}}}],["markdown\").get",{"_index":3175,"t":{"786":{"position":[[542,15]]}}}],["markdown\").set",{"_index":3176,"t":{"786":{"position":[[580,15]]}}}],["markdown\").setup(opt",{"_index":3174,"t":{"786":{"position":[[455,22]]}}}],["markdown.mdx",{"_index":3184,"t":{"788":{"position":[[514,16],[1131,16]]}}}],["markdown.nvim",{"_index":639,"t":{"68":{"position":[[155,15]]},"618":{"position":[[60,15]]},"786":{"position":[[192,15]]},"1232":{"position":[[60,13]]}}}],["markdown_inlin",{"_index":313,"t":{"17":{"position":[[3007,18]]},"1406":{"position":[[468,18],[1667,18]]}}}],["markdownlint",{"_index":3155,"t":{"778":{"position":[[48,13],[144,13]]},"788":{"position":[[234,14],[348,14],[475,13],[547,13],[851,14],[965,14],[1092,13],[1164,13]]},"792":{"position":[[58,13],[171,13]]}}}],["markdownpreview",{"_index":3162,"t":{"782":{"position":[[112,18]]}}}],["markdownpreviewstop",{"_index":3163,"t":{"782":{"position":[[131,21]]}}}],["markdownpreviewtoggl",{"_index":3161,"t":{"782":{"position":[[87,24]]}}}],["marker",{"_index":731,"t":{"78":{"position":[[2236,7]]},"1060":{"position":[[2716,8],[3095,8],[7291,8],[7670,8]]}}}],["marksvcxnorm",{"_index":946,"t":{"80":{"position":[[4180,26],[4272,26]]}}}],["object",{"_index":200,"t":{"15":{"position":[[1522,6]]},"1110":{"position":[[36,8]]},"1234":{"position":[[370,8]]},"1361":{"position":[[23,8],[179,7]]}}}],["ocaml",{"_index":3142,"t":{"766":{"position":[[131,7],[300,7]]},"768":{"position":[[66,8],[422,8]]}}}],["ocaml.interfac",{"_index":3145,"t":{"768":{"position":[[91,18],[447,18]]}}}],["ocaml.menhir",{"_index":3144,"t":{"768":{"position":[[75,15],[431,15]]}}}],["ocaml.ocamllex",{"_index":3146,"t":{"768":{"position":[[110,17],[466,17]]}}}],["ocamllsp",{"_index":3143,"t":{"768":{"position":[[39,8],[395,8]]}}}],["occurr",{"_index":2360,"t":{"358":{"position":[[446,11],[2615,11]]}}}],["octo",{"_index":159,"t":{"15":{"position":[[790,4]]},"1197":{"position":[[0,4],[174,7],[226,10],[436,7],[515,7],[584,7],[657,7],[730,7],[796,7],[849,8],[863,6],[919,8],[933,6],[982,8],[996,6],[1045,8],[1059,6],[1108,8],[1122,6],[1168,8],[1182,6],[1233,8],[1247,6],[1298,8],[1312,6],[1362,8],[1376,6],[1430,8],[1444,6],[1493,7],[1557,7]]},"1199":{"position":[[0,4],[100,7],[610,6],[947,7],[1457,6]]},"1232":{"position":[[617,5]]},"1348":{"position":[[85,6],[119,6],[148,6],[179,6],[210,6],[237,6],[271,6],[309,6],[345,6],[376,6],[407,6],[435,6],[468,6],[501,6],[532,6],[564,6]]}}}],["octob",{"_index":1957,"t":{"296":{"position":[[1006,10],[4241,10]]}}}],["offset",{"_index":3912,"t":{"1129":{"position":[[15,7],[85,6],[1078,6]]},"1431":{"position":[[584,7],[2132,7]]}}}],["offset.edgi",{"_index":3914,"t":{"1129":{"position":[[130,11],[981,11],[1123,11],[1974,11]]}}}],["offset.get",{"_index":3915,"t":{"1129":{"position":[[159,10],[170,10],[1152,10],[1163,10]]}}}],["offsetencod",{"_index":2770,"t":{"536":{"position":[[465,14],[1438,14]]}}}],["oil",{"_index":663,"t":{"74":{"position":[[670,5]]}}}],["ok",{"_index":1221,"t":{"111":{"position":[[428,4],[918,4]]},"137":{"position":[[839,4],[1797,4]]},"388":{"position":[[2667,3],[2734,2]]},"394":{"position":[[352,3],[419,2]]},"1393":{"position":[[918,3],[956,2],[1187,3],[1225,2]]}}}],["old",{"_index":1789,"t":{"248":{"position":[[2251,3]]},"708":{"position":[[132,3]]},"828":{"position":[[279,3]]},"1032":{"position":[[132,3]]},"1230":{"position":[[176,3]]},"1406":{"position":[[689,3]]}}}],["old_offset",{"_index":3917,"t":{"1129":{"position":[[228,10],[1221,10]]}}}],["old_offset[po",{"_index":3926,"t":{"1129":{"position":[[533,14],[568,15],[781,14],[816,14],[1526,14],[1561,15],[1774,14],[1809,14]]}}}],["older",{"_index":4231,"t":{"1216":{"position":[[153,5]]},"1234":{"position":[[1182,5],[1290,5]]}}}],["oldfiles(vimtex",{"_index":3484,"t":{"968":{"position":[[113,14],[293,14]]}}}],["plug>(yankycyclebackward",{"_index":1455,"t":{"196":{"position":[[1183,29]]}}}],["plug>(yankycycleforward",{"_index":1452,"t":{"196":{"position":[[1099,28]]}}}],["plug>(yankygputaft",{"_index":1450,"t":{"196":{"position":[[913,25]]}}}],["plug>(yankygputbefor",{"_index":1451,"t":{"196":{"position":[[1005,26]]}}}],["plug>(yankyputaft",{"_index":1447,"t":{"196":{"position":[[736,24]]}}}],["plug>(yankyputafterfilt",{"_index":1464,"t":{"196":{"position":[[1997,30]]}}}],["plug>(yankyputbefor",{"_index":1448,"t":{"196":{"position":[[823,25]]}}}],["plug>(yankyputbeforefilt",{"_index":1466,"t":{"196":{"position":[[2076,31]]}}}],["plug>(yankyputindentafterlinewis",{"_index":1457,"t":{"196":{"position":[[1269,38],[1463,38]]}}}],["plug>(yankyputindentaftershiftleft",{"_index":1461,"t":{"196":{"position":[[1739,39]]}}}],["plug>(yankyputindentaftershiftright",{"_index":1460,"t":{"196":{"position":[[1657,40]]}}}],["plug>(yankyputindentbeforelinewis",{"_index":1459,"t":{"196":{"position":[[1365,39],[1559,39]]}}}],["plug>(yankyputindentbeforeshiftleft",{"_index":1463,"t":{"196":{"position":[[1909,40]]}}}],["plug>(yankyputindentbeforeshiftright",{"_index":1462,"t":{"196":{"position":[[1819,41]]}}}],["plug>(yankyyank",{"_index":1446,"t":{"196":{"position":[[665,20]]}}}],["plug>rdsendlin",{"_index":3247,"t":{"852":{"position":[[338,19],[1447,19]]}}}],["plug>rsendselect",{"_index":3249,"t":{"852":{"position":[[408,23],[1517,23]]}}}],["plugin",{"_index":26,"t":{"4":{"position":[[211,7]]},"11":{"position":[[196,6],[326,8],[455,7]]},"13":{"position":[[65,7]]},"15":{"position":[[740,7]]},"17":{"position":[[29,9],[105,6],[143,7],[180,7],[231,7],[860,6],[943,6],[1111,6]]},"19":{"position":[[80,6],[103,8],[483,7],[496,6],[591,7],[791,7],[963,8],[1590,7],[1678,7],[1697,9],[1754,7],[1795,7],[1914,7],[2028,6],[2243,7],[2372,6],[2466,6],[2525,7]]},"21":{"position":[[20,7],[112,6],[186,7],[242,8]]},"23":{"position":[[9,6],[43,6],[206,7],[252,6]]},"25":{"position":[[22,7]]},"29":{"position":[[435,6],[585,6],[998,7]]},"35":{"position":[[29,6],[68,6]]},"56":{"position":[[44,6]]},"58":{"position":[[60,7],[172,7]]},"72":{"position":[[60,7],[172,7]]},"76":{"position":[[390,7]]},"89":{"position":[[60,7],[172,7]]},"103":{"position":[[60,7],[172,7]]},"113":{"position":[[60,7],[172,7]]},"121":{"position":[[60,7],[172,7]]},"133":{"position":[[60,7]]},"135":{"position":[[249,7]]},"141":{"position":[[60,7],[172,7]]},"151":{"position":[[60,7],[172,7]]},"157":{"position":[[60,7],[172,7]]},"171":{"position":[[60,7],[172,7]]},"175":{"position":[[60,7],[172,7]]},"177":{"position":[[215,7],[800,7]]},"179":{"position":[[60,7],[172,7]]},"195":{"position":[[125,7],[237,7]]},"198":{"position":[[60,7]]},"200":{"position":[[1417,7]]},"202":{"position":[[1121,7]]},"210":{"position":[[60,7]]},"212":{"position":[[213,6],[308,7]]},"226":{"position":[[60,7],[172,7]]},"232":{"position":[[60,7],[172,7]]},"246":{"position":[[60,7],[172,7]]},"262":{"position":[[60,7],[172,7]]},"274":{"position":[[60,7],[172,7]]},"278":{"position":[[60,7],[172,7]]},"284":{"position":[[60,7],[172,7]]},"290":{"position":[[11,7]]},"294":{"position":[[60,7],[172,7]]},"298":{"position":[[60,7],[172,7]]},"306":{"position":[[60,7],[172,7]]},"310":{"position":[[60,7],[172,7]]},"314":{"position":[[60,7],[172,7]]},"322":{"position":[[60,7],[172,7]]},"328":{"position":[[60,7],[172,7]]},"336":{"position":[[60,7],[172,7]]},"340":{"position":[[60,7],[172,7]]},"344":{"position":[[60,7]]},"346":{"position":[[269,7]]},"348":{"position":[[7266,7]]},"356":{"position":[[60,7],[172,7]]},"364":{"position":[[60,7]]},"366":{"position":[[249,7]]},"374":{"position":[[60,7]]},"376":{"position":[[320,7]]},"384":{"position":[[60,7]]},"386":{"position":[[275,7]]},"388":{"position":[[2950,7],[2962,6]]},"390":{"position":[[224,7],[393,7]]},"394":{"position":[[635,7],[647,6]]},"398":{"position":[[60,7],[172,7]]},"406":{"position":[[19,6]]},"410":{"position":[[60,7],[172,7]]},"424":{"position":[[60,7],[172,7]]},"432":{"position":[[60,7],[172,7]]},"440":{"position":[[60,7],[172,7]]},"448":{"position":[[19,6],[169,8],[262,9],[479,8],[572,9]]},"452":{"position":[[60,7]]},"454":{"position":[[272,7]]},"456":{"position":[[2819,6]]},"476":{"position":[[60,7],[172,7]]},"484":{"position":[[241,7]]},"492":{"position":[[60,7],[172,7]]},"506":{"position":[[60,7],[172,7]]},"518":{"position":[[60,7],[172,7]]},"530":{"position":[[60,7],[172,7]]},"544":{"position":[[60,7],[172,7]]},"552":{"position":[[60,7],[172,7]]},"572":{"position":[[60,7],[172,7]]},"578":{"position":[[60,7],[172,7]]},"588":{"position":[[60,7],[172,7]]},"596":{"position":[[60,7],[172,7]]},"604":{"position":[[60,7],[172,7]]},"620":{"position":[[60,7],[172,7]]},"628":{"position":[[60,7],[172,7]]},"644":{"position":[[60,7],[172,7]]},"674":{"position":[[60,7],[172,7]]},"704":{"position":[[60,7],[172,7]]},"712":{"position":[[60,7],[172,7]]},"718":{"position":[[60,7],[172,7]]},"726":{"position":[[4872,6]]},"732":{"position":[[60,7],[172,7]]},"738":{"position":[[60,7],[172,7]]},"748":{"position":[[60,7],[172,7]]},"764":{"position":[[60,7],[172,7]]},"770":{"position":[[60,7],[172,7]]},"776":{"position":[[60,7],[172,7]]},"782":{"position":[[198,7]]},"794":{"position":[[60,7],[172,7]]},"800":{"position":[[60,7]]},"802":{"position":[[285,7]]},"826":{"position":[[60,7]]},"828":{"position":[[384,7]]},"850":{"position":[[60,7],[172,7]]},"866":{"position":[[60,7]]},"868":{"position":[[320,7]]},"886":{"position":[[60,7],[172,7]]},"896":{"position":[[60,7],[172,7]]},"904":{"position":[[19,6],[175,8],[275,9],[498,8],[598,9]]},"908":{"position":[[60,7]]},"910":{"position":[[386,7]]},"924":{"position":[[60,7]]},"926":{"position":[[1004,7]]},"948":{"position":[[60,7],[172,7]]},"956":{"position":[[60,7],[172,7]]},"962":{"position":[[60,7],[172,7]]},"970":{"position":[[60,7],[172,7]]},"990":{"position":[[60,7],[172,7]]},"994":{"position":[[60,7],[172,7]]},"1008":{"position":[[60,7],[172,7]]},"1020":{"position":[[60,7],[172,7]]},"1028":{"position":[[19,6],[223,8],[642,8]]},"1030":{"position":[[60,7],[172,7]]},"1034":{"position":[[763,6],[1634,6]]},"1036":{"position":[[60,7]]},"1038":{"position":[[229,7]]},"1042":{"position":[[60,7],[172,7]]},"1052":{"position":[[60,7],[172,7]]},"1058":{"position":[[60,7],[172,7]]},"1070":{"position":[[60,7],[172,7]]},"1076":{"position":[[332,7],[444,7]]},"1084":{"position":[[60,7],[172,7]]},"1088":{"position":[[3904,7]]},"1090":{"position":[[60,7],[172,7]]},"1096":{"position":[[60,7],[172,7]]},"1100":{"position":[[1621,7],[3890,7]]},"1102":{"position":[[60,7],[172,7]]},"1108":{"position":[[60,7],[172,7]]},"1116":{"position":[[60,7],[172,7]]},"1122":{"position":[[60,7],[172,7]]},"1131":{"position":[[60,7],[172,7]]},"1135":{"position":[[60,7],[172,7]]},"1143":{"position":[[60,7],[172,7]]},"1147":{"position":[[3426,7]]},"1149":{"position":[[60,7],[172,7]]},"1157":{"position":[[60,7],[172,7]]},"1169":{"position":[[60,7],[172,7]]},"1173":{"position":[[60,7],[172,7]]},"1177":{"position":[[60,7],[172,7]]},"1193":{"position":[[60,7],[172,7]]},"1201":{"position":[[60,7],[172,7]]},"1205":{"position":[[60,7],[172,7]]},"1211":{"position":[[60,8],[419,7],[467,6],[540,7],[652,7]]},"1213":{"position":[[1430,7]]},"1220":{"position":[[64,7],[102,7],[181,8]]},"1232":{"position":[[469,6]]},"1234":{"position":[[285,7],[333,6],[563,8],[615,8],[630,6],[1096,7],[1589,7]]},"1236":{"position":[[40,6],[2196,6]]},"1238":{"position":[[40,7],[104,7],[495,7],[606,7],[920,6]]},"1260":{"position":[[1268,6]]},"1312":{"position":[[1066,6]]},"1365":{"position":[[60,7],[172,7]]},"1375":{"position":[[42,6],[2035,6]]},"1417":{"position":[[22,7]]},"1420":{"position":[[77,6]]},"1435":{"position":[[20,6],[2135,8]]}}}],["plugin.config",{"_index":4460,"t":{"1373":{"position":[[502,13]]},"1375":{"position":[[106,13],[163,15],[2099,13],[2156,15]]}}}],["plugin.dir",{"_index":2458,"t":{"388":{"position":[[2754,10]]},"394":{"position":[[439,10]]}}}],["pluginlspopt",{"_index":270,"t":{"17":{"position":[[1373,13],[2018,13]]},"872":{"position":[[456,13]]},"1422":{"position":[[56,13],[3118,13],[6024,13]]}}}],["plugins.cor",{"_index":676,"t":{"78":{"position":[[329,12]]}}}],["png",{"_index":2207,"t":{"348":{"position":[[1637,7],[4991,7]]}}}],["po",{"_index":1043,"t":{"80":{"position":[[8325,4]]},"1123":{"position":[[1260,3],[1815,3],[2030,3],[2190,3],[2496,3],[4047,3],[4602,3],[4817,3],[4977,3],[5283,3]]},"1129":{"position":[[368,3],[587,3],[674,3],[1361,3],[1580,3],[1667,3]]},"1242":{"position":[[1977,3]]}}}],["point",{"_index":772,"t":{"78":{"position":[[2986,6]]},"80":{"position":[[3833,6]]}}}],["pop",{"_index":2513,"t":{"404":{"position":[[210,7],[506,7]]},"1155":{"position":[[490,4]]},"1344":{"position":[[177,3]]}}}],["popout",{"_index":4023,"t":{"1155":{"position":[[1158,8]]},"1344":{"position":[[440,6]]}}}],["popul",{"_index":1381,"t":{"173":{"position":[[429,8]]}}}],["popup",{"_index":782,"t":{"78":{"position":[[3149,5],[3214,5]]},"1240":{"position":[[112,5]]},"1387":{"position":[[55,5]]}}}],["popupmenu",{"_index":4921,"t":{"1435":{"position":[[89,10]]}}}],["port",{"_index":1634,"t":{"228":{"position":[[290,4],[697,5],[713,4]]},"230":{"position":[[245,4],[652,5],[668,4]]},"540":{"position":[[177,4],[184,10],[244,6],[251,10],[1039,4],[1046,10],[1106,6],[1113,10]]},"730":{"position":[[377,4],[748,4]]},"762":{"position":[[1137,4],[2428,4]]},"1066":{"position":[[262,4],[269,10],[334,9],[2313,4],[2320,10],[2385,9]]}}}],["pos_id",{"_index":3716,"t":{"1078":{"position":[[2190,7]]}}}],["posit",{"_index":443,"t":{"23":{"position":[[562,8]]},"1393":{"position":[[88,8],[198,8]]}}}],["position=%",{"_index":3888,"t":{"1123":{"position":[[1710,11],[4497,11]]}}}],["possibl",{"_index":4323,"t":{"1240":{"position":[[127,8]]},"1428":{"position":[[573,8]]}}}],["power",{"_index":3,"t":{"2":{"position":[[26,7]]},"1406":{"position":[[71,5]]},"1431":{"position":[[13,6]]}}}],["powershel",{"_index":574,"t":{"62":{"position":[[195,11]]},"78":{"position":[[1445,10]]},"1213":{"position":[[593,10]]}}}],["pplatex",{"_index":3478,"t":{"966":{"position":[[292,9]]}}}],["pr",{"_index":4143,"t":{"1197":{"position":[[553,2],[580,3],[622,2],[653,3],[1163,4]]},"1348":{"position":[[144,3],[175,3],[431,3]]}}}],["pre",{"_index":27,"t":{"4":{"position":[[219,3]]},"19":{"position":[[23,3]]}}}],["preconfigur",{"_index":4311,"t":{"1238":{"position":[[26,13]]}}}],["predefin",{"_index":3869,"t":{"1123":{"position":[[19,10]]}}}],["predic",{"_index":3848,"t":{"1106":{"position":[[1213,9],[2532,9]]}}}],["prefer",{"_index":2718,"t":{"502":{"position":[[1163,6]]},"1018":{"position":[[83,8],[209,8]]},"1230":{"position":[[165,6]]}}}],["prefil",{"_index":4540,"t":{"1383":{"position":[[338,8]]}}}],["prefix",{"_index":1081,"t":{"82":{"position":[[385,8]]},"388":{"position":[[2547,6]]},"394":{"position":[[232,6]]},"1066":{"position":[[394,6],[2445,6]]},"1422":{"position":[[262,6],[301,6],[381,6],[3324,6],[3363,6],[3443,6]]}}}],["prepend_arg",{"_index":4459,"t":{"1373":{"position":[[391,13]]},"1375":{"position":[[1245,12],[3238,12]]}}}],["preselect",{"_index":1561,"t":{"214":{"position":[[1078,9],[2920,9]]},"248":{"position":[[526,9],[3096,9]]}}}],["present",{"_index":4478,"t":{"1375":{"position":[[1033,7],[3026,7]]},"1380":{"position":[[688,7],[1580,7]]}}}],["preset",{"_index":1377,"t":{"169":{"position":[[62,6],[148,6]]},"208":{"position":[[129,6],[728,6],[1097,6],[1696,6]]},"214":{"position":[[40,6],[976,6],[1228,6],[1882,6],[2818,6],[3070,6],[4013,7]]},"304":{"position":[[45,7],[128,7]]},"1226":{"position":[[138,6]]},"1236":{"position":[[420,6]]},"1387":{"position":[[151,6],[1138,6]]},"1435":{"position":[[452,7],[921,7]]},"1443":{"position":[[41,6],[1316,6]]}}}],["press",{"_index":4322,"t":{"1240":{"position":[[68,5]]}}}],["prettier",{"_index":548,"t":{"54":{"position":[[35,8],[174,8]]},"56":{"position":[[51,9],[124,8],[174,8]]},"366":{"position":[[158,9]]},"376":{"position":[[146,8],[176,8]]},"378":{"position":[[48,10],[119,10]]},"380":{"position":[[237,11],[740,11]]},"408":{"position":[[193,10],[396,10]]},"450":{"position":[[176,10],[373,10]]},"550":{"position":[[178,10],[377,10]]},"788":{"position":[[463,11],[535,11],[1080,11],[1152,11]]},"906":{"position":[[177,10],[375,10]]},"1232":{"position":[[305,8],[338,8],[460,8]]}}}],["prettierrc",{"_index":3649,"t":{"1064":{"position":[[172,15],[763,15]]}}}],["prev",{"_index":905,"t":{"80":{"position":[[2195,5],[2320,5],[3621,5],[3706,5],[3791,5],[5685,5],[5835,5],[5980,5]]},"91":{"position":[[198,4],[489,4]]},"105":{"position":[[216,4],[599,4]]},"137":{"position":[[318,5],[1276,5]]},"208":{"position":[[940,6],[1908,6]]},"282":{"position":[[824,7],[1050,7],[1138,5]]},"1242":{"position":[[365,4],[402,4],[725,4],[1062,4],[1099,4],[1133,4]]},"1244":{"position":[[400,4],[446,4]]},"1246":{"position":[[168,4],[197,4],[249,4]]},"1294":{"position":[[73,4]]},"1385":{"position":[[963,6]]},"1387":{"position":[[634,6],[1621,6]]},"1389":{"position":[[941,5],[2680,5]]},"1408":{"position":[[1924,5]]},"1431":{"position":[[1313,5],[1444,5],[1584,5]]}}}],["prevent",{"_index":1467,"t":{"200":{"position":[[133,7]]},"292":{"position":[[42,7]]},"1127":{"position":[[0,7]]}}}],["preview",{"_index":762,"t":{"78":{"position":[[2841,7]]},"312":{"position":[[39,7],[303,7]]},"348":{"position":[[394,8],[453,8],[513,8],[575,8],[1595,10],[2204,8],[2336,7],[2798,7],[3246,9],[3748,8],[3807,8],[3867,8],[3929,8],[4949,10],[5558,8],[5690,7],[6152,7],[6600,9],[10669,8]]},"388":{"position":[[6495,8]]},"782":{"position":[[9,7],[367,9]]},"1014":{"position":[[271,9]]},"1155":{"position":[[661,9]]},"1322":{"position":[[86,7]]},"1334":{"position":[[87,7]]},"1344":{"position":[[262,7]]},"1389":{"position":[[1459,8],[3198,8]]}}}],["preview.nvim",{"_index":3160,"t":{"782":{"position":[[64,14],[220,13]]},"784":{"position":[[41,13]]},"1014":{"position":[[95,14]]}}}],["previou",{"_index":968,"t":{"80":{"position":[[5054,9],[9874,9]]},"502":{"position":[[948,8]]},"1207":{"position":[[937,8]]},"1242":{"position":[[946,8],[2521,8]]},"1262":{"position":[[136,8]]},"1264":{"position":[[260,8]]},"1354":{"position":[[320,8]]},"1393":{"position":[[1022,9]]},"1395":{"position":[[427,9]]}}}],["primari",{"_index":3552,"t":{"1040":{"position":[[392,7],[970,7]]},"1072":{"position":[[683,7]]},"1236":{"position":[[1414,8],[1432,7],[1602,7]]},"1375":{"position":[[1741,7]]}}}],["print",{"_index":779,"t":{"78":{"position":[[3110,5]]},"358":{"position":[[1319,7],[1455,5],[2164,5]]},"502":{"position":[[210,5]]},"1308":{"position":[[276,5],[313,5]]}}}],["print_var_stat",{"_index":2355,"t":{"358":{"position":[[286,20],[2455,20]]}}}],["printf",{"_index":4646,"t":{"1406":{"position":[[487,9],[1686,9]]}}}],["printf_stat",{"_index":2354,"t":{"358":{"position":[[262,17],[2431,17]]}}}],["prioriti",{"_index":1199,"t":{"99":{"position":[[129,8],[318,8]]},"131":{"position":[[150,8],[370,8]]},"189":{"position":[[114,8],[535,8]]},"220":{"position":[[236,8],[497,8]]},"1040":{"position":[[409,8],[987,8]]},"1072":{"position":[[617,8]]},"1175":{"position":[[492,8],[838,8],[1491,8],[1837,8],[2964,8]]},"1236":{"position":[[1663,11]]},"1375":{"position":[[1725,8]]}}}],["prisma",{"_index":3153,"t":{"772":{"position":[[48,8],[129,8]]}}}],["prismal",{"_index":3154,"t":{"774":{"position":[[39,8],[107,8]]}}}],["privatenam",{"_index":4765,"t":{"1422":{"position":[[2300,11],[5362,11]]}}}],["process",{"_index":2799,"t":{"540":{"position":[[599,9],[1461,9]]},"730":{"position":[[145,7],[516,7]]}}}],["processid",{"_index":3682,"t":{"1066":{"position":[[1548,9],[3599,9]]}}}],["procmacro",{"_index":3364,"t":{"916":{"position":[[714,9],[1757,9]]}}}],["profil",{"_index":2252,"t":{"348":{"position":[[6794,7],[6825,8],[6867,7]]},"1242":{"position":[[1670,8],[1700,8]]},"1260":{"position":[[183,8]]},"1387":{"position":[[344,10],[1331,10]]},"1413":{"position":[[1587,9]]}}}],["program",{"_index":2795,"t":{"540":{"position":[[407,7],[1269,7]]},"568":{"position":[[515,7],[1196,7]]},"1066":{"position":[[1240,7],[3291,7]]}}}],["progress",{"_index":4910,"t":{"1433":{"position":[[2185,11],[5348,11]]}}}],["project",{"_index":558,"t":{"56":{"position":[[8,7]]},"456":{"position":[[2039,10]]},"462":{"position":[[120,11],[306,11]]},"468":{"position":[[95,10],[402,10]]},"470":{"position":[[68,11],[308,11]]},"472":{"position":[[110,8],[173,10],[344,9],[495,8],[558,10],[729,9]]},"726":{"position":[[414,7],[583,8],[1568,7],[2141,7],[2310,8],[3295,7]]},"762":{"position":[[379,7],[1670,7]]},"768":{"position":[[259,9],[615,9]]},"926":{"position":[[682,7]]},"950":{"position":[[486,8],[1570,8]]},"1165":{"position":[[49,8],[419,9],[509,8],[879,9]]},"1181":{"position":[[119,10]]},"1183":{"position":[[106,10]]},"1185":{"position":[[95,8],[378,8]]},"1187":{"position":[[68,9],[295,9]]},"1189":{"position":[[110,8],[147,8],[333,9],[484,8],[521,8],[707,9]]},"1191":{"position":[[111,9],[302,9]]},"1232":{"position":[[807,7]]},"1260":{"position":[[547,8]]},"1312":{"position":[[379,8]]},"1350":{"position":[[76,8]]},"1352":{"position":[[76,8]]},"1395":{"position":[[64,7]]}}}],["project.valu",{"_index":4130,"t":{"1179":{"position":[[344,13]]}}}],["project_nam",{"_index":3004,"t":{"726":{"position":[[449,12],[681,12],[804,12],[1083,12],[1164,12],[2176,12],[2408,12],[2531,12],[2810,12],[2891,12]]}}}],["projectroot",{"_index":3136,"t":{"762":{"position":[[854,11],[1161,11],[2145,11],[2452,11]]}}}],["projects.desc",{"_index":2673,"t":{"472":{"position":[[210,13],[226,13],[264,15],[595,13],[611,13],[649,15]]},"1165":{"position":[[128,13],[144,13],[182,15],[588,13],[604,13],[642,15]]},"1189":{"position":[[199,13],[215,13],[253,15],[573,13],[589,13],[627,15]]}}}],["projects.key_format",{"_index":2675,"t":{"472":{"position":[[280,19],[665,19]]},"1165":{"position":[[198,19],[658,19]]},"1189":{"position":[[269,19],[643,19]]}}}],["prompt",{"_index":1236,"t":{"115":{"position":[[665,8],[1038,6],[1287,7]]},"145":{"position":[[1658,8]]},"348":{"position":[[1944,6],[5298,6],[6767,6]]},"1060":{"position":[[4036,6],[4211,6],[8611,6],[8786,6]]},"1272":{"position":[[81,6],[157,6]]},"1274":{"position":[[200,6]]}}}],["prompt_for_file_nam",{"_index":628,"t":{"66":{"position":[[120,20],[396,20]]}}}],["prompt_func_param_typ",{"_index":2353,"t":{"358":{"position":[[145,22],[2314,22]]}}}],["prompt_func_return_typ",{"_index":2348,"t":{"358":{"position":[[27,23],[2196,23]]}}}],["prompt_posit",{"_index":262,"t":{"17":{"position":[[1226,15]]}}}],["prompt_prefix",{"_index":2434,"t":{"388":{"position":[[1327,13],[8004,13]]}}}],["prop",{"_index":1588,"t":{"214":{"position":[[4147,4],[5170,4]]}}}],["proper",{"_index":3563,"t":{"1060":{"position":[[200,6],[2334,6],[4775,6],[6909,6]]},"1232":{"position":[[424,6]]}}}],["properli",{"_index":303,"t":{"17":{"position":[[2691,8]]},"68":{"position":[[25,8]]},"270":{"position":[[313,11],[802,11]]},"334":{"position":[[318,11],[811,11]]},"338":{"position":[[2016,9]]},"1100":{"position":[[2264,8]]},"1422":{"position":[[845,8],[1130,8],[1328,8],[3907,8],[4192,8],[4390,8]]}}}],["properti",{"_index":203,"t":{"15":{"position":[[1570,8],[1955,11],[2264,11]]},"27":{"position":[[454,8]]},"1034":{"position":[[818,10],[1689,10]]},"1165":{"position":[[251,8],[711,8]]}}}],["propertydeclarationtyp",{"_index":3579,"t":{"1060":{"position":[[1110,24],[5685,24]]}}}],["protect",{"_index":3403,"t":{"926":{"position":[[944,7]]}}}],["protocol",{"_index":4315,"t":{"1238":{"position":[[538,8]]}}}],["provid",{"_index":473,"t":{"31":{"position":[[8,8]]},"39":{"position":[[82,8]]},"62":{"position":[[27,8],[311,8],[1190,9]]},"70":{"position":[[96,9],[304,9]]},"119":{"position":[[57,9],[336,9]]},"191":{"position":[[67,9],[313,9]]},"200":{"position":[[687,8],[1008,8]]},"214":{"position":[[4259,8],[4319,8]]},"220":{"position":[[113,9],[374,9]]},"244":{"position":[[186,7],[773,7]]},"282":{"position":[[91,9],[239,9]]},"642":{"position":[[91,9],[368,9]]},"848":{"position":[[27,8]]},"910":{"position":[[272,8]]},"942":{"position":[[85,9],[261,9]]},"1238":{"position":[[8,8],[305,8]]},"1268":{"position":[[282,8]]},"1422":{"position":[[886,7],[1171,7],[1369,7],[3948,7],[4233,7],[4431,7]]}}}],["provider.kind",{"_index":1594,"t":{"214":{"position":[[4377,13],[4541,13],[5204,13]]}}}],["provider.transform_item",{"_index":1605,"t":{"214":{"position":[[4769,24],[4869,24]]}}}],["proxi",{"_index":4557,"t":{"1387":{"position":[[892,5],[1879,5]]}}}],["ps1.tmpl",{"_index":4069,"t":{"1163":{"position":[[400,12],[1070,12]]}}}],["pull",{"_index":4012,"t":{"1155":{"position":[[860,6]]},"1344":{"position":[[330,5]]}}}],["purpos",{"_index":491,"t":{"39":{"position":[[118,8]]}}}],["put",{"_index":821,"t":{"78":{"position":[[3999,3],[4079,3]]},"196":{"position":[[789,4],[877,4],[967,4],[1060,4],[1315,4],[1412,4],[1509,4],[1606,4],[1705,4],[1786,4],[1868,4],[1957,4],[2035,4],[2115,4]]},"1110":{"position":[[332,3]]},"1147":{"position":[[1441,3]]},"1280":{"position":[[101,3],[126,3],[158,3],[191,3],[225,3],[251,3],[284,3],[327,3],[410,3],[452,3],[535,3],[568,3],[601,3],[630,3]]}}}],["pwa",{"_index":3661,"t":{"1066":{"position":[[143,4],[387,4],[1186,4],[1499,4],[2194,4],[2438,4],[3237,4],[3550,4]]}}}],["pwatyp",{"_index":3660,"t":{"1066":{"position":[[133,7],[571,7],[2184,7],[2622,7]]}}}],["pwntester/octo.nvim",{"_index":4138,"t":{"1197":{"position":[[145,22]]},"1199":{"position":[[854,22]]}}}],["pwsh",{"_index":701,"t":{"78":{"position":[[1435,4]]},"181":{"position":[[154,5]]}}}],["pyright",{"_index":267,"t":{"17":{"position":[[1315,7],[1438,7],[1515,7]]},"828":{"position":[[201,8],[237,9]]},"832":{"position":[[474,7],[1035,7]]},"834":{"position":[[61,10],[347,10]]},"1236":{"position":[[937,8]]}}}],["pytest",{"_index":3236,"t":{"842":{"position":[[134,9],[394,9]]}}}],["python",{"_index":314,"t":{"17":{"position":[[3026,9]]},"248":{"position":[[2580,8]]},"296":{"position":[[1437,6],[1446,9],[2625,6],[4672,6],[4681,9],[5860,6]]},"430":{"position":[[48,10],[153,10]]},"726":{"position":[[920,6],[2647,6]]},"828":{"position":[[137,7]]},"836":{"position":[[53,8]]},"838":{"position":[[53,8],[186,8],[293,8]]},"840":{"position":[[226,6],[283,9],[375,8]]},"842":{"position":[[50,8],[147,6],[266,8],[310,8],[407,6]]},"844":{"position":[[113,8],[246,8],[353,8]]},"846":{"position":[[122,9],[279,9]]},"848":{"position":[[48,6],[95,6],[198,6]]},"1236":{"position":[[760,6]]},"1406":{"position":[[497,9],[1696,9]]}}}],["python\").setup(\"debugpi",{"_index":3227,"t":{"838":{"position":[[341,23]]},"844":{"position":[[401,23]]}}}],["python').test_class",{"_index":3226,"t":{"838":{"position":[[239,21]]},"844":{"position":[[299,21]]}}}],["python').test_method",{"_index":3224,"t":{"838":{"position":[[130,22]]},"844":{"position":[[190,22]]}}}],["q",{"_index":966,"t":{"80":{"position":[[5024,5],[5086,5]]},"82":{"position":[[1902,3],[2321,4]]},"348":{"position":[[173,3],[3527,3]]},"388":{"position":[[2085,5],[8762,5]]},"1100":{"position":[[1421,3],[3690,3]]},"1242":{"position":[[943,2],[966,2]]},"1264":{"position":[[257,2],[293,2]]},"1393":{"position":[[792,5],[1061,5]]},"1443":{"position":[[1227,4],[2502,4]]}}}],["qa",{"_index":3780,"t":{"1088":{"position":[[1314,2],[2952,2]]},"1147":{"position":[[1200,5],[2645,5]]},"1443":{"position":[[1256,5],[2531,5]]}}}],["qf",{"_index":1137,"t":{"82":{"position":[[2157,5]]},"338":{"position":[[164,5],[2534,5]]},"1123":{"position":[[395,5],[3182,5]]},"1127":{"position":[[199,5],[470,5]]}}}],["qflist",{"_index":4609,"t":{"1393":{"position":[[734,6]]}}}],["qualifi",{"_index":2881,"t":{"632":{"position":[[155,10],[377,10]]}}}],["quarto",{"_index":3261,"t":{"852":{"position":[[883,8],[1992,8]]}}}],["queri",{"_index":315,"t":{"17":{"position":[[3036,8]]},"932":{"position":[[614,7],[680,5],[759,7]]},"940":{"position":[[292,5],[623,5]]},"1406":{"position":[[507,8],[1706,8],[3241,5],[3283,6],[3473,6]]},"1408":{"position":[[1769,5]]}}}],["query:gsub",{"_index":4704,"t":{"1408":{"position":[[1809,15]]}}}],["quick",{"_index":1242,"t":{"115":{"position":[[1047,6],[1157,6]]},"202":{"position":[[554,5],[1723,5]]},"276":{"position":[[525,5]]},"1272":{"position":[[202,5]]},"1292":{"position":[[356,5]]},"1406":{"position":[[2235,5]]}}}],["quickfil",{"_index":4719,"t":{"1413":{"position":[[70,9],[724,9]]}}}],["quickfix",{"_index":961,"t":{"80":{"position":[[4757,8],[4996,9],[5064,9],[5122,9]]},"348":{"position":[[131,8],[3485,8],[10229,9]]},"388":{"position":[[5985,9]]},"456":{"position":[[4424,9]]},"1078":{"position":[[525,8],[625,11],[1267,8],[1367,11]]},"1123":{"position":[[409,10],[3196,10]]},"1242":{"position":[[927,8],[955,8],[974,8]]},"1260":{"position":[[1293,8]]},"1264":{"position":[[154,8]]},"1312":{"position":[[1091,8]]},"1393":{"position":[[761,9]]}}}],["quickfixua",{"_index":1011,"t":{"80":{"position":[[6942,41]]}}}],["snacks.toggle.diagnostics():map(\"ud",{"_index":993,"t":{"80":{"position":[[6366,45]]}}}],["snacks.toggle.dim():map(\"ud",{"_index":1010,"t":{"80":{"position":[[6904,37]]}}}],["snacks.toggle.indent():map(\"ug",{"_index":1012,"t":{"80":{"position":[[6984,40]]}}}],["snacks.toggle.inlay_hints():map(\"uh",{"_index":1017,"t":{"80":{"position":[[7192,45]]}}}],["snacks.toggle.line_number():map(\"ul",{"_index":994,"t":{"80":{"position":[[6412,45]]}}}],["snacks.toggle.option(\"background",{"_index":1005,"t":{"80":{"position":[[6792,34]]}}}],["snacks.toggle.option(\"conceallevel",{"_index":995,"t":{"80":{"position":[[6458,36]]}}}],["snacks.toggle.option(\"relativenumb",{"_index":991,"t":{"80":{"position":[[6279,38]]}}}],["snacks.toggle.option(\"showtablin",{"_index":1000,"t":{"80":{"position":[[6607,35]]}}}],["snacks.toggle.option(\"spel",{"_index":986,"t":{"80":{"position":[[6142,29]]}}}],["snacks.toggle.option(\"wrap",{"_index":989,"t":{"80":{"position":[[6213,28]]}}}],["snacks.toggle.profiler():map(\"dpp",{"_index":1014,"t":{"80":{"position":[[7066,43]]}}}],["snacks.toggle.profiler_highlights():map(\"dph",{"_index":1015,"t":{"80":{"position":[[7110,54]]}}}],["snacks.toggle.scroll():map(\"u",{"_index":1013,"t":{"80":{"position":[[7025,40]]}}}],["snacks.toggle.treesitter():map(\"ut",{"_index":1004,"t":{"80":{"position":[[6747,44]]}}}],["snacks.toggle.zen():map(\"uz",{"_index":1061,"t":{"80":{"position":[[9334,37]]}}}],["snacks.toggle.zoom():map(\"wm\"):map(\"uz",{"_index":1060,"t":{"80":{"position":[[9277,56]]}}}],["snacks.util.color",{"_index":4249,"t":{"1226":{"position":[[185,17]]}}}],["snacks.util.color(\"const",{"_index":4896,"t":{"1433":{"position":[[1433,29],[4596,29]]}}}],["snacks.util.color(\"debug",{"_index":4899,"t":{"1433":{"position":[[1667,26],[4830,26]]}}}],["snacks.util.color(\"speci",{"_index":1337,"t":{"147":{"position":[[929,28],[1943,28]]},"1433":{"position":[[1832,28],[4995,28]]}}}],["snacks.util.color(\"stat",{"_index":4893,"t":{"1433":{"position":[[1180,30],[4343,30]]}}}],["snacks.util.color(hl",{"_index":1335,"t":{"147":{"position":[[642,21],[1656,21]]}}}],["snacks.zen",{"_index":4246,"t":{"1226":{"position":[[101,10]]}}}],["snacks_dashboard",{"_index":3810,"t":{"1094":{"position":[[459,19],[1067,19]]},"1110":{"position":[[633,19]]},"1433":{"position":[[506,18],[3669,18]]}}}],["snacks_input",{"_index":1266,"t":{"123":{"position":[[176,15],[481,15]]}}}],["snacks_layout_box",{"_index":4851,"t":{"1431":{"position":[[702,20],[2250,20]]}}}],["snacks_notif",{"_index":1267,"t":{"123":{"position":[[192,14],[497,14]]},"1094":{"position":[[479,15],[1087,15]]},"1110":{"position":[[653,15]]}}}],["snacks_picker_list",{"_index":2654,"t":{"464":{"position":[[358,20],[880,20]]},"474":{"position":[[441,20]]}}}],["snacks_termin",{"_index":3811,"t":{"1094":{"position":[[495,18],[1103,18]]},"1110":{"position":[[669,18]]},"1123":{"position":[[2304,18],[5091,18]]}}}],["snacks_win",{"_index":3812,"t":{"1094":{"position":[[514,13],[1122,13]]},"1110":{"position":[[688,13]]}}}],["snacksdashboardopen",{"_index":3860,"t":{"1110":{"position":[[845,24]]}}}],["snippet",{"_index":205,"t":{"15":{"position":[[1605,7]]},"46":{"position":[[29,8]]},"80":{"position":[[2835,7]]},"159":{"position":[[311,10],[482,11]]},"161":{"position":[[51,10],[222,11]]},"169":{"position":[[49,8],[135,8]]},"200":{"position":[[150,10],[279,8],[745,8],[788,8],[889,9],[1061,8],[1171,8],[1231,11]]},"202":{"position":[[372,8],[598,7],[820,7],[1176,10],[1541,8],[1767,7],[1989,7]]},"204":{"position":[[51,9]]},"206":{"position":[[658,9]]},"208":{"position":[[646,10],[1614,10]]},"214":{"position":[[27,8],[910,11],[1554,10],[1869,8],[2752,11]]},"216":{"position":[[52,10]]},"256":{"position":[[0,8],[158,10],[210,10],[287,10],[374,9],[524,10],[576,10]]},"258":{"position":[[71,10],[158,9]]},"260":{"position":[[52,9]]},"1224":{"position":[[304,8]]},"1234":{"position":[[1138,8]]},"1238":{"position":[[197,9]]}}}],["snippet_forward",{"_index":1363,"t":{"163":{"position":[[4,15]]},"214":{"position":[[3940,18],[4064,18]]},"248":{"position":[[1337,18],[3907,18]]}}}],["snippets\").al",{"_index":2906,"t":{"656":{"position":[[220,14]]}}}],["snippets.gen_loader.from_file(config_path",{"_index":1489,"t":{"200":{"position":[[1092,41]]}}}],["snippets.gen_loader.from_lang",{"_index":1493,"t":{"200":{"position":[[1290,32]]}}}],["snippets.md#expand",{"_index":1478,"t":{"200":{"position":[[429,18]]}}}],["snippets.nvim",{"_index":2904,"t":{"656":{"position":[[46,15]]}}}],["snippets/global.json",{"_index":1490,"t":{"200":{"position":[[1137,25]]}}}],["snippi",{"_index":1399,"t":{"177":{"position":[[163,8],[174,9],[748,8],[759,9]]}}}],["solargraph",{"_index":3279,"t":{"868":{"position":[[153,12],[173,10]]},"872":{"position":[[84,10],[116,13],[151,10],[244,10],[343,13],[536,10],[568,13],[603,10],[696,10],[795,13]]}}}],["solid",{"_index":4453,"t":{"1367":{"position":[[4,8],[85,10],[167,10]]},"1369":{"position":[[30,8]]},"1371":{"position":[[14,8],[71,8],[178,8]]}}}],["solidity_l",{"_index":4454,"t":{"1369":{"position":[[78,11],[149,11]]}}}],["somelang",{"_index":3449,"t":{"950":{"position":[[371,8],[1455,8]]}}}],["sometim",{"_index":487,"t":{"39":{"position":[[0,9]]}}}],["sopt",{"_index":4808,"t":{"1422":{"position":[[8194,5],[8223,5],[8231,5],[8260,6],[8294,5],[8572,6],[8655,6]]}}}],["sopts.en",{"_index":4809,"t":{"1422":{"position":[[8332,13]]}}}],["sopts.mason",{"_index":4812,"t":{"1422":{"position":[[8432,11]]}}}],["sor",{"_index":1987,"t":{"296":{"position":[[2531,6],[5766,6]]}}}],["sort",{"_index":1412,"t":{"181":{"position":[[85,4],[249,4]]},"248":{"position":[[2151,7],[4721,7]]}}}],["sort_lastused=tru",{"_index":2471,"t":{"388":{"position":[[3598,18]]}}}],["sort_lastused=true|fals",{"_index":1804,"t":{"264":{"position":[[248,15],[1183,15]]}}}],["string[]|boolean",{"_index":215,"t":{"15":{"position":[[1798,18]]}}}],["string|fun",{"_index":130,"t":{"15":{"position":[[105,12]]}}}],["string|str",{"_index":698,"t":{"78":{"position":[[1248,16]]},"1236":{"position":[[2617,16]]}}}],["struct",{"_index":206,"t":{"15":{"position":[[1637,6],[1967,9],[2276,9]]}}}],["structur",{"_index":227,"t":{"15":{"position":[[2253,10]]},"23":{"position":[[156,9]]},"264":{"position":[[152,10],[1087,10]]},"324":{"position":[[64,9]]},"762":{"position":[[387,9],[1678,9]]}}}],["stuff",{"_index":3939,"t":{"1141":{"position":[[9,5]]}}}],["style",{"_index":541,"t":{"50":{"position":[[56,6]]},"316":{"position":[[52,5],[309,5]]},"1175":{"position":[[413,5],[1412,5]]},"1399":{"position":[[38,5],[104,5]]}}}],["style=detail",{"_index":2775,"t":{"536":{"position":[[596,16],[1569,16]]}}}],["style=llvm",{"_index":2777,"t":{"536":{"position":[[656,12],[1629,12]]}}}],["stylua",{"_index":252,"t":{"17":{"position":[[959,7],[1767,7],[4226,9]]},"80":{"position":[[6001,7]]},"137":{"position":[[78,7],[1036,7]]},"145":{"position":[[471,7]]},"167":{"position":[[463,7]]},"196":{"position":[[643,7]]},"206":{"position":[[445,7],[1084,7],[1199,7]]},"228":{"position":[[115,7]]},"230":{"position":[[70,7]]},"234":{"position":[[307,7]]},"240":{"position":[[127,7]]},"264":{"position":[[788,7],[1723,7]]},"296":{"position":[[2806,7]]},"352":{"position":[[97,7],[718,7]]},"354":{"position":[[79,7]]},"396":{"position":[[97,7],[729,7]]},"412":{"position":[[845,7]]},"456":{"position":[[857,7]]},"460":{"position":[[97,7],[1203,7]]},"466":{"position":[[79,7]]},"838":{"position":[[65,7]]},"844":{"position":[[125,7]]},"1078":{"position":[[3221,7]]},"1082":{"position":[[76,7]]},"1088":{"position":[[546,7],[2184,7]]},"1100":{"position":[[622,7],[2891,7]]},"1123":{"position":[[2745,7]]},"1147":{"position":[[617,7],[2062,7]]},"1375":{"position":[[611,8],[2604,8]]},"1385":{"position":[[263,7]]},"1389":{"position":[[671,7],[2410,7]]},"1395":{"position":[[244,7]]},"1413":{"position":[[1326,7]]},"1415":{"position":[[279,7]]},"1422":{"position":[[1912,6],[4974,6]]},"1428":{"position":[[78,9],[298,9]]},"1431":{"position":[[140,7],[211,7],[1688,7],[1759,7]]},"1433":{"position":[[965,7],[1224,7],[1476,7],[1707,7],[4128,7],[4387,7],[4639,7],[4870,7]]},"1435":{"position":[[1018,7]]},"1441":{"position":[[627,7]]},"1443":{"position":[[435,7],[1710,7]]}}}],["sub(2",{"_index":3135,"t":{"762":{"position":[[833,11],[2124,11]]}}}],["subdirectori",{"_index":1491,"t":{"200":{"position":[[1243,14]]}}}],["subfold",{"_index":3548,"t":{"1040":{"position":[[158,9],[736,9]]}}}],["subject",{"_index":3077,"t":{"726":{"position":[[5863,9]]}}}],["submit",{"_index":1235,"t":{"115":{"position":[[657,7]]},"1155":{"position":[[1693,8]]},"1272":{"position":[[74,6]]},"1344":{"position":[[631,6]]}}}],["subscrol",{"_index":3846,"t":{"1106":{"position":[[1171,9],[2490,9]]}}}],["substitut",{"_index":732,"t":{"78":{"position":[[2249,13],[2861,10]]}}}],["success",{"_index":953,"t":{"80":{"position":[[4546,8],[4658,7],[4811,8],[4919,7]]},"358":{"position":[[400,7],[2569,7]]}}}],["such",{"_index":4313,"t":{"1238":{"position":[[189,4],[687,4]]}}}],["suffic",{"_index":3014,"t":{"726":{"position":[[950,8],[2677,8]]}}}],["suggest",{"_index":688,"t":{"78":{"position":[[1000,11]]},"105":{"position":[[35,10],[418,10]]},"125":{"position":[[194,10],[589,10]]},"137":{"position":[[198,12],[332,12],[490,11],[1156,12],[1290,12],[1448,11]]},"145":{"position":[[53,11],[290,11]]},"1060":{"position":[[885,7],[5460,7]]},"1230":{"position":[[369,7]]}}}],["suggestion.has_suggest",{"_index":1275,"t":{"125":{"position":[[256,27],[651,27]]}}}],["suggestion.on_accept_suggest",{"_index":1276,"t":{"125":{"position":[[335,33],[730,33]]}}}],["suketa/nvim",{"_index":3288,"t":{"876":{"position":[[30,12]]},"880":{"position":[[90,12]]}}}],["summari",{"_index":1136,"t":{"82":{"position":[[2137,9]]},"320":{"position":[[182,7],[222,7],[509,7],[549,7]]},"1078":{"position":[[3880,7]]},"1123":{"position":[[766,9],[790,8],[3553,9],[3577,8]]},"1336":{"position":[[281,7]]},"1406":{"position":[[1076,7],[2826,7]]}}}],["summary.add",{"_index":2085,"t":{"320":{"position":[[244,12],[571,12]]}}}],["summary.chang",{"_index":2086,"t":{"320":{"position":[[268,15],[595,15]]}}}],["summary.delet",{"_index":2087,"t":{"320":{"position":[[294,15],[621,15]]}}}],["sunday",{"_index":1947,"t":{"296":{"position":[[825,9],[4060,9]]}}}],["super",{"_index":1584,"t":{"214":{"position":[[3801,6],[3821,5]]},"726":{"position":[[5785,6]]}}}],["supermaven",{"_index":207,"t":{"15":{"position":[[1653,10]]},"123":{"position":[[214,11]]},"125":{"position":[[400,11]]},"127":{"position":[[31,11]]},"129":{"position":[[31,11]]},"131":{"position":[[119,13],[233,11],[339,13]]}}}],["supermavensuggest",{"_index":1273,"t":{"125":{"position":[[122,22],[517,22]]}}}],["supermavenusefre",{"_index":1269,"t":{"123":{"position":[[279,20]]}}}],["supermavenusepro",{"_index":1270,"t":{"123":{"position":[[300,19]]}}}],["supermethodlensesen",{"_index":3308,"t":{"890":{"position":[[294,24],[1341,24]]}}}],["supertab",{"_index":497,"t":{"46":{"position":[[38,11]]}}}],["suppli",{"_index":1845,"t":{"272":{"position":[[353,9],[1152,9]]}}}],["support",{"_index":39,"t":{"6":{"position":[[83,8],[390,7]]},"19":{"position":[[604,7],[2040,7],[2256,7]]},"66":{"position":[[0,7]]},"78":{"position":[[946,8],[4256,7]]},"135":{"position":[[147,7]]},"214":{"position":[[185,7],[263,7],[504,7],[741,7],[2027,7],[2105,7],[2346,7],[2583,7]]},"224":{"position":[[11,7]]},"234":{"position":[[93,8]]},"372":{"position":[[8,7]]},"382":{"position":[[8,7]]},"590":{"position":[[15,7]]},"678":{"position":[[810,10],[2127,10]]},"708":{"position":[[12,7]]},"852":{"position":[[223,9],[1332,9]]},"910":{"position":[[247,7]]},"1032":{"position":[[12,7]]},"1034":{"position":[[168,7],[715,7],[1039,7],[1586,7]]},"1078":{"position":[[3087,7]]},"1175":{"position":[[986,10]]},"1216":{"position":[[141,7]]},"1218":{"position":[[399,9]]},"1232":{"position":[[347,9],[489,8]]},"1236":{"position":[[728,7]]},"1363":{"position":[[20,7]]},"1406":{"position":[[2093,12]]}}}],["sure",{"_index":460,"t":{"29":{"position":[[621,4]]},"31":{"position":[[103,4]]},"56":{"position":[[158,4]]},"68":{"position":[[5,4]]},"78":{"position":[[1982,4]]},"662":{"position":[[5,4]]},"710":{"position":[[61,4],[497,4]]},"724":{"position":[[180,4],[360,4]]},"926":{"position":[[891,4]]},"1034":{"position":[[61,4],[932,4]]},"1060":{"position":[[61,4],[4636,4]]},"1076":{"position":[[12,4]]},"1406":{"position":[[931,4]]}}}],["surround",{"_index":1378,"t":{"173":{"position":[[60,11],[125,11],[159,11],[213,11],[271,11],[311,11],[570,13],[646,12],[703,12],[764,12],[825,12],[882,12],[1146,11],[1211,11],[1245,11],[1299,11],[1357,11],[1397,11]]},"292":{"position":[[7,8],[129,11],[194,11],[228,11],[282,11],[340,11],[380,11],[529,11],[594,11],[628,11],[682,11],[740,11],[780,11],[870,11]]},"1276":{"position":[[43,8],[81,11],[109,11],[138,11],[166,11],[194,11],[261,11]]},"1298":{"position":[[67,9]]},"1387":{"position":[[710,10],[1697,10]]}}}],["svelt",{"_index":3343,"t":{"900":{"position":[[48,8],[128,8]]},"902":{"position":[[51,6],[222,6]]},"904":{"position":[[168,6],[268,6],[491,6],[591,6]]},"1175":{"position":[[264,9],[1263,9]]},"1232":{"position":[[550,7]]}}}],["swap",{"_index":842,"t":{"78":{"position":[[4440,4]]}}}],["switch",{"_index":615,"t":{"62":{"position":[[1175,7]]},"80":{"position":[[2444,7],[2519,7]]},"348":{"position":[[7650,7]]},"388":{"position":[[3287,7]]},"536":{"position":[[198,7],[1171,7]]},"1242":{"position":[[444,6],[479,6]]},"1268":{"position":[[268,6]]}}}],["symbol",{"_index":434,"t":{"23":{"position":[[325,7],[459,8]]},"78":{"position":[[1725,7]]},"214":{"position":[[4239,6]]},"264":{"position":[[1908,10]]},"268":{"position":[[396,6]]},"272":{"position":[[179,7],[232,6],[256,7],[320,8],[437,7],[518,8],[585,6],[695,7],[748,6],[978,7],[1031,6],[1055,7],[1119,8],[1236,7],[1317,8],[1384,6],[1494,7],[1547,6]]},"324":{"position":[[4,6]]},"330":{"position":[[103,7],[256,6],[624,7],[777,6]]},"338":{"position":[[986,7],[3356,7]]},"348":{"position":[[3082,7],[6436,7],[10802,8],[10941,6]]},"388":{"position":[[6586,7],[6651,8],[6751,7],[6816,6]]},"460":{"position":[[632,9],[799,9],[1738,9],[1905,9]]},"502":{"position":[[1201,6]]},"634":{"position":[[51,8]]},"636":{"position":[[51,9]]},"640":{"position":[[232,8]]},"642":{"position":[[282,9]]},"1110":{"position":[[183,6],[197,6],[386,6],[400,6]]},"1236":{"position":[[1133,7]]},"1264":{"position":[[32,7]]},"1286":{"position":[[84,9]]},"1288":{"position":[[82,6]]},"1393":{"position":[[466,7],[494,8]]},"1433":{"position":[[655,7],[1881,7],[2438,7],[2639,7],[2677,10],[2861,7],[3818,7],[5044,7],[5601,7],[5802,7],[5840,10],[6024,7]]}}}],["symbol.hl",{"_index":2108,"t":{"330":{"position":[[389,10],[910,10]]}}}],["symbol.icon",{"_index":2107,"t":{"330":{"position":[[371,12],[892,12]]}}}],["symbol_fmt",{"_index":2243,"t":{"348":{"position":[[3149,10],[6503,10]]}}}],["symbol_hl",{"_index":2240,"t":{"348":{"position":[[3094,9],[6448,9]]}}}],["symbols.get",{"_index":4917,"t":{"1433":{"position":[[2873,12],[6036,12]]}}}],["symbols.ha",{"_index":4918,"t":{"1433":{"position":[[2946,13],[6109,13]]}}}],["symbols_filt",{"_index":2325,"t":{"348":{"position":[[10765,15],[10904,15]]}}}],["symbols_idx",{"_index":2111,"t":{"334":{"position":[[119,11],[203,11],[612,11],[696,11]]}}}],["symbolsoutlin",{"_index":439,"t":{"23":{"position":[[382,17]]}}}],["sync",{"_index":722,"t":{"78":{"position":[[2100,4]]}}}],["sync_with_r",{"_index":1435,"t":{"196":{"position":[[48,14],[248,14]]}}}],["syntax",{"_index":3113,"t":{"752":{"position":[[4,6]]},"1238":{"position":[[582,6]]},"1359":{"position":[[17,7]]},"1406":{"position":[[102,6]]},"1420":{"position":[[4,6]]}}}],["system",{"_index":723,"t":{"78":{"position":[[2110,6]]},"338":{"position":[[620,6],[660,6],[2990,6],[3030,6]]},"884":{"position":[[105,6],[451,6]]},"1387":{"position":[[1034,6],[2021,6]]}}}],["system_clipboard",{"_index":1434,"t":{"196":{"position":[[27,16],[227,16]]}}}],["t",{"_index":1315,"t":{"145":{"position":[[770,4]]},"286":{"position":[[241,4],[246,3]]},"348":{"position":[[676,3],[3194,4],[4030,3],[6548,4],[7013,1],[7485,4],[7546,4]]},"388":{"position":[[1779,4],[1810,4],[8456,4],[8487,4]]},"458":{"position":[[295,4],[667,4]]},"1012":{"position":[[181,5],[667,5]]},"1242":{"position":[[2129,1],[2157,1]]},"1262":{"position":[[133,2],[160,2]]},"1274":{"position":[[325,2]]},"1361":{"position":[[640,1],[1551,1]]},"1395":{"position":[[270,5],[361,5]]},"1413":{"position":[[214,3],[304,3],[394,3],[484,3],[556,4],[643,4],[868,3],[958,3],[1048,3],[1138,3],[1210,4],[1297,4]]}}}],["t.prompt",{"_index":2254,"t":{"348":{"position":[[6897,8],[6908,8]]}}}],["t[y]p",{"_index":2340,"t":{"352":{"position":[[583,6],[1204,6]]},"396":{"position":[[594,6],[1226,6]]},"460":{"position":[[499,6],[1605,6]]},"1244":{"position":[[113,6]]}}}],["tab",{"_index":496,"t":{"46":{"position":[[4,5],[448,9],[837,6]]},"78":{"position":[[2451,4],[3043,8],[4202,4]]},"80":{"position":[[9375,4],[9442,4],[9519,5],[9592,4],[9664,4],[9734,4],[9806,4],[9884,4]]},"145":{"position":[[534,8],[573,9]]},"167":{"position":[[489,8],[561,6]]},"206":{"position":[[1232,5],[1303,6]]},"214":{"position":[[3733,5],[3808,4],[3827,3]]},"248":{"position":[[1281,9],[3851,9]]},"1078":{"position":[[1614,3]]},"1242":{"position":[[2357,3],[2390,4],[2418,3],[2447,3],[2473,3],[2500,3],[2530,3]]},"1387":{"position":[[243,6],[1230,6]]},"1431":{"position":[[44,5]]}}}],["tab\")[\"\"][1",{"_index":1586,"t":{"214":{"position":[[3903,18]]}}}],["tab_char",{"_index":3806,"t":{"1094":{"position":[[284,8],[892,8]]}}}],["tabl",{"_index":321,"t":{"17":{"position":[[3146,6]]},"200":{"position":[[856,5]]},"214":{"position":[[3620,7]]},"234":{"position":[[2146,7]]},"348":{"position":[[6978,7]]},"402":{"position":[[77,7],[424,7]]},"504":{"position":[[91,7],[299,7]]},"766":{"position":[[77,7],[246,7]]},"852":{"position":[[39,5],[1148,5]]},"950":{"position":[[427,5],[1511,5]]},"964":{"position":[[146,7],[260,7],[510,7],[624,7]]},"1060":{"position":[[3050,7],[7625,7]]},"1078":{"position":[[122,5],[864,5],[2782,7]]},"1141":{"position":[[131,7],[811,7]]},"1175":{"position":[[1922,7]]},"1380":{"position":[[1995,7],[2035,7],[2158,7],[2924,5],[3558,7]]},"1406":{"position":[[2394,7],[2479,7],[3394,7]]},"1422":{"position":[[7350,7]]}}}],["table.concat",{"_index":3964,"t":{"1147":{"position":[[69,14],[1514,14]]}}}],["table.insert",{"_index":1210,"t":{"111":{"position":[[51,13],[541,13]]},"139":{"position":[[103,13],[493,13]]}}}],["table.insert(cmd",{"_index":2995,"t":{"726":{"position":[[219,17],[1946,17]]}}}],["table.insert(dashboard.section.buttons.v",{"_index":2666,"t":{"468":{"position":[[225,43],[532,43]]},"1185":{"position":[[201,43],[484,43]]}}}],["table.insert(en",{"_index":1581,"t":{"214":{"position":[[3675,21]]}}}],["table.insert(fil",{"_index":3633,"t":{"1060":{"position":[[3969,19],[8544,19]]}}}],["table.insert(key",{"_index":1863,"t":{"276":{"position":[[559,18]]}}}],["table.insert(opts.auto_bracket",{"_index":3239,"t":{"846":{"position":[[89,32],[246,32]]}}}],["table.insert(opts.bottom",{"_index":3437,"t":{"940":{"position":[[252,25],[583,25]]}}}],["table.insert(opts.config.cent",{"_index":2676,"t":{"472":{"position":[[308,32],[693,32]]},"1165":{"position":[[383,32],[843,32]]},"1189":{"position":[[297,32],[671,32]]}}}],["table.insert(opts.dashboard.preset.key",{"_index":2652,"t":{"462":{"position":[[43,40],[229,40]]},"1167":{"position":[[322,40],[740,40]]},"1191":{"position":[[43,40],[234,40]]}}}],["table.insert(opts.ensure_instal",{"_index":2569,"t":{"426":{"position":[[43,35],[143,35]]},"1062":{"position":[[95,35],[258,35]]},"1066":{"position":[[2002,35]]},"1141":{"position":[[144,35],[824,35]]}}}],["table.insert(opts.formatters_by_ft[ft",{"_index":2390,"t":{"370":{"position":[[189,39],[576,39]]},"380":{"position":[[197,39],[700,39]]},"946":{"position":[[209,39],[504,39]]}}}],["table.insert(opts.left",{"_index":3882,"t":{"1123":{"position":[[1474,23],[4261,23]]}}}],["table.insert(opts.linters_by_ft[ft",{"_index":3441,"t":{"944":{"position":[[128,36],[340,36]]}}}],["table.insert(opts.open_files_do_not_replace_typ",{"_index":3910,"t":{"1127":{"position":[[228,50],[499,50]]}}}],["table.insert(opts.right",{"_index":1254,"t":{"117":{"position":[[90,24],[285,24]]},"270":{"position":[[383,24],[872,24]]},"334":{"position":[[388,24],[881,24]]},"418":{"position":[[73,24],[291,24]]},"940":{"position":[[90,24],[421,24]]}}}],["table.insert(opts.sections.lualine_c",{"_index":1839,"t":{"272":{"position":[[97,37],[896,37]]},"326":{"position":[[97,37],[293,37]]},"1433":{"position":[[2821,37],[5984,37]]}}}],["table.insert(opts.sections.lualine_x",{"_index":330,"t":{"17":{"position":[[3618,37]]},"101":{"position":[[43,37],[220,37]]},"147":{"position":[[236,37],[674,37],[1250,37],[1688,37]]},"193":{"position":[[122,37],[357,37]]}}}],["table.insert(opts.servers.vtsls.filetyp",{"_index":3526,"t":{"1028":{"position":[[69,42],[488,42]]}}}],["table.insert(opts.sorting.compar",{"_index":2787,"t":{"538":{"position":[[135,38],[378,38]]}}}],["table.insert(opts.sourc",{"_index":247,"t":{"17":{"position":[[749,26]]},"27":{"position":[[937,26]]},"44":{"position":[[155,26]]},"99":{"position":[[62,26],[251,26]]},"131":{"position":[[80,26],[300,26]]},"167":{"position":[[153,26],[406,26]]},"189":{"position":[[43,26],[464,26]]},"206":{"position":[[330,26],[969,26]]},"256":{"position":[[174,26],[540,26]]},"372":{"position":[[124,26],[321,26]]},"382":{"position":[[124,26],[324,26]]},"428":{"position":[[108,26],[305,26]]},"564":{"position":[[108,26],[170,26],[370,26],[432,26]]},"594":{"position":[[43,26],[262,26]]},"640":{"position":[[59,26],[269,26]]},"818":{"position":[[108,26],[171,26],[369,26],[432,26]]},"862":{"position":[[77,26],[261,26]]},"1002":{"position":[[108,26],[357,26]]}}}],["table.insert(opts[po",{"_index":3891,"t":{"1123":{"position":[[1898,23],[2273,23],[4685,23],[5060,23]]}}}],["table.insert(sourc",{"_index":3414,"t":{"930":{"position":[[479,21]]}}}],["table.insert(win",{"_index":2439,"t":{"388":{"position":[[1562,18],[8239,18]]}}}],["table.remove(opts.config.cent",{"_index":4076,"t":{"1165":{"position":[[339,32],[799,32]]}}}],["table.remove(opts.dashboard.preset.key",{"_index":4081,"t":{"1167":{"position":[[247,40],[665,40]]}}}],["table.unpack",{"_index":500,"t":{"46":{"position":[[184,12]]}}}],["tableexecut",{"_index":901,"t":{"80":{"position":[[1960,9],[2057,9]]}}}],["u>gitsign",{"_index":4598,"t":{"1389":{"position":[[1785,10],[3524,10]]}}}],["u[%l%d]+%f[^%l%d",{"_index":4437,"t":{"1361":{"position":[[773,21],[1684,21]]}}}],["ueberzug",{"_index":2192,"t":{"348":{"position":[[1191,11],[4545,11]]}}}],["ueberzug_scal",{"_index":2212,"t":{"348":{"position":[[1767,15],[5121,15]]}}}],["uelic",{"_index":4222,"t":{"1213":{"position":[[1153,5]]}}}],["ui",{"_index":1656,"t":{"234":{"position":[[212,4]]},"236":{"position":[[50,4]]},"240":{"position":[[6,2],[75,4],[224,3]]},"456":{"position":[[4520,2]]},"932":{"position":[[58,4]]},"1232":{"position":[[190,2]]},"1238":{"position":[[642,3]]},"1284":{"position":[[97,2]]},"1387":{"position":[[562,4],[1549,4]]},"1435":{"position":[[56,2]]},"1439":{"position":[[0,2]]}}}],["ui.alpha",{"_index":4309,"t":{"1236":{"position":[[2260,8]]}}}],["ui_select",{"_index":2214,"t":{"348":{"position":[[1858,9],[5212,9]]}}}],["uncom",{"_index":4415,"t":{"1359":{"position":[[116,13]]}}}],["undefin",{"_index":3544,"t":{"1034":{"position":[[832,9],[1703,9]]}}}],["under",{"_index":97,"t":{"11":{"position":[[10,5],[209,5]]},"17":{"position":[[19,5]]},"23":{"position":[[75,5]]},"76":{"position":[[62,5],[509,5]]},"80":{"position":[[8257,5]]},"1228":{"position":[[222,5]]},"1236":{"position":[[958,5]]}}}],["undercurl",{"_index":71,"t":{"6":{"position":[[413,10]]},"1401":{"position":[[79,11],[104,11],[132,11],[163,11],[756,11],[781,11],[809,11],[840,11]]}}}],["underli",{"_index":4229,"t":{"1216":{"position":[[50,10]]}}}],["underlin",{"_index":4629,"t":{"1401":{"position":[[53,10],[730,10]]},"1422":{"position":[[168,9],[3230,9]]}}}],["understand",{"_index":3532,"t":{"1034":{"position":[[149,10],[1020,10]]}}}],["undo",{"_index":936,"t":{"80":{"position":[[3822,4]]},"1389":{"position":[[1335,5],[3074,5]]}}}],["undotre",{"_index":2631,"t":{"456":{"position":[[4503,10]]},"1260":{"position":[[1340,8]]},"1312":{"position":[[1138,8]]}}}],["ungroupedgv=gv",{"_index":902,"t":{"80":{"position":[[1990,19]]}}}],["v:gsub(\"_",{"_index":3883,"t":{"1123":{"position":[[1526,11],[4313,11]]}}}],["v:lua.lazyvim.format.formatexpr",{"_index":749,"t":{"78":{"position":[[2639,35]]}}}],["v:lua.lazyvim.statuscolumn",{"_index":826,"t":{"78":{"position":[[4131,34]]}}}],["v:lua.lazyvim.treesitter.foldexpr",{"_index":4692,"t":{"1406":{"position":[[3835,38]]}}}],["v:lua.lazyvim.treesitter.indentexpr",{"_index":4688,"t":{"1406":{"position":[[3665,40]]}}}],["v:lua.vim.lsp.foldexpr",{"_index":4787,"t":{"1422":{"position":[[6939,27]]}}}],["valid",{"_index":1589,"t":{"214":{"position":[[4170,10],[5193,10]]},"710":{"position":[[409,8],[845,8]]},"1034":{"position":[[645,8],[1516,8]]}}}],["valu",{"_index":212,"t":{"15":{"position":[[1737,5]]},"17":{"position":[[3234,6]]},"27":{"position":[[555,6],[608,7],[630,6]]},"296":{"position":[[680,6],[1863,5],[3915,6],[5098,5]]}}}],["var",{"_index":3503,"t":{"986":{"position":[[143,6],[347,6]]}}}],["variabl",{"_index":213,"t":{"15":{"position":[[1751,8]]},"358":{"position":[[437,8],[825,10],[877,10],[1461,10],[1976,10],[2029,10],[2170,10],[2606,8]]},"726":{"position":[[5622,9],[6247,10]]},"926":{"position":[[856,10]]},"1308":{"position":[[245,8],[282,8],[365,8]]}}}],["variabletyp",{"_index":3580,"t":{"1060":{"position":[[1157,13],[5732,13]]}}}],["variou",{"_index":1739,"t":{"244":{"position":[[86,7],[673,7]]}}}],["vb",{"_index":2832,"t":{"568":{"position":[[319,4],[1000,4]]}}}],["vendor",{"_index":2926,"t":{"678":{"position":[[240,6],[1557,6]]}}}],["venv",{"_index":3232,"t":{"840":{"position":[[259,4]]},"916":{"position":[[849,7],[857,8],[1892,7],[1900,8]]}}}],["venv/bin/python",{"_index":3237,"t":{"842":{"position":[[156,19],[416,19]]}}}],["venvselect",{"_index":3231,"t":{"840":{"position":[[127,13]]}}}],["verbosecompil",{"_index":3304,"t":{"890":{"position":[[170,18],[1217,18]]}}}],["version",{"_index":347,"t":{"19":{"position":[[120,7],[240,8],[334,7],[374,7],[470,7],[612,11],[906,8],[941,11],[2048,11],[2124,7],[2180,7],[2231,7]]},"214":{"position":[[1310,7],[1714,7]]},"216":{"position":[[212,7]]},"222":{"position":[[174,7]]},"248":{"position":[[2207,7]]},"296":{"position":[[2397,10],[5632,10]]},"388":{"position":[[2254,7]]},"648":{"position":[[60,7]]},"692":{"position":[[57,9],[228,9]]},"708":{"position":[[88,7]]},"828":{"position":[[302,8]]},"1032":{"position":[[88,7]]},"1060":{"position":[[255,7],[2206,9],[2389,7],[4830,7],[6781,9],[6964,7]]},"1064":{"position":[[120,9],[711,9]]},"1110":{"position":[[281,7]]},"1147":{"position":[[1390,7]]},"1216":{"position":[[159,9]]},"1218":{"position":[[198,8]]},"1234":{"position":[[991,7],[1188,8],[1296,8]]},"1406":{"position":[[645,7]]}}}],["version=fals",{"_index":358,"t":{"19":{"position":[[552,13],[1989,13]]}}}],["vertic",{"_index":2061,"t":{"312":{"position":[[2720,11],[2927,11]]},"348":{"position":[[2140,11],[2433,11],[2445,8],[2513,11],[2525,8],[5494,11],[5787,11],[5799,8],[5867,11],[5879,8]]}}}],["verylazi",{"_index":329,"t":{"17":{"position":[[3581,11],[3798,11]]},"62":{"position":[[290,11]]},"66":{"position":[[291,11]]},"80":{"position":[[97,8]]},"82":{"position":[[111,8]]},"101":{"position":[[183,11]]},"111":{"position":[[504,11]]},"139":{"position":[[404,11]]},"147":{"position":[[1028,11]]},"153":{"position":[[221,11]]},"193":{"position":[[272,11]]},"290":{"position":[[103,10]]},"308":{"position":[[61,11]]},"316":{"position":[[158,11]]},"1106":{"position":[[674,10],[1390,11],[1993,10]]},"1118":{"position":[[116,11]]},"1123":{"position":[[2639,11]]},"1179":{"position":[[118,11]]},"1357":{"position":[[609,11]]},"1359":{"position":[[194,11]]},"1361":{"position":[[1104,11]]},"1375":{"position":[[1635,8]]},"1385":{"position":[[200,11]]},"1387":{"position":[[1091,11]]},"1406":{"position":[[1126,10]]},"1408":{"position":[[672,11]]},"1431":{"position":[[898,11]]},"1433":{"position":[[3027,11]]},"1435":{"position":[[575,11]]}}}],["via",{"_index":2987,"t":{"724":{"position":[[61,3]]},"1380":{"position":[[78,3]]}}}],["video",{"_index":82,"t":{"8":{"position":[[16,5]]}}}],["view",{"_index":765,"t":{"78":{"position":[[2890,6]]},"316":{"position":[[43,4],[300,4]]},"852":{"position":[[1055,6],[2164,6]]},"1435":{"position":[[431,4],[900,4]]}}}],["vifmrc",{"_index":3946,"t":{"1141":{"position":[[287,10],[967,10]]}}}],["vim",{"_index":318,"t":{"17":{"position":[[3075,6]]},"177":{"position":[[184,5],[769,5]]},"930":{"position":[[86,4],[450,3],[510,4]]},"932":{"position":[[149,4]]},"1141":{"position":[[300,6],[980,6]]},"1211":{"position":[[277,4]]},"1234":{"position":[[833,3]]},"1406":{"position":[[554,6],[1753,6]]}}}],["vim%.uv",{"_index":4451,"t":{"1363":{"position":[[183,9],[458,9]]}}}],["vim.api.nvim_buf_get_lines(0",{"_index":504,"t":{"46":{"position":[[274,29]]}}}],["vim.api.nvim_buf_get_mark(buf",{"_index":1119,"t":{"82":{"position":[[1691,30]]}}}],["vim.api.nvim_buf_get_name(0",{"_index":3018,"t":{"726":{"position":[[1010,28],[2737,28],[4149,28]]},"762":{"position":[[666,28],[1957,28]]},"1012":{"position":[[105,28],[591,28]]},"1380":{"position":[[3272,28]]}}}],["vim.api.nvim_buf_is_valid(buff",{"_index":4780,"t":{"1422":{"position":[[6523,33]]}}}],["vim.api.nvim_buf_line_count(buf",{"_index":1121,"t":{"82":{"position":[[1742,32]]}}}],["vim.api.nvim_create_augroup(\"lazyvim_",{"_index":1086,"t":{"82":{"position":[[612,38]]}}}],["vim.api.nvim_create_augroup(\"lazyvim_treesitt",{"_index":4673,"t":{"1406":{"position":[[2995,49]]}}}],["vim.api.nvim_create_augroup(\"lazyvim_treesitter_textobject",{"_index":4713,"t":{"1408":{"position":[[2320,61]]}}}],["vim.api.nvim_create_augroup(\"neotree_start_directori",{"_index":2151,"t":{"338":{"position":[[2076,54]]}}}],["vim.api.nvim_create_augroup(\"nvim",{"_index":3331,"t":{"890":{"position":[[1742,33]]},"1380":{"position":[[3745,33]]}}}],["vim.api.nvim_create_augroup(\"octo_exit_pr",{"_index":4159,"t":{"1199":{"position":[[507,44],[1354,44]]}}}],["vim.api.nvim_create_autocmd",{"_index":1079,"t":{"82":{"position":[[291,29],[737,29],[1138,29],[3022,29],[3292,29]]},"87":{"position":[[167,29]]},"402":{"position":[[156,29],[503,29]]},"502":{"position":[[523,29]]},"1161":{"position":[[506,29]]},"1422":{"position":[[7152,29]]},"1431":{"position":[[2514,29]]}}}],["vim.api.nvim_create_autocmd(\"bufent",{"_index":1248,"t":{"115":{"position":[[1409,39]]},"338":{"position":[[2026,39]]}}}],["vim.api.nvim_create_autocmd(\"bufreadpost",{"_index":1109,"t":{"82":{"position":[[1390,42]]}}}],["vim.api.nvim_create_autocmd(\"colorschem",{"_index":4104,"t":{"1175":{"position":[[2005,42]]}}}],["vim.api.nvim_create_autocmd(\"dirchang",{"_index":2685,"t":{"484":{"position":[[307,41]]}}}],["vim.api.nvim_create_autocmd(\"exitpr",{"_index":4158,"t":{"1199":{"position":[[458,38],[1305,38]]}}}],["vim.api.nvim_create_autocmd(\"filetyp",{"_index":1124,"t":{"82":{"position":[[1906,39],[2550,39],[2763,39]]},"282":{"position":[[904,39]]},"726":{"position":[[4996,39]]},"890":{"position":[[1803,39]]},"930":{"position":[[131,39]]},"1106":{"position":[[409,39],[1728,39]]},"1110":{"position":[[471,39]]},"1406":{"position":[[2945,39]]},"1408":{"position":[[2270,39]]}}}],["vim.api.nvim_create_autocmd(\"lspattach",{"_index":3063,"t":{"726":{"position":[[5267,40]]}}}],["vim.api.nvim_create_autocmd(\"termclos",{"_index":2167,"t":{"338":{"position":[[3798,40]]}}}],["vim.api.nvim_create_autocmd(\"textyankpost",{"_index":1097,"t":{"82":{"position":[[952,43]]}}}],["vim.api.nvim_create_autocmd(\"us",{"_index":2050,"t":{"312":{"position":[[2127,35],[2953,35]]},"1088":{"position":[[3440,35],[3611,35]]},"1110":{"position":[[797,35]]},"1147":{"position":[[2934,35],[3122,35]]},"1171":{"position":[[439,35]]}}}],["vim.api.nvim_create_autocmd(\"winclos",{"_index":3828,"t":{"1100":{"position":[[1871,40],[4140,40]]}}}],["vim.api.nvim_create_autocmd(opts.ev",{"_index":4527,"t":{"1380":{"position":[[3694,40]]}}}],["vim.api.nvim_create_namespace(\"neotest",{"_index":3701,"t":{"1078":{"position":[[1479,40]]}}}],["vim.api.nvim_create_user_command(\"baleiacolor",{"_index":2700,"t":{"500":{"position":[[223,50]]}}}],["vim.api.nvim_create_user_command(\"baleialog",{"_index":2703,"t":{"500":{"position":[[365,46]]}}}],["vim.api.nvim_del_augroup_by_name(\"lazyvim_wrap_spel",{"_index":1084,"t":{"82":{"position":[[436,54]]}}}],["vim.api.nvim_echo",{"_index":380,"t":{"19":{"position":[[1323,19]]}}}],["vim.api.nvim_exec_autocmds(\"uient",{"_index":3830,"t":{"1100":{"position":[[2025,37],[4294,37]]}}}],["vim.api.nvim_get_current_buf",{"_index":1887,"t":{"282":{"position":[[983,30]]},"502":{"position":[[636,30]]},"1428":{"position":[[690,31]]}}}],["vim.api.nvim_get_current_win",{"_index":2040,"t":{"312":{"position":[[1586,30]]},"388":{"position":[[1584,31],[8261,31]]},"1060":{"position":[[1243,30],[5818,30]]}}}],["vim.api.nvim_input(\"qa",{"_index":1055,"t":{"80":{"position":[[9070,5]]},"312":{"position":[[2615,5],[2818,5]]}}}],["w>c",{"_index":1059,"t":{"80":{"position":[[9229,5]]}}}],["w>h",{"_index":875,"t":{"80":{"position":[[960,5]]}}}],["w>j",{"_index":879,"t":{"80":{"position":[[1034,5]]}}}],["w>k",{"_index":880,"t":{"80":{"position":[[1109,5]]}}}],["w>l",{"_index":883,"t":{"80":{"position":[[1184,5]]}}}],["w>v",{"_index":1057,"t":{"80":{"position":[[9149,5]]},"312":{"position":[[2714,5],[2921,5]]}}}],["w_",{"_index":4444,"t":{"1361":{"position":[[1020,7],[1931,7]]}}}],["wait",{"_index":3855,"t":{"1110":{"position":[[301,4]]},"1147":{"position":[[1410,4]]}}}],["wait(funct",{"_index":2465,"t":{"388":{"position":[[2985,18]]},"394":{"position":[[670,18]]}}}],["walkthrough",{"_index":85,"t":{"8":{"position":[[53,11]]}}}],["want",{"_index":139,"t":{"15":{"position":[[407,4]]},"17":{"position":[[2258,4],[4138,4]]},"19":{"position":[[698,4]]},"23":{"position":[[142,5]]},"29":{"position":[[671,4]]},"31":{"position":[[60,4]]},"85":{"position":[[30,4],[428,4]]},"87":{"position":[[7,4]]},"244":{"position":[[515,4],[1102,4]]},"346":{"position":[[133,4]]},"386":{"position":[[133,4]]},"454":{"position":[[133,4]]},"932":{"position":[[701,4]]},"1211":{"position":[[388,4]]},"1236":{"position":[[262,4],[1218,4],[2082,4],[2210,4]]},"1373":{"position":[[333,4]]},"1422":{"position":[[997,4],[2000,4],[2550,4],[4059,4],[5062,4],[5612,4]]}}}],["warn",{"_index":171,"t":{"15":{"position":[[1017,4]]},"78":{"position":[[1652,8]]},"80":{"position":[[5888,8],[5912,8],[5962,8],[5986,8]]},"111":{"position":[[402,9],[892,9]]},"147":{"position":[[136,7],[1150,7]]},"1234":{"position":[[738,8],[788,9]]},"1242":{"position":[[1120,7],[1138,7]]},"1401":{"position":[[119,8],[796,8]]},"1433":{"position":[[700,4],[3863,4]]}}}],["warningmsg",{"_index":384,"t":{"19":{"position":[[1398,12]]}}}],["watch",{"_index":3756,"t":{"1078":{"position":[[4339,5]]},"1161":{"position":[[36,5],[309,5]]},"1336":{"position":[[421,5]]}}}],["watcher",{"_index":3375,"t":{"916":{"position":[[985,7],[2028,7]]}}}],["way",{"_index":475,"t":{"31":{"position":[[26,4]]},"41":{"position":[[12,3]]},"248":{"position":[[2243,3]]},"708":{"position":[[124,3]]},"1032":{"position":[[124,3]]},"1406":{"position":[[681,3]]}}}],["waybar/config",{"_index":3947,"t":{"1141":{"position":[[322,20],[1002,20]]}}}],["we'r",{"_index":3873,"t":{"1123":{"position":[[500,5],[3287,5]]},"1406":{"position":[[936,5]]}}}],["wealth",{"_index":25,"t":{"4":{"position":[[201,6]]}}}],["web",{"_index":4946,"t":{"1437":{"position":[[514,3],[617,3]]}}}],["webp",{"_index":2211,"t":{"348":{"position":[[1738,8],[5092,8]]}}}],["websearch.mainkt",{"_index":3130,"t":{"762":{"position":[[735,16],[2026,16]]}}}],["websit",{"_index":4273,"t":{"1232":{"position":[[265,7]]}}}],["wednesday",{"_index":1943,"t":{"296":{"position":[[778,12],[4013,12]]}}}],["weekday",{"_index":1940,"t":{"296":{"position":[[711,8],[1785,9],[3946,8],[5020,9]]}}}],["weird",{"_index":1799,"t":{"264":{"position":[[110,5],[1045,5]]}}}],["wezterm",{"_index":75,"t":{"6":{"position":[[446,7]]}}}],["whatev",{"_index":3122,"t":{"762":{"position":[[365,8],[1656,8]]}}}],["whether",{"_index":2015,"t":{"312":{"position":[[111,7],[375,7]]},"388":{"position":[[111,7]]},"1408":{"position":[[72,7],[738,7]]}}}],["which_key",{"_index":4636,"t":{"1401":{"position":[[628,9],[1305,9]]}}}],["which_key_ignor",{"_index":1054,"t":{"80":{"position":[[9011,18]]},"1242":{"position":[[2137,16]]},"1413":{"position":[[614,19],[1268,19]]}}}],["whitespac",{"_index":1823,"t":{"264":{"position":[[868,10],[1803,10]]}}}],["whole",{"_index":470,"t":{"29":{"position":[[911,5]]},"1175":{"position":[[330,5],[1329,5]]}}}],["wide",{"_index":3293,"t":{"884":{"position":[[112,4],[458,4]]}}}],["widget",{"_index":1697,"t":{"234":{"position":[[1778,9]]},"1282":{"position":[[466,7]]}}}],["width",{"_index":855,"t":{"78":{"position":[[4672,5]]},"80":{"position":[[1514,6],[1603,6]]},"115":{"position":[[250,5],[578,5]]},"117":{"position":[[171,5],[366,5]]},"248":{"position":[[1691,6],[1827,5],[1906,5],[1962,5],[4261,6],[4397,5],[4476,5],[4532,5]]},"276":{"position":[[36,5],[188,5]]},"348":{"position":[[2323,5],[2583,5],[2749,5],[5677,5],[5937,5],[6103,5]]},"786":{"position":[[50,5],[240,5]]},"940":{"position":[[165,5],[496,5]]},"1123":{"position":[[878,5],[919,5],[995,5],[3665,5],[3706,5],[3782,5]]},"1242":{"position":[[271,5],[305,5]]}}}],["width_focu",{"_index":2013,"t":{"312":{"position":[[55,11],[319,11]]}}}],["width_preview",{"_index":2014,"t":{"312":{"position":[[73,13],[337,13]]}}}],["williamboman/mason.nvim",{"_index":342,"t":{"17":{"position":[[4169,26]]}}}],["willrenam",{"_index":4755,"t":{"1422":{"position":[[1521,10],[4583,10]]}}}],["win",{"_index":1340,"t":{"149":{"position":[[143,3],[404,3]]},"388":{"position":[[1530,4],[1623,3],[1729,3],[8207,4],[8300,3],[8406,3]]},"456":{"position":[[38,3],[467,3]]},"458":{"position":[[263,3],[635,3]]},"464":{"position":[[38,3],[560,3]]},"474":{"position":[[121,3]]},"1060":{"position":[[1237,3],[5812,3]]},"1123":{"position":[[177,4],[309,4],[1964,4],[2424,4],[2964,4],[3096,4],[4751,4],[5211,4]]},"1199":{"position":[[626,3],[1473,3]]},"1393":{"position":[[80,3],[190,3]]},"1413":{"position":[[115,3],[769,3]]}}}],["win:resize(\"height",{"_index":3876,"t":{"1123":{"position":[[1105,20],[1182,20],[3892,20],[3969,20]]}}}],["win:resize(\"width",{"_index":3875,"t":{"1123":{"position":[[955,19],[1030,19],[3742,19],[3817,19]]}}}],["win_opt",{"_index":1815,"t":{"264":{"position":[[606,8],[1541,8]]},"412":{"position":[[158,8],[203,8],[249,8],[715,8],[760,8],[806,8]]}}}],["winblend",{"_index":265,"t":{"17":{"position":[[1285,8]]},"412":{"position":[[171,8],[216,8],[262,8],[728,8],[773,8],[819,8]]}}}],["wincmd",{"_index":1106,"t":{"82":{"position":[[1296,6]]}}}],["window",{"_index":76,"t":{"6":{"position":[[470,8],[505,8],[553,8]]},"66":{"position":[[207,7],[483,7]]},"78":{"position":[[4007,7],[4087,7],[4665,6]]},"80":{"position":[[904,6],[987,8],[1062,8],[1137,8],[1212,8],[1247,6],[1338,6],[1418,6],[1507,6],[1596,6],[2799,7],[9036,7],[9092,6],[9171,6],[9252,8]]},"82":{"position":[[1119,6]]},"115":{"position":[[239,6],[567,6]]},"200":{"position":[[194,7],[244,7]]},"202":{"position":[[810,6],[1979,6]]},"288":{"position":[[251,8]]},"312":{"position":[[27,7],[291,7]]},"338":{"position":[[295,6],[2665,6]]},"388":{"position":[[1400,6],[1450,6],[1469,6],[8077,6],[8127,6],[8146,6]]},"1106":{"position":[[85,8]]},"1123":{"position":[[30,6],[2837,7]]},"1125":{"position":[[21,6]]},"1127":{"position":[[44,7]]},"1199":{"position":[[438,7],[825,6],[1285,7],[1672,6]]},"1207":{"position":[[1043,8]]},"1213":{"position":[[61,7]]},"1234":{"position":[[142,6]]},"1242":{"position":[[90,6],[117,6],[144,6],[171,6],[196,6],[230,6],[264,6],[298,6],[594,6],[2175,6],[2206,6],[2239,6]]},"1266":{"position":[[34,6]]},"1296":{"position":[[77,7]]},"1340":{"position":[[108,6]]},"1354":{"position":[[356,6]]},"1387":{"position":[[881,10],[1868,10],[2271,7]]},"1406":{"position":[[713,7]]},"1413":{"position":[[185,8],[275,8],[365,8],[455,8],[839,8],[929,8],[1019,8],[1109,8]]},"1415":{"position":[[94,6]]}}}],["windwp/nvim",{"_index":4718,"t":{"1410":{"position":[[78,12]]}}}],["winhl",{"_index":1816,"t":{"264":{"position":[[619,5],[1554,5]]}}}],["winid",{"_index":956,"t":{"80":{"position":[[4590,5],[4600,8],[4851,5],[4861,8]]}}}],["winopt",{"_index":2217,"t":{"348":{"position":[[1959,7],[2119,7],[2571,7],[2737,7],[5313,7],[5473,7],[5925,7],[6091,7]]}}}],["winsiz",{"_index":796,"t":{"78":{"position":[[3412,10]]}}}],["with_expand",{"_index":2130,"t":{"338":{"position":[[793,14],[3163,14]]}}}],["within",{"_index":2088,"t":{"324":{"position":[[84,6]]},"1361":{"position":[[96,6]]}}}],["without",{"_index":3395,"t":{"926":{"position":[[172,7]]},"1066":{"position":[[375,7],[2426,7]]},"1361":{"position":[[1035,7],[1946,7]]}}}],["wk",{"_index":3065,"t":{"726":{"position":[[5445,2]]},"852":{"position":[[457,2],[1566,2]]},"1387":{"position":[[2343,2]]}}}],["wk.add",{"_index":3067,"t":{"726":{"position":[[5471,8],[5962,8],[6899,8]]},"852":{"position":[[483,8],[1592,8]]}}}],["wk.register(opts.default",{"_index":4567,"t":{"1387":{"position":[[2513,26]]}}}],["wk.setup(opt",{"_index":4563,"t":{"1387":{"position":[[2369,14]]}}}],["wofi",{"_index":3944,"t":{"1141":{"position":[[257,4],[937,4]]}}}],["won't",{"_index":561,"t":{"56":{"position":[[210,5]]},"726":{"position":[[7627,5]]}}}],["word",{"_index":1865,"t":{"280":{"position":[[15,5],[48,5],[104,5]]},"296":{"position":[[145,4],[466,4],[517,4],[838,4],[1044,4],[1158,4],[2286,4],[2478,4],[3380,4],[3701,4],[3752,4],[4073,4],[4279,4],[4393,4],[5521,4],[5713,4]]},"348":{"position":[[10299,5],[10389,5]]},"388":{"position":[[6079,5],[6189,5]]},"456":{"position":[[2906,4],[3036,4]]},"1260":{"position":[[1382,4],[1434,4]]},"1312":{"position":[[1180,4],[1232,4]]},"1361":{"position":[[756,4],[1667,4]]},"1363":{"position":[[173,5],[218,5],[267,5],[313,5],[448,5],[493,5],[542,5],[588,5]]},"1441":{"position":[[282,5],[593,5]]}}}],["word_match",{"_index":2481,"t":{"388":{"position":[[6050,10],[6160,10]]}}}],["work",{"_index":89,"t":{"8":{"position":[[100,7]]},"56":{"position":[[216,5]]},"78":{"position":[[2013,5]]},"85":{"position":[[436,4]]},"107":{"position":[[83,5],[225,5]]},"212":{"position":[[177,7]]},"270":{"position":[[308,4],[797,4]]},"296":{"position":[[500,4],[3735,4]]},"334":{"position":[[313,4],[806,4]]},"726":{"position":[[6758,4]]},"1213":{"position":[[1465,7]]},"1232":{"position":[[324,5]]},"1234":{"position":[[974,7]]},"1236":{"position":[[912,4],[1376,4]]},"1406":{"position":[[705,4]]}}}],["workaround",{"_index":2943,"t":{"678":{"position":[[785,10],[1287,10],[2102,10],[2604,10]]}}}],["workingdirectori",{"_index":3549,"t":{"1040":{"position":[[192,18],[770,18]]}}}],["worksheet",{"_index":3327,"t":{"890":{"position":[[1014,11]]},"1328":{"position":[[152,9]]}}}],["workspac",{"_index":2327,"t":{"348":{"position":[[10948,13]]},"388":{"position":[[6823,13]]},"460":{"position":[[789,9],[1895,9]]},"726":{"position":[[562,9],[820,12],[2289,9],[2547,12]]},"768":{"position":[[275,11],[631,11]]},"1060":{"position":[[2196,9],[6771,9]]},"1422":{"position":[[1470,9],[2176,9],[4532,9],[5238,9]]}}}],["workspace/symbol",{"_index":2642,"t":{"460":{"position":[[815,19],[1921,19]]}}}],["workspacefold",{"_index":2798,"t":{"540":{"position":[[515,21],[656,21],[1377,21],[1518,21]]},"568":{"position":[[616,21],[1297,21]]},"762":{"position":[[868,21],[2159,21]]},"1066":{"position":[[1267,21],[1436,24],[1601,21],[1770,24],[3318,21],[3487,24],[3652,21],[3821,24]]}}}],["wouldn't",{"_index":1934,"t":{"296":{"position":[[491,8],[3726,8]]}}}],["wrap",{"_index":770,"t":{"78":{"position":[[2961,4],[4711,4]]},"80":{"position":[[6251,6]]},"82":{"position":[[2720,4]]},"1242":{"position":[[1277,4]]}}}],["wrapper",{"_index":3012,"t":{"726":{"position":[[927,7],[2654,7]]}}}],["write",{"_index":714,"t":{"78":{"position":[[1931,5]]}}}],["x",{"_index":468,"t":{"29":{"position":[[863,4]]},"80":{"position":[[504,3],[603,3],[707,3],[804,3],[3939,4],[5160,3],[7920,3],[8018,3]]},"115":{"position":[[737,3],[862,3],[986,3],[1199,3],[1333,3]]},"145":{"position":[[780,3],[1272,4],[1506,3],[1627,3]]},"173":{"position":[[598,3]]},"196":{"position":[[602,3],[700,3],[775,3],[863,3],[953,3],[1046,3]]},"240":{"position":[[315,4]]},"286":{"position":[[293,4]]},"288":{"position":[[97,4],[158,4],[221,4],[419,4],[431,4],[453,4],[465,4]]},"296":{"position":[[2277,5],[2937,4],[3133,4],[3148,4],[3242,4],[5512,5]]},"320":{"position":[[69,1],[396,1]]},"348":{"position":[[342,3],[3696,3],[10457,4],[10565,4]]},"358":{"position":[[677,3],[722,3],[855,3],[1006,3],[1163,3],[1434,3],[1680,3],[1843,3],[2006,3],[2143,3]]},"388":{"position":[[6257,4],[6365,4]]},"456":{"position":[[2938,3],[3063,3]]},"502":{"position":[[828,3],[1004,3]]},"726":{"position":[[5980,4]]},"852":{"position":[[521,3],[1630,3]]},"1100":{"position":[[1256,3],[3525,3]]},"1242":{"position":[[31,1],[48,1],[58,1],[71,1],[718,2],[747,2],[771,2],[1006,1],[1900,1],[1934,1]]},"1244":{"position":[[234,1],[263,1]]},"1248":{"position":[[57,1]]},"1250":{"position":[[89,1],[105,1],[132,1],[183,1]]},"1252":{"position":[[54,1]]},"1260":{"position":[[1401,1],[1448,1]]},"1272":{"position":[[107,1],[144,1],[189,1],[230,1],[266,1]]},"1274":{"position":[[210,1],[260,1],[295,1],[328,1]]},"1276":{"position":[[96,1]]},"1280":{"position":[[96,1],[563,1],[597,1],[626,1],[656,1],[673,1]]},"1284":{"position":[[80,1]]},"1290":{"position":[[88,2],[126,1],[132,2],[148,1]]},"1296":{"position":[[91,1],[117,1],[144,1]]},"1308":{"position":[[94,1],[124,1],[184,1],[225,1],[257,1],[294,1],[344,1],[377,1]]},"1312":{"position":[[1199,1],[1246,1]]},"1375":{"position":[[1536,3]]},"1383":{"position":[[432,3]]},"1385":{"position":[[308,4],[404,3],[593,3],[868,3]]},"1387":{"position":[[209,3],[1196,3]]},"1389":{"position":[[1095,3],[1170,3],[1767,3],[2834,3],[2909,3],[3506,3]]},"1408":{"position":[[2100,4]]},"1443":{"position":[[1091,4],[2366,4]]}}}],["x%x%x()%f[^%x%w",{"_index":4092,"t":{"1175":{"position":[[536,23],[1535,23]]}}}],["x> + + + + +Search the documentation + + + + +

+

Search the documentation

+ + + + \ No newline at end of file diff --git a/sidebars.js b/sidebars.js deleted file mode 100644 index 9ab54c2459..0000000000 --- a/sidebars.js +++ /dev/null @@ -1,33 +0,0 @@ -/** - * Creating a sidebar enables you to: - - create an ordered group of docs - - render a sidebar for each doc of that group - - provide next/previous navigation - - The sidebars can be generated from the filesystem, or explicitly defined here. - - Create as many sidebars as you want. - */ - -// @ts-check - -/** @type {import('@docusaurus/plugin-content-docs').SidebarsConfig} */ -const sidebars = { - // By default, Docusaurus generates a sidebar from the docs folder structure - tutorialSidebar: [{type: 'autogenerated', dirName: '.'}], - - // But you can create a sidebar manually - /* - tutorialSidebar: [ - 'intro', - 'hello', - { - type: 'category', - label: 'Tutorial', - items: ['tutorial-basics/create-a-document'], - }, - ], - */ -}; - -module.exports = sidebars; diff --git a/sitemap.xml b/sitemap.xml new file mode 100644 index 0000000000..bf3e935289 --- /dev/null +++ b/sitemap.xml @@ -0,0 +1 @@ +https://lazyvim.github.io/searchweekly0.5https://lazyvim.github.io/weekly0.5https://lazyvim.github.io/configurationweekly0.5https://lazyvim.github.io/configuration/examplesweekly0.5https://lazyvim.github.io/configuration/generalweekly0.5https://lazyvim.github.io/configuration/keymapsweekly0.5https://lazyvim.github.io/configuration/lazy.nvimweekly0.5https://lazyvim.github.io/configuration/pluginsweekly0.5https://lazyvim.github.io/configuration/recipesweekly0.5https://lazyvim.github.io/configuration/tipsweekly0.5https://lazyvim.github.io/extrasweekly0.5https://lazyvim.github.io/extras/ai/avanteweekly0.5https://lazyvim.github.io/extras/ai/claudecodeweekly0.5https://lazyvim.github.io/extras/ai/codeiumweekly0.5https://lazyvim.github.io/extras/ai/copilotweekly0.5https://lazyvim.github.io/extras/ai/copilot-chatweekly0.5https://lazyvim.github.io/extras/ai/copilot-nativeweekly0.5https://lazyvim.github.io/extras/ai/sidekickweekly0.5https://lazyvim.github.io/extras/ai/supermavenweekly0.5https://lazyvim.github.io/extras/ai/tabnineweekly0.5https://lazyvim.github.io/extras/coding/blinkweekly0.5https://lazyvim.github.io/extras/coding/luasnipweekly0.5https://lazyvim.github.io/extras/coding/mini-commentweekly0.5https://lazyvim.github.io/extras/coding/mini-snippetsweekly0.5https://lazyvim.github.io/extras/coding/mini-surroundweekly0.5https://lazyvim.github.io/extras/coding/neogenweekly0.5https://lazyvim.github.io/extras/coding/nvim-cmpweekly0.5https://lazyvim.github.io/extras/coding/yankyweekly0.5https://lazyvim.github.io/extras/dap/coreweekly0.5https://lazyvim.github.io/extras/dap/nluaweekly0.5https://lazyvim.github.io/extras/editor/aerialweekly0.5https://lazyvim.github.io/extras/editor/dialweekly0.5https://lazyvim.github.io/extras/editor/fzfweekly0.5https://lazyvim.github.io/extras/editor/harpoon2weekly0.5https://lazyvim.github.io/extras/editor/illuminateweekly0.5https://lazyvim.github.io/extras/editor/inc-renameweekly0.5https://lazyvim.github.io/extras/editor/leapweekly0.5https://lazyvim.github.io/extras/editor/mini-diffweekly0.5https://lazyvim.github.io/extras/editor/mini-filesweekly0.5https://lazyvim.github.io/extras/editor/mini-moveweekly0.5https://lazyvim.github.io/extras/editor/navicweekly0.5https://lazyvim.github.io/extras/editor/neo-treeweekly0.5https://lazyvim.github.io/extras/editor/outlineweekly0.5https://lazyvim.github.io/extras/editor/overseerweekly0.5https://lazyvim.github.io/extras/editor/refactoringweekly0.5https://lazyvim.github.io/extras/editor/snacks_explorerweekly0.5https://lazyvim.github.io/extras/editor/snacks_pickerweekly0.5https://lazyvim.github.io/extras/editor/telescopeweekly0.5https://lazyvim.github.io/extras/formatting/biomeweekly0.5https://lazyvim.github.io/extras/formatting/blackweekly0.5https://lazyvim.github.io/extras/formatting/prettierweekly0.5https://lazyvim.github.io/extras/lang/angularweekly0.5https://lazyvim.github.io/extras/lang/ansibleweekly0.5https://lazyvim.github.io/extras/lang/astroweekly0.5https://lazyvim.github.io/extras/lang/clangdweekly0.5https://lazyvim.github.io/extras/lang/clojureweekly0.5https://lazyvim.github.io/extras/lang/cmakeweekly0.5https://lazyvim.github.io/extras/lang/dartweekly0.5https://lazyvim.github.io/extras/lang/dockerweekly0.5https://lazyvim.github.io/extras/lang/dotnetweekly0.5https://lazyvim.github.io/extras/lang/elixirweekly0.5https://lazyvim.github.io/extras/lang/elmweekly0.5https://lazyvim.github.io/extras/lang/emberweekly0.5https://lazyvim.github.io/extras/lang/erlangweekly0.5https://lazyvim.github.io/extras/lang/gitweekly0.5https://lazyvim.github.io/extras/lang/gleamweekly0.5https://lazyvim.github.io/extras/lang/goweekly0.5https://lazyvim.github.io/extras/lang/haskellweekly0.5https://lazyvim.github.io/extras/lang/helmweekly0.5https://lazyvim.github.io/extras/lang/javaweekly0.5https://lazyvim.github.io/extras/lang/jsonweekly0.5https://lazyvim.github.io/extras/lang/juliaweekly0.5https://lazyvim.github.io/extras/lang/kotlinweekly0.5https://lazyvim.github.io/extras/lang/leanweekly0.5https://lazyvim.github.io/extras/lang/markdownweekly0.5https://lazyvim.github.io/extras/lang/nixweekly0.5https://lazyvim.github.io/extras/lang/nushellweekly0.5https://lazyvim.github.io/extras/lang/ocamlweekly0.5https://lazyvim.github.io/extras/lang/phpweekly0.5https://lazyvim.github.io/extras/lang/prismaweekly0.5https://lazyvim.github.io/extras/lang/pythonweekly0.5https://lazyvim.github.io/extras/lang/rweekly0.5https://lazyvim.github.io/extras/lang/regoweekly0.5https://lazyvim.github.io/extras/lang/rubyweekly0.5https://lazyvim.github.io/extras/lang/rustweekly0.5https://lazyvim.github.io/extras/lang/scalaweekly0.5https://lazyvim.github.io/extras/lang/solidityweekly0.5https://lazyvim.github.io/extras/lang/sqlweekly0.5https://lazyvim.github.io/extras/lang/svelteweekly0.5https://lazyvim.github.io/extras/lang/tailwindweekly0.5https://lazyvim.github.io/extras/lang/terraformweekly0.5https://lazyvim.github.io/extras/lang/texweekly0.5https://lazyvim.github.io/extras/lang/thriftweekly0.5https://lazyvim.github.io/extras/lang/tomlweekly0.5https://lazyvim.github.io/extras/lang/twigweekly0.5https://lazyvim.github.io/extras/lang/typescriptweekly0.5https://lazyvim.github.io/extras/lang/typstweekly0.5https://lazyvim.github.io/extras/lang/vueweekly0.5https://lazyvim.github.io/extras/lang/yamlweekly0.5https://lazyvim.github.io/extras/lang/zigweekly0.5https://lazyvim.github.io/extras/linting/eslintweekly0.5https://lazyvim.github.io/extras/lsp/neoconfweekly0.5https://lazyvim.github.io/extras/lsp/none-lsweekly0.5https://lazyvim.github.io/extras/test/coreweekly0.5https://lazyvim.github.io/extras/ui/alphaweekly0.5https://lazyvim.github.io/extras/ui/dashboard-nvimweekly0.5https://lazyvim.github.io/extras/ui/edgyweekly0.5https://lazyvim.github.io/extras/ui/indent-blanklineweekly0.5https://lazyvim.github.io/extras/ui/mini-animateweekly0.5https://lazyvim.github.io/extras/ui/mini-indentscopeweekly0.5https://lazyvim.github.io/extras/ui/mini-starterweekly0.5https://lazyvim.github.io/extras/ui/smear-cursorweekly0.5https://lazyvim.github.io/extras/ui/treesitter-contextweekly0.5https://lazyvim.github.io/extras/util/chezmoiweekly0.5https://lazyvim.github.io/extras/util/dotweekly0.5https://lazyvim.github.io/extras/util/ghweekly0.5https://lazyvim.github.io/extras/util/gituiweekly0.5https://lazyvim.github.io/extras/util/mini-hipatternsweekly0.5https://lazyvim.github.io/extras/util/octoweekly0.5https://lazyvim.github.io/extras/util/projectweekly0.5https://lazyvim.github.io/extras/util/restweekly0.5https://lazyvim.github.io/extras/util/startuptimeweekly0.5https://lazyvim.github.io/extras/vscodeweekly0.5https://lazyvim.github.io/installationweekly0.5https://lazyvim.github.io/keymapsweekly0.5https://lazyvim.github.io/newsweekly0.5https://lazyvim.github.io/pluginsweekly0.5https://lazyvim.github.io/plugins/codingweekly0.5https://lazyvim.github.io/plugins/colorschemeweekly0.5https://lazyvim.github.io/plugins/editorweekly0.5https://lazyvim.github.io/plugins/formattingweekly0.5https://lazyvim.github.io/plugins/lintingweekly0.5https://lazyvim.github.io/plugins/lspweekly0.5https://lazyvim.github.io/plugins/treesitterweekly0.5https://lazyvim.github.io/plugins/uiweekly0.5https://lazyvim.github.io/plugins/utilweekly0.5 \ No newline at end of file diff --git a/socials.js b/socials.js deleted file mode 100644 index 9b7dd63373..0000000000 --- a/socials.js +++ /dev/null @@ -1,32 +0,0 @@ -const generateA = (url, icon, title) => { - return ``; -}; - -const socials = [ - generateA( - 'https://twitter.com/folke', - "", - "Twitter", - ), - generateA( - 'https://matrix.to/#/#lazyvim:matrix.org', - "", - "Matrix" - ), - generateA( - 'https://github.com/LazyVim/LazyVim', - "", - "Github" - ), - generateA( - 'https://github.com/LazyVim/LazyVim/discussions', - '', - "Github Discussions" - ) -]; - -module.exports = socials.map((value) => ({ - position: 'right', - type: 'html', - value, -})); diff --git a/src/css/custom.css b/src/css/custom.css deleted file mode 100644 index b495257419..0000000000 --- a/src/css/custom.css +++ /dev/null @@ -1,76 +0,0 @@ -/** - * Any CSS included here will be global. The classic template - * bundles Infima by default. Infima is a CSS framework designed to - * work well for content-centric websites. - */ - -/* You can override the default Infima variables here. */ -:root { - --ifm-color-primary: #2e7de9; - --ifm-color-primary-dark: #186ee3; - --ifm-color-primary-darker: #1768d7; - --ifm-color-primary-darkest: #1355b1; - --ifm-color-primary-light: #478dec; - --ifm-color-primary-lighter: #5495ed; - --ifm-color-primary-lightest: #7aacf1; - --ifm-code-font-size: 95%; - --docusaurus-highlighted-code-line-bg: #2f334d -} - -/* For readability concerns, you should choose a lighter palette in dark mode. */ -[data-theme='dark'] { - --ifm-color-primary: #82aaff; - --ifm-color-primary-dark: #5b90ff; - --ifm-color-primary-darker: #4883ff; - --ifm-color-primary-darkest: #0f5bff; - --ifm-color-primary-light: #a8c4ff; - --ifm-color-primary-lighter: #bcd1ff; - --ifm-color-primary-lightest: #f5f9ff; - --ifm-background-color: #222436; - --ifm-background-color: #1e2030; - --ifm-heading-color: #bcd1ff; - --ifm-navbar-search-input-background-color: #2f334d; -} - -.logosvg { - max-width: 570px; -} - -.logosvg path { - fill: var(--ifm-color-primary) -} - -.navbar__logo img { - fill: var(--ifm-color-primary) -} - -.footer--dark { - --ifm-footer-background-color: #2f334d; -} - -html[data-theme='dark'] { - --primary-bg: #222436; - --ifm-background-color: #1e2030; - --ifm-background-surface-color: #222436; -} - -.social { - display: flex; - align-items: center; - gap: 1rem; - padding: 0; -} - -.social path { - fill: var(--ifm-navbar-link-color); -} - -.social:hover path { - fill: var(--ifm-color-primary); -} - -@media screen and (max-width: 996px) { - .social { - display: none; - } -} diff --git a/src/themes/tokyonight_day.js b/src/themes/tokyonight_day.js deleted file mode 100644 index 9f5bb21f7d..0000000000 --- a/src/themes/tokyonight_day.js +++ /dev/null @@ -1,75 +0,0 @@ -module.exports = { - plain: { - color: "#3760bf", - backgroundColor: "#e1e2e7", - }, - styles: [ - { - types: ["prolog", "builtin"], - style: { - color: "#f52a65", - }, - }, - { - types: ["function"], - style: { - color: "#2e7de9", - }, - }, - { - types: ["symbol"], - style: { - color: "#188092", - }, - }, - { - types: ["punctuation"], - style: { - color: "#9854f1", - }, - }, - { - types: ["string", "char", "tag", "selector"], - style: { - color: "#587539", - }, - }, - { - types: ["keyword"], - style: { - color: "#7847bd", - }, - }, - { - types: ["operator"], - style: { - color: "#006a83", - }, - }, - { - types: ["constant", "boolean"], - style: { - color: "#b15c00", - }, - }, - { - types: ["variable"], - style: { - color: "#3760bf", - }, - }, - { - types: ["comment"], - style: { - color: "#848cb5", - fontStyle: "italic", - }, - }, - { - types: ["attr-name"], - style: { - color: "rgb(241, 250, 140)", - }, - }, - ], -}; diff --git a/src/themes/tokyonight_moon.js b/src/themes/tokyonight_moon.js deleted file mode 100644 index ad6e0fe1aa..0000000000 --- a/src/themes/tokyonight_moon.js +++ /dev/null @@ -1,75 +0,0 @@ -module.exports = { - plain: { - color: "#c8d3f5", - backgroundColor: "#222436", - }, - styles: [ - { - types: ["prolog", "builtin"], - style: { - color: "#ff757f", - }, - }, - { - types: ["function"], - style: { - color: "#82aaff", - }, - }, - { - types: ["symbol"], - style: { - color: "#65bcff", - }, - }, - { - types: ["punctuation"], - style: { - color: "#c099ff", - }, - }, - { - types: ["string", "char", "tag", "selector"], - style: { - color: "#c3e88d", - }, - }, - { - types: ["keyword"], - style: { - color: "#fca7ea", - }, - }, - { - types: ["operator"], - style: { - color: "#89ddff", - }, - }, - { - types: ["constant", "boolean"], - style: { - color: "#ff966c", - }, - }, - { - types: ["variable"], - style: { - color: "#c8d3f5", - }, - }, - { - types: ["comment"], - style: { - color: "#636da6", - fontStyle: "italic", - }, - }, - { - types: ["attr-name"], - style: { - color: "rgb(241, 250, 140)", - }, - }, - ], -}; diff --git a/src/themes/tokyonight_night.js b/src/themes/tokyonight_night.js deleted file mode 100644 index f669b02b97..0000000000 --- a/src/themes/tokyonight_night.js +++ /dev/null @@ -1,75 +0,0 @@ -module.exports = { - plain: { - color: "#c0caf5", - backgroundColor: "#1a1b26", - }, - styles: [ - { - types: ["prolog", "builtin"], - style: { - color: "#f7768e", - }, - }, - { - types: ["function"], - style: { - color: "#7aa2f7", - }, - }, - { - types: ["symbol"], - style: { - color: "#2ac3de", - }, - }, - { - types: ["punctuation"], - style: { - color: "#bb9af7", - }, - }, - { - types: ["string", "char", "tag", "selector"], - style: { - color: "#9ece6a", - }, - }, - { - types: ["keyword"], - style: { - color: "#9d7cd8", - }, - }, - { - types: ["operator"], - style: { - color: "#89ddff", - }, - }, - { - types: ["constant", "boolean"], - style: { - color: "#ff9e64", - }, - }, - { - types: ["variable"], - style: { - color: "#c0caf5", - }, - }, - { - types: ["comment"], - style: { - color: "#565f89", - fontStyle: "italic", - }, - }, - { - types: ["attr-name"], - style: { - color: "rgb(241, 250, 140)", - }, - }, - ], -}; diff --git a/src/themes/tokyonight_storm.js b/src/themes/tokyonight_storm.js deleted file mode 100644 index e16ac5136b..0000000000 --- a/src/themes/tokyonight_storm.js +++ /dev/null @@ -1,75 +0,0 @@ -module.exports = { - plain: { - color: "#c0caf5", - backgroundColor: "#24283b", - }, - styles: [ - { - types: ["prolog", "builtin"], - style: { - color: "#f7768e", - }, - }, - { - types: ["function"], - style: { - color: "#7aa2f7", - }, - }, - { - types: ["symbol"], - style: { - color: "#2ac3de", - }, - }, - { - types: ["punctuation"], - style: { - color: "#bb9af7", - }, - }, - { - types: ["string", "char", "tag", "selector"], - style: { - color: "#9ece6a", - }, - }, - { - types: ["keyword"], - style: { - color: "#9d7cd8", - }, - }, - { - types: ["operator"], - style: { - color: "#89ddff", - }, - }, - { - types: ["constant", "boolean"], - style: { - color: "#ff9e64", - }, - }, - { - types: ["variable"], - style: { - color: "#c0caf5", - }, - }, - { - types: ["comment"], - style: { - color: "#565f89", - fontStyle: "italic", - }, - }, - { - types: ["attr-name"], - style: { - color: "rgb(241, 250, 140)", - }, - }, - ], -}; diff --git a/stylua.toml b/stylua.toml deleted file mode 100644 index 5d6c50dce9..0000000000 --- a/stylua.toml +++ /dev/null @@ -1,3 +0,0 @@ -indent_type = "Spaces" -indent_width = 2 -column_width = 120 \ No newline at end of file diff --git a/tsconfig.json b/tsconfig.json deleted file mode 100644 index 6f4756980d..0000000000 --- a/tsconfig.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - // This file is not used in compilation. It is here just for a nice editor experience. - "extends": "@tsconfig/docusaurus/tsconfig.json", - "compilerOptions": { - "baseUrl": "." - } -} diff --git a/yarn.lock b/yarn.lock deleted file mode 100644 index 6381be167f..0000000000 --- a/yarn.lock +++ /dev/null @@ -1,11589 +0,0 @@ -# This file is generated by running "yarn install" inside your project. -# Manual changes might be lost - proceed with caution! - -__metadata: - version: 6 - cacheKey: 8 - -"@algolia/autocomplete-core@npm:1.7.4": - version: 1.7.4 - resolution: "@algolia/autocomplete-core@npm:1.7.4" - dependencies: - "@algolia/autocomplete-shared": 1.7.4 - checksum: cd7c0badec2dd7f32eb1c567e740473df41d0b5cfdc009efc2b44d2c72e30d90a05882ca0616d6dc29326177d5183a7fd9c6189e5eab3abe26936e232ac5f43a - languageName: node - linkType: hard - -"@algolia/autocomplete-preset-algolia@npm:1.7.4": - version: 1.7.4 - resolution: "@algolia/autocomplete-preset-algolia@npm:1.7.4" - dependencies: - "@algolia/autocomplete-shared": 1.7.4 - peerDependencies: - "@algolia/client-search": ">= 4.9.1 < 6" - algoliasearch: ">= 4.9.1 < 6" - checksum: 4ea134757d611d1b7489f34b4366d103fb981dde3f75f39762fb71142f23bd024825f7541ab756ead9c87e223184616fd74b7762982054c96927fecd5a6e6e3e - languageName: node - linkType: hard - -"@algolia/autocomplete-shared@npm:1.7.4": - version: 1.7.4 - resolution: "@algolia/autocomplete-shared@npm:1.7.4" - checksum: d304b1e3523ccf36a4a21ef9c116c83360fc1bffc595e888f05c35ab00de293104184dafebd9b9ed8ac5ffa5c416ddd4b1139e9794a253f52863c1ae544c2c9c - languageName: node - linkType: hard - -"@algolia/cache-browser-local-storage@npm:4.14.3": - version: 4.14.3 - resolution: "@algolia/cache-browser-local-storage@npm:4.14.3" - dependencies: - "@algolia/cache-common": 4.14.3 - checksum: f1aae09f67311691e767a5cb7480a4ab8b45450ee9667543687b4faac4d1c099a794ec090f48a0633f352d054354b0e1066b7e6cfa0d75e5bb9dd22712333068 - languageName: node - linkType: hard - -"@algolia/cache-common@npm:4.14.3": - version: 4.14.3 - resolution: "@algolia/cache-common@npm:4.14.3" - checksum: 56af1684870b072bb5e8acd6539c1cca69e826f790064df373bc8b86b9bc6a80c9b53fce8aa1c74f2d2bcd917196e712d5aef39fc566cebbea499e2acacea0fe - languageName: node - linkType: hard - -"@algolia/cache-in-memory@npm:4.14.3": - version: 4.14.3 - resolution: "@algolia/cache-in-memory@npm:4.14.3" - dependencies: - "@algolia/cache-common": 4.14.3 - checksum: 5027b27265e3ac04e318572c2a08df356b2509686ecc1540824b65ffd08047d437b3f8497e7a85951ae73e4a88afc0c68c8acc5ba5da9aab300a598219b0c0fd - languageName: node - linkType: hard - -"@algolia/client-account@npm:4.14.3": - version: 4.14.3 - resolution: "@algolia/client-account@npm:4.14.3" - dependencies: - "@algolia/client-common": 4.14.3 - "@algolia/client-search": 4.14.3 - "@algolia/transporter": 4.14.3 - checksum: f3fcf8207a7f0c714ef7c7f35f7b7b00bddbbdeee45483fafa564144a22d5bc991bbe5fda2b38bc3e5926ec338ed9c6c6cb1a178fc8d219de10aa246ab67d3bf - languageName: node - linkType: hard - -"@algolia/client-analytics@npm:4.14.3": - version: 4.14.3 - resolution: "@algolia/client-analytics@npm:4.14.3" - dependencies: - "@algolia/client-common": 4.14.3 - "@algolia/client-search": 4.14.3 - "@algolia/requester-common": 4.14.3 - "@algolia/transporter": 4.14.3 - checksum: 287a66e4f63e09000c9a3f489ced99bfe0f8c05d6cbf358fe41517046cf2a6cb59bb133ca5f48019211d666d71f2d9c901d37cb1e789b2ea3e171f89545876ab - languageName: node - linkType: hard - -"@algolia/client-common@npm:4.14.3": - version: 4.14.3 - resolution: "@algolia/client-common@npm:4.14.3" - dependencies: - "@algolia/requester-common": 4.14.3 - "@algolia/transporter": 4.14.3 - checksum: 44799afbbb7955e0577cf199799e44aea6890136d277d56af5ea8628cdabb1cd67d3289eca035a6792a771c0a886164108351be438158d6d23a6c762cfe6abf0 - languageName: node - linkType: hard - -"@algolia/client-personalization@npm:4.14.3": - version: 4.14.3 - resolution: "@algolia/client-personalization@npm:4.14.3" - dependencies: - "@algolia/client-common": 4.14.3 - "@algolia/requester-common": 4.14.3 - "@algolia/transporter": 4.14.3 - checksum: 2756087817c9bceed6c4cf9a2bf74c6df3792c3157775a7ca4a12205e3195f3df3774a064a83f0bb04ee88aaace7a7aa2ee576b2ed036b868b876328b3592fce - languageName: node - linkType: hard - -"@algolia/client-search@npm:4.14.3": - version: 4.14.3 - resolution: "@algolia/client-search@npm:4.14.3" - dependencies: - "@algolia/client-common": 4.14.3 - "@algolia/requester-common": 4.14.3 - "@algolia/transporter": 4.14.3 - checksum: fb32e68d9bc815afab7199ae59d71d51f785f98fc3eb1d2bdb3065bc11424d797d1b1a2755397785bc715c2085dc1ddcf2b46d677b95dd95a825f597ba04505b - languageName: node - linkType: hard - -"@algolia/events@npm:^4.0.1": - version: 4.0.1 - resolution: "@algolia/events@npm:4.0.1" - checksum: 4f63943f4554cfcfed91d8b8c009a49dca192b81056d8c75e532796f64828cd69899852013e81ff3fff07030df8782b9b95c19a3da0845786bdfe22af42442c2 - languageName: node - linkType: hard - -"@algolia/logger-common@npm:4.14.3": - version: 4.14.3 - resolution: "@algolia/logger-common@npm:4.14.3" - checksum: c42bb686637ca32ab6636055b0d0ef368bc9e3e2ea71e3e3becece68a88896b34cfa6d657ccdf1b6a01fcabc075f78d10fb813f399e88323a9b17ea80dba33f5 - languageName: node - linkType: hard - -"@algolia/logger-console@npm:4.14.3": - version: 4.14.3 - resolution: "@algolia/logger-console@npm:4.14.3" - dependencies: - "@algolia/logger-common": 4.14.3 - checksum: b703c7ba2e5f7d4dca4aa5de914f51650f2d614646037f99fd3fd343142d629b71c865b19d918ec67727c421ba5fc9aca848f11a7d82745b3a0dfdf36ef0fb26 - languageName: node - linkType: hard - -"@algolia/requester-browser-xhr@npm:4.14.3": - version: 4.14.3 - resolution: "@algolia/requester-browser-xhr@npm:4.14.3" - dependencies: - "@algolia/requester-common": 4.14.3 - checksum: c6b8860c5ad4c6d394491c080add2a50a7fe0d92dce0b14152dd55c7d210d3f8cec25def1515d532c16ef400e2d21d59e76ea301a4a6fec71db96b7b05853a0c - languageName: node - linkType: hard - -"@algolia/requester-common@npm:4.14.3": - version: 4.14.3 - resolution: "@algolia/requester-common@npm:4.14.3" - checksum: 1bc8400b18613c9d65b5ee07dd23e9e324669338d849fae987ed0b518567fb00a61a2ef00279fe65148c8f51603f2df6e4137c6693d2aca30bf453b8b759aa44 - languageName: node - linkType: hard - -"@algolia/requester-node-http@npm:4.14.3": - version: 4.14.3 - resolution: "@algolia/requester-node-http@npm:4.14.3" - dependencies: - "@algolia/requester-common": 4.14.3 - checksum: 3f510375fdf1ada7175e46cea021a44ab35e9e0a56a04a99c18541c11b63aae4604dda0de28caebfc0394d9cf564e5a8ff1040e834816d305c59b1eab3b303b3 - languageName: node - linkType: hard - -"@algolia/transporter@npm:4.14.3": - version: 4.14.3 - resolution: "@algolia/transporter@npm:4.14.3" - dependencies: - "@algolia/cache-common": 4.14.3 - "@algolia/logger-common": 4.14.3 - "@algolia/requester-common": 4.14.3 - checksum: ad959c648d987726cc1e138cf68fd11673dbf12498ee3e3ccd573c5a2d63f9e20b0f58ab130c2b9807f7c2ff029c8e040923366d75c1e7ad62b02f40fb822ee2 - languageName: node - linkType: hard - -"@ampproject/remapping@npm:^2.1.0": - version: 2.2.0 - resolution: "@ampproject/remapping@npm:2.2.0" - dependencies: - "@jridgewell/gen-mapping": ^0.1.0 - "@jridgewell/trace-mapping": ^0.3.9 - checksum: d74d170d06468913921d72430259424b7e4c826b5a7d39ff839a29d547efb97dc577caa8ba3fb5cf023624e9af9d09651afc3d4112a45e2050328abc9b3a2292 - languageName: node - linkType: hard - -"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.10.4, @babel/code-frame@npm:^7.16.0, @babel/code-frame@npm:^7.18.6, @babel/code-frame@npm:^7.8.3": - version: 7.18.6 - resolution: "@babel/code-frame@npm:7.18.6" - dependencies: - "@babel/highlight": ^7.18.6 - checksum: 195e2be3172d7684bf95cff69ae3b7a15a9841ea9d27d3c843662d50cdd7d6470fd9c8e64be84d031117e4a4083486effba39f9aef6bbb2c89f7f21bcfba33ba - languageName: node - linkType: hard - -"@babel/compat-data@npm:^7.17.7, @babel/compat-data@npm:^7.20.1, @babel/compat-data@npm:^7.20.5": - version: 7.20.10 - resolution: "@babel/compat-data@npm:7.20.10" - checksum: 6ed6c1bb6fc03c225d63b8611788cd976107d1692402b560ebffbf1fa53e63705f8625bb12e12d17ce7f7af34e61e1ca96c77858aac6f57010045271466200c0 - languageName: node - linkType: hard - -"@babel/core@npm:7.12.9": - version: 7.12.9 - resolution: "@babel/core@npm:7.12.9" - dependencies: - "@babel/code-frame": ^7.10.4 - "@babel/generator": ^7.12.5 - "@babel/helper-module-transforms": ^7.12.1 - "@babel/helpers": ^7.12.5 - "@babel/parser": ^7.12.7 - "@babel/template": ^7.12.7 - "@babel/traverse": ^7.12.9 - "@babel/types": ^7.12.7 - convert-source-map: ^1.7.0 - debug: ^4.1.0 - gensync: ^1.0.0-beta.1 - json5: ^2.1.2 - lodash: ^4.17.19 - resolve: ^1.3.2 - semver: ^5.4.1 - source-map: ^0.5.0 - checksum: 4d34eca4688214a4eb6bd5dde906b69a7824f17b931f52cd03628a8ac94d8fbe15565aebffdde106e974c8738cd64ac62c6a6060baa7139a06db1f18c4ff872d - languageName: node - linkType: hard - -"@babel/core@npm:^7.18.6, @babel/core@npm:^7.19.6": - version: 7.20.12 - resolution: "@babel/core@npm:7.20.12" - dependencies: - "@ampproject/remapping": ^2.1.0 - "@babel/code-frame": ^7.18.6 - "@babel/generator": ^7.20.7 - "@babel/helper-compilation-targets": ^7.20.7 - "@babel/helper-module-transforms": ^7.20.11 - "@babel/helpers": ^7.20.7 - "@babel/parser": ^7.20.7 - "@babel/template": ^7.20.7 - "@babel/traverse": ^7.20.12 - "@babel/types": ^7.20.7 - convert-source-map: ^1.7.0 - debug: ^4.1.0 - gensync: ^1.0.0-beta.2 - json5: ^2.2.2 - semver: ^6.3.0 - checksum: 62e6c3e2149a70b5c9729ef5f0d3e2e97e9dcde89fc039c8d8e3463d5d7ba9b29ee84d10faf79b61532ac1645aa62f2bd42338320617e6e3a8a4d8e2a27076e7 - languageName: node - linkType: hard - -"@babel/generator@npm:^7.12.5, @babel/generator@npm:^7.18.7, @babel/generator@npm:^7.20.7": - version: 7.20.7 - resolution: "@babel/generator@npm:7.20.7" - dependencies: - "@babel/types": ^7.20.7 - "@jridgewell/gen-mapping": ^0.3.2 - jsesc: ^2.5.1 - checksum: 84b6983ffdb50c80c1c2e3f3c32617a7133d8effd1065f3e0f9bba188a7d54ab42a4dd5e42b61b843c65f9dd1aa870036ff0f848ebd42707aaa8a2b6d31d04f5 - languageName: node - linkType: hard - -"@babel/helper-annotate-as-pure@npm:^7.18.6": - version: 7.18.6 - resolution: "@babel/helper-annotate-as-pure@npm:7.18.6" - dependencies: - "@babel/types": ^7.18.6 - checksum: 88ccd15ced475ef2243fdd3b2916a29ea54c5db3cd0cfabf9d1d29ff6e63b7f7cd1c27264137d7a40ac2e978b9b9a542c332e78f40eb72abe737a7400788fc1b - languageName: node - linkType: hard - -"@babel/helper-builder-binary-assignment-operator-visitor@npm:^7.18.6": - version: 7.18.9 - resolution: "@babel/helper-builder-binary-assignment-operator-visitor@npm:7.18.9" - dependencies: - "@babel/helper-explode-assignable-expression": ^7.18.6 - "@babel/types": ^7.18.9 - checksum: b4bc214cb56329daff6cc18a7f7a26aeafb55a1242e5362f3d47fe3808421f8c7cd91fff95d6b9b7ccb67e14e5a67d944e49dbe026942bfcbfda19b1c72a8e72 - languageName: node - linkType: hard - -"@babel/helper-compilation-targets@npm:^7.17.7, @babel/helper-compilation-targets@npm:^7.18.9, @babel/helper-compilation-targets@npm:^7.20.0, @babel/helper-compilation-targets@npm:^7.20.7": - version: 7.20.7 - resolution: "@babel/helper-compilation-targets@npm:7.20.7" - dependencies: - "@babel/compat-data": ^7.20.5 - "@babel/helper-validator-option": ^7.18.6 - browserslist: ^4.21.3 - lru-cache: ^5.1.1 - semver: ^6.3.0 - peerDependencies: - "@babel/core": ^7.0.0 - checksum: 8c32c873ba86e2e1805b30e0807abd07188acbe00ebb97576f0b09061cc65007f1312b589eccb4349c5a8c7f8bb9f2ab199d41da7030bf103d9f347dcd3a3cf4 - languageName: node - linkType: hard - -"@babel/helper-create-class-features-plugin@npm:^7.18.6, @babel/helper-create-class-features-plugin@npm:^7.20.5, @babel/helper-create-class-features-plugin@npm:^7.20.7": - version: 7.20.12 - resolution: "@babel/helper-create-class-features-plugin@npm:7.20.12" - dependencies: - "@babel/helper-annotate-as-pure": ^7.18.6 - "@babel/helper-environment-visitor": ^7.18.9 - "@babel/helper-function-name": ^7.19.0 - "@babel/helper-member-expression-to-functions": ^7.20.7 - "@babel/helper-optimise-call-expression": ^7.18.6 - "@babel/helper-replace-supers": ^7.20.7 - "@babel/helper-skip-transparent-expression-wrappers": ^7.20.0 - "@babel/helper-split-export-declaration": ^7.18.6 - peerDependencies: - "@babel/core": ^7.0.0 - checksum: 1e9ed4243b75278fa24deb40dc62bf537b79307987223a2d2d2ae5abf7ba6dc8435d6e3bb55d52ceb30d3e1eba88e7eb6a1885a8bb519e5cfc3e9dedb97d43e6 - languageName: node - linkType: hard - -"@babel/helper-create-regexp-features-plugin@npm:^7.18.6, @babel/helper-create-regexp-features-plugin@npm:^7.20.5": - version: 7.20.5 - resolution: "@babel/helper-create-regexp-features-plugin@npm:7.20.5" - dependencies: - "@babel/helper-annotate-as-pure": ^7.18.6 - regexpu-core: ^5.2.1 - peerDependencies: - "@babel/core": ^7.0.0 - checksum: 7f29c3cb7447cca047b0d394f8ab98e4923d00e86a7afa56e5df9770c48ec107891505d2d1f06b720ecc94ed24bf58d90986cc35fe4a43b549eb7b7a5077b693 - languageName: node - linkType: hard - -"@babel/helper-define-polyfill-provider@npm:^0.3.3": - version: 0.3.3 - resolution: "@babel/helper-define-polyfill-provider@npm:0.3.3" - dependencies: - "@babel/helper-compilation-targets": ^7.17.7 - "@babel/helper-plugin-utils": ^7.16.7 - debug: ^4.1.1 - lodash.debounce: ^4.0.8 - resolve: ^1.14.2 - semver: ^6.1.2 - peerDependencies: - "@babel/core": ^7.4.0-0 - checksum: 8e3fe75513302e34f6d92bd67b53890e8545e6c5bca8fe757b9979f09d68d7e259f6daea90dc9e01e332c4f8781bda31c5fe551c82a277f9bc0bec007aed497c - languageName: node - linkType: hard - -"@babel/helper-environment-visitor@npm:^7.18.9": - version: 7.18.9 - resolution: "@babel/helper-environment-visitor@npm:7.18.9" - checksum: b25101f6162ddca2d12da73942c08ad203d7668e06663df685634a8fde54a98bc015f6f62938e8554457a592a024108d45b8f3e651fd6dcdb877275b73cc4420 - languageName: node - linkType: hard - -"@babel/helper-explode-assignable-expression@npm:^7.18.6": - version: 7.18.6 - resolution: "@babel/helper-explode-assignable-expression@npm:7.18.6" - dependencies: - "@babel/types": ^7.18.6 - checksum: 225cfcc3376a8799023d15dc95000609e9d4e7547b29528c7f7111a0e05493ffb12c15d70d379a0bb32d42752f340233c4115bded6d299bc0c3ab7a12be3d30f - languageName: node - linkType: hard - -"@babel/helper-function-name@npm:^7.18.9, @babel/helper-function-name@npm:^7.19.0": - version: 7.19.0 - resolution: "@babel/helper-function-name@npm:7.19.0" - dependencies: - "@babel/template": ^7.18.10 - "@babel/types": ^7.19.0 - checksum: eac1f5db428ba546270c2b8d750c24eb528b8fcfe50c81de2e0bdebf0e20f24bec688d4331533b782e4a907fad435244621ca2193cfcf80a86731299840e0f6e - languageName: node - linkType: hard - -"@babel/helper-hoist-variables@npm:^7.18.6": - version: 7.18.6 - resolution: "@babel/helper-hoist-variables@npm:7.18.6" - dependencies: - "@babel/types": ^7.18.6 - checksum: fd9c35bb435fda802bf9ff7b6f2df06308a21277c6dec2120a35b09f9de68f68a33972e2c15505c1a1a04b36ec64c9ace97d4a9e26d6097b76b4396b7c5fa20f - languageName: node - linkType: hard - -"@babel/helper-member-expression-to-functions@npm:^7.20.7": - version: 7.20.7 - resolution: "@babel/helper-member-expression-to-functions@npm:7.20.7" - dependencies: - "@babel/types": ^7.20.7 - checksum: cec17aab7e964830b0146e575bd141127032319f26ed864a65b35abd75ad618d264d3e11449b9b4e29cfd95bb1a7e774afddd4884fdcc29c36ac9cbd2b66359f - languageName: node - linkType: hard - -"@babel/helper-module-imports@npm:^7.18.6": - version: 7.18.6 - resolution: "@babel/helper-module-imports@npm:7.18.6" - dependencies: - "@babel/types": ^7.18.6 - checksum: f393f8a3b3304b1b7a288a38c10989de754f01d29caf62ce7c4e5835daf0a27b81f3ac687d9d2780d39685aae7b55267324b512150e7b2be967b0c493b6a1def - languageName: node - linkType: hard - -"@babel/helper-module-transforms@npm:^7.12.1, @babel/helper-module-transforms@npm:^7.18.6, @babel/helper-module-transforms@npm:^7.20.11": - version: 7.20.11 - resolution: "@babel/helper-module-transforms@npm:7.20.11" - dependencies: - "@babel/helper-environment-visitor": ^7.18.9 - "@babel/helper-module-imports": ^7.18.6 - "@babel/helper-simple-access": ^7.20.2 - "@babel/helper-split-export-declaration": ^7.18.6 - "@babel/helper-validator-identifier": ^7.19.1 - "@babel/template": ^7.20.7 - "@babel/traverse": ^7.20.10 - "@babel/types": ^7.20.7 - checksum: 29319ebafa693d48756c6ba0d871677bb0037e0da084fbe221a17c38d57093fc8aa38543c07d76e788266a937976e37ab4901971ca7f237c5ab45f524b9ecca0 - languageName: node - linkType: hard - -"@babel/helper-optimise-call-expression@npm:^7.18.6": - version: 7.18.6 - resolution: "@babel/helper-optimise-call-expression@npm:7.18.6" - dependencies: - "@babel/types": ^7.18.6 - checksum: e518fe8418571405e21644cfb39cf694f30b6c47b10b006609a92469ae8b8775cbff56f0b19732343e2ea910641091c5a2dc73b56ceba04e116a33b0f8bd2fbd - languageName: node - linkType: hard - -"@babel/helper-plugin-utils@npm:7.10.4": - version: 7.10.4 - resolution: "@babel/helper-plugin-utils@npm:7.10.4" - checksum: 639ed8fc462b97a83226cee6bb081b1d77e7f73e8b033d2592ed107ee41d96601e321e5ea53a33e47469c7f1146b250a3dcda5ab873c7de162ab62120c341a41 - languageName: node - linkType: hard - -"@babel/helper-plugin-utils@npm:^7.0.0, @babel/helper-plugin-utils@npm:^7.10.4, @babel/helper-plugin-utils@npm:^7.12.13, @babel/helper-plugin-utils@npm:^7.14.5, @babel/helper-plugin-utils@npm:^7.16.7, @babel/helper-plugin-utils@npm:^7.18.6, @babel/helper-plugin-utils@npm:^7.18.9, @babel/helper-plugin-utils@npm:^7.19.0, @babel/helper-plugin-utils@npm:^7.20.2, @babel/helper-plugin-utils@npm:^7.8.0, @babel/helper-plugin-utils@npm:^7.8.3": - version: 7.20.2 - resolution: "@babel/helper-plugin-utils@npm:7.20.2" - checksum: f6cae53b7fdb1bf3abd50fa61b10b4470985b400cc794d92635da1e7077bb19729f626adc0741b69403d9b6e411cddddb9c0157a709cc7c4eeb41e663be5d74b - languageName: node - linkType: hard - -"@babel/helper-remap-async-to-generator@npm:^7.18.9": - version: 7.18.9 - resolution: "@babel/helper-remap-async-to-generator@npm:7.18.9" - dependencies: - "@babel/helper-annotate-as-pure": ^7.18.6 - "@babel/helper-environment-visitor": ^7.18.9 - "@babel/helper-wrap-function": ^7.18.9 - "@babel/types": ^7.18.9 - peerDependencies: - "@babel/core": ^7.0.0 - checksum: 4be6076192308671b046245899b703ba090dbe7ad03e0bea897bb2944ae5b88e5e85853c9d1f83f643474b54c578d8ac0800b80341a86e8538264a725fbbefec - languageName: node - linkType: hard - -"@babel/helper-replace-supers@npm:^7.18.6, @babel/helper-replace-supers@npm:^7.20.7": - version: 7.20.7 - resolution: "@babel/helper-replace-supers@npm:7.20.7" - dependencies: - "@babel/helper-environment-visitor": ^7.18.9 - "@babel/helper-member-expression-to-functions": ^7.20.7 - "@babel/helper-optimise-call-expression": ^7.18.6 - "@babel/template": ^7.20.7 - "@babel/traverse": ^7.20.7 - "@babel/types": ^7.20.7 - checksum: b8e0087c9b0c1446e3c6f3f72b73b7e03559c6b570e2cfbe62c738676d9ebd8c369a708cf1a564ef88113b4330750a50232ee1131d303d478b7a5e65e46fbc7c - languageName: node - linkType: hard - -"@babel/helper-simple-access@npm:^7.20.2": - version: 7.20.2 - resolution: "@babel/helper-simple-access@npm:7.20.2" - dependencies: - "@babel/types": ^7.20.2 - checksum: ad1e96ee2e5f654ffee2369a586e5e8d2722bf2d8b028a121b4c33ebae47253f64d420157b9f0a8927aea3a9e0f18c0103e74fdd531815cf3650a0a4adca11a1 - languageName: node - linkType: hard - -"@babel/helper-skip-transparent-expression-wrappers@npm:^7.20.0": - version: 7.20.0 - resolution: "@babel/helper-skip-transparent-expression-wrappers@npm:7.20.0" - dependencies: - "@babel/types": ^7.20.0 - checksum: 34da8c832d1c8a546e45d5c1d59755459ffe43629436707079989599b91e8c19e50e73af7a4bd09c95402d389266731b0d9c5f69e372d8ebd3a709c05c80d7dd - languageName: node - linkType: hard - -"@babel/helper-split-export-declaration@npm:^7.18.6": - version: 7.18.6 - resolution: "@babel/helper-split-export-declaration@npm:7.18.6" - dependencies: - "@babel/types": ^7.18.6 - checksum: c6d3dede53878f6be1d869e03e9ffbbb36f4897c7cc1527dc96c56d127d834ffe4520a6f7e467f5b6f3c2843ea0e81a7819d66ae02f707f6ac057f3d57943a2b - languageName: node - linkType: hard - -"@babel/helper-string-parser@npm:^7.19.4": - version: 7.19.4 - resolution: "@babel/helper-string-parser@npm:7.19.4" - checksum: b2f8a3920b30dfac81ec282ac4ad9598ea170648f8254b10f475abe6d944808fb006aab325d3eb5a8ad3bea8dfa888cfa6ef471050dae5748497c110ec060943 - languageName: node - linkType: hard - -"@babel/helper-validator-identifier@npm:^7.18.6, @babel/helper-validator-identifier@npm:^7.19.1": - version: 7.19.1 - resolution: "@babel/helper-validator-identifier@npm:7.19.1" - checksum: 0eca5e86a729162af569b46c6c41a63e18b43dbe09fda1d2a3c8924f7d617116af39cac5e4cd5d431bb760b4dca3c0970e0c444789b1db42bcf1fa41fbad0a3a - languageName: node - linkType: hard - -"@babel/helper-validator-option@npm:^7.18.6": - version: 7.18.6 - resolution: "@babel/helper-validator-option@npm:7.18.6" - checksum: f9cc6eb7cc5d759c5abf006402180f8d5e4251e9198197428a97e05d65eb2f8ae5a0ce73b1dfd2d35af41d0eb780627a64edf98a4e71f064eeeacef8de58f2cf - languageName: node - linkType: hard - -"@babel/helper-wrap-function@npm:^7.18.9": - version: 7.20.5 - resolution: "@babel/helper-wrap-function@npm:7.20.5" - dependencies: - "@babel/helper-function-name": ^7.19.0 - "@babel/template": ^7.18.10 - "@babel/traverse": ^7.20.5 - "@babel/types": ^7.20.5 - checksum: 11a6fc28334368a193a9cb3ad16f29cd7603bab958433efc82ebe59fa6556c227faa24f07ce43983f7a85df826f71d441638442c4315e90a554fe0a70ca5005b - languageName: node - linkType: hard - -"@babel/helpers@npm:^7.12.5, @babel/helpers@npm:^7.20.7": - version: 7.20.7 - resolution: "@babel/helpers@npm:7.20.7" - dependencies: - "@babel/template": ^7.20.7 - "@babel/traverse": ^7.20.7 - "@babel/types": ^7.20.7 - checksum: 3fb10df3510ba7116a180d5fd983d0f558f7a65c3d599385dba991bff66b74174c88881bc12c2b3cf7284294fcac5b301ded49a8b0098bdf2ef61d0cad8010db - languageName: node - linkType: hard - -"@babel/highlight@npm:^7.18.6": - version: 7.18.6 - resolution: "@babel/highlight@npm:7.18.6" - dependencies: - "@babel/helper-validator-identifier": ^7.18.6 - chalk: ^2.0.0 - js-tokens: ^4.0.0 - checksum: 92d8ee61549de5ff5120e945e774728e5ccd57fd3b2ed6eace020ec744823d4a98e242be1453d21764a30a14769ecd62170fba28539b211799bbaf232bbb2789 - languageName: node - linkType: hard - -"@babel/parser@npm:^7.12.7, @babel/parser@npm:^7.18.8, @babel/parser@npm:^7.20.7": - version: 7.20.7 - resolution: "@babel/parser@npm:7.20.7" - bin: - parser: ./bin/babel-parser.js - checksum: 25b5266e3bd4be837092685f6b7ef886f1308ff72659a24342eb646ae5014f61ed1771ce8fc20636c890fcae19304fc72c069564ca6075207b7fbf3f75367275 - languageName: node - linkType: hard - -"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:^7.18.6": - version: 7.18.6 - resolution: "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:7.18.6" - dependencies: - "@babel/helper-plugin-utils": ^7.18.6 - peerDependencies: - "@babel/core": ^7.0.0 - checksum: 845bd280c55a6a91d232cfa54eaf9708ec71e594676fe705794f494bb8b711d833b752b59d1a5c154695225880c23dbc9cab0e53af16fd57807976cd3ff41b8d - languageName: node - linkType: hard - -"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:^7.18.9": - version: 7.20.7 - resolution: "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:7.20.7" - dependencies: - "@babel/helper-plugin-utils": ^7.20.2 - "@babel/helper-skip-transparent-expression-wrappers": ^7.20.0 - "@babel/plugin-proposal-optional-chaining": ^7.20.7 - peerDependencies: - "@babel/core": ^7.13.0 - checksum: d610f532210bee5342f5b44a12395ccc6d904e675a297189bc1e401cc185beec09873da523466d7fec34ae1574f7a384235cba1ccc9fe7b89ba094167897c845 - languageName: node - linkType: hard - -"@babel/plugin-proposal-async-generator-functions@npm:^7.20.1": - version: 7.20.7 - resolution: "@babel/plugin-proposal-async-generator-functions@npm:7.20.7" - dependencies: - "@babel/helper-environment-visitor": ^7.18.9 - "@babel/helper-plugin-utils": ^7.20.2 - "@babel/helper-remap-async-to-generator": ^7.18.9 - "@babel/plugin-syntax-async-generators": ^7.8.4 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 111109ee118c9e69982f08d5e119eab04190b36a0f40e22e873802d941956eee66d2aa5a15f5321e51e3f9aa70a91136451b987fe15185ef8cc547ac88937723 - languageName: node - linkType: hard - -"@babel/plugin-proposal-class-properties@npm:^7.18.6": - version: 7.18.6 - resolution: "@babel/plugin-proposal-class-properties@npm:7.18.6" - dependencies: - "@babel/helper-create-class-features-plugin": ^7.18.6 - "@babel/helper-plugin-utils": ^7.18.6 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 49a78a2773ec0db56e915d9797e44fd079ab8a9b2e1716e0df07c92532f2c65d76aeda9543883916b8e0ff13606afeffa67c5b93d05b607bc87653ad18a91422 - languageName: node - linkType: hard - -"@babel/plugin-proposal-class-static-block@npm:^7.18.6": - version: 7.20.7 - resolution: "@babel/plugin-proposal-class-static-block@npm:7.20.7" - dependencies: - "@babel/helper-create-class-features-plugin": ^7.20.7 - "@babel/helper-plugin-utils": ^7.20.2 - "@babel/plugin-syntax-class-static-block": ^7.14.5 - peerDependencies: - "@babel/core": ^7.12.0 - checksum: ce1f3e8fd96437d820aa36323b7b3a0cb65b5f2600612665129880d5a4eb7194ce6a298ed2a5a4d3a9ea49bd33089ab95503c4c5b3ba9cea251a07d1706453d9 - languageName: node - linkType: hard - -"@babel/plugin-proposal-dynamic-import@npm:^7.18.6": - version: 7.18.6 - resolution: "@babel/plugin-proposal-dynamic-import@npm:7.18.6" - dependencies: - "@babel/helper-plugin-utils": ^7.18.6 - "@babel/plugin-syntax-dynamic-import": ^7.8.3 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 96b1c8a8ad8171d39e9ab106be33bde37ae09b22fb2c449afee9a5edf3c537933d79d963dcdc2694d10677cb96da739cdf1b53454e6a5deab9801f28a818bb2f - languageName: node - linkType: hard - -"@babel/plugin-proposal-export-namespace-from@npm:^7.18.9": - version: 7.18.9 - resolution: "@babel/plugin-proposal-export-namespace-from@npm:7.18.9" - dependencies: - "@babel/helper-plugin-utils": ^7.18.9 - "@babel/plugin-syntax-export-namespace-from": ^7.8.3 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 84ff22bacc5d30918a849bfb7e0e90ae4c5b8d8b65f2ac881803d1cf9068dffbe53bd657b0e4bc4c20b4db301b1c85f1e74183cf29a0dd31e964bd4e97c363ef - languageName: node - linkType: hard - -"@babel/plugin-proposal-json-strings@npm:^7.18.6": - version: 7.18.6 - resolution: "@babel/plugin-proposal-json-strings@npm:7.18.6" - dependencies: - "@babel/helper-plugin-utils": ^7.18.6 - "@babel/plugin-syntax-json-strings": ^7.8.3 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 25ba0e6b9d6115174f51f7c6787e96214c90dd4026e266976b248a2ed417fe50fddae72843ffb3cbe324014a18632ce5648dfac77f089da858022b49fd608cb3 - languageName: node - linkType: hard - -"@babel/plugin-proposal-logical-assignment-operators@npm:^7.18.9": - version: 7.20.7 - resolution: "@babel/plugin-proposal-logical-assignment-operators@npm:7.20.7" - dependencies: - "@babel/helper-plugin-utils": ^7.20.2 - "@babel/plugin-syntax-logical-assignment-operators": ^7.10.4 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: cdd7b8136cc4db3f47714d5266f9e7b592a2ac5a94a5878787ce08890e97c8ab1ca8e94b27bfeba7b0f2b1549a026d9fc414ca2196de603df36fb32633bbdc19 - languageName: node - linkType: hard - -"@babel/plugin-proposal-nullish-coalescing-operator@npm:^7.18.6": - version: 7.18.6 - resolution: "@babel/plugin-proposal-nullish-coalescing-operator@npm:7.18.6" - dependencies: - "@babel/helper-plugin-utils": ^7.18.6 - "@babel/plugin-syntax-nullish-coalescing-operator": ^7.8.3 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 949c9ddcdecdaec766ee610ef98f965f928ccc0361dd87cf9f88cf4896a6ccd62fce063d4494778e50da99dea63d270a1be574a62d6ab81cbe9d85884bf55a7d - languageName: node - linkType: hard - -"@babel/plugin-proposal-numeric-separator@npm:^7.18.6": - version: 7.18.6 - resolution: "@babel/plugin-proposal-numeric-separator@npm:7.18.6" - dependencies: - "@babel/helper-plugin-utils": ^7.18.6 - "@babel/plugin-syntax-numeric-separator": ^7.10.4 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: f370ea584c55bf4040e1f78c80b4eeb1ce2e6aaa74f87d1a48266493c33931d0b6222d8cee3a082383d6bb648ab8d6b7147a06f974d3296ef3bc39c7851683ec - languageName: node - linkType: hard - -"@babel/plugin-proposal-object-rest-spread@npm:7.12.1": - version: 7.12.1 - resolution: "@babel/plugin-proposal-object-rest-spread@npm:7.12.1" - dependencies: - "@babel/helper-plugin-utils": ^7.10.4 - "@babel/plugin-syntax-object-rest-spread": ^7.8.0 - "@babel/plugin-transform-parameters": ^7.12.1 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 221a41630c9a7162bf0416c71695b3f7f38482078a1d0d3af7abdc4f07ea1c9feed890399158d56c1d0278c971fe6f565ce822e9351e4481f7d98e9ff735dced - languageName: node - linkType: hard - -"@babel/plugin-proposal-object-rest-spread@npm:^7.20.2": - version: 7.20.7 - resolution: "@babel/plugin-proposal-object-rest-spread@npm:7.20.7" - dependencies: - "@babel/compat-data": ^7.20.5 - "@babel/helper-compilation-targets": ^7.20.7 - "@babel/helper-plugin-utils": ^7.20.2 - "@babel/plugin-syntax-object-rest-spread": ^7.8.3 - "@babel/plugin-transform-parameters": ^7.20.7 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 1329db17009964bc644484c660eab717cb3ca63ac0ab0f67c651a028d1bc2ead51dc4064caea283e46994f1b7221670a35cbc0b4beb6273f55e915494b5aa0b2 - languageName: node - linkType: hard - -"@babel/plugin-proposal-optional-catch-binding@npm:^7.18.6": - version: 7.18.6 - resolution: "@babel/plugin-proposal-optional-catch-binding@npm:7.18.6" - dependencies: - "@babel/helper-plugin-utils": ^7.18.6 - "@babel/plugin-syntax-optional-catch-binding": ^7.8.3 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 7b5b39fb5d8d6d14faad6cb68ece5eeb2fd550fb66b5af7d7582402f974f5bc3684641f7c192a5a57e0f59acfae4aada6786be1eba030881ddc590666eff4d1e - languageName: node - linkType: hard - -"@babel/plugin-proposal-optional-chaining@npm:^7.18.9, @babel/plugin-proposal-optional-chaining@npm:^7.20.7": - version: 7.20.7 - resolution: "@babel/plugin-proposal-optional-chaining@npm:7.20.7" - dependencies: - "@babel/helper-plugin-utils": ^7.20.2 - "@babel/helper-skip-transparent-expression-wrappers": ^7.20.0 - "@babel/plugin-syntax-optional-chaining": ^7.8.3 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 274b8932335bd064ca24cf1a4da2b2c20c92726d4bfa8b0cb5023857479b8481feef33505c16650c7b9239334e5c6959babc924816324c4cf223dd91c7ca79bc - languageName: node - linkType: hard - -"@babel/plugin-proposal-private-methods@npm:^7.18.6": - version: 7.18.6 - resolution: "@babel/plugin-proposal-private-methods@npm:7.18.6" - dependencies: - "@babel/helper-create-class-features-plugin": ^7.18.6 - "@babel/helper-plugin-utils": ^7.18.6 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 22d8502ee96bca99ad2c8393e8493e2b8d4507576dd054490fd8201a36824373440106f5b098b6d821b026c7e72b0424ff4aeca69ed5f42e48f029d3a156d5ad - languageName: node - linkType: hard - -"@babel/plugin-proposal-private-property-in-object@npm:^7.18.6": - version: 7.20.5 - resolution: "@babel/plugin-proposal-private-property-in-object@npm:7.20.5" - dependencies: - "@babel/helper-annotate-as-pure": ^7.18.6 - "@babel/helper-create-class-features-plugin": ^7.20.5 - "@babel/helper-plugin-utils": ^7.20.2 - "@babel/plugin-syntax-private-property-in-object": ^7.14.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 513b5e0e2c1b2846be5336cf680e932ae17924ef885aa1429e1a4f7924724bdd99b15f28d67187d0a006d5f18a0c4b61d96c3ecb4902fed3c8fe2f0abfc9753a - languageName: node - linkType: hard - -"@babel/plugin-proposal-unicode-property-regex@npm:^7.18.6, @babel/plugin-proposal-unicode-property-regex@npm:^7.4.4": - version: 7.18.6 - resolution: "@babel/plugin-proposal-unicode-property-regex@npm:7.18.6" - dependencies: - "@babel/helper-create-regexp-features-plugin": ^7.18.6 - "@babel/helper-plugin-utils": ^7.18.6 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: a8575ecb7ff24bf6c6e94808d5c84bb5a0c6dd7892b54f09f4646711ba0ee1e1668032b3c43e3e1dfec2c5716c302e851ac756c1645e15882d73df6ad21ae951 - languageName: node - linkType: hard - -"@babel/plugin-syntax-async-generators@npm:^7.8.4": - version: 7.8.4 - resolution: "@babel/plugin-syntax-async-generators@npm:7.8.4" - dependencies: - "@babel/helper-plugin-utils": ^7.8.0 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 7ed1c1d9b9e5b64ef028ea5e755c0be2d4e5e4e3d6cf7df757b9a8c4cfa4193d268176d0f1f7fbecdda6fe722885c7fda681f480f3741d8a2d26854736f05367 - languageName: node - linkType: hard - -"@babel/plugin-syntax-class-properties@npm:^7.12.13": - version: 7.12.13 - resolution: "@babel/plugin-syntax-class-properties@npm:7.12.13" - dependencies: - "@babel/helper-plugin-utils": ^7.12.13 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 24f34b196d6342f28d4bad303612d7ff566ab0a013ce89e775d98d6f832969462e7235f3e7eaf17678a533d4be0ba45d3ae34ab4e5a9dcbda5d98d49e5efa2fc - languageName: node - linkType: hard - -"@babel/plugin-syntax-class-static-block@npm:^7.14.5": - version: 7.14.5 - resolution: "@babel/plugin-syntax-class-static-block@npm:7.14.5" - dependencies: - "@babel/helper-plugin-utils": ^7.14.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 3e80814b5b6d4fe17826093918680a351c2d34398a914ce6e55d8083d72a9bdde4fbaf6a2dcea0e23a03de26dc2917ae3efd603d27099e2b98380345703bf948 - languageName: node - linkType: hard - -"@babel/plugin-syntax-dynamic-import@npm:^7.8.3": - version: 7.8.3 - resolution: "@babel/plugin-syntax-dynamic-import@npm:7.8.3" - dependencies: - "@babel/helper-plugin-utils": ^7.8.0 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: ce307af83cf433d4ec42932329fad25fa73138ab39c7436882ea28742e1c0066626d224e0ad2988724c82644e41601cef607b36194f695cb78a1fcdc959637bd - languageName: node - linkType: hard - -"@babel/plugin-syntax-export-namespace-from@npm:^7.8.3": - version: 7.8.3 - resolution: "@babel/plugin-syntax-export-namespace-from@npm:7.8.3" - dependencies: - "@babel/helper-plugin-utils": ^7.8.3 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 85740478be5b0de185228e7814451d74ab8ce0a26fcca7613955262a26e99e8e15e9da58f60c754b84515d4c679b590dbd3f2148f0f58025f4ae706f1c5a5d4a - languageName: node - linkType: hard - -"@babel/plugin-syntax-import-assertions@npm:^7.20.0": - version: 7.20.0 - resolution: "@babel/plugin-syntax-import-assertions@npm:7.20.0" - dependencies: - "@babel/helper-plugin-utils": ^7.19.0 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 6a86220e0aae40164cd3ffaf80e7c076a1be02a8f3480455dddbae05fda8140f429290027604df7a11b3f3f124866e8a6d69dbfa1dda61ee7377b920ad144d5b - languageName: node - linkType: hard - -"@babel/plugin-syntax-json-strings@npm:^7.8.3": - version: 7.8.3 - resolution: "@babel/plugin-syntax-json-strings@npm:7.8.3" - dependencies: - "@babel/helper-plugin-utils": ^7.8.0 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: bf5aea1f3188c9a507e16efe030efb996853ca3cadd6512c51db7233cc58f3ac89ff8c6bdfb01d30843b161cfe7d321e1bf28da82f7ab8d7e6bc5464666f354a - languageName: node - linkType: hard - -"@babel/plugin-syntax-jsx@npm:7.12.1": - version: 7.12.1 - resolution: "@babel/plugin-syntax-jsx@npm:7.12.1" - dependencies: - "@babel/helper-plugin-utils": ^7.10.4 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: d4b9b589c484b2e0856799770f060dff34c67b24d7f4526f66309a0e0e9cf388a5c1f2c0da329d1973cc87d1b2cede8f3dc8facfac59e785d6393a003bcdd0f9 - languageName: node - linkType: hard - -"@babel/plugin-syntax-jsx@npm:^7.18.6": - version: 7.18.6 - resolution: "@babel/plugin-syntax-jsx@npm:7.18.6" - dependencies: - "@babel/helper-plugin-utils": ^7.18.6 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 6d37ea972970195f1ffe1a54745ce2ae456e0ac6145fae9aa1480f297248b262ea6ebb93010eddb86ebfacb94f57c05a1fc5d232b9a67325b09060299d515c67 - languageName: node - linkType: hard - -"@babel/plugin-syntax-logical-assignment-operators@npm:^7.10.4": - version: 7.10.4 - resolution: "@babel/plugin-syntax-logical-assignment-operators@npm:7.10.4" - dependencies: - "@babel/helper-plugin-utils": ^7.10.4 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: aff33577037e34e515911255cdbb1fd39efee33658aa00b8a5fd3a4b903585112d037cce1cc9e4632f0487dc554486106b79ccd5ea63a2e00df4363f6d4ff886 - languageName: node - linkType: hard - -"@babel/plugin-syntax-nullish-coalescing-operator@npm:^7.8.3": - version: 7.8.3 - resolution: "@babel/plugin-syntax-nullish-coalescing-operator@npm:7.8.3" - dependencies: - "@babel/helper-plugin-utils": ^7.8.0 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 87aca4918916020d1fedba54c0e232de408df2644a425d153be368313fdde40d96088feed6c4e5ab72aac89be5d07fef2ddf329a15109c5eb65df006bf2580d1 - languageName: node - linkType: hard - -"@babel/plugin-syntax-numeric-separator@npm:^7.10.4": - version: 7.10.4 - resolution: "@babel/plugin-syntax-numeric-separator@npm:7.10.4" - dependencies: - "@babel/helper-plugin-utils": ^7.10.4 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 01ec5547bd0497f76cc903ff4d6b02abc8c05f301c88d2622b6d834e33a5651aa7c7a3d80d8d57656a4588f7276eba357f6b7e006482f5b564b7a6488de493a1 - languageName: node - linkType: hard - -"@babel/plugin-syntax-object-rest-spread@npm:7.8.3, @babel/plugin-syntax-object-rest-spread@npm:^7.8.0, @babel/plugin-syntax-object-rest-spread@npm:^7.8.3": - version: 7.8.3 - resolution: "@babel/plugin-syntax-object-rest-spread@npm:7.8.3" - dependencies: - "@babel/helper-plugin-utils": ^7.8.0 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: fddcf581a57f77e80eb6b981b10658421bc321ba5f0a5b754118c6a92a5448f12a0c336f77b8abf734841e102e5126d69110a306eadb03ca3e1547cab31f5cbf - languageName: node - linkType: hard - -"@babel/plugin-syntax-optional-catch-binding@npm:^7.8.3": - version: 7.8.3 - resolution: "@babel/plugin-syntax-optional-catch-binding@npm:7.8.3" - dependencies: - "@babel/helper-plugin-utils": ^7.8.0 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 910d90e72bc90ea1ce698e89c1027fed8845212d5ab588e35ef91f13b93143845f94e2539d831dc8d8ededc14ec02f04f7bd6a8179edd43a326c784e7ed7f0b9 - languageName: node - linkType: hard - -"@babel/plugin-syntax-optional-chaining@npm:^7.8.3": - version: 7.8.3 - resolution: "@babel/plugin-syntax-optional-chaining@npm:7.8.3" - dependencies: - "@babel/helper-plugin-utils": ^7.8.0 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: eef94d53a1453361553c1f98b68d17782861a04a392840341bc91780838dd4e695209c783631cf0de14c635758beafb6a3a65399846ffa4386bff90639347f30 - languageName: node - linkType: hard - -"@babel/plugin-syntax-private-property-in-object@npm:^7.14.5": - version: 7.14.5 - resolution: "@babel/plugin-syntax-private-property-in-object@npm:7.14.5" - dependencies: - "@babel/helper-plugin-utils": ^7.14.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: b317174783e6e96029b743ccff2a67d63d38756876e7e5d0ba53a322e38d9ca452c13354a57de1ad476b4c066dbae699e0ca157441da611117a47af88985ecda - languageName: node - linkType: hard - -"@babel/plugin-syntax-top-level-await@npm:^7.14.5": - version: 7.14.5 - resolution: "@babel/plugin-syntax-top-level-await@npm:7.14.5" - dependencies: - "@babel/helper-plugin-utils": ^7.14.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: bbd1a56b095be7820029b209677b194db9b1d26691fe999856462e66b25b281f031f3dfd91b1619e9dcf95bebe336211833b854d0fb8780d618e35667c2d0d7e - languageName: node - linkType: hard - -"@babel/plugin-syntax-typescript@npm:^7.20.0": - version: 7.20.0 - resolution: "@babel/plugin-syntax-typescript@npm:7.20.0" - dependencies: - "@babel/helper-plugin-utils": ^7.19.0 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 6189c0b5c32ba3c9a80a42338bd50719d783b20ef29b853d4f03929e971913d3cefd80184e924ae98ad6db09080be8fe6f1ffde9a6db8972523234f0274d36f7 - languageName: node - linkType: hard - -"@babel/plugin-transform-arrow-functions@npm:^7.18.6": - version: 7.20.7 - resolution: "@babel/plugin-transform-arrow-functions@npm:7.20.7" - dependencies: - "@babel/helper-plugin-utils": ^7.20.2 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: b43cabe3790c2de7710abe32df9a30005eddb2050dadd5d122c6872f679e5710e410f1b90c8f99a2aff7b614cccfecf30e7fd310236686f60d3ed43fd80b9847 - languageName: node - linkType: hard - -"@babel/plugin-transform-async-to-generator@npm:^7.18.6": - version: 7.20.7 - resolution: "@babel/plugin-transform-async-to-generator@npm:7.20.7" - dependencies: - "@babel/helper-module-imports": ^7.18.6 - "@babel/helper-plugin-utils": ^7.20.2 - "@babel/helper-remap-async-to-generator": ^7.18.9 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: fe9ee8a5471b4317c1b9ea92410ace8126b52a600d7cfbfe1920dcac6fb0fad647d2e08beb4fd03c630eb54430e6c72db11e283e3eddc49615c68abd39430904 - languageName: node - linkType: hard - -"@babel/plugin-transform-block-scoped-functions@npm:^7.18.6": - version: 7.18.6 - resolution: "@babel/plugin-transform-block-scoped-functions@npm:7.18.6" - dependencies: - "@babel/helper-plugin-utils": ^7.18.6 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 0a0df61f94601e3666bf39f2cc26f5f7b22a94450fb93081edbed967bd752ce3f81d1227fefd3799f5ee2722171b5e28db61379234d1bb85b6ec689589f99d7e - languageName: node - linkType: hard - -"@babel/plugin-transform-block-scoping@npm:^7.20.2": - version: 7.20.11 - resolution: "@babel/plugin-transform-block-scoping@npm:7.20.11" - dependencies: - "@babel/helper-plugin-utils": ^7.20.2 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: b33fe53f42f83f14d1d73d6bfc058d3311ac314809de504fd4e7c99ef3a411b2d25211d7ca23aadd6530f73a8df070eaae6d202c07422ffc36f5507917e35f58 - languageName: node - linkType: hard - -"@babel/plugin-transform-classes@npm:^7.20.2": - version: 7.20.7 - resolution: "@babel/plugin-transform-classes@npm:7.20.7" - dependencies: - "@babel/helper-annotate-as-pure": ^7.18.6 - "@babel/helper-compilation-targets": ^7.20.7 - "@babel/helper-environment-visitor": ^7.18.9 - "@babel/helper-function-name": ^7.19.0 - "@babel/helper-optimise-call-expression": ^7.18.6 - "@babel/helper-plugin-utils": ^7.20.2 - "@babel/helper-replace-supers": ^7.20.7 - "@babel/helper-split-export-declaration": ^7.18.6 - globals: ^11.1.0 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 4cf55ad88e52c7c66a991add4c8e1c3324384bd52df7085962d396879561456a44352e5ab1725cc80f4e83737a2931e847c4a96c7aa4a549357f23631ff31799 - languageName: node - linkType: hard - -"@babel/plugin-transform-computed-properties@npm:^7.18.9": - version: 7.20.7 - resolution: "@babel/plugin-transform-computed-properties@npm:7.20.7" - dependencies: - "@babel/helper-plugin-utils": ^7.20.2 - "@babel/template": ^7.20.7 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: be70e54bda8b469146459f429e5f2bd415023b87b2d5af8b10e48f465ffb02847a3ed162ca60378c004b82db848e4d62e90010d41ded7e7176b6d8d1c2911139 - languageName: node - linkType: hard - -"@babel/plugin-transform-destructuring@npm:^7.20.2": - version: 7.20.7 - resolution: "@babel/plugin-transform-destructuring@npm:7.20.7" - dependencies: - "@babel/helper-plugin-utils": ^7.20.2 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: bd8affdb142c77662037215e37128b2110a786c92a67e1f00b38223c438c1610bd84cbc0386e9cd3479245ea811c5ca6c9838f49be4729b592159a30ce79add2 - languageName: node - linkType: hard - -"@babel/plugin-transform-dotall-regex@npm:^7.18.6, @babel/plugin-transform-dotall-regex@npm:^7.4.4": - version: 7.18.6 - resolution: "@babel/plugin-transform-dotall-regex@npm:7.18.6" - dependencies: - "@babel/helper-create-regexp-features-plugin": ^7.18.6 - "@babel/helper-plugin-utils": ^7.18.6 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: cbe5d7063eb8f8cca24cd4827bc97f5641166509e58781a5f8aa47fb3d2d786ce4506a30fca2e01f61f18792783a5cb5d96bf5434c3dd1ad0de8c9cc625a53da - languageName: node - linkType: hard - -"@babel/plugin-transform-duplicate-keys@npm:^7.18.9": - version: 7.18.9 - resolution: "@babel/plugin-transform-duplicate-keys@npm:7.18.9" - dependencies: - "@babel/helper-plugin-utils": ^7.18.9 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 220bf4a9fec5c4d4a7b1de38810350260e8ea08481bf78332a464a21256a95f0df8cd56025f346238f09b04f8e86d4158fafc9f4af57abaef31637e3b58bd4fe - languageName: node - linkType: hard - -"@babel/plugin-transform-exponentiation-operator@npm:^7.18.6": - version: 7.18.6 - resolution: "@babel/plugin-transform-exponentiation-operator@npm:7.18.6" - dependencies: - "@babel/helper-builder-binary-assignment-operator-visitor": ^7.18.6 - "@babel/helper-plugin-utils": ^7.18.6 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 7f70222f6829c82a36005508d34ddbe6fd0974ae190683a8670dd6ff08669aaf51fef2209d7403f9bd543cb2d12b18458016c99a6ed0332ccedb3ea127b01229 - languageName: node - linkType: hard - -"@babel/plugin-transform-for-of@npm:^7.18.8": - version: 7.18.8 - resolution: "@babel/plugin-transform-for-of@npm:7.18.8" - dependencies: - "@babel/helper-plugin-utils": ^7.18.6 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: ca64c623cf0c7a80ab6f07ebd3e6e4ade95e2ae806696f70b43eafe6394fa8ce21f2b1ffdd15df2067f7363d2ecfe26472a97c6c774403d2163fa05f50c98f17 - languageName: node - linkType: hard - -"@babel/plugin-transform-function-name@npm:^7.18.9": - version: 7.18.9 - resolution: "@babel/plugin-transform-function-name@npm:7.18.9" - dependencies: - "@babel/helper-compilation-targets": ^7.18.9 - "@babel/helper-function-name": ^7.18.9 - "@babel/helper-plugin-utils": ^7.18.9 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 62dd9c6cdc9714704efe15545e782ee52d74dc73916bf954b4d3bee088fb0ec9e3c8f52e751252433656c09f744b27b757fc06ed99bcde28e8a21600a1d8e597 - languageName: node - linkType: hard - -"@babel/plugin-transform-literals@npm:^7.18.9": - version: 7.18.9 - resolution: "@babel/plugin-transform-literals@npm:7.18.9" - dependencies: - "@babel/helper-plugin-utils": ^7.18.9 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 3458dd2f1a47ac51d9d607aa18f3d321cbfa8560a985199185bed5a906bb0c61ba85575d386460bac9aed43fdd98940041fae5a67dff286f6f967707cff489f8 - languageName: node - linkType: hard - -"@babel/plugin-transform-member-expression-literals@npm:^7.18.6": - version: 7.18.6 - resolution: "@babel/plugin-transform-member-expression-literals@npm:7.18.6" - dependencies: - "@babel/helper-plugin-utils": ^7.18.6 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 35a3d04f6693bc6b298c05453d85ee6e41cc806538acb6928427e0e97ae06059f97d2f07d21495fcf5f70d3c13a242e2ecbd09d5c1fcb1b1a73ff528dcb0b695 - languageName: node - linkType: hard - -"@babel/plugin-transform-modules-amd@npm:^7.19.6": - version: 7.20.11 - resolution: "@babel/plugin-transform-modules-amd@npm:7.20.11" - dependencies: - "@babel/helper-module-transforms": ^7.20.11 - "@babel/helper-plugin-utils": ^7.20.2 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 23665c1c20c8f11c89382b588fb9651c0756d130737a7625baeaadbd3b973bc5bfba1303bedffa8fb99db1e6d848afb01016e1df2b69b18303e946890c790001 - languageName: node - linkType: hard - -"@babel/plugin-transform-modules-commonjs@npm:^7.19.6": - version: 7.20.11 - resolution: "@babel/plugin-transform-modules-commonjs@npm:7.20.11" - dependencies: - "@babel/helper-module-transforms": ^7.20.11 - "@babel/helper-plugin-utils": ^7.20.2 - "@babel/helper-simple-access": ^7.20.2 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: ddd0623e2ad4b5c0faaa0ae30d3407a3fa484d911c968ed33cfb1b339ac3691321c959db60b66dc136dbd67770fff586f7e48a7ce0d7d357f92d6ef6fb7ed1a7 - languageName: node - linkType: hard - -"@babel/plugin-transform-modules-systemjs@npm:^7.19.6": - version: 7.20.11 - resolution: "@babel/plugin-transform-modules-systemjs@npm:7.20.11" - dependencies: - "@babel/helper-hoist-variables": ^7.18.6 - "@babel/helper-module-transforms": ^7.20.11 - "@babel/helper-plugin-utils": ^7.20.2 - "@babel/helper-validator-identifier": ^7.19.1 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 4546c47587f88156d66c7eb7808e903cf4bb3f6ba6ac9bc8e3af2e29e92eb9f0b3f44d52043bfd24eb25fa7827fd7b6c8bfeac0cac7584e019b87e1ecbd0e673 - languageName: node - linkType: hard - -"@babel/plugin-transform-modules-umd@npm:^7.18.6": - version: 7.18.6 - resolution: "@babel/plugin-transform-modules-umd@npm:7.18.6" - dependencies: - "@babel/helper-module-transforms": ^7.18.6 - "@babel/helper-plugin-utils": ^7.18.6 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: c3b6796c6f4579f1ba5ab0cdcc73910c1e9c8e1e773c507c8bb4da33072b3ae5df73c6d68f9126dab6e99c24ea8571e1563f8710d7c421fac1cde1e434c20153 - languageName: node - linkType: hard - -"@babel/plugin-transform-named-capturing-groups-regex@npm:^7.19.1": - version: 7.20.5 - resolution: "@babel/plugin-transform-named-capturing-groups-regex@npm:7.20.5" - dependencies: - "@babel/helper-create-regexp-features-plugin": ^7.20.5 - "@babel/helper-plugin-utils": ^7.20.2 - peerDependencies: - "@babel/core": ^7.0.0 - checksum: 528c95fb1087e212f17e1c6456df041b28a83c772b9c93d2e407c9d03b72182b0d9d126770c1d6e0b23aab052599ceaf25ed6a2c0627f4249be34a83f6fae853 - languageName: node - linkType: hard - -"@babel/plugin-transform-new-target@npm:^7.18.6": - version: 7.18.6 - resolution: "@babel/plugin-transform-new-target@npm:7.18.6" - dependencies: - "@babel/helper-plugin-utils": ^7.18.6 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: bd780e14f46af55d0ae8503b3cb81ca86dcc73ed782f177e74f498fff934754f9e9911df1f8f3bd123777eed7c1c1af4d66abab87c8daae5403e7719a6b845d1 - languageName: node - linkType: hard - -"@babel/plugin-transform-object-super@npm:^7.18.6": - version: 7.18.6 - resolution: "@babel/plugin-transform-object-super@npm:7.18.6" - dependencies: - "@babel/helper-plugin-utils": ^7.18.6 - "@babel/helper-replace-supers": ^7.18.6 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 0fcb04e15deea96ae047c21cb403607d49f06b23b4589055993365ebd7a7d7541334f06bf9642e90075e66efce6ebaf1eb0ef066fbbab802d21d714f1aac3aef - languageName: node - linkType: hard - -"@babel/plugin-transform-parameters@npm:^7.12.1, @babel/plugin-transform-parameters@npm:^7.20.1, @babel/plugin-transform-parameters@npm:^7.20.7": - version: 7.20.7 - resolution: "@babel/plugin-transform-parameters@npm:7.20.7" - dependencies: - "@babel/helper-plugin-utils": ^7.20.2 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 6ffe0dd9afb2d2b9bc247381aa2e95dd9997ff5568a0a11900528919a4e073ac68f46409431455badb8809644d47cff180045bc2b9700e3f36e3b23554978947 - languageName: node - linkType: hard - -"@babel/plugin-transform-property-literals@npm:^7.18.6": - version: 7.18.6 - resolution: "@babel/plugin-transform-property-literals@npm:7.18.6" - dependencies: - "@babel/helper-plugin-utils": ^7.18.6 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 1c16e64de554703f4b547541de2edda6c01346dd3031d4d29e881aa7733785cd26d53611a4ccf5353f4d3e69097bb0111c0a93ace9e683edd94fea28c4484144 - languageName: node - linkType: hard - -"@babel/plugin-transform-react-constant-elements@npm:^7.18.12": - version: 7.20.2 - resolution: "@babel/plugin-transform-react-constant-elements@npm:7.20.2" - dependencies: - "@babel/helper-plugin-utils": ^7.20.2 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 7b041b726e7c14b8c26a0dd240defac5f93a1f449371c6bdc5e6b46d581211300cc1a79da4140bdf20347f49e175dcb4f469812399206864024d1fdc81171193 - languageName: node - linkType: hard - -"@babel/plugin-transform-react-display-name@npm:^7.18.6": - version: 7.18.6 - resolution: "@babel/plugin-transform-react-display-name@npm:7.18.6" - dependencies: - "@babel/helper-plugin-utils": ^7.18.6 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 51c087ab9e41ef71a29335587da28417536c6f816c292e092ffc0e0985d2f032656801d4dd502213ce32481f4ba6c69402993ffa67f0818a07606ff811e4be49 - languageName: node - linkType: hard - -"@babel/plugin-transform-react-jsx-development@npm:^7.18.6": - version: 7.18.6 - resolution: "@babel/plugin-transform-react-jsx-development@npm:7.18.6" - dependencies: - "@babel/plugin-transform-react-jsx": ^7.18.6 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: ec9fa65db66f938b75c45e99584367779ac3e0af8afc589187262e1337c7c4205ea312877813ae4df9fb93d766627b8968d74ac2ba702e4883b1dbbe4953ecee - languageName: node - linkType: hard - -"@babel/plugin-transform-react-jsx@npm:^7.18.6": - version: 7.20.7 - resolution: "@babel/plugin-transform-react-jsx@npm:7.20.7" - dependencies: - "@babel/helper-annotate-as-pure": ^7.18.6 - "@babel/helper-module-imports": ^7.18.6 - "@babel/helper-plugin-utils": ^7.20.2 - "@babel/plugin-syntax-jsx": ^7.18.6 - "@babel/types": ^7.20.7 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 13ecbd1da582177f76ebd74d685947e703a3dcf8bd39cbc62784253201c6f7a667f3573932f6f20602dbcaf077451bf9dd3571892e3ccf4c7176add6358cd641 - languageName: node - linkType: hard - -"@babel/plugin-transform-react-pure-annotations@npm:^7.18.6": - version: 7.18.6 - resolution: "@babel/plugin-transform-react-pure-annotations@npm:7.18.6" - dependencies: - "@babel/helper-annotate-as-pure": ^7.18.6 - "@babel/helper-plugin-utils": ^7.18.6 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 97c4873d409088f437f9084d084615948198dd87fc6723ada0e7e29c5a03623c2f3e03df3f52e7e7d4d23be32a08ea00818bff302812e48713c706713bd06219 - languageName: node - linkType: hard - -"@babel/plugin-transform-regenerator@npm:^7.18.6": - version: 7.20.5 - resolution: "@babel/plugin-transform-regenerator@npm:7.20.5" - dependencies: - "@babel/helper-plugin-utils": ^7.20.2 - regenerator-transform: ^0.15.1 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 13164861e71fb23d84c6270ef5330b03c54d5d661c2c7468f28e21c4f8598558ca0c8c3cb1d996219352946e849d270a61372bc93c8fbe9676e78e3ffd0dea07 - languageName: node - linkType: hard - -"@babel/plugin-transform-reserved-words@npm:^7.18.6": - version: 7.18.6 - resolution: "@babel/plugin-transform-reserved-words@npm:7.18.6" - dependencies: - "@babel/helper-plugin-utils": ^7.18.6 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 0738cdc30abdae07c8ec4b233b30c31f68b3ff0eaa40eddb45ae607c066127f5fa99ddad3c0177d8e2832e3a7d3ad115775c62b431ebd6189c40a951b867a80c - languageName: node - linkType: hard - -"@babel/plugin-transform-runtime@npm:^7.18.6": - version: 7.19.6 - resolution: "@babel/plugin-transform-runtime@npm:7.19.6" - dependencies: - "@babel/helper-module-imports": ^7.18.6 - "@babel/helper-plugin-utils": ^7.19.0 - babel-plugin-polyfill-corejs2: ^0.3.3 - babel-plugin-polyfill-corejs3: ^0.6.0 - babel-plugin-polyfill-regenerator: ^0.4.1 - semver: ^6.3.0 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: ef93efbcbb00dcf4da6dcc55bda698a2a57fca3fb05a6a13e932ecfdb7c1c5d2f0b5b245c1c4faca0318853937caba0d82442f58b7653249f64275d08052fbd8 - languageName: node - linkType: hard - -"@babel/plugin-transform-shorthand-properties@npm:^7.18.6": - version: 7.18.6 - resolution: "@babel/plugin-transform-shorthand-properties@npm:7.18.6" - dependencies: - "@babel/helper-plugin-utils": ^7.18.6 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: b8e4e8acc2700d1e0d7d5dbfd4fdfb935651913de6be36e6afb7e739d8f9ca539a5150075a0f9b79c88be25ddf45abb912fe7abf525f0b80f5b9d9860de685d7 - languageName: node - linkType: hard - -"@babel/plugin-transform-spread@npm:^7.19.0": - version: 7.20.7 - resolution: "@babel/plugin-transform-spread@npm:7.20.7" - dependencies: - "@babel/helper-plugin-utils": ^7.20.2 - "@babel/helper-skip-transparent-expression-wrappers": ^7.20.0 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 8ea698a12da15718aac7489d4cde10beb8a3eea1f66167d11ab1e625033641e8b328157fd1a0b55dd6531933a160c01fc2e2e61132a385cece05f26429fd0cc2 - languageName: node - linkType: hard - -"@babel/plugin-transform-sticky-regex@npm:^7.18.6": - version: 7.18.6 - resolution: "@babel/plugin-transform-sticky-regex@npm:7.18.6" - dependencies: - "@babel/helper-plugin-utils": ^7.18.6 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 68ea18884ae9723443ffa975eb736c8c0d751265859cd3955691253f7fee37d7a0f7efea96c8a062876af49a257a18ea0ed5fea0d95a7b3611ce40f7ee23aee3 - languageName: node - linkType: hard - -"@babel/plugin-transform-template-literals@npm:^7.18.9": - version: 7.18.9 - resolution: "@babel/plugin-transform-template-literals@npm:7.18.9" - dependencies: - "@babel/helper-plugin-utils": ^7.18.9 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 3d2fcd79b7c345917f69b92a85bdc3ddd68ce2c87dc70c7d61a8373546ccd1f5cb8adc8540b49dfba08e1b82bb7b3bbe23a19efdb2b9c994db2db42906ca9fb2 - languageName: node - linkType: hard - -"@babel/plugin-transform-typeof-symbol@npm:^7.18.9": - version: 7.18.9 - resolution: "@babel/plugin-transform-typeof-symbol@npm:7.18.9" - dependencies: - "@babel/helper-plugin-utils": ^7.18.9 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: e754e0d8b8a028c52e10c148088606e3f7a9942c57bd648fc0438e5b4868db73c386a5ed47ab6d6f0594aae29ee5ffc2ffc0f7ebee7fae560a066d6dea811cd4 - languageName: node - linkType: hard - -"@babel/plugin-transform-typescript@npm:^7.18.6": - version: 7.20.7 - resolution: "@babel/plugin-transform-typescript@npm:7.20.7" - dependencies: - "@babel/helper-create-class-features-plugin": ^7.20.7 - "@babel/helper-plugin-utils": ^7.20.2 - "@babel/plugin-syntax-typescript": ^7.20.0 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: ca569a1b8001e7e8971874656091789c6b3209f155c91c56bce82b545e43d09d156b4fcf2f0dfcdf7911a2c546c7090c2aff167a5692443f6f0382b358c233e0 - languageName: node - linkType: hard - -"@babel/plugin-transform-unicode-escapes@npm:^7.18.10": - version: 7.18.10 - resolution: "@babel/plugin-transform-unicode-escapes@npm:7.18.10" - dependencies: - "@babel/helper-plugin-utils": ^7.18.9 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: f5baca55cb3c11bc08ec589f5f522d85c1ab509b4d11492437e45027d64ae0b22f0907bd1381e8d7f2a436384bb1f9ad89d19277314242c5c2671a0f91d0f9cd - languageName: node - linkType: hard - -"@babel/plugin-transform-unicode-regex@npm:^7.18.6": - version: 7.18.6 - resolution: "@babel/plugin-transform-unicode-regex@npm:7.18.6" - dependencies: - "@babel/helper-create-regexp-features-plugin": ^7.18.6 - "@babel/helper-plugin-utils": ^7.18.6 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: d9e18d57536a2d317fb0b7c04f8f55347f3cfacb75e636b4c6fa2080ab13a3542771b5120e726b598b815891fc606d1472ac02b749c69fd527b03847f22dc25e - languageName: node - linkType: hard - -"@babel/preset-env@npm:^7.18.6, @babel/preset-env@npm:^7.19.4": - version: 7.20.2 - resolution: "@babel/preset-env@npm:7.20.2" - dependencies: - "@babel/compat-data": ^7.20.1 - "@babel/helper-compilation-targets": ^7.20.0 - "@babel/helper-plugin-utils": ^7.20.2 - "@babel/helper-validator-option": ^7.18.6 - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": ^7.18.6 - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": ^7.18.9 - "@babel/plugin-proposal-async-generator-functions": ^7.20.1 - "@babel/plugin-proposal-class-properties": ^7.18.6 - "@babel/plugin-proposal-class-static-block": ^7.18.6 - "@babel/plugin-proposal-dynamic-import": ^7.18.6 - "@babel/plugin-proposal-export-namespace-from": ^7.18.9 - "@babel/plugin-proposal-json-strings": ^7.18.6 - "@babel/plugin-proposal-logical-assignment-operators": ^7.18.9 - "@babel/plugin-proposal-nullish-coalescing-operator": ^7.18.6 - "@babel/plugin-proposal-numeric-separator": ^7.18.6 - "@babel/plugin-proposal-object-rest-spread": ^7.20.2 - "@babel/plugin-proposal-optional-catch-binding": ^7.18.6 - "@babel/plugin-proposal-optional-chaining": ^7.18.9 - "@babel/plugin-proposal-private-methods": ^7.18.6 - "@babel/plugin-proposal-private-property-in-object": ^7.18.6 - "@babel/plugin-proposal-unicode-property-regex": ^7.18.6 - "@babel/plugin-syntax-async-generators": ^7.8.4 - "@babel/plugin-syntax-class-properties": ^7.12.13 - "@babel/plugin-syntax-class-static-block": ^7.14.5 - "@babel/plugin-syntax-dynamic-import": ^7.8.3 - "@babel/plugin-syntax-export-namespace-from": ^7.8.3 - "@babel/plugin-syntax-import-assertions": ^7.20.0 - "@babel/plugin-syntax-json-strings": ^7.8.3 - "@babel/plugin-syntax-logical-assignment-operators": ^7.10.4 - "@babel/plugin-syntax-nullish-coalescing-operator": ^7.8.3 - "@babel/plugin-syntax-numeric-separator": ^7.10.4 - "@babel/plugin-syntax-object-rest-spread": ^7.8.3 - "@babel/plugin-syntax-optional-catch-binding": ^7.8.3 - "@babel/plugin-syntax-optional-chaining": ^7.8.3 - "@babel/plugin-syntax-private-property-in-object": ^7.14.5 - "@babel/plugin-syntax-top-level-await": ^7.14.5 - "@babel/plugin-transform-arrow-functions": ^7.18.6 - "@babel/plugin-transform-async-to-generator": ^7.18.6 - "@babel/plugin-transform-block-scoped-functions": ^7.18.6 - "@babel/plugin-transform-block-scoping": ^7.20.2 - "@babel/plugin-transform-classes": ^7.20.2 - "@babel/plugin-transform-computed-properties": ^7.18.9 - "@babel/plugin-transform-destructuring": ^7.20.2 - "@babel/plugin-transform-dotall-regex": ^7.18.6 - "@babel/plugin-transform-duplicate-keys": ^7.18.9 - "@babel/plugin-transform-exponentiation-operator": ^7.18.6 - "@babel/plugin-transform-for-of": ^7.18.8 - "@babel/plugin-transform-function-name": ^7.18.9 - "@babel/plugin-transform-literals": ^7.18.9 - "@babel/plugin-transform-member-expression-literals": ^7.18.6 - "@babel/plugin-transform-modules-amd": ^7.19.6 - "@babel/plugin-transform-modules-commonjs": ^7.19.6 - "@babel/plugin-transform-modules-systemjs": ^7.19.6 - "@babel/plugin-transform-modules-umd": ^7.18.6 - "@babel/plugin-transform-named-capturing-groups-regex": ^7.19.1 - "@babel/plugin-transform-new-target": ^7.18.6 - "@babel/plugin-transform-object-super": ^7.18.6 - "@babel/plugin-transform-parameters": ^7.20.1 - "@babel/plugin-transform-property-literals": ^7.18.6 - "@babel/plugin-transform-regenerator": ^7.18.6 - "@babel/plugin-transform-reserved-words": ^7.18.6 - "@babel/plugin-transform-shorthand-properties": ^7.18.6 - "@babel/plugin-transform-spread": ^7.19.0 - "@babel/plugin-transform-sticky-regex": ^7.18.6 - "@babel/plugin-transform-template-literals": ^7.18.9 - "@babel/plugin-transform-typeof-symbol": ^7.18.9 - "@babel/plugin-transform-unicode-escapes": ^7.18.10 - "@babel/plugin-transform-unicode-regex": ^7.18.6 - "@babel/preset-modules": ^0.1.5 - "@babel/types": ^7.20.2 - babel-plugin-polyfill-corejs2: ^0.3.3 - babel-plugin-polyfill-corejs3: ^0.6.0 - babel-plugin-polyfill-regenerator: ^0.4.1 - core-js-compat: ^3.25.1 - semver: ^6.3.0 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: ece2d7e9c7789db6116e962b8e1a55eb55c110c44c217f0c8f6ffea4ca234954e66557f7bd019b7affadf7fbb3a53ccc807e93fc935aacd48146234b73b6947e - languageName: node - linkType: hard - -"@babel/preset-modules@npm:^0.1.5": - version: 0.1.5 - resolution: "@babel/preset-modules@npm:0.1.5" - dependencies: - "@babel/helper-plugin-utils": ^7.0.0 - "@babel/plugin-proposal-unicode-property-regex": ^7.4.4 - "@babel/plugin-transform-dotall-regex": ^7.4.4 - "@babel/types": ^7.4.4 - esutils: ^2.0.2 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 8430e0e9e9d520b53e22e8c4c6a5a080a12b63af6eabe559c2310b187bd62ae113f3da82ba33e9d1d0f3230930ca702843aae9dd226dec51f7d7114dc1f51c10 - languageName: node - linkType: hard - -"@babel/preset-react@npm:^7.18.6": - version: 7.18.6 - resolution: "@babel/preset-react@npm:7.18.6" - dependencies: - "@babel/helper-plugin-utils": ^7.18.6 - "@babel/helper-validator-option": ^7.18.6 - "@babel/plugin-transform-react-display-name": ^7.18.6 - "@babel/plugin-transform-react-jsx": ^7.18.6 - "@babel/plugin-transform-react-jsx-development": ^7.18.6 - "@babel/plugin-transform-react-pure-annotations": ^7.18.6 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 540d9cf0a0cc0bb07e6879994e6fb7152f87dafbac880b56b65e2f528134c7ba33e0cd140b58700c77b2ebf4c81fa6468fed0ba391462d75efc7f8c1699bb4c3 - languageName: node - linkType: hard - -"@babel/preset-typescript@npm:^7.18.6": - version: 7.18.6 - resolution: "@babel/preset-typescript@npm:7.18.6" - dependencies: - "@babel/helper-plugin-utils": ^7.18.6 - "@babel/helper-validator-option": ^7.18.6 - "@babel/plugin-transform-typescript": ^7.18.6 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 7fe0da5103eb72d3cf39cf3e138a794c8cdd19c0b38e3e101507eef519c46a87a0d6d0e8bc9e28a13ea2364001ebe7430b9d75758aab4c3c3a8db9a487b9dc7c - languageName: node - linkType: hard - -"@babel/runtime-corejs3@npm:^7.18.6": - version: 7.20.7 - resolution: "@babel/runtime-corejs3@npm:7.20.7" - dependencies: - core-js-pure: ^3.25.1 - regenerator-runtime: ^0.13.11 - checksum: 3fa584a8d03e23968bbe839bf45ec7215fe3e4bc9a184be2174bd66ace599bd9ff03faa2a390407276508c4d72af1141a5a6b15fc984fd73683a800866009858 - languageName: node - linkType: hard - -"@babel/runtime@npm:^7.1.2, @babel/runtime@npm:^7.10.2, @babel/runtime@npm:^7.10.3, @babel/runtime@npm:^7.12.13, @babel/runtime@npm:^7.12.5, @babel/runtime@npm:^7.18.6, @babel/runtime@npm:^7.8.4": - version: 7.20.7 - resolution: "@babel/runtime@npm:7.20.7" - dependencies: - regenerator-runtime: ^0.13.11 - checksum: 4629ce5c46f06cca9cfb9b7fc00d48003335a809888e2b91ec2069a2dcfbfef738480cff32ba81e0b7c290f8918e5c22ddcf2b710001464ee84ba62c7e32a3a3 - languageName: node - linkType: hard - -"@babel/template@npm:^7.12.7, @babel/template@npm:^7.18.10, @babel/template@npm:^7.20.7": - version: 7.20.7 - resolution: "@babel/template@npm:7.20.7" - dependencies: - "@babel/code-frame": ^7.18.6 - "@babel/parser": ^7.20.7 - "@babel/types": ^7.20.7 - checksum: 2eb1a0ab8d415078776bceb3473d07ab746e6bb4c2f6ca46ee70efb284d75c4a32bb0cd6f4f4946dec9711f9c0780e8e5d64b743208deac6f8e9858afadc349e - languageName: node - linkType: hard - -"@babel/traverse@npm:^7.12.9, @babel/traverse@npm:^7.18.8, @babel/traverse@npm:^7.20.10, @babel/traverse@npm:^7.20.12, @babel/traverse@npm:^7.20.5, @babel/traverse@npm:^7.20.7": - version: 7.20.12 - resolution: "@babel/traverse@npm:7.20.12" - dependencies: - "@babel/code-frame": ^7.18.6 - "@babel/generator": ^7.20.7 - "@babel/helper-environment-visitor": ^7.18.9 - "@babel/helper-function-name": ^7.19.0 - "@babel/helper-hoist-variables": ^7.18.6 - "@babel/helper-split-export-declaration": ^7.18.6 - "@babel/parser": ^7.20.7 - "@babel/types": ^7.20.7 - debug: ^4.1.0 - globals: ^11.1.0 - checksum: d758b355ab4f1e87984524b67785fa23d74e8a45d2ceb8bcf4d5b2b0cd15ee160db5e68c7078808542805774ca3802e2eafb1b9638afa4cd7f9ecabd0ca7fd56 - languageName: node - linkType: hard - -"@babel/types@npm:^7.12.7, @babel/types@npm:^7.18.6, @babel/types@npm:^7.18.9, @babel/types@npm:^7.19.0, @babel/types@npm:^7.20.0, @babel/types@npm:^7.20.2, @babel/types@npm:^7.20.5, @babel/types@npm:^7.20.7, @babel/types@npm:^7.4.4, @babel/types@npm:^7.8.3": - version: 7.20.7 - resolution: "@babel/types@npm:7.20.7" - dependencies: - "@babel/helper-string-parser": ^7.19.4 - "@babel/helper-validator-identifier": ^7.19.1 - to-fast-properties: ^2.0.0 - checksum: b39af241f0b72bba67fd6d0d23914f6faec8c0eba8015c181cbd5ea92e59fc91a52a1ab490d3520c7dbd19ddb9ebb76c476308f6388764f16d8201e37fae6811 - languageName: node - linkType: hard - -"@colors/colors@npm:1.5.0": - version: 1.5.0 - resolution: "@colors/colors@npm:1.5.0" - checksum: d64d5260bed1d5012ae3fc617d38d1afc0329fec05342f4e6b838f46998855ba56e0a73833f4a80fa8378c84810da254f76a8a19c39d038260dc06dc4e007425 - languageName: node - linkType: hard - -"@docsearch/css@npm:3.3.2": - version: 3.3.2 - resolution: "@docsearch/css@npm:3.3.2" - checksum: 867a32c01d581cccc422a57eb9a37917f68ef8cdd5091132d348f41f5aa560db03fa61d86b04a6c0c865a3992b5ce33499813d692c8058ebe0077de3dfb1595c - languageName: node - linkType: hard - -"@docsearch/react@npm:^3.1.1": - version: 3.3.2 - resolution: "@docsearch/react@npm:3.3.2" - dependencies: - "@algolia/autocomplete-core": 1.7.4 - "@algolia/autocomplete-preset-algolia": 1.7.4 - "@docsearch/css": 3.3.2 - algoliasearch: ^4.0.0 - peerDependencies: - "@types/react": ">= 16.8.0 < 19.0.0" - react: ">= 16.8.0 < 19.0.0" - react-dom: ">= 16.8.0 < 19.0.0" - peerDependenciesMeta: - "@types/react": - optional: true - react: - optional: true - react-dom: - optional: true - checksum: 8bf420c35a8d80f2b08faa9c68ec13c40308aee461c968bcb5674c4b9224ed57b69919d681eb9a03d204eb42e3d751fe53f66fcd9239cc40a059f5d0786605ad - languageName: node - linkType: hard - -"@docusaurus/core@npm:2.2.0": - version: 2.2.0 - resolution: "@docusaurus/core@npm:2.2.0" - dependencies: - "@babel/core": ^7.18.6 - "@babel/generator": ^7.18.7 - "@babel/plugin-syntax-dynamic-import": ^7.8.3 - "@babel/plugin-transform-runtime": ^7.18.6 - "@babel/preset-env": ^7.18.6 - "@babel/preset-react": ^7.18.6 - "@babel/preset-typescript": ^7.18.6 - "@babel/runtime": ^7.18.6 - "@babel/runtime-corejs3": ^7.18.6 - "@babel/traverse": ^7.18.8 - "@docusaurus/cssnano-preset": 2.2.0 - "@docusaurus/logger": 2.2.0 - "@docusaurus/mdx-loader": 2.2.0 - "@docusaurus/react-loadable": 5.5.2 - "@docusaurus/utils": 2.2.0 - "@docusaurus/utils-common": 2.2.0 - "@docusaurus/utils-validation": 2.2.0 - "@slorber/static-site-generator-webpack-plugin": ^4.0.7 - "@svgr/webpack": ^6.2.1 - autoprefixer: ^10.4.7 - babel-loader: ^8.2.5 - babel-plugin-dynamic-import-node: ^2.3.3 - boxen: ^6.2.1 - chalk: ^4.1.2 - chokidar: ^3.5.3 - clean-css: ^5.3.0 - cli-table3: ^0.6.2 - combine-promises: ^1.1.0 - commander: ^5.1.0 - copy-webpack-plugin: ^11.0.0 - core-js: ^3.23.3 - css-loader: ^6.7.1 - css-minimizer-webpack-plugin: ^4.0.0 - cssnano: ^5.1.12 - del: ^6.1.1 - detect-port: ^1.3.0 - escape-html: ^1.0.3 - eta: ^1.12.3 - file-loader: ^6.2.0 - fs-extra: ^10.1.0 - html-minifier-terser: ^6.1.0 - html-tags: ^3.2.0 - html-webpack-plugin: ^5.5.0 - import-fresh: ^3.3.0 - leven: ^3.1.0 - lodash: ^4.17.21 - mini-css-extract-plugin: ^2.6.1 - postcss: ^8.4.14 - postcss-loader: ^7.0.0 - prompts: ^2.4.2 - react-dev-utils: ^12.0.1 - react-helmet-async: ^1.3.0 - react-loadable: "npm:@docusaurus/react-loadable@5.5.2" - react-loadable-ssr-addon-v5-slorber: ^1.0.1 - react-router: ^5.3.3 - react-router-config: ^5.1.1 - react-router-dom: ^5.3.3 - rtl-detect: ^1.0.4 - semver: ^7.3.7 - serve-handler: ^6.1.3 - shelljs: ^0.8.5 - terser-webpack-plugin: ^5.3.3 - tslib: ^2.4.0 - update-notifier: ^5.1.0 - url-loader: ^4.1.1 - wait-on: ^6.0.1 - webpack: ^5.73.0 - webpack-bundle-analyzer: ^4.5.0 - webpack-dev-server: ^4.9.3 - webpack-merge: ^5.8.0 - webpackbar: ^5.0.2 - peerDependencies: - react: ^16.8.4 || ^17.0.0 - react-dom: ^16.8.4 || ^17.0.0 - bin: - docusaurus: bin/docusaurus.mjs - checksum: ff47e6cf85b0f7dc0a9e5b9b0d26e33a6f7385f067566ff4f9b026d044839e4dfb4c3bc9476cfab7a7e95a0065478a534cda403dac3bb7bac9987406f1978a11 - languageName: node - linkType: hard - -"@docusaurus/core@npm:2.4.3, @docusaurus/core@npm:latest": - version: 2.4.3 - resolution: "@docusaurus/core@npm:2.4.3" - dependencies: - "@babel/core": ^7.18.6 - "@babel/generator": ^7.18.7 - "@babel/plugin-syntax-dynamic-import": ^7.8.3 - "@babel/plugin-transform-runtime": ^7.18.6 - "@babel/preset-env": ^7.18.6 - "@babel/preset-react": ^7.18.6 - "@babel/preset-typescript": ^7.18.6 - "@babel/runtime": ^7.18.6 - "@babel/runtime-corejs3": ^7.18.6 - "@babel/traverse": ^7.18.8 - "@docusaurus/cssnano-preset": 2.4.3 - "@docusaurus/logger": 2.4.3 - "@docusaurus/mdx-loader": 2.4.3 - "@docusaurus/react-loadable": 5.5.2 - "@docusaurus/utils": 2.4.3 - "@docusaurus/utils-common": 2.4.3 - "@docusaurus/utils-validation": 2.4.3 - "@slorber/static-site-generator-webpack-plugin": ^4.0.7 - "@svgr/webpack": ^6.2.1 - autoprefixer: ^10.4.7 - babel-loader: ^8.2.5 - babel-plugin-dynamic-import-node: ^2.3.3 - boxen: ^6.2.1 - chalk: ^4.1.2 - chokidar: ^3.5.3 - clean-css: ^5.3.0 - cli-table3: ^0.6.2 - combine-promises: ^1.1.0 - commander: ^5.1.0 - copy-webpack-plugin: ^11.0.0 - core-js: ^3.23.3 - css-loader: ^6.7.1 - css-minimizer-webpack-plugin: ^4.0.0 - cssnano: ^5.1.12 - del: ^6.1.1 - detect-port: ^1.3.0 - escape-html: ^1.0.3 - eta: ^2.0.0 - file-loader: ^6.2.0 - fs-extra: ^10.1.0 - html-minifier-terser: ^6.1.0 - html-tags: ^3.2.0 - html-webpack-plugin: ^5.5.0 - import-fresh: ^3.3.0 - leven: ^3.1.0 - lodash: ^4.17.21 - mini-css-extract-plugin: ^2.6.1 - postcss: ^8.4.14 - postcss-loader: ^7.0.0 - prompts: ^2.4.2 - react-dev-utils: ^12.0.1 - react-helmet-async: ^1.3.0 - react-loadable: "npm:@docusaurus/react-loadable@5.5.2" - react-loadable-ssr-addon-v5-slorber: ^1.0.1 - react-router: ^5.3.3 - react-router-config: ^5.1.1 - react-router-dom: ^5.3.3 - rtl-detect: ^1.0.4 - semver: ^7.3.7 - serve-handler: ^6.1.3 - shelljs: ^0.8.5 - terser-webpack-plugin: ^5.3.3 - tslib: ^2.4.0 - update-notifier: ^5.1.0 - url-loader: ^4.1.1 - wait-on: ^6.0.1 - webpack: ^5.73.0 - webpack-bundle-analyzer: ^4.5.0 - webpack-dev-server: ^4.9.3 - webpack-merge: ^5.8.0 - webpackbar: ^5.0.2 - peerDependencies: - react: ^16.8.4 || ^17.0.0 - react-dom: ^16.8.4 || ^17.0.0 - bin: - docusaurus: bin/docusaurus.mjs - checksum: cce7173ee131364857c16f70f94155ba0e1b044cde54045fb0cf62ad138f8d8ef093f5aba7c7617a9aa0545b3ee3930aec2e09f645daec015696968338963013 - languageName: node - linkType: hard - -"@docusaurus/cssnano-preset@npm:2.2.0": - version: 2.2.0 - resolution: "@docusaurus/cssnano-preset@npm:2.2.0" - dependencies: - cssnano-preset-advanced: ^5.3.8 - postcss: ^8.4.14 - postcss-sort-media-queries: ^4.2.1 - tslib: ^2.4.0 - checksum: eff9707414867bf844ef5d84bde1c843593b9b7f542dd1a0a7acc88798b0c5ddb721124229912c234bd88b93cb18d8d69c6115cbf706c2a790497f7d9dd23757 - languageName: node - linkType: hard - -"@docusaurus/cssnano-preset@npm:2.4.3": - version: 2.4.3 - resolution: "@docusaurus/cssnano-preset@npm:2.4.3" - dependencies: - cssnano-preset-advanced: ^5.3.8 - postcss: ^8.4.14 - postcss-sort-media-queries: ^4.2.1 - tslib: ^2.4.0 - checksum: f4a4c60b075c23541da90e00ae26af2e7eaadf20d783b37b9110a5e34599e4e91947425e33bad58ba71abee81c85cca99f5d7d76575f53fbaf73617b55e39c62 - languageName: node - linkType: hard - -"@docusaurus/logger@npm:2.2.0": - version: 2.2.0 - resolution: "@docusaurus/logger@npm:2.2.0" - dependencies: - chalk: ^4.1.2 - tslib: ^2.4.0 - checksum: b3ce6e18721a34793a892221485c941d5f7112ae96d569f7918d12c1f50bde9c99bc4195f4d225e874b2bd5800a35413bfeaf78b63c6fbae5f3015d44d118eee - languageName: node - linkType: hard - -"@docusaurus/logger@npm:2.4.3": - version: 2.4.3 - resolution: "@docusaurus/logger@npm:2.4.3" - dependencies: - chalk: ^4.1.2 - tslib: ^2.4.0 - checksum: f026a8233aa317f16ce5b25c6785a431f319c52fc07a1b9e26f4b3df2197974e75830a16b6140314f8f4ef02dc19242106ec2ae1599740b26d516cc34c56102f - languageName: node - linkType: hard - -"@docusaurus/mdx-loader@npm:2.2.0": - version: 2.2.0 - resolution: "@docusaurus/mdx-loader@npm:2.2.0" - dependencies: - "@babel/parser": ^7.18.8 - "@babel/traverse": ^7.18.8 - "@docusaurus/logger": 2.2.0 - "@docusaurus/utils": 2.2.0 - "@mdx-js/mdx": ^1.6.22 - escape-html: ^1.0.3 - file-loader: ^6.2.0 - fs-extra: ^10.1.0 - image-size: ^1.0.1 - mdast-util-to-string: ^2.0.0 - remark-emoji: ^2.2.0 - stringify-object: ^3.3.0 - tslib: ^2.4.0 - unified: ^9.2.2 - unist-util-visit: ^2.0.3 - url-loader: ^4.1.1 - webpack: ^5.73.0 - peerDependencies: - react: ^16.8.4 || ^17.0.0 - react-dom: ^16.8.4 || ^17.0.0 - checksum: fee586498f43c46581062e681424c4637e75d505d813d8bf25f5315c912560f6600cd925bc5b07a93d5d5966741439578e7e72f30030b4c58a5cfdf72e0d8928 - languageName: node - linkType: hard - -"@docusaurus/mdx-loader@npm:2.4.3": - version: 2.4.3 - resolution: "@docusaurus/mdx-loader@npm:2.4.3" - dependencies: - "@babel/parser": ^7.18.8 - "@babel/traverse": ^7.18.8 - "@docusaurus/logger": 2.4.3 - "@docusaurus/utils": 2.4.3 - "@mdx-js/mdx": ^1.6.22 - escape-html: ^1.0.3 - file-loader: ^6.2.0 - fs-extra: ^10.1.0 - image-size: ^1.0.1 - mdast-util-to-string: ^2.0.0 - remark-emoji: ^2.2.0 - stringify-object: ^3.3.0 - tslib: ^2.4.0 - unified: ^9.2.2 - unist-util-visit: ^2.0.3 - url-loader: ^4.1.1 - webpack: ^5.73.0 - peerDependencies: - react: ^16.8.4 || ^17.0.0 - react-dom: ^16.8.4 || ^17.0.0 - checksum: 5a774f7ea5f484e888b2bd1bf8b182279e3788afec779eb8920cf468b92ab8d83a1ae8be51925074241a4d1a38d989cfb366d2baf0f67ed6f063342395a7ca8e - languageName: node - linkType: hard - -"@docusaurus/module-type-aliases@npm:2.2.0": - version: 2.2.0 - resolution: "@docusaurus/module-type-aliases@npm:2.2.0" - dependencies: - "@docusaurus/react-loadable": 5.5.2 - "@docusaurus/types": 2.2.0 - "@types/history": ^4.7.11 - "@types/react": "*" - "@types/react-router-config": "*" - "@types/react-router-dom": "*" - react-helmet-async: "*" - react-loadable: "npm:@docusaurus/react-loadable@5.5.2" - peerDependencies: - react: "*" - react-dom: "*" - checksum: ebcb9dff2f88b5962cd34aaa78b1a48531da4776229ef507665e3f053cccb185aadcc16c3703f21031e14ccb6c8312662a6eec1a2a06bc0a423221ad200e1e9e - languageName: node - linkType: hard - -"@docusaurus/module-type-aliases@npm:2.4.3, @docusaurus/module-type-aliases@npm:latest": - version: 2.4.3 - resolution: "@docusaurus/module-type-aliases@npm:2.4.3" - dependencies: - "@docusaurus/react-loadable": 5.5.2 - "@docusaurus/types": 2.4.3 - "@types/history": ^4.7.11 - "@types/react": "*" - "@types/react-router-config": "*" - "@types/react-router-dom": "*" - react-helmet-async: "*" - react-loadable: "npm:@docusaurus/react-loadable@5.5.2" - peerDependencies: - react: "*" - react-dom: "*" - checksum: 22ce1a6a20acc35cdd2ec57e55f29e65dbe0fb3a46aaa8c033ec78bf04cd3087f0523c816c744ed311095512dd686c83e0a8619cc1a2a937c27cd54527739c38 - languageName: node - linkType: hard - -"@docusaurus/plugin-content-blog@npm:2.4.3": - version: 2.4.3 - resolution: "@docusaurus/plugin-content-blog@npm:2.4.3" - dependencies: - "@docusaurus/core": 2.4.3 - "@docusaurus/logger": 2.4.3 - "@docusaurus/mdx-loader": 2.4.3 - "@docusaurus/types": 2.4.3 - "@docusaurus/utils": 2.4.3 - "@docusaurus/utils-common": 2.4.3 - "@docusaurus/utils-validation": 2.4.3 - cheerio: ^1.0.0-rc.12 - feed: ^4.2.2 - fs-extra: ^10.1.0 - lodash: ^4.17.21 - reading-time: ^1.5.0 - tslib: ^2.4.0 - unist-util-visit: ^2.0.3 - utility-types: ^3.10.0 - webpack: ^5.73.0 - peerDependencies: - react: ^16.8.4 || ^17.0.0 - react-dom: ^16.8.4 || ^17.0.0 - checksum: 9fd41331c609b9488eea363e617e3763a814c75f83eb1b858cef402a0f5b96f67a342e25ff8c333489e550eb4d379eae09a88b986a97c25170fe203662e2f1ae - languageName: node - linkType: hard - -"@docusaurus/plugin-content-docs@npm:2.4.3": - version: 2.4.3 - resolution: "@docusaurus/plugin-content-docs@npm:2.4.3" - dependencies: - "@docusaurus/core": 2.4.3 - "@docusaurus/logger": 2.4.3 - "@docusaurus/mdx-loader": 2.4.3 - "@docusaurus/module-type-aliases": 2.4.3 - "@docusaurus/types": 2.4.3 - "@docusaurus/utils": 2.4.3 - "@docusaurus/utils-validation": 2.4.3 - "@types/react-router-config": ^5.0.6 - combine-promises: ^1.1.0 - fs-extra: ^10.1.0 - import-fresh: ^3.3.0 - js-yaml: ^4.1.0 - lodash: ^4.17.21 - tslib: ^2.4.0 - utility-types: ^3.10.0 - webpack: ^5.73.0 - peerDependencies: - react: ^16.8.4 || ^17.0.0 - react-dom: ^16.8.4 || ^17.0.0 - checksum: bc01201f64721131eb84f264e51c7497b8034d2a3d99d762169f5dc456c3d8882acfa01fdbaa8fdc6e2e220479b36e0c9e8e17397bf887884589535bdeaeb4bb - languageName: node - linkType: hard - -"@docusaurus/plugin-content-docs@npm:^2.0.0-rc.1": - version: 2.2.0 - resolution: "@docusaurus/plugin-content-docs@npm:2.2.0" - dependencies: - "@docusaurus/core": 2.2.0 - "@docusaurus/logger": 2.2.0 - "@docusaurus/mdx-loader": 2.2.0 - "@docusaurus/module-type-aliases": 2.2.0 - "@docusaurus/types": 2.2.0 - "@docusaurus/utils": 2.2.0 - "@docusaurus/utils-validation": 2.2.0 - "@types/react-router-config": ^5.0.6 - combine-promises: ^1.1.0 - fs-extra: ^10.1.0 - import-fresh: ^3.3.0 - js-yaml: ^4.1.0 - lodash: ^4.17.21 - tslib: ^2.4.0 - utility-types: ^3.10.0 - webpack: ^5.73.0 - peerDependencies: - react: ^16.8.4 || ^17.0.0 - react-dom: ^16.8.4 || ^17.0.0 - checksum: 3a262b49dd6f9d59f4e10dd25185bb4280dbf77b62e28a1dd658d5db0861ae8c82dd025f24212f0d8fec0a46a37f6ef0f2cde25ac736d445247e8727177da660 - languageName: node - linkType: hard - -"@docusaurus/plugin-content-pages@npm:2.4.3": - version: 2.4.3 - resolution: "@docusaurus/plugin-content-pages@npm:2.4.3" - dependencies: - "@docusaurus/core": 2.4.3 - "@docusaurus/mdx-loader": 2.4.3 - "@docusaurus/types": 2.4.3 - "@docusaurus/utils": 2.4.3 - "@docusaurus/utils-validation": 2.4.3 - fs-extra: ^10.1.0 - tslib: ^2.4.0 - webpack: ^5.73.0 - peerDependencies: - react: ^16.8.4 || ^17.0.0 - react-dom: ^16.8.4 || ^17.0.0 - checksum: 00439c2e1a1f345cd549739db13a3610b6d9f7ffa6cf7507ad6ac1f3c8d24041947acc2a446be7edf1a613cf354a50d1133aa28ddf64a0eff6ed8a31bf1a542f - languageName: node - linkType: hard - -"@docusaurus/plugin-debug@npm:2.4.3": - version: 2.4.3 - resolution: "@docusaurus/plugin-debug@npm:2.4.3" - dependencies: - "@docusaurus/core": 2.4.3 - "@docusaurus/types": 2.4.3 - "@docusaurus/utils": 2.4.3 - fs-extra: ^10.1.0 - react-json-view: ^1.21.3 - tslib: ^2.4.0 - peerDependencies: - react: ^16.8.4 || ^17.0.0 - react-dom: ^16.8.4 || ^17.0.0 - checksum: 88955828b72e463e04501cc6bedf802208e377ae0f4d72735625bcbb47918afc4f2588355c6914064cfdbe4945d3da6473ce76319aa1f66dd975b3b43c4c39b0 - languageName: node - linkType: hard - -"@docusaurus/plugin-google-analytics@npm:2.4.3": - version: 2.4.3 - resolution: "@docusaurus/plugin-google-analytics@npm:2.4.3" - dependencies: - "@docusaurus/core": 2.4.3 - "@docusaurus/types": 2.4.3 - "@docusaurus/utils-validation": 2.4.3 - tslib: ^2.4.0 - peerDependencies: - react: ^16.8.4 || ^17.0.0 - react-dom: ^16.8.4 || ^17.0.0 - checksum: 6e30de6b5c479493614a5552a295f07ffb9c83f3740a68c7d4dbac378b8288da7430f26cdc246d763855c6084ad86a6f87286e6c8b40f4817794bb1a04e109ea - languageName: node - linkType: hard - -"@docusaurus/plugin-google-gtag@npm:2.4.3": - version: 2.4.3 - resolution: "@docusaurus/plugin-google-gtag@npm:2.4.3" - dependencies: - "@docusaurus/core": 2.4.3 - "@docusaurus/types": 2.4.3 - "@docusaurus/utils-validation": 2.4.3 - tslib: ^2.4.0 - peerDependencies: - react: ^16.8.4 || ^17.0.0 - react-dom: ^16.8.4 || ^17.0.0 - checksum: 4aaac4d262b3bb7fc3f16620c5329b90db92bf28361ced54f2945fc0e4669483e2f36b076332e0ee9d11b6233cd2c81ca35c953119bad42171e62571c1692d6a - languageName: node - linkType: hard - -"@docusaurus/plugin-google-tag-manager@npm:2.4.3": - version: 2.4.3 - resolution: "@docusaurus/plugin-google-tag-manager@npm:2.4.3" - dependencies: - "@docusaurus/core": 2.4.3 - "@docusaurus/types": 2.4.3 - "@docusaurus/utils-validation": 2.4.3 - tslib: ^2.4.0 - peerDependencies: - react: ^16.8.4 || ^17.0.0 - react-dom: ^16.8.4 || ^17.0.0 - checksum: c3af89b4d41fab463d853cbfbe8f43d384f702dd09fd914fffcca01fdf94c282d1b98d762c9142fe21f6471f5dd643679e8d11344c95fdf6657aff0618c3c7a5 - languageName: node - linkType: hard - -"@docusaurus/plugin-sitemap@npm:2.4.3": - version: 2.4.3 - resolution: "@docusaurus/plugin-sitemap@npm:2.4.3" - dependencies: - "@docusaurus/core": 2.4.3 - "@docusaurus/logger": 2.4.3 - "@docusaurus/types": 2.4.3 - "@docusaurus/utils": 2.4.3 - "@docusaurus/utils-common": 2.4.3 - "@docusaurus/utils-validation": 2.4.3 - fs-extra: ^10.1.0 - sitemap: ^7.1.1 - tslib: ^2.4.0 - peerDependencies: - react: ^16.8.4 || ^17.0.0 - react-dom: ^16.8.4 || ^17.0.0 - checksum: cf96b9f0e32cefa58e37a4bc2f0a112ea657f06faf47b780ec2ba39d5e2daca6486a73f3b376c56ad3bb42f3f0c3f70a783f1ce1964b74e2ba273e6f439e439b - languageName: node - linkType: hard - -"@docusaurus/preset-classic@npm:latest": - version: 2.4.3 - resolution: "@docusaurus/preset-classic@npm:2.4.3" - dependencies: - "@docusaurus/core": 2.4.3 - "@docusaurus/plugin-content-blog": 2.4.3 - "@docusaurus/plugin-content-docs": 2.4.3 - "@docusaurus/plugin-content-pages": 2.4.3 - "@docusaurus/plugin-debug": 2.4.3 - "@docusaurus/plugin-google-analytics": 2.4.3 - "@docusaurus/plugin-google-gtag": 2.4.3 - "@docusaurus/plugin-google-tag-manager": 2.4.3 - "@docusaurus/plugin-sitemap": 2.4.3 - "@docusaurus/theme-classic": 2.4.3 - "@docusaurus/theme-common": 2.4.3 - "@docusaurus/theme-search-algolia": 2.4.3 - "@docusaurus/types": 2.4.3 - peerDependencies: - react: ^16.8.4 || ^17.0.0 - react-dom: ^16.8.4 || ^17.0.0 - checksum: a321badc44696adf4ab2d4a5d6c93f595e8c17988aec9609d325928a1d60f5e0205b23fe849b28ddaed24f7935829e86c402f6b761d6e65db4224270b9dd443c - languageName: node - linkType: hard - -"@docusaurus/react-loadable@npm:5.5.2, react-loadable@npm:@docusaurus/react-loadable@5.5.2": - version: 5.5.2 - resolution: "@docusaurus/react-loadable@npm:5.5.2" - dependencies: - "@types/react": "*" - prop-types: ^15.6.2 - peerDependencies: - react: "*" - checksum: 930fb9e2936412a12461f210acdc154a433283921ca43ac3fc3b84cb6c12eb738b3a3719373022bf68004efeb1a928dbe36c467d7a1f86454ed6241576d936e7 - languageName: node - linkType: hard - -"@docusaurus/theme-classic@npm:2.4.3": - version: 2.4.3 - resolution: "@docusaurus/theme-classic@npm:2.4.3" - dependencies: - "@docusaurus/core": 2.4.3 - "@docusaurus/mdx-loader": 2.4.3 - "@docusaurus/module-type-aliases": 2.4.3 - "@docusaurus/plugin-content-blog": 2.4.3 - "@docusaurus/plugin-content-docs": 2.4.3 - "@docusaurus/plugin-content-pages": 2.4.3 - "@docusaurus/theme-common": 2.4.3 - "@docusaurus/theme-translations": 2.4.3 - "@docusaurus/types": 2.4.3 - "@docusaurus/utils": 2.4.3 - "@docusaurus/utils-common": 2.4.3 - "@docusaurus/utils-validation": 2.4.3 - "@mdx-js/react": ^1.6.22 - clsx: ^1.2.1 - copy-text-to-clipboard: ^3.0.1 - infima: 0.2.0-alpha.43 - lodash: ^4.17.21 - nprogress: ^0.2.0 - postcss: ^8.4.14 - prism-react-renderer: ^1.3.5 - prismjs: ^1.28.0 - react-router-dom: ^5.3.3 - rtlcss: ^3.5.0 - tslib: ^2.4.0 - utility-types: ^3.10.0 - peerDependencies: - react: ^16.8.4 || ^17.0.0 - react-dom: ^16.8.4 || ^17.0.0 - checksum: 215b7fa416f40ce68773265a168af47fa770583ebe33ec7b34c7e082dfe7c79252b589a6b26532cb0ab7dd089611a9cd0e20c94df097be320a227b98e3b3fbb8 - languageName: node - linkType: hard - -"@docusaurus/theme-common@npm:2.4.3": - version: 2.4.3 - resolution: "@docusaurus/theme-common@npm:2.4.3" - dependencies: - "@docusaurus/mdx-loader": 2.4.3 - "@docusaurus/module-type-aliases": 2.4.3 - "@docusaurus/plugin-content-blog": 2.4.3 - "@docusaurus/plugin-content-docs": 2.4.3 - "@docusaurus/plugin-content-pages": 2.4.3 - "@docusaurus/utils": 2.4.3 - "@docusaurus/utils-common": 2.4.3 - "@types/history": ^4.7.11 - "@types/react": "*" - "@types/react-router-config": "*" - clsx: ^1.2.1 - parse-numeric-range: ^1.3.0 - prism-react-renderer: ^1.3.5 - tslib: ^2.4.0 - use-sync-external-store: ^1.2.0 - utility-types: ^3.10.0 - peerDependencies: - react: ^16.8.4 || ^17.0.0 - react-dom: ^16.8.4 || ^17.0.0 - checksum: 76817f548705542124d708c804e724674ec9bf996a5cb2a5c9a2919416367567cca4a3fa6055589990c339f6e1fb9d3944e25ed30b79fabe191db00d6ef986ca - languageName: node - linkType: hard - -"@docusaurus/theme-search-algolia@npm:2.4.3": - version: 2.4.3 - resolution: "@docusaurus/theme-search-algolia@npm:2.4.3" - dependencies: - "@docsearch/react": ^3.1.1 - "@docusaurus/core": 2.4.3 - "@docusaurus/logger": 2.4.3 - "@docusaurus/plugin-content-docs": 2.4.3 - "@docusaurus/theme-common": 2.4.3 - "@docusaurus/theme-translations": 2.4.3 - "@docusaurus/utils": 2.4.3 - "@docusaurus/utils-validation": 2.4.3 - algoliasearch: ^4.13.1 - algoliasearch-helper: ^3.10.0 - clsx: ^1.2.1 - eta: ^2.0.0 - fs-extra: ^10.1.0 - lodash: ^4.17.21 - tslib: ^2.4.0 - utility-types: ^3.10.0 - peerDependencies: - react: ^16.8.4 || ^17.0.0 - react-dom: ^16.8.4 || ^17.0.0 - checksum: 665d244c25bff21dd45c983c9b85f9827d2dd58945b802d645370b5e7092820532faf488c0bc0ce88e8fc0088c7f56eb9abb96589cf3857372c1b61bba6cbed7 - languageName: node - linkType: hard - -"@docusaurus/theme-translations@npm:2.4.3": - version: 2.4.3 - resolution: "@docusaurus/theme-translations@npm:2.4.3" - dependencies: - fs-extra: ^10.1.0 - tslib: ^2.4.0 - checksum: 8424583a130b0d32b6adf578dc5daeefaad199019c8a6a23fbd67577209be64923cde59d423ea9d41d6e7cfc2318e7fa6a17a665e8ae1c871ce0880525f9b8fd - languageName: node - linkType: hard - -"@docusaurus/theme-translations@npm:^2.0.0-rc.1": - version: 2.2.0 - resolution: "@docusaurus/theme-translations@npm:2.2.0" - dependencies: - fs-extra: ^10.1.0 - tslib: ^2.4.0 - checksum: 7fe7d104fd094f2af2321986a86edef1eb8ab25415ea94ab1b242d08aec7627b3d5790001631621cd80c57c710714308aad5adfbf570cb74e0f01fda93b610be - languageName: node - linkType: hard - -"@docusaurus/types@npm:2.2.0": - version: 2.2.0 - resolution: "@docusaurus/types@npm:2.2.0" - dependencies: - "@types/history": ^4.7.11 - "@types/react": "*" - commander: ^5.1.0 - joi: ^17.6.0 - react-helmet-async: ^1.3.0 - utility-types: ^3.10.0 - webpack: ^5.73.0 - webpack-merge: ^5.8.0 - peerDependencies: - react: ^16.8.4 || ^17.0.0 - react-dom: ^16.8.4 || ^17.0.0 - checksum: 5166ca49bb9333e4d733e4bf8d49d65e11ea6b39e4d8eecc24e1de24d61d2459c52dd8bd27362b66b03e41df96acf1a449145211b3bf0c5a59a987c77102e8f1 - languageName: node - linkType: hard - -"@docusaurus/types@npm:2.4.3": - version: 2.4.3 - resolution: "@docusaurus/types@npm:2.4.3" - dependencies: - "@types/history": ^4.7.11 - "@types/react": "*" - commander: ^5.1.0 - joi: ^17.6.0 - react-helmet-async: ^1.3.0 - utility-types: ^3.10.0 - webpack: ^5.73.0 - webpack-merge: ^5.8.0 - peerDependencies: - react: ^16.8.4 || ^17.0.0 - react-dom: ^16.8.4 || ^17.0.0 - checksum: c123c45630e885b588f808baa06a97f8408a3381906f65cb92ae75732aedfca6ab2cada94f969c08e043b885b95298616440326259b789010e0986cbcd7a960b - languageName: node - linkType: hard - -"@docusaurus/utils-common@npm:2.2.0, @docusaurus/utils-common@npm:^2.0.0-rc.1": - version: 2.2.0 - resolution: "@docusaurus/utils-common@npm:2.2.0" - dependencies: - tslib: ^2.4.0 - peerDependencies: - "@docusaurus/types": "*" - peerDependenciesMeta: - "@docusaurus/types": - optional: true - checksum: 05d23a2f82a1bc119e3ad6b37481c9bc984f62efd3a79046567216784b78fb20fe7452252d610bb4c063e4ded8a7ab7efa1dc9f9f228357c20b9f4729c7a0576 - languageName: node - linkType: hard - -"@docusaurus/utils-common@npm:2.4.3": - version: 2.4.3 - resolution: "@docusaurus/utils-common@npm:2.4.3" - dependencies: - tslib: ^2.4.0 - peerDependencies: - "@docusaurus/types": "*" - peerDependenciesMeta: - "@docusaurus/types": - optional: true - checksum: 1ae315d8d8ce7a0163a698ffdca55b734d21f336512138c128bc0fa2a8d224edbaad0c8dbd7a3de2e8ef734dc2656c505d09066dee4fc84819d153593abb8984 - languageName: node - linkType: hard - -"@docusaurus/utils-validation@npm:2.2.0, @docusaurus/utils-validation@npm:^2.0.0-rc.1": - version: 2.2.0 - resolution: "@docusaurus/utils-validation@npm:2.2.0" - dependencies: - "@docusaurus/logger": 2.2.0 - "@docusaurus/utils": 2.2.0 - joi: ^17.6.0 - js-yaml: ^4.1.0 - tslib: ^2.4.0 - checksum: a30e47cf84628950176cc02a121f31b200b46cdccf02e80d76f24b51b9d33fccee35c43047f507b8fb48deb38f863580ecbcdc1393718c6f3a14fcd40d5d1ab6 - languageName: node - linkType: hard - -"@docusaurus/utils-validation@npm:2.4.3": - version: 2.4.3 - resolution: "@docusaurus/utils-validation@npm:2.4.3" - dependencies: - "@docusaurus/logger": 2.4.3 - "@docusaurus/utils": 2.4.3 - joi: ^17.6.0 - js-yaml: ^4.1.0 - tslib: ^2.4.0 - checksum: d3472b3f7a0a029c2cef1f00bc9db403d5f7e74e2091eccbc45d06f5776a84fd73bd1a18cf3a8a3cc0348ce49f753a1300deac670c2a82c56070cc40ca9df06e - languageName: node - linkType: hard - -"@docusaurus/utils@npm:2.2.0, @docusaurus/utils@npm:^2.0.0-rc.1": - version: 2.2.0 - resolution: "@docusaurus/utils@npm:2.2.0" - dependencies: - "@docusaurus/logger": 2.2.0 - "@svgr/webpack": ^6.2.1 - file-loader: ^6.2.0 - fs-extra: ^10.1.0 - github-slugger: ^1.4.0 - globby: ^11.1.0 - gray-matter: ^4.0.3 - js-yaml: ^4.1.0 - lodash: ^4.17.21 - micromatch: ^4.0.5 - resolve-pathname: ^3.0.0 - shelljs: ^0.8.5 - tslib: ^2.4.0 - url-loader: ^4.1.1 - webpack: ^5.73.0 - peerDependencies: - "@docusaurus/types": "*" - peerDependenciesMeta: - "@docusaurus/types": - optional: true - checksum: d027a6d2417e043ac463402aadca22f1101f942daaf02330d9bb4743dcbe3bd2fd46d27dedf316fcf2b6698713fede974ba59eb5d4bc92c8959e23bc25e7a03a - languageName: node - linkType: hard - -"@docusaurus/utils@npm:2.4.3": - version: 2.4.3 - resolution: "@docusaurus/utils@npm:2.4.3" - dependencies: - "@docusaurus/logger": 2.4.3 - "@svgr/webpack": ^6.2.1 - escape-string-regexp: ^4.0.0 - file-loader: ^6.2.0 - fs-extra: ^10.1.0 - github-slugger: ^1.4.0 - globby: ^11.1.0 - gray-matter: ^4.0.3 - js-yaml: ^4.1.0 - lodash: ^4.17.21 - micromatch: ^4.0.5 - resolve-pathname: ^3.0.0 - shelljs: ^0.8.5 - tslib: ^2.4.0 - url-loader: ^4.1.1 - webpack: ^5.73.0 - peerDependencies: - "@docusaurus/types": "*" - peerDependenciesMeta: - "@docusaurus/types": - optional: true - checksum: dd1aa7688d1a4b2775e13a91d528608ceab33c57a921404d9a989867c31c8ef17fe3892e4f5680dfb4a783da7b9973e2077e907ff4ac172927433e606e8fa9b9 - languageName: node - linkType: hard - -"@easyops-cn/autocomplete.js@npm:^0.38.1": - version: 0.38.1 - resolution: "@easyops-cn/autocomplete.js@npm:0.38.1" - dependencies: - cssesc: ^3.0.0 - immediate: ^3.2.3 - checksum: d88b61f12c383856b8d5cedf176a6d07a21e013dc2c78be029af81e2e026ece2bb988c6ea7f9951a2759c2e6f806ea1d1c9627bf36d9cbe376e897a94ce5da09 - languageName: node - linkType: hard - -"@easyops-cn/docusaurus-search-local@npm:^0.33.6": - version: 0.33.6 - resolution: "@easyops-cn/docusaurus-search-local@npm:0.33.6" - dependencies: - "@docusaurus/plugin-content-docs": ^2.0.0-rc.1 - "@docusaurus/theme-translations": ^2.0.0-rc.1 - "@docusaurus/utils": ^2.0.0-rc.1 - "@docusaurus/utils-common": ^2.0.0-rc.1 - "@docusaurus/utils-validation": ^2.0.0-rc.1 - "@easyops-cn/autocomplete.js": ^0.38.1 - "@node-rs/jieba": ^1.6.0 - cheerio: ^1.0.0-rc.3 - clsx: ^1.1.1 - debug: ^4.2.0 - fs-extra: ^10.0.0 - klaw-sync: ^6.0.0 - lunr: ^2.3.9 - lunr-languages: ^1.4.0 - mark.js: ^8.11.1 - tslib: ^2.4.0 - peerDependencies: - "@docusaurus/theme-common": ^2.0.0-rc.1 - react: ^16.14.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.14.0 || ^17.0.0 || ^18.0.0 - checksum: fd2f3e7f5f6b764d2e38690a60a60fa7af7b659ead9b155c5791d51967359789512f710d09b52bffc2a7734d1f76c651d9d02cf5ddae76d5ed7ead4a0b1ff03e - languageName: node - linkType: hard - -"@gar/promisify@npm:^1.1.3": - version: 1.1.3 - resolution: "@gar/promisify@npm:1.1.3" - checksum: 4059f790e2d07bf3c3ff3e0fec0daa8144fe35c1f6e0111c9921bd32106adaa97a4ab096ad7dab1e28ee6a9060083c4d1a4ada42a7f5f3f7a96b8812e2b757c1 - languageName: node - linkType: hard - -"@hapi/hoek@npm:^9.0.0": - version: 9.3.0 - resolution: "@hapi/hoek@npm:9.3.0" - checksum: 4771c7a776242c3c022b168046af4e324d116a9d2e1d60631ee64f474c6e38d1bb07092d898bf95c7bc5d334c5582798a1456321b2e53ca817d4e7c88bc25b43 - languageName: node - linkType: hard - -"@hapi/topo@npm:^5.0.0": - version: 5.1.0 - resolution: "@hapi/topo@npm:5.1.0" - dependencies: - "@hapi/hoek": ^9.0.0 - checksum: 604dfd5dde76d5c334bd03f9001fce69c7ce529883acf92da96f4fe7e51221bf5e5110e964caca287a6a616ba027c071748ab636ff178ad750547fba611d6014 - languageName: node - linkType: hard - -"@jest/schemas@npm:^29.0.0": - version: 29.0.0 - resolution: "@jest/schemas@npm:29.0.0" - dependencies: - "@sinclair/typebox": ^0.24.1 - checksum: 41355c78f09eb1097e57a3c5d0ca11c9099e235e01ea5fa4e3953562a79a6a9296c1d300f1ba50ca75236048829e056b00685cd2f1ff8285e56fd2ce01249acb - languageName: node - linkType: hard - -"@jest/types@npm:^29.3.1": - version: 29.3.1 - resolution: "@jest/types@npm:29.3.1" - dependencies: - "@jest/schemas": ^29.0.0 - "@types/istanbul-lib-coverage": ^2.0.0 - "@types/istanbul-reports": ^3.0.0 - "@types/node": "*" - "@types/yargs": ^17.0.8 - chalk: ^4.0.0 - checksum: 6f9faf27507b845ff3839c1adc6dbd038d7046d03d37e84c9fc956f60718711a801a5094c7eeee6b39ccf42c0ab61347fdc0fa49ab493ae5a8efd2fd41228ee8 - languageName: node - linkType: hard - -"@jridgewell/gen-mapping@npm:^0.1.0": - version: 0.1.1 - resolution: "@jridgewell/gen-mapping@npm:0.1.1" - dependencies: - "@jridgewell/set-array": ^1.0.0 - "@jridgewell/sourcemap-codec": ^1.4.10 - checksum: 3bcc21fe786de6ffbf35c399a174faab05eb23ce6a03e8769569de28abbf4facc2db36a9ddb0150545ae23a8d35a7cf7237b2aa9e9356a7c626fb4698287d5cc - languageName: node - linkType: hard - -"@jridgewell/gen-mapping@npm:^0.3.0, @jridgewell/gen-mapping@npm:^0.3.2": - version: 0.3.2 - resolution: "@jridgewell/gen-mapping@npm:0.3.2" - dependencies: - "@jridgewell/set-array": ^1.0.1 - "@jridgewell/sourcemap-codec": ^1.4.10 - "@jridgewell/trace-mapping": ^0.3.9 - checksum: 1832707a1c476afebe4d0fbbd4b9434fdb51a4c3e009ab1e9938648e21b7a97049fa6009393bdf05cab7504108413441df26d8a3c12193996e65493a4efb6882 - languageName: node - linkType: hard - -"@jridgewell/resolve-uri@npm:3.1.0": - version: 3.1.0 - resolution: "@jridgewell/resolve-uri@npm:3.1.0" - checksum: b5ceaaf9a110fcb2780d1d8f8d4a0bfd216702f31c988d8042e5f8fbe353c55d9b0f55a1733afdc64806f8e79c485d2464680ac48a0d9fcadb9548ee6b81d267 - languageName: node - linkType: hard - -"@jridgewell/set-array@npm:^1.0.0, @jridgewell/set-array@npm:^1.0.1": - version: 1.1.2 - resolution: "@jridgewell/set-array@npm:1.1.2" - checksum: 69a84d5980385f396ff60a175f7177af0b8da4ddb81824cb7016a9ef914eee9806c72b6b65942003c63f7983d4f39a5c6c27185bbca88eb4690b62075602e28e - languageName: node - linkType: hard - -"@jridgewell/source-map@npm:^0.3.2": - version: 0.3.2 - resolution: "@jridgewell/source-map@npm:0.3.2" - dependencies: - "@jridgewell/gen-mapping": ^0.3.0 - "@jridgewell/trace-mapping": ^0.3.9 - checksum: 1b83f0eb944e77b70559a394d5d3b3f98a81fcc186946aceb3ef42d036762b52ef71493c6c0a3b7c1d2f08785f53ba2df1277fe629a06e6109588ff4cdcf7482 - languageName: node - linkType: hard - -"@jridgewell/sourcemap-codec@npm:1.4.14, @jridgewell/sourcemap-codec@npm:^1.4.10": - version: 1.4.14 - resolution: "@jridgewell/sourcemap-codec@npm:1.4.14" - checksum: 61100637b6d173d3ba786a5dff019e1a74b1f394f323c1fee337ff390239f053b87266c7a948777f4b1ee68c01a8ad0ab61e5ff4abb5a012a0b091bec391ab97 - languageName: node - linkType: hard - -"@jridgewell/trace-mapping@npm:^0.3.14, @jridgewell/trace-mapping@npm:^0.3.9": - version: 0.3.17 - resolution: "@jridgewell/trace-mapping@npm:0.3.17" - dependencies: - "@jridgewell/resolve-uri": 3.1.0 - "@jridgewell/sourcemap-codec": 1.4.14 - checksum: 9d703b859cff5cd83b7308fd457a431387db5db96bd781a63bf48e183418dd9d3d44e76b9e4ae13237f6abeeb25d739ec9215c1d5bfdd08f66f750a50074a339 - languageName: node - linkType: hard - -"@leichtgewicht/ip-codec@npm:^2.0.1": - version: 2.0.4 - resolution: "@leichtgewicht/ip-codec@npm:2.0.4" - checksum: 468de1f04d33de6d300892683d7c8aecbf96d1e2c5fe084f95f816e50a054d45b7c1ebfb141a1447d844b86a948733f6eebd92234da8581c84a1ad4de2946a2d - languageName: node - linkType: hard - -"@mdx-js/mdx@npm:^1.6.22": - version: 1.6.22 - resolution: "@mdx-js/mdx@npm:1.6.22" - dependencies: - "@babel/core": 7.12.9 - "@babel/plugin-syntax-jsx": 7.12.1 - "@babel/plugin-syntax-object-rest-spread": 7.8.3 - "@mdx-js/util": 1.6.22 - babel-plugin-apply-mdx-type-prop: 1.6.22 - babel-plugin-extract-import-names: 1.6.22 - camelcase-css: 2.0.1 - detab: 2.0.4 - hast-util-raw: 6.0.1 - lodash.uniq: 4.5.0 - mdast-util-to-hast: 10.0.1 - remark-footnotes: 2.0.0 - remark-mdx: 1.6.22 - remark-parse: 8.0.3 - remark-squeeze-paragraphs: 4.0.0 - style-to-object: 0.3.0 - unified: 9.2.0 - unist-builder: 2.0.3 - unist-util-visit: 2.0.3 - checksum: 0839b4a3899416326ea6578fe9e470af319da559bc6d3669c60942e456b49a98eebeb3358c623007b4786a2175a450d2c51cd59df64639013c5a3d22366931a6 - languageName: node - linkType: hard - -"@mdx-js/react@npm:^1.6.22": - version: 1.6.22 - resolution: "@mdx-js/react@npm:1.6.22" - peerDependencies: - react: ^16.13.1 || ^17.0.0 - checksum: bc84bd514bc127f898819a0c6f1a6915d9541011bd8aefa1fcc1c9bea8939f31051409e546bdec92babfa5b56092a16d05ef6d318304ac029299df5181dc94c8 - languageName: node - linkType: hard - -"@mdx-js/util@npm:1.6.22": - version: 1.6.22 - resolution: "@mdx-js/util@npm:1.6.22" - checksum: 4b393907e39a1a75214f0314bf72a0adfa5e5adffd050dd5efe9c055b8549481a3cfc9f308c16dfb33311daf3ff63added7d5fd1fe52db614c004f886e0e559a - languageName: node - linkType: hard - -"@node-rs/jieba-android-arm-eabi@npm:1.6.2": - version: 1.6.2 - resolution: "@node-rs/jieba-android-arm-eabi@npm:1.6.2" - conditions: os=android & cpu=arm - languageName: node - linkType: hard - -"@node-rs/jieba-android-arm64@npm:1.6.2": - version: 1.6.2 - resolution: "@node-rs/jieba-android-arm64@npm:1.6.2" - conditions: os=android & cpu=arm64 - languageName: node - linkType: hard - -"@node-rs/jieba-darwin-arm64@npm:1.6.2": - version: 1.6.2 - resolution: "@node-rs/jieba-darwin-arm64@npm:1.6.2" - conditions: os=darwin & cpu=arm64 - languageName: node - linkType: hard - -"@node-rs/jieba-darwin-x64@npm:1.6.2": - version: 1.6.2 - resolution: "@node-rs/jieba-darwin-x64@npm:1.6.2" - conditions: os=darwin & cpu=x64 - languageName: node - linkType: hard - -"@node-rs/jieba-freebsd-x64@npm:1.6.2": - version: 1.6.2 - resolution: "@node-rs/jieba-freebsd-x64@npm:1.6.2" - conditions: os=freebsd & cpu=x64 - languageName: node - linkType: hard - -"@node-rs/jieba-linux-arm-gnueabihf@npm:1.6.2": - version: 1.6.2 - resolution: "@node-rs/jieba-linux-arm-gnueabihf@npm:1.6.2" - conditions: os=linux & cpu=arm - languageName: node - linkType: hard - -"@node-rs/jieba-linux-arm64-gnu@npm:1.6.2": - version: 1.6.2 - resolution: "@node-rs/jieba-linux-arm64-gnu@npm:1.6.2" - conditions: os=linux & cpu=arm64 & libc=glibc - languageName: node - linkType: hard - -"@node-rs/jieba-linux-arm64-musl@npm:1.6.2": - version: 1.6.2 - resolution: "@node-rs/jieba-linux-arm64-musl@npm:1.6.2" - conditions: os=linux & cpu=arm64 & libc=musl - languageName: node - linkType: hard - -"@node-rs/jieba-linux-x64-gnu@npm:1.6.2": - version: 1.6.2 - resolution: "@node-rs/jieba-linux-x64-gnu@npm:1.6.2" - conditions: os=linux & cpu=x64 & libc=glibc - languageName: node - linkType: hard - -"@node-rs/jieba-linux-x64-musl@npm:1.6.2": - version: 1.6.2 - resolution: "@node-rs/jieba-linux-x64-musl@npm:1.6.2" - conditions: os=linux & cpu=x64 & libc=musl - languageName: node - linkType: hard - -"@node-rs/jieba-win32-arm64-msvc@npm:1.6.2": - version: 1.6.2 - resolution: "@node-rs/jieba-win32-arm64-msvc@npm:1.6.2" - conditions: os=win32 & cpu=arm64 - languageName: node - linkType: hard - -"@node-rs/jieba-win32-ia32-msvc@npm:1.6.2": - version: 1.6.2 - resolution: "@node-rs/jieba-win32-ia32-msvc@npm:1.6.2" - conditions: os=win32 & cpu=ia32 - languageName: node - linkType: hard - -"@node-rs/jieba-win32-x64-msvc@npm:1.6.2": - version: 1.6.2 - resolution: "@node-rs/jieba-win32-x64-msvc@npm:1.6.2" - conditions: os=win32 & cpu=x64 - languageName: node - linkType: hard - -"@node-rs/jieba@npm:^1.6.0": - version: 1.6.2 - resolution: "@node-rs/jieba@npm:1.6.2" - dependencies: - "@node-rs/jieba-android-arm-eabi": 1.6.2 - "@node-rs/jieba-android-arm64": 1.6.2 - "@node-rs/jieba-darwin-arm64": 1.6.2 - "@node-rs/jieba-darwin-x64": 1.6.2 - "@node-rs/jieba-freebsd-x64": 1.6.2 - "@node-rs/jieba-linux-arm-gnueabihf": 1.6.2 - "@node-rs/jieba-linux-arm64-gnu": 1.6.2 - "@node-rs/jieba-linux-arm64-musl": 1.6.2 - "@node-rs/jieba-linux-x64-gnu": 1.6.2 - "@node-rs/jieba-linux-x64-musl": 1.6.2 - "@node-rs/jieba-win32-arm64-msvc": 1.6.2 - "@node-rs/jieba-win32-ia32-msvc": 1.6.2 - "@node-rs/jieba-win32-x64-msvc": 1.6.2 - dependenciesMeta: - "@node-rs/jieba-android-arm-eabi": - optional: true - "@node-rs/jieba-android-arm64": - optional: true - "@node-rs/jieba-darwin-arm64": - optional: true - "@node-rs/jieba-darwin-x64": - optional: true - "@node-rs/jieba-freebsd-x64": - optional: true - "@node-rs/jieba-linux-arm-gnueabihf": - optional: true - "@node-rs/jieba-linux-arm64-gnu": - optional: true - "@node-rs/jieba-linux-arm64-musl": - optional: true - "@node-rs/jieba-linux-x64-gnu": - optional: true - "@node-rs/jieba-linux-x64-musl": - optional: true - "@node-rs/jieba-win32-arm64-msvc": - optional: true - "@node-rs/jieba-win32-ia32-msvc": - optional: true - "@node-rs/jieba-win32-x64-msvc": - optional: true - checksum: 3d5264170db8909c64c4c2dc6bc5a6a47198a09fa7242143ae5e5a413b8ec604a607f2db8458f580824316b1fd48c1f06e00c7688e6964285db82667f96e5508 - languageName: node - linkType: hard - -"@nodelib/fs.scandir@npm:2.1.5": - version: 2.1.5 - resolution: "@nodelib/fs.scandir@npm:2.1.5" - dependencies: - "@nodelib/fs.stat": 2.0.5 - run-parallel: ^1.1.9 - checksum: a970d595bd23c66c880e0ef1817791432dbb7acbb8d44b7e7d0e7a22f4521260d4a83f7f9fd61d44fda4610105577f8f58a60718105fb38352baed612fd79e59 - languageName: node - linkType: hard - -"@nodelib/fs.stat@npm:2.0.5, @nodelib/fs.stat@npm:^2.0.2": - version: 2.0.5 - resolution: "@nodelib/fs.stat@npm:2.0.5" - checksum: 012480b5ca9d97bff9261571dbbec7bbc6033f69cc92908bc1ecfad0792361a5a1994bc48674b9ef76419d056a03efadfce5a6cf6dbc0a36559571a7a483f6f0 - languageName: node - linkType: hard - -"@nodelib/fs.walk@npm:^1.2.3": - version: 1.2.8 - resolution: "@nodelib/fs.walk@npm:1.2.8" - dependencies: - "@nodelib/fs.scandir": 2.1.5 - fastq: ^1.6.0 - checksum: 190c643f156d8f8f277bf2a6078af1ffde1fd43f498f187c2db24d35b4b4b5785c02c7dc52e356497b9a1b65b13edc996de08de0b961c32844364da02986dc53 - languageName: node - linkType: hard - -"@npmcli/fs@npm:^2.1.0": - version: 2.1.2 - resolution: "@npmcli/fs@npm:2.1.2" - dependencies: - "@gar/promisify": ^1.1.3 - semver: ^7.3.5 - checksum: 405074965e72d4c9d728931b64d2d38e6ea12066d4fad651ac253d175e413c06fe4350970c783db0d749181da8fe49c42d3880bd1cbc12cd68e3a7964d820225 - languageName: node - linkType: hard - -"@npmcli/move-file@npm:^2.0.0": - version: 2.0.1 - resolution: "@npmcli/move-file@npm:2.0.1" - dependencies: - mkdirp: ^1.0.4 - rimraf: ^3.0.2 - checksum: 52dc02259d98da517fae4cb3a0a3850227bdae4939dda1980b788a7670636ca2b4a01b58df03dd5f65c1e3cb70c50fa8ce5762b582b3f499ec30ee5ce1fd9380 - languageName: node - linkType: hard - -"@polka/url@npm:^1.0.0-next.20": - version: 1.0.0-next.21 - resolution: "@polka/url@npm:1.0.0-next.21" - checksum: c7654046d38984257dd639eab3dc770d1b0340916097b2fac03ce5d23506ada684e05574a69b255c32ea6a144a957c8cd84264159b545fca031c772289d88788 - languageName: node - linkType: hard - -"@sideway/address@npm:^4.1.3": - version: 4.1.4 - resolution: "@sideway/address@npm:4.1.4" - dependencies: - "@hapi/hoek": ^9.0.0 - checksum: b9fca2a93ac2c975ba12e0a6d97853832fb1f4fb02393015e012b47fa916a75ca95102d77214b2a29a2784740df2407951af8c5dde054824c65577fd293c4cdb - languageName: node - linkType: hard - -"@sideway/formula@npm:^3.0.0": - version: 3.0.1 - resolution: "@sideway/formula@npm:3.0.1" - checksum: e4beeebc9dbe2ff4ef0def15cec0165e00d1612e3d7cea0bc9ce5175c3263fc2c818b679bd558957f49400ee7be9d4e5ac90487e1625b4932e15c4aa7919c57a - languageName: node - linkType: hard - -"@sideway/pinpoint@npm:^2.0.0": - version: 2.0.0 - resolution: "@sideway/pinpoint@npm:2.0.0" - checksum: 0f4491e5897fcf5bf02c46f5c359c56a314e90ba243f42f0c100437935daa2488f20482f0f77186bd6bf43345095a95d8143ecf8b1f4d876a7bc0806aba9c3d2 - languageName: node - linkType: hard - -"@sinclair/typebox@npm:^0.24.1": - version: 0.24.51 - resolution: "@sinclair/typebox@npm:0.24.51" - checksum: fd0d855e748ef767eb19da1a60ed0ab928e91e0f358c1dd198d600762c0015440b15755e96d1176e2a0db7e09c6a64ed487828ee10dd0c3e22f61eb09c478cd0 - languageName: node - linkType: hard - -"@sindresorhus/is@npm:^0.14.0": - version: 0.14.0 - resolution: "@sindresorhus/is@npm:0.14.0" - checksum: 971e0441dd44ba3909b467219a5e242da0fc584048db5324cfb8048148fa8dcc9d44d71e3948972c4f6121d24e5da402ef191420d1266a95f713bb6d6e59c98a - languageName: node - linkType: hard - -"@slorber/static-site-generator-webpack-plugin@npm:^4.0.7": - version: 4.0.7 - resolution: "@slorber/static-site-generator-webpack-plugin@npm:4.0.7" - dependencies: - eval: ^0.1.8 - p-map: ^4.0.0 - webpack-sources: ^3.2.2 - checksum: a1e1d8b22dd51059524993f3fdd6861db10eb950debc389e5dd650702287fa2004eace03e6bc8f25b977bd7bc01d76a50aa271cbb73c58a8ec558945d728f307 - languageName: node - linkType: hard - -"@svgr/babel-plugin-add-jsx-attribute@npm:^6.5.1": - version: 6.5.1 - resolution: "@svgr/babel-plugin-add-jsx-attribute@npm:6.5.1" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: cab83832830a57735329ed68f67c03b57ca21fa037b0134847b0c5c0ef4beca89956d7dacfbf7b2a10fd901e7009e877512086db2ee918b8c69aee7742ae32c0 - languageName: node - linkType: hard - -"@svgr/babel-plugin-remove-jsx-attribute@npm:*": - version: 6.5.0 - resolution: "@svgr/babel-plugin-remove-jsx-attribute@npm:6.5.0" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 7a4dfc1345f5855b010684e9c5301731842bf91d72b82ce5cc4c82c80b94de1036e447a8a00fb306a6dd575cb4c640d8ce3cfee6607ddbb804796a77284c7f22 - languageName: node - linkType: hard - -"@svgr/babel-plugin-remove-jsx-empty-expression@npm:*": - version: 6.5.0 - resolution: "@svgr/babel-plugin-remove-jsx-empty-expression@npm:6.5.0" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 3e173f720d530f9f71f8506f3eb78583eec3d87d66e385efe1ef3b3ebfc4e3680ec30f36414726de6a163e99ca69f54886022967e49476dea522267e1986936e - languageName: node - linkType: hard - -"@svgr/babel-plugin-replace-jsx-attribute-value@npm:^6.5.1": - version: 6.5.1 - resolution: "@svgr/babel-plugin-replace-jsx-attribute-value@npm:6.5.1" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: b7d2125758e766e1ebd14b92216b800bdc976959bc696dbfa1e28682919147c1df4bb8b1b5fd037d7a83026e27e681fea3b8d3741af8d3cf4c9dfa3d412125df - languageName: node - linkType: hard - -"@svgr/babel-plugin-svg-dynamic-title@npm:^6.5.1": - version: 6.5.1 - resolution: "@svgr/babel-plugin-svg-dynamic-title@npm:6.5.1" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 0fd42ebf127ae9163ef341e84972daa99bdcb9e6ed3f83aabd95ee173fddc43e40e02fa847fbc0a1058cf5549f72b7960a2c5e22c3e4ac18f7e3ac81277852ae - languageName: node - linkType: hard - -"@svgr/babel-plugin-svg-em-dimensions@npm:^6.5.1": - version: 6.5.1 - resolution: "@svgr/babel-plugin-svg-em-dimensions@npm:6.5.1" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: c1550ee9f548526fa66fd171e3ffb5696bfc4e4cd108a631d39db492c7410dc10bba4eb5a190e9df824bf806130ccc586ae7d2e43c547e6a4f93bbb29a18f344 - languageName: node - linkType: hard - -"@svgr/babel-plugin-transform-react-native-svg@npm:^6.5.1": - version: 6.5.1 - resolution: "@svgr/babel-plugin-transform-react-native-svg@npm:6.5.1" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 4c924af22b948b812629e80efb90ad1ec8faae26a232d8ca8a06b46b53e966a2c415a57806a3ff0ea806a622612e546422719b69ec6839717a7755dac19171d9 - languageName: node - linkType: hard - -"@svgr/babel-plugin-transform-svg-component@npm:^6.5.1": - version: 6.5.1 - resolution: "@svgr/babel-plugin-transform-svg-component@npm:6.5.1" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: e496bb5ee871feb6bcab250b6e067322da7dd5c9c2b530b41e5586fe090f86611339b49d0a909c334d9b24cbca0fa755c949a2526c6ad03c6b5885666874cf5f - languageName: node - linkType: hard - -"@svgr/babel-preset@npm:^6.5.1": - version: 6.5.1 - resolution: "@svgr/babel-preset@npm:6.5.1" - dependencies: - "@svgr/babel-plugin-add-jsx-attribute": ^6.5.1 - "@svgr/babel-plugin-remove-jsx-attribute": "*" - "@svgr/babel-plugin-remove-jsx-empty-expression": "*" - "@svgr/babel-plugin-replace-jsx-attribute-value": ^6.5.1 - "@svgr/babel-plugin-svg-dynamic-title": ^6.5.1 - "@svgr/babel-plugin-svg-em-dimensions": ^6.5.1 - "@svgr/babel-plugin-transform-react-native-svg": ^6.5.1 - "@svgr/babel-plugin-transform-svg-component": ^6.5.1 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 9f124be39a8e64f909162f925b3a63ddaa5a342a5e24fc0b7f7d9d4d7f7e3b916596c754fb557dc259928399cad5366a27cb231627a0d2dcc4b13ac521cf05af - languageName: node - linkType: hard - -"@svgr/core@npm:^6.5.1": - version: 6.5.1 - resolution: "@svgr/core@npm:6.5.1" - dependencies: - "@babel/core": ^7.19.6 - "@svgr/babel-preset": ^6.5.1 - "@svgr/plugin-jsx": ^6.5.1 - camelcase: ^6.2.0 - cosmiconfig: ^7.0.1 - checksum: fd6d6d5da5aeb956703310480b626c1fb3e3973ad9fe8025efc1dcf3d895f857b70d100c63cf32cebb20eb83c9607bafa464c9436e18fe6fe4fafdc73ed6b1a5 - languageName: node - linkType: hard - -"@svgr/hast-util-to-babel-ast@npm:^6.5.1": - version: 6.5.1 - resolution: "@svgr/hast-util-to-babel-ast@npm:6.5.1" - dependencies: - "@babel/types": ^7.20.0 - entities: ^4.4.0 - checksum: 37923cce1b3f4e2039077b0c570b6edbabe37d1cf1a6ee35e71e0fe00f9cffac450eec45e9720b1010418131a999cb0047331ba1b6d1d2c69af1b92ac785aacf - languageName: node - linkType: hard - -"@svgr/plugin-jsx@npm:^6.5.1": - version: 6.5.1 - resolution: "@svgr/plugin-jsx@npm:6.5.1" - dependencies: - "@babel/core": ^7.19.6 - "@svgr/babel-preset": ^6.5.1 - "@svgr/hast-util-to-babel-ast": ^6.5.1 - svg-parser: ^2.0.4 - peerDependencies: - "@svgr/core": ^6.0.0 - checksum: 42f22847a6bdf930514d7bedd3c5e1fd8d53eb3594779f9db16cb94c762425907c375cd8ec789114e100a4d38068aca6c7ab5efea4c612fba63f0630c44cc859 - languageName: node - linkType: hard - -"@svgr/plugin-svgo@npm:^6.5.1": - version: 6.5.1 - resolution: "@svgr/plugin-svgo@npm:6.5.1" - dependencies: - cosmiconfig: ^7.0.1 - deepmerge: ^4.2.2 - svgo: ^2.8.0 - peerDependencies: - "@svgr/core": "*" - checksum: cd2833530ac0485221adc2146fd992ab20d79f4b12eebcd45fa859721dd779483158e11dfd9a534858fe468416b9412416e25cbe07ac7932c44ed5fa2021c72e - languageName: node - linkType: hard - -"@svgr/webpack@npm:^6.2.1": - version: 6.5.1 - resolution: "@svgr/webpack@npm:6.5.1" - dependencies: - "@babel/core": ^7.19.6 - "@babel/plugin-transform-react-constant-elements": ^7.18.12 - "@babel/preset-env": ^7.19.4 - "@babel/preset-react": ^7.18.6 - "@babel/preset-typescript": ^7.18.6 - "@svgr/core": ^6.5.1 - "@svgr/plugin-jsx": ^6.5.1 - "@svgr/plugin-svgo": ^6.5.1 - checksum: d10582eb4fa82a5b6d314cb49f2c640af4fd3a60f5b76095d2b14e383ef6a43a6f4674b68774a21787dbde69dec0a251cfcfc3f9a96c82754ba5d5c6daf785f0 - languageName: node - linkType: hard - -"@szmarczak/http-timer@npm:^1.1.2": - version: 1.1.2 - resolution: "@szmarczak/http-timer@npm:1.1.2" - dependencies: - defer-to-connect: ^1.0.1 - checksum: 4d9158061c5f397c57b4988cde33a163244e4f02df16364f103971957a32886beb104d6180902cbe8b38cb940e234d9f98a4e486200deca621923f62f50a06fe - languageName: node - linkType: hard - -"@tootallnate/once@npm:2": - version: 2.0.0 - resolution: "@tootallnate/once@npm:2.0.0" - checksum: ad87447820dd3f24825d2d947ebc03072b20a42bfc96cbafec16bff8bbda6c1a81fcb0be56d5b21968560c5359a0af4038a68ba150c3e1694fe4c109a063bed8 - languageName: node - linkType: hard - -"@trysound/sax@npm:0.2.0": - version: 0.2.0 - resolution: "@trysound/sax@npm:0.2.0" - checksum: 11226c39b52b391719a2a92e10183e4260d9651f86edced166da1d95f39a0a1eaa470e44d14ac685ccd6d3df7e2002433782872c0feeb260d61e80f21250e65c - languageName: node - linkType: hard - -"@tsconfig/docusaurus@npm:^1.0.5": - version: 1.0.6 - resolution: "@tsconfig/docusaurus@npm:1.0.6" - checksum: fb0d7965c01fe64fc6369a72695b903d654bd5fb145f373d707c2bae3c2d828703517d812cef1c041ae44b108f44e52778b9d9837a54fdf782e68e6619a90a4d - languageName: node - linkType: hard - -"@types/body-parser@npm:*": - version: 1.19.2 - resolution: "@types/body-parser@npm:1.19.2" - dependencies: - "@types/connect": "*" - "@types/node": "*" - checksum: e17840c7d747a549f00aebe72c89313d09fbc4b632b949b2470c5cb3b1cb73863901ae84d9335b567a79ec5efcfb8a28ff8e3f36bc8748a9686756b6d5681f40 - languageName: node - linkType: hard - -"@types/bonjour@npm:^3.5.9": - version: 3.5.10 - resolution: "@types/bonjour@npm:3.5.10" - dependencies: - "@types/node": "*" - checksum: bfcadb042a41b124c4e3de4925e3be6d35b78f93f27c4535d5ff86980dc0f8bc407ed99b9b54528952dc62834d5a779392f7a12c2947dd19330eb05a6bcae15a - languageName: node - linkType: hard - -"@types/connect-history-api-fallback@npm:^1.3.5": - version: 1.3.5 - resolution: "@types/connect-history-api-fallback@npm:1.3.5" - dependencies: - "@types/express-serve-static-core": "*" - "@types/node": "*" - checksum: 464d06e5ab00f113fa89978633d5eb00d225aeb4ebbadc07f6f3bc337aa7cbfcd74957b2a539d6d47f2e128e956a17819973ec7ae62ade2e16e367a6c38b8d3a - languageName: node - linkType: hard - -"@types/connect@npm:*": - version: 3.4.35 - resolution: "@types/connect@npm:3.4.35" - dependencies: - "@types/node": "*" - checksum: fe81351470f2d3165e8b12ce33542eef89ea893e36dd62e8f7d72566dfb7e448376ae962f9f3ea888547ce8b55a40020ca0e01d637fab5d99567673084542641 - languageName: node - linkType: hard - -"@types/eslint-scope@npm:^3.7.3": - version: 3.7.4 - resolution: "@types/eslint-scope@npm:3.7.4" - dependencies: - "@types/eslint": "*" - "@types/estree": "*" - checksum: ea6a9363e92f301cd3888194469f9ec9d0021fe0a397a97a6dd689e7545c75de0bd2153dfb13d3ab532853a278b6572c6f678ce846980669e41029d205653460 - languageName: node - linkType: hard - -"@types/eslint@npm:*": - version: 8.4.10 - resolution: "@types/eslint@npm:8.4.10" - dependencies: - "@types/estree": "*" - "@types/json-schema": "*" - checksum: 21e009ed9ed9bc8920fdafc6e11ff321c4538b4cc18a56fdd59dc5184ea7bbf363c71638c9bdb59fc1254dddcdd567485136ed68b0ee4750948d4e32cb79c689 - languageName: node - linkType: hard - -"@types/estree@npm:*": - version: 1.0.0 - resolution: "@types/estree@npm:1.0.0" - checksum: 910d97fb7092c6738d30a7430ae4786a38542023c6302b95d46f49420b797f21619cdde11fa92b338366268795884111c2eb10356e4bd2c8ad5b92941e9e6443 - languageName: node - linkType: hard - -"@types/estree@npm:^0.0.51": - version: 0.0.51 - resolution: "@types/estree@npm:0.0.51" - checksum: e56a3bcf759fd9185e992e7fdb3c6a5f81e8ff120e871641607581fb3728d16c811702a7d40fa5f869b7f7b4437ab6a87eb8d98ffafeee51e85bbe955932a189 - languageName: node - linkType: hard - -"@types/express-serve-static-core@npm:*, @types/express-serve-static-core@npm:^4.17.31": - version: 4.17.32 - resolution: "@types/express-serve-static-core@npm:4.17.32" - dependencies: - "@types/node": "*" - "@types/qs": "*" - "@types/range-parser": "*" - checksum: 70ec1b8f386628850b315a7b9fd4240a5a70297b41ef1c39af65c8b9661d2c775cfff4686b491fd90e5b6eef43088af203700c5541aec0d063db0c6cbeff254c - languageName: node - linkType: hard - -"@types/express@npm:*, @types/express@npm:^4.17.13": - version: 4.17.15 - resolution: "@types/express@npm:4.17.15" - dependencies: - "@types/body-parser": "*" - "@types/express-serve-static-core": ^4.17.31 - "@types/qs": "*" - "@types/serve-static": "*" - checksum: b4acd8a836d4f6409cdf79b12d6e660485249b62500cccd61e7997d2f520093edf77d7f8498ca79d64a112c6434b6de5ca48039b8fde2c881679eced7e96979b - languageName: node - linkType: hard - -"@types/hast@npm:^2.0.0": - version: 2.3.4 - resolution: "@types/hast@npm:2.3.4" - dependencies: - "@types/unist": "*" - checksum: fff47998f4c11e21a7454b58673f70478740ecdafd95aaf50b70a3daa7da9cdc57315545bf9c039613732c40b7b0e9e49d11d03fe9a4304721cdc3b29a88141e - languageName: node - linkType: hard - -"@types/history@npm:^4.7.11": - version: 4.7.11 - resolution: "@types/history@npm:4.7.11" - checksum: c92e2ba407dcab0581a9afdf98f533aa41b61a71133420a6d92b1ca9839f741ab1f9395b17454ba5b88cb86020b70b22d74a1950ccfbdfd9beeaa5459fdc3464 - languageName: node - linkType: hard - -"@types/html-minifier-terser@npm:^6.0.0": - version: 6.1.0 - resolution: "@types/html-minifier-terser@npm:6.1.0" - checksum: eb843f6a8d662d44fb18ec61041117734c6aae77aa38df1be3b4712e8e50ffaa35f1e1c92fdd0fde14a5675fecf457abcd0d15a01fae7506c91926176967f452 - languageName: node - linkType: hard - -"@types/http-proxy@npm:^1.17.8": - version: 1.17.9 - resolution: "@types/http-proxy@npm:1.17.9" - dependencies: - "@types/node": "*" - checksum: 7a6746d00729b2a9fe9f9dd3453430b099931df879ec8f7a7b5f07b1795f6d99b0512640c45a67390b1e4bacb9401e36824952aeeaf089feba8627a063cf8e00 - languageName: node - linkType: hard - -"@types/istanbul-lib-coverage@npm:*, @types/istanbul-lib-coverage@npm:^2.0.0": - version: 2.0.4 - resolution: "@types/istanbul-lib-coverage@npm:2.0.4" - checksum: a25d7589ee65c94d31464c16b72a9dc81dfa0bea9d3e105ae03882d616e2a0712a9c101a599ec482d297c3591e16336962878cb3eb1a0a62d5b76d277a890ce7 - languageName: node - linkType: hard - -"@types/istanbul-lib-report@npm:*": - version: 3.0.0 - resolution: "@types/istanbul-lib-report@npm:3.0.0" - dependencies: - "@types/istanbul-lib-coverage": "*" - checksum: 656398b62dc288e1b5226f8880af98087233cdb90100655c989a09f3052b5775bf98ba58a16c5ae642fb66c61aba402e07a9f2bff1d1569e3b306026c59f3f36 - languageName: node - linkType: hard - -"@types/istanbul-reports@npm:^3.0.0": - version: 3.0.1 - resolution: "@types/istanbul-reports@npm:3.0.1" - dependencies: - "@types/istanbul-lib-report": "*" - checksum: f1ad54bc68f37f60b30c7915886b92f86b847033e597f9b34f2415acdbe5ed742fa559a0a40050d74cdba3b6a63c342cac1f3a64dba5b68b66a6941f4abd7903 - languageName: node - linkType: hard - -"@types/json-schema@npm:*, @types/json-schema@npm:^7.0.4, @types/json-schema@npm:^7.0.5, @types/json-schema@npm:^7.0.8, @types/json-schema@npm:^7.0.9": - version: 7.0.11 - resolution: "@types/json-schema@npm:7.0.11" - checksum: 527bddfe62db9012fccd7627794bd4c71beb77601861055d87e3ee464f2217c85fca7a4b56ae677478367bbd248dbde13553312b7d4dbc702a2f2bbf60c4018d - languageName: node - linkType: hard - -"@types/keyv@npm:^3.1.1": - version: 3.1.4 - resolution: "@types/keyv@npm:3.1.4" - dependencies: - "@types/node": "*" - checksum: e009a2bfb50e90ca9b7c6e8f648f8464067271fd99116f881073fa6fa76dc8d0133181dd65e6614d5fb1220d671d67b0124aef7d97dc02d7e342ab143a47779d - languageName: node - linkType: hard - -"@types/mdast@npm:^3.0.0": - version: 3.0.10 - resolution: "@types/mdast@npm:3.0.10" - dependencies: - "@types/unist": "*" - checksum: 3f587bfc0a9a2403ecadc220e61031b01734fedaf82e27eb4d5ba039c0eb54db8c85681ccc070ab4df3f7ec711b736a82b990e69caa14c74bf7ac0ccf2ac7313 - languageName: node - linkType: hard - -"@types/mdx-js__react@npm:^1.5.5": - version: 1.5.5 - resolution: "@types/mdx-js__react@npm:1.5.5" - dependencies: - "@types/react": "*" - checksum: 91229e9e4d129bed0cd457459970daf8e505de9932791915cb91ad82f033b85c921c773ad16b7de629a7fa3ba97c8301784aad3b9ab6e431c3e5fc521a16a0f2 - languageName: node - linkType: hard - -"@types/mime@npm:*": - version: 3.0.1 - resolution: "@types/mime@npm:3.0.1" - checksum: 4040fac73fd0cea2460e29b348c1a6173da747f3a87da0dbce80dd7a9355a3d0e51d6d9a401654f3e5550620e3718b5a899b2ec1debf18424e298a2c605346e7 - languageName: node - linkType: hard - -"@types/node@npm:*, @types/node@npm:^18.11.18": - version: 18.11.18 - resolution: "@types/node@npm:18.11.18" - checksum: 03f17f9480f8d775c8a72da5ea7e9383db5f6d85aa5fefde90dd953a1449bd5e4ffde376f139da4f3744b4c83942166d2a7603969a6f8ea826edfb16e6e3b49d - languageName: node - linkType: hard - -"@types/node@npm:^17.0.5": - version: 17.0.45 - resolution: "@types/node@npm:17.0.45" - checksum: aa04366b9103b7d6cfd6b2ef64182e0eaa7d4462c3f817618486ea0422984c51fc69fd0d436eae6c9e696ddfdbec9ccaa27a917f7c2e8c75c5d57827fe3d95e8 - languageName: node - linkType: hard - -"@types/parse-json@npm:^4.0.0": - version: 4.0.0 - resolution: "@types/parse-json@npm:4.0.0" - checksum: fd6bce2b674b6efc3db4c7c3d336bd70c90838e8439de639b909ce22f3720d21344f52427f1d9e57b265fcb7f6c018699b99e5e0c208a1a4823014269a6bf35b - languageName: node - linkType: hard - -"@types/parse5@npm:^5.0.0": - version: 5.0.3 - resolution: "@types/parse5@npm:5.0.3" - checksum: d6b7495cb1850f9f2e9c5e103ede9f2d30a5320669707b105c403868adc9e4bf8d3a7ff314cc23f67826bbbbbc0e6147346ce9062ab429f099dba7a01f463919 - languageName: node - linkType: hard - -"@types/prop-types@npm:*": - version: 15.7.5 - resolution: "@types/prop-types@npm:15.7.5" - checksum: 5b43b8b15415e1f298243165f1d44390403bb2bd42e662bca3b5b5633fdd39c938e91b7fce3a9483699db0f7a715d08cef220c121f723a634972fdf596aec980 - languageName: node - linkType: hard - -"@types/qs@npm:*": - version: 6.9.7 - resolution: "@types/qs@npm:6.9.7" - checksum: 7fd6f9c25053e9b5bb6bc9f9f76c1d89e6c04f7707a7ba0e44cc01f17ef5284adb82f230f542c2d5557d69407c9a40f0f3515e8319afd14e1e16b5543ac6cdba - languageName: node - linkType: hard - -"@types/range-parser@npm:*": - version: 1.2.4 - resolution: "@types/range-parser@npm:1.2.4" - checksum: b7c0dfd5080a989d6c8bb0b6750fc0933d9acabeb476da6fe71d8bdf1ab65e37c136169d84148034802f48378ab94e3c37bb4ef7656b2bec2cb9c0f8d4146a95 - languageName: node - linkType: hard - -"@types/react-dom@npm:^17.0.18": - version: 17.0.18 - resolution: "@types/react-dom@npm:17.0.18" - dependencies: - "@types/react": ^17 - checksum: b74525b1a13a0e27fe20859ff7a7e8f7e4581fb9d45ed1b6447ad1534d86f813818353c39d0df2e28f9d2b9be2e3af1908c244b2214a979393d19f217665e614 - languageName: node - linkType: hard - -"@types/react-router-config@npm:*, @types/react-router-config@npm:^5.0.6": - version: 5.0.6 - resolution: "@types/react-router-config@npm:5.0.6" - dependencies: - "@types/history": ^4.7.11 - "@types/react": "*" - "@types/react-router": "*" - checksum: e32a7b19d14c1c07e2c06630207bc4ecf86a01585b832bf3c0756c9eaca312b5839bc8d50e8d744738ea50e7bbde0be3b1fd14a6a9398159d36bce33aff7f280 - languageName: node - linkType: hard - -"@types/react-router-dom@npm:*": - version: 5.3.3 - resolution: "@types/react-router-dom@npm:5.3.3" - dependencies: - "@types/history": ^4.7.11 - "@types/react": "*" - "@types/react-router": "*" - checksum: 28c4ea48909803c414bf5a08502acbb8ba414669b4b43bb51297c05fe5addc4df0b8fd00e0a9d1e3535ec4073ef38aaafac2c4a2b95b787167d113bc059beff3 - languageName: node - linkType: hard - -"@types/react-router@npm:*": - version: 5.1.20 - resolution: "@types/react-router@npm:5.1.20" - dependencies: - "@types/history": ^4.7.11 - "@types/react": "*" - checksum: 128764143473a5e9457ddc715436b5d49814b1c214dde48939b9bef23f0e77f52ffcdfa97eb8d3cc27e2c229869c0cdd90f637d887b62f2c9f065a87d6425419 - languageName: node - linkType: hard - -"@types/react@npm:*": - version: 18.0.27 - resolution: "@types/react@npm:18.0.27" - dependencies: - "@types/prop-types": "*" - "@types/scheduler": "*" - csstype: ^3.0.2 - checksum: 600fdbc39a92ea4a77047db3e12f05f67776a710f5918248c0189a59ac2a38900c9db5a5d2e433a16df528a3ecab1aa114b322cacea573bb1ca2fc0b094c52d1 - languageName: node - linkType: hard - -"@types/react@npm:^17, @types/react@npm:^17.0.53": - version: 17.0.53 - resolution: "@types/react@npm:17.0.53" - dependencies: - "@types/prop-types": "*" - "@types/scheduler": "*" - csstype: ^3.0.2 - checksum: dacfde02c260fd98bed2eb775ed0c7ce1397be4c0844f907a50763b081a4008f81f57071889a16eb1350ddcf0927f3cf1a6541702c8ad03de3c70383ef931e3f - languageName: node - linkType: hard - -"@types/responselike@npm:^1.0.0": - version: 1.0.0 - resolution: "@types/responselike@npm:1.0.0" - dependencies: - "@types/node": "*" - checksum: e99fc7cc6265407987b30deda54c1c24bb1478803faf6037557a774b2f034c5b097ffd65847daa87e82a61a250d919f35c3588654b0fdaa816906650f596d1b0 - languageName: node - linkType: hard - -"@types/retry@npm:0.12.0": - version: 0.12.0 - resolution: "@types/retry@npm:0.12.0" - checksum: 61a072c7639f6e8126588bf1eb1ce8835f2cb9c2aba795c4491cf6310e013267b0c8488039857c261c387e9728c1b43205099223f160bb6a76b4374f741b5603 - languageName: node - linkType: hard - -"@types/sax@npm:^1.2.1": - version: 1.2.4 - resolution: "@types/sax@npm:1.2.4" - dependencies: - "@types/node": "*" - checksum: 2aa50cbf1d1f0cf8541ef1787f94c7442e58e63900afd3b45c354e4140ed5efc5cf26fca8eb9df9970a74c7ea582293ae2083271bd046dedf4c3cc2689a40892 - languageName: node - linkType: hard - -"@types/scheduler@npm:*": - version: 0.16.2 - resolution: "@types/scheduler@npm:0.16.2" - checksum: b6b4dcfeae6deba2e06a70941860fb1435730576d3689225a421280b7742318d1548b3d22c1f66ab68e414f346a9542f29240bc955b6332c5b11e561077583bc - languageName: node - linkType: hard - -"@types/serve-index@npm:^1.9.1": - version: 1.9.1 - resolution: "@types/serve-index@npm:1.9.1" - dependencies: - "@types/express": "*" - checksum: 026f3995fb500f6df7c3fe5009e53bad6d739e20b84089f58ebfafb2f404bbbb6162bbe33f72d2f2af32d5b8d3799c8e179793f90d9ed5871fb8591190bb6056 - languageName: node - linkType: hard - -"@types/serve-static@npm:*, @types/serve-static@npm:^1.13.10": - version: 1.15.0 - resolution: "@types/serve-static@npm:1.15.0" - dependencies: - "@types/mime": "*" - "@types/node": "*" - checksum: b6ac93d471fb0f53ddcac1f9b67572a09cd62806f7db5855244b28f6f421139626f24799392566e97d1ffc61b12f9de7f30380c39fcae3c8a161fe161d44edf2 - languageName: node - linkType: hard - -"@types/sockjs@npm:^0.3.33": - version: 0.3.33 - resolution: "@types/sockjs@npm:0.3.33" - dependencies: - "@types/node": "*" - checksum: b9bbb2b5c5ead2fb884bb019f61a014e37410bddd295de28184e1b2e71ee6b04120c5ba7b9954617f0bdf962c13d06249ce65004490889c747c80d3f628ea842 - languageName: node - linkType: hard - -"@types/unist@npm:*, @types/unist@npm:^2.0.0, @types/unist@npm:^2.0.2, @types/unist@npm:^2.0.3": - version: 2.0.6 - resolution: "@types/unist@npm:2.0.6" - checksum: 25cb860ff10dde48b54622d58b23e66214211a61c84c0f15f88d38b61aa1b53d4d46e42b557924a93178c501c166aa37e28d7f6d994aba13d24685326272d5db - languageName: node - linkType: hard - -"@types/ws@npm:^8.5.1": - version: 8.5.4 - resolution: "@types/ws@npm:8.5.4" - dependencies: - "@types/node": "*" - checksum: fefbad20d211929bb996285c4e6f699b12192548afedbe4930ab4384f8a94577c9cd421acaad163cacd36b88649509970a05a0b8f20615b30c501ed5269038d1 - languageName: node - linkType: hard - -"@types/yargs-parser@npm:*": - version: 21.0.0 - resolution: "@types/yargs-parser@npm:21.0.0" - checksum: b2f4c8d12ac18a567440379909127cf2cec393daffb73f246d0a25df36ea983b93b7e9e824251f959e9f928cbc7c1aab6728d0a0ff15d6145f66cec2be67d9a2 - languageName: node - linkType: hard - -"@types/yargs@npm:^17.0.8": - version: 17.0.20 - resolution: "@types/yargs@npm:17.0.20" - dependencies: - "@types/yargs-parser": "*" - checksum: dc2edbb0e4b6bfe5189b86c057bb6991139af02372b1d3591083e4ce8f9605b19d598e56413e30f41453733f7a048f732f899cb637f3938f90ed3eb13f23cc90 - languageName: node - linkType: hard - -"@webassemblyjs/ast@npm:1.11.1": - version: 1.11.1 - resolution: "@webassemblyjs/ast@npm:1.11.1" - dependencies: - "@webassemblyjs/helper-numbers": 1.11.1 - "@webassemblyjs/helper-wasm-bytecode": 1.11.1 - checksum: 1eee1534adebeece635362f8e834ae03e389281972611408d64be7895fc49f48f98fddbbb5339bf8a72cb101bcb066e8bca3ca1bf1ef47dadf89def0395a8d87 - languageName: node - linkType: hard - -"@webassemblyjs/floating-point-hex-parser@npm:1.11.1": - version: 1.11.1 - resolution: "@webassemblyjs/floating-point-hex-parser@npm:1.11.1" - checksum: b8efc6fa08e4787b7f8e682182d84dfdf8da9d9c77cae5d293818bc4a55c1f419a87fa265ab85252b3e6c1fd323d799efea68d825d341a7c365c64bc14750e97 - languageName: node - linkType: hard - -"@webassemblyjs/helper-api-error@npm:1.11.1": - version: 1.11.1 - resolution: "@webassemblyjs/helper-api-error@npm:1.11.1" - checksum: 0792813f0ed4a0e5ee0750e8b5d0c631f08e927f4bdfdd9fe9105dc410c786850b8c61bff7f9f515fdfb149903bec3c976a1310573a4c6866a94d49bc7271959 - languageName: node - linkType: hard - -"@webassemblyjs/helper-buffer@npm:1.11.1": - version: 1.11.1 - resolution: "@webassemblyjs/helper-buffer@npm:1.11.1" - checksum: a337ee44b45590c3a30db5a8b7b68a717526cf967ada9f10253995294dbd70a58b2da2165222e0b9830cd4fc6e4c833bf441a721128d1fe2e9a7ab26b36003ce - languageName: node - linkType: hard - -"@webassemblyjs/helper-numbers@npm:1.11.1": - version: 1.11.1 - resolution: "@webassemblyjs/helper-numbers@npm:1.11.1" - dependencies: - "@webassemblyjs/floating-point-hex-parser": 1.11.1 - "@webassemblyjs/helper-api-error": 1.11.1 - "@xtuc/long": 4.2.2 - checksum: 44d2905dac2f14d1e9b5765cf1063a0fa3d57295c6d8930f6c59a36462afecc6e763e8a110b97b342a0f13376166c5d41aa928e6ced92e2f06b071fd0db59d3a - languageName: node - linkType: hard - -"@webassemblyjs/helper-wasm-bytecode@npm:1.11.1": - version: 1.11.1 - resolution: "@webassemblyjs/helper-wasm-bytecode@npm:1.11.1" - checksum: eac400113127832c88f5826bcc3ad1c0db9b3dbd4c51a723cfdb16af6bfcbceb608170fdaac0ab7731a7e18b291be7af68a47fcdb41cfe0260c10857e7413d97 - languageName: node - linkType: hard - -"@webassemblyjs/helper-wasm-section@npm:1.11.1": - version: 1.11.1 - resolution: "@webassemblyjs/helper-wasm-section@npm:1.11.1" - dependencies: - "@webassemblyjs/ast": 1.11.1 - "@webassemblyjs/helper-buffer": 1.11.1 - "@webassemblyjs/helper-wasm-bytecode": 1.11.1 - "@webassemblyjs/wasm-gen": 1.11.1 - checksum: 617696cfe8ecaf0532763162aaf748eb69096fb27950219bb87686c6b2e66e11cd0614d95d319d0ab1904bc14ebe4e29068b12c3e7c5e020281379741fe4bedf - languageName: node - linkType: hard - -"@webassemblyjs/ieee754@npm:1.11.1": - version: 1.11.1 - resolution: "@webassemblyjs/ieee754@npm:1.11.1" - dependencies: - "@xtuc/ieee754": ^1.2.0 - checksum: 23a0ac02a50f244471631802798a816524df17e56b1ef929f0c73e3cde70eaf105a24130105c60aff9d64a24ce3b640dad443d6f86e5967f922943a7115022ec - languageName: node - linkType: hard - -"@webassemblyjs/leb128@npm:1.11.1": - version: 1.11.1 - resolution: "@webassemblyjs/leb128@npm:1.11.1" - dependencies: - "@xtuc/long": 4.2.2 - checksum: 33ccc4ade2f24de07bf31690844d0b1ad224304ee2062b0e464a610b0209c79e0b3009ac190efe0e6bd568b0d1578d7c3047fc1f9d0197c92fc061f56224ff4a - languageName: node - linkType: hard - -"@webassemblyjs/utf8@npm:1.11.1": - version: 1.11.1 - resolution: "@webassemblyjs/utf8@npm:1.11.1" - checksum: 972c5cfc769d7af79313a6bfb96517253a270a4bf0c33ba486aa43cac43917184fb35e51dfc9e6b5601548cd5931479a42e42c89a13bb591ffabebf30c8a6a0b - languageName: node - linkType: hard - -"@webassemblyjs/wasm-edit@npm:1.11.1": - version: 1.11.1 - resolution: "@webassemblyjs/wasm-edit@npm:1.11.1" - dependencies: - "@webassemblyjs/ast": 1.11.1 - "@webassemblyjs/helper-buffer": 1.11.1 - "@webassemblyjs/helper-wasm-bytecode": 1.11.1 - "@webassemblyjs/helper-wasm-section": 1.11.1 - "@webassemblyjs/wasm-gen": 1.11.1 - "@webassemblyjs/wasm-opt": 1.11.1 - "@webassemblyjs/wasm-parser": 1.11.1 - "@webassemblyjs/wast-printer": 1.11.1 - checksum: 6d7d9efaec1227e7ef7585a5d7ff0be5f329f7c1c6b6c0e906b18ed2e9a28792a5635e450aca2d136770d0207225f204eff70a4b8fd879d3ac79e1dcc26dbeb9 - languageName: node - linkType: hard - -"@webassemblyjs/wasm-gen@npm:1.11.1": - version: 1.11.1 - resolution: "@webassemblyjs/wasm-gen@npm:1.11.1" - dependencies: - "@webassemblyjs/ast": 1.11.1 - "@webassemblyjs/helper-wasm-bytecode": 1.11.1 - "@webassemblyjs/ieee754": 1.11.1 - "@webassemblyjs/leb128": 1.11.1 - "@webassemblyjs/utf8": 1.11.1 - checksum: 1f6921e640293bf99fb16b21e09acb59b340a79f986c8f979853a0ae9f0b58557534b81e02ea2b4ef11e929d946708533fd0693c7f3712924128fdafd6465f5b - languageName: node - linkType: hard - -"@webassemblyjs/wasm-opt@npm:1.11.1": - version: 1.11.1 - resolution: "@webassemblyjs/wasm-opt@npm:1.11.1" - dependencies: - "@webassemblyjs/ast": 1.11.1 - "@webassemblyjs/helper-buffer": 1.11.1 - "@webassemblyjs/wasm-gen": 1.11.1 - "@webassemblyjs/wasm-parser": 1.11.1 - checksum: 21586883a20009e2b20feb67bdc451bbc6942252e038aae4c3a08e6f67b6bae0f5f88f20bfc7bd0452db5000bacaf5ab42b98cf9aa034a6c70e9fc616142e1db - languageName: node - linkType: hard - -"@webassemblyjs/wasm-parser@npm:1.11.1": - version: 1.11.1 - resolution: "@webassemblyjs/wasm-parser@npm:1.11.1" - dependencies: - "@webassemblyjs/ast": 1.11.1 - "@webassemblyjs/helper-api-error": 1.11.1 - "@webassemblyjs/helper-wasm-bytecode": 1.11.1 - "@webassemblyjs/ieee754": 1.11.1 - "@webassemblyjs/leb128": 1.11.1 - "@webassemblyjs/utf8": 1.11.1 - checksum: 1521644065c360e7b27fad9f4bb2df1802d134dd62937fa1f601a1975cde56bc31a57b6e26408b9ee0228626ff3ba1131ae6f74ffb7d718415b6528c5a6dbfc2 - languageName: node - linkType: hard - -"@webassemblyjs/wast-printer@npm:1.11.1": - version: 1.11.1 - resolution: "@webassemblyjs/wast-printer@npm:1.11.1" - dependencies: - "@webassemblyjs/ast": 1.11.1 - "@xtuc/long": 4.2.2 - checksum: f15ae4c2441b979a3b4fce78f3d83472fb22350c6dc3fd34bfe7c3da108e0b2360718734d961bba20e7716cb8578e964b870da55b035e209e50ec9db0378a3f7 - languageName: node - linkType: hard - -"@xtuc/ieee754@npm:^1.2.0": - version: 1.2.0 - resolution: "@xtuc/ieee754@npm:1.2.0" - checksum: ac56d4ca6e17790f1b1677f978c0c6808b1900a5b138885d3da21732f62e30e8f0d9120fcf8f6edfff5100ca902b46f8dd7c1e3f903728634523981e80e2885a - languageName: node - linkType: hard - -"@xtuc/long@npm:4.2.2": - version: 4.2.2 - resolution: "@xtuc/long@npm:4.2.2" - checksum: 8ed0d477ce3bc9c6fe2bf6a6a2cc316bb9c4127c5a7827bae947fa8ec34c7092395c5a283cc300c05b5fa01cbbfa1f938f410a7bf75db7c7846fea41949989ec - languageName: node - linkType: hard - -"abbrev@npm:^1.0.0": - version: 1.1.1 - resolution: "abbrev@npm:1.1.1" - checksum: a4a97ec07d7ea112c517036882b2ac22f3109b7b19077dc656316d07d308438aac28e4d9746dc4d84bf6b1e75b4a7b0a5f3cb30592419f128ca9a8cee3bcfa17 - languageName: node - linkType: hard - -"accepts@npm:~1.3.4, accepts@npm:~1.3.5, accepts@npm:~1.3.8": - version: 1.3.8 - resolution: "accepts@npm:1.3.8" - dependencies: - mime-types: ~2.1.34 - negotiator: 0.6.3 - checksum: 50c43d32e7b50285ebe84b613ee4a3aa426715a7d131b65b786e2ead0fd76b6b60091b9916d3478a75f11f162628a2139991b6c03ab3f1d9ab7c86075dc8eab4 - languageName: node - linkType: hard - -"acorn-import-assertions@npm:^1.7.6": - version: 1.8.0 - resolution: "acorn-import-assertions@npm:1.8.0" - peerDependencies: - acorn: ^8 - checksum: 5c4cf7c850102ba7ae0eeae0deb40fb3158c8ca5ff15c0bca43b5c47e307a1de3d8ef761788f881343680ea374631ae9e9615ba8876fee5268dbe068c98bcba6 - languageName: node - linkType: hard - -"acorn-walk@npm:^8.0.0": - version: 8.2.0 - resolution: "acorn-walk@npm:8.2.0" - checksum: 1715e76c01dd7b2d4ca472f9c58968516a4899378a63ad5b6c2d668bba8da21a71976c14ec5f5b75f887b6317c4ae0b897ab141c831d741dc76024d8745f1ad1 - languageName: node - linkType: hard - -"acorn@npm:^8.0.4, acorn@npm:^8.5.0, acorn@npm:^8.7.1": - version: 8.8.1 - resolution: "acorn@npm:8.8.1" - bin: - acorn: bin/acorn - checksum: 4079b67283b94935157698831967642f24a075c52ce3feaaaafe095776dfbe15d86a1b33b1e53860fc0d062ed6c83f4284a5c87c85b9ad51853a01173da6097f - languageName: node - linkType: hard - -"address@npm:^1.0.1, address@npm:^1.1.2": - version: 1.2.2 - resolution: "address@npm:1.2.2" - checksum: ace439960c1e3564d8f523aff23a841904bf33a2a7c2e064f7f60a064194075758b9690e65bd9785692a4ef698a998c57eb74d145881a1cecab8ba658ddb1607 - languageName: node - linkType: hard - -"agent-base@npm:6, agent-base@npm:^6.0.2": - version: 6.0.2 - resolution: "agent-base@npm:6.0.2" - dependencies: - debug: 4 - checksum: f52b6872cc96fd5f622071b71ef200e01c7c4c454ee68bc9accca90c98cfb39f2810e3e9aa330435835eedc8c23f4f8a15267f67c6e245d2b33757575bdac49d - languageName: node - linkType: hard - -"agentkeepalive@npm:^4.2.1": - version: 4.2.1 - resolution: "agentkeepalive@npm:4.2.1" - dependencies: - debug: ^4.1.0 - depd: ^1.1.2 - humanize-ms: ^1.2.1 - checksum: 39cb49ed8cf217fd6da058a92828a0a84e0b74c35550f82ee0a10e1ee403c4b78ade7948be2279b188b7a7303f5d396ea2738b134731e464bf28de00a4f72a18 - languageName: node - linkType: hard - -"aggregate-error@npm:^3.0.0": - version: 3.1.0 - resolution: "aggregate-error@npm:3.1.0" - dependencies: - clean-stack: ^2.0.0 - indent-string: ^4.0.0 - checksum: 1101a33f21baa27a2fa8e04b698271e64616b886795fd43c31068c07533c7b3facfcaf4e9e0cab3624bd88f729a592f1c901a1a229c9e490eafce411a8644b79 - languageName: node - linkType: hard - -"ajv-formats@npm:^2.1.1": - version: 2.1.1 - resolution: "ajv-formats@npm:2.1.1" - dependencies: - ajv: ^8.0.0 - peerDependencies: - ajv: ^8.0.0 - peerDependenciesMeta: - ajv: - optional: true - checksum: 4a287d937f1ebaad4683249a4c40c0fa3beed30d9ddc0adba04859026a622da0d317851316ea64b3680dc60f5c3c708105ddd5d5db8fe595d9d0207fd19f90b7 - languageName: node - linkType: hard - -"ajv-keywords@npm:^3.4.1, ajv-keywords@npm:^3.5.2": - version: 3.5.2 - resolution: "ajv-keywords@npm:3.5.2" - peerDependencies: - ajv: ^6.9.1 - checksum: 7dc5e5931677a680589050f79dcbe1fefbb8fea38a955af03724229139175b433c63c68f7ae5f86cf8f65d55eb7c25f75a046723e2e58296707617ca690feae9 - languageName: node - linkType: hard - -"ajv-keywords@npm:^5.0.0": - version: 5.1.0 - resolution: "ajv-keywords@npm:5.1.0" - dependencies: - fast-deep-equal: ^3.1.3 - peerDependencies: - ajv: ^8.8.2 - checksum: c35193940b853119242c6757787f09ecf89a2c19bcd36d03ed1a615e710d19d450cb448bfda407b939aba54b002368c8bff30529cc50a0536a8e10bcce300421 - languageName: node - linkType: hard - -"ajv@npm:^6.12.2, ajv@npm:^6.12.4, ajv@npm:^6.12.5": - version: 6.12.6 - resolution: "ajv@npm:6.12.6" - dependencies: - fast-deep-equal: ^3.1.1 - fast-json-stable-stringify: ^2.0.0 - json-schema-traverse: ^0.4.1 - uri-js: ^4.2.2 - checksum: 874972efe5c4202ab0a68379481fbd3d1b5d0a7bd6d3cc21d40d3536ebff3352a2a1fabb632d4fd2cc7fe4cbdcd5ed6782084c9bbf7f32a1536d18f9da5007d4 - languageName: node - linkType: hard - -"ajv@npm:^8.0.0, ajv@npm:^8.8.0": - version: 8.12.0 - resolution: "ajv@npm:8.12.0" - dependencies: - fast-deep-equal: ^3.1.1 - json-schema-traverse: ^1.0.0 - require-from-string: ^2.0.2 - uri-js: ^4.2.2 - checksum: 4dc13714e316e67537c8b31bc063f99a1d9d9a497eb4bbd55191ac0dcd5e4985bbb71570352ad6f1e76684fb6d790928f96ba3b2d4fd6e10024be9612fe3f001 - languageName: node - linkType: hard - -"algoliasearch-helper@npm:^3.10.0": - version: 3.11.2 - resolution: "algoliasearch-helper@npm:3.11.2" - dependencies: - "@algolia/events": ^4.0.1 - peerDependencies: - algoliasearch: ">= 3.1 < 6" - checksum: ea48adec8b8ce5bef2106e07ffda36217bb64ce2723b356850c5d7b10d4101e69062b857bcfdf9a87132522c7a857ccc7df913a66083600d683d814988a70d25 - languageName: node - linkType: hard - -"algoliasearch@npm:^4.0.0, algoliasearch@npm:^4.13.1": - version: 4.14.3 - resolution: "algoliasearch@npm:4.14.3" - dependencies: - "@algolia/cache-browser-local-storage": 4.14.3 - "@algolia/cache-common": 4.14.3 - "@algolia/cache-in-memory": 4.14.3 - "@algolia/client-account": 4.14.3 - "@algolia/client-analytics": 4.14.3 - "@algolia/client-common": 4.14.3 - "@algolia/client-personalization": 4.14.3 - "@algolia/client-search": 4.14.3 - "@algolia/logger-common": 4.14.3 - "@algolia/logger-console": 4.14.3 - "@algolia/requester-browser-xhr": 4.14.3 - "@algolia/requester-common": 4.14.3 - "@algolia/requester-node-http": 4.14.3 - "@algolia/transporter": 4.14.3 - checksum: bcb8ccc3e1199d79d67ea96b9fd496be0a31eb3cacb2acee75a8471f27f13c836e17ab45a00875f4a2f0ba8e300c986cdbdbe7aafd363415c7242bc6636f16a9 - languageName: node - linkType: hard - -"ansi-align@npm:^3.0.0, ansi-align@npm:^3.0.1": - version: 3.0.1 - resolution: "ansi-align@npm:3.0.1" - dependencies: - string-width: ^4.1.0 - checksum: 6abfa08f2141d231c257162b15292467081fa49a208593e055c866aa0455b57f3a86b5a678c190c618faa79b4c59e254493099cb700dd9cf2293c6be2c8f5d8d - languageName: node - linkType: hard - -"ansi-html-community@npm:^0.0.8": - version: 0.0.8 - resolution: "ansi-html-community@npm:0.0.8" - bin: - ansi-html: bin/ansi-html - checksum: 04c568e8348a636963f915e48eaa3e01218322e1169acafdd79c384f22e5558c003f79bbc480c1563865497482817c7eed025f0653ebc17642fededa5cb42089 - languageName: node - linkType: hard - -"ansi-regex@npm:^5.0.1": - version: 5.0.1 - resolution: "ansi-regex@npm:5.0.1" - checksum: 2aa4bb54caf2d622f1afdad09441695af2a83aa3fe8b8afa581d205e57ed4261c183c4d3877cee25794443fde5876417d859c108078ab788d6af7e4fe52eb66b - languageName: node - linkType: hard - -"ansi-regex@npm:^6.0.1": - version: 6.0.1 - resolution: "ansi-regex@npm:6.0.1" - checksum: 1ff8b7667cded1de4fa2c9ae283e979fc87036864317da86a2e546725f96406746411d0d85e87a2d12fa5abd715d90006de7fa4fa0477c92321ad3b4c7d4e169 - languageName: node - linkType: hard - -"ansi-styles@npm:^3.2.1": - version: 3.2.1 - resolution: "ansi-styles@npm:3.2.1" - dependencies: - color-convert: ^1.9.0 - checksum: d85ade01c10e5dd77b6c89f34ed7531da5830d2cb5882c645f330079975b716438cd7ebb81d0d6e6b4f9c577f19ae41ab55f07f19786b02f9dfd9e0377395665 - languageName: node - linkType: hard - -"ansi-styles@npm:^4.0.0, ansi-styles@npm:^4.1.0": - version: 4.3.0 - resolution: "ansi-styles@npm:4.3.0" - dependencies: - color-convert: ^2.0.1 - checksum: 513b44c3b2105dd14cc42a19271e80f386466c4be574bccf60b627432f9198571ebf4ab1e4c3ba17347658f4ee1711c163d574248c0c1cdc2d5917a0ad582ec4 - languageName: node - linkType: hard - -"ansi-styles@npm:^6.1.0": - version: 6.2.1 - resolution: "ansi-styles@npm:6.2.1" - checksum: ef940f2f0ced1a6347398da88a91da7930c33ecac3c77b72c5905f8b8fe402c52e6fde304ff5347f616e27a742da3f1dc76de98f6866c69251ad0b07a66776d9 - languageName: node - linkType: hard - -"anymatch@npm:~3.1.2": - version: 3.1.3 - resolution: "anymatch@npm:3.1.3" - dependencies: - normalize-path: ^3.0.0 - picomatch: ^2.0.4 - checksum: 3e044fd6d1d26545f235a9fe4d7a534e2029d8e59fa7fd9f2a6eb21230f6b5380ea1eaf55136e60cbf8e613544b3b766e7a6fa2102e2a3a117505466e3025dc2 - languageName: node - linkType: hard - -"aproba@npm:^1.0.3 || ^2.0.0": - version: 2.0.0 - resolution: "aproba@npm:2.0.0" - checksum: 5615cadcfb45289eea63f8afd064ab656006361020e1735112e346593856f87435e02d8dcc7ff0d11928bc7d425f27bc7c2a84f6c0b35ab0ff659c814c138a24 - languageName: node - linkType: hard - -"are-we-there-yet@npm:^3.0.0": - version: 3.0.1 - resolution: "are-we-there-yet@npm:3.0.1" - dependencies: - delegates: ^1.0.0 - readable-stream: ^3.6.0 - checksum: 52590c24860fa7173bedeb69a4c05fb573473e860197f618b9a28432ee4379049336727ae3a1f9c4cb083114601c1140cee578376164d0e651217a9843f9fe83 - languageName: node - linkType: hard - -"arg@npm:^5.0.0": - version: 5.0.2 - resolution: "arg@npm:5.0.2" - checksum: 6c69ada1a9943d332d9e5382393e897c500908d91d5cb735a01120d5f71daf1b339b7b8980cbeaba8fd1afc68e658a739746179e4315a26e8a28951ff9930078 - languageName: node - linkType: hard - -"argparse@npm:^1.0.7": - version: 1.0.10 - resolution: "argparse@npm:1.0.10" - dependencies: - sprintf-js: ~1.0.2 - checksum: 7ca6e45583a28de7258e39e13d81e925cfa25d7d4aacbf806a382d3c02fcb13403a07fb8aeef949f10a7cfe4a62da0e2e807b348a5980554cc28ee573ef95945 - languageName: node - linkType: hard - -"argparse@npm:^2.0.1": - version: 2.0.1 - resolution: "argparse@npm:2.0.1" - checksum: 83644b56493e89a254bae05702abf3a1101b4fa4d0ca31df1c9985275a5a5bd47b3c27b7fa0b71098d41114d8ca000e6ed90cad764b306f8a503665e4d517ced - languageName: node - linkType: hard - -"array-flatten@npm:1.1.1": - version: 1.1.1 - resolution: "array-flatten@npm:1.1.1" - checksum: a9925bf3512d9dce202112965de90c222cd59a4fbfce68a0951d25d965cf44642931f40aac72309c41f12df19afa010ecadceb07cfff9ccc1621e99d89ab5f3b - languageName: node - linkType: hard - -"array-flatten@npm:^2.1.2": - version: 2.1.2 - resolution: "array-flatten@npm:2.1.2" - checksum: e8988aac1fbfcdaae343d08c9a06a6fddd2c6141721eeeea45c3cf523bf4431d29a46602929455ed548c7a3e0769928cdc630405427297e7081bd118fdec9262 - languageName: node - linkType: hard - -"array-union@npm:^2.1.0": - version: 2.1.0 - resolution: "array-union@npm:2.1.0" - checksum: 5bee12395cba82da674931df6d0fea23c4aa4660cb3b338ced9f828782a65caa232573e6bf3968f23e0c5eb301764a382cef2f128b170a9dc59de0e36c39f98d - languageName: node - linkType: hard - -"asap@npm:~2.0.3": - version: 2.0.6 - resolution: "asap@npm:2.0.6" - checksum: b296c92c4b969e973260e47523207cd5769abd27c245a68c26dc7a0fe8053c55bb04360237cb51cab1df52be939da77150ace99ad331fb7fb13b3423ed73ff3d - languageName: node - linkType: hard - -"asynckit@npm:^0.4.0": - version: 0.4.0 - resolution: "asynckit@npm:0.4.0" - checksum: 7b78c451df768adba04e2d02e63e2d0bf3b07adcd6e42b4cf665cb7ce899bedd344c69a1dcbce355b5f972d597b25aaa1c1742b52cffd9caccb22f348114f6be - languageName: node - linkType: hard - -"at-least-node@npm:^1.0.0": - version: 1.0.0 - resolution: "at-least-node@npm:1.0.0" - checksum: 463e2f8e43384f1afb54bc68485c436d7622acec08b6fad269b421cb1d29cebb5af751426793d0961ed243146fe4dc983402f6d5a51b720b277818dbf6f2e49e - languageName: node - linkType: hard - -"autoprefixer@npm:^10.4.12, autoprefixer@npm:^10.4.7": - version: 10.4.13 - resolution: "autoprefixer@npm:10.4.13" - dependencies: - browserslist: ^4.21.4 - caniuse-lite: ^1.0.30001426 - fraction.js: ^4.2.0 - normalize-range: ^0.1.2 - picocolors: ^1.0.0 - postcss-value-parser: ^4.2.0 - peerDependencies: - postcss: ^8.1.0 - bin: - autoprefixer: bin/autoprefixer - checksum: dcb1cb7ae96a3363d65d82e52f9a0a7d8c982256f6fd032d7e1ec311f099c23acfebfd517ff8e96bf93f716a66c4ea2b80c60aa19efd2f474ce434bd75ef7b79 - languageName: node - linkType: hard - -"awilix@npm:^7.0.3": - version: 7.0.3 - resolution: "awilix@npm:7.0.3" - dependencies: - camel-case: ^4.1.2 - fast-glob: ^3.2.11 - checksum: 2f4251753a60a19a46c4af2fcbba3ea3e062506aea529375e76cd11a29c9231bffd8b352794e8ed7a3710d6a9975fa09889e18dce32f25461cf769cce21197b6 - languageName: node - linkType: hard - -"axios@npm:^0.25.0": - version: 0.25.0 - resolution: "axios@npm:0.25.0" - dependencies: - follow-redirects: ^1.14.7 - checksum: 2a8a3787c05f2a0c9c3878f49782357e2a9f38945b93018fb0c4fd788171c43dceefbb577988628e09fea53952744d1ecebde234b561f1e703aa43e0a598a3ad - languageName: node - linkType: hard - -"axios@npm:^0.27.2": - version: 0.27.2 - resolution: "axios@npm:0.27.2" - dependencies: - follow-redirects: ^1.14.9 - form-data: ^4.0.0 - checksum: 38cb7540465fe8c4102850c4368053c21683af85c5fdf0ea619f9628abbcb59415d1e22ebc8a6390d2bbc9b58a9806c874f139767389c862ec9b772235f06854 - languageName: node - linkType: hard - -"babel-loader@npm:^8.2.5": - version: 8.3.0 - resolution: "babel-loader@npm:8.3.0" - dependencies: - find-cache-dir: ^3.3.1 - loader-utils: ^2.0.0 - make-dir: ^3.1.0 - schema-utils: ^2.6.5 - peerDependencies: - "@babel/core": ^7.0.0 - webpack: ">=2" - checksum: d48bcf9e030e598656ad3ff5fb85967db2eaaf38af5b4a4b99d25618a2057f9f100e6b231af2a46c1913206db506115ca7a8cbdf52c9c73d767070dae4352ab5 - languageName: node - linkType: hard - -"babel-plugin-apply-mdx-type-prop@npm:1.6.22": - version: 1.6.22 - resolution: "babel-plugin-apply-mdx-type-prop@npm:1.6.22" - dependencies: - "@babel/helper-plugin-utils": 7.10.4 - "@mdx-js/util": 1.6.22 - peerDependencies: - "@babel/core": ^7.11.6 - checksum: 43e2100164a8f3e46fddd76afcbfb1f02cbebd5612cfe63f3d344a740b0afbdc4d2bf5659cffe9323dd2554c7b86b23ebedae9dadcec353b6594f4292a1a28e2 - languageName: node - linkType: hard - -"babel-plugin-dynamic-import-node@npm:^2.3.3": - version: 2.3.3 - resolution: "babel-plugin-dynamic-import-node@npm:2.3.3" - dependencies: - object.assign: ^4.1.0 - checksum: c9d24415bcc608d0db7d4c8540d8002ac2f94e2573d2eadced137a29d9eab7e25d2cbb4bc6b9db65cf6ee7430f7dd011d19c911a9a778f0533b4a05ce8292c9b - languageName: node - linkType: hard - -"babel-plugin-extract-import-names@npm:1.6.22": - version: 1.6.22 - resolution: "babel-plugin-extract-import-names@npm:1.6.22" - dependencies: - "@babel/helper-plugin-utils": 7.10.4 - checksum: 145ccf09c96d36411d340e78086555f8d4d5924ea39fcb0eca461c066cfa98bc4344982bb35eb85d054ef88f8d4dfc0205ba27370c1d8fcc78191b02908d044d - languageName: node - linkType: hard - -"babel-plugin-polyfill-corejs2@npm:^0.3.3": - version: 0.3.3 - resolution: "babel-plugin-polyfill-corejs2@npm:0.3.3" - dependencies: - "@babel/compat-data": ^7.17.7 - "@babel/helper-define-polyfill-provider": ^0.3.3 - semver: ^6.1.1 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 7db3044993f3dddb3cc3d407bc82e640964a3bfe22de05d90e1f8f7a5cb71460011ab136d3c03c6c1ba428359ebf635688cd6205e28d0469bba221985f5c6179 - languageName: node - linkType: hard - -"babel-plugin-polyfill-corejs3@npm:^0.6.0": - version: 0.6.0 - resolution: "babel-plugin-polyfill-corejs3@npm:0.6.0" - dependencies: - "@babel/helper-define-polyfill-provider": ^0.3.3 - core-js-compat: ^3.25.1 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 470bb8c59f7c0912bd77fe1b5a2e72f349b3f65bbdee1d60d6eb7e1f4a085c6f24b2dd5ab4ac6c2df6444a96b070ef6790eccc9edb6a2668c60d33133bfb62c6 - languageName: node - linkType: hard - -"babel-plugin-polyfill-regenerator@npm:^0.4.1": - version: 0.4.1 - resolution: "babel-plugin-polyfill-regenerator@npm:0.4.1" - dependencies: - "@babel/helper-define-polyfill-provider": ^0.3.3 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: ab0355efbad17d29492503230387679dfb780b63b25408990d2e4cf421012dae61d6199ddc309f4d2409ce4e9d3002d187702700dd8f4f8770ebbba651ed066c - languageName: node - linkType: hard - -"bail@npm:^1.0.0": - version: 1.0.5 - resolution: "bail@npm:1.0.5" - checksum: 6c334940d7eaa4e656a12fb12407b6555649b6deb6df04270fa806e0da82684ebe4a4e47815b271c794b40f8d6fa286e0c248b14ddbabb324a917fab09b7301a - languageName: node - linkType: hard - -"balanced-match@npm:^1.0.0": - version: 1.0.2 - resolution: "balanced-match@npm:1.0.2" - checksum: 9706c088a283058a8a99e0bf91b0a2f75497f185980d9ffa8b304de1d9e58ebda7c72c07ebf01dadedaac5b2907b2c6f566f660d62bd336c3468e960403b9d65 - languageName: node - linkType: hard - -"base16@npm:^1.0.0": - version: 1.0.0 - resolution: "base16@npm:1.0.0" - checksum: 0cd449a2db0f0f957e4b6b57e33bc43c9e20d4f1dd744065db94b5da35e8e71fa4dc4bc7a901e59a84d5f8b6936e3c520e2471787f667fc155fb0f50d8540f5d - languageName: node - linkType: hard - -"base64-js@npm:^1.3.1": - version: 1.5.1 - resolution: "base64-js@npm:1.5.1" - checksum: 669632eb3745404c2f822a18fc3a0122d2f9a7a13f7fb8b5823ee19d1d2ff9ee5b52c53367176ea4ad093c332fd5ab4bd0ebae5a8e27917a4105a4cfc86b1005 - languageName: node - linkType: hard - -"batch@npm:0.6.1": - version: 0.6.1 - resolution: "batch@npm:0.6.1" - checksum: 61f9934c7378a51dce61b915586191078ef7f1c3eca707fdd58b96ff2ff56d9e0af2bdab66b1462301a73c73374239e6542d9821c0af787f3209a23365d07e7f - languageName: node - linkType: hard - -"big.js@npm:^5.2.2": - version: 5.2.2 - resolution: "big.js@npm:5.2.2" - checksum: b89b6e8419b097a8fb4ed2399a1931a68c612bce3cfd5ca8c214b2d017531191070f990598de2fc6f3f993d91c0f08aa82697717f6b3b8732c9731866d233c9e - languageName: node - linkType: hard - -"binary-extensions@npm:^2.0.0": - version: 2.2.0 - resolution: "binary-extensions@npm:2.2.0" - checksum: ccd267956c58d2315f5d3ea6757cf09863c5fc703e50fbeb13a7dc849b812ef76e3cf9ca8f35a0c48498776a7478d7b4a0418e1e2b8cb9cb9731f2922aaad7f8 - languageName: node - linkType: hard - -"bl@npm:^4.1.0": - version: 4.1.0 - resolution: "bl@npm:4.1.0" - dependencies: - buffer: ^5.5.0 - inherits: ^2.0.4 - readable-stream: ^3.4.0 - checksum: 9e8521fa7e83aa9427c6f8ccdcba6e8167ef30cc9a22df26effcc5ab682ef91d2cbc23a239f945d099289e4bbcfae7a192e9c28c84c6202e710a0dfec3722662 - languageName: node - linkType: hard - -"body-parser@npm:1.20.1": - version: 1.20.1 - resolution: "body-parser@npm:1.20.1" - dependencies: - bytes: 3.1.2 - content-type: ~1.0.4 - debug: 2.6.9 - depd: 2.0.0 - destroy: 1.2.0 - http-errors: 2.0.0 - iconv-lite: 0.4.24 - on-finished: 2.4.1 - qs: 6.11.0 - raw-body: 2.5.1 - type-is: ~1.6.18 - unpipe: 1.0.0 - checksum: f1050dbac3bede6a78f0b87947a8d548ce43f91ccc718a50dd774f3c81f2d8b04693e52acf62659fad23101827dd318da1fb1363444ff9a8482b886a3e4a5266 - languageName: node - linkType: hard - -"bonjour-service@npm:^1.0.11": - version: 1.1.0 - resolution: "bonjour-service@npm:1.1.0" - dependencies: - array-flatten: ^2.1.2 - dns-equal: ^1.0.0 - fast-deep-equal: ^3.1.3 - multicast-dns: ^7.2.5 - checksum: c0cdf6f6438ef4873ffd17768a9e62300ca30ac2bc3437bcfb6c75a3efd70ad80418c38ec19af2f5fe3a9f1dee725b83ff8e0c4a473b1b9f1718a39033b34cbf - languageName: node - linkType: hard - -"boolbase@npm:^1.0.0": - version: 1.0.0 - resolution: "boolbase@npm:1.0.0" - checksum: 3e25c80ef626c3a3487c73dbfc70ac322ec830666c9ad915d11b701142fab25ec1e63eff2c450c74347acfd2de854ccde865cd79ef4db1683f7c7b046ea43bb0 - languageName: node - linkType: hard - -"boxen@npm:^5.0.0": - version: 5.1.2 - resolution: "boxen@npm:5.1.2" - dependencies: - ansi-align: ^3.0.0 - camelcase: ^6.2.0 - chalk: ^4.1.0 - cli-boxes: ^2.2.1 - string-width: ^4.2.2 - type-fest: ^0.20.2 - widest-line: ^3.1.0 - wrap-ansi: ^7.0.0 - checksum: 82d03e42a72576ff235123f17b7c505372fe05c83f75f61e7d4fa4bcb393897ec95ce766fecb8f26b915f0f7a7227d66e5ec7cef43f5b2bd9d3aeed47ec55877 - languageName: node - linkType: hard - -"boxen@npm:^6.2.1": - version: 6.2.1 - resolution: "boxen@npm:6.2.1" - dependencies: - ansi-align: ^3.0.1 - camelcase: ^6.2.0 - chalk: ^4.1.2 - cli-boxes: ^3.0.0 - string-width: ^5.0.1 - type-fest: ^2.5.0 - widest-line: ^4.0.1 - wrap-ansi: ^8.0.1 - checksum: 2b3226092f1ff8e149c02979098c976552afa15f9e0231c9ed2dfcaaf84604494d16a6f13b647f718439f64d3140a088e822d47c7db00d2266e9ffc8d7321774 - languageName: node - linkType: hard - -"brace-expansion@npm:^1.1.7": - version: 1.1.11 - resolution: "brace-expansion@npm:1.1.11" - dependencies: - balanced-match: ^1.0.0 - concat-map: 0.0.1 - checksum: faf34a7bb0c3fcf4b59c7808bc5d2a96a40988addf2e7e09dfbb67a2251800e0d14cd2bfc1aa79174f2f5095c54ff27f46fb1289fe2d77dac755b5eb3434cc07 - languageName: node - linkType: hard - -"brace-expansion@npm:^2.0.1": - version: 2.0.1 - resolution: "brace-expansion@npm:2.0.1" - dependencies: - balanced-match: ^1.0.0 - checksum: a61e7cd2e8a8505e9f0036b3b6108ba5e926b4b55089eeb5550cd04a471fe216c96d4fe7e4c7f995c728c554ae20ddfc4244cad10aef255e72b62930afd233d1 - languageName: node - linkType: hard - -"braces@npm:^3.0.2, braces@npm:~3.0.2": - version: 3.0.2 - resolution: "braces@npm:3.0.2" - dependencies: - fill-range: ^7.0.1 - checksum: e2a8e769a863f3d4ee887b5fe21f63193a891c68b612ddb4b68d82d1b5f3ff9073af066c343e9867a393fe4c2555dcb33e89b937195feb9c1613d259edfcd459 - languageName: node - linkType: hard - -"browserslist@npm:^4.0.0, browserslist@npm:^4.14.5, browserslist@npm:^4.16.6, browserslist@npm:^4.18.1, browserslist@npm:^4.21.3, browserslist@npm:^4.21.4": - version: 4.21.4 - resolution: "browserslist@npm:4.21.4" - dependencies: - caniuse-lite: ^1.0.30001400 - electron-to-chromium: ^1.4.251 - node-releases: ^2.0.6 - update-browserslist-db: ^1.0.9 - bin: - browserslist: cli.js - checksum: 4af3793704dbb4615bcd29059ab472344dc7961c8680aa6c4bb84f05340e14038d06a5aead58724eae69455b8fade8b8c69f1638016e87e5578969d74c078b79 - languageName: node - linkType: hard - -"buffer-from@npm:^1.0.0": - version: 1.1.2 - resolution: "buffer-from@npm:1.1.2" - checksum: 0448524a562b37d4d7ed9efd91685a5b77a50672c556ea254ac9a6d30e3403a517d8981f10e565db24e8339413b43c97ca2951f10e399c6125a0d8911f5679bb - languageName: node - linkType: hard - -"buffer@npm:^5.5.0": - version: 5.7.1 - resolution: "buffer@npm:5.7.1" - dependencies: - base64-js: ^1.3.1 - ieee754: ^1.1.13 - checksum: e2cf8429e1c4c7b8cbd30834ac09bd61da46ce35f5c22a78e6c2f04497d6d25541b16881e30a019c6fd3154150650ccee27a308eff3e26229d788bbdeb08ab84 - languageName: node - linkType: hard - -"bytes@npm:3.0.0": - version: 3.0.0 - resolution: "bytes@npm:3.0.0" - checksum: a2b386dd8188849a5325f58eef69c3b73c51801c08ffc6963eddc9be244089ba32d19347caf6d145c86f315ae1b1fc7061a32b0c1aa6379e6a719090287ed101 - languageName: node - linkType: hard - -"bytes@npm:3.1.2": - version: 3.1.2 - resolution: "bytes@npm:3.1.2" - checksum: e4bcd3948d289c5127591fbedf10c0b639ccbf00243504e4e127374a15c3bc8eed0d28d4aaab08ff6f1cf2abc0cce6ba3085ed32f4f90e82a5683ce0014e1b6e - languageName: node - linkType: hard - -"cacache@npm:^16.1.0": - version: 16.1.3 - resolution: "cacache@npm:16.1.3" - dependencies: - "@npmcli/fs": ^2.1.0 - "@npmcli/move-file": ^2.0.0 - chownr: ^2.0.0 - fs-minipass: ^2.1.0 - glob: ^8.0.1 - infer-owner: ^1.0.4 - lru-cache: ^7.7.1 - minipass: ^3.1.6 - minipass-collect: ^1.0.2 - minipass-flush: ^1.0.5 - minipass-pipeline: ^1.2.4 - mkdirp: ^1.0.4 - p-map: ^4.0.0 - promise-inflight: ^1.0.1 - rimraf: ^3.0.2 - ssri: ^9.0.0 - tar: ^6.1.11 - unique-filename: ^2.0.0 - checksum: d91409e6e57d7d9a3a25e5dcc589c84e75b178ae8ea7de05cbf6b783f77a5fae938f6e8fda6f5257ed70000be27a681e1e44829251bfffe4c10216002f8f14e6 - languageName: node - linkType: hard - -"cacheable-request@npm:^6.0.0": - version: 6.1.0 - resolution: "cacheable-request@npm:6.1.0" - dependencies: - clone-response: ^1.0.2 - get-stream: ^5.1.0 - http-cache-semantics: ^4.0.0 - keyv: ^3.0.0 - lowercase-keys: ^2.0.0 - normalize-url: ^4.1.0 - responselike: ^1.0.2 - checksum: b510b237b18d17e89942e9ee2d2a077cb38db03f12167fd100932dfa8fc963424bfae0bfa1598df4ae16c944a5484e43e03df8f32105b04395ee9495e9e4e9f1 - languageName: node - linkType: hard - -"call-bind@npm:^1.0.0, call-bind@npm:^1.0.2": - version: 1.0.2 - resolution: "call-bind@npm:1.0.2" - dependencies: - function-bind: ^1.1.1 - get-intrinsic: ^1.0.2 - checksum: f8e31de9d19988a4b80f3e704788c4a2d6b6f3d17cfec4f57dc29ced450c53a49270dc66bf0fbd693329ee948dd33e6c90a329519aef17474a4d961e8d6426b0 - languageName: node - linkType: hard - -"callsites@npm:^3.0.0": - version: 3.1.0 - resolution: "callsites@npm:3.1.0" - checksum: 072d17b6abb459c2ba96598918b55868af677154bec7e73d222ef95a8fdb9bbf7dae96a8421085cdad8cd190d86653b5b6dc55a4484f2e5b2e27d5e0c3fc15b3 - languageName: node - linkType: hard - -"camel-case@npm:^4.1.2": - version: 4.1.2 - resolution: "camel-case@npm:4.1.2" - dependencies: - pascal-case: ^3.1.2 - tslib: ^2.0.3 - checksum: bcbd25cd253b3cbc69be3f535750137dbf2beb70f093bdc575f73f800acc8443d34fd52ab8f0a2413c34f1e8203139ffc88428d8863e4dfe530cfb257a379ad6 - languageName: node - linkType: hard - -"camelcase-css@npm:2.0.1": - version: 2.0.1 - resolution: "camelcase-css@npm:2.0.1" - checksum: 1cec2b3b3dcb5026688a470b00299a8db7d904c4802845c353dbd12d9d248d3346949a814d83bfd988d4d2e5b9904c07efe76fecd195a1d4f05b543e7c0b56b1 - languageName: node - linkType: hard - -"camelcase@npm:^6.2.0": - version: 6.3.0 - resolution: "camelcase@npm:6.3.0" - checksum: 8c96818a9076434998511251dcb2761a94817ea17dbdc37f47ac080bd088fc62c7369429a19e2178b993497132c8cbcf5cc1f44ba963e76782ba469c0474938d - languageName: node - linkType: hard - -"caniuse-api@npm:^3.0.0": - version: 3.0.0 - resolution: "caniuse-api@npm:3.0.0" - dependencies: - browserslist: ^4.0.0 - caniuse-lite: ^1.0.0 - lodash.memoize: ^4.1.2 - lodash.uniq: ^4.5.0 - checksum: db2a229383b20d0529b6b589dde99d7b6cb56ba371366f58cbbfa2929c9f42c01f873e2b6ef641d4eda9f0b4118de77dbb2805814670bdad4234bf08e720b0b4 - languageName: node - linkType: hard - -"caniuse-lite@npm:^1.0.0, caniuse-lite@npm:^1.0.30001400, caniuse-lite@npm:^1.0.30001426": - version: 1.0.30001549 - resolution: "caniuse-lite@npm:1.0.30001549" - checksum: 7f2abeedc8cf8b92cc0613855d71b995ce436068c0bcdd798c5af7d297ccf9f52496b00181beda42d82d25079dd4b6e389c67486156d40d8854e5707a25cb054 - languageName: node - linkType: hard - -"ccount@npm:^1.0.0": - version: 1.1.0 - resolution: "ccount@npm:1.1.0" - checksum: b335a79d0aa4308919cf7507babcfa04ac63d389ebed49dbf26990d4607c8a4713cde93cc83e707d84571ddfe1e7615dad248be9bc422ae4c188210f71b08b78 - languageName: node - linkType: hard - -"chalk@npm:^2.0.0": - version: 2.4.2 - resolution: "chalk@npm:2.4.2" - dependencies: - ansi-styles: ^3.2.1 - escape-string-regexp: ^1.0.5 - supports-color: ^5.3.0 - checksum: ec3661d38fe77f681200f878edbd9448821924e0f93a9cefc0e26a33b145f1027a2084bf19967160d11e1f03bfe4eaffcabf5493b89098b2782c3fe0b03d80c2 - languageName: node - linkType: hard - -"chalk@npm:^4.0.0, chalk@npm:^4.1.0, chalk@npm:^4.1.2": - version: 4.1.2 - resolution: "chalk@npm:4.1.2" - dependencies: - ansi-styles: ^4.1.0 - supports-color: ^7.1.0 - checksum: fe75c9d5c76a7a98d45495b91b2172fa3b7a09e0cc9370e5c8feb1c567b85c4288e2b3fded7cfdd7359ac28d6b3844feb8b82b8686842e93d23c827c417e83fc - languageName: node - linkType: hard - -"character-entities-legacy@npm:^1.0.0": - version: 1.1.4 - resolution: "character-entities-legacy@npm:1.1.4" - checksum: fe03a82c154414da3a0c8ab3188e4237ec68006cbcd681cf23c7cfb9502a0e76cd30ab69a2e50857ca10d984d57de3b307680fff5328ccd427f400e559c3a811 - languageName: node - linkType: hard - -"character-entities@npm:^1.0.0": - version: 1.2.4 - resolution: "character-entities@npm:1.2.4" - checksum: e1545716571ead57beac008433c1ff69517cd8ca5b336889321c5b8ff4a99c29b65589a701e9c086cda8a5e346a67295e2684f6c7ea96819fe85cbf49bf8686d - languageName: node - linkType: hard - -"character-reference-invalid@npm:^1.0.0": - version: 1.1.4 - resolution: "character-reference-invalid@npm:1.1.4" - checksum: 20274574c70e05e2f81135f3b93285536bc8ff70f37f0809b0d17791a832838f1e49938382899ed4cb444e5bbd4314ca1415231344ba29f4222ce2ccf24fea0b - languageName: node - linkType: hard - -"cheerio-select@npm:^2.1.0": - version: 2.1.0 - resolution: "cheerio-select@npm:2.1.0" - dependencies: - boolbase: ^1.0.0 - css-select: ^5.1.0 - css-what: ^6.1.0 - domelementtype: ^2.3.0 - domhandler: ^5.0.3 - domutils: ^3.0.1 - checksum: 843d6d479922f28a6c5342c935aff1347491156814de63c585a6eb73baf7bb4185c1b4383a1195dca0f12e3946d737c7763bcef0b9544c515d905c5c44c5308b - languageName: node - linkType: hard - -"cheerio@npm:^1.0.0-rc.12, cheerio@npm:^1.0.0-rc.3": - version: 1.0.0-rc.12 - resolution: "cheerio@npm:1.0.0-rc.12" - dependencies: - cheerio-select: ^2.1.0 - dom-serializer: ^2.0.0 - domhandler: ^5.0.3 - domutils: ^3.0.1 - htmlparser2: ^8.0.1 - parse5: ^7.0.0 - parse5-htmlparser2-tree-adapter: ^7.0.0 - checksum: 5d4c1b7a53cf22d3a2eddc0aff70cf23cbb30d01a4c79013e703a012475c02461aa1fcd99127e8d83a02216386ed6942b2c8103845fd0812300dd199e6e7e054 - languageName: node - linkType: hard - -"chokidar@npm:^3.4.2, chokidar@npm:^3.5.3": - version: 3.5.3 - resolution: "chokidar@npm:3.5.3" - dependencies: - anymatch: ~3.1.2 - braces: ~3.0.2 - fsevents: ~2.3.2 - glob-parent: ~5.1.2 - is-binary-path: ~2.1.0 - is-glob: ~4.0.1 - normalize-path: ~3.0.0 - readdirp: ~3.6.0 - dependenciesMeta: - fsevents: - optional: true - checksum: b49fcde40176ba007ff361b198a2d35df60d9bb2a5aab228279eb810feae9294a6b4649ab15981304447afe1e6ffbf4788ad5db77235dc770ab777c6e771980c - languageName: node - linkType: hard - -"chownr@npm:^2.0.0": - version: 2.0.0 - resolution: "chownr@npm:2.0.0" - checksum: c57cf9dd0791e2f18a5ee9c1a299ae6e801ff58fee96dc8bfd0dcb4738a6ce58dd252a3605b1c93c6418fe4f9d5093b28ffbf4d66648cb2a9c67eaef9679be2f - languageName: node - linkType: hard - -"chrome-trace-event@npm:^1.0.2": - version: 1.0.3 - resolution: "chrome-trace-event@npm:1.0.3" - checksum: cb8b1fc7e881aaef973bd0c4a43cd353c2ad8323fb471a041e64f7c2dd849cde4aad15f8b753331a32dda45c973f032c8a03b8177fc85d60eaa75e91e08bfb97 - languageName: node - linkType: hard - -"ci-info@npm:^2.0.0": - version: 2.0.0 - resolution: "ci-info@npm:2.0.0" - checksum: 3b374666a85ea3ca43fa49aa3a048d21c9b475c96eb13c133505d2324e7ae5efd6a454f41efe46a152269e9b6a00c9edbe63ec7fa1921957165aae16625acd67 - languageName: node - linkType: hard - -"ci-info@npm:^3.2.0": - version: 3.7.1 - resolution: "ci-info@npm:3.7.1" - checksum: 72d93d5101ea1c186511277fbd8d06ae8a6e028cc2fb94361e92bf735b39c5ebd192e8d15a66ff8c4e3ed569f87c2f844e96f90e141b2de5c649f77ec34ff601 - languageName: node - linkType: hard - -"clean-css@npm:^5.2.2, clean-css@npm:^5.3.0": - version: 5.3.2 - resolution: "clean-css@npm:5.3.2" - dependencies: - source-map: ~0.6.0 - checksum: 8787b281acc9878f309b5f835d410085deedfd4e126472666773040a6a8a72f472a1d24185947d23b87b1c419bf2c5ed429395d5c5ff8279c98b05d8011e9758 - languageName: node - linkType: hard - -"clean-stack@npm:^2.0.0": - version: 2.2.0 - resolution: "clean-stack@npm:2.2.0" - checksum: 2ac8cd2b2f5ec986a3c743935ec85b07bc174d5421a5efc8017e1f146a1cf5f781ae962618f416352103b32c9cd7e203276e8c28241bbe946160cab16149fb68 - languageName: node - linkType: hard - -"cli-boxes@npm:^2.2.1": - version: 2.2.1 - resolution: "cli-boxes@npm:2.2.1" - checksum: be79f8ec23a558b49e01311b39a1ea01243ecee30539c880cf14bf518a12e223ef40c57ead0cb44f509bffdffc5c129c746cd50d863ab879385370112af4f585 - languageName: node - linkType: hard - -"cli-boxes@npm:^3.0.0": - version: 3.0.0 - resolution: "cli-boxes@npm:3.0.0" - checksum: 637d84419d293a9eac40a1c8c96a2859e7d98b24a1a317788e13c8f441be052fc899480c6acab3acc82eaf1bccda6b7542d7cdcf5c9c3cc39227175dc098d5b2 - languageName: node - linkType: hard - -"cli-cursor@npm:^3.1.0": - version: 3.1.0 - resolution: "cli-cursor@npm:3.1.0" - dependencies: - restore-cursor: ^3.1.0 - checksum: 2692784c6cd2fd85cfdbd11f53aea73a463a6d64a77c3e098b2b4697a20443f430c220629e1ca3b195ea5ac4a97a74c2ee411f3807abf6df2b66211fec0c0a29 - languageName: node - linkType: hard - -"cli-spinners@npm:^2.5.0": - version: 2.7.0 - resolution: "cli-spinners@npm:2.7.0" - checksum: a9afaf73f58d1f951fb23742f503631b3cf513f43f4c7acb1b640100eb76bfa16efbcd1994d149ffc6603a6d75dd3d4a516a76f125f90dce437de9b16fd0ee6f - languageName: node - linkType: hard - -"cli-table3@npm:^0.6.2": - version: 0.6.3 - resolution: "cli-table3@npm:0.6.3" - dependencies: - "@colors/colors": 1.5.0 - string-width: ^4.2.0 - dependenciesMeta: - "@colors/colors": - optional: true - checksum: 09897f68467973f827c04e7eaadf13b55f8aec49ecd6647cc276386ea660059322e2dd8020a8b6b84d422dbdd619597046fa89cbbbdc95b2cea149a2df7c096c - languageName: node - linkType: hard - -"clone-deep@npm:^4.0.1": - version: 4.0.1 - resolution: "clone-deep@npm:4.0.1" - dependencies: - is-plain-object: ^2.0.4 - kind-of: ^6.0.2 - shallow-clone: ^3.0.0 - checksum: 770f912fe4e6f21873c8e8fbb1e99134db3b93da32df271d00589ea4a29dbe83a9808a322c93f3bcaf8584b8b4fa6fc269fc8032efbaa6728e0c9886c74467d2 - languageName: node - linkType: hard - -"clone-response@npm:^1.0.2": - version: 1.0.3 - resolution: "clone-response@npm:1.0.3" - dependencies: - mimic-response: ^1.0.0 - checksum: 4e671cac39b11c60aa8ba0a450657194a5d6504df51bca3fac5b3bd0145c4f8e8464898f87c8406b83232e3bc5cca555f51c1f9c8ac023969ebfbf7f6bdabb2e - languageName: node - linkType: hard - -"clone@npm:^1.0.2": - version: 1.0.4 - resolution: "clone@npm:1.0.4" - checksum: d06418b7335897209e77bdd430d04f882189582e67bd1f75a04565f3f07f5b3f119a9d670c943b6697d0afb100f03b866b3b8a1f91d4d02d72c4ecf2bb64b5dd - languageName: node - linkType: hard - -"clsx@npm:^1.1.1, clsx@npm:^1.2.1": - version: 1.2.1 - resolution: "clsx@npm:1.2.1" - checksum: 30befca8019b2eb7dbad38cff6266cf543091dae2825c856a62a8ccf2c3ab9c2907c4d12b288b73101196767f66812365400a227581484a05f968b0307cfaf12 - languageName: node - linkType: hard - -"collapse-white-space@npm:^1.0.2": - version: 1.0.6 - resolution: "collapse-white-space@npm:1.0.6" - checksum: 9673fb797952c5c888341435596c69388b22cd5560c8cd3f40edb72734a9c820f56a7c9525166bcb7068b5d5805372e6fd0c4b9f2869782ad070cb5d3faf26e7 - languageName: node - linkType: hard - -"color-convert@npm:^1.9.0": - version: 1.9.3 - resolution: "color-convert@npm:1.9.3" - dependencies: - color-name: 1.1.3 - checksum: fd7a64a17cde98fb923b1dd05c5f2e6f7aefda1b60d67e8d449f9328b4e53b228a428fd38bfeaeb2db2ff6b6503a776a996150b80cdf224062af08a5c8a3a203 - languageName: node - linkType: hard - -"color-convert@npm:^2.0.1": - version: 2.0.1 - resolution: "color-convert@npm:2.0.1" - dependencies: - color-name: ~1.1.4 - checksum: 79e6bdb9fd479a205c71d89574fccfb22bd9053bd98c6c4d870d65c132e5e904e6034978e55b43d69fcaa7433af2016ee203ce76eeba9cfa554b373e7f7db336 - languageName: node - linkType: hard - -"color-name@npm:1.1.3": - version: 1.1.3 - resolution: "color-name@npm:1.1.3" - checksum: 09c5d3e33d2105850153b14466501f2bfb30324a2f76568a408763a3b7433b0e50e5b4ab1947868e65cb101bb7cb75029553f2c333b6d4b8138a73fcc133d69d - languageName: node - linkType: hard - -"color-name@npm:~1.1.4": - version: 1.1.4 - resolution: "color-name@npm:1.1.4" - checksum: b0445859521eb4021cd0fb0cc1a75cecf67fceecae89b63f62b201cca8d345baf8b952c966862a9d9a2632987d4f6581f0ec8d957dfacece86f0a7919316f610 - languageName: node - linkType: hard - -"color-support@npm:^1.1.3": - version: 1.1.3 - resolution: "color-support@npm:1.1.3" - bin: - color-support: bin.js - checksum: 9b7356817670b9a13a26ca5af1c21615463b500783b739b7634a0c2047c16cef4b2865d7576875c31c3cddf9dd621fa19285e628f20198b233a5cfdda6d0793b - languageName: node - linkType: hard - -"colord@npm:^2.9.1": - version: 2.9.3 - resolution: "colord@npm:2.9.3" - checksum: 95d909bfbcfd8d5605cbb5af56f2d1ce2b323990258fd7c0d2eb0e6d3bb177254d7fb8213758db56bb4ede708964f78c6b992b326615f81a18a6aaf11d64c650 - languageName: node - linkType: hard - -"colorette@npm:^2.0.10": - version: 2.0.19 - resolution: "colorette@npm:2.0.19" - checksum: 888cf5493f781e5fcf54ce4d49e9d7d698f96ea2b2ef67906834bb319a392c667f9ec69f4a10e268d2946d13a9503d2d19b3abaaaf174e3451bfe91fb9d82427 - languageName: node - linkType: hard - -"combine-promises@npm:^1.1.0": - version: 1.1.0 - resolution: "combine-promises@npm:1.1.0" - checksum: 23b55f66d5cea3ddf39608c07f7a96065c7bb7cc4f54c7f217040771262ad97e808b30f7f267c553a9ca95552fc9813fb465232f5d82e190e118b33238186af8 - languageName: node - linkType: hard - -"combined-stream@npm:^1.0.8": - version: 1.0.8 - resolution: "combined-stream@npm:1.0.8" - dependencies: - delayed-stream: ~1.0.0 - checksum: 49fa4aeb4916567e33ea81d088f6584749fc90c7abec76fd516bf1c5aa5c79f3584b5ba3de6b86d26ddd64bae5329c4c7479343250cfe71c75bb366eae53bb7c - languageName: node - linkType: hard - -"comma-separated-tokens@npm:^1.0.0": - version: 1.0.8 - resolution: "comma-separated-tokens@npm:1.0.8" - checksum: 0adcb07174fa4d08cf0f5c8e3aec40a36b5ff0c2c720e5e23f50fe02e6789d1d00a67036c80e0c1e1539f41d3e7f0101b074039dd833b4e4a59031b659d6ca0d - languageName: node - linkType: hard - -"commander@npm:^2.20.0": - version: 2.20.3 - resolution: "commander@npm:2.20.3" - checksum: ab8c07884e42c3a8dbc5dd9592c606176c7eb5c1ca5ff274bcf907039b2c41de3626f684ea75ccf4d361ba004bbaff1f577d5384c155f3871e456bdf27becf9e - languageName: node - linkType: hard - -"commander@npm:^5.1.0": - version: 5.1.0 - resolution: "commander@npm:5.1.0" - checksum: 0b7fec1712fbcc6230fcb161d8d73b4730fa91a21dc089515489402ad78810547683f058e2a9835929c212fead1d6a6ade70db28bbb03edbc2829a9ab7d69447 - languageName: node - linkType: hard - -"commander@npm:^7.2.0": - version: 7.2.0 - resolution: "commander@npm:7.2.0" - checksum: 53501cbeee61d5157546c0bef0fedb6cdfc763a882136284bed9a07225f09a14b82d2a84e7637edfd1a679fb35ed9502fd58ef1d091e6287f60d790147f68ddc - languageName: node - linkType: hard - -"commander@npm:^8.3.0": - version: 8.3.0 - resolution: "commander@npm:8.3.0" - checksum: 0f82321821fc27b83bd409510bb9deeebcfa799ff0bf5d102128b500b7af22872c0c92cb6a0ebc5a4cf19c6b550fba9cedfa7329d18c6442a625f851377bacf0 - languageName: node - linkType: hard - -"commondir@npm:^1.0.1": - version: 1.0.1 - resolution: "commondir@npm:1.0.1" - checksum: 59715f2fc456a73f68826285718503340b9f0dd89bfffc42749906c5cf3d4277ef11ef1cca0350d0e79204f00f1f6d83851ececc9095dc88512a697ac0b9bdcb - languageName: node - linkType: hard - -"compressible@npm:~2.0.16": - version: 2.0.18 - resolution: "compressible@npm:2.0.18" - dependencies: - mime-db: ">= 1.43.0 < 2" - checksum: 58321a85b375d39230405654721353f709d0c1442129e9a17081771b816302a012471a9b8f4864c7dbe02eef7f2aaac3c614795197092262e94b409c9be108f0 - languageName: node - linkType: hard - -"compression@npm:^1.7.4": - version: 1.7.4 - resolution: "compression@npm:1.7.4" - dependencies: - accepts: ~1.3.5 - bytes: 3.0.0 - compressible: ~2.0.16 - debug: 2.6.9 - on-headers: ~1.0.2 - safe-buffer: 5.1.2 - vary: ~1.1.2 - checksum: 35c0f2eb1f28418978615dc1bc02075b34b1568f7f56c62d60f4214d4b7cc00d0f6d282b5f8a954f59872396bd770b6b15ffd8aa94c67d4bce9b8887b906999b - languageName: node - linkType: hard - -"concat-map@npm:0.0.1": - version: 0.0.1 - resolution: "concat-map@npm:0.0.1" - checksum: 902a9f5d8967a3e2faf138d5cb784b9979bad2e6db5357c5b21c568df4ebe62bcb15108af1b2253744844eb964fc023fbd9afbbbb6ddd0bcc204c6fb5b7bf3af - languageName: node - linkType: hard - -"configstore@npm:^5.0.1": - version: 5.0.1 - resolution: "configstore@npm:5.0.1" - dependencies: - dot-prop: ^5.2.0 - graceful-fs: ^4.1.2 - make-dir: ^3.0.0 - unique-string: ^2.0.0 - write-file-atomic: ^3.0.0 - xdg-basedir: ^4.0.0 - checksum: 60ef65d493b63f96e14b11ba7ec072fdbf3d40110a94fb7199d1c287761bdea5c5244e76b2596325f30c1b652213aa75de96ea20afd4a5f82065e61ea090988e - languageName: node - linkType: hard - -"connect-history-api-fallback@npm:^2.0.0": - version: 2.0.0 - resolution: "connect-history-api-fallback@npm:2.0.0" - checksum: dc5368690f4a5c413889792f8df70d5941ca9da44523cde3f87af0745faee5ee16afb8195434550f0504726642734f2683d6c07f8b460f828a12c45fbd4c9a68 - languageName: node - linkType: hard - -"consola@npm:^2.15.3": - version: 2.15.3 - resolution: "consola@npm:2.15.3" - checksum: 8ef7a09b703ec67ac5c389a372a33b6dc97eda6c9876443a60d76a3076eea0259e7f67a4e54fd5a52f97df73690822d090cf8b7e102b5761348afef7c6d03e28 - languageName: node - linkType: hard - -"console-control-strings@npm:^1.1.0": - version: 1.1.0 - resolution: "console-control-strings@npm:1.1.0" - checksum: 8755d76787f94e6cf79ce4666f0c5519906d7f5b02d4b884cf41e11dcd759ed69c57da0670afd9236d229a46e0f9cf519db0cd829c6dca820bb5a5c3def584ed - languageName: node - linkType: hard - -"content-disposition@npm:0.5.2": - version: 0.5.2 - resolution: "content-disposition@npm:0.5.2" - checksum: 298d7da63255a38f7858ee19c7b6aae32b167e911293174b4c1349955e97e78e1d0b0d06c10e229405987275b417cf36ff65cbd4821a98bc9df4e41e9372cde7 - languageName: node - linkType: hard - -"content-disposition@npm:0.5.4": - version: 0.5.4 - resolution: "content-disposition@npm:0.5.4" - dependencies: - safe-buffer: 5.2.1 - checksum: afb9d545e296a5171d7574fcad634b2fdf698875f4006a9dd04a3e1333880c5c0c98d47b560d01216fb6505a54a2ba6a843ee3a02ec86d7e911e8315255f56c3 - languageName: node - linkType: hard - -"content-type@npm:~1.0.4": - version: 1.0.4 - resolution: "content-type@npm:1.0.4" - checksum: 3d93585fda985d1554eca5ebd251994327608d2e200978fdbfba21c0c679914d5faf266d17027de44b34a72c7b0745b18584ecccaa7e1fdfb6a68ac7114f12e0 - languageName: node - linkType: hard - -"convert-source-map@npm:^1.7.0": - version: 1.9.0 - resolution: "convert-source-map@npm:1.9.0" - checksum: dc55a1f28ddd0e9485ef13565f8f756b342f9a46c4ae18b843fe3c30c675d058d6a4823eff86d472f187b176f0adf51ea7b69ea38be34be4a63cbbf91b0593c8 - languageName: node - linkType: hard - -"cookie-signature@npm:1.0.6": - version: 1.0.6 - resolution: "cookie-signature@npm:1.0.6" - checksum: f4e1b0a98a27a0e6e66fd7ea4e4e9d8e038f624058371bf4499cfcd8f3980be9a121486995202ba3fca74fbed93a407d6d54d43a43f96fd28d0bd7a06761591a - languageName: node - linkType: hard - -"cookie@npm:0.5.0": - version: 0.5.0 - resolution: "cookie@npm:0.5.0" - checksum: 1f4bd2ca5765f8c9689a7e8954183f5332139eb72b6ff783d8947032ec1fdf43109852c178e21a953a30c0dd42257828185be01b49d1eb1a67fd054ca588a180 - languageName: node - linkType: hard - -"copy-text-to-clipboard@npm:^3.0.1": - version: 3.0.1 - resolution: "copy-text-to-clipboard@npm:3.0.1" - checksum: 4c301b9a65c8bf337e26a74d28849096651697fac829a364c463df81ba5ddfeea0741214f9f1232832fffd229ebd5659d3abcccea3fe54d7010a22e515cc38bc - languageName: node - linkType: hard - -"copy-webpack-plugin@npm:^11.0.0": - version: 11.0.0 - resolution: "copy-webpack-plugin@npm:11.0.0" - dependencies: - fast-glob: ^3.2.11 - glob-parent: ^6.0.1 - globby: ^13.1.1 - normalize-path: ^3.0.0 - schema-utils: ^4.0.0 - serialize-javascript: ^6.0.0 - peerDependencies: - webpack: ^5.1.0 - checksum: df4f8743f003a29ee7dd3d9b1789998a3a99051c92afb2ba2203d3dacfa696f4e757b275560fafb8f206e520a0aa78af34b990324a0e36c2326cefdeef3ca82e - languageName: node - linkType: hard - -"core-js-compat@npm:^3.25.1": - version: 3.27.2 - resolution: "core-js-compat@npm:3.27.2" - dependencies: - browserslist: ^4.21.4 - checksum: 4574d4507de8cba9a75e37401b3ca6e5908ab066ec717e3b34866d25f623e1aa614fb886e10973be64a6250f325dcba6809e4fae4ed43375cc3e4276c5514c13 - languageName: node - linkType: hard - -"core-js-pure@npm:^3.25.1": - version: 3.27.2 - resolution: "core-js-pure@npm:3.27.2" - checksum: 7cb24502a782a032ffa2af6e84abfcfeffa0c30e84c38f4d0a1d7567c8c86e2d36a7554a00ca47762606c84d2a86d99662a7158e9f4df989f3fe3c7e7c09fa45 - languageName: node - linkType: hard - -"core-js@npm:^3.23.3": - version: 3.27.2 - resolution: "core-js@npm:3.27.2" - checksum: 718debd426f55a6b97cf9b757c936be258afd6d4f7052f89d0f96c982d7013e9000b0b006df42831a0cf32adad298e34d6a19052dce9ae1c7ab87162c0c665e0 - languageName: node - linkType: hard - -"core-util-is@npm:~1.0.0": - version: 1.0.3 - resolution: "core-util-is@npm:1.0.3" - checksum: 9de8597363a8e9b9952491ebe18167e3b36e7707569eed0ebf14f8bba773611376466ae34575bca8cfe3c767890c859c74056084738f09d4e4a6f902b2ad7d99 - languageName: node - linkType: hard - -"cosmiconfig@npm:^6.0.0": - version: 6.0.0 - resolution: "cosmiconfig@npm:6.0.0" - dependencies: - "@types/parse-json": ^4.0.0 - import-fresh: ^3.1.0 - parse-json: ^5.0.0 - path-type: ^4.0.0 - yaml: ^1.7.2 - checksum: 8eed7c854b91643ecb820767d0deb038b50780ecc3d53b0b19e03ed8aabed4ae77271198d1ae3d49c3b110867edf679f5faad924820a8d1774144a87cb6f98fc - languageName: node - linkType: hard - -"cosmiconfig@npm:^7.0.0, cosmiconfig@npm:^7.0.1": - version: 7.1.0 - resolution: "cosmiconfig@npm:7.1.0" - dependencies: - "@types/parse-json": ^4.0.0 - import-fresh: ^3.2.1 - parse-json: ^5.0.0 - path-type: ^4.0.0 - yaml: ^1.10.0 - checksum: c53bf7befc1591b2651a22414a5e786cd5f2eeaa87f3678a3d49d6069835a9d8d1aef223728e98aa8fec9a95bf831120d245096db12abe019fecb51f5696c96f - languageName: node - linkType: hard - -"cross-fetch@npm:^3.1.5": - version: 3.1.5 - resolution: "cross-fetch@npm:3.1.5" - dependencies: - node-fetch: 2.6.7 - checksum: f6b8c6ee3ef993ace6277fd789c71b6acf1b504fd5f5c7128df4ef2f125a429e29cd62dc8c127523f04a5f2fa4771ed80e3f3d9695617f441425045f505cf3bb - languageName: node - linkType: hard - -"cross-spawn@npm:^7.0.3": - version: 7.0.3 - resolution: "cross-spawn@npm:7.0.3" - dependencies: - path-key: ^3.1.0 - shebang-command: ^2.0.0 - which: ^2.0.1 - checksum: 671cc7c7288c3a8406f3c69a3ae2fc85555c04169e9d611def9a675635472614f1c0ed0ef80955d5b6d4e724f6ced67f0ad1bb006c2ea643488fcfef994d7f52 - languageName: node - linkType: hard - -"crypto-random-string@npm:^2.0.0": - version: 2.0.0 - resolution: "crypto-random-string@npm:2.0.0" - checksum: 0283879f55e7c16fdceacc181f87a0a65c53bc16ffe1d58b9d19a6277adcd71900d02bb2c4843dd55e78c51e30e89b0fec618a7f170ebcc95b33182c28f05fd6 - languageName: node - linkType: hard - -"css-declaration-sorter@npm:^6.3.1": - version: 6.3.1 - resolution: "css-declaration-sorter@npm:6.3.1" - peerDependencies: - postcss: ^8.0.9 - checksum: ff0d9989ee21ec4c42430b9bb86c43f973ed5024d68f30edc1e3fb07a22828ce3c3e5b922019f2ccbff606722e43c407c5c76e3cddac523ac4afcb31e4b2601c - languageName: node - linkType: hard - -"css-loader@npm:^6.7.1": - version: 6.7.3 - resolution: "css-loader@npm:6.7.3" - dependencies: - icss-utils: ^5.1.0 - postcss: ^8.4.19 - postcss-modules-extract-imports: ^3.0.0 - postcss-modules-local-by-default: ^4.0.0 - postcss-modules-scope: ^3.0.0 - postcss-modules-values: ^4.0.0 - postcss-value-parser: ^4.2.0 - semver: ^7.3.8 - peerDependencies: - webpack: ^5.0.0 - checksum: 473cc32b6c837c2848e2051ad1ba331c1457449f47442e75a8c480d9891451434ada241f7e3de2347e57de17fcd84610b3bcfc4a9da41102cdaedd1e17902d31 - languageName: node - linkType: hard - -"css-minimizer-webpack-plugin@npm:^4.0.0": - version: 4.2.2 - resolution: "css-minimizer-webpack-plugin@npm:4.2.2" - dependencies: - cssnano: ^5.1.8 - jest-worker: ^29.1.2 - postcss: ^8.4.17 - schema-utils: ^4.0.0 - serialize-javascript: ^6.0.0 - source-map: ^0.6.1 - peerDependencies: - webpack: ^5.0.0 - peerDependenciesMeta: - "@parcel/css": - optional: true - "@swc/css": - optional: true - clean-css: - optional: true - csso: - optional: true - esbuild: - optional: true - lightningcss: - optional: true - checksum: 5417e76a445f35832aa96807c835b8e92834a6cd285b1b788dfe3ca0fa90fec7eb2dd6efa9d3649f9d8244b99b7da2d065951603b94918e8f6a366a5049cacdd - languageName: node - linkType: hard - -"css-select@npm:^4.1.3": - version: 4.3.0 - resolution: "css-select@npm:4.3.0" - dependencies: - boolbase: ^1.0.0 - css-what: ^6.0.1 - domhandler: ^4.3.1 - domutils: ^2.8.0 - nth-check: ^2.0.1 - checksum: d6202736839194dd7f910320032e7cfc40372f025e4bf21ca5bf6eb0a33264f322f50ba9c0adc35dadd342d3d6fae5ca244779a4873afbfa76561e343f2058e0 - languageName: node - linkType: hard - -"css-select@npm:^5.1.0": - version: 5.1.0 - resolution: "css-select@npm:5.1.0" - dependencies: - boolbase: ^1.0.0 - css-what: ^6.1.0 - domhandler: ^5.0.2 - domutils: ^3.0.1 - nth-check: ^2.0.1 - checksum: 2772c049b188d3b8a8159907192e926e11824aea525b8282981f72ba3f349cf9ecd523fdf7734875ee2cb772246c22117fc062da105b6d59afe8dcd5c99c9bda - languageName: node - linkType: hard - -"css-tree@npm:^1.1.2, css-tree@npm:^1.1.3": - version: 1.1.3 - resolution: "css-tree@npm:1.1.3" - dependencies: - mdn-data: 2.0.14 - source-map: ^0.6.1 - checksum: 79f9b81803991b6977b7fcb1588799270438274d89066ce08f117f5cdb5e20019b446d766c61506dd772c839df84caa16042d6076f20c97187f5abe3b50e7d1f - languageName: node - linkType: hard - -"css-what@npm:^6.0.1, css-what@npm:^6.1.0": - version: 6.1.0 - resolution: "css-what@npm:6.1.0" - checksum: b975e547e1e90b79625918f84e67db5d33d896e6de846c9b584094e529f0c63e2ab85ee33b9daffd05bff3a146a1916bec664e18bb76dd5f66cbff9fc13b2bbe - languageName: node - linkType: hard - -"cssesc@npm:^3.0.0": - version: 3.0.0 - resolution: "cssesc@npm:3.0.0" - bin: - cssesc: bin/cssesc - checksum: f8c4ababffbc5e2ddf2fa9957dda1ee4af6048e22aeda1869d0d00843223c1b13ad3f5d88b51caa46c994225eacb636b764eb807a8883e2fb6f99b4f4e8c48b2 - languageName: node - linkType: hard - -"cssnano-preset-advanced@npm:^5.3.8": - version: 5.3.9 - resolution: "cssnano-preset-advanced@npm:5.3.9" - dependencies: - autoprefixer: ^10.4.12 - cssnano-preset-default: ^5.2.13 - postcss-discard-unused: ^5.1.0 - postcss-merge-idents: ^5.1.1 - postcss-reduce-idents: ^5.2.0 - postcss-zindex: ^5.1.0 - peerDependencies: - postcss: ^8.2.15 - checksum: 094eb446107254b14f46257068376078c6daa0828c154df0a1d5cc6eabf13bd6015ce84be5de9c2cc34c60383dd27335c0496cecd1a30ce7557a6c5db4502d2d - languageName: node - linkType: hard - -"cssnano-preset-default@npm:^5.2.13": - version: 5.2.13 - resolution: "cssnano-preset-default@npm:5.2.13" - dependencies: - css-declaration-sorter: ^6.3.1 - cssnano-utils: ^3.1.0 - postcss-calc: ^8.2.3 - postcss-colormin: ^5.3.0 - postcss-convert-values: ^5.1.3 - postcss-discard-comments: ^5.1.2 - postcss-discard-duplicates: ^5.1.0 - postcss-discard-empty: ^5.1.1 - postcss-discard-overridden: ^5.1.0 - postcss-merge-longhand: ^5.1.7 - postcss-merge-rules: ^5.1.3 - postcss-minify-font-values: ^5.1.0 - postcss-minify-gradients: ^5.1.1 - postcss-minify-params: ^5.1.4 - postcss-minify-selectors: ^5.2.1 - postcss-normalize-charset: ^5.1.0 - postcss-normalize-display-values: ^5.1.0 - postcss-normalize-positions: ^5.1.1 - postcss-normalize-repeat-style: ^5.1.1 - postcss-normalize-string: ^5.1.0 - postcss-normalize-timing-functions: ^5.1.0 - postcss-normalize-unicode: ^5.1.1 - postcss-normalize-url: ^5.1.0 - postcss-normalize-whitespace: ^5.1.1 - postcss-ordered-values: ^5.1.3 - postcss-reduce-initial: ^5.1.1 - postcss-reduce-transforms: ^5.1.0 - postcss-svgo: ^5.1.0 - postcss-unique-selectors: ^5.1.1 - peerDependencies: - postcss: ^8.2.15 - checksum: f773de44f67f71e7301e1f4b4664b894c3a48bba4dadc16c559acd0b14ceafed228bdc76fe19d500b0ded9394732377069daadff2184465fa369f8dfd72d47e2 - languageName: node - linkType: hard - -"cssnano-utils@npm:^3.1.0": - version: 3.1.0 - resolution: "cssnano-utils@npm:3.1.0" - peerDependencies: - postcss: ^8.2.15 - checksum: 975c84ce9174cf23bb1da1e9faed8421954607e9ea76440cd3bb0c1bea7e17e490d800fca5ae2812d1d9e9d5524eef23ede0a3f52497d7ccc628e5d7321536f2 - languageName: node - linkType: hard - -"cssnano@npm:^5.1.12, cssnano@npm:^5.1.8": - version: 5.1.14 - resolution: "cssnano@npm:5.1.14" - dependencies: - cssnano-preset-default: ^5.2.13 - lilconfig: ^2.0.3 - yaml: ^1.10.2 - peerDependencies: - postcss: ^8.2.15 - checksum: 73463c723c5e598b37b8b4d2f014145bd72133e6581349a1b154904e0830e58de17afb1e801ed3ea3b18e386883964ce4d0299e43d4dc37d339214a956c6697f - languageName: node - linkType: hard - -"csso@npm:^4.2.0": - version: 4.2.0 - resolution: "csso@npm:4.2.0" - dependencies: - css-tree: ^1.1.2 - checksum: 380ba9663da3bcea58dee358a0d8c4468bb6539be3c439dc266ac41c047217f52fd698fb7e4b6b6ccdfb8cf53ef4ceed8cc8ceccb8dfca2aa628319826b5b998 - languageName: node - linkType: hard - -"csstype@npm:^3.0.2": - version: 3.1.1 - resolution: "csstype@npm:3.1.1" - checksum: 1f7b4f5fdd955b7444b18ebdddf3f5c699159f13e9cf8ac9027ae4a60ae226aef9bbb14a6e12ca7dba3358b007cee6354b116e720262867c398de6c955ea451d - languageName: node - linkType: hard - -"debug@npm:2.6.9, debug@npm:^2.6.0": - version: 2.6.9 - resolution: "debug@npm:2.6.9" - dependencies: - ms: 2.0.0 - checksum: d2f51589ca66df60bf36e1fa6e4386b318c3f1e06772280eea5b1ae9fd3d05e9c2b7fd8a7d862457d00853c75b00451aa2d7459b924629ee385287a650f58fe6 - languageName: node - linkType: hard - -"debug@npm:4, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.2.0, debug@npm:^4.3.3": - version: 4.3.4 - resolution: "debug@npm:4.3.4" - dependencies: - ms: 2.1.2 - peerDependenciesMeta: - supports-color: - optional: true - checksum: 3dbad3f94ea64f34431a9cbf0bafb61853eda57bff2880036153438f50fb5a84f27683ba0d8e5426bf41a8c6ff03879488120cf5b3a761e77953169c0600a708 - languageName: node - linkType: hard - -"decompress-response@npm:^3.3.0": - version: 3.3.0 - resolution: "decompress-response@npm:3.3.0" - dependencies: - mimic-response: ^1.0.0 - checksum: 952552ac3bd7de2fc18015086b09468645c9638d98a551305e485230ada278c039c91116e946d07894b39ee53c0f0d5b6473f25a224029344354513b412d7380 - languageName: node - linkType: hard - -"deep-extend@npm:^0.6.0": - version: 0.6.0 - resolution: "deep-extend@npm:0.6.0" - checksum: 7be7e5a8d468d6b10e6a67c3de828f55001b6eb515d014f7aeb9066ce36bd5717161eb47d6a0f7bed8a9083935b465bc163ee2581c8b128d29bf61092fdf57a7 - languageName: node - linkType: hard - -"deepmerge@npm:^4.2.2": - version: 4.2.2 - resolution: "deepmerge@npm:4.2.2" - checksum: a8c43a1ed8d6d1ed2b5bf569fa4c8eb9f0924034baf75d5d406e47e157a451075c4db353efea7b6bcc56ec48116a8ce72fccf867b6e078e7c561904b5897530b - languageName: node - linkType: hard - -"default-gateway@npm:^6.0.3": - version: 6.0.3 - resolution: "default-gateway@npm:6.0.3" - dependencies: - execa: ^5.0.0 - checksum: 126f8273ecac8ee9ff91ea778e8784f6cd732d77c3157e8c5bdd6ed03651b5291f71446d05bc02d04073b1e67583604db5394ea3cf992ede0088c70ea15b7378 - languageName: node - linkType: hard - -"defaults@npm:^1.0.3": - version: 1.0.4 - resolution: "defaults@npm:1.0.4" - dependencies: - clone: ^1.0.2 - checksum: 3a88b7a587fc076b84e60affad8b85245c01f60f38fc1d259e7ac1d89eb9ce6abb19e27215de46b98568dd5bc48471730b327637e6f20b0f1bc85cf00440c80a - languageName: node - linkType: hard - -"defer-to-connect@npm:^1.0.1": - version: 1.1.3 - resolution: "defer-to-connect@npm:1.1.3" - checksum: 9491b301dcfa04956f989481ba7a43c2231044206269eb4ab64a52d6639ee15b1252262a789eb4239fb46ab63e44d4e408641bae8e0793d640aee55398cb3930 - languageName: node - linkType: hard - -"define-lazy-prop@npm:^2.0.0": - version: 2.0.0 - resolution: "define-lazy-prop@npm:2.0.0" - checksum: 0115fdb065e0490918ba271d7339c42453d209d4cb619dfe635870d906731eff3e1ade8028bb461ea27ce8264ec5e22c6980612d332895977e89c1bbc80fcee2 - languageName: node - linkType: hard - -"define-properties@npm:^1.1.4": - version: 1.1.4 - resolution: "define-properties@npm:1.1.4" - dependencies: - has-property-descriptors: ^1.0.0 - object-keys: ^1.1.1 - checksum: ce0aef3f9eb193562b5cfb79b2d2c86b6a109dfc9fdcb5f45d680631a1a908c06824ddcdb72b7573b54e26ace07f0a23420aaba0d5c627b34d2c1de8ef527e2b - languageName: node - linkType: hard - -"del@npm:^6.1.1": - version: 6.1.1 - resolution: "del@npm:6.1.1" - dependencies: - globby: ^11.0.1 - graceful-fs: ^4.2.4 - is-glob: ^4.0.1 - is-path-cwd: ^2.2.0 - is-path-inside: ^3.0.2 - p-map: ^4.0.0 - rimraf: ^3.0.2 - slash: ^3.0.0 - checksum: 563288b73b8b19a7261c47fd21a330eeab6e2acd7c6208c49790dfd369127120dd7836cdf0c1eca216b77c94782a81507eac6b4734252d3bef2795cb366996b6 - languageName: node - linkType: hard - -"delayed-stream@npm:~1.0.0": - version: 1.0.0 - resolution: "delayed-stream@npm:1.0.0" - checksum: 46fe6e83e2cb1d85ba50bd52803c68be9bd953282fa7096f51fc29edd5d67ff84ff753c51966061e5ba7cb5e47ef6d36a91924eddb7f3f3483b1c560f77a0020 - languageName: node - linkType: hard - -"delegates@npm:^1.0.0": - version: 1.0.0 - resolution: "delegates@npm:1.0.0" - checksum: a51744d9b53c164ba9c0492471a1a2ffa0b6727451bdc89e31627fdf4adda9d51277cfcbfb20f0a6f08ccb3c436f341df3e92631a3440226d93a8971724771fd - languageName: node - linkType: hard - -"depd@npm:2.0.0": - version: 2.0.0 - resolution: "depd@npm:2.0.0" - checksum: abbe19c768c97ee2eed6282d8ce3031126662252c58d711f646921c9623f9052e3e1906443066beec1095832f534e57c523b7333f8e7e0d93051ab6baef5ab3a - languageName: node - linkType: hard - -"depd@npm:^1.1.2, depd@npm:~1.1.2": - version: 1.1.2 - resolution: "depd@npm:1.1.2" - checksum: 6b406620d269619852885ce15965272b829df6f409724415e0002c8632ab6a8c0a08ec1f0bd2add05dc7bd7507606f7e2cc034fa24224ab829580040b835ecd9 - languageName: node - linkType: hard - -"destroy@npm:1.2.0": - version: 1.2.0 - resolution: "destroy@npm:1.2.0" - checksum: 0acb300b7478a08b92d810ab229d5afe0d2f4399272045ab22affa0d99dbaf12637659411530a6fcd597a9bdac718fc94373a61a95b4651bbc7b83684a565e38 - languageName: node - linkType: hard - -"detab@npm:2.0.4": - version: 2.0.4 - resolution: "detab@npm:2.0.4" - dependencies: - repeat-string: ^1.5.4 - checksum: 34b077521ecd4c6357d32ff7923be644d34aa6f6b7d717d40ec4a9168243eefaea2b512a75a460a6f70c31b0bbc31ff90f820a891803b4ddaf99e9d04d0d389d - languageName: node - linkType: hard - -"detect-indent@npm:^6.0.0": - version: 6.1.0 - resolution: "detect-indent@npm:6.1.0" - checksum: ab953a73c72dbd4e8fc68e4ed4bfd92c97eb6c43734af3900add963fd3a9316f3bc0578b018b24198d4c31a358571eff5f0656e81a1f3b9ad5c547d58b2d093d - languageName: node - linkType: hard - -"detect-node@npm:^2.0.4": - version: 2.1.0 - resolution: "detect-node@npm:2.1.0" - checksum: 832184ec458353e41533ac9c622f16c19f7c02d8b10c303dfd3a756f56be93e903616c0bb2d4226183c9351c15fc0b3dba41a17a2308262afabcfa3776e6ae6e - languageName: node - linkType: hard - -"detect-port-alt@npm:^1.1.6": - version: 1.1.6 - resolution: "detect-port-alt@npm:1.1.6" - dependencies: - address: ^1.0.1 - debug: ^2.6.0 - bin: - detect: ./bin/detect-port - detect-port: ./bin/detect-port - checksum: 9dc37b1fa4a9dd6d4889e1045849b8d841232b598d1ca888bf712f4035b07a17cf6d537465a0d7323250048d3a5a0540e3b7cf89457efc222f96f77e2c40d16a - languageName: node - linkType: hard - -"detect-port@npm:^1.3.0": - version: 1.5.1 - resolution: "detect-port@npm:1.5.1" - dependencies: - address: ^1.0.1 - debug: 4 - bin: - detect: bin/detect-port.js - detect-port: bin/detect-port.js - checksum: b48da9340481742547263d5d985e65d078592557863402ecf538511735e83575867e94f91fe74405ea19b61351feb99efccae7e55de9a151d5654e3417cea05b - languageName: node - linkType: hard - -"dir-glob@npm:^3.0.1": - version: 3.0.1 - resolution: "dir-glob@npm:3.0.1" - dependencies: - path-type: ^4.0.0 - checksum: fa05e18324510d7283f55862f3161c6759a3f2f8dbce491a2fc14c8324c498286c54282c1f0e933cb930da8419b30679389499b919122952a4f8592362ef4615 - languageName: node - linkType: hard - -"dns-equal@npm:^1.0.0": - version: 1.0.0 - resolution: "dns-equal@npm:1.0.0" - checksum: a8471ac849c7c13824f053babea1bc26e2f359394dd5a460f8340d8abd13434be01e3327a5c59d212f8c8997817450efd3f3ac77bec709b21979cf0235644524 - languageName: node - linkType: hard - -"dns-packet@npm:^5.2.2": - version: 5.4.0 - resolution: "dns-packet@npm:5.4.0" - dependencies: - "@leichtgewicht/ip-codec": ^2.0.1 - checksum: a169963848e8539dfd8a19058562f9e1c15c0f82cbf76fa98942f11c46f3c74e7e7c82e3a8a5182d4c9e6ff19e21be738dbd098a876dde755d3aedd2cc730880 - languageName: node - linkType: hard - -"dom-converter@npm:^0.2.0": - version: 0.2.0 - resolution: "dom-converter@npm:0.2.0" - dependencies: - utila: ~0.4 - checksum: ea52fe303f5392e48dea563abef0e6fb3a478b8dbe3c599e99bb5d53981c6c38fc4944e56bb92a8ead6bb989d10b7914722ae11febbd2fd0910e33b9fc4aaa77 - languageName: node - linkType: hard - -"dom-serializer@npm:^1.0.1": - version: 1.4.1 - resolution: "dom-serializer@npm:1.4.1" - dependencies: - domelementtype: ^2.0.1 - domhandler: ^4.2.0 - entities: ^2.0.0 - checksum: fbb0b01f87a8a2d18e6e5a388ad0f7ec4a5c05c06d219377da1abc7bb0f674d804f4a8a94e3f71ff15f6cb7dcfc75704a54b261db672b9b3ab03da6b758b0b22 - languageName: node - linkType: hard - -"dom-serializer@npm:^2.0.0": - version: 2.0.0 - resolution: "dom-serializer@npm:2.0.0" - dependencies: - domelementtype: ^2.3.0 - domhandler: ^5.0.2 - entities: ^4.2.0 - checksum: cd1810544fd8cdfbd51fa2c0c1128ec3a13ba92f14e61b7650b5de421b88205fd2e3f0cc6ace82f13334114addb90ed1c2f23074a51770a8e9c1273acbc7f3e6 - languageName: node - linkType: hard - -"domelementtype@npm:^2.0.1, domelementtype@npm:^2.2.0, domelementtype@npm:^2.3.0": - version: 2.3.0 - resolution: "domelementtype@npm:2.3.0" - checksum: ee837a318ff702622f383409d1f5b25dd1024b692ef64d3096ff702e26339f8e345820f29a68bcdcea8cfee3531776b3382651232fbeae95612d6f0a75efb4f6 - languageName: node - linkType: hard - -"domhandler@npm:^4.0.0, domhandler@npm:^4.2.0, domhandler@npm:^4.3.1": - version: 4.3.1 - resolution: "domhandler@npm:4.3.1" - dependencies: - domelementtype: ^2.2.0 - checksum: 4c665ceed016e1911bf7d1dadc09dc888090b64dee7851cccd2fcf5442747ec39c647bb1cb8c8919f8bbdd0f0c625a6bafeeed4b2d656bbecdbae893f43ffaaa - languageName: node - linkType: hard - -"domhandler@npm:^5.0.1, domhandler@npm:^5.0.2, domhandler@npm:^5.0.3": - version: 5.0.3 - resolution: "domhandler@npm:5.0.3" - dependencies: - domelementtype: ^2.3.0 - checksum: 0f58f4a6af63e6f3a4320aa446d28b5790a009018707bce2859dcb1d21144c7876482b5188395a188dfa974238c019e0a1e610d2fc269a12b2c192ea2b0b131c - languageName: node - linkType: hard - -"domutils@npm:^2.5.2, domutils@npm:^2.8.0": - version: 2.8.0 - resolution: "domutils@npm:2.8.0" - dependencies: - dom-serializer: ^1.0.1 - domelementtype: ^2.2.0 - domhandler: ^4.2.0 - checksum: abf7434315283e9aadc2a24bac0e00eab07ae4313b40cc239f89d84d7315ebdfd2fb1b5bf750a96bc1b4403d7237c7b2ebf60459be394d625ead4ca89b934391 - languageName: node - linkType: hard - -"domutils@npm:^3.0.1": - version: 3.0.1 - resolution: "domutils@npm:3.0.1" - dependencies: - dom-serializer: ^2.0.0 - domelementtype: ^2.3.0 - domhandler: ^5.0.1 - checksum: 23aa7a840572d395220e173cb6263b0d028596e3950100520870a125af33ff819e6f609e1606d6f7d73bd9e7feb03bb404286e57a39063b5384c62b724d987b3 - languageName: node - linkType: hard - -"dot-case@npm:^3.0.4": - version: 3.0.4 - resolution: "dot-case@npm:3.0.4" - dependencies: - no-case: ^3.0.4 - tslib: ^2.0.3 - checksum: a65e3519414856df0228b9f645332f974f2bf5433370f544a681122eab59e66038fc3349b4be1cdc47152779dac71a5864f1ccda2f745e767c46e9c6543b1169 - languageName: node - linkType: hard - -"dot-prop@npm:^5.2.0": - version: 5.3.0 - resolution: "dot-prop@npm:5.3.0" - dependencies: - is-obj: ^2.0.0 - checksum: d5775790093c234ef4bfd5fbe40884ff7e6c87573e5339432870616331189f7f5d86575c5b5af2dcf0f61172990f4f734d07844b1f23482fff09e3c4bead05ea - languageName: node - linkType: hard - -"duplexer3@npm:^0.1.4": - version: 0.1.5 - resolution: "duplexer3@npm:0.1.5" - checksum: e677cb4c48f031ca728601d6a20bf6aed4c629d69ef9643cb89c67583d673c4ec9317cc6427501f38bd8c368d3a18f173987cc02bd99d8cf8fe3d94259a22a20 - languageName: node - linkType: hard - -"duplexer@npm:^0.1.2": - version: 0.1.2 - resolution: "duplexer@npm:0.1.2" - checksum: 62ba61a830c56801db28ff6305c7d289b6dc9f859054e8c982abd8ee0b0a14d2e9a8e7d086ffee12e868d43e2bbe8a964be55ddbd8c8957714c87373c7a4f9b0 - languageName: node - linkType: hard - -"eastasianwidth@npm:^0.2.0": - version: 0.2.0 - resolution: "eastasianwidth@npm:0.2.0" - checksum: 7d00d7cd8e49b9afa762a813faac332dee781932d6f2c848dc348939c4253f1d4564341b7af1d041853bc3f32c2ef141b58e0a4d9862c17a7f08f68df1e0f1ed - languageName: node - linkType: hard - -"ee-first@npm:1.1.1": - version: 1.1.1 - resolution: "ee-first@npm:1.1.1" - checksum: 1b4cac778d64ce3b582a7e26b218afe07e207a0f9bfe13cc7395a6d307849cfe361e65033c3251e00c27dd060cab43014c2d6b2647676135e18b77d2d05b3f4f - languageName: node - linkType: hard - -"electron-to-chromium@npm:^1.4.251": - version: 1.4.284 - resolution: "electron-to-chromium@npm:1.4.284" - checksum: be496e9dca6509dbdbb54dc32146fc99f8eb716d28a7ee8ccd3eba0066561df36fc51418d8bd7cf5a5891810bf56c0def3418e74248f51ea4a843d423603d10a - languageName: node - linkType: hard - -"emoji-regex@npm:^8.0.0": - version: 8.0.0 - resolution: "emoji-regex@npm:8.0.0" - checksum: d4c5c39d5a9868b5fa152f00cada8a936868fd3367f33f71be515ecee4c803132d11b31a6222b2571b1e5f7e13890156a94880345594d0ce7e3c9895f560f192 - languageName: node - linkType: hard - -"emoji-regex@npm:^9.2.2": - version: 9.2.2 - resolution: "emoji-regex@npm:9.2.2" - checksum: 8487182da74aabd810ac6d6f1994111dfc0e331b01271ae01ec1eb0ad7b5ecc2bbbbd2f053c05cb55a1ac30449527d819bbfbf0e3de1023db308cbcb47f86601 - languageName: node - linkType: hard - -"emojis-list@npm:^3.0.0": - version: 3.0.0 - resolution: "emojis-list@npm:3.0.0" - checksum: ddaaa02542e1e9436c03970eeed445f4ed29a5337dfba0fe0c38dfdd2af5da2429c2a0821304e8a8d1cadf27fdd5b22ff793571fa803ae16852a6975c65e8e70 - languageName: node - linkType: hard - -"emoticon@npm:^3.2.0": - version: 3.2.0 - resolution: "emoticon@npm:3.2.0" - checksum: f30649d18b672ab3139e95cb04f77b2442feb95c99dc59372ff80fbfd639b2bf4018bc68ab0b549bd765aecf8230d7899c43f86cfcc7b6370c06c3232783e24f - languageName: node - linkType: hard - -"encodeurl@npm:~1.0.2": - version: 1.0.2 - resolution: "encodeurl@npm:1.0.2" - checksum: e50e3d508cdd9c4565ba72d2012e65038e5d71bdc9198cb125beb6237b5b1ade6c0d343998da9e170fb2eae52c1bed37d4d6d98a46ea423a0cddbed5ac3f780c - languageName: node - linkType: hard - -"encoding@npm:^0.1.13": - version: 0.1.13 - resolution: "encoding@npm:0.1.13" - dependencies: - iconv-lite: ^0.6.2 - checksum: bb98632f8ffa823996e508ce6a58ffcf5856330fde839ae42c9e1f436cc3b5cc651d4aeae72222916545428e54fd0f6aa8862fd8d25bdbcc4589f1e3f3715e7f - languageName: node - linkType: hard - -"end-of-stream@npm:^1.1.0": - version: 1.4.4 - resolution: "end-of-stream@npm:1.4.4" - dependencies: - once: ^1.4.0 - checksum: 530a5a5a1e517e962854a31693dbb5c0b2fc40b46dad2a56a2deec656ca040631124f4795823acc68238147805f8b021abbe221f4afed5ef3c8e8efc2024908b - languageName: node - linkType: hard - -"enhanced-resolve@npm:^5.10.0": - version: 5.12.0 - resolution: "enhanced-resolve@npm:5.12.0" - dependencies: - graceful-fs: ^4.2.4 - tapable: ^2.2.0 - checksum: bf3f787facaf4ce3439bef59d148646344e372bef5557f0d37ea8aa02c51f50a925cd1f07b8d338f18992c29f544ec235a8c64bcdb56030196c48832a5494174 - languageName: node - linkType: hard - -"entities@npm:^2.0.0": - version: 2.2.0 - resolution: "entities@npm:2.2.0" - checksum: 19010dacaf0912c895ea262b4f6128574f9ccf8d4b3b65c7e8334ad0079b3706376360e28d8843ff50a78aabcb8f08f0a32dbfacdc77e47ed77ca08b713669b3 - languageName: node - linkType: hard - -"entities@npm:^4.2.0, entities@npm:^4.3.0, entities@npm:^4.4.0": - version: 4.4.0 - resolution: "entities@npm:4.4.0" - checksum: 84d250329f4b56b40fa93ed067b194db21e8815e4eb9b59f43a086f0ecd342814f6bc483de8a77da5d64e0f626033192b1b4f1792232a7ea6b970ebe0f3187c2 - languageName: node - linkType: hard - -"env-paths@npm:^2.2.0": - version: 2.2.1 - resolution: "env-paths@npm:2.2.1" - checksum: 65b5df55a8bab92229ab2b40dad3b387fad24613263d103a97f91c9fe43ceb21965cd3392b1ccb5d77088021e525c4e0481adb309625d0cb94ade1d1fb8dc17e - languageName: node - linkType: hard - -"err-code@npm:^2.0.2": - version: 2.0.3 - resolution: "err-code@npm:2.0.3" - checksum: 8b7b1be20d2de12d2255c0bc2ca638b7af5171142693299416e6a9339bd7d88fc8d7707d913d78e0993176005405a236b066b45666b27b797252c771156ace54 - languageName: node - linkType: hard - -"error-ex@npm:^1.3.1": - version: 1.3.2 - resolution: "error-ex@npm:1.3.2" - dependencies: - is-arrayish: ^0.2.1 - checksum: c1c2b8b65f9c91b0f9d75f0debaa7ec5b35c266c2cac5de412c1a6de86d4cbae04ae44e510378cb14d032d0645a36925d0186f8bb7367bcc629db256b743a001 - languageName: node - linkType: hard - -"es-module-lexer@npm:^0.9.0": - version: 0.9.3 - resolution: "es-module-lexer@npm:0.9.3" - checksum: 84bbab23c396281db2c906c766af58b1ae2a1a2599844a504df10b9e8dc77ec800b3211fdaa133ff700f5703d791198807bba25d9667392d27a5e9feda344da8 - languageName: node - linkType: hard - -"escalade@npm:^3.1.1": - version: 3.1.1 - resolution: "escalade@npm:3.1.1" - checksum: a3e2a99f07acb74b3ad4989c48ca0c3140f69f923e56d0cba0526240ee470b91010f9d39001f2a4a313841d237ede70a729e92125191ba5d21e74b106800b133 - languageName: node - linkType: hard - -"escape-goat@npm:^2.0.0": - version: 2.1.1 - resolution: "escape-goat@npm:2.1.1" - checksum: ce05c70c20dd7007b60d2d644b625da5412325fdb57acf671ba06cb2ab3cd6789e2087026921a05b665b0a03fadee2955e7fc0b9a67da15a6551a980b260eba7 - languageName: node - linkType: hard - -"escape-html@npm:^1.0.3, escape-html@npm:~1.0.3": - version: 1.0.3 - resolution: "escape-html@npm:1.0.3" - checksum: 6213ca9ae00d0ab8bccb6d8d4e0a98e76237b2410302cf7df70aaa6591d509a2a37ce8998008cbecae8fc8ffaadf3fb0229535e6a145f3ce0b211d060decbb24 - languageName: node - linkType: hard - -"escape-string-regexp@npm:^1.0.5": - version: 1.0.5 - resolution: "escape-string-regexp@npm:1.0.5" - checksum: 6092fda75c63b110c706b6a9bfde8a612ad595b628f0bd2147eea1d3406723020810e591effc7db1da91d80a71a737a313567c5abb3813e8d9c71f4aa595b410 - languageName: node - linkType: hard - -"escape-string-regexp@npm:^4.0.0": - version: 4.0.0 - resolution: "escape-string-regexp@npm:4.0.0" - checksum: 98b48897d93060f2322108bf29db0feba7dd774be96cd069458d1453347b25ce8682ecc39859d4bca2203cc0ab19c237bcc71755eff49a0f8d90beadeeba5cc5 - languageName: node - linkType: hard - -"eslint-scope@npm:5.1.1": - version: 5.1.1 - resolution: "eslint-scope@npm:5.1.1" - dependencies: - esrecurse: ^4.3.0 - estraverse: ^4.1.1 - checksum: 47e4b6a3f0cc29c7feedee6c67b225a2da7e155802c6ea13bbef4ac6b9e10c66cd2dcb987867ef176292bf4e64eccc680a49e35e9e9c669f4a02bac17e86abdb - languageName: node - linkType: hard - -"esprima@npm:^4.0.0": - version: 4.0.1 - resolution: "esprima@npm:4.0.1" - bin: - esparse: ./bin/esparse.js - esvalidate: ./bin/esvalidate.js - checksum: b45bc805a613dbea2835278c306b91aff6173c8d034223fa81498c77dcbce3b2931bf6006db816f62eacd9fd4ea975dfd85a5b7f3c6402cfd050d4ca3c13a628 - languageName: node - linkType: hard - -"esrecurse@npm:^4.3.0": - version: 4.3.0 - resolution: "esrecurse@npm:4.3.0" - dependencies: - estraverse: ^5.2.0 - checksum: ebc17b1a33c51cef46fdc28b958994b1dc43cd2e86237515cbc3b4e5d2be6a811b2315d0a1a4d9d340b6d2308b15322f5c8291059521cc5f4802f65e7ec32837 - languageName: node - linkType: hard - -"estraverse@npm:^4.1.1": - version: 4.3.0 - resolution: "estraverse@npm:4.3.0" - checksum: a6299491f9940bb246124a8d44b7b7a413a8336f5436f9837aaa9330209bd9ee8af7e91a654a3545aee9c54b3308e78ee360cef1d777d37cfef77d2fa33b5827 - languageName: node - linkType: hard - -"estraverse@npm:^5.2.0": - version: 5.3.0 - resolution: "estraverse@npm:5.3.0" - checksum: 072780882dc8416ad144f8fe199628d2b3e7bbc9989d9ed43795d2c90309a2047e6bc5979d7e2322a341163d22cfad9e21f4110597fe487519697389497e4e2b - languageName: node - linkType: hard - -"esutils@npm:^2.0.2": - version: 2.0.3 - resolution: "esutils@npm:2.0.3" - checksum: 22b5b08f74737379a840b8ed2036a5fb35826c709ab000683b092d9054e5c2a82c27818f12604bfc2a9a76b90b6834ef081edbc1c7ae30d1627012e067c6ec87 - languageName: node - linkType: hard - -"eta@npm:^1.12.3": - version: 1.13.0 - resolution: "eta@npm:1.13.0" - checksum: 2833ca90488012d876af791b1be84b9b6b2622271ec0bfa6c2b9aa86a9bd7895c1be5e9075d383154c8913eeeaa79a81cf82aff83dd4f093c35db71e2ae6fac3 - languageName: node - linkType: hard - -"eta@npm:^2.0.0": - version: 2.0.0 - resolution: "eta@npm:2.0.0" - checksum: ab8e93af73f0d4917485976aa8fcac68e730c47e9aa54a720c21c2e9087cdcd5f984a50cf5e04d189757612df014a229fa047a437651c9eea31e0b6bf1afe56b - languageName: node - linkType: hard - -"etag@npm:~1.8.1": - version: 1.8.1 - resolution: "etag@npm:1.8.1" - checksum: 571aeb3dbe0f2bbd4e4fadbdb44f325fc75335cd5f6f6b6a091e6a06a9f25ed5392f0863c5442acb0646787446e816f13cbfc6edce5b07658541dff573cab1ff - languageName: node - linkType: hard - -"eval@npm:^0.1.8": - version: 0.1.8 - resolution: "eval@npm:0.1.8" - dependencies: - "@types/node": "*" - require-like: ">= 0.1.1" - checksum: d005567f394cfbe60948e34982e4637d2665030f9aa7dcac581ea6f9ec6eceb87133ed3dc0ae21764aa362485c242a731dbb6371f1f1a86807c58676431e9d1a - languageName: node - linkType: hard - -"eventemitter3@npm:^4.0.0": - version: 4.0.7 - resolution: "eventemitter3@npm:4.0.7" - checksum: 1875311c42fcfe9c707b2712c32664a245629b42bb0a5a84439762dd0fd637fc54d078155ea83c2af9e0323c9ac13687e03cfba79b03af9f40c89b4960099374 - languageName: node - linkType: hard - -"events@npm:^3.2.0": - version: 3.3.0 - resolution: "events@npm:3.3.0" - checksum: f6f487ad2198aa41d878fa31452f1a3c00958f46e9019286ff4787c84aac329332ab45c9cdc8c445928fc6d7ded294b9e005a7fce9426488518017831b272780 - languageName: node - linkType: hard - -"execa@npm:^5.0.0": - version: 5.1.1 - resolution: "execa@npm:5.1.1" - dependencies: - cross-spawn: ^7.0.3 - get-stream: ^6.0.0 - human-signals: ^2.1.0 - is-stream: ^2.0.0 - merge-stream: ^2.0.0 - npm-run-path: ^4.0.1 - onetime: ^5.1.2 - signal-exit: ^3.0.3 - strip-final-newline: ^2.0.0 - checksum: fba9022c8c8c15ed862847e94c252b3d946036d7547af310e344a527e59021fd8b6bb0723883ea87044dc4f0201f949046993124a42ccb0855cae5bf8c786343 - languageName: node - linkType: hard - -"express@npm:^4.17.3": - version: 4.18.2 - resolution: "express@npm:4.18.2" - dependencies: - accepts: ~1.3.8 - array-flatten: 1.1.1 - body-parser: 1.20.1 - content-disposition: 0.5.4 - content-type: ~1.0.4 - cookie: 0.5.0 - cookie-signature: 1.0.6 - debug: 2.6.9 - depd: 2.0.0 - encodeurl: ~1.0.2 - escape-html: ~1.0.3 - etag: ~1.8.1 - finalhandler: 1.2.0 - fresh: 0.5.2 - http-errors: 2.0.0 - merge-descriptors: 1.0.1 - methods: ~1.1.2 - on-finished: 2.4.1 - parseurl: ~1.3.3 - path-to-regexp: 0.1.7 - proxy-addr: ~2.0.7 - qs: 6.11.0 - range-parser: ~1.2.1 - safe-buffer: 5.2.1 - send: 0.18.0 - serve-static: 1.15.0 - setprototypeof: 1.2.0 - statuses: 2.0.1 - type-is: ~1.6.18 - utils-merge: 1.0.1 - vary: ~1.1.2 - checksum: 3c4b9b076879442f6b968fe53d85d9f1eeacbb4f4c41e5f16cc36d77ce39a2b0d81b3f250514982110d815b2f7173f5561367f9110fcc541f9371948e8c8b037 - languageName: node - linkType: hard - -"extend-shallow@npm:^2.0.1": - version: 2.0.1 - resolution: "extend-shallow@npm:2.0.1" - dependencies: - is-extendable: ^0.1.0 - checksum: 8fb58d9d7a511f4baf78d383e637bd7d2e80843bd9cd0853649108ea835208fb614da502a553acc30208e1325240bb7cc4a68473021612496bb89725483656d8 - languageName: node - linkType: hard - -"extend@npm:^3.0.0": - version: 3.0.2 - resolution: "extend@npm:3.0.2" - checksum: a50a8309ca65ea5d426382ff09f33586527882cf532931cb08ca786ea3146c0553310bda688710ff61d7668eba9f96b923fe1420cdf56a2c3eaf30fcab87b515 - languageName: node - linkType: hard - -"fast-deep-equal@npm:^3.1.1, fast-deep-equal@npm:^3.1.3": - version: 3.1.3 - resolution: "fast-deep-equal@npm:3.1.3" - checksum: e21a9d8d84f53493b6aa15efc9cfd53dd5b714a1f23f67fb5dc8f574af80df889b3bce25dc081887c6d25457cce704e636395333abad896ccdec03abaf1f3f9d - languageName: node - linkType: hard - -"fast-glob@npm:^3.2.11, fast-glob@npm:^3.2.9": - version: 3.2.12 - resolution: "fast-glob@npm:3.2.12" - dependencies: - "@nodelib/fs.stat": ^2.0.2 - "@nodelib/fs.walk": ^1.2.3 - glob-parent: ^5.1.2 - merge2: ^1.3.0 - micromatch: ^4.0.4 - checksum: 0b1990f6ce831c7e28c4d505edcdaad8e27e88ab9fa65eedadb730438cfc7cde4910d6c975d6b7b8dc8a73da4773702ebcfcd6e3518e73938bb1383badfe01c2 - languageName: node - linkType: hard - -"fast-json-stable-stringify@npm:^2.0.0": - version: 2.1.0 - resolution: "fast-json-stable-stringify@npm:2.1.0" - checksum: b191531e36c607977e5b1c47811158733c34ccb3bfde92c44798929e9b4154884378536d26ad90dfecd32e1ffc09c545d23535ad91b3161a27ddbb8ebe0cbecb - languageName: node - linkType: hard - -"fast-url-parser@npm:1.1.3": - version: 1.1.3 - resolution: "fast-url-parser@npm:1.1.3" - dependencies: - punycode: ^1.3.2 - checksum: 5043d0c4a8d775ff58504d56c096563c11b113e4cb8a2668c6f824a1cd4fb3812e2fdf76537eb24a7ce4ae7def6bd9747da630c617cf2a4b6ce0c42514e4f21c - languageName: node - linkType: hard - -"fastq@npm:^1.6.0": - version: 1.15.0 - resolution: "fastq@npm:1.15.0" - dependencies: - reusify: ^1.0.4 - checksum: 0170e6bfcd5d57a70412440b8ef600da6de3b2a6c5966aeaf0a852d542daff506a0ee92d6de7679d1de82e644bce69d7a574a6c93f0b03964b5337eed75ada1a - languageName: node - linkType: hard - -"faye-websocket@npm:^0.11.3": - version: 0.11.4 - resolution: "faye-websocket@npm:0.11.4" - dependencies: - websocket-driver: ">=0.5.1" - checksum: d49a62caf027f871149fc2b3f3c7104dc6d62744277eb6f9f36e2d5714e847d846b9f7f0d0b7169b25a012e24a594cde11a93034b30732e4c683f20b8a5019fa - languageName: node - linkType: hard - -"fbemitter@npm:^3.0.0": - version: 3.0.0 - resolution: "fbemitter@npm:3.0.0" - dependencies: - fbjs: ^3.0.0 - checksum: 069690b8cdff3521ade3c9beb92ba0a38d818a86ef36dff8690e66749aef58809db4ac0d6938eb1cacea2dbef5f2a508952d455669590264cdc146bbe839f605 - languageName: node - linkType: hard - -"fbjs-css-vars@npm:^1.0.0": - version: 1.0.2 - resolution: "fbjs-css-vars@npm:1.0.2" - checksum: 72baf6d22c45b75109118b4daecb6c8016d4c83c8c0f23f683f22e9d7c21f32fff6201d288df46eb561e3c7d4bb4489b8ad140b7f56444c453ba407e8bd28511 - languageName: node - linkType: hard - -"fbjs@npm:^3.0.0, fbjs@npm:^3.0.1": - version: 3.0.4 - resolution: "fbjs@npm:3.0.4" - dependencies: - cross-fetch: ^3.1.5 - fbjs-css-vars: ^1.0.0 - loose-envify: ^1.0.0 - object-assign: ^4.1.0 - promise: ^7.1.1 - setimmediate: ^1.0.5 - ua-parser-js: ^0.7.30 - checksum: 8b23a3550fcda8a9109fca9475a3416590c18bb6825ea884192864ed686f67fcd618e308a140c9e5444fbd0168732e1ff3c092ba3d0c0ae1768969f32ba280c7 - languageName: node - linkType: hard - -"feed@npm:^4.2.2": - version: 4.2.2 - resolution: "feed@npm:4.2.2" - dependencies: - xml-js: ^1.6.11 - checksum: 2e6992a675a049511eef7bda8ca6c08cb9540cd10e8b275ec4c95d166228ec445a335fa8de990358759f248a92861e51decdcd32bf1c54737d5b7aed7c7ffe97 - languageName: node - linkType: hard - -"file-loader@npm:^6.2.0": - version: 6.2.0 - resolution: "file-loader@npm:6.2.0" - dependencies: - loader-utils: ^2.0.0 - schema-utils: ^3.0.0 - peerDependencies: - webpack: ^4.0.0 || ^5.0.0 - checksum: faf43eecf233f4897b0150aaa874eeeac214e4f9de49738a9e0ef734a30b5260059e85b7edadf852b98e415f875bd5f12587768a93fd52aaf2e479ecf95fab20 - languageName: node - linkType: hard - -"filesize@npm:^8.0.6": - version: 8.0.7 - resolution: "filesize@npm:8.0.7" - checksum: 8603d27c5287b984cb100733640645e078f5f5ad65c6d913173e01fb99e09b0747828498fd86647685ccecb69be31f3587b9739ab1e50732116b2374aff4cbf9 - languageName: node - linkType: hard - -"fill-range@npm:^7.0.1": - version: 7.0.1 - resolution: "fill-range@npm:7.0.1" - dependencies: - to-regex-range: ^5.0.1 - checksum: cc283f4e65b504259e64fd969bcf4def4eb08d85565e906b7d36516e87819db52029a76b6363d0f02d0d532f0033c9603b9e2d943d56ee3b0d4f7ad3328ff917 - languageName: node - linkType: hard - -"finalhandler@npm:1.2.0": - version: 1.2.0 - resolution: "finalhandler@npm:1.2.0" - dependencies: - debug: 2.6.9 - encodeurl: ~1.0.2 - escape-html: ~1.0.3 - on-finished: 2.4.1 - parseurl: ~1.3.3 - statuses: 2.0.1 - unpipe: ~1.0.0 - checksum: 92effbfd32e22a7dff2994acedbd9bcc3aa646a3e919ea6a53238090e87097f8ef07cced90aa2cc421abdf993aefbdd5b00104d55c7c5479a8d00ed105b45716 - languageName: node - linkType: hard - -"find-cache-dir@npm:^3.3.1": - version: 3.3.2 - resolution: "find-cache-dir@npm:3.3.2" - dependencies: - commondir: ^1.0.1 - make-dir: ^3.0.2 - pkg-dir: ^4.1.0 - checksum: 1e61c2e64f5c0b1c535bd85939ae73b0e5773142713273818cc0b393ee3555fb0fd44e1a5b161b8b6c3e03e98c2fcc9c227d784850a13a90a8ab576869576817 - languageName: node - linkType: hard - -"find-up@npm:^3.0.0": - version: 3.0.0 - resolution: "find-up@npm:3.0.0" - dependencies: - locate-path: ^3.0.0 - checksum: 38eba3fe7a66e4bc7f0f5a1366dc25508b7cfc349f852640e3678d26ad9a6d7e2c43eff0a472287de4a9753ef58f066a0ea892a256fa3636ad51b3fe1e17fae9 - languageName: node - linkType: hard - -"find-up@npm:^4.0.0": - version: 4.1.0 - resolution: "find-up@npm:4.1.0" - dependencies: - locate-path: ^5.0.0 - path-exists: ^4.0.0 - checksum: 4c172680e8f8c1f78839486e14a43ef82e9decd0e74145f40707cc42e7420506d5ec92d9a11c22bd2c48fb0c384ea05dd30e10dd152fefeec6f2f75282a8b844 - languageName: node - linkType: hard - -"find-up@npm:^5.0.0": - version: 5.0.0 - resolution: "find-up@npm:5.0.0" - dependencies: - locate-path: ^6.0.0 - path-exists: ^4.0.0 - checksum: 07955e357348f34660bde7920783204ff5a26ac2cafcaa28bace494027158a97b9f56faaf2d89a6106211a8174db650dd9f503f9c0d526b1202d5554a00b9095 - languageName: node - linkType: hard - -"flux@npm:^4.0.1": - version: 4.0.3 - resolution: "flux@npm:4.0.3" - dependencies: - fbemitter: ^3.0.0 - fbjs: ^3.0.1 - peerDependencies: - react: ^15.0.2 || ^16.0.0 || ^17.0.0 - checksum: 6b3f5150bcce481ce5bc09e54dbe4bf2a052f9fbc04c1de64f8d816adc4f90ad7955d9aed0022c7b6a2ed11b809ac40527bb50c2cd89c23d42f56694abe20748 - languageName: node - linkType: hard - -"follow-redirects@npm:^1.0.0, follow-redirects@npm:^1.14.7, follow-redirects@npm:^1.14.9": - version: 1.15.2 - resolution: "follow-redirects@npm:1.15.2" - peerDependenciesMeta: - debug: - optional: true - checksum: faa66059b66358ba65c234c2f2a37fcec029dc22775f35d9ad6abac56003268baf41e55f9ee645957b32c7d9f62baf1f0b906e68267276f54ec4b4c597c2b190 - languageName: node - linkType: hard - -"fork-ts-checker-webpack-plugin@npm:^6.5.0": - version: 6.5.2 - resolution: "fork-ts-checker-webpack-plugin@npm:6.5.2" - dependencies: - "@babel/code-frame": ^7.8.3 - "@types/json-schema": ^7.0.5 - chalk: ^4.1.0 - chokidar: ^3.4.2 - cosmiconfig: ^6.0.0 - deepmerge: ^4.2.2 - fs-extra: ^9.0.0 - glob: ^7.1.6 - memfs: ^3.1.2 - minimatch: ^3.0.4 - schema-utils: 2.7.0 - semver: ^7.3.2 - tapable: ^1.0.0 - peerDependencies: - eslint: ">= 6" - typescript: ">= 2.7" - vue-template-compiler: "*" - webpack: ">= 4" - peerDependenciesMeta: - eslint: - optional: true - vue-template-compiler: - optional: true - checksum: c823de02ee258a26ea5c0c488b2f1825b941f72292417478689862468a9140b209ad7df52f67bd134228fe9f40e9115b604fc8f88a69338929fe52be869469b6 - languageName: node - linkType: hard - -"form-data@npm:^4.0.0": - version: 4.0.0 - resolution: "form-data@npm:4.0.0" - dependencies: - asynckit: ^0.4.0 - combined-stream: ^1.0.8 - mime-types: ^2.1.12 - checksum: 01135bf8675f9d5c61ff18e2e2932f719ca4de964e3be90ef4c36aacfc7b9cb2fceb5eca0b7e0190e3383fe51c5b37f4cb80b62ca06a99aaabfcfd6ac7c9328c - languageName: node - linkType: hard - -"forwarded@npm:0.2.0": - version: 0.2.0 - resolution: "forwarded@npm:0.2.0" - checksum: fd27e2394d8887ebd16a66ffc889dc983fbbd797d5d3f01087c020283c0f019a7d05ee85669383d8e0d216b116d720fc0cef2f6e9b7eb9f4c90c6e0bc7fd28e6 - languageName: node - linkType: hard - -"fraction.js@npm:^4.2.0": - version: 4.2.0 - resolution: "fraction.js@npm:4.2.0" - checksum: 8c76a6e21dedea87109d6171a0ac77afa14205794a565d71cb10d2925f629a3922da61bf45ea52dbc30bce4d8636dc0a27213a88cbd600eab047d82f9a3a94c5 - languageName: node - linkType: hard - -"fresh@npm:0.5.2": - version: 0.5.2 - resolution: "fresh@npm:0.5.2" - checksum: 13ea8b08f91e669a64e3ba3a20eb79d7ca5379a81f1ff7f4310d54e2320645503cc0c78daedc93dfb6191287295f6479544a649c64d8e41a1c0fb0c221552346 - languageName: node - linkType: hard - -"fs-extra@npm:^10.0.0, fs-extra@npm:^10.1.0": - version: 10.1.0 - resolution: "fs-extra@npm:10.1.0" - dependencies: - graceful-fs: ^4.2.0 - jsonfile: ^6.0.1 - universalify: ^2.0.0 - checksum: dc94ab37096f813cc3ca12f0f1b5ad6744dfed9ed21e953d72530d103cea193c2f81584a39e9dee1bea36de5ee66805678c0dddc048e8af1427ac19c00fffc50 - languageName: node - linkType: hard - -"fs-extra@npm:^9.0.0": - version: 9.1.0 - resolution: "fs-extra@npm:9.1.0" - dependencies: - at-least-node: ^1.0.0 - graceful-fs: ^4.2.0 - jsonfile: ^6.0.1 - universalify: ^2.0.0 - checksum: ba71ba32e0faa74ab931b7a0031d1523c66a73e225de7426e275e238e312d07313d2da2d33e34a52aa406c8763ade5712eb3ec9ba4d9edce652bcacdc29e6b20 - languageName: node - linkType: hard - -"fs-minipass@npm:^2.0.0, fs-minipass@npm:^2.1.0": - version: 2.1.0 - resolution: "fs-minipass@npm:2.1.0" - dependencies: - minipass: ^3.0.0 - checksum: 1b8d128dae2ac6cc94230cc5ead341ba3e0efaef82dab46a33d171c044caaa6ca001364178d42069b2809c35a1c3c35079a32107c770e9ffab3901b59af8c8b1 - languageName: node - linkType: hard - -"fs-monkey@npm:^1.0.3": - version: 1.0.3 - resolution: "fs-monkey@npm:1.0.3" - checksum: cf50804833f9b88a476911ae911fe50f61a98d986df52f890bd97e7262796d023698cb2309fa9b74fdd8974f04315b648748a0a8ee059e7d5257b293bfc409c0 - languageName: node - linkType: hard - -"fs.realpath@npm:^1.0.0": - version: 1.0.0 - resolution: "fs.realpath@npm:1.0.0" - checksum: 99ddea01a7e75aa276c250a04eedeffe5662bce66c65c07164ad6264f9de18fb21be9433ead460e54cff20e31721c811f4fb5d70591799df5f85dce6d6746fd0 - languageName: node - linkType: hard - -"fsevents@npm:~2.3.2": - version: 2.3.2 - resolution: "fsevents@npm:2.3.2" - dependencies: - node-gyp: latest - checksum: 97ade64e75091afee5265e6956cb72ba34db7819b4c3e94c431d4be2b19b8bb7a2d4116da417950c3425f17c8fe693d25e20212cac583ac1521ad066b77ae31f - conditions: os=darwin - languageName: node - linkType: hard - -"fsevents@patch:fsevents@~2.3.2#~builtin": - version: 2.3.2 - resolution: "fsevents@patch:fsevents@npm%3A2.3.2#~builtin::version=2.3.2&hash=df0bf1" - dependencies: - node-gyp: latest - conditions: os=darwin - languageName: node - linkType: hard - -"function-bind@npm:^1.1.1": - version: 1.1.1 - resolution: "function-bind@npm:1.1.1" - checksum: b32fbaebb3f8ec4969f033073b43f5c8befbb58f1a79e12f1d7490358150359ebd92f49e72ff0144f65f2c48ea2a605bff2d07965f548f6474fd8efd95bf361a - languageName: node - linkType: hard - -"gauge@npm:^4.0.3": - version: 4.0.4 - resolution: "gauge@npm:4.0.4" - dependencies: - aproba: ^1.0.3 || ^2.0.0 - color-support: ^1.1.3 - console-control-strings: ^1.1.0 - has-unicode: ^2.0.1 - signal-exit: ^3.0.7 - string-width: ^4.2.3 - strip-ansi: ^6.0.1 - wide-align: ^1.1.5 - checksum: 788b6bfe52f1dd8e263cda800c26ac0ca2ff6de0b6eee2fe0d9e3abf15e149b651bd27bf5226be10e6e3edb5c4e5d5985a5a1a98137e7a892f75eff76467ad2d - languageName: node - linkType: hard - -"gensync@npm:^1.0.0-beta.1, gensync@npm:^1.0.0-beta.2": - version: 1.0.0-beta.2 - resolution: "gensync@npm:1.0.0-beta.2" - checksum: a7437e58c6be12aa6c90f7730eac7fa9833dc78872b4ad2963d2031b00a3367a93f98aec75f9aaac7220848e4026d67a8655e870b24f20a543d103c0d65952ec - languageName: node - linkType: hard - -"get-intrinsic@npm:^1.0.2, get-intrinsic@npm:^1.1.1": - version: 1.1.3 - resolution: "get-intrinsic@npm:1.1.3" - dependencies: - function-bind: ^1.1.1 - has: ^1.0.3 - has-symbols: ^1.0.3 - checksum: 152d79e87251d536cf880ba75cfc3d6c6c50e12b3a64e1ea960e73a3752b47c69f46034456eae1b0894359ce3bc64c55c186f2811f8a788b75b638b06fab228a - languageName: node - linkType: hard - -"get-own-enumerable-property-symbols@npm:^3.0.0": - version: 3.0.2 - resolution: "get-own-enumerable-property-symbols@npm:3.0.2" - checksum: 8f0331f14159f939830884799f937343c8c0a2c330506094bc12cbee3665d88337fe97a4ea35c002cc2bdba0f5d9975ad7ec3abb925015cdf2a93e76d4759ede - languageName: node - linkType: hard - -"get-stream@npm:^4.1.0": - version: 4.1.0 - resolution: "get-stream@npm:4.1.0" - dependencies: - pump: ^3.0.0 - checksum: 443e1914170c15bd52ff8ea6eff6dfc6d712b031303e36302d2778e3de2506af9ee964d6124010f7818736dcfde05c04ba7ca6cc26883106e084357a17ae7d73 - languageName: node - linkType: hard - -"get-stream@npm:^5.1.0": - version: 5.2.0 - resolution: "get-stream@npm:5.2.0" - dependencies: - pump: ^3.0.0 - checksum: 8bc1a23174a06b2b4ce600df38d6c98d2ef6d84e020c1ddad632ad75bac4e092eeb40e4c09e0761c35fc2dbc5e7fff5dab5e763a383582c4a167dd69a905bd12 - languageName: node - linkType: hard - -"get-stream@npm:^6.0.0": - version: 6.0.1 - resolution: "get-stream@npm:6.0.1" - checksum: e04ecece32c92eebf5b8c940f51468cd53554dcbb0ea725b2748be583c9523d00128137966afce410b9b051eb2ef16d657cd2b120ca8edafcf5a65e81af63cad - languageName: node - linkType: hard - -"github-slugger@npm:^1.4.0": - version: 1.5.0 - resolution: "github-slugger@npm:1.5.0" - checksum: c70988224578b3bdaa25df65973ffc8c24594a77a28550c3636e495e49d17aef5cdb04c04fa3f1744babef98c61eecc6a43299a13ea7f3cc33d680bf9053ffbe - languageName: node - linkType: hard - -"glob-parent@npm:^5.1.2, glob-parent@npm:~5.1.2": - version: 5.1.2 - resolution: "glob-parent@npm:5.1.2" - dependencies: - is-glob: ^4.0.1 - checksum: f4f2bfe2425296e8a47e36864e4f42be38a996db40420fe434565e4480e3322f18eb37589617a98640c5dc8fdec1a387007ee18dbb1f3f5553409c34d17f425e - languageName: node - linkType: hard - -"glob-parent@npm:^6.0.1": - version: 6.0.2 - resolution: "glob-parent@npm:6.0.2" - dependencies: - is-glob: ^4.0.3 - checksum: c13ee97978bef4f55106b71e66428eb1512e71a7466ba49025fc2aec59a5bfb0954d5abd58fc5ee6c9b076eef4e1f6d3375c2e964b88466ca390da4419a786a8 - languageName: node - linkType: hard - -"glob-to-regexp@npm:^0.4.1": - version: 0.4.1 - resolution: "glob-to-regexp@npm:0.4.1" - checksum: e795f4e8f06d2a15e86f76e4d92751cf8bbfcf0157cea5c2f0f35678a8195a750b34096b1256e436f0cebc1883b5ff0888c47348443e69546a5a87f9e1eb1167 - languageName: node - linkType: hard - -"glob@npm:^7.0.0, glob@npm:^7.1.3, glob@npm:^7.1.4, glob@npm:^7.1.6, glob@npm:^7.2.0": - version: 7.2.3 - resolution: "glob@npm:7.2.3" - dependencies: - fs.realpath: ^1.0.0 - inflight: ^1.0.4 - inherits: 2 - minimatch: ^3.1.1 - once: ^1.3.0 - path-is-absolute: ^1.0.0 - checksum: 29452e97b38fa704dabb1d1045350fb2467cf0277e155aa9ff7077e90ad81d1ea9d53d3ee63bd37c05b09a065e90f16aec4a65f5b8de401d1dac40bc5605d133 - languageName: node - linkType: hard - -"glob@npm:^8.0.1": - version: 8.1.0 - resolution: "glob@npm:8.1.0" - dependencies: - fs.realpath: ^1.0.0 - inflight: ^1.0.4 - inherits: 2 - minimatch: ^5.0.1 - once: ^1.3.0 - checksum: 92fbea3221a7d12075f26f0227abac435de868dd0736a17170663783296d0dd8d3d532a5672b4488a439bf5d7fb85cdd07c11185d6cd39184f0385cbdfb86a47 - languageName: node - linkType: hard - -"global-dirs@npm:^3.0.0": - version: 3.0.1 - resolution: "global-dirs@npm:3.0.1" - dependencies: - ini: 2.0.0 - checksum: 70147b80261601fd40ac02a104581432325c1c47329706acd773f3a6ce99bb36d1d996038c85ccacd482ad22258ec233c586b6a91535b1a116b89663d49d6438 - languageName: node - linkType: hard - -"global-modules@npm:^2.0.0": - version: 2.0.0 - resolution: "global-modules@npm:2.0.0" - dependencies: - global-prefix: ^3.0.0 - checksum: d6197f25856c878c2fb5f038899f2dca7cbb2f7b7cf8999660c0104972d5cfa5c68b5a0a77fa8206bb536c3903a4615665acb9709b4d80846e1bb47eaef65430 - languageName: node - linkType: hard - -"global-prefix@npm:^3.0.0": - version: 3.0.0 - resolution: "global-prefix@npm:3.0.0" - dependencies: - ini: ^1.3.5 - kind-of: ^6.0.2 - which: ^1.3.1 - checksum: 8a82fc1d6f22c45484a4e34656cc91bf021a03e03213b0035098d605bfc612d7141f1e14a21097e8a0413b4884afd5b260df0b6a25605ce9d722e11f1df2881d - languageName: node - linkType: hard - -"globals@npm:^11.1.0": - version: 11.12.0 - resolution: "globals@npm:11.12.0" - checksum: 67051a45eca3db904aee189dfc7cd53c20c7d881679c93f6146ddd4c9f4ab2268e68a919df740d39c71f4445d2b38ee360fc234428baea1dbdfe68bbcb46979e - languageName: node - linkType: hard - -"globby@npm:^11.0.1, globby@npm:^11.0.4, globby@npm:^11.1.0": - version: 11.1.0 - resolution: "globby@npm:11.1.0" - dependencies: - array-union: ^2.1.0 - dir-glob: ^3.0.1 - fast-glob: ^3.2.9 - ignore: ^5.2.0 - merge2: ^1.4.1 - slash: ^3.0.0 - checksum: b4be8885e0cfa018fc783792942d53926c35c50b3aefd3fdcfb9d22c627639dc26bd2327a40a0b74b074100ce95bb7187bfeae2f236856aa3de183af7a02aea6 - languageName: node - linkType: hard - -"globby@npm:^13.1.1": - version: 13.1.3 - resolution: "globby@npm:13.1.3" - dependencies: - dir-glob: ^3.0.1 - fast-glob: ^3.2.11 - ignore: ^5.2.0 - merge2: ^1.4.1 - slash: ^4.0.0 - checksum: 93f06e02002cdf368f7e3d55bd59e7b00784c7cc8fe92c7ee5082cc7171ff6109fda45e1c97a80bb48bc811dedaf7843c7c9186f5f84bde4883ab630e13c43df - languageName: node - linkType: hard - -"got@npm:^9.6.0": - version: 9.6.0 - resolution: "got@npm:9.6.0" - dependencies: - "@sindresorhus/is": ^0.14.0 - "@szmarczak/http-timer": ^1.1.2 - cacheable-request: ^6.0.0 - decompress-response: ^3.3.0 - duplexer3: ^0.1.4 - get-stream: ^4.1.0 - lowercase-keys: ^1.0.1 - mimic-response: ^1.0.1 - p-cancelable: ^1.0.0 - to-readable-stream: ^1.0.0 - url-parse-lax: ^3.0.0 - checksum: 941807bd9704bacf5eb401f0cc1212ffa1f67c6642f2d028fd75900471c221b1da2b8527f4553d2558f3faeda62ea1cf31665f8b002c6137f5de8732f07370b0 - languageName: node - linkType: hard - -"graceful-fs@npm:^4.1.11, graceful-fs@npm:^4.1.2, graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.2.0, graceful-fs@npm:^4.2.4, graceful-fs@npm:^4.2.6, graceful-fs@npm:^4.2.9": - version: 4.2.10 - resolution: "graceful-fs@npm:4.2.10" - checksum: 3f109d70ae123951905d85032ebeae3c2a5a7a997430df00ea30df0e3a6c60cf6689b109654d6fdacd28810a053348c4d14642da1d075049e6be1ba5216218da - languageName: node - linkType: hard - -"gray-matter@npm:^4.0.3": - version: 4.0.3 - resolution: "gray-matter@npm:4.0.3" - dependencies: - js-yaml: ^3.13.1 - kind-of: ^6.0.2 - section-matter: ^1.0.0 - strip-bom-string: ^1.0.0 - checksum: 37717bd424344487d655392251ce8d8878a1275ee087003e61208fba3bfd59cbb73a85b2159abf742ae95e23db04964813fdc33ae18b074208428b2528205222 - languageName: node - linkType: hard - -"gzip-size@npm:^6.0.0": - version: 6.0.0 - resolution: "gzip-size@npm:6.0.0" - dependencies: - duplexer: ^0.1.2 - checksum: 2df97f359696ad154fc171dcb55bc883fe6e833bca7a65e457b9358f3cb6312405ed70a8da24a77c1baac0639906cd52358dc0ce2ec1a937eaa631b934c94194 - languageName: node - linkType: hard - -"handle-thing@npm:^2.0.0": - version: 2.0.1 - resolution: "handle-thing@npm:2.0.1" - checksum: 68071f313062315cd9dce55710e9496873945f1dd425107007058fc1629f93002a7649fcc3e464281ce02c7e809a35f5925504ab8105d972cf649f1f47cb7d6c - languageName: node - linkType: hard - -"has-flag@npm:^3.0.0": - version: 3.0.0 - resolution: "has-flag@npm:3.0.0" - checksum: 4a15638b454bf086c8148979aae044dd6e39d63904cd452d970374fa6a87623423da485dfb814e7be882e05c096a7ccf1ebd48e7e7501d0208d8384ff4dea73b - languageName: node - linkType: hard - -"has-flag@npm:^4.0.0": - version: 4.0.0 - resolution: "has-flag@npm:4.0.0" - checksum: 261a1357037ead75e338156b1f9452c016a37dcd3283a972a30d9e4a87441ba372c8b81f818cd0fbcd9c0354b4ae7e18b9e1afa1971164aef6d18c2b6095a8ad - languageName: node - linkType: hard - -"has-property-descriptors@npm:^1.0.0": - version: 1.0.0 - resolution: "has-property-descriptors@npm:1.0.0" - dependencies: - get-intrinsic: ^1.1.1 - checksum: a6d3f0a266d0294d972e354782e872e2fe1b6495b321e6ef678c9b7a06a40408a6891817350c62e752adced73a94ac903c54734fee05bf65b1905ee1368194bb - languageName: node - linkType: hard - -"has-symbols@npm:^1.0.3": - version: 1.0.3 - resolution: "has-symbols@npm:1.0.3" - checksum: a054c40c631c0d5741a8285010a0777ea0c068f99ed43e5d6eb12972da223f8af553a455132fdb0801bdcfa0e0f443c0c03a68d8555aa529b3144b446c3f2410 - languageName: node - linkType: hard - -"has-unicode@npm:^2.0.1": - version: 2.0.1 - resolution: "has-unicode@npm:2.0.1" - checksum: 1eab07a7436512db0be40a710b29b5dc21fa04880b7f63c9980b706683127e3c1b57cb80ea96d47991bdae2dfe479604f6a1ba410106ee1046a41d1bd0814400 - languageName: node - linkType: hard - -"has-yarn@npm:^2.1.0": - version: 2.1.0 - resolution: "has-yarn@npm:2.1.0" - checksum: 5eb1d0bb8518103d7da24532bdbc7124ffc6d367b5d3c10840b508116f2f1bcbcf10fd3ba843ff6e2e991bdf9969fd862d42b2ed58aade88343326c950b7e7f7 - languageName: node - linkType: hard - -"has@npm:^1.0.3": - version: 1.0.3 - resolution: "has@npm:1.0.3" - dependencies: - function-bind: ^1.1.1 - checksum: b9ad53d53be4af90ce5d1c38331e712522417d017d5ef1ebd0507e07c2fbad8686fffb8e12ddecd4c39ca9b9b47431afbb975b8abf7f3c3b82c98e9aad052792 - languageName: node - linkType: hard - -"hast-to-hyperscript@npm:^9.0.0": - version: 9.0.1 - resolution: "hast-to-hyperscript@npm:9.0.1" - dependencies: - "@types/unist": ^2.0.3 - comma-separated-tokens: ^1.0.0 - property-information: ^5.3.0 - space-separated-tokens: ^1.0.0 - style-to-object: ^0.3.0 - unist-util-is: ^4.0.0 - web-namespaces: ^1.0.0 - checksum: de570d789853018fff2fd38fc096549b9814e366b298f60c90c159a57018230eefc44d46a246027b0e2426ed9e99f2e270050bc183d5bdfe4c9487c320b392cd - languageName: node - linkType: hard - -"hast-util-from-parse5@npm:^6.0.0": - version: 6.0.1 - resolution: "hast-util-from-parse5@npm:6.0.1" - dependencies: - "@types/parse5": ^5.0.0 - hastscript: ^6.0.0 - property-information: ^5.0.0 - vfile: ^4.0.0 - vfile-location: ^3.2.0 - web-namespaces: ^1.0.0 - checksum: 4daa78201468af7779161e7caa2513c329830778e0528481ab16b3e1bcef4b831f6285b526aacdddbee802f3bd9d64df55f80f010591ea1916da535e3a923b83 - languageName: node - linkType: hard - -"hast-util-parse-selector@npm:^2.0.0": - version: 2.2.5 - resolution: "hast-util-parse-selector@npm:2.2.5" - checksum: 22ee4afbd11754562144cb3c4f3ec52524dafba4d90ee52512902d17cf11066d83b38f7bdf6ca571bbc2541f07ba30db0d234657b6ecb8ca4631587466459605 - languageName: node - linkType: hard - -"hast-util-raw@npm:6.0.1": - version: 6.0.1 - resolution: "hast-util-raw@npm:6.0.1" - dependencies: - "@types/hast": ^2.0.0 - hast-util-from-parse5: ^6.0.0 - hast-util-to-parse5: ^6.0.0 - html-void-elements: ^1.0.0 - parse5: ^6.0.0 - unist-util-position: ^3.0.0 - vfile: ^4.0.0 - web-namespaces: ^1.0.0 - xtend: ^4.0.0 - zwitch: ^1.0.0 - checksum: f6d960644f9fbbe0b92d0227b20a24d659cce021d5f9fd218e077154931b4524ee920217b7fd5a45ec2736ec1dee53de9209fe449f6f89454c01d225ff0e7851 - languageName: node - linkType: hard - -"hast-util-to-parse5@npm:^6.0.0": - version: 6.0.0 - resolution: "hast-util-to-parse5@npm:6.0.0" - dependencies: - hast-to-hyperscript: ^9.0.0 - property-information: ^5.0.0 - web-namespaces: ^1.0.0 - xtend: ^4.0.0 - zwitch: ^1.0.0 - checksum: 91a36244e37df1d63c8b7e865ab0c0a25bb7396155602be005cf71d95c348e709568f80e0f891681a3711d733ad896e70642dc41a05b574eddf2e07d285408a8 - languageName: node - linkType: hard - -"hastscript@npm:^6.0.0": - version: 6.0.0 - resolution: "hastscript@npm:6.0.0" - dependencies: - "@types/hast": ^2.0.0 - comma-separated-tokens: ^1.0.0 - hast-util-parse-selector: ^2.0.0 - property-information: ^5.0.0 - space-separated-tokens: ^1.0.0 - checksum: 5e50b85af0d2cb7c17979cb1ddca75d6b96b53019dd999b39e7833192c9004201c3cee6445065620ea05d0087d9ae147a4844e582d64868be5bc6b0232dfe52d - languageName: node - linkType: hard - -"he@npm:^1.2.0": - version: 1.2.0 - resolution: "he@npm:1.2.0" - bin: - he: bin/he - checksum: 3d4d6babccccd79c5c5a3f929a68af33360d6445587d628087f39a965079d84f18ce9c3d3f917ee1e3978916fc833bb8b29377c3b403f919426f91bc6965e7a7 - languageName: node - linkType: hard - -"history@npm:^4.9.0": - version: 4.10.1 - resolution: "history@npm:4.10.1" - dependencies: - "@babel/runtime": ^7.1.2 - loose-envify: ^1.2.0 - resolve-pathname: ^3.0.0 - tiny-invariant: ^1.0.2 - tiny-warning: ^1.0.0 - value-equal: ^1.0.1 - checksum: addd84bc4683929bae4400419b5af132ff4e4e9b311a0d4e224579ea8e184a6b80d7f72c55927e4fa117f69076a9e47ce082d8d0b422f1a9ddac7991490ca1d0 - languageName: node - linkType: hard - -"hoist-non-react-statics@npm:^3.1.0": - version: 3.3.2 - resolution: "hoist-non-react-statics@npm:3.3.2" - dependencies: - react-is: ^16.7.0 - checksum: b1538270429b13901ee586aa44f4cc3ecd8831c061d06cb8322e50ea17b3f5ce4d0e2e66394761e6c8e152cd8c34fb3b4b690116c6ce2bd45b18c746516cb9e8 - languageName: node - linkType: hard - -"hpack.js@npm:^2.1.6": - version: 2.1.6 - resolution: "hpack.js@npm:2.1.6" - dependencies: - inherits: ^2.0.1 - obuf: ^1.0.0 - readable-stream: ^2.0.1 - wbuf: ^1.1.0 - checksum: 2de144115197967ad6eeee33faf41096c6ba87078703c5cb011632dcfbffeb45784569e0cf02c317bd79c48375597c8ec88c30fff5bb0b023e8f654fb6e9c06e - languageName: node - linkType: hard - -"html-entities@npm:^2.3.2": - version: 2.3.3 - resolution: "html-entities@npm:2.3.3" - checksum: 92521501da8aa5f66fee27f0f022d6e9ceae62667dae93aa6a2f636afa71ad530b7fb24a18d4d6c124c9885970cac5f8a52dbf1731741161002816ae43f98196 - languageName: node - linkType: hard - -"html-minifier-terser@npm:^6.0.2, html-minifier-terser@npm:^6.1.0": - version: 6.1.0 - resolution: "html-minifier-terser@npm:6.1.0" - dependencies: - camel-case: ^4.1.2 - clean-css: ^5.2.2 - commander: ^8.3.0 - he: ^1.2.0 - param-case: ^3.0.4 - relateurl: ^0.2.7 - terser: ^5.10.0 - bin: - html-minifier-terser: cli.js - checksum: ac52c14006476f773204c198b64838477859dc2879490040efab8979c0207424da55d59df7348153f412efa45a0840a1ca3c757bf14767d23a15e3e389d37a93 - languageName: node - linkType: hard - -"html-tags@npm:^3.2.0": - version: 3.2.0 - resolution: "html-tags@npm:3.2.0" - checksum: a0c9e96ac26c84adad9cc66d15d6711a17f60acda8d987218f1d4cbaacd52864939b230e635cce5a1179f3ddab2a12b9231355617dfbae7945fcfec5e96d2041 - languageName: node - linkType: hard - -"html-void-elements@npm:^1.0.0": - version: 1.0.5 - resolution: "html-void-elements@npm:1.0.5" - checksum: 1a56f4f6cfbeb994c21701ff72b4b7f556fe784a70e5e554d1566ff775af83b91ea93f10664f039a67802d9f7b40d4a7f1ed20312bab47bd88d89bd792ea84ca - languageName: node - linkType: hard - -"html-webpack-plugin@npm:^5.5.0": - version: 5.5.0 - resolution: "html-webpack-plugin@npm:5.5.0" - dependencies: - "@types/html-minifier-terser": ^6.0.0 - html-minifier-terser: ^6.0.2 - lodash: ^4.17.21 - pretty-error: ^4.0.0 - tapable: ^2.0.0 - peerDependencies: - webpack: ^5.20.0 - checksum: f3d84d0df71fe2f5bac533cc74dce41ab058558cdcc6ff767d166a2abf1cf6fb8491d54d60ddbb34e95c00394e379ba52e0468e0284d1d0cc6a42987056e8219 - languageName: node - linkType: hard - -"htmlparser2@npm:^6.1.0": - version: 6.1.0 - resolution: "htmlparser2@npm:6.1.0" - dependencies: - domelementtype: ^2.0.1 - domhandler: ^4.0.0 - domutils: ^2.5.2 - entities: ^2.0.0 - checksum: 81a7b3d9c3bb9acb568a02fc9b1b81ffbfa55eae7f1c41ae0bf840006d1dbf54cb3aa245b2553e2c94db674840a9f0fdad7027c9a9d01a062065314039058c4e - languageName: node - linkType: hard - -"htmlparser2@npm:^8.0.1": - version: 8.0.1 - resolution: "htmlparser2@npm:8.0.1" - dependencies: - domelementtype: ^2.3.0 - domhandler: ^5.0.2 - domutils: ^3.0.1 - entities: ^4.3.0 - checksum: 06d5c71e8313597722bc429ae2a7a8333d77bd3ab07ccb916628384b37332027b047f8619448d8f4a3312b6609c6ea3302a4e77435d859e9e686999e6699ca39 - languageName: node - linkType: hard - -"http-cache-semantics@npm:^4.0.0, http-cache-semantics@npm:^4.1.0": - version: 4.1.0 - resolution: "http-cache-semantics@npm:4.1.0" - checksum: 974de94a81c5474be07f269f9fd8383e92ebb5a448208223bfb39e172a9dbc26feff250192ecc23b9593b3f92098e010406b0f24bd4d588d631f80214648ed42 - languageName: node - linkType: hard - -"http-deceiver@npm:^1.2.7": - version: 1.2.7 - resolution: "http-deceiver@npm:1.2.7" - checksum: 64d7d1ae3a6933eb0e9a94e6f27be4af45a53a96c3c34e84ff57113787105a89fff9d1c3df263ef63add823df019b0e8f52f7121e32393bb5ce9a713bf100b41 - languageName: node - linkType: hard - -"http-errors@npm:2.0.0": - version: 2.0.0 - resolution: "http-errors@npm:2.0.0" - dependencies: - depd: 2.0.0 - inherits: 2.0.4 - setprototypeof: 1.2.0 - statuses: 2.0.1 - toidentifier: 1.0.1 - checksum: 9b0a3782665c52ce9dc658a0d1560bcb0214ba5699e4ea15aefb2a496e2ca83db03ebc42e1cce4ac1f413e4e0d2d736a3fd755772c556a9a06853ba2a0b7d920 - languageName: node - linkType: hard - -"http-errors@npm:~1.6.2": - version: 1.6.3 - resolution: "http-errors@npm:1.6.3" - dependencies: - depd: ~1.1.2 - inherits: 2.0.3 - setprototypeof: 1.1.0 - statuses: ">= 1.4.0 < 2" - checksum: a9654ee027e3d5de305a56db1d1461f25709ac23267c6dc28cdab8323e3f96caa58a9a6a5e93ac15d7285cee0c2f019378c3ada9026e7fe19c872d695f27de7c - languageName: node - linkType: hard - -"http-parser-js@npm:>=0.5.1": - version: 0.5.8 - resolution: "http-parser-js@npm:0.5.8" - checksum: 6bbdf2429858e8cf13c62375b0bfb6dc3955ca0f32e58237488bc86cd2378f31d31785fd3ac4ce93f1c74e0189cf8823c91f5cb061696214fd368d2452dc871d - languageName: node - linkType: hard - -"http-proxy-agent@npm:^5.0.0": - version: 5.0.0 - resolution: "http-proxy-agent@npm:5.0.0" - dependencies: - "@tootallnate/once": 2 - agent-base: 6 - debug: 4 - checksum: e2ee1ff1656a131953839b2a19cd1f3a52d97c25ba87bd2559af6ae87114abf60971e498021f9b73f9fd78aea8876d1fb0d4656aac8a03c6caa9fc175f22b786 - languageName: node - linkType: hard - -"http-proxy-middleware@npm:^2.0.3": - version: 2.0.6 - resolution: "http-proxy-middleware@npm:2.0.6" - dependencies: - "@types/http-proxy": ^1.17.8 - http-proxy: ^1.18.1 - is-glob: ^4.0.1 - is-plain-obj: ^3.0.0 - micromatch: ^4.0.2 - peerDependencies: - "@types/express": ^4.17.13 - peerDependenciesMeta: - "@types/express": - optional: true - checksum: 2ee85bc878afa6cbf34491e972ece0f5be0a3e5c98a60850cf40d2a9a5356e1fc57aab6cff33c1fc37691b0121c3a42602d2b1956c52577e87a5b77b62ae1c3a - languageName: node - linkType: hard - -"http-proxy@npm:^1.18.1": - version: 1.18.1 - resolution: "http-proxy@npm:1.18.1" - dependencies: - eventemitter3: ^4.0.0 - follow-redirects: ^1.0.0 - requires-port: ^1.0.0 - checksum: f5bd96bf83e0b1e4226633dbb51f8b056c3e6321917df402deacec31dd7fe433914fc7a2c1831cf7ae21e69c90b3a669b8f434723e9e8b71fd68afe30737b6a5 - languageName: node - linkType: hard - -"https-proxy-agent@npm:^5.0.0": - version: 5.0.1 - resolution: "https-proxy-agent@npm:5.0.1" - dependencies: - agent-base: 6 - debug: 4 - checksum: 571fccdf38184f05943e12d37d6ce38197becdd69e58d03f43637f7fa1269cf303a7d228aa27e5b27bbd3af8f09fd938e1c91dcfefff2df7ba77c20ed8dfc765 - languageName: node - linkType: hard - -"human-signals@npm:^2.1.0": - version: 2.1.0 - resolution: "human-signals@npm:2.1.0" - checksum: b87fd89fce72391625271454e70f67fe405277415b48bcc0117ca73d31fa23a4241787afdc8d67f5a116cf37258c052f59ea82daffa72364d61351423848e3b8 - languageName: node - linkType: hard - -"humanize-ms@npm:^1.2.1": - version: 1.2.1 - resolution: "humanize-ms@npm:1.2.1" - dependencies: - ms: ^2.0.0 - checksum: 9c7a74a2827f9294c009266c82031030eae811ca87b0da3dceb8d6071b9bde22c9f3daef0469c3c533cc67a97d8a167cd9fc0389350e5f415f61a79b171ded16 - languageName: node - linkType: hard - -"iconv-lite@npm:0.4.24": - version: 0.4.24 - resolution: "iconv-lite@npm:0.4.24" - dependencies: - safer-buffer: ">= 2.1.2 < 3" - checksum: bd9f120f5a5b306f0bc0b9ae1edeb1577161503f5f8252a20f1a9e56ef8775c9959fd01c55f2d3a39d9a8abaf3e30c1abeb1895f367dcbbe0a8fd1c9ca01c4f6 - languageName: node - linkType: hard - -"iconv-lite@npm:^0.6.2": - version: 0.6.3 - resolution: "iconv-lite@npm:0.6.3" - dependencies: - safer-buffer: ">= 2.1.2 < 3.0.0" - checksum: 3f60d47a5c8fc3313317edfd29a00a692cc87a19cac0159e2ce711d0ebc9019064108323b5e493625e25594f11c6236647d8e256fbe7a58f4a3b33b89e6d30bf - languageName: node - linkType: hard - -"icss-utils@npm:^5.0.0, icss-utils@npm:^5.1.0": - version: 5.1.0 - resolution: "icss-utils@npm:5.1.0" - peerDependencies: - postcss: ^8.1.0 - checksum: 5c324d283552b1269cfc13a503aaaa172a280f914e5b81544f3803bc6f06a3b585fb79f66f7c771a2c052db7982c18bf92d001e3b47282e3abbbb4c4cc488d68 - languageName: node - linkType: hard - -"ieee754@npm:^1.1.13": - version: 1.2.1 - resolution: "ieee754@npm:1.2.1" - checksum: 5144c0c9815e54ada181d80a0b810221a253562422e7c6c3a60b1901154184f49326ec239d618c416c1c5945a2e197107aee8d986a3dd836b53dffefd99b5e7e - languageName: node - linkType: hard - -"ignore@npm:^5.2.0": - version: 5.2.4 - resolution: "ignore@npm:5.2.4" - checksum: 3d4c309c6006e2621659311783eaea7ebcd41fe4ca1d78c91c473157ad6666a57a2df790fe0d07a12300d9aac2888204d7be8d59f9aaf665b1c7fcdb432517ef - languageName: node - linkType: hard - -"image-size@npm:^1.0.1": - version: 1.0.2 - resolution: "image-size@npm:1.0.2" - dependencies: - queue: 6.0.2 - bin: - image-size: bin/image-size.js - checksum: 01745fdb47f87cecf538e69c63f9adc5bfab30a345345c2de91105f3afbd1bfcfba1256af02bf3323077b33b0004469a837e077bf0cbb9c907e9c1e9e7547585 - languageName: node - linkType: hard - -"immediate@npm:^3.2.3": - version: 3.3.0 - resolution: "immediate@npm:3.3.0" - checksum: 634b4305101e2452eba6c07d485bf3e415995e533c94b9c3ffbc37026fa1be34def6e4f2276b0dc2162a3f91628564a4bfb26280278b89d3ee54624e854d2f5f - languageName: node - linkType: hard - -"immer@npm:^9.0.7": - version: 9.0.18 - resolution: "immer@npm:9.0.18" - checksum: 85b3153dd01fce73c40591d0d6d7cd95878dab49f8ec4744c044adac05e0dab847b30c26259c478a5f87f974897be6df2780ff5bf86c8a0a27578fdeb300eb10 - languageName: node - linkType: hard - -"import-fresh@npm:^3.1.0, import-fresh@npm:^3.2.1, import-fresh@npm:^3.3.0": - version: 3.3.0 - resolution: "import-fresh@npm:3.3.0" - dependencies: - parent-module: ^1.0.0 - resolve-from: ^4.0.0 - checksum: 2cacfad06e652b1edc50be650f7ec3be08c5e5a6f6d12d035c440a42a8cc028e60a5b99ca08a77ab4d6b1346da7d971915828f33cdab730d3d42f08242d09baa - languageName: node - linkType: hard - -"import-lazy@npm:^2.1.0": - version: 2.1.0 - resolution: "import-lazy@npm:2.1.0" - checksum: 05294f3b9dd4971d3a996f0d2f176410fb6745d491d6e73376429189f5c1c3d290548116b2960a7cf3e89c20cdf11431739d1d2d8c54b84061980795010e803a - languageName: node - linkType: hard - -"imurmurhash@npm:^0.1.4": - version: 0.1.4 - resolution: "imurmurhash@npm:0.1.4" - checksum: 7cae75c8cd9a50f57dadd77482359f659eaebac0319dd9368bcd1714f55e65badd6929ca58569da2b6494ef13fdd5598cd700b1eba23f8b79c5f19d195a3ecf7 - languageName: node - linkType: hard - -"indent-string@npm:^4.0.0": - version: 4.0.0 - resolution: "indent-string@npm:4.0.0" - checksum: 824cfb9929d031dabf059bebfe08cf3137365e112019086ed3dcff6a0a7b698cb80cf67ccccde0e25b9e2d7527aa6cc1fed1ac490c752162496caba3e6699612 - languageName: node - linkType: hard - -"infer-owner@npm:^1.0.4": - version: 1.0.4 - resolution: "infer-owner@npm:1.0.4" - checksum: 181e732764e4a0611576466b4b87dac338972b839920b2a8cde43642e4ed6bd54dc1fb0b40874728f2a2df9a1b097b8ff83b56d5f8f8e3927f837fdcb47d8a89 - languageName: node - linkType: hard - -"infima@npm:0.2.0-alpha.43": - version: 0.2.0-alpha.43 - resolution: "infima@npm:0.2.0-alpha.43" - checksum: fc5f79240e940eddd750439511767092ccb4051e5e91d253ec7630a9e7ce691812da3aa0f05e46b4c0a95dbfadeae5714fd0073f8d2df12e5aaff0697a1d6aa2 - languageName: node - linkType: hard - -"inflight@npm:^1.0.4": - version: 1.0.6 - resolution: "inflight@npm:1.0.6" - dependencies: - once: ^1.3.0 - wrappy: 1 - checksum: f4f76aa072ce19fae87ce1ef7d221e709afb59d445e05d47fba710e85470923a75de35bfae47da6de1b18afc3ce83d70facf44cfb0aff89f0a3f45c0a0244dfd - languageName: node - linkType: hard - -"inherits@npm:2, inherits@npm:2.0.4, inherits@npm:^2.0.0, inherits@npm:^2.0.1, inherits@npm:^2.0.3, inherits@npm:^2.0.4, inherits@npm:~2.0.3": - version: 2.0.4 - resolution: "inherits@npm:2.0.4" - checksum: 4a48a733847879d6cf6691860a6b1e3f0f4754176e4d71494c41f3475553768b10f84b5ce1d40fbd0e34e6bfbb864ee35858ad4dd2cf31e02fc4a154b724d7f1 - languageName: node - linkType: hard - -"inherits@npm:2.0.3": - version: 2.0.3 - resolution: "inherits@npm:2.0.3" - checksum: 78cb8d7d850d20a5e9a7f3620db31483aa00ad5f722ce03a55b110e5a723539b3716a3b463e2b96ce3fe286f33afc7c131fa2f91407528ba80cea98a7545d4c0 - languageName: node - linkType: hard - -"ini@npm:2.0.0": - version: 2.0.0 - resolution: "ini@npm:2.0.0" - checksum: e7aadc5fb2e4aefc666d74ee2160c073995a4061556b1b5b4241ecb19ad609243b9cceafe91bae49c219519394bbd31512516cb22a3b1ca6e66d869e0447e84e - languageName: node - linkType: hard - -"ini@npm:^1.3.5, ini@npm:~1.3.0": - version: 1.3.8 - resolution: "ini@npm:1.3.8" - checksum: dfd98b0ca3a4fc1e323e38a6c8eb8936e31a97a918d3b377649ea15bdb15d481207a0dda1021efbd86b464cae29a0d33c1d7dcaf6c5672bee17fa849bc50a1b3 - languageName: node - linkType: hard - -"inline-style-parser@npm:0.1.1": - version: 0.1.1 - resolution: "inline-style-parser@npm:0.1.1" - checksum: 5d545056a3e1f2bf864c928a886a0e1656a3517127d36917b973de581bd54adc91b4bf1febcb0da054f204b4934763f1a4e09308b4d55002327cf1d48ac5d966 - languageName: node - linkType: hard - -"interpret@npm:^1.0.0": - version: 1.4.0 - resolution: "interpret@npm:1.4.0" - checksum: 2e5f51268b5941e4a17e4ef0575bc91ed0ab5f8515e3cf77486f7c14d13f3010df9c0959f37063dcc96e78d12dc6b0bb1b9e111cdfe69771f4656d2993d36155 - languageName: node - linkType: hard - -"invariant@npm:^2.2.4": - version: 2.2.4 - resolution: "invariant@npm:2.2.4" - dependencies: - loose-envify: ^1.0.0 - checksum: cc3182d793aad82a8d1f0af697b462939cb46066ec48bbf1707c150ad5fad6406137e91a262022c269702e01621f35ef60269f6c0d7fd178487959809acdfb14 - languageName: node - linkType: hard - -"ip@npm:^2.0.0": - version: 2.0.0 - resolution: "ip@npm:2.0.0" - checksum: cfcfac6b873b701996d71ec82a7dd27ba92450afdb421e356f44044ed688df04567344c36cbacea7d01b1c39a4c732dc012570ebe9bebfb06f27314bca625349 - languageName: node - linkType: hard - -"ipaddr.js@npm:1.9.1": - version: 1.9.1 - resolution: "ipaddr.js@npm:1.9.1" - checksum: f88d3825981486f5a1942414c8d77dd6674dd71c065adcfa46f578d677edcb99fda25af42675cb59db492fdf427b34a5abfcde3982da11a8fd83a500b41cfe77 - languageName: node - linkType: hard - -"ipaddr.js@npm:^2.0.1": - version: 2.0.1 - resolution: "ipaddr.js@npm:2.0.1" - checksum: dd194a394a843d470f88d17191b0948f383ed1c8e320813f850c336a0fcb5e9215d97ec26ca35ab4fbbd31392c8b3467f3e8344628029ed3710b2ff6b5d1034e - languageName: node - linkType: hard - -"is-alphabetical@npm:1.0.4, is-alphabetical@npm:^1.0.0": - version: 1.0.4 - resolution: "is-alphabetical@npm:1.0.4" - checksum: 6508cce44fd348f06705d377b260974f4ce68c74000e7da4045f0d919e568226dc3ce9685c5a2af272195384df6930f748ce9213fc9f399b5d31b362c66312cb - languageName: node - linkType: hard - -"is-alphanumerical@npm:^1.0.0": - version: 1.0.4 - resolution: "is-alphanumerical@npm:1.0.4" - dependencies: - is-alphabetical: ^1.0.0 - is-decimal: ^1.0.0 - checksum: e2e491acc16fcf5b363f7c726f666a9538dba0a043665740feb45bba1652457a73441e7c5179c6768a638ed396db3437e9905f403644ec7c468fb41f4813d03f - languageName: node - linkType: hard - -"is-arrayish@npm:^0.2.1": - version: 0.2.1 - resolution: "is-arrayish@npm:0.2.1" - checksum: eef4417e3c10e60e2c810b6084942b3ead455af16c4509959a27e490e7aee87cfb3f38e01bbde92220b528a0ee1a18d52b787e1458ee86174d8c7f0e58cd488f - languageName: node - linkType: hard - -"is-binary-path@npm:~2.1.0": - version: 2.1.0 - resolution: "is-binary-path@npm:2.1.0" - dependencies: - binary-extensions: ^2.0.0 - checksum: 84192eb88cff70d320426f35ecd63c3d6d495da9d805b19bc65b518984b7c0760280e57dbf119b7e9be6b161784a5a673ab2c6abe83abb5198a432232ad5b35c - languageName: node - linkType: hard - -"is-buffer@npm:^2.0.0": - version: 2.0.5 - resolution: "is-buffer@npm:2.0.5" - checksum: 764c9ad8b523a9f5a32af29bdf772b08eb48c04d2ad0a7240916ac2688c983bf5f8504bf25b35e66240edeb9d9085461f9b5dae1f3d2861c6b06a65fe983de42 - languageName: node - linkType: hard - -"is-ci@npm:^2.0.0": - version: 2.0.0 - resolution: "is-ci@npm:2.0.0" - dependencies: - ci-info: ^2.0.0 - bin: - is-ci: bin.js - checksum: 77b869057510f3efa439bbb36e9be429d53b3f51abd4776eeea79ab3b221337fe1753d1e50058a9e2c650d38246108beffb15ccfd443929d77748d8c0cc90144 - languageName: node - linkType: hard - -"is-core-module@npm:^2.9.0": - version: 2.11.0 - resolution: "is-core-module@npm:2.11.0" - dependencies: - has: ^1.0.3 - checksum: f96fd490c6b48eb4f6d10ba815c6ef13f410b0ba6f7eb8577af51697de523e5f2cd9de1c441b51d27251bf0e4aebc936545e33a5d26d5d51f28d25698d4a8bab - languageName: node - linkType: hard - -"is-decimal@npm:^1.0.0": - version: 1.0.4 - resolution: "is-decimal@npm:1.0.4" - checksum: ed483a387517856dc395c68403a10201fddcc1b63dc56513fbe2fe86ab38766120090ecdbfed89223d84ca8b1cd28b0641b93cb6597b6e8f4c097a7c24e3fb96 - languageName: node - linkType: hard - -"is-docker@npm:^2.0.0, is-docker@npm:^2.1.1": - version: 2.2.1 - resolution: "is-docker@npm:2.2.1" - bin: - is-docker: cli.js - checksum: 3fef7ddbf0be25958e8991ad941901bf5922ab2753c46980b60b05c1bf9c9c2402d35e6dc32e4380b980ef5e1970a5d9d5e5aa2e02d77727c3b6b5e918474c56 - languageName: node - linkType: hard - -"is-extendable@npm:^0.1.0": - version: 0.1.1 - resolution: "is-extendable@npm:0.1.1" - checksum: 3875571d20a7563772ecc7a5f36cb03167e9be31ad259041b4a8f73f33f885441f778cee1f1fe0085eb4bc71679b9d8c923690003a36a6a5fdf8023e6e3f0672 - languageName: node - linkType: hard - -"is-extglob@npm:^2.1.1": - version: 2.1.1 - resolution: "is-extglob@npm:2.1.1" - checksum: df033653d06d0eb567461e58a7a8c9f940bd8c22274b94bf7671ab36df5719791aae15eef6d83bbb5e23283967f2f984b8914559d4449efda578c775c4be6f85 - languageName: node - linkType: hard - -"is-fullwidth-code-point@npm:^3.0.0": - version: 3.0.0 - resolution: "is-fullwidth-code-point@npm:3.0.0" - checksum: 44a30c29457c7fb8f00297bce733f0a64cd22eca270f83e58c105e0d015e45c019491a4ab2faef91ab51d4738c670daff901c799f6a700e27f7314029e99e348 - languageName: node - linkType: hard - -"is-glob@npm:^4.0.1, is-glob@npm:^4.0.3, is-glob@npm:~4.0.1": - version: 4.0.3 - resolution: "is-glob@npm:4.0.3" - dependencies: - is-extglob: ^2.1.1 - checksum: d381c1319fcb69d341cc6e6c7cd588e17cd94722d9a32dbd60660b993c4fb7d0f19438674e68dfec686d09b7c73139c9166b47597f846af387450224a8101ab4 - languageName: node - linkType: hard - -"is-hexadecimal@npm:^1.0.0": - version: 1.0.4 - resolution: "is-hexadecimal@npm:1.0.4" - checksum: a452e047587b6069332d83130f54d30da4faf2f2ebaa2ce6d073c27b5703d030d58ed9e0b729c8e4e5b52c6f1dab26781bb77b7bc6c7805f14f320e328ff8cd5 - languageName: node - linkType: hard - -"is-installed-globally@npm:^0.4.0": - version: 0.4.0 - resolution: "is-installed-globally@npm:0.4.0" - dependencies: - global-dirs: ^3.0.0 - is-path-inside: ^3.0.2 - checksum: 3359840d5982d22e9b350034237b2cda2a12bac1b48a721912e1ab8e0631dd07d45a2797a120b7b87552759a65ba03e819f1bd63f2d7ab8657ec0b44ee0bf399 - languageName: node - linkType: hard - -"is-interactive@npm:^1.0.0": - version: 1.0.0 - resolution: "is-interactive@npm:1.0.0" - checksum: 824808776e2d468b2916cdd6c16acacebce060d844c35ca6d82267da692e92c3a16fdba624c50b54a63f38bdc4016055b6f443ce57d7147240de4f8cdabaf6f9 - languageName: node - linkType: hard - -"is-lambda@npm:^1.0.1": - version: 1.0.1 - resolution: "is-lambda@npm:1.0.1" - checksum: 93a32f01940220532e5948538699ad610d5924ac86093fcee83022252b363eb0cc99ba53ab084a04e4fb62bf7b5731f55496257a4c38adf87af9c4d352c71c35 - languageName: node - linkType: hard - -"is-npm@npm:^5.0.0": - version: 5.0.0 - resolution: "is-npm@npm:5.0.0" - checksum: 9baff02b0c69a3d3c79b162cb2f9e67fb40ef6d172c16601b2e2471c21e9a4fa1fc9885a308d7bc6f3a3cd2a324c27fa0bf284c133c3349bb22571ab70d041cc - languageName: node - linkType: hard - -"is-number@npm:^7.0.0": - version: 7.0.0 - resolution: "is-number@npm:7.0.0" - checksum: 456ac6f8e0f3111ed34668a624e45315201dff921e5ac181f8ec24923b99e9f32ca1a194912dc79d539c97d33dba17dc635202ff0b2cf98326f608323276d27a - languageName: node - linkType: hard - -"is-obj@npm:^1.0.1": - version: 1.0.1 - resolution: "is-obj@npm:1.0.1" - checksum: 3ccf0efdea12951e0b9c784e2b00e77e87b2f8bd30b42a498548a8afcc11b3287342a2030c308e473e93a7a19c9ea7854c99a8832a476591c727df2a9c79796c - languageName: node - linkType: hard - -"is-obj@npm:^2.0.0": - version: 2.0.0 - resolution: "is-obj@npm:2.0.0" - checksum: c9916ac8f4621962a42f5e80e7ffdb1d79a3fab7456ceaeea394cd9e0858d04f985a9ace45be44433bf605673c8be8810540fe4cc7f4266fc7526ced95af5a08 - languageName: node - linkType: hard - -"is-path-cwd@npm:^2.2.0": - version: 2.2.0 - resolution: "is-path-cwd@npm:2.2.0" - checksum: 46a840921bb8cc0dc7b5b423a14220e7db338072a4495743a8230533ce78812dc152548c86f4b828411fe98c5451959f07cf841c6a19f611e46600bd699e8048 - languageName: node - linkType: hard - -"is-path-inside@npm:^3.0.2": - version: 3.0.3 - resolution: "is-path-inside@npm:3.0.3" - checksum: abd50f06186a052b349c15e55b182326f1936c89a78bf6c8f2b707412517c097ce04bc49a0ca221787bc44e1049f51f09a2ffb63d22899051988d3a618ba13e9 - languageName: node - linkType: hard - -"is-plain-obj@npm:^2.0.0": - version: 2.1.0 - resolution: "is-plain-obj@npm:2.1.0" - checksum: cec9100678b0a9fe0248a81743041ed990c2d4c99f893d935545cfbc42876cbe86d207f3b895700c690ad2fa520e568c44afc1605044b535a7820c1d40e38daa - languageName: node - linkType: hard - -"is-plain-obj@npm:^3.0.0": - version: 3.0.0 - resolution: "is-plain-obj@npm:3.0.0" - checksum: a6ebdf8e12ab73f33530641972a72a4b8aed6df04f762070d823808303e4f76d87d5ea5bd76f96a7bbe83d93f04ac7764429c29413bd9049853a69cb630fb21c - languageName: node - linkType: hard - -"is-plain-object@npm:^2.0.4": - version: 2.0.4 - resolution: "is-plain-object@npm:2.0.4" - dependencies: - isobject: ^3.0.1 - checksum: 2a401140cfd86cabe25214956ae2cfee6fbd8186809555cd0e84574f88de7b17abacb2e477a6a658fa54c6083ecbda1e6ae404c7720244cd198903848fca70ca - languageName: node - linkType: hard - -"is-regexp@npm:^1.0.0": - version: 1.0.0 - resolution: "is-regexp@npm:1.0.0" - checksum: be692828e24cba479ec33644326fa98959ec68ba77965e0291088c1a741feaea4919d79f8031708f85fd25e39de002b4520622b55460660b9c369e6f7187faef - languageName: node - linkType: hard - -"is-root@npm:^2.1.0": - version: 2.1.0 - resolution: "is-root@npm:2.1.0" - checksum: 37eea0822a2a9123feb58a9d101558ba276771a6d830f87005683349a9acff15958a9ca590a44e778c6b335660b83e85c744789080d734f6081a935a4880aee2 - languageName: node - linkType: hard - -"is-stream@npm:^2.0.0": - version: 2.0.1 - resolution: "is-stream@npm:2.0.1" - checksum: b8e05ccdf96ac330ea83c12450304d4a591f9958c11fd17bed240af8d5ffe08aedafa4c0f4cfccd4d28dc9d4d129daca1023633d5c11601a6cbc77521f6fae66 - languageName: node - linkType: hard - -"is-typedarray@npm:^1.0.0": - version: 1.0.0 - resolution: "is-typedarray@npm:1.0.0" - checksum: 3508c6cd0a9ee2e0df2fa2e9baabcdc89e911c7bd5cf64604586697212feec525aa21050e48affb5ffc3df20f0f5d2e2cf79b08caa64e1ccc9578e251763aef7 - languageName: node - linkType: hard - -"is-unicode-supported@npm:^0.1.0": - version: 0.1.0 - resolution: "is-unicode-supported@npm:0.1.0" - checksum: a2aab86ee7712f5c2f999180daaba5f361bdad1efadc9610ff5b8ab5495b86e4f627839d085c6530363c6d6d4ecbde340fb8e54bdb83da4ba8e0865ed5513c52 - languageName: node - linkType: hard - -"is-whitespace-character@npm:^1.0.0": - version: 1.0.4 - resolution: "is-whitespace-character@npm:1.0.4" - checksum: adab8ad9847ccfcb6f1b7000b8f622881b5ba2a09ce8be2794a6d2b10c3af325b469fc562c9fb889f468eed27be06e227ac609d0aa1e3a59b4dbcc88e2b0418e - languageName: node - linkType: hard - -"is-word-character@npm:^1.0.0": - version: 1.0.4 - resolution: "is-word-character@npm:1.0.4" - checksum: 1821d6c6abe5bc0b3abe3fdc565d66d7c8a74ea4e93bc77b4a47d26e2e2a306d6ab7d92b353b0d2b182869e3ecaa8f4a346c62d0e31d38ebc0ceaf7cae182c3f - languageName: node - linkType: hard - -"is-wsl@npm:^2.2.0": - version: 2.2.0 - resolution: "is-wsl@npm:2.2.0" - dependencies: - is-docker: ^2.0.0 - checksum: 20849846ae414997d290b75e16868e5261e86ff5047f104027026fd61d8b5a9b0b3ade16239f35e1a067b3c7cc02f70183cb661010ed16f4b6c7c93dad1b19d8 - languageName: node - linkType: hard - -"is-yarn-global@npm:^0.3.0": - version: 0.3.0 - resolution: "is-yarn-global@npm:0.3.0" - checksum: bca013d65fee2862024c9fbb3ba13720ffca2fe750095174c1c80922fdda16402b5c233f5ac9e265bc12ecb5446e7b7f519a32d9541788f01d4d44e24d2bf481 - languageName: node - linkType: hard - -"isarray@npm:0.0.1": - version: 0.0.1 - resolution: "isarray@npm:0.0.1" - checksum: 49191f1425681df4a18c2f0f93db3adb85573bcdd6a4482539d98eac9e705d8961317b01175627e860516a2fc45f8f9302db26e5a380a97a520e272e2a40a8d4 - languageName: node - linkType: hard - -"isarray@npm:~1.0.0": - version: 1.0.0 - resolution: "isarray@npm:1.0.0" - checksum: f032df8e02dce8ec565cf2eb605ea939bdccea528dbcf565cdf92bfa2da9110461159d86a537388ef1acef8815a330642d7885b29010e8f7eac967c9993b65ab - languageName: node - linkType: hard - -"isexe@npm:^2.0.0": - version: 2.0.0 - resolution: "isexe@npm:2.0.0" - checksum: 26bf6c5480dda5161c820c5b5c751ae1e766c587b1f951ea3fcfc973bafb7831ae5b54a31a69bd670220e42e99ec154475025a468eae58ea262f813fdc8d1c62 - languageName: node - linkType: hard - -"isobject@npm:^3.0.1": - version: 3.0.1 - resolution: "isobject@npm:3.0.1" - checksum: db85c4c970ce30693676487cca0e61da2ca34e8d4967c2e1309143ff910c207133a969f9e4ddb2dc6aba670aabce4e0e307146c310350b298e74a31f7d464703 - languageName: node - linkType: hard - -"jest-util@npm:^29.3.1": - version: 29.3.1 - resolution: "jest-util@npm:29.3.1" - dependencies: - "@jest/types": ^29.3.1 - "@types/node": "*" - chalk: ^4.0.0 - ci-info: ^3.2.0 - graceful-fs: ^4.2.9 - picomatch: ^2.2.3 - checksum: f67c60f062b94d21cb60e84b3b812d64b7bfa81fe980151de5c17a74eb666042d0134e2e756d099b7606a1fcf1d633824d2e58197d01d76dde1e2dc00dfcd413 - languageName: node - linkType: hard - -"jest-worker@npm:^27.4.5": - version: 27.5.1 - resolution: "jest-worker@npm:27.5.1" - dependencies: - "@types/node": "*" - merge-stream: ^2.0.0 - supports-color: ^8.0.0 - checksum: 98cd68b696781caed61c983a3ee30bf880b5bd021c01d98f47b143d4362b85d0737f8523761e2713d45e18b4f9a2b98af1eaee77afade4111bb65c77d6f7c980 - languageName: node - linkType: hard - -"jest-worker@npm:^29.1.2": - version: 29.3.1 - resolution: "jest-worker@npm:29.3.1" - dependencies: - "@types/node": "*" - jest-util: ^29.3.1 - merge-stream: ^2.0.0 - supports-color: ^8.0.0 - checksum: 38687fcbdc2b7ddc70bbb5dfc703ae095b46b3c7f206d62ecdf5f4d16e336178e217302138f3b906125576bb1cfe4cfe8d43681276fa5899d138ed9422099fb3 - languageName: node - linkType: hard - -"joi@npm:^17.6.0": - version: 17.7.0 - resolution: "joi@npm:17.7.0" - dependencies: - "@hapi/hoek": ^9.0.0 - "@hapi/topo": ^5.0.0 - "@sideway/address": ^4.1.3 - "@sideway/formula": ^3.0.0 - "@sideway/pinpoint": ^2.0.0 - checksum: 767a847936cb66787256c4351ff86e1b9e8d7383cbe81a5c827064032c2a8e8b6e938baef5ad32c4035fe4c56e537bd90aa2a952be8a0658601c920cdeb4fb3c - languageName: node - linkType: hard - -"js-tokens@npm:^3.0.0 || ^4.0.0, js-tokens@npm:^4.0.0": - version: 4.0.0 - resolution: "js-tokens@npm:4.0.0" - checksum: 8a95213a5a77deb6cbe94d86340e8d9ace2b93bc367790b260101d2f36a2eaf4e4e22d9fa9cf459b38af3a32fb4190e638024cf82ec95ef708680e405ea7cc78 - languageName: node - linkType: hard - -"js-yaml@npm:^3.13.1": - version: 3.14.1 - resolution: "js-yaml@npm:3.14.1" - dependencies: - argparse: ^1.0.7 - esprima: ^4.0.0 - bin: - js-yaml: bin/js-yaml.js - checksum: bef146085f472d44dee30ec34e5cf36bf89164f5d585435a3d3da89e52622dff0b188a580e4ad091c3341889e14cb88cac6e4deb16dc5b1e9623bb0601fc255c - languageName: node - linkType: hard - -"js-yaml@npm:^4.1.0": - version: 4.1.0 - resolution: "js-yaml@npm:4.1.0" - dependencies: - argparse: ^2.0.1 - bin: - js-yaml: bin/js-yaml.js - checksum: c7830dfd456c3ef2c6e355cc5a92e6700ceafa1d14bba54497b34a99f0376cecbb3e9ac14d3e5849b426d5a5140709a66237a8c991c675431271c4ce5504151a - languageName: node - linkType: hard - -"jsesc@npm:^2.5.1": - version: 2.5.2 - resolution: "jsesc@npm:2.5.2" - bin: - jsesc: bin/jsesc - checksum: 4dc190771129e12023f729ce20e1e0bfceac84d73a85bc3119f7f938843fe25a4aeccb54b6494dce26fcf263d815f5f31acdefac7cc9329efb8422a4f4d9fa9d - languageName: node - linkType: hard - -"jsesc@npm:~0.5.0": - version: 0.5.0 - resolution: "jsesc@npm:0.5.0" - bin: - jsesc: bin/jsesc - checksum: b8b44cbfc92f198ad972fba706ee6a1dfa7485321ee8c0b25f5cedd538dcb20cde3197de16a7265430fce8277a12db066219369e3d51055038946039f6e20e17 - languageName: node - linkType: hard - -"json-buffer@npm:3.0.0": - version: 3.0.0 - resolution: "json-buffer@npm:3.0.0" - checksum: 0cecacb8025370686a916069a2ff81f7d55167421b6aa7270ee74e244012650dd6bce22b0852202ea7ff8624fce50ff0ec1bdf95914ccb4553426e290d5a63fa - languageName: node - linkType: hard - -"json-parse-even-better-errors@npm:^2.3.0, json-parse-even-better-errors@npm:^2.3.1": - version: 2.3.1 - resolution: "json-parse-even-better-errors@npm:2.3.1" - checksum: 798ed4cf3354a2d9ccd78e86d2169515a0097a5c133337807cdf7f1fc32e1391d207ccfc276518cc1d7d8d4db93288b8a50ba4293d212ad1336e52a8ec0a941f - languageName: node - linkType: hard - -"json-schema-traverse@npm:^0.4.1": - version: 0.4.1 - resolution: "json-schema-traverse@npm:0.4.1" - checksum: 7486074d3ba247769fda17d5181b345c9fb7d12e0da98b22d1d71a5db9698d8b4bd900a3ec1a4ffdd60846fc2556274a5c894d0c48795f14cb03aeae7b55260b - languageName: node - linkType: hard - -"json-schema-traverse@npm:^1.0.0": - version: 1.0.0 - resolution: "json-schema-traverse@npm:1.0.0" - checksum: 02f2f466cdb0362558b2f1fd5e15cce82ef55d60cd7f8fa828cf35ba74330f8d767fcae5c5c2adb7851fa811766c694b9405810879bc4e1ddd78a7c0e03658ad - languageName: node - linkType: hard - -"json5@npm:^2.1.2, json5@npm:^2.2.2": - version: 2.2.3 - resolution: "json5@npm:2.2.3" - bin: - json5: lib/cli.js - checksum: 2a7436a93393830bce797d4626275152e37e877b265e94ca69c99e3d20c2b9dab021279146a39cdb700e71b2dd32a4cebd1514cd57cee102b1af906ce5040349 - languageName: node - linkType: hard - -"jsonfile@npm:^6.0.1": - version: 6.1.0 - resolution: "jsonfile@npm:6.1.0" - dependencies: - graceful-fs: ^4.1.6 - universalify: ^2.0.0 - dependenciesMeta: - graceful-fs: - optional: true - checksum: 7af3b8e1ac8fe7f1eccc6263c6ca14e1966fcbc74b618d3c78a0a2075579487547b94f72b7a1114e844a1e15bb00d440e5d1720bfc4612d790a6f285d5ea8354 - languageName: node - linkType: hard - -"keyv@npm:^3.0.0": - version: 3.1.0 - resolution: "keyv@npm:3.1.0" - dependencies: - json-buffer: 3.0.0 - checksum: bb7e8f3acffdbafbc2dd5b63f377fe6ec4c0e2c44fc82720449ef8ab54f4a7ce3802671ed94c0f475ae0a8549703353a2124561fcf3317010c141b32ca1ce903 - languageName: node - linkType: hard - -"kind-of@npm:^6.0.0, kind-of@npm:^6.0.2": - version: 6.0.3 - resolution: "kind-of@npm:6.0.3" - checksum: 3ab01e7b1d440b22fe4c31f23d8d38b4d9b91d9f291df683476576493d5dfd2e03848a8b05813dd0c3f0e835bc63f433007ddeceb71f05cb25c45ae1b19c6d3b - languageName: node - linkType: hard - -"klaw-sync@npm:^6.0.0": - version: 6.0.0 - resolution: "klaw-sync@npm:6.0.0" - dependencies: - graceful-fs: ^4.1.11 - checksum: 0da397f8961313c3ef8f79fb63af9002cde5a8fb2aeb1a37351feff0dd6006129c790400c3f5c3b4e757bedcabb13d21ec0a5eaef5a593d59515d4f2c291e475 - languageName: node - linkType: hard - -"kleur@npm:^3.0.3": - version: 3.0.3 - resolution: "kleur@npm:3.0.3" - checksum: df82cd1e172f957bae9c536286265a5cdbd5eeca487cb0a3b2a7b41ef959fc61f8e7c0e9aeea9c114ccf2c166b6a8dd45a46fd619c1c569d210ecd2765ad5169 - languageName: node - linkType: hard - -"klona@npm:^2.0.5": - version: 2.0.6 - resolution: "klona@npm:2.0.6" - checksum: ac9ee3732e42b96feb67faae4d27cf49494e8a3bf3fa7115ce242fe04786788e0aff4741a07a45a2462e2079aa983d73d38519c85d65b70ef11447bbc3c58ce7 - languageName: node - linkType: hard - -"latest-version@npm:^5.1.0": - version: 5.1.0 - resolution: "latest-version@npm:5.1.0" - dependencies: - package-json: ^6.3.0 - checksum: fbc72b071eb66c40f652441fd783a9cca62f08bf42433651937f078cd9ef94bf728ec7743992777826e4e89305aef24f234b515e6030503a2cbee7fc9bdc2c0f - languageName: node - linkType: hard - -"lazyvim@workspace:.": - version: 0.0.0-use.local - resolution: "lazyvim@workspace:." - dependencies: - "@docusaurus/core": latest - "@docusaurus/module-type-aliases": latest - "@docusaurus/preset-classic": latest - "@easyops-cn/docusaurus-search-local": ^0.33.6 - "@mdx-js/react": ^1.6.22 - "@tsconfig/docusaurus": ^1.0.5 - "@types/mdx-js__react": ^1.5.5 - "@types/node": ^18.11.18 - "@types/react": ^17.0.53 - "@types/react-dom": ^17.0.18 - clsx: ^1.2.1 - prism-react-renderer: ^1.3.5 - react: ^17.0.2 - react-dom: ^17.0.2 - typescript: ^4.7.4 - typesync: ^0.9.2 - languageName: unknown - linkType: soft - -"leven@npm:^3.1.0": - version: 3.1.0 - resolution: "leven@npm:3.1.0" - checksum: 638401d534585261b6003db9d99afd244dfe82d75ddb6db5c0df412842d5ab30b2ef18de471aaec70fe69a46f17b4ae3c7f01d8a4e6580ef7adb9f4273ad1e55 - languageName: node - linkType: hard - -"lilconfig@npm:^2.0.3": - version: 2.0.6 - resolution: "lilconfig@npm:2.0.6" - checksum: 40a3cd72f103b1be5975f2ac1850810b61d4053e20ab09be8d3aeddfe042187e1ba70b4651a7e70f95efa1642e7dc8b2ae395b317b7d7753b241b43cef7c0f7d - languageName: node - linkType: hard - -"lines-and-columns@npm:^1.1.6": - version: 1.2.4 - resolution: "lines-and-columns@npm:1.2.4" - checksum: 0c37f9f7fa212b38912b7145e1cd16a5f3cd34d782441c3e6ca653485d326f58b3caccda66efce1c5812bde4961bbde3374fae4b0d11bf1226152337f3894aa5 - languageName: node - linkType: hard - -"loader-runner@npm:^4.2.0": - version: 4.3.0 - resolution: "loader-runner@npm:4.3.0" - checksum: a90e00dee9a16be118ea43fec3192d0b491fe03a32ed48a4132eb61d498f5536a03a1315531c19d284392a8726a4ecad71d82044c28d7f22ef62e029bf761569 - languageName: node - linkType: hard - -"loader-utils@npm:^2.0.0": - version: 2.0.4 - resolution: "loader-utils@npm:2.0.4" - dependencies: - big.js: ^5.2.2 - emojis-list: ^3.0.0 - json5: ^2.1.2 - checksum: a5281f5fff1eaa310ad5e1164095689443630f3411e927f95031ab4fb83b4a98f388185bb1fe949e8ab8d4247004336a625e9255c22122b815bb9a4c5d8fc3b7 - languageName: node - linkType: hard - -"loader-utils@npm:^3.2.0": - version: 3.2.1 - resolution: "loader-utils@npm:3.2.1" - checksum: 4e3ea054cdc8be1ab1f1238f49f42fdf0483039eff920fb1d442039f3f0ad4ebd11fb8e584ccdf2cb7e3c56b3d40c1832416e6408a55651b843da288960cc792 - languageName: node - linkType: hard - -"locate-path@npm:^3.0.0": - version: 3.0.0 - resolution: "locate-path@npm:3.0.0" - dependencies: - p-locate: ^3.0.0 - path-exists: ^3.0.0 - checksum: 53db3996672f21f8b0bf2a2c645ae2c13ffdae1eeecfcd399a583bce8516c0b88dcb4222ca6efbbbeb6949df7e46860895be2c02e8d3219abd373ace3bfb4e11 - languageName: node - linkType: hard - -"locate-path@npm:^5.0.0": - version: 5.0.0 - resolution: "locate-path@npm:5.0.0" - dependencies: - p-locate: ^4.1.0 - checksum: 83e51725e67517287d73e1ded92b28602e3ae5580b301fe54bfb76c0c723e3f285b19252e375712316774cf52006cb236aed5704692c32db0d5d089b69696e30 - languageName: node - linkType: hard - -"locate-path@npm:^6.0.0": - version: 6.0.0 - resolution: "locate-path@npm:6.0.0" - dependencies: - p-locate: ^5.0.0 - checksum: 72eb661788a0368c099a184c59d2fee760b3831c9c1c33955e8a19ae4a21b4116e53fa736dc086cdeb9fce9f7cc508f2f92d2d3aae516f133e16a2bb59a39f5a - languageName: node - linkType: hard - -"lodash.curry@npm:^4.0.1": - version: 4.1.1 - resolution: "lodash.curry@npm:4.1.1" - checksum: 9192b70fe7df4d1ff780c0260bee271afa9168c93fe4fa24bc861900240531b59781b5fdaadf4644fea8f4fbcd96f0700539ab294b579ffc1022c6c15dcc462a - languageName: node - linkType: hard - -"lodash.debounce@npm:^4.0.8": - version: 4.0.8 - resolution: "lodash.debounce@npm:4.0.8" - checksum: a3f527d22c548f43ae31c861ada88b2637eb48ac6aa3eb56e82d44917971b8aa96fbb37aa60efea674dc4ee8c42074f90f7b1f772e9db375435f6c83a19b3bc6 - languageName: node - linkType: hard - -"lodash.flow@npm:^3.3.0": - version: 3.5.0 - resolution: "lodash.flow@npm:3.5.0" - checksum: a9a62ad344e3c5a1f42bc121da20f64dd855aaafecee24b1db640f29b88bd165d81c37ff7e380a7191de6f70b26f5918abcebbee8396624f78f3618a0b18634c - languageName: node - linkType: hard - -"lodash.memoize@npm:^4.1.2": - version: 4.1.2 - resolution: "lodash.memoize@npm:4.1.2" - checksum: 9ff3942feeccffa4f1fafa88d32f0d24fdc62fd15ded5a74a5f950ff5f0c6f61916157246744c620173dddf38d37095a92327d5fd3861e2063e736a5c207d089 - languageName: node - linkType: hard - -"lodash.uniq@npm:4.5.0, lodash.uniq@npm:^4.5.0": - version: 4.5.0 - resolution: "lodash.uniq@npm:4.5.0" - checksum: a4779b57a8d0f3c441af13d9afe7ecff22dd1b8ce1129849f71d9bbc8e8ee4e46dfb4b7c28f7ad3d67481edd6e51126e4e2a6ee276e25906d10f7140187c392d - languageName: node - linkType: hard - -"lodash@npm:^4.17.19, lodash@npm:^4.17.20, lodash@npm:^4.17.21": - version: 4.17.21 - resolution: "lodash@npm:4.17.21" - checksum: eb835a2e51d381e561e508ce932ea50a8e5a68f4ebdd771ea240d3048244a8d13658acbd502cd4829768c56f2e16bdd4340b9ea141297d472517b83868e677f7 - languageName: node - linkType: hard - -"log-symbols@npm:^4.1.0": - version: 4.1.0 - resolution: "log-symbols@npm:4.1.0" - dependencies: - chalk: ^4.1.0 - is-unicode-supported: ^0.1.0 - checksum: fce1497b3135a0198803f9f07464165e9eb83ed02ceb2273930a6f8a508951178d8cf4f0378e9d28300a2ed2bc49050995d2bd5f53ab716bb15ac84d58c6ef74 - languageName: node - linkType: hard - -"loose-envify@npm:^1.0.0, loose-envify@npm:^1.1.0, loose-envify@npm:^1.2.0, loose-envify@npm:^1.3.1, loose-envify@npm:^1.4.0": - version: 1.4.0 - resolution: "loose-envify@npm:1.4.0" - dependencies: - js-tokens: ^3.0.0 || ^4.0.0 - bin: - loose-envify: cli.js - checksum: 6517e24e0cad87ec9888f500c5b5947032cdfe6ef65e1c1936a0c48a524b81e65542c9c3edc91c97d5bddc806ee2a985dbc79be89215d613b1de5db6d1cfe6f4 - languageName: node - linkType: hard - -"lower-case@npm:^2.0.2": - version: 2.0.2 - resolution: "lower-case@npm:2.0.2" - dependencies: - tslib: ^2.0.3 - checksum: 83a0a5f159ad7614bee8bf976b96275f3954335a84fad2696927f609ddae902802c4f3312d86668722e668bef41400254807e1d3a7f2e8c3eede79691aa1f010 - languageName: node - linkType: hard - -"lowercase-keys@npm:^1.0.0, lowercase-keys@npm:^1.0.1": - version: 1.0.1 - resolution: "lowercase-keys@npm:1.0.1" - checksum: 4d045026595936e09953e3867722e309415ff2c80d7701d067546d75ef698dac218a4f53c6d1d0e7368b47e45fd7529df47e6cb56fbb90523ba599f898b3d147 - languageName: node - linkType: hard - -"lowercase-keys@npm:^2.0.0": - version: 2.0.0 - resolution: "lowercase-keys@npm:2.0.0" - checksum: 24d7ebd56ccdf15ff529ca9e08863f3c54b0b9d1edb97a3ae1af34940ae666c01a1e6d200707bce730a8ef76cb57cc10e65f245ecaaf7e6bc8639f2fb460ac23 - languageName: node - linkType: hard - -"lru-cache@npm:^5.1.1": - version: 5.1.1 - resolution: "lru-cache@npm:5.1.1" - dependencies: - yallist: ^3.0.2 - checksum: c154ae1cbb0c2206d1501a0e94df349653c92c8cbb25236d7e85190bcaf4567a03ac6eb43166fabfa36fd35623694da7233e88d9601fbf411a9a481d85dbd2cb - languageName: node - linkType: hard - -"lru-cache@npm:^6.0.0": - version: 6.0.0 - resolution: "lru-cache@npm:6.0.0" - dependencies: - yallist: ^4.0.0 - checksum: f97f499f898f23e4585742138a22f22526254fdba6d75d41a1c2526b3b6cc5747ef59c5612ba7375f42aca4f8461950e925ba08c991ead0651b4918b7c978297 - languageName: node - linkType: hard - -"lru-cache@npm:^7.7.1": - version: 7.14.1 - resolution: "lru-cache@npm:7.14.1" - checksum: d72c6713c6a6d86836a7a6523b3f1ac6764768cca47ec99341c3e76db06aacd4764620e5e2cda719a36848785a52a70e531822dc2b33fb071fa709683746c104 - languageName: node - linkType: hard - -"lunr-languages@npm:^1.4.0": - version: 1.10.0 - resolution: "lunr-languages@npm:1.10.0" - checksum: e8fd7562f5e12d9071242bd9fe12795518119eaddc771f0f9bce992dff3ada2eb09771c348b1dbfec1ea3405ebd435cbaae4681347b3297db1c41e2a6f29a634 - languageName: node - linkType: hard - -"lunr@npm:^2.3.9": - version: 2.3.9 - resolution: "lunr@npm:2.3.9" - checksum: 176719e24fcce7d3cf1baccce9dd5633cd8bdc1f41ebe6a180112e5ee99d80373fe2454f5d4624d437e5a8319698ca6837b9950566e15d2cae5f2a543a3db4b8 - languageName: node - linkType: hard - -"make-dir@npm:^3.0.0, make-dir@npm:^3.0.2, make-dir@npm:^3.1.0": - version: 3.1.0 - resolution: "make-dir@npm:3.1.0" - dependencies: - semver: ^6.0.0 - checksum: 484200020ab5a1fdf12f393fe5f385fc8e4378824c940fba1729dcd198ae4ff24867bc7a5646331e50cead8abff5d9270c456314386e629acec6dff4b8016b78 - languageName: node - linkType: hard - -"make-fetch-happen@npm:^10.0.3": - version: 10.2.1 - resolution: "make-fetch-happen@npm:10.2.1" - dependencies: - agentkeepalive: ^4.2.1 - cacache: ^16.1.0 - http-cache-semantics: ^4.1.0 - http-proxy-agent: ^5.0.0 - https-proxy-agent: ^5.0.0 - is-lambda: ^1.0.1 - lru-cache: ^7.7.1 - minipass: ^3.1.6 - minipass-collect: ^1.0.2 - minipass-fetch: ^2.0.3 - minipass-flush: ^1.0.5 - minipass-pipeline: ^1.2.4 - negotiator: ^0.6.3 - promise-retry: ^2.0.1 - socks-proxy-agent: ^7.0.0 - ssri: ^9.0.0 - checksum: 2332eb9a8ec96f1ffeeea56ccefabcb4193693597b132cd110734d50f2928842e22b84cfa1508e921b8385cdfd06dda9ad68645fed62b50fff629a580f5fb72c - languageName: node - linkType: hard - -"mark.js@npm:^8.11.1": - version: 8.11.1 - resolution: "mark.js@npm:8.11.1" - checksum: aa6b9ae1c67245348d5b7abd253ef2acd6bb05c6be358d7d192416d964e42665fc10e0e865591c6f93ab9b57e8da1f23c23216e8ebddb580905ea7a0c0df15d4 - languageName: node - linkType: hard - -"markdown-escapes@npm:^1.0.0": - version: 1.0.4 - resolution: "markdown-escapes@npm:1.0.4" - checksum: 6833a93d72d3f70a500658872312c6fa8015c20cc835a85ae6901fa232683fbc6ed7118ebe920fea7c80039a560f339c026597d96eee0e9de602a36921804997 - languageName: node - linkType: hard - -"mdast-squeeze-paragraphs@npm:^4.0.0": - version: 4.0.0 - resolution: "mdast-squeeze-paragraphs@npm:4.0.0" - dependencies: - unist-util-remove: ^2.0.0 - checksum: dfe8ec8e8a62171f020e82b088cc35cb9da787736dc133a3b45ce8811782a93e69bf06d147072e281079f09fac67be8a36153ffffd9bfbf89ed284e4c4f56f75 - languageName: node - linkType: hard - -"mdast-util-definitions@npm:^4.0.0": - version: 4.0.0 - resolution: "mdast-util-definitions@npm:4.0.0" - dependencies: - unist-util-visit: ^2.0.0 - checksum: 2325f20b82b3fb8cb5fda77038ee0bbdd44f82cfca7c48a854724b58bc1fe5919630a3ce7c45e210726df59d46c881d020b2da7a493bfd1ee36eb2bbfef5d78e - languageName: node - linkType: hard - -"mdast-util-to-hast@npm:10.0.1": - version: 10.0.1 - resolution: "mdast-util-to-hast@npm:10.0.1" - dependencies: - "@types/mdast": ^3.0.0 - "@types/unist": ^2.0.0 - mdast-util-definitions: ^4.0.0 - mdurl: ^1.0.0 - unist-builder: ^2.0.0 - unist-util-generated: ^1.0.0 - unist-util-position: ^3.0.0 - unist-util-visit: ^2.0.0 - checksum: e5f385757df7e9b37db4d6f326bf7b4fc1b40f9ad01fc335686578f44abe0ba46d3e60af4d5e5b763556d02e65069ef9a09c49db049b52659203a43e7fa9084d - languageName: node - linkType: hard - -"mdast-util-to-string@npm:^2.0.0": - version: 2.0.0 - resolution: "mdast-util-to-string@npm:2.0.0" - checksum: 0b2113ada10e002fbccb014170506dabe2f2ddacaacbe4bc1045c33f986652c5a162732a2c057c5335cdb58419e2ad23e368e5be226855d4d4e280b81c4e9ec2 - languageName: node - linkType: hard - -"mdn-data@npm:2.0.14": - version: 2.0.14 - resolution: "mdn-data@npm:2.0.14" - checksum: 9d0128ed425a89f4cba8f787dca27ad9408b5cb1b220af2d938e2a0629d17d879a34d2cb19318bdb26c3f14c77dd5dfbae67211f5caaf07b61b1f2c5c8c7dc16 - languageName: node - linkType: hard - -"mdurl@npm:^1.0.0": - version: 1.0.1 - resolution: "mdurl@npm:1.0.1" - checksum: 71731ecba943926bfbf9f9b51e28b5945f9411c4eda80894221b47cc105afa43ba2da820732b436f0798fd3edbbffcd1fc1415843c41a87fea08a41cc1e3d02b - languageName: node - linkType: hard - -"media-typer@npm:0.3.0": - version: 0.3.0 - resolution: "media-typer@npm:0.3.0" - checksum: af1b38516c28ec95d6b0826f6c8f276c58aec391f76be42aa07646b4e39d317723e869700933ca6995b056db4b09a78c92d5440dc23657e6764be5d28874bba1 - languageName: node - linkType: hard - -"memfs@npm:^3.1.2, memfs@npm:^3.4.3": - version: 3.4.13 - resolution: "memfs@npm:3.4.13" - dependencies: - fs-monkey: ^1.0.3 - checksum: 3f9717d6f060919d53f211acb6096a0ea2f566a8cbcc4ef7e1f2561e31e33dc456053fdf951c90a49c8ec55402de7f01b006b81683ab7bd4bdbbd8c9b9cdae5f - languageName: node - linkType: hard - -"merge-descriptors@npm:1.0.1": - version: 1.0.1 - resolution: "merge-descriptors@npm:1.0.1" - checksum: 5abc259d2ae25bb06d19ce2b94a21632583c74e2a9109ee1ba7fd147aa7362b380d971e0251069f8b3eb7d48c21ac839e21fa177b335e82c76ec172e30c31a26 - languageName: node - linkType: hard - -"merge-stream@npm:^2.0.0": - version: 2.0.0 - resolution: "merge-stream@npm:2.0.0" - checksum: 6fa4dcc8d86629705cea944a4b88ef4cb0e07656ebf223fa287443256414283dd25d91c1cd84c77987f2aec5927af1a9db6085757cb43d90eb170ebf4b47f4f4 - languageName: node - linkType: hard - -"merge2@npm:^1.3.0, merge2@npm:^1.4.1": - version: 1.4.1 - resolution: "merge2@npm:1.4.1" - checksum: 7268db63ed5169466540b6fb947aec313200bcf6d40c5ab722c22e242f651994619bcd85601602972d3c85bd2cc45a358a4c61937e9f11a061919a1da569b0c2 - languageName: node - linkType: hard - -"methods@npm:~1.1.2": - version: 1.1.2 - resolution: "methods@npm:1.1.2" - checksum: 0917ff4041fa8e2f2fda5425a955fe16ca411591fbd123c0d722fcf02b73971ed6f764d85f0a6f547ce49ee0221ce2c19a5fa692157931cecb422984f1dcd13a - languageName: node - linkType: hard - -"micromatch@npm:^4.0.2, micromatch@npm:^4.0.4, micromatch@npm:^4.0.5": - version: 4.0.5 - resolution: "micromatch@npm:4.0.5" - dependencies: - braces: ^3.0.2 - picomatch: ^2.3.1 - checksum: 02a17b671c06e8fefeeb6ef996119c1e597c942e632a21ef589154f23898c9c6a9858526246abb14f8bca6e77734aa9dcf65476fca47cedfb80d9577d52843fc - languageName: node - linkType: hard - -"mime-db@npm:1.52.0, mime-db@npm:>= 1.43.0 < 2": - version: 1.52.0 - resolution: "mime-db@npm:1.52.0" - checksum: 0d99a03585f8b39d68182803b12ac601d9c01abfa28ec56204fa330bc9f3d1c5e14beb049bafadb3dbdf646dfb94b87e24d4ec7b31b7279ef906a8ea9b6a513f - languageName: node - linkType: hard - -"mime-db@npm:~1.33.0": - version: 1.33.0 - resolution: "mime-db@npm:1.33.0" - checksum: 281a0772187c9b8f6096976cb193ac639c6007ac85acdbb8dc1617ed7b0f4777fa001d1b4f1b634532815e60717c84b2f280201d55677fb850c9d45015b50084 - languageName: node - linkType: hard - -"mime-types@npm:2.1.18": - version: 2.1.18 - resolution: "mime-types@npm:2.1.18" - dependencies: - mime-db: ~1.33.0 - checksum: 729265eff1e5a0e87cb7f869da742a610679585167d2f2ec997a7387fc6aedf8e5cad078e99b0164a927bdf3ace34fca27430d6487456ad090cba5594441ba43 - languageName: node - linkType: hard - -"mime-types@npm:^2.1.12, mime-types@npm:^2.1.27, mime-types@npm:^2.1.31, mime-types@npm:~2.1.17, mime-types@npm:~2.1.24, mime-types@npm:~2.1.34": - version: 2.1.35 - resolution: "mime-types@npm:2.1.35" - dependencies: - mime-db: 1.52.0 - checksum: 89a5b7f1def9f3af5dad6496c5ed50191ae4331cc5389d7c521c8ad28d5fdad2d06fd81baf38fed813dc4e46bb55c8145bb0ff406330818c9cf712fb2e9b3836 - languageName: node - linkType: hard - -"mime@npm:1.6.0": - version: 1.6.0 - resolution: "mime@npm:1.6.0" - bin: - mime: cli.js - checksum: fef25e39263e6d207580bdc629f8872a3f9772c923c7f8c7e793175cee22777bbe8bba95e5d509a40aaa292d8974514ce634ae35769faa45f22d17edda5e8557 - languageName: node - linkType: hard - -"mimic-fn@npm:^2.1.0": - version: 2.1.0 - resolution: "mimic-fn@npm:2.1.0" - checksum: d2421a3444848ce7f84bd49115ddacff29c15745db73f54041edc906c14b131a38d05298dae3081667627a59b2eb1ca4b436ff2e1b80f69679522410418b478a - languageName: node - linkType: hard - -"mimic-response@npm:^1.0.0, mimic-response@npm:^1.0.1": - version: 1.0.1 - resolution: "mimic-response@npm:1.0.1" - checksum: 034c78753b0e622bc03c983663b1cdf66d03861050e0c8606563d149bc2b02d63f62ce4d32be4ab50d0553ae0ffe647fc34d1f5281184c6e1e8cf4d85e8d9823 - languageName: node - linkType: hard - -"mini-css-extract-plugin@npm:^2.6.1": - version: 2.7.2 - resolution: "mini-css-extract-plugin@npm:2.7.2" - dependencies: - schema-utils: ^4.0.0 - peerDependencies: - webpack: ^5.0.0 - checksum: cd65611d6dc452f230c6ebba8a47bc5f5146b813b13b0b402c6f4a69f6451242eeea781152bebd31cad8ca7c7e95dac91e7e464087f18fb65b2d1097b58cf4ae - languageName: node - linkType: hard - -"minimalistic-assert@npm:^1.0.0": - version: 1.0.1 - resolution: "minimalistic-assert@npm:1.0.1" - checksum: cc7974a9268fbf130fb055aff76700d7e2d8be5f761fb5c60318d0ed010d839ab3661a533ad29a5d37653133385204c503bfac995aaa4236f4e847461ea32ba7 - languageName: node - linkType: hard - -"minimatch@npm:3.1.2, minimatch@npm:^3.0.4, minimatch@npm:^3.0.5, minimatch@npm:^3.1.1": - version: 3.1.2 - resolution: "minimatch@npm:3.1.2" - dependencies: - brace-expansion: ^1.1.7 - checksum: c154e566406683e7bcb746e000b84d74465b3a832c45d59912b9b55cd50dee66e5c4b1e5566dba26154040e51672f9aa450a9aef0c97cfc7336b78b7afb9540a - languageName: node - linkType: hard - -"minimatch@npm:^5.0.1": - version: 5.1.6 - resolution: "minimatch@npm:5.1.6" - dependencies: - brace-expansion: ^2.0.1 - checksum: 7564208ef81d7065a370f788d337cd80a689e981042cb9a1d0e6580b6c6a8c9279eba80010516e258835a988363f99f54a6f711a315089b8b42694f5da9d0d77 - languageName: node - linkType: hard - -"minimist@npm:^1.2.0, minimist@npm:^1.2.5": - version: 1.2.7 - resolution: "minimist@npm:1.2.7" - checksum: 7346574a1038ca23c32e02252f603801f09384dd1d78b69a943a4e8c2c28730b80e96193882d3d3b22a063445f460e48316b29b8a25addca2d7e5e8f75478bec - languageName: node - linkType: hard - -"minipass-collect@npm:^1.0.2": - version: 1.0.2 - resolution: "minipass-collect@npm:1.0.2" - dependencies: - minipass: ^3.0.0 - checksum: 14df761028f3e47293aee72888f2657695ec66bd7d09cae7ad558da30415fdc4752bbfee66287dcc6fd5e6a2fa3466d6c484dc1cbd986525d9393b9523d97f10 - languageName: node - linkType: hard - -"minipass-fetch@npm:^2.0.3": - version: 2.1.2 - resolution: "minipass-fetch@npm:2.1.2" - dependencies: - encoding: ^0.1.13 - minipass: ^3.1.6 - minipass-sized: ^1.0.3 - minizlib: ^2.1.2 - dependenciesMeta: - encoding: - optional: true - checksum: 3f216be79164e915fc91210cea1850e488793c740534985da017a4cbc7a5ff50506956d0f73bb0cb60e4fe91be08b6b61ef35101706d3ef5da2c8709b5f08f91 - languageName: node - linkType: hard - -"minipass-flush@npm:^1.0.5": - version: 1.0.5 - resolution: "minipass-flush@npm:1.0.5" - dependencies: - minipass: ^3.0.0 - checksum: 56269a0b22bad756a08a94b1ffc36b7c9c5de0735a4dd1ab2b06c066d795cfd1f0ac44a0fcae13eece5589b908ecddc867f04c745c7009be0b566421ea0944cf - languageName: node - linkType: hard - -"minipass-pipeline@npm:^1.2.4": - version: 1.2.4 - resolution: "minipass-pipeline@npm:1.2.4" - dependencies: - minipass: ^3.0.0 - checksum: b14240dac0d29823c3d5911c286069e36d0b81173d7bdf07a7e4a91ecdef92cdff4baaf31ea3746f1c61e0957f652e641223970870e2353593f382112257971b - languageName: node - linkType: hard - -"minipass-sized@npm:^1.0.3": - version: 1.0.3 - resolution: "minipass-sized@npm:1.0.3" - dependencies: - minipass: ^3.0.0 - checksum: 79076749fcacf21b5d16dd596d32c3b6bf4d6e62abb43868fac21674078505c8b15eaca4e47ed844985a4514854f917d78f588fcd029693709417d8f98b2bd60 - languageName: node - linkType: hard - -"minipass@npm:^3.0.0, minipass@npm:^3.1.1, minipass@npm:^3.1.6": - version: 3.3.6 - resolution: "minipass@npm:3.3.6" - dependencies: - yallist: ^4.0.0 - checksum: a30d083c8054cee83cdcdc97f97e4641a3f58ae743970457b1489ce38ee1167b3aaf7d815cd39ec7a99b9c40397fd4f686e83750e73e652b21cb516f6d845e48 - languageName: node - linkType: hard - -"minipass@npm:^4.0.0": - version: 4.0.0 - resolution: "minipass@npm:4.0.0" - dependencies: - yallist: ^4.0.0 - checksum: 7a609afbf394abfcf9c48e6c90226f471676c8f2a67f07f6838871afb03215ede431d1433feffe1b855455bcb13ef0eb89162841b9796109d6fed8d89790f381 - languageName: node - linkType: hard - -"minizlib@npm:^2.1.1, minizlib@npm:^2.1.2": - version: 2.1.2 - resolution: "minizlib@npm:2.1.2" - dependencies: - minipass: ^3.0.0 - yallist: ^4.0.0 - checksum: f1fdeac0b07cf8f30fcf12f4b586795b97be856edea22b5e9072707be51fc95d41487faec3f265b42973a304fe3a64acd91a44a3826a963e37b37bafde0212c3 - languageName: node - linkType: hard - -"mkdirp@npm:^1.0.3, mkdirp@npm:^1.0.4": - version: 1.0.4 - resolution: "mkdirp@npm:1.0.4" - bin: - mkdirp: bin/cmd.js - checksum: a96865108c6c3b1b8e1d5e9f11843de1e077e57737602de1b82030815f311be11f96f09cce59bd5b903d0b29834733e5313f9301e3ed6d6f6fba2eae0df4298f - languageName: node - linkType: hard - -"mrmime@npm:^1.0.0": - version: 1.0.1 - resolution: "mrmime@npm:1.0.1" - checksum: cc979da44bbbffebaa8eaf7a45117e851f2d4cb46a3ada6ceb78130466a04c15a0de9a9ce1c8b8ba6f6e1b8618866b1352992bf1757d241c0ddca558b9f28a77 - languageName: node - linkType: hard - -"ms@npm:2.0.0": - version: 2.0.0 - resolution: "ms@npm:2.0.0" - checksum: 0e6a22b8b746d2e0b65a430519934fefd41b6db0682e3477c10f60c76e947c4c0ad06f63ffdf1d78d335f83edee8c0aa928aa66a36c7cd95b69b26f468d527f4 - languageName: node - linkType: hard - -"ms@npm:2.1.2": - version: 2.1.2 - resolution: "ms@npm:2.1.2" - checksum: 673cdb2c3133eb050c745908d8ce632ed2c02d85640e2edb3ace856a2266a813b30c613569bf3354fdf4ea7d1a1494add3bfa95e2713baa27d0c2c71fc44f58f - languageName: node - linkType: hard - -"ms@npm:2.1.3, ms@npm:^2.0.0": - version: 2.1.3 - resolution: "ms@npm:2.1.3" - checksum: aa92de608021b242401676e35cfa5aa42dd70cbdc082b916da7fb925c542173e36bce97ea3e804923fe92c0ad991434e4a38327e15a1b5b5f945d66df615ae6d - languageName: node - linkType: hard - -"multicast-dns@npm:^7.2.5": - version: 7.2.5 - resolution: "multicast-dns@npm:7.2.5" - dependencies: - dns-packet: ^5.2.2 - thunky: ^1.0.2 - bin: - multicast-dns: cli.js - checksum: 00b8a57df152d4cd0297946320a94b7c3cdf75a46a2247f32f958a8927dea42958177f9b7fdae69fab2e4e033fb3416881af1f5e9055a3e1542888767139e2fb - languageName: node - linkType: hard - -"nanoid@npm:^3.3.4": - version: 3.3.4 - resolution: "nanoid@npm:3.3.4" - bin: - nanoid: bin/nanoid.cjs - checksum: 2fddd6dee994b7676f008d3ffa4ab16035a754f4bb586c61df5a22cf8c8c94017aadd360368f47d653829e0569a92b129979152ff97af23a558331e47e37cd9c - languageName: node - linkType: hard - -"negotiator@npm:0.6.3, negotiator@npm:^0.6.3": - version: 0.6.3 - resolution: "negotiator@npm:0.6.3" - checksum: b8ffeb1e262eff7968fc90a2b6767b04cfd9842582a9d0ece0af7049537266e7b2506dfb1d107a32f06dd849ab2aea834d5830f7f4d0e5cb7d36e1ae55d021d9 - languageName: node - linkType: hard - -"neo-async@npm:^2.6.2": - version: 2.6.2 - resolution: "neo-async@npm:2.6.2" - checksum: deac9f8d00eda7b2e5cd1b2549e26e10a0faa70adaa6fdadca701cc55f49ee9018e427f424bac0c790b7c7e2d3068db97f3093f1093975f2acb8f8818b936ed9 - languageName: node - linkType: hard - -"no-case@npm:^3.0.4": - version: 3.0.4 - resolution: "no-case@npm:3.0.4" - dependencies: - lower-case: ^2.0.2 - tslib: ^2.0.3 - checksum: 0b2ebc113dfcf737d48dde49cfebf3ad2d82a8c3188e7100c6f375e30eafbef9e9124aadc3becef237b042fd5eb0aad2fd78669c20972d045bbe7fea8ba0be5c - languageName: node - linkType: hard - -"node-emoji@npm:^1.10.0": - version: 1.11.0 - resolution: "node-emoji@npm:1.11.0" - dependencies: - lodash: ^4.17.21 - checksum: e8c856c04a1645062112a72e59a98b203505ed5111ff84a3a5f40611afa229b578c7d50f1e6a7f17aa62baeea4a640d2e2f61f63afc05423aa267af10977fb2b - languageName: node - linkType: hard - -"node-fetch@npm:2.6.7": - version: 2.6.7 - resolution: "node-fetch@npm:2.6.7" - dependencies: - whatwg-url: ^5.0.0 - peerDependencies: - encoding: ^0.1.0 - peerDependenciesMeta: - encoding: - optional: true - checksum: 8d816ffd1ee22cab8301c7756ef04f3437f18dace86a1dae22cf81db8ef29c0bf6655f3215cb0cdb22b420b6fe141e64b26905e7f33f9377a7fa59135ea3e10b - languageName: node - linkType: hard - -"node-forge@npm:^1": - version: 1.3.1 - resolution: "node-forge@npm:1.3.1" - checksum: 08fb072d3d670599c89a1704b3e9c649ff1b998256737f0e06fbd1a5bf41cae4457ccaee32d95052d80bbafd9ffe01284e078c8071f0267dc9744e51c5ed42a9 - languageName: node - linkType: hard - -"node-gyp@npm:latest": - version: 9.3.1 - resolution: "node-gyp@npm:9.3.1" - dependencies: - env-paths: ^2.2.0 - glob: ^7.1.4 - graceful-fs: ^4.2.6 - make-fetch-happen: ^10.0.3 - nopt: ^6.0.0 - npmlog: ^6.0.0 - rimraf: ^3.0.2 - semver: ^7.3.5 - tar: ^6.1.2 - which: ^2.0.2 - bin: - node-gyp: bin/node-gyp.js - checksum: b860e9976fa645ca0789c69e25387401b4396b93c8375489b5151a6c55cf2640a3b6183c212b38625ef7c508994930b72198338e3d09b9d7ade5acc4aaf51ea7 - languageName: node - linkType: hard - -"node-releases@npm:^2.0.6": - version: 2.0.8 - resolution: "node-releases@npm:2.0.8" - checksum: b1ab02c0d5d8e081bf9537232777a7a787dc8fef07f70feabe70a344599b220fe16462f746ac30f3eed5a58549445ad69368964d12a1f8b3b764f6caab7ba34a - languageName: node - linkType: hard - -"nopt@npm:^6.0.0": - version: 6.0.0 - resolution: "nopt@npm:6.0.0" - dependencies: - abbrev: ^1.0.0 - bin: - nopt: bin/nopt.js - checksum: 82149371f8be0c4b9ec2f863cc6509a7fd0fa729929c009f3a58e4eb0c9e4cae9920e8f1f8eb46e7d032fec8fb01bede7f0f41a67eb3553b7b8e14fa53de1dac - languageName: node - linkType: hard - -"normalize-path@npm:^3.0.0, normalize-path@npm:~3.0.0": - version: 3.0.0 - resolution: "normalize-path@npm:3.0.0" - checksum: 88eeb4da891e10b1318c4b2476b6e2ecbeb5ff97d946815ffea7794c31a89017c70d7f34b3c2ebf23ef4e9fc9fb99f7dffe36da22011b5b5c6ffa34f4873ec20 - languageName: node - linkType: hard - -"normalize-range@npm:^0.1.2": - version: 0.1.2 - resolution: "normalize-range@npm:0.1.2" - checksum: 9b2f14f093593f367a7a0834267c24f3cb3e887a2d9809c77d8a7e5fd08738bcd15af46f0ab01cc3a3d660386f015816b5c922cea8bf2ee79777f40874063184 - languageName: node - linkType: hard - -"normalize-url@npm:^4.1.0": - version: 4.5.1 - resolution: "normalize-url@npm:4.5.1" - checksum: 9a9dee01df02ad23e171171893e56e22d752f7cff86fb96aafeae074819b572ea655b60f8302e2d85dbb834dc885c972cc1c573892fea24df46b2765065dd05a - languageName: node - linkType: hard - -"normalize-url@npm:^6.0.1": - version: 6.1.0 - resolution: "normalize-url@npm:6.1.0" - checksum: 4a4944631173e7d521d6b80e4c85ccaeceb2870f315584fa30121f505a6dfd86439c5e3fdd8cd9e0e291290c41d0c3599f0cb12ab356722ed242584c30348e50 - languageName: node - linkType: hard - -"npm-run-path@npm:^4.0.1": - version: 4.0.1 - resolution: "npm-run-path@npm:4.0.1" - dependencies: - path-key: ^3.0.0 - checksum: 5374c0cea4b0bbfdfae62da7bbdf1e1558d338335f4cacf2515c282ff358ff27b2ecb91ffa5330a8b14390ac66a1e146e10700440c1ab868208430f56b5f4d23 - languageName: node - linkType: hard - -"npmlog@npm:^6.0.0": - version: 6.0.2 - resolution: "npmlog@npm:6.0.2" - dependencies: - are-we-there-yet: ^3.0.0 - console-control-strings: ^1.1.0 - gauge: ^4.0.3 - set-blocking: ^2.0.0 - checksum: ae238cd264a1c3f22091cdd9e2b106f684297d3c184f1146984ecbe18aaa86343953f26b9520dedd1b1372bc0316905b736c1932d778dbeb1fcf5a1001390e2a - languageName: node - linkType: hard - -"nprogress@npm:^0.2.0": - version: 0.2.0 - resolution: "nprogress@npm:0.2.0" - checksum: 66b7bec5d563ecf2d1c3d2815e6d5eb74ed815eee8563e0afa63d3f185ab1b9cf2ddd97e1ded263b9995c5019d26d600320e849e50f3747984daa033744619dc - languageName: node - linkType: hard - -"nth-check@npm:^2.0.1": - version: 2.1.1 - resolution: "nth-check@npm:2.1.1" - dependencies: - boolbase: ^1.0.0 - checksum: 5afc3dafcd1573b08877ca8e6148c52abd565f1d06b1eb08caf982e3fa289a82f2cae697ffb55b5021e146d60443f1590a5d6b944844e944714a5b549675bcd3 - languageName: node - linkType: hard - -"object-assign@npm:^4.1.0, object-assign@npm:^4.1.1": - version: 4.1.1 - resolution: "object-assign@npm:4.1.1" - checksum: fcc6e4ea8c7fe48abfbb552578b1c53e0d194086e2e6bbbf59e0a536381a292f39943c6e9628af05b5528aa5e3318bb30d6b2e53cadaf5b8fe9e12c4b69af23f - languageName: node - linkType: hard - -"object-inspect@npm:^1.9.0": - version: 1.12.3 - resolution: "object-inspect@npm:1.12.3" - checksum: dabfd824d97a5f407e6d5d24810d888859f6be394d8b733a77442b277e0808860555176719c5905e765e3743a7cada6b8b0a3b85e5331c530fd418cc8ae991db - languageName: node - linkType: hard - -"object-keys@npm:^1.1.1": - version: 1.1.1 - resolution: "object-keys@npm:1.1.1" - checksum: b363c5e7644b1e1b04aa507e88dcb8e3a2f52b6ffd0ea801e4c7a62d5aa559affe21c55a07fd4b1fd55fc03a33c610d73426664b20032405d7b92a1414c34d6a - languageName: node - linkType: hard - -"object.assign@npm:^4.1.0": - version: 4.1.4 - resolution: "object.assign@npm:4.1.4" - dependencies: - call-bind: ^1.0.2 - define-properties: ^1.1.4 - has-symbols: ^1.0.3 - object-keys: ^1.1.1 - checksum: 76cab513a5999acbfe0ff355f15a6a125e71805fcf53de4e9d4e082e1989bdb81d1e329291e1e4e0ae7719f0e4ef80e88fb2d367ae60500d79d25a6224ac8864 - languageName: node - linkType: hard - -"obuf@npm:^1.0.0, obuf@npm:^1.1.2": - version: 1.1.2 - resolution: "obuf@npm:1.1.2" - checksum: 41a2ba310e7b6f6c3b905af82c275bf8854896e2e4c5752966d64cbcd2f599cfffd5932006bcf3b8b419dfdacebb3a3912d5d94e10f1d0acab59876c8757f27f - languageName: node - linkType: hard - -"on-finished@npm:2.4.1": - version: 2.4.1 - resolution: "on-finished@npm:2.4.1" - dependencies: - ee-first: 1.1.1 - checksum: d20929a25e7f0bb62f937a425b5edeb4e4cde0540d77ba146ec9357f00b0d497cdb3b9b05b9c8e46222407d1548d08166bff69cc56dfa55ba0e4469228920ff0 - languageName: node - linkType: hard - -"on-headers@npm:~1.0.2": - version: 1.0.2 - resolution: "on-headers@npm:1.0.2" - checksum: 2bf13467215d1e540a62a75021e8b318a6cfc5d4fc53af8e8f84ad98dbcea02d506c6d24180cd62e1d769c44721ba542f3154effc1f7579a8288c9f7873ed8e5 - languageName: node - linkType: hard - -"once@npm:^1.3.0, once@npm:^1.3.1, once@npm:^1.4.0": - version: 1.4.0 - resolution: "once@npm:1.4.0" - dependencies: - wrappy: 1 - checksum: cd0a88501333edd640d95f0d2700fbde6bff20b3d4d9bdc521bdd31af0656b5706570d6c6afe532045a20bb8dc0849f8332d6f2a416e0ba6d3d3b98806c7db68 - languageName: node - linkType: hard - -"onetime@npm:^5.1.0, onetime@npm:^5.1.2": - version: 5.1.2 - resolution: "onetime@npm:5.1.2" - dependencies: - mimic-fn: ^2.1.0 - checksum: 2478859ef817fc5d4e9c2f9e5728512ddd1dbc9fb7829ad263765bb6d3b91ce699d6e2332eef6b7dff183c2f490bd3349f1666427eaba4469fba0ac38dfd0d34 - languageName: node - linkType: hard - -"open@npm:^8.0.9, open@npm:^8.4.0": - version: 8.4.0 - resolution: "open@npm:8.4.0" - dependencies: - define-lazy-prop: ^2.0.0 - is-docker: ^2.1.1 - is-wsl: ^2.2.0 - checksum: e9545bec64cdbf30a0c35c1bdc310344adf8428a117f7d8df3c0af0a0a24c513b304916a6d9b11db0190ff7225c2d578885080b761ed46a3d5f6f1eebb98b63c - languageName: node - linkType: hard - -"opener@npm:^1.5.2": - version: 1.5.2 - resolution: "opener@npm:1.5.2" - bin: - opener: bin/opener-bin.js - checksum: 33b620c0d53d5b883f2abc6687dd1c5fd394d270dbe33a6356f2d71e0a2ec85b100d5bac94694198ccf5c30d592da863b2292c5539009c715a9c80c697b4f6cc - languageName: node - linkType: hard - -"ora@npm:^5.1.0": - version: 5.4.1 - resolution: "ora@npm:5.4.1" - dependencies: - bl: ^4.1.0 - chalk: ^4.1.0 - cli-cursor: ^3.1.0 - cli-spinners: ^2.5.0 - is-interactive: ^1.0.0 - is-unicode-supported: ^0.1.0 - log-symbols: ^4.1.0 - strip-ansi: ^6.0.0 - wcwidth: ^1.0.1 - checksum: 28d476ee6c1049d68368c0dc922e7225e3b5600c3ede88fade8052837f9ed342625fdaa84a6209302587c8ddd9b664f71f0759833cbdb3a4cf81344057e63c63 - languageName: node - linkType: hard - -"p-cancelable@npm:^1.0.0": - version: 1.1.0 - resolution: "p-cancelable@npm:1.1.0" - checksum: 2db3814fef6d9025787f30afaee4496a8857a28be3c5706432cbad76c688a6db1874308f48e364a42f5317f5e41e8e7b4f2ff5c8ff2256dbb6264bc361704ece - languageName: node - linkType: hard - -"p-limit@npm:^2.0.0, p-limit@npm:^2.2.0": - version: 2.3.0 - resolution: "p-limit@npm:2.3.0" - dependencies: - p-try: ^2.0.0 - checksum: 84ff17f1a38126c3314e91ecfe56aecbf36430940e2873dadaa773ffe072dc23b7af8e46d4b6485d302a11673fe94c6b67ca2cfbb60c989848b02100d0594ac1 - languageName: node - linkType: hard - -"p-limit@npm:^3.0.2": - version: 3.1.0 - resolution: "p-limit@npm:3.1.0" - dependencies: - yocto-queue: ^0.1.0 - checksum: 7c3690c4dbf62ef625671e20b7bdf1cbc9534e83352a2780f165b0d3ceba21907e77ad63401708145ca4e25bfc51636588d89a8c0aeb715e6c37d1c066430360 - languageName: node - linkType: hard - -"p-locate@npm:^3.0.0": - version: 3.0.0 - resolution: "p-locate@npm:3.0.0" - dependencies: - p-limit: ^2.0.0 - checksum: 83991734a9854a05fe9dbb29f707ea8a0599391f52daac32b86f08e21415e857ffa60f0e120bfe7ce0cc4faf9274a50239c7895fc0d0579d08411e513b83a4ae - languageName: node - linkType: hard - -"p-locate@npm:^4.1.0": - version: 4.1.0 - resolution: "p-locate@npm:4.1.0" - dependencies: - p-limit: ^2.2.0 - checksum: 513bd14a455f5da4ebfcb819ef706c54adb09097703de6aeaa5d26fe5ea16df92b48d1ac45e01e3944ce1e6aa2a66f7f8894742b8c9d6e276e16cd2049a2b870 - languageName: node - linkType: hard - -"p-locate@npm:^5.0.0": - version: 5.0.0 - resolution: "p-locate@npm:5.0.0" - dependencies: - p-limit: ^3.0.2 - checksum: 1623088f36cf1cbca58e9b61c4e62bf0c60a07af5ae1ca99a720837356b5b6c5ba3eb1b2127e47a06865fee59dd0453cad7cc844cda9d5a62ac1a5a51b7c86d3 - languageName: node - linkType: hard - -"p-map@npm:^4.0.0": - version: 4.0.0 - resolution: "p-map@npm:4.0.0" - dependencies: - aggregate-error: ^3.0.0 - checksum: cb0ab21ec0f32ddffd31dfc250e3afa61e103ef43d957cc45497afe37513634589316de4eb88abdfd969fe6410c22c0b93ab24328833b8eb1ccc087fc0442a1c - languageName: node - linkType: hard - -"p-retry@npm:^4.5.0": - version: 4.6.2 - resolution: "p-retry@npm:4.6.2" - dependencies: - "@types/retry": 0.12.0 - retry: ^0.13.1 - checksum: 45c270bfddaffb4a895cea16cb760dcc72bdecb6cb45fef1971fa6ea2e91ddeafddefe01e444ac73e33b1b3d5d29fb0dd18a7effb294262437221ddc03ce0f2e - languageName: node - linkType: hard - -"p-try@npm:^2.0.0": - version: 2.2.0 - resolution: "p-try@npm:2.2.0" - checksum: f8a8e9a7693659383f06aec604ad5ead237c7a261c18048a6e1b5b85a5f8a067e469aa24f5bc009b991ea3b058a87f5065ef4176793a200d4917349881216cae - languageName: node - linkType: hard - -"package-json@npm:^6.3.0": - version: 6.5.0 - resolution: "package-json@npm:6.5.0" - dependencies: - got: ^9.6.0 - registry-auth-token: ^4.0.0 - registry-url: ^5.0.0 - semver: ^6.2.0 - checksum: cc9f890d3667d7610e6184decf543278b87f657d1ace0deb4a9c9155feca738ef88f660c82200763d3348010f4e42e9c7adc91e96ab0f86a770955995b5351e2 - languageName: node - linkType: hard - -"param-case@npm:^3.0.4": - version: 3.0.4 - resolution: "param-case@npm:3.0.4" - dependencies: - dot-case: ^3.0.4 - tslib: ^2.0.3 - checksum: b34227fd0f794e078776eb3aa6247442056cb47761e9cd2c4c881c86d84c64205f6a56ef0d70b41ee7d77da02c3f4ed2f88e3896a8fefe08bdfb4deca037c687 - languageName: node - linkType: hard - -"parent-module@npm:^1.0.0": - version: 1.0.1 - resolution: "parent-module@npm:1.0.1" - dependencies: - callsites: ^3.0.0 - checksum: 6ba8b255145cae9470cf5551eb74be2d22281587af787a2626683a6c20fbb464978784661478dd2a3f1dad74d1e802d403e1b03c1a31fab310259eec8ac560ff - languageName: node - linkType: hard - -"parse-entities@npm:^2.0.0": - version: 2.0.0 - resolution: "parse-entities@npm:2.0.0" - dependencies: - character-entities: ^1.0.0 - character-entities-legacy: ^1.0.0 - character-reference-invalid: ^1.0.0 - is-alphanumerical: ^1.0.0 - is-decimal: ^1.0.0 - is-hexadecimal: ^1.0.0 - checksum: 7addfd3e7d747521afac33c8121a5f23043c6973809756920d37e806639b4898385d386fcf4b3c8e2ecf1bc28aac5ae97df0b112d5042034efbe80f44081ebce - languageName: node - linkType: hard - -"parse-json@npm:^5.0.0": - version: 5.2.0 - resolution: "parse-json@npm:5.2.0" - dependencies: - "@babel/code-frame": ^7.0.0 - error-ex: ^1.3.1 - json-parse-even-better-errors: ^2.3.0 - lines-and-columns: ^1.1.6 - checksum: 62085b17d64da57f40f6afc2ac1f4d95def18c4323577e1eced571db75d9ab59b297d1d10582920f84b15985cbfc6b6d450ccbf317644cfa176f3ed982ad87e2 - languageName: node - linkType: hard - -"parse-numeric-range@npm:^1.3.0": - version: 1.3.0 - resolution: "parse-numeric-range@npm:1.3.0" - checksum: 289ca126d5b8ace7325b199218de198014f58ea6895ccc88a5247491d07f0143bf047f80b4a31784f1ca8911762278d7d6ecb90a31dfae31da91cc1a2524c8ce - languageName: node - linkType: hard - -"parse5-htmlparser2-tree-adapter@npm:^7.0.0": - version: 7.0.0 - resolution: "parse5-htmlparser2-tree-adapter@npm:7.0.0" - dependencies: - domhandler: ^5.0.2 - parse5: ^7.0.0 - checksum: fc5d01e07733142a1baf81de5c2a9c41426c04b7ab29dd218acb80cd34a63177c90aff4a4aee66cf9f1d0aeecff1389adb7452ad6f8af0a5888e3e9ad6ef733d - languageName: node - linkType: hard - -"parse5@npm:^6.0.0": - version: 6.0.1 - resolution: "parse5@npm:6.0.1" - checksum: 7d569a176c5460897f7c8f3377eff640d54132b9be51ae8a8fa4979af940830b2b0c296ce75e5bd8f4041520aadde13170dbdec44889975f906098ea0002f4bd - languageName: node - linkType: hard - -"parse5@npm:^7.0.0": - version: 7.1.2 - resolution: "parse5@npm:7.1.2" - dependencies: - entities: ^4.4.0 - checksum: 59465dd05eb4c5ec87b76173d1c596e152a10e290b7abcda1aecf0f33be49646ea74840c69af975d7887543ea45564801736356c568d6b5e71792fd0f4055713 - languageName: node - linkType: hard - -"parseurl@npm:~1.3.2, parseurl@npm:~1.3.3": - version: 1.3.3 - resolution: "parseurl@npm:1.3.3" - checksum: 407cee8e0a3a4c5cd472559bca8b6a45b82c124e9a4703302326e9ab60fc1081442ada4e02628efef1eb16197ddc7f8822f5a91fd7d7c86b51f530aedb17dfa2 - languageName: node - linkType: hard - -"pascal-case@npm:^3.1.2": - version: 3.1.2 - resolution: "pascal-case@npm:3.1.2" - dependencies: - no-case: ^3.0.4 - tslib: ^2.0.3 - checksum: ba98bfd595fc91ef3d30f4243b1aee2f6ec41c53b4546bfa3039487c367abaa182471dcfc830a1f9e1a0df00c14a370514fa2b3a1aacc68b15a460c31116873e - languageName: node - linkType: hard - -"path-exists@npm:^3.0.0": - version: 3.0.0 - resolution: "path-exists@npm:3.0.0" - checksum: 96e92643aa34b4b28d0de1cd2eba52a1c5313a90c6542d03f62750d82480e20bfa62bc865d5cfc6165f5fcd5aeb0851043c40a39be5989646f223300021bae0a - languageName: node - linkType: hard - -"path-exists@npm:^4.0.0": - version: 4.0.0 - resolution: "path-exists@npm:4.0.0" - checksum: 505807199dfb7c50737b057dd8d351b82c033029ab94cb10a657609e00c1bc53b951cfdbccab8de04c5584d5eff31128ce6afd3db79281874a5ef2adbba55ed1 - languageName: node - linkType: hard - -"path-is-absolute@npm:^1.0.0": - version: 1.0.1 - resolution: "path-is-absolute@npm:1.0.1" - checksum: 060840f92cf8effa293bcc1bea81281bd7d363731d214cbe5c227df207c34cd727430f70c6037b5159c8a870b9157cba65e775446b0ab06fd5ecc7e54615a3b8 - languageName: node - linkType: hard - -"path-is-inside@npm:1.0.2": - version: 1.0.2 - resolution: "path-is-inside@npm:1.0.2" - checksum: 0b5b6c92d3018b82afb1f74fe6de6338c4c654de4a96123cb343f2b747d5606590ac0c890f956ed38220a4ab59baddfd7b713d78a62d240b20b14ab801fa02cb - languageName: node - linkType: hard - -"path-key@npm:^3.0.0, path-key@npm:^3.1.0": - version: 3.1.1 - resolution: "path-key@npm:3.1.1" - checksum: 55cd7a9dd4b343412a8386a743f9c746ef196e57c823d90ca3ab917f90ab9f13dd0ded27252ba49dbdfcab2b091d998bc446f6220cd3cea65db407502a740020 - languageName: node - linkType: hard - -"path-parse@npm:^1.0.7": - version: 1.0.7 - resolution: "path-parse@npm:1.0.7" - checksum: 49abf3d81115642938a8700ec580da6e830dde670be21893c62f4e10bd7dd4c3742ddc603fe24f898cba7eb0c6bc1777f8d9ac14185d34540c6d4d80cd9cae8a - languageName: node - linkType: hard - -"path-to-regexp@npm:0.1.7": - version: 0.1.7 - resolution: "path-to-regexp@npm:0.1.7" - checksum: 69a14ea24db543e8b0f4353305c5eac6907917031340e5a8b37df688e52accd09e3cebfe1660b70d76b6bd89152f52183f28c74813dbf454ba1a01c82a38abce - languageName: node - linkType: hard - -"path-to-regexp@npm:2.2.1": - version: 2.2.1 - resolution: "path-to-regexp@npm:2.2.1" - checksum: b921a74e7576e25b06ad1635abf7e8125a29220d2efc2b71d74b9591f24a27e6f09078fa9a1b27516a097ea0637b7cab79d19b83d7f36a8ef3ef5422770e89d9 - languageName: node - linkType: hard - -"path-to-regexp@npm:^1.7.0": - version: 1.8.0 - resolution: "path-to-regexp@npm:1.8.0" - dependencies: - isarray: 0.0.1 - checksum: 709f6f083c0552514ef4780cb2e7e4cf49b0cc89a97439f2b7cc69a608982b7690fb5d1720a7473a59806508fc2dae0be751ba49f495ecf89fd8fbc62abccbcd - languageName: node - linkType: hard - -"path-type@npm:^4.0.0": - version: 4.0.0 - resolution: "path-type@npm:4.0.0" - checksum: 5b1e2daa247062061325b8fdbfd1fb56dde0a448fb1455453276ea18c60685bdad23a445dc148cf87bc216be1573357509b7d4060494a6fd768c7efad833ee45 - languageName: node - linkType: hard - -"picocolors@npm:^1.0.0": - version: 1.0.0 - resolution: "picocolors@npm:1.0.0" - checksum: a2e8092dd86c8396bdba9f2b5481032848525b3dc295ce9b57896f931e63fc16f79805144321f72976383fc249584672a75cc18d6777c6b757603f372f745981 - languageName: node - linkType: hard - -"picomatch@npm:^2.0.4, picomatch@npm:^2.2.1, picomatch@npm:^2.2.3, picomatch@npm:^2.3.1": - version: 2.3.1 - resolution: "picomatch@npm:2.3.1" - checksum: 050c865ce81119c4822c45d3c84f1ced46f93a0126febae20737bd05ca20589c564d6e9226977df859ed5e03dc73f02584a2b0faad36e896936238238b0446cf - languageName: node - linkType: hard - -"pkg-dir@npm:^4.1.0": - version: 4.2.0 - resolution: "pkg-dir@npm:4.2.0" - dependencies: - find-up: ^4.0.0 - checksum: 9863e3f35132bf99ae1636d31ff1e1e3501251d480336edb1c211133c8d58906bed80f154a1d723652df1fda91e01c7442c2eeaf9dc83157c7ae89087e43c8d6 - languageName: node - linkType: hard - -"pkg-up@npm:^3.1.0": - version: 3.1.0 - resolution: "pkg-up@npm:3.1.0" - dependencies: - find-up: ^3.0.0 - checksum: 5bac346b7c7c903613c057ae3ab722f320716199d753f4a7d053d38f2b5955460f3e6ab73b4762c62fd3e947f58e04f1343e92089e7bb6091c90877406fcd8c8 - languageName: node - linkType: hard - -"postcss-calc@npm:^8.2.3": - version: 8.2.4 - resolution: "postcss-calc@npm:8.2.4" - dependencies: - postcss-selector-parser: ^6.0.9 - postcss-value-parser: ^4.2.0 - peerDependencies: - postcss: ^8.2.2 - checksum: 314b4cebb0c4ed0cf8356b4bce71eca78f5a7842e6a3942a3bba49db168d5296b2bd93c3f735ae1c616f2651d94719ade33becc03c73d2d79c7394fb7f73eabb - languageName: node - linkType: hard - -"postcss-colormin@npm:^5.3.0": - version: 5.3.0 - resolution: "postcss-colormin@npm:5.3.0" - dependencies: - browserslist: ^4.16.6 - caniuse-api: ^3.0.0 - colord: ^2.9.1 - postcss-value-parser: ^4.2.0 - peerDependencies: - postcss: ^8.2.15 - checksum: 3d3e3cc25071407fb73d68541ca1039ebd154fceb649041461a8a3cab0400cc89b42dbb34a4eeaf573be4ba2370ce23af5e01aff5e03a8d72275f40605577212 - languageName: node - linkType: hard - -"postcss-convert-values@npm:^5.1.3": - version: 5.1.3 - resolution: "postcss-convert-values@npm:5.1.3" - dependencies: - browserslist: ^4.21.4 - postcss-value-parser: ^4.2.0 - peerDependencies: - postcss: ^8.2.15 - checksum: df48cdaffabf9737f9cfdc58a3dc2841cf282506a7a944f6c70236cff295d3a69f63de6e0935eeb8a9d3f504324e5b4e240abc29e21df9e35a02585d3060aeb5 - languageName: node - linkType: hard - -"postcss-discard-comments@npm:^5.1.2": - version: 5.1.2 - resolution: "postcss-discard-comments@npm:5.1.2" - peerDependencies: - postcss: ^8.2.15 - checksum: abfd064ebc27aeaf5037643dd51ffaff74d1fa4db56b0523d073ace4248cbb64ffd9787bd6924b0983a9d0bd0e9bf9f10d73b120e50391dc236e0d26c812fa2a - languageName: node - linkType: hard - -"postcss-discard-duplicates@npm:^5.1.0": - version: 5.1.0 - resolution: "postcss-discard-duplicates@npm:5.1.0" - peerDependencies: - postcss: ^8.2.15 - checksum: 88d6964201b1f4ed6bf7a32cefe68e86258bb6e42316ca01d9b32bdb18e7887d02594f89f4a2711d01b51ea6e3fcca8c54be18a59770fe5f4521c61d3eb6ca35 - languageName: node - linkType: hard - -"postcss-discard-empty@npm:^5.1.1": - version: 5.1.1 - resolution: "postcss-discard-empty@npm:5.1.1" - peerDependencies: - postcss: ^8.2.15 - checksum: 970adb12fae5c214c0768236ad9a821552626e77dedbf24a8213d19cc2c4a531a757cd3b8cdd3fc22fb1742471b8692a1db5efe436a71236dec12b1318ee8ff4 - languageName: node - linkType: hard - -"postcss-discard-overridden@npm:^5.1.0": - version: 5.1.0 - resolution: "postcss-discard-overridden@npm:5.1.0" - peerDependencies: - postcss: ^8.2.15 - checksum: d64d4a545aa2c81b22542895cfcddc787d24119f294d35d29b0599a1c818b3cc51f4ee80b80f5a0a09db282453dd5ac49f104c2117cc09112d0ac9b40b499a41 - languageName: node - linkType: hard - -"postcss-discard-unused@npm:^5.1.0": - version: 5.1.0 - resolution: "postcss-discard-unused@npm:5.1.0" - dependencies: - postcss-selector-parser: ^6.0.5 - peerDependencies: - postcss: ^8.2.15 - checksum: 5c09403a342a065033f5f22cefe6b402c76c2dc0aac31a736a2062d82c2a09f0ff2525b3df3a0c6f4e0ffc7a0392efd44bfe7f9d018e4cae30d15b818b216622 - languageName: node - linkType: hard - -"postcss-loader@npm:^7.0.0": - version: 7.0.2 - resolution: "postcss-loader@npm:7.0.2" - dependencies: - cosmiconfig: ^7.0.0 - klona: ^2.0.5 - semver: ^7.3.8 - peerDependencies: - postcss: ^7.0.0 || ^8.0.1 - webpack: ^5.0.0 - checksum: 2d251537d482eb751f812c96c8b515f46d7c9905cad7afab33f0f34872670619b7440cefc9e2babbf89fb11b4708850d522d79fa5ff788227587645e78f16638 - languageName: node - linkType: hard - -"postcss-merge-idents@npm:^5.1.1": - version: 5.1.1 - resolution: "postcss-merge-idents@npm:5.1.1" - dependencies: - cssnano-utils: ^3.1.0 - postcss-value-parser: ^4.2.0 - peerDependencies: - postcss: ^8.2.15 - checksum: ed8a673617ea6ae3e15d69558063cb1a5eeee01732f78cdc0196ab910324abc30828724ab8dfc4cda27e8c0077542e25688470f829819a2604625a673387ec72 - languageName: node - linkType: hard - -"postcss-merge-longhand@npm:^5.1.7": - version: 5.1.7 - resolution: "postcss-merge-longhand@npm:5.1.7" - dependencies: - postcss-value-parser: ^4.2.0 - stylehacks: ^5.1.1 - peerDependencies: - postcss: ^8.2.15 - checksum: 81c3fc809f001b9b71a940148e242bdd6e2d77713d1bfffa15eb25c1f06f6648d5e57cb21645746d020a2a55ff31e1740d2b27900442913a9d53d8a01fb37e1b - languageName: node - linkType: hard - -"postcss-merge-rules@npm:^5.1.3": - version: 5.1.3 - resolution: "postcss-merge-rules@npm:5.1.3" - dependencies: - browserslist: ^4.21.4 - caniuse-api: ^3.0.0 - cssnano-utils: ^3.1.0 - postcss-selector-parser: ^6.0.5 - peerDependencies: - postcss: ^8.2.15 - checksum: 0ddaddff98cd7f3fac2b0e716c641f529a61a8668be6d5b48d60770d0a1246126088e1d606f309b9748ff598a3794f3fd6dd5b8c3d79112f84744cab5375d4d9 - languageName: node - linkType: hard - -"postcss-minify-font-values@npm:^5.1.0": - version: 5.1.0 - resolution: "postcss-minify-font-values@npm:5.1.0" - dependencies: - postcss-value-parser: ^4.2.0 - peerDependencies: - postcss: ^8.2.15 - checksum: 35e858fa41efa05acdeb28f1c76579c409fdc7eabb1744c3bd76e895bb9fea341a016746362a67609688ab2471f587202b9a3e14ea28ad677754d663a2777ece - languageName: node - linkType: hard - -"postcss-minify-gradients@npm:^5.1.1": - version: 5.1.1 - resolution: "postcss-minify-gradients@npm:5.1.1" - dependencies: - colord: ^2.9.1 - cssnano-utils: ^3.1.0 - postcss-value-parser: ^4.2.0 - peerDependencies: - postcss: ^8.2.15 - checksum: 27354072a07c5e6dab36731103b94ca2354d4ed3c5bc6aacfdf2ede5a55fa324679d8fee5450800bc50888dbb5e9ed67569c0012040c2be128143d0cebb36d67 - languageName: node - linkType: hard - -"postcss-minify-params@npm:^5.1.4": - version: 5.1.4 - resolution: "postcss-minify-params@npm:5.1.4" - dependencies: - browserslist: ^4.21.4 - cssnano-utils: ^3.1.0 - postcss-value-parser: ^4.2.0 - peerDependencies: - postcss: ^8.2.15 - checksum: bd63e2cc89edcf357bb5c2a16035f6d02ef676b8cede4213b2bddd42626b3d428403849188f95576fc9f03e43ebd73a29bf61d33a581be9a510b13b7f7f100d5 - languageName: node - linkType: hard - -"postcss-minify-selectors@npm:^5.2.1": - version: 5.2.1 - resolution: "postcss-minify-selectors@npm:5.2.1" - dependencies: - postcss-selector-parser: ^6.0.5 - peerDependencies: - postcss: ^8.2.15 - checksum: 6fdbc84f99a60d56b43df8930707da397775e4c36062a106aea2fd2ac81b5e24e584a1892f4baa4469fa495cb87d1422560eaa8f6c9d500f9f0b691a5f95bab5 - languageName: node - linkType: hard - -"postcss-modules-extract-imports@npm:^3.0.0": - version: 3.0.0 - resolution: "postcss-modules-extract-imports@npm:3.0.0" - peerDependencies: - postcss: ^8.1.0 - checksum: 4b65f2f1382d89c4bc3c0a1bdc5942f52f3cb19c110c57bd591ffab3a5fee03fcf831604168205b0c1b631a3dce2255c70b61aaae3ef39d69cd7eb450c2552d2 - languageName: node - linkType: hard - -"postcss-modules-local-by-default@npm:^4.0.0": - version: 4.0.0 - resolution: "postcss-modules-local-by-default@npm:4.0.0" - dependencies: - icss-utils: ^5.0.0 - postcss-selector-parser: ^6.0.2 - postcss-value-parser: ^4.1.0 - peerDependencies: - postcss: ^8.1.0 - checksum: 6cf570badc7bc26c265e073f3ff9596b69bb954bc6ac9c5c1b8cba2995b80834226b60e0a3cbb87d5f399dbb52e6466bba8aa1d244f6218f99d834aec431a69d - languageName: node - linkType: hard - -"postcss-modules-scope@npm:^3.0.0": - version: 3.0.0 - resolution: "postcss-modules-scope@npm:3.0.0" - dependencies: - postcss-selector-parser: ^6.0.4 - peerDependencies: - postcss: ^8.1.0 - checksum: 330b9398dbd44c992c92b0dc612c0626135e2cc840fee41841eb61247a6cfed95af2bd6f67ead9dd9d0bb41f5b0367129d93c6e434fa3e9c58ade391d9a5a138 - languageName: node - linkType: hard - -"postcss-modules-values@npm:^4.0.0": - version: 4.0.0 - resolution: "postcss-modules-values@npm:4.0.0" - dependencies: - icss-utils: ^5.0.0 - peerDependencies: - postcss: ^8.1.0 - checksum: f7f2cdf14a575b60e919ad5ea52fed48da46fe80db2733318d71d523fc87db66c835814940d7d05b5746b0426e44661c707f09bdb83592c16aea06e859409db6 - languageName: node - linkType: hard - -"postcss-normalize-charset@npm:^5.1.0": - version: 5.1.0 - resolution: "postcss-normalize-charset@npm:5.1.0" - peerDependencies: - postcss: ^8.2.15 - checksum: e79d92971fc05b8b3c9b72f3535a574e077d13c69bef68156a0965f397fdf157de670da72b797f57b0e3bac8f38155b5dd1735ecab143b9cc4032d72138193b4 - languageName: node - linkType: hard - -"postcss-normalize-display-values@npm:^5.1.0": - version: 5.1.0 - resolution: "postcss-normalize-display-values@npm:5.1.0" - dependencies: - postcss-value-parser: ^4.2.0 - peerDependencies: - postcss: ^8.2.15 - checksum: b6eb7b9b02c3bdd62bbc54e01e2b59733d73a1c156905d238e178762962efe0c6f5104544da39f32cade8a4fb40f10ff54b63a8ebfbdff51e8780afb9fbdcf86 - languageName: node - linkType: hard - -"postcss-normalize-positions@npm:^5.1.1": - version: 5.1.1 - resolution: "postcss-normalize-positions@npm:5.1.1" - dependencies: - postcss-value-parser: ^4.2.0 - peerDependencies: - postcss: ^8.2.15 - checksum: d9afc233729c496463c7b1cdd06732469f401deb387484c3a2422125b46ec10b4af794c101f8c023af56f01970b72b535e88373b9058ecccbbf88db81662b3c4 - languageName: node - linkType: hard - -"postcss-normalize-repeat-style@npm:^5.1.1": - version: 5.1.1 - resolution: "postcss-normalize-repeat-style@npm:5.1.1" - dependencies: - postcss-value-parser: ^4.2.0 - peerDependencies: - postcss: ^8.2.15 - checksum: 2c6ad2b0ae10a1fda156b948c34f78c8f1e185513593de4d7e2480973586675520edfec427645fa168c337b0a6b3ceca26f92b96149741ca98a9806dad30d534 - languageName: node - linkType: hard - -"postcss-normalize-string@npm:^5.1.0": - version: 5.1.0 - resolution: "postcss-normalize-string@npm:5.1.0" - dependencies: - postcss-value-parser: ^4.2.0 - peerDependencies: - postcss: ^8.2.15 - checksum: 6e549c6e5b2831e34c7bdd46d8419e2278f6af1d5eef6d26884a37c162844e60339340c57e5e06058cdbe32f27fc6258eef233e811ed2f71168ef2229c236ada - languageName: node - linkType: hard - -"postcss-normalize-timing-functions@npm:^5.1.0": - version: 5.1.0 - resolution: "postcss-normalize-timing-functions@npm:5.1.0" - dependencies: - postcss-value-parser: ^4.2.0 - peerDependencies: - postcss: ^8.2.15 - checksum: da550f50e90b0b23e17b67449a7d1efd1aa68288e66d4aa7614ca6f5cc012896be1972b7168eee673d27da36504faccf7b9f835c0f7e81243f966a42c8c030aa - languageName: node - linkType: hard - -"postcss-normalize-unicode@npm:^5.1.1": - version: 5.1.1 - resolution: "postcss-normalize-unicode@npm:5.1.1" - dependencies: - browserslist: ^4.21.4 - postcss-value-parser: ^4.2.0 - peerDependencies: - postcss: ^8.2.15 - checksum: 4c24d26cc9f4b19a9397db4e71dd600dab690f1de8e14a3809e2aa1452dbc3791c208c38a6316bbc142f29e934fdf02858e68c94038c06174d78a4937e0f273c - languageName: node - linkType: hard - -"postcss-normalize-url@npm:^5.1.0": - version: 5.1.0 - resolution: "postcss-normalize-url@npm:5.1.0" - dependencies: - normalize-url: ^6.0.1 - postcss-value-parser: ^4.2.0 - peerDependencies: - postcss: ^8.2.15 - checksum: 3bd4b3246d6600230bc827d1760b24cb3101827ec97570e3016cbe04dc0dd28f4dbe763245d1b9d476e182c843008fbea80823061f1d2219b96f0d5c724a24c0 - languageName: node - linkType: hard - -"postcss-normalize-whitespace@npm:^5.1.1": - version: 5.1.1 - resolution: "postcss-normalize-whitespace@npm:5.1.1" - dependencies: - postcss-value-parser: ^4.2.0 - peerDependencies: - postcss: ^8.2.15 - checksum: 12d8fb6d1c1cba208cc08c1830959b7d7ad447c3f5581873f7e185f99a9a4230c43d3af21ca12c818e4690a5085a95b01635b762ad4a7bef69d642609b4c0e19 - languageName: node - linkType: hard - -"postcss-ordered-values@npm:^5.1.3": - version: 5.1.3 - resolution: "postcss-ordered-values@npm:5.1.3" - dependencies: - cssnano-utils: ^3.1.0 - postcss-value-parser: ^4.2.0 - peerDependencies: - postcss: ^8.2.15 - checksum: 6f3ca85b6ceffc68aadaf319d9ee4c5ac16d93195bf8cba2d1559b631555ad61941461cda6d3909faab86e52389846b2b36345cff8f0c3f4eb345b1b8efadcf9 - languageName: node - linkType: hard - -"postcss-reduce-idents@npm:^5.2.0": - version: 5.2.0 - resolution: "postcss-reduce-idents@npm:5.2.0" - dependencies: - postcss-value-parser: ^4.2.0 - peerDependencies: - postcss: ^8.2.15 - checksum: f0d644c86e160dd36ee4dd924ab7d6feacac867c87702e2f98f96b409430a62de4fec2dfc3c8731bda4e14196e29a752b4558942f0af2a3e6cd7f1f4b173db8e - languageName: node - linkType: hard - -"postcss-reduce-initial@npm:^5.1.1": - version: 5.1.1 - resolution: "postcss-reduce-initial@npm:5.1.1" - dependencies: - browserslist: ^4.21.4 - caniuse-api: ^3.0.0 - peerDependencies: - postcss: ^8.2.15 - checksum: 1b704aba8c38103cbb5a75c6201dbf58ec2f3a978013c7f7e8957fd3bf3282f992050dec5a01bc050d031bad836e187dd6622b922ca78ab92bcd0afd21fb0b98 - languageName: node - linkType: hard - -"postcss-reduce-transforms@npm:^5.1.0": - version: 5.1.0 - resolution: "postcss-reduce-transforms@npm:5.1.0" - dependencies: - postcss-value-parser: ^4.2.0 - peerDependencies: - postcss: ^8.2.15 - checksum: 0c6af2cba20e3ff63eb9ad045e634ddfb9c3e5c0e614c020db2a02f3aa20632318c4ede9e0c995f9225d9a101e673de91c0a6e10bb2fa5da6d6c75d15a55882f - languageName: node - linkType: hard - -"postcss-selector-parser@npm:^6.0.2, postcss-selector-parser@npm:^6.0.4, postcss-selector-parser@npm:^6.0.5, postcss-selector-parser@npm:^6.0.9": - version: 6.0.11 - resolution: "postcss-selector-parser@npm:6.0.11" - dependencies: - cssesc: ^3.0.0 - util-deprecate: ^1.0.2 - checksum: 0b01aa9c2d2c8dbeb51e9b204796b678284be9823abc8d6d40a8b16d4149514e922c264a8ed4deb4d6dbced564b9be390f5942c058582d8656351516d6c49cde - languageName: node - linkType: hard - -"postcss-sort-media-queries@npm:^4.2.1": - version: 4.3.0 - resolution: "postcss-sort-media-queries@npm:4.3.0" - dependencies: - sort-css-media-queries: 2.1.0 - peerDependencies: - postcss: ^8.4.16 - checksum: 7bf9fcde74781f40ca49484e84dcd26e491632b296ba77b3f4b7ea7778f816ac48f87d2c6ab0a629edf636440a4240615b69a4ece1dd7597f6a4e0678794eb0e - languageName: node - linkType: hard - -"postcss-svgo@npm:^5.1.0": - version: 5.1.0 - resolution: "postcss-svgo@npm:5.1.0" - dependencies: - postcss-value-parser: ^4.2.0 - svgo: ^2.7.0 - peerDependencies: - postcss: ^8.2.15 - checksum: d86eb5213d9f700cf5efe3073799b485fb7cacae0c731db3d7749c9c2b1c9bc85e95e0baeca439d699ff32ea24815fc916c4071b08f67ed8219df229ce1129bd - languageName: node - linkType: hard - -"postcss-unique-selectors@npm:^5.1.1": - version: 5.1.1 - resolution: "postcss-unique-selectors@npm:5.1.1" - dependencies: - postcss-selector-parser: ^6.0.5 - peerDependencies: - postcss: ^8.2.15 - checksum: 637e7b786e8558265775c30400c54b6b3b24d4748923f4a39f16a65fd0e394f564ccc9f0a1d3c0e770618a7637a7502ea1d0d79f731d429cb202255253c23278 - languageName: node - linkType: hard - -"postcss-value-parser@npm:^4.1.0, postcss-value-parser@npm:^4.2.0": - version: 4.2.0 - resolution: "postcss-value-parser@npm:4.2.0" - checksum: 819ffab0c9d51cf0acbabf8996dffbfafbafa57afc0e4c98db88b67f2094cb44488758f06e5da95d7036f19556a4a732525e84289a425f4f6fd8e412a9d7442f - languageName: node - linkType: hard - -"postcss-zindex@npm:^5.1.0": - version: 5.1.0 - resolution: "postcss-zindex@npm:5.1.0" - peerDependencies: - postcss: ^8.2.15 - checksum: 8581e0ee552622489dcb9fb9609a3ccc261a67a229ba91a70bd138fe102a2d04cedb14642b82b673d4cac7b559ef32574f2dafde2ff7816eecac024d231c5ead - languageName: node - linkType: hard - -"postcss@npm:^8.3.11, postcss@npm:^8.4.14, postcss@npm:^8.4.17, postcss@npm:^8.4.19": - version: 8.4.21 - resolution: "postcss@npm:8.4.21" - dependencies: - nanoid: ^3.3.4 - picocolors: ^1.0.0 - source-map-js: ^1.0.2 - checksum: e39ac60ccd1542d4f9d93d894048aac0d686b3bb38e927d8386005718e6793dbbb46930f0a523fe382f1bbd843c6d980aaea791252bf5e176180e5a4336d9679 - languageName: node - linkType: hard - -"prepend-http@npm:^2.0.0": - version: 2.0.0 - resolution: "prepend-http@npm:2.0.0" - checksum: 7694a9525405447662c1ffd352fcb41b6410c705b739b6f4e3a3e21cf5fdede8377890088e8934436b8b17ba55365a615f153960f30877bf0d0392f9e93503ea - languageName: node - linkType: hard - -"pretty-error@npm:^4.0.0": - version: 4.0.0 - resolution: "pretty-error@npm:4.0.0" - dependencies: - lodash: ^4.17.20 - renderkid: ^3.0.0 - checksum: a5b9137365690104ded6947dca2e33360bf55e62a4acd91b1b0d7baa3970e43754c628cc9e16eafbdd4e8f8bcb260a5865475d4fc17c3106ff2d61db4e72cdf3 - languageName: node - linkType: hard - -"pretty-time@npm:^1.1.0": - version: 1.1.0 - resolution: "pretty-time@npm:1.1.0" - checksum: a319e7009aadbc6cfedbd8b66861327d3a0c68bd3e8794bf5b86f62b40b01b9479c5a70c76bb368ad454acce52a1216daee460cc825766e2442c04f3a84a02c9 - languageName: node - linkType: hard - -"prism-react-renderer@npm:^1.3.5": - version: 1.3.5 - resolution: "prism-react-renderer@npm:1.3.5" - peerDependencies: - react: ">=0.14.9" - checksum: c18806dcbc4c0b4fd6fd15bd06b4f7c0a6da98d93af235c3e970854994eb9b59e23315abb6cfc29e69da26d36709a47e25da85ab27fed81b6812f0a52caf6dfa - languageName: node - linkType: hard - -"prismjs@npm:^1.28.0": - version: 1.29.0 - resolution: "prismjs@npm:1.29.0" - checksum: 007a8869d4456ff8049dc59404e32d5666a07d99c3b0e30a18bd3b7676dfa07d1daae9d0f407f20983865fd8da56de91d09cb08e6aa61f5bc420a27c0beeaf93 - languageName: node - linkType: hard - -"process-nextick-args@npm:~2.0.0": - version: 2.0.1 - resolution: "process-nextick-args@npm:2.0.1" - checksum: 1d38588e520dab7cea67cbbe2efdd86a10cc7a074c09657635e34f035277b59fbb57d09d8638346bf7090f8e8ebc070c96fa5fd183b777fff4f5edff5e9466cf - languageName: node - linkType: hard - -"promise-inflight@npm:^1.0.1": - version: 1.0.1 - resolution: "promise-inflight@npm:1.0.1" - checksum: 22749483091d2c594261517f4f80e05226d4d5ecc1fc917e1886929da56e22b5718b7f2a75f3807e7a7d471bc3be2907fe92e6e8f373ddf5c64bae35b5af3981 - languageName: node - linkType: hard - -"promise-retry@npm:^2.0.1": - version: 2.0.1 - resolution: "promise-retry@npm:2.0.1" - dependencies: - err-code: ^2.0.2 - retry: ^0.12.0 - checksum: f96a3f6d90b92b568a26f71e966cbbc0f63ab85ea6ff6c81284dc869b41510e6cdef99b6b65f9030f0db422bf7c96652a3fff9f2e8fb4a0f069d8f4430359429 - languageName: node - linkType: hard - -"promise@npm:^7.1.1": - version: 7.3.1 - resolution: "promise@npm:7.3.1" - dependencies: - asap: ~2.0.3 - checksum: 475bb069130179fbd27ed2ab45f26d8862376a137a57314cf53310bdd85cc986a826fd585829be97ebc0aaf10e9d8e68be1bfe5a4a0364144b1f9eedfa940cf1 - languageName: node - linkType: hard - -"prompts@npm:^2.4.2": - version: 2.4.2 - resolution: "prompts@npm:2.4.2" - dependencies: - kleur: ^3.0.3 - sisteransi: ^1.0.5 - checksum: d8fd1fe63820be2412c13bfc5d0a01909acc1f0367e32396962e737cb2fc52d004f3302475d5ce7d18a1e8a79985f93ff04ee03007d091029c3f9104bffc007d - languageName: node - linkType: hard - -"prop-types@npm:^15.6.2, prop-types@npm:^15.7.2": - version: 15.8.1 - resolution: "prop-types@npm:15.8.1" - dependencies: - loose-envify: ^1.4.0 - object-assign: ^4.1.1 - react-is: ^16.13.1 - checksum: c056d3f1c057cb7ff8344c645450e14f088a915d078dcda795041765047fa080d38e5d626560ccaac94a4e16e3aa15f3557c1a9a8d1174530955e992c675e459 - languageName: node - linkType: hard - -"property-information@npm:^5.0.0, property-information@npm:^5.3.0": - version: 5.6.0 - resolution: "property-information@npm:5.6.0" - dependencies: - xtend: ^4.0.0 - checksum: fcf87c6542e59a8bbe31ca0b3255a4a63ac1059b01b04469680288998bcfa97f341ca989566adbb63975f4d85339030b82320c324a511532d390910d1c583893 - languageName: node - linkType: hard - -"proxy-addr@npm:~2.0.7": - version: 2.0.7 - resolution: "proxy-addr@npm:2.0.7" - dependencies: - forwarded: 0.2.0 - ipaddr.js: 1.9.1 - checksum: 29c6990ce9364648255454842f06f8c46fcd124d3e6d7c5066df44662de63cdc0bad032e9bf5a3d653ff72141cc7b6019873d685708ac8210c30458ad99f2b74 - languageName: node - linkType: hard - -"pump@npm:^3.0.0": - version: 3.0.0 - resolution: "pump@npm:3.0.0" - dependencies: - end-of-stream: ^1.1.0 - once: ^1.3.1 - checksum: e42e9229fba14732593a718b04cb5e1cfef8254544870997e0ecd9732b189a48e1256e4e5478148ecb47c8511dca2b09eae56b4d0aad8009e6fac8072923cfc9 - languageName: node - linkType: hard - -"punycode@npm:^1.3.2": - version: 1.4.1 - resolution: "punycode@npm:1.4.1" - checksum: fa6e698cb53db45e4628559e557ddaf554103d2a96a1d62892c8f4032cd3bc8871796cae9eabc1bc700e2b6677611521ce5bb1d9a27700086039965d0cf34518 - languageName: node - linkType: hard - -"punycode@npm:^2.1.0": - version: 2.2.0 - resolution: "punycode@npm:2.2.0" - checksum: 32f291c1b1e8bef8a7d351a369579565bc17530ee5224d2f2b5c37b2647aa0ec7f1972294e2de1b632812f90c8080a7c0c5645c14758aadc0f27b35dd4906d89 - languageName: node - linkType: hard - -"pupa@npm:^2.1.1": - version: 2.1.1 - resolution: "pupa@npm:2.1.1" - dependencies: - escape-goat: ^2.0.0 - checksum: 49529e50372ffdb0cccf0efa0f3b3cb0a2c77805d0d9cc2725bd2a0f6bb414631e61c93a38561b26be1259550b7bb6c2cb92315aa09c8bf93f3bdcb49f2b2fb7 - languageName: node - linkType: hard - -"pure-color@npm:^1.2.0": - version: 1.3.0 - resolution: "pure-color@npm:1.3.0" - checksum: 646d8bed6e6eab89affdd5e2c11f607a85b631a7fb03c061dfa658eb4dc4806881a15feed2ac5fd8c0bad8c00c632c640d5b1cb8b9a972e6e947393a1329371b - languageName: node - linkType: hard - -"qs@npm:6.11.0": - version: 6.11.0 - resolution: "qs@npm:6.11.0" - dependencies: - side-channel: ^1.0.4 - checksum: 6e1f29dd5385f7488ec74ac7b6c92f4d09a90408882d0c208414a34dd33badc1a621019d4c799a3df15ab9b1d0292f97c1dd71dc7c045e69f81a8064e5af7297 - languageName: node - linkType: hard - -"queue-microtask@npm:^1.2.2": - version: 1.2.3 - resolution: "queue-microtask@npm:1.2.3" - checksum: b676f8c040cdc5b12723ad2f91414d267605b26419d5c821ff03befa817ddd10e238d22b25d604920340fd73efd8ba795465a0377c4adf45a4a41e4234e42dc4 - languageName: node - linkType: hard - -"queue@npm:6.0.2": - version: 6.0.2 - resolution: "queue@npm:6.0.2" - dependencies: - inherits: ~2.0.3 - checksum: ebc23639248e4fe40a789f713c20548e513e053b3dc4924b6cb0ad741e3f264dcff948225c8737834dd4f9ec286dbc06a1a7c13858ea382d9379f4303bcc0916 - languageName: node - linkType: hard - -"randombytes@npm:^2.1.0": - version: 2.1.0 - resolution: "randombytes@npm:2.1.0" - dependencies: - safe-buffer: ^5.1.0 - checksum: d779499376bd4cbb435ef3ab9a957006c8682f343f14089ed5f27764e4645114196e75b7f6abf1cbd84fd247c0cb0651698444df8c9bf30e62120fbbc52269d6 - languageName: node - linkType: hard - -"range-parser@npm:1.2.0": - version: 1.2.0 - resolution: "range-parser@npm:1.2.0" - checksum: bdf397f43fedc15c559d3be69c01dedf38444ca7a1610f5bf5955e3f3da6057a892f34691e7ebdd8c7e1698ce18ef6c4d4811f70e658dda3ff230ef741f8423a - languageName: node - linkType: hard - -"range-parser@npm:^1.2.1, range-parser@npm:~1.2.1": - version: 1.2.1 - resolution: "range-parser@npm:1.2.1" - checksum: 0a268d4fea508661cf5743dfe3d5f47ce214fd6b7dec1de0da4d669dd4ef3d2144468ebe4179049eff253d9d27e719c88dae55be64f954e80135a0cada804ec9 - languageName: node - linkType: hard - -"raw-body@npm:2.5.1": - version: 2.5.1 - resolution: "raw-body@npm:2.5.1" - dependencies: - bytes: 3.1.2 - http-errors: 2.0.0 - iconv-lite: 0.4.24 - unpipe: 1.0.0 - checksum: 5362adff1575d691bb3f75998803a0ffed8c64eabeaa06e54b4ada25a0cd1b2ae7f4f5ec46565d1bec337e08b5ac90c76eaa0758de6f72a633f025d754dec29e - languageName: node - linkType: hard - -"rc@npm:1.2.8, rc@npm:^1.2.8": - version: 1.2.8 - resolution: "rc@npm:1.2.8" - dependencies: - deep-extend: ^0.6.0 - ini: ~1.3.0 - minimist: ^1.2.0 - strip-json-comments: ~2.0.1 - bin: - rc: ./cli.js - checksum: 2e26e052f8be2abd64e6d1dabfbd7be03f80ec18ccbc49562d31f617d0015fbdbcf0f9eed30346ea6ab789e0fdfe4337f033f8016efdbee0df5354751842080e - languageName: node - linkType: hard - -"react-base16-styling@npm:^0.6.0": - version: 0.6.0 - resolution: "react-base16-styling@npm:0.6.0" - dependencies: - base16: ^1.0.0 - lodash.curry: ^4.0.1 - lodash.flow: ^3.3.0 - pure-color: ^1.2.0 - checksum: 00a12dddafc8a9025cca933b0dcb65fca41c81fa176d1fc3a6a9d0242127042e2c0a604f4c724a3254dd2c6aeb5ef55095522ff22f5462e419641c1341a658e4 - languageName: node - linkType: hard - -"react-dev-utils@npm:^12.0.1": - version: 12.0.1 - resolution: "react-dev-utils@npm:12.0.1" - dependencies: - "@babel/code-frame": ^7.16.0 - address: ^1.1.2 - browserslist: ^4.18.1 - chalk: ^4.1.2 - cross-spawn: ^7.0.3 - detect-port-alt: ^1.1.6 - escape-string-regexp: ^4.0.0 - filesize: ^8.0.6 - find-up: ^5.0.0 - fork-ts-checker-webpack-plugin: ^6.5.0 - global-modules: ^2.0.0 - globby: ^11.0.4 - gzip-size: ^6.0.0 - immer: ^9.0.7 - is-root: ^2.1.0 - loader-utils: ^3.2.0 - open: ^8.4.0 - pkg-up: ^3.1.0 - prompts: ^2.4.2 - react-error-overlay: ^6.0.11 - recursive-readdir: ^2.2.2 - shell-quote: ^1.7.3 - strip-ansi: ^6.0.1 - text-table: ^0.2.0 - checksum: 2c6917e47f03d9595044770b0f883a61c6b660fcaa97b8ba459a1d57c9cca9aa374cd51296b22d461ff5e432105dbe6f04732dab128e52729c79239e1c23ab56 - languageName: node - linkType: hard - -"react-dom@npm:^17.0.2": - version: 17.0.2 - resolution: "react-dom@npm:17.0.2" - dependencies: - loose-envify: ^1.1.0 - object-assign: ^4.1.1 - scheduler: ^0.20.2 - peerDependencies: - react: 17.0.2 - checksum: 1c1eaa3bca7c7228d24b70932e3d7c99e70d1d04e13bb0843bbf321582bc25d7961d6b8a6978a58a598af2af496d1cedcfb1bf65f6b0960a0a8161cb8dab743c - languageName: node - linkType: hard - -"react-error-overlay@npm:^6.0.11": - version: 6.0.11 - resolution: "react-error-overlay@npm:6.0.11" - checksum: ce7b44c38fadba9cedd7c095cf39192e632daeccf1d0747292ed524f17dcb056d16bc197ddee5723f9dd888f0b9b19c3b486c430319e30504289b9296f2d2c42 - languageName: node - linkType: hard - -"react-fast-compare@npm:^3.2.0": - version: 3.2.0 - resolution: "react-fast-compare@npm:3.2.0" - checksum: 8ef272c825ae329f61633ce4ce7f15aa5b84e5214d88bc0823880236e03e985a13195befa2c7a4eda7db3b017dc7985729152d88445823f652403cf36c2b86aa - languageName: node - linkType: hard - -"react-helmet-async@npm:*, react-helmet-async@npm:^1.3.0": - version: 1.3.0 - resolution: "react-helmet-async@npm:1.3.0" - dependencies: - "@babel/runtime": ^7.12.5 - invariant: ^2.2.4 - prop-types: ^15.7.2 - react-fast-compare: ^3.2.0 - shallowequal: ^1.1.0 - peerDependencies: - react: ^16.6.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.6.0 || ^17.0.0 || ^18.0.0 - checksum: 7ca7e47f8af14ea186688b512a87ab912bf6041312b297f92516341b140b3f0f8aedf5a44d226d99e69ed067b0cc106e38aeb9c9b738ffcc63d10721c844db90 - languageName: node - linkType: hard - -"react-is@npm:^16.13.1, react-is@npm:^16.6.0, react-is@npm:^16.7.0": - version: 16.13.1 - resolution: "react-is@npm:16.13.1" - checksum: f7a19ac3496de32ca9ae12aa030f00f14a3d45374f1ceca0af707c831b2a6098ef0d6bdae51bd437b0a306d7f01d4677fcc8de7c0d331eb47ad0f46130e53c5f - languageName: node - linkType: hard - -"react-json-view@npm:^1.21.3": - version: 1.21.3 - resolution: "react-json-view@npm:1.21.3" - dependencies: - flux: ^4.0.1 - react-base16-styling: ^0.6.0 - react-lifecycles-compat: ^3.0.4 - react-textarea-autosize: ^8.3.2 - peerDependencies: - react: ^17.0.0 || ^16.3.0 || ^15.5.4 - react-dom: ^17.0.0 || ^16.3.0 || ^15.5.4 - checksum: 5718bcd9210ad5b06eb9469cf8b9b44be9498845a7702e621343618e8251f26357e6e1c865532cf170db6165df1cb30202787e057309d8848c220bc600ec0d1a - languageName: node - linkType: hard - -"react-lifecycles-compat@npm:^3.0.4": - version: 3.0.4 - resolution: "react-lifecycles-compat@npm:3.0.4" - checksum: a904b0fc0a8eeb15a148c9feb7bc17cec7ef96e71188280061fc340043fd6d8ee3ff233381f0e8f95c1cf926210b2c4a31f38182c8f35ac55057e453d6df204f - languageName: node - linkType: hard - -"react-loadable-ssr-addon-v5-slorber@npm:^1.0.1": - version: 1.0.1 - resolution: "react-loadable-ssr-addon-v5-slorber@npm:1.0.1" - dependencies: - "@babel/runtime": ^7.10.3 - peerDependencies: - react-loadable: "*" - webpack: ">=4.41.1 || 5.x" - checksum: 1cf7ceb488d329a5be15f891dae16727fb7ade08ef57826addd21e2c3d485e2440259ef8be94f4d54e9afb4bcbd2fcc22c3c5bad92160c9c06ae6ba7b5562497 - languageName: node - linkType: hard - -"react-router-config@npm:^5.1.1": - version: 5.1.1 - resolution: "react-router-config@npm:5.1.1" - dependencies: - "@babel/runtime": ^7.1.2 - peerDependencies: - react: ">=15" - react-router: ">=5" - checksum: bde7ee79444454bf7c3737fd9c5c268021012c8cc37bc19116b2e7daa28c4231598c275816c7f32c16f9f974dc707b91de279291a5e39efce2e1b1569355b87a - languageName: node - linkType: hard - -"react-router-dom@npm:^5.3.3": - version: 5.3.4 - resolution: "react-router-dom@npm:5.3.4" - dependencies: - "@babel/runtime": ^7.12.13 - history: ^4.9.0 - loose-envify: ^1.3.1 - prop-types: ^15.6.2 - react-router: 5.3.4 - tiny-invariant: ^1.0.2 - tiny-warning: ^1.0.0 - peerDependencies: - react: ">=15" - checksum: b86a6f2f5222f041e38adf4e4b32c7643d6735a1a915ef25855b2db285fd059d72ba8d62e5bcd5d822b8ef9520a80453209e55077f5a90d0f72e908979b8f535 - languageName: node - linkType: hard - -"react-router@npm:5.3.4, react-router@npm:^5.3.3": - version: 5.3.4 - resolution: "react-router@npm:5.3.4" - dependencies: - "@babel/runtime": ^7.12.13 - history: ^4.9.0 - hoist-non-react-statics: ^3.1.0 - loose-envify: ^1.3.1 - path-to-regexp: ^1.7.0 - prop-types: ^15.6.2 - react-is: ^16.6.0 - tiny-invariant: ^1.0.2 - tiny-warning: ^1.0.0 - peerDependencies: - react: ">=15" - checksum: 892d4e274a23bf4f39abc2efca54472fb646d3aed4b584020cf49654d2f50d09a2bacebe7c92b4ec7cb8925077376dfcd0664bad6442a73604397cefec9f01f9 - languageName: node - linkType: hard - -"react-textarea-autosize@npm:^8.3.2": - version: 8.4.0 - resolution: "react-textarea-autosize@npm:8.4.0" - dependencies: - "@babel/runtime": ^7.10.2 - use-composed-ref: ^1.3.0 - use-latest: ^1.2.1 - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - checksum: 055fb51b74e1ab6b286490cfcd8ed77a760f6fc90706053b5dfcb138199d02c56289a1060a1daf9f3ae37ffd66f73e9553f026d0fad446bc2243b713acf48e05 - languageName: node - linkType: hard - -"react@npm:^17.0.2": - version: 17.0.2 - resolution: "react@npm:17.0.2" - dependencies: - loose-envify: ^1.1.0 - object-assign: ^4.1.1 - checksum: b254cc17ce3011788330f7bbf383ab653c6848902d7936a87b09d835d091e3f295f7e9dd1597c6daac5dc80f90e778c8230218ba8ad599f74adcc11e33b9d61b - languageName: node - linkType: hard - -"readable-stream@npm:^2.0.1": - version: 2.3.7 - resolution: "readable-stream@npm:2.3.7" - dependencies: - core-util-is: ~1.0.0 - inherits: ~2.0.3 - isarray: ~1.0.0 - process-nextick-args: ~2.0.0 - safe-buffer: ~5.1.1 - string_decoder: ~1.1.1 - util-deprecate: ~1.0.1 - checksum: e4920cf7549a60f8aaf694d483a0e61b2a878b969d224f89b3bc788b8d920075132c4b55a7494ee944c7b6a9a0eada28a7f6220d80b0312ece70bbf08eeca755 - languageName: node - linkType: hard - -"readable-stream@npm:^3.0.6, readable-stream@npm:^3.4.0, readable-stream@npm:^3.6.0": - version: 3.6.0 - resolution: "readable-stream@npm:3.6.0" - dependencies: - inherits: ^2.0.3 - string_decoder: ^1.1.1 - util-deprecate: ^1.0.1 - checksum: d4ea81502d3799439bb955a3a5d1d808592cf3133350ed352aeaa499647858b27b1c4013984900238b0873ec8d0d8defce72469fb7a83e61d53f5ad61cb80dc8 - languageName: node - linkType: hard - -"readdirp@npm:~3.6.0": - version: 3.6.0 - resolution: "readdirp@npm:3.6.0" - dependencies: - picomatch: ^2.2.1 - checksum: 1ced032e6e45670b6d7352d71d21ce7edf7b9b928494dcaba6f11fba63180d9da6cd7061ebc34175ffda6ff529f481818c962952004d273178acd70f7059b320 - languageName: node - linkType: hard - -"reading-time@npm:^1.5.0": - version: 1.5.0 - resolution: "reading-time@npm:1.5.0" - checksum: e27bc5a70ba0f4ac337896b18531b914d38f4bee67cbad48029d0c11dd0a7a847b2a6bba895ab7ce2ad3e7ecb86912bdc477d8fa2d48405a3deda964be54d09b - languageName: node - linkType: hard - -"rechoir@npm:^0.6.2": - version: 0.6.2 - resolution: "rechoir@npm:0.6.2" - dependencies: - resolve: ^1.1.6 - checksum: fe76bf9c21875ac16e235defedd7cbd34f333c02a92546142b7911a0f7c7059d2e16f441fe6fb9ae203f459c05a31b2bcf26202896d89e390eda7514d5d2702b - languageName: node - linkType: hard - -"recursive-readdir@npm:^2.2.2": - version: 2.2.3 - resolution: "recursive-readdir@npm:2.2.3" - dependencies: - minimatch: ^3.0.5 - checksum: 88ec96e276237290607edc0872b4f9842837b95cfde0cdbb1e00ba9623dfdf3514d44cdd14496ab60a0c2dd180a6ef8a3f1c34599e6cf2273afac9b72a6fb2b5 - languageName: node - linkType: hard - -"regenerate-unicode-properties@npm:^10.1.0": - version: 10.1.0 - resolution: "regenerate-unicode-properties@npm:10.1.0" - dependencies: - regenerate: ^1.4.2 - checksum: b1a8929588433ab8b9dc1a34cf3665b3b472f79f2af6ceae00d905fc496b332b9af09c6718fb28c730918f19a00dc1d7310adbaa9b72a2ec7ad2f435da8ace17 - languageName: node - linkType: hard - -"regenerate@npm:^1.4.2": - version: 1.4.2 - resolution: "regenerate@npm:1.4.2" - checksum: 3317a09b2f802da8db09aa276e469b57a6c0dd818347e05b8862959c6193408242f150db5de83c12c3fa99091ad95fb42a6db2c3329bfaa12a0ea4cbbeb30cb0 - languageName: node - linkType: hard - -"regenerator-runtime@npm:^0.13.11": - version: 0.13.11 - resolution: "regenerator-runtime@npm:0.13.11" - checksum: 27481628d22a1c4e3ff551096a683b424242a216fee44685467307f14d58020af1e19660bf2e26064de946bad7eff28950eae9f8209d55723e2d9351e632bbb4 - languageName: node - linkType: hard - -"regenerator-transform@npm:^0.15.1": - version: 0.15.1 - resolution: "regenerator-transform@npm:0.15.1" - dependencies: - "@babel/runtime": ^7.8.4 - checksum: 2d15bdeadbbfb1d12c93f5775493d85874dbe1d405bec323da5c61ec6e701bc9eea36167483e1a5e752de9b2df59ab9a2dfff6bf3784f2b28af2279a673d29a4 - languageName: node - linkType: hard - -"regexpu-core@npm:^5.2.1": - version: 5.2.2 - resolution: "regexpu-core@npm:5.2.2" - dependencies: - regenerate: ^1.4.2 - regenerate-unicode-properties: ^10.1.0 - regjsgen: ^0.7.1 - regjsparser: ^0.9.1 - unicode-match-property-ecmascript: ^2.0.0 - unicode-match-property-value-ecmascript: ^2.1.0 - checksum: 87c56815e20d213848d38f6b047ba52f0d632f36e791b777f59327e8d350c0743b27cc25feab64c0eadc9fe9959dde6b1261af71108a9371b72c8c26beda05ef - languageName: node - linkType: hard - -"registry-auth-token@npm:^4.0.0": - version: 4.2.2 - resolution: "registry-auth-token@npm:4.2.2" - dependencies: - rc: 1.2.8 - checksum: c5030198546ecfdcbcb0722cbc3e260c4f5f174d8d07bdfedd4620e79bfdf17a2db735aa230d600bd388fce6edd26c0a9ed2eb7e9b4641ec15213a28a806688b - languageName: node - linkType: hard - -"registry-url@npm:^5.0.0": - version: 5.1.0 - resolution: "registry-url@npm:5.1.0" - dependencies: - rc: ^1.2.8 - checksum: bcea86c84a0dbb66467b53187fadebfea79017cddfb4a45cf27530d7275e49082fe9f44301976eb0164c438e395684bcf3dae4819b36ff9d1640d8cc60c73df9 - languageName: node - linkType: hard - -"regjsgen@npm:^0.7.1": - version: 0.7.1 - resolution: "regjsgen@npm:0.7.1" - checksum: 7cac399921c58db8e16454869283ff66871531180218064fa938ac05c11c2976792a00706c3c78bbc625e1d793ca373065ea90564e06189a751a7b4ae33acadc - languageName: node - linkType: hard - -"regjsparser@npm:^0.9.1": - version: 0.9.1 - resolution: "regjsparser@npm:0.9.1" - dependencies: - jsesc: ~0.5.0 - bin: - regjsparser: bin/parser - checksum: 5e1b76afe8f1d03c3beaf9e0d935dd467589c3625f6d65fb8ffa14f224d783a0fed4bf49c2c1b8211043ef92b6117313419edf055a098ed8342e340586741afc - languageName: node - linkType: hard - -"relateurl@npm:^0.2.7": - version: 0.2.7 - resolution: "relateurl@npm:0.2.7" - checksum: 5891e792eae1dfc3da91c6fda76d6c3de0333a60aa5ad848982ebb6dccaa06e86385fb1235a1582c680a3d445d31be01c6bfc0804ebbcab5aaf53fa856fde6b6 - languageName: node - linkType: hard - -"remark-emoji@npm:^2.2.0": - version: 2.2.0 - resolution: "remark-emoji@npm:2.2.0" - dependencies: - emoticon: ^3.2.0 - node-emoji: ^1.10.0 - unist-util-visit: ^2.0.3 - checksum: 638d4be72eb4110a447f389d4b8c454921f188c0acabf1b6579f3ddaa301ee91010173d6eebd975ea622ae3de7ed4531c0315a4ffd4f9653d80c599ef9ec21a8 - languageName: node - linkType: hard - -"remark-footnotes@npm:2.0.0": - version: 2.0.0 - resolution: "remark-footnotes@npm:2.0.0" - checksum: f2f87ffd6fe25892373c7164d6584a7cb03ab0ea4f186af493a73df519e24b72998a556e7f16cb996f18426cdb80556b95ff252769e252cf3ccba0fd2ca20621 - languageName: node - linkType: hard - -"remark-mdx@npm:1.6.22": - version: 1.6.22 - resolution: "remark-mdx@npm:1.6.22" - dependencies: - "@babel/core": 7.12.9 - "@babel/helper-plugin-utils": 7.10.4 - "@babel/plugin-proposal-object-rest-spread": 7.12.1 - "@babel/plugin-syntax-jsx": 7.12.1 - "@mdx-js/util": 1.6.22 - is-alphabetical: 1.0.4 - remark-parse: 8.0.3 - unified: 9.2.0 - checksum: 45e62f8a821c37261f94448d54f295de1c5c393f762ff96cd4d4b730715037fafeb6c89ef94adf6a10a09edfa72104afe1431b93b5ae5e40ce2a7677e133c3d9 - languageName: node - linkType: hard - -"remark-parse@npm:8.0.3": - version: 8.0.3 - resolution: "remark-parse@npm:8.0.3" - dependencies: - ccount: ^1.0.0 - collapse-white-space: ^1.0.2 - is-alphabetical: ^1.0.0 - is-decimal: ^1.0.0 - is-whitespace-character: ^1.0.0 - is-word-character: ^1.0.0 - markdown-escapes: ^1.0.0 - parse-entities: ^2.0.0 - repeat-string: ^1.5.4 - state-toggle: ^1.0.0 - trim: 0.0.1 - trim-trailing-lines: ^1.0.0 - unherit: ^1.0.4 - unist-util-remove-position: ^2.0.0 - vfile-location: ^3.0.0 - xtend: ^4.0.1 - checksum: 2dfea250e7606ddfc9e223b9f41e0b115c5c701be4bd35181beaadd46ee59816bc00aadc6085a420f8df00b991ada73b590ea7fd34ace14557de4a0a41805be5 - languageName: node - linkType: hard - -"remark-squeeze-paragraphs@npm:4.0.0": - version: 4.0.0 - resolution: "remark-squeeze-paragraphs@npm:4.0.0" - dependencies: - mdast-squeeze-paragraphs: ^4.0.0 - checksum: 2071eb74d0ecfefb152c4932690a9fd950c3f9f798a676f1378a16db051da68fb20bf288688cc153ba5019dded35408ff45a31dfe9686eaa7a9f1df9edbb6c81 - languageName: node - linkType: hard - -"renderkid@npm:^3.0.0": - version: 3.0.0 - resolution: "renderkid@npm:3.0.0" - dependencies: - css-select: ^4.1.3 - dom-converter: ^0.2.0 - htmlparser2: ^6.1.0 - lodash: ^4.17.21 - strip-ansi: ^6.0.1 - checksum: 77162b62d6f33ab81f337c39efce0439ff0d1f6d441e29c35183151f83041c7850774fb904da163d6c844264d440d10557714e6daa0b19e4561a5cd4ef305d41 - languageName: node - linkType: hard - -"repeat-string@npm:^1.5.4": - version: 1.6.1 - resolution: "repeat-string@npm:1.6.1" - checksum: 1b809fc6db97decdc68f5b12c4d1a671c8e3f65ec4a40c238bc5200e44e85bcc52a54f78268ab9c29fcf5fe4f1343e805420056d1f30fa9a9ee4c2d93e3cc6c0 - languageName: node - linkType: hard - -"require-from-string@npm:^2.0.2": - version: 2.0.2 - resolution: "require-from-string@npm:2.0.2" - checksum: a03ef6895445f33a4015300c426699bc66b2b044ba7b670aa238610381b56d3f07c686251740d575e22f4c87531ba662d06937508f0f3c0f1ddc04db3130560b - languageName: node - linkType: hard - -"require-like@npm:>= 0.1.1": - version: 0.1.2 - resolution: "require-like@npm:0.1.2" - checksum: edb8331f05fd807381a75b76f6cca9f0ce8acaa2e910b7e116541799aa970bfbc64fde5fd6adb3a6917dba346f8386ebbddb81614c24e8dad1b4290c7af9535e - languageName: node - linkType: hard - -"requires-port@npm:^1.0.0": - version: 1.0.0 - resolution: "requires-port@npm:1.0.0" - checksum: eee0e303adffb69be55d1a214e415cf42b7441ae858c76dfc5353148644f6fd6e698926fc4643f510d5c126d12a705e7c8ed7e38061113bdf37547ab356797ff - languageName: node - linkType: hard - -"resolve-from@npm:^4.0.0": - version: 4.0.0 - resolution: "resolve-from@npm:4.0.0" - checksum: f4ba0b8494846a5066328ad33ef8ac173801a51739eb4d63408c847da9a2e1c1de1e6cbbf72699211f3d13f8fc1325648b169bd15eb7da35688e30a5fb0e4a7f - languageName: node - linkType: hard - -"resolve-pathname@npm:^3.0.0": - version: 3.0.0 - resolution: "resolve-pathname@npm:3.0.0" - checksum: 6147241ba42c423dbe83cb067a2b4af4f60908c3af57e1ea567729cc71416c089737fe2a73e9e79e7a60f00f66c91e4b45ad0d37cd4be2d43fec44963ef14368 - languageName: node - linkType: hard - -"resolve@npm:^1.1.6, resolve@npm:^1.14.2, resolve@npm:^1.3.2": - version: 1.22.1 - resolution: "resolve@npm:1.22.1" - dependencies: - is-core-module: ^2.9.0 - path-parse: ^1.0.7 - supports-preserve-symlinks-flag: ^1.0.0 - bin: - resolve: bin/resolve - checksum: 07af5fc1e81aa1d866cbc9e9460fbb67318a10fa3c4deadc35c3ad8a898ee9a71a86a65e4755ac3195e0ea0cfbe201eb323ebe655ce90526fd61917313a34e4e - languageName: node - linkType: hard - -"resolve@patch:resolve@^1.1.6#~builtin, resolve@patch:resolve@^1.14.2#~builtin, resolve@patch:resolve@^1.3.2#~builtin": - version: 1.22.1 - resolution: "resolve@patch:resolve@npm%3A1.22.1#~builtin::version=1.22.1&hash=c3c19d" - dependencies: - is-core-module: ^2.9.0 - path-parse: ^1.0.7 - supports-preserve-symlinks-flag: ^1.0.0 - bin: - resolve: bin/resolve - checksum: 5656f4d0bedcf8eb52685c1abdf8fbe73a1603bb1160a24d716e27a57f6cecbe2432ff9c89c2bd57542c3a7b9d14b1882b73bfe2e9d7849c9a4c0b8b39f02b8b - languageName: node - linkType: hard - -"responselike@npm:^1.0.2": - version: 1.0.2 - resolution: "responselike@npm:1.0.2" - dependencies: - lowercase-keys: ^1.0.0 - checksum: 2e9e70f1dcca3da621a80ce71f2f9a9cad12c047145c6ece20df22f0743f051cf7c73505e109814915f23f9e34fb0d358e22827723ee3d56b623533cab8eafcd - languageName: node - linkType: hard - -"restore-cursor@npm:^3.1.0": - version: 3.1.0 - resolution: "restore-cursor@npm:3.1.0" - dependencies: - onetime: ^5.1.0 - signal-exit: ^3.0.2 - checksum: f877dd8741796b909f2a82454ec111afb84eb45890eb49ac947d87991379406b3b83ff9673a46012fca0d7844bb989f45cc5b788254cf1a39b6b5a9659de0630 - languageName: node - linkType: hard - -"retry@npm:^0.12.0": - version: 0.12.0 - resolution: "retry@npm:0.12.0" - checksum: 623bd7d2e5119467ba66202d733ec3c2e2e26568074923bc0585b6b99db14f357e79bdedb63cab56cec47491c4a0da7e6021a7465ca6dc4f481d3898fdd3158c - languageName: node - linkType: hard - -"retry@npm:^0.13.1": - version: 0.13.1 - resolution: "retry@npm:0.13.1" - checksum: 47c4d5be674f7c13eee4cfe927345023972197dbbdfba5d3af7e461d13b44de1bfd663bfc80d2f601f8ef3fc8164c16dd99655a221921954a65d044a2fc1233b - languageName: node - linkType: hard - -"reusify@npm:^1.0.4": - version: 1.0.4 - resolution: "reusify@npm:1.0.4" - checksum: c3076ebcc22a6bc252cb0b9c77561795256c22b757f40c0d8110b1300723f15ec0fc8685e8d4ea6d7666f36c79ccc793b1939c748bf36f18f542744a4e379fcc - languageName: node - linkType: hard - -"rimraf@npm:^3.0.2": - version: 3.0.2 - resolution: "rimraf@npm:3.0.2" - dependencies: - glob: ^7.1.3 - bin: - rimraf: bin.js - checksum: 87f4164e396f0171b0a3386cc1877a817f572148ee13a7e113b238e48e8a9f2f31d009a92ec38a591ff1567d9662c6b67fd8818a2dbbaed74bc26a87a2a4a9a0 - languageName: node - linkType: hard - -"rtl-detect@npm:^1.0.4": - version: 1.0.4 - resolution: "rtl-detect@npm:1.0.4" - checksum: d562535baa0db62f57f0a1d4676297bff72fd6b94e88f0f0900d5c3e810ab512c5c4cadffd3e05fbe8d9c74310c919afa3ea8c1001c244e5555e8eef12d02d6f - languageName: node - linkType: hard - -"rtlcss@npm:^3.5.0": - version: 3.5.0 - resolution: "rtlcss@npm:3.5.0" - dependencies: - find-up: ^5.0.0 - picocolors: ^1.0.0 - postcss: ^8.3.11 - strip-json-comments: ^3.1.1 - bin: - rtlcss: bin/rtlcss.js - checksum: a3763cad2cb58ce1b950de155097c3c294e7aefc8bf328b58d0cc8d5efb88bf800865edc158a78ace6d1f7f99fea6fd66fb4a354d859b172dadd3dab3e0027b3 - languageName: node - linkType: hard - -"run-parallel@npm:^1.1.9": - version: 1.2.0 - resolution: "run-parallel@npm:1.2.0" - dependencies: - queue-microtask: ^1.2.2 - checksum: cb4f97ad25a75ebc11a8ef4e33bb962f8af8516bb2001082ceabd8902e15b98f4b84b4f8a9b222e5d57fc3bd1379c483886ed4619367a7680dad65316993021d - languageName: node - linkType: hard - -"rxjs@npm:^7.5.4": - version: 7.8.0 - resolution: "rxjs@npm:7.8.0" - dependencies: - tslib: ^2.1.0 - checksum: 61b4d4fd323c1043d8d6ceb91f24183b28bcf5def4f01ca111511d5c6b66755bc5578587fe714ef5d67cf4c9f2e26f4490d4e1d8cabf9bd5967687835e9866a2 - languageName: node - linkType: hard - -"safe-buffer@npm:5.1.2, safe-buffer@npm:~5.1.0, safe-buffer@npm:~5.1.1": - version: 5.1.2 - resolution: "safe-buffer@npm:5.1.2" - checksum: f2f1f7943ca44a594893a852894055cf619c1fbcb611237fc39e461ae751187e7baf4dc391a72125e0ac4fb2d8c5c0b3c71529622e6a58f46b960211e704903c - languageName: node - linkType: hard - -"safe-buffer@npm:5.2.1, safe-buffer@npm:>=5.1.0, safe-buffer@npm:^5.1.0, safe-buffer@npm:~5.2.0": - version: 5.2.1 - resolution: "safe-buffer@npm:5.2.1" - checksum: b99c4b41fdd67a6aaf280fcd05e9ffb0813654894223afb78a31f14a19ad220bba8aba1cb14eddce1fcfb037155fe6de4e861784eb434f7d11ed58d1e70dd491 - languageName: node - linkType: hard - -"safer-buffer@npm:>= 2.1.2 < 3, safer-buffer@npm:>= 2.1.2 < 3.0.0": - version: 2.1.2 - resolution: "safer-buffer@npm:2.1.2" - checksum: cab8f25ae6f1434abee8d80023d7e72b598cf1327164ddab31003c51215526801e40b66c5e65d658a0af1e9d6478cadcb4c745f4bd6751f97d8644786c0978b0 - languageName: node - linkType: hard - -"sax@npm:^1.2.4": - version: 1.2.4 - resolution: "sax@npm:1.2.4" - checksum: d3df7d32b897a2c2f28e941f732c71ba90e27c24f62ee918bd4d9a8cfb3553f2f81e5493c7f0be94a11c1911b643a9108f231dd6f60df3fa9586b5d2e3e9e1fe - languageName: node - linkType: hard - -"scheduler@npm:^0.20.2": - version: 0.20.2 - resolution: "scheduler@npm:0.20.2" - dependencies: - loose-envify: ^1.1.0 - object-assign: ^4.1.1 - checksum: c4b35cf967c8f0d3e65753252d0f260271f81a81e427241295c5a7b783abf4ea9e905f22f815ab66676f5313be0a25f47be582254db8f9241b259213e999b8fc - languageName: node - linkType: hard - -"schema-utils@npm:2.7.0": - version: 2.7.0 - resolution: "schema-utils@npm:2.7.0" - dependencies: - "@types/json-schema": ^7.0.4 - ajv: ^6.12.2 - ajv-keywords: ^3.4.1 - checksum: 8889325b0ee1ae6a8f5d6aaa855c71e136ebbb7fd731b01a9d3ec8225dcb245f644c47c50104db4c741983b528cdff8558570021257d4d397ec6aaecd9172a8e - languageName: node - linkType: hard - -"schema-utils@npm:^2.6.5": - version: 2.7.1 - resolution: "schema-utils@npm:2.7.1" - dependencies: - "@types/json-schema": ^7.0.5 - ajv: ^6.12.4 - ajv-keywords: ^3.5.2 - checksum: 32c62fc9e28edd101e1bd83453a4216eb9bd875cc4d3775e4452b541908fa8f61a7bbac8ffde57484f01d7096279d3ba0337078e85a918ecbeb72872fb09fb2b - languageName: node - linkType: hard - -"schema-utils@npm:^3.0.0, schema-utils@npm:^3.1.0, schema-utils@npm:^3.1.1": - version: 3.1.1 - resolution: "schema-utils@npm:3.1.1" - dependencies: - "@types/json-schema": ^7.0.8 - ajv: ^6.12.5 - ajv-keywords: ^3.5.2 - checksum: fb73f3d759d43ba033c877628fe9751620a26879f6301d3dbeeb48cf2a65baec5cdf99da65d1bf3b4ff5444b2e59cbe4f81c2456b5e0d2ba7d7fd4aed5da29ce - languageName: node - linkType: hard - -"schema-utils@npm:^4.0.0": - version: 4.0.0 - resolution: "schema-utils@npm:4.0.0" - dependencies: - "@types/json-schema": ^7.0.9 - ajv: ^8.8.0 - ajv-formats: ^2.1.1 - ajv-keywords: ^5.0.0 - checksum: c843e92fdd1a5c145dbb6ffdae33e501867f9703afac67bdf35a685e49f85b1dcc10ea250033175a64bd9d31f0555bc6785b8359da0c90bcea30cf6dfbb55a8f - languageName: node - linkType: hard - -"section-matter@npm:^1.0.0": - version: 1.0.0 - resolution: "section-matter@npm:1.0.0" - dependencies: - extend-shallow: ^2.0.1 - kind-of: ^6.0.0 - checksum: 3cc4131705493b2955729b075dcf562359bba66183debb0332752dc9cad35616f6da7a23e42b6cab45cd2e4bb5cda113e9e84c8f05aee77adb6b0289a0229101 - languageName: node - linkType: hard - -"select-hose@npm:^2.0.0": - version: 2.0.0 - resolution: "select-hose@npm:2.0.0" - checksum: d7e5fcc695a4804209d232a1b18624a5134be334d4e1114b0721f7a5e72bd73da483dcf41528c1af4f4f4892ad7cfd6a1e55c8ffb83f9c9fe723b738db609dbb - languageName: node - linkType: hard - -"selfsigned@npm:^2.1.1": - version: 2.1.1 - resolution: "selfsigned@npm:2.1.1" - dependencies: - node-forge: ^1 - checksum: aa9ce2150a54838978d5c0aee54d7ebe77649a32e4e690eb91775f71fdff773874a4fbafd0ac73d8ec3b702ff8a395c604df4f8e8868528f36fd6c15076fb43a - languageName: node - linkType: hard - -"semver-diff@npm:^3.1.1": - version: 3.1.1 - resolution: "semver-diff@npm:3.1.1" - dependencies: - semver: ^6.3.0 - checksum: 8bbe5a5d7add2d5e51b72314a9215cd294d71f41cdc2bf6bd59ee76411f3610b576172896f1d191d0d7294cb9f2f847438d2ee158adacc0c224dca79052812fe - languageName: node - linkType: hard - -"semver@npm:^5.4.1": - version: 5.7.1 - resolution: "semver@npm:5.7.1" - bin: - semver: ./bin/semver - checksum: 57fd0acfd0bac382ee87cd52cd0aaa5af086a7dc8d60379dfe65fea491fb2489b6016400813930ecd61fd0952dae75c115287a1b16c234b1550887117744dfaf - languageName: node - linkType: hard - -"semver@npm:^6.0.0, semver@npm:^6.1.1, semver@npm:^6.1.2, semver@npm:^6.2.0, semver@npm:^6.3.0": - version: 6.3.0 - resolution: "semver@npm:6.3.0" - bin: - semver: ./bin/semver.js - checksum: 1b26ecf6db9e8292dd90df4e781d91875c0dcc1b1909e70f5d12959a23c7eebb8f01ea581c00783bbee72ceeaad9505797c381756326073850dc36ed284b21b9 - languageName: node - linkType: hard - -"semver@npm:^7.3.2, semver@npm:^7.3.4, semver@npm:^7.3.5, semver@npm:^7.3.7, semver@npm:^7.3.8": - version: 7.3.8 - resolution: "semver@npm:7.3.8" - dependencies: - lru-cache: ^6.0.0 - bin: - semver: bin/semver.js - checksum: ba9c7cbbf2b7884696523450a61fee1a09930d888b7a8d7579025ad93d459b2d1949ee5bbfeb188b2be5f4ac163544c5e98491ad6152df34154feebc2cc337c1 - languageName: node - linkType: hard - -"send@npm:0.18.0": - version: 0.18.0 - resolution: "send@npm:0.18.0" - dependencies: - debug: 2.6.9 - depd: 2.0.0 - destroy: 1.2.0 - encodeurl: ~1.0.2 - escape-html: ~1.0.3 - etag: ~1.8.1 - fresh: 0.5.2 - http-errors: 2.0.0 - mime: 1.6.0 - ms: 2.1.3 - on-finished: 2.4.1 - range-parser: ~1.2.1 - statuses: 2.0.1 - checksum: 74fc07ebb58566b87b078ec63e5a3e41ecd987e4272ba67b7467e86c6ad51bc6b0b0154133b6d8b08a2ddda360464f71382f7ef864700f34844a76c8027817a8 - languageName: node - linkType: hard - -"serialize-javascript@npm:^6.0.0": - version: 6.0.1 - resolution: "serialize-javascript@npm:6.0.1" - dependencies: - randombytes: ^2.1.0 - checksum: 3c4f4cb61d0893b988415bdb67243637333f3f574e9e9cc9a006a2ced0b390b0b3b44aef8d51c951272a9002ec50885eefdc0298891bc27eb2fe7510ea87dc4f - languageName: node - linkType: hard - -"serve-handler@npm:^6.1.3": - version: 6.1.5 - resolution: "serve-handler@npm:6.1.5" - dependencies: - bytes: 3.0.0 - content-disposition: 0.5.2 - fast-url-parser: 1.1.3 - mime-types: 2.1.18 - minimatch: 3.1.2 - path-is-inside: 1.0.2 - path-to-regexp: 2.2.1 - range-parser: 1.2.0 - checksum: 7a98ca9cbf8692583b6cde4deb3941cff900fa38bf16adbfccccd8430209bab781e21d9a1f61c9c03e226f9f67689893bbce25941368f3ddaf985fc3858b49dc - languageName: node - linkType: hard - -"serve-index@npm:^1.9.1": - version: 1.9.1 - resolution: "serve-index@npm:1.9.1" - dependencies: - accepts: ~1.3.4 - batch: 0.6.1 - debug: 2.6.9 - escape-html: ~1.0.3 - http-errors: ~1.6.2 - mime-types: ~2.1.17 - parseurl: ~1.3.2 - checksum: e2647ce13379485b98a53ba2ea3fbad4d44b57540d00663b02b976e426e6194d62ac465c0d862cb7057f65e0de8ab8a684aa095427a4b8612412eca0d300d22f - languageName: node - linkType: hard - -"serve-static@npm:1.15.0": - version: 1.15.0 - resolution: "serve-static@npm:1.15.0" - dependencies: - encodeurl: ~1.0.2 - escape-html: ~1.0.3 - parseurl: ~1.3.3 - send: 0.18.0 - checksum: af57fc13be40d90a12562e98c0b7855cf6e8bd4c107fe9a45c212bf023058d54a1871b1c89511c3958f70626fff47faeb795f5d83f8cf88514dbaeb2b724464d - languageName: node - linkType: hard - -"set-blocking@npm:^2.0.0": - version: 2.0.0 - resolution: "set-blocking@npm:2.0.0" - checksum: 6e65a05f7cf7ebdf8b7c75b101e18c0b7e3dff4940d480efed8aad3a36a4005140b660fa1d804cb8bce911cac290441dc728084a30504d3516ac2ff7ad607b02 - languageName: node - linkType: hard - -"setimmediate@npm:^1.0.5": - version: 1.0.5 - resolution: "setimmediate@npm:1.0.5" - checksum: c9a6f2c5b51a2dabdc0247db9c46460152ffc62ee139f3157440bd48e7c59425093f42719ac1d7931f054f153e2d26cf37dfeb8da17a794a58198a2705e527fd - languageName: node - linkType: hard - -"setprototypeof@npm:1.1.0": - version: 1.1.0 - resolution: "setprototypeof@npm:1.1.0" - checksum: 27cb44304d6c9e1a23bc6c706af4acaae1a7aa1054d4ec13c05f01a99fd4887109a83a8042b67ad90dbfcd100d43efc171ee036eb080667172079213242ca36e - languageName: node - linkType: hard - -"setprototypeof@npm:1.2.0": - version: 1.2.0 - resolution: "setprototypeof@npm:1.2.0" - checksum: be18cbbf70e7d8097c97f713a2e76edf84e87299b40d085c6bf8b65314e994cc15e2e317727342fa6996e38e1f52c59720b53fe621e2eb593a6847bf0356db89 - languageName: node - linkType: hard - -"shallow-clone@npm:^3.0.0": - version: 3.0.1 - resolution: "shallow-clone@npm:3.0.1" - dependencies: - kind-of: ^6.0.2 - checksum: 39b3dd9630a774aba288a680e7d2901f5c0eae7b8387fc5c8ea559918b29b3da144b7bdb990d7ccd9e11be05508ac9e459ce51d01fd65e583282f6ffafcba2e7 - languageName: node - linkType: hard - -"shallowequal@npm:^1.1.0": - version: 1.1.0 - resolution: "shallowequal@npm:1.1.0" - checksum: f4c1de0837f106d2dbbfd5d0720a5d059d1c66b42b580965c8f06bb1db684be8783538b684092648c981294bf817869f743a066538771dbecb293df78f765e00 - languageName: node - linkType: hard - -"shebang-command@npm:^2.0.0": - version: 2.0.0 - resolution: "shebang-command@npm:2.0.0" - dependencies: - shebang-regex: ^3.0.0 - checksum: 6b52fe87271c12968f6a054e60f6bde5f0f3d2db483a1e5c3e12d657c488a15474121a1d55cd958f6df026a54374ec38a4a963988c213b7570e1d51575cea7fa - languageName: node - linkType: hard - -"shebang-regex@npm:^3.0.0": - version: 3.0.0 - resolution: "shebang-regex@npm:3.0.0" - checksum: 1a2bcae50de99034fcd92ad4212d8e01eedf52c7ec7830eedcf886622804fe36884278f2be8be0ea5fde3fd1c23911643a4e0f726c8685b61871c8908af01222 - languageName: node - linkType: hard - -"shell-quote@npm:^1.7.3": - version: 1.7.4 - resolution: "shell-quote@npm:1.7.4" - checksum: 2874ea9c1a7c3ebfc9ec5734a897e16533d0d06f2e4cddc22ba3d1cab5cdc07d0f825364c1b1e39abe61236f44d8e60e933c7ad7349ce44de4f5dddc7b4354e9 - languageName: node - linkType: hard - -"shelljs@npm:^0.8.5": - version: 0.8.5 - resolution: "shelljs@npm:0.8.5" - dependencies: - glob: ^7.0.0 - interpret: ^1.0.0 - rechoir: ^0.6.2 - bin: - shjs: bin/shjs - checksum: 7babc46f732a98f4c054ec1f048b55b9149b98aa2da32f6cf9844c434b43c6251efebd6eec120937bd0999e13811ebd45efe17410edb3ca938f82f9381302748 - languageName: node - linkType: hard - -"side-channel@npm:^1.0.4": - version: 1.0.4 - resolution: "side-channel@npm:1.0.4" - dependencies: - call-bind: ^1.0.0 - get-intrinsic: ^1.0.2 - object-inspect: ^1.9.0 - checksum: 351e41b947079c10bd0858364f32bb3a7379514c399edb64ab3dce683933483fc63fb5e4efe0a15a2e8a7e3c436b6a91736ddb8d8c6591b0460a24bb4a1ee245 - languageName: node - linkType: hard - -"signal-exit@npm:^3.0.2, signal-exit@npm:^3.0.3, signal-exit@npm:^3.0.7": - version: 3.0.7 - resolution: "signal-exit@npm:3.0.7" - checksum: a2f098f247adc367dffc27845853e9959b9e88b01cb301658cfe4194352d8d2bb32e18467c786a7fe15f1d44b233ea35633d076d5e737870b7139949d1ab6318 - languageName: node - linkType: hard - -"sirv@npm:^1.0.7": - version: 1.0.19 - resolution: "sirv@npm:1.0.19" - dependencies: - "@polka/url": ^1.0.0-next.20 - mrmime: ^1.0.0 - totalist: ^1.0.0 - checksum: c943cfc61baf85f05f125451796212ec35d4377af4da90ae8ec1fa23e6d7b0b4d9c74a8fbf65af83c94e669e88a09dc6451ba99154235eead4393c10dda5b07c - languageName: node - linkType: hard - -"sisteransi@npm:^1.0.5": - version: 1.0.5 - resolution: "sisteransi@npm:1.0.5" - checksum: aba6438f46d2bfcef94cf112c835ab395172c75f67453fe05c340c770d3c402363018ae1ab4172a1026a90c47eaccf3af7b6ff6fa749a680c2929bd7fa2b37a4 - languageName: node - linkType: hard - -"sitemap@npm:^7.1.1": - version: 7.1.1 - resolution: "sitemap@npm:7.1.1" - dependencies: - "@types/node": ^17.0.5 - "@types/sax": ^1.2.1 - arg: ^5.0.0 - sax: ^1.2.4 - bin: - sitemap: dist/cli.js - checksum: 87a6d21b0d4a33b8c611d3bb8543d02b813c0ebfce014213ef31849b5c1439005644f19ad1593ec89815f6101355f468c9a02c251d09aa03f6fddd17e23c4be4 - languageName: node - linkType: hard - -"slash@npm:^3.0.0": - version: 3.0.0 - resolution: "slash@npm:3.0.0" - checksum: 94a93fff615f25a999ad4b83c9d5e257a7280c90a32a7cb8b4a87996e4babf322e469c42b7f649fd5796edd8687652f3fb452a86dc97a816f01113183393f11c - languageName: node - linkType: hard - -"slash@npm:^4.0.0": - version: 4.0.0 - resolution: "slash@npm:4.0.0" - checksum: da8e4af73712253acd21b7853b7e0dbba776b786e82b010a5bfc8b5051a1db38ed8aba8e1e8f400dd2c9f373be91eb1c42b66e91abb407ff42b10feece5e1d2d - languageName: node - linkType: hard - -"smart-buffer@npm:^4.2.0": - version: 4.2.0 - resolution: "smart-buffer@npm:4.2.0" - checksum: b5167a7142c1da704c0e3af85c402002b597081dd9575031a90b4f229ca5678e9a36e8a374f1814c8156a725d17008ae3bde63b92f9cfd132526379e580bec8b - languageName: node - linkType: hard - -"sockjs@npm:^0.3.24": - version: 0.3.24 - resolution: "sockjs@npm:0.3.24" - dependencies: - faye-websocket: ^0.11.3 - uuid: ^8.3.2 - websocket-driver: ^0.7.4 - checksum: 355309b48d2c4e9755349daa29cea1c0d9ee23e49b983841c6bf7a20276b00d3c02343f9f33f26d2ee8b261a5a02961b52a25c8da88b2538c5b68d3071b4934c - languageName: node - linkType: hard - -"socks-proxy-agent@npm:^7.0.0": - version: 7.0.0 - resolution: "socks-proxy-agent@npm:7.0.0" - dependencies: - agent-base: ^6.0.2 - debug: ^4.3.3 - socks: ^2.6.2 - checksum: 720554370154cbc979e2e9ce6a6ec6ced205d02757d8f5d93fe95adae454fc187a5cbfc6b022afab850a5ce9b4c7d73e0f98e381879cf45f66317a4895953846 - languageName: node - linkType: hard - -"socks@npm:^2.6.2": - version: 2.7.1 - resolution: "socks@npm:2.7.1" - dependencies: - ip: ^2.0.0 - smart-buffer: ^4.2.0 - checksum: 259d9e3e8e1c9809a7f5c32238c3d4d2a36b39b83851d0f573bfde5f21c4b1288417ce1af06af1452569cd1eb0841169afd4998f0e04ba04656f6b7f0e46d748 - languageName: node - linkType: hard - -"sort-css-media-queries@npm:2.1.0": - version: 2.1.0 - resolution: "sort-css-media-queries@npm:2.1.0" - checksum: 25cb8f08b148a2ed83d0bc1cf20ddb888d3dee2a3c986896099a21b28b999d5cca3e46a9ef64381bb36fca0fc820471713f2e8af2729ecc6e108ab2b3b315ea9 - languageName: node - linkType: hard - -"source-map-js@npm:^1.0.2": - version: 1.0.2 - resolution: "source-map-js@npm:1.0.2" - checksum: c049a7fc4deb9a7e9b481ae3d424cc793cb4845daa690bc5a05d428bf41bf231ced49b4cf0c9e77f9d42fdb3d20d6187619fc586605f5eabe995a316da8d377c - languageName: node - linkType: hard - -"source-map-support@npm:~0.5.20": - version: 0.5.21 - resolution: "source-map-support@npm:0.5.21" - dependencies: - buffer-from: ^1.0.0 - source-map: ^0.6.0 - checksum: 43e98d700d79af1d36f859bdb7318e601dfc918c7ba2e98456118ebc4c4872b327773e5a1df09b0524e9e5063bb18f0934538eace60cca2710d1fa687645d137 - languageName: node - linkType: hard - -"source-map@npm:^0.5.0": - version: 0.5.7 - resolution: "source-map@npm:0.5.7" - checksum: 5dc2043b93d2f194142c7f38f74a24670cd7a0063acdaf4bf01d2964b402257ae843c2a8fa822ad5b71013b5fcafa55af7421383da919752f22ff488bc553f4d - languageName: node - linkType: hard - -"source-map@npm:^0.6.0, source-map@npm:^0.6.1, source-map@npm:~0.6.0": - version: 0.6.1 - resolution: "source-map@npm:0.6.1" - checksum: 59ce8640cf3f3124f64ac289012c2b8bd377c238e316fb323ea22fbfe83da07d81e000071d7242cad7a23cd91c7de98e4df8830ec3f133cb6133a5f6e9f67bc2 - languageName: node - linkType: hard - -"space-separated-tokens@npm:^1.0.0": - version: 1.1.5 - resolution: "space-separated-tokens@npm:1.1.5" - checksum: 8ef68f1cfa8ccad316b7f8d0df0919d0f1f6d32101e8faeee34ea3a923ce8509c1ad562f57388585ee4951e92d27afa211ed0a077d3d5995b5ba9180331be708 - languageName: node - linkType: hard - -"spdy-transport@npm:^3.0.0": - version: 3.0.0 - resolution: "spdy-transport@npm:3.0.0" - dependencies: - debug: ^4.1.0 - detect-node: ^2.0.4 - hpack.js: ^2.1.6 - obuf: ^1.1.2 - readable-stream: ^3.0.6 - wbuf: ^1.7.3 - checksum: 0fcaad3b836fb1ec0bdd39fa7008b9a7a84a553f12be6b736a2512613b323207ffc924b9551cef0378f7233c85916cff1118652e03a730bdb97c0e042243d56c - languageName: node - linkType: hard - -"spdy@npm:^4.0.2": - version: 4.0.2 - resolution: "spdy@npm:4.0.2" - dependencies: - debug: ^4.1.0 - handle-thing: ^2.0.0 - http-deceiver: ^1.2.7 - select-hose: ^2.0.0 - spdy-transport: ^3.0.0 - checksum: 2c739d0ff6f56ad36d2d754d0261d5ec358457bea7cbf77b1b05b0c6464f2ce65b85f196305f50b7bd9120723eb94bae9933466f28e67e5cd8cde4e27f1d75f8 - languageName: node - linkType: hard - -"sprintf-js@npm:~1.0.2": - version: 1.0.3 - resolution: "sprintf-js@npm:1.0.3" - checksum: 19d79aec211f09b99ec3099b5b2ae2f6e9cdefe50bc91ac4c69144b6d3928a640bb6ae5b3def70c2e85a2c3d9f5ec2719921e3a59d3ca3ef4b2fd1a4656a0df3 - languageName: node - linkType: hard - -"ssri@npm:^9.0.0": - version: 9.0.1 - resolution: "ssri@npm:9.0.1" - dependencies: - minipass: ^3.1.1 - checksum: fb58f5e46b6923ae67b87ad5ef1c5ab6d427a17db0bead84570c2df3cd50b4ceb880ebdba2d60726588272890bae842a744e1ecce5bd2a2a582fccd5068309eb - languageName: node - linkType: hard - -"stable@npm:^0.1.8": - version: 0.1.8 - resolution: "stable@npm:0.1.8" - checksum: 2ff482bb100285d16dd75cd8f7c60ab652570e8952c0bfa91828a2b5f646a0ff533f14596ea4eabd48bb7f4aeea408dce8f8515812b975d958a4cc4fa6b9dfeb - languageName: node - linkType: hard - -"state-toggle@npm:^1.0.0": - version: 1.0.3 - resolution: "state-toggle@npm:1.0.3" - checksum: 17398af928413e8d8b866cf0c81fd1b1348bb7d65d8983126ff6ff2317a80d6ee023484fba0c54d8169f5aa544f125434a650ae3a71eddc935cae307d4692b4f - languageName: node - linkType: hard - -"statuses@npm:2.0.1": - version: 2.0.1 - resolution: "statuses@npm:2.0.1" - checksum: 18c7623fdb8f646fb213ca4051be4df7efb3484d4ab662937ca6fbef7ced9b9e12842709872eb3020cc3504b93bde88935c9f6417489627a7786f24f8031cbcb - languageName: node - linkType: hard - -"statuses@npm:>= 1.4.0 < 2": - version: 1.5.0 - resolution: "statuses@npm:1.5.0" - checksum: c469b9519de16a4bb19600205cffb39ee471a5f17b82589757ca7bd40a8d92ebb6ed9f98b5a540c5d302ccbc78f15dc03cc0280dd6e00df1335568a5d5758a5c - languageName: node - linkType: hard - -"std-env@npm:^3.0.1": - version: 3.3.1 - resolution: "std-env@npm:3.3.1" - checksum: c4f59ecd2cb52041ce1785776d28a1aa56d346b6c4efcb8473e7e801eed1ac7612332dcee242d0b35948f35f745cceb6e226b5e825b59e588b262dca6be2b8aa - languageName: node - linkType: hard - -"string-width@npm:^1.0.2 || 2 || 3 || 4, string-width@npm:^4.0.0, string-width@npm:^4.1.0, string-width@npm:^4.2.0, string-width@npm:^4.2.2, string-width@npm:^4.2.3": - version: 4.2.3 - resolution: "string-width@npm:4.2.3" - dependencies: - emoji-regex: ^8.0.0 - is-fullwidth-code-point: ^3.0.0 - strip-ansi: ^6.0.1 - checksum: e52c10dc3fbfcd6c3a15f159f54a90024241d0f149cf8aed2982a2d801d2e64df0bf1dc351cf8e95c3319323f9f220c16e740b06faecd53e2462df1d2b5443fb - languageName: node - linkType: hard - -"string-width@npm:^5.0.1": - version: 5.1.2 - resolution: "string-width@npm:5.1.2" - dependencies: - eastasianwidth: ^0.2.0 - emoji-regex: ^9.2.2 - strip-ansi: ^7.0.1 - checksum: 7369deaa29f21dda9a438686154b62c2c5f661f8dda60449088f9f980196f7908fc39fdd1803e3e01541970287cf5deae336798337e9319a7055af89dafa7193 - languageName: node - linkType: hard - -"string_decoder@npm:^1.1.1": - version: 1.3.0 - resolution: "string_decoder@npm:1.3.0" - dependencies: - safe-buffer: ~5.2.0 - checksum: 8417646695a66e73aefc4420eb3b84cc9ffd89572861fe004e6aeb13c7bc00e2f616247505d2dbbef24247c372f70268f594af7126f43548565c68c117bdeb56 - languageName: node - linkType: hard - -"string_decoder@npm:~1.1.1": - version: 1.1.1 - resolution: "string_decoder@npm:1.1.1" - dependencies: - safe-buffer: ~5.1.0 - checksum: 9ab7e56f9d60a28f2be697419917c50cac19f3e8e6c28ef26ed5f4852289fe0de5d6997d29becf59028556f2c62983790c1d9ba1e2a3cc401768ca12d5183a5b - languageName: node - linkType: hard - -"stringify-object@npm:^3.3.0": - version: 3.3.0 - resolution: "stringify-object@npm:3.3.0" - dependencies: - get-own-enumerable-property-symbols: ^3.0.0 - is-obj: ^1.0.1 - is-regexp: ^1.0.0 - checksum: 6827a3f35975cfa8572e8cd3ed4f7b262def260af18655c6fde549334acdac49ddba69f3c861ea5a6e9c5a4990fe4ae870b9c0e6c31019430504c94a83b7a154 - languageName: node - linkType: hard - -"strip-ansi@npm:^6.0.0, strip-ansi@npm:^6.0.1": - version: 6.0.1 - resolution: "strip-ansi@npm:6.0.1" - dependencies: - ansi-regex: ^5.0.1 - checksum: f3cd25890aef3ba6e1a74e20896c21a46f482e93df4a06567cebf2b57edabb15133f1f94e57434e0a958d61186087b1008e89c94875d019910a213181a14fc8c - languageName: node - linkType: hard - -"strip-ansi@npm:^7.0.1": - version: 7.0.1 - resolution: "strip-ansi@npm:7.0.1" - dependencies: - ansi-regex: ^6.0.1 - checksum: 257f78fa433520e7f9897722731d78599cb3fce29ff26a20a5e12ba4957463b50a01136f37c43707f4951817a75e90820174853d6ccc240997adc5df8f966039 - languageName: node - linkType: hard - -"strip-bom-string@npm:^1.0.0": - version: 1.0.0 - resolution: "strip-bom-string@npm:1.0.0" - checksum: 5635a3656d8512a2c194d6c8d5dee7ef0dde6802f7be9413b91e201981ad4132506656d9cf14137f019fd50f0269390d91c7f6a2601b1bee039a4859cfce4934 - languageName: node - linkType: hard - -"strip-final-newline@npm:^2.0.0": - version: 2.0.0 - resolution: "strip-final-newline@npm:2.0.0" - checksum: 69412b5e25731e1938184b5d489c32e340605bb611d6140344abc3421b7f3c6f9984b21dff296dfcf056681b82caa3bb4cc996a965ce37bcfad663e92eae9c64 - languageName: node - linkType: hard - -"strip-json-comments@npm:^3.1.1": - version: 3.1.1 - resolution: "strip-json-comments@npm:3.1.1" - checksum: 492f73e27268f9b1c122733f28ecb0e7e8d8a531a6662efbd08e22cccb3f9475e90a1b82cab06a392f6afae6d2de636f977e231296400d0ec5304ba70f166443 - languageName: node - linkType: hard - -"strip-json-comments@npm:~2.0.1": - version: 2.0.1 - resolution: "strip-json-comments@npm:2.0.1" - checksum: 1074ccb63270d32ca28edfb0a281c96b94dc679077828135141f27d52a5a398ef5e78bcf22809d23cadc2b81dfbe345eb5fd8699b385c8b1128907dec4a7d1e1 - languageName: node - linkType: hard - -"style-to-object@npm:0.3.0, style-to-object@npm:^0.3.0": - version: 0.3.0 - resolution: "style-to-object@npm:0.3.0" - dependencies: - inline-style-parser: 0.1.1 - checksum: 4d7084015207f2a606dfc10c29cb5ba569f2fe8005551df7396110dd694d6ff650f2debafa95bd5d147dfb4ca50f57868e2a7f91bf5d11ef734fe7ccbd7abf59 - languageName: node - linkType: hard - -"stylehacks@npm:^5.1.1": - version: 5.1.1 - resolution: "stylehacks@npm:5.1.1" - dependencies: - browserslist: ^4.21.4 - postcss-selector-parser: ^6.0.4 - peerDependencies: - postcss: ^8.2.15 - checksum: 11175366ef52de65bf06cefba0ddc9db286dc3a1451fd2989e74c6ea47091a02329a4bf6ce10b1a36950056927b6bbbe47c5ab3a1f4c7032df932d010fbde5a2 - languageName: node - linkType: hard - -"supports-color@npm:^5.3.0": - version: 5.5.0 - resolution: "supports-color@npm:5.5.0" - dependencies: - has-flag: ^3.0.0 - checksum: 95f6f4ba5afdf92f495b5a912d4abee8dcba766ae719b975c56c084f5004845f6f5a5f7769f52d53f40e21952a6d87411bafe34af4a01e65f9926002e38e1dac - languageName: node - linkType: hard - -"supports-color@npm:^7.1.0": - version: 7.2.0 - resolution: "supports-color@npm:7.2.0" - dependencies: - has-flag: ^4.0.0 - checksum: 3dda818de06ebbe5b9653e07842d9479f3555ebc77e9a0280caf5a14fb877ffee9ed57007c3b78f5a6324b8dbeec648d9e97a24e2ed9fdb81ddc69ea07100f4a - languageName: node - linkType: hard - -"supports-color@npm:^8.0.0": - version: 8.1.1 - resolution: "supports-color@npm:8.1.1" - dependencies: - has-flag: ^4.0.0 - checksum: c052193a7e43c6cdc741eb7f378df605636e01ad434badf7324f17fb60c69a880d8d8fcdcb562cf94c2350e57b937d7425ab5b8326c67c2adc48f7c87c1db406 - languageName: node - linkType: hard - -"supports-preserve-symlinks-flag@npm:^1.0.0": - version: 1.0.0 - resolution: "supports-preserve-symlinks-flag@npm:1.0.0" - checksum: 53b1e247e68e05db7b3808b99b892bd36fb096e6fba213a06da7fab22045e97597db425c724f2bbd6c99a3c295e1e73f3e4de78592289f38431049e1277ca0ae - languageName: node - linkType: hard - -"svg-parser@npm:^2.0.4": - version: 2.0.4 - resolution: "svg-parser@npm:2.0.4" - checksum: b3de6653048212f2ae7afe4a423e04a76ec6d2d06e1bf7eacc618a7c5f7df7faa5105561c57b94579ec831fbbdbf5f190ba56a9205ff39ed13eabdf8ab086ddf - languageName: node - linkType: hard - -"svgo@npm:^2.7.0, svgo@npm:^2.8.0": - version: 2.8.0 - resolution: "svgo@npm:2.8.0" - dependencies: - "@trysound/sax": 0.2.0 - commander: ^7.2.0 - css-select: ^4.1.3 - css-tree: ^1.1.3 - csso: ^4.2.0 - picocolors: ^1.0.0 - stable: ^0.1.8 - bin: - svgo: bin/svgo - checksum: b92f71a8541468ffd0b81b8cdb36b1e242eea320bf3c1a9b2c8809945853e9d8c80c19744267eb91cabf06ae9d5fff3592d677df85a31be4ed59ff78534fa420 - languageName: node - linkType: hard - -"tapable@npm:^1.0.0": - version: 1.1.3 - resolution: "tapable@npm:1.1.3" - checksum: 53ff4e7c3900051c38cc4faab428ebfd7e6ad0841af5a7ac6d5f3045c5b50e88497bfa8295b4b3fbcadd94993c9e358868b78b9fb249a76cb8b018ac8dccafd7 - languageName: node - linkType: hard - -"tapable@npm:^2.0.0, tapable@npm:^2.1.1, tapable@npm:^2.2.0": - version: 2.2.1 - resolution: "tapable@npm:2.2.1" - checksum: 3b7a1b4d86fa940aad46d9e73d1e8739335efd4c48322cb37d073eb6f80f5281889bf0320c6d8ffcfa1a0dd5bfdbd0f9d037e252ef972aca595330538aac4d51 - languageName: node - linkType: hard - -"tar@npm:^6.1.11, tar@npm:^6.1.2": - version: 6.1.13 - resolution: "tar@npm:6.1.13" - dependencies: - chownr: ^2.0.0 - fs-minipass: ^2.0.0 - minipass: ^4.0.0 - minizlib: ^2.1.1 - mkdirp: ^1.0.3 - yallist: ^4.0.0 - checksum: 8a278bed123aa9f53549b256a36b719e317c8b96fe86a63406f3c62887f78267cea9b22dc6f7007009738509800d4a4dccc444abd71d762287c90f35b002eb1c - languageName: node - linkType: hard - -"terser-webpack-plugin@npm:^5.1.3, terser-webpack-plugin@npm:^5.3.3": - version: 5.3.6 - resolution: "terser-webpack-plugin@npm:5.3.6" - dependencies: - "@jridgewell/trace-mapping": ^0.3.14 - jest-worker: ^27.4.5 - schema-utils: ^3.1.1 - serialize-javascript: ^6.0.0 - terser: ^5.14.1 - peerDependencies: - webpack: ^5.1.0 - peerDependenciesMeta: - "@swc/core": - optional: true - esbuild: - optional: true - uglify-js: - optional: true - checksum: 8f3448d7fdb0434ce6a0c09d95c462bfd2f4a5a430233d854163337f734a7f5c07c74513d16081e06d4ca33d366d5b1a36f5444219bc41a7403afd6162107bad - languageName: node - linkType: hard - -"terser@npm:^5.10.0, terser@npm:^5.14.1": - version: 5.16.1 - resolution: "terser@npm:5.16.1" - dependencies: - "@jridgewell/source-map": ^0.3.2 - acorn: ^8.5.0 - commander: ^2.20.0 - source-map-support: ~0.5.20 - bin: - terser: bin/terser - checksum: cb524123504a2f0d9140c1e1a8628c83bba9cacc404c6aca79e2493a38dfdf21275617ba75b91006b3f1ff586e401ab31121160cd253699f334c6340ea2756f5 - languageName: node - linkType: hard - -"text-table@npm:^0.2.0": - version: 0.2.0 - resolution: "text-table@npm:0.2.0" - checksum: b6937a38c80c7f84d9c11dd75e49d5c44f71d95e810a3250bd1f1797fc7117c57698204adf676b71497acc205d769d65c16ae8fa10afad832ae1322630aef10a - languageName: node - linkType: hard - -"thunky@npm:^1.0.2": - version: 1.1.0 - resolution: "thunky@npm:1.1.0" - checksum: 993096c472b6b8f30e29dc777a8d17720e4cab448375041f20c0cb802a09a7fb2217f2a3e8cdc11851faa71c957e2db309357367fc9d7af3cb7a4d00f4b66034 - languageName: node - linkType: hard - -"tiny-invariant@npm:^1.0.2": - version: 1.3.1 - resolution: "tiny-invariant@npm:1.3.1" - checksum: 872dbd1ff20a21303a2fd20ce3a15602cfa7fcf9b228bd694a52e2938224313b5385a1078cb667ed7375d1612194feaca81c4ecbe93121ca1baebe344de4f84c - languageName: node - linkType: hard - -"tiny-warning@npm:^1.0.0": - version: 1.0.3 - resolution: "tiny-warning@npm:1.0.3" - checksum: da62c4acac565902f0624b123eed6dd3509bc9a8d30c06e017104bedcf5d35810da8ff72864400ad19c5c7806fc0a8323c68baf3e326af7cb7d969f846100d71 - languageName: node - linkType: hard - -"to-fast-properties@npm:^2.0.0": - version: 2.0.0 - resolution: "to-fast-properties@npm:2.0.0" - checksum: be2de62fe58ead94e3e592680052683b1ec986c72d589e7b21e5697f8744cdbf48c266fa72f6c15932894c10187b5f54573a3bcf7da0bfd964d5caf23d436168 - languageName: node - linkType: hard - -"to-readable-stream@npm:^1.0.0": - version: 1.0.0 - resolution: "to-readable-stream@npm:1.0.0" - checksum: 2bd7778490b6214a2c40276065dd88949f4cf7037ce3964c76838b8cb212893aeb9cceaaf4352a4c486e3336214c350270f3263e1ce7a0c38863a715a4d9aeb5 - languageName: node - linkType: hard - -"to-regex-range@npm:^5.0.1": - version: 5.0.1 - resolution: "to-regex-range@npm:5.0.1" - dependencies: - is-number: ^7.0.0 - checksum: f76fa01b3d5be85db6a2a143e24df9f60dd047d151062d0ba3df62953f2f697b16fe5dad9b0ac6191c7efc7b1d9dcaa4b768174b7b29da89d4428e64bc0a20ed - languageName: node - linkType: hard - -"toidentifier@npm:1.0.1": - version: 1.0.1 - resolution: "toidentifier@npm:1.0.1" - checksum: 952c29e2a85d7123239b5cfdd889a0dde47ab0497f0913d70588f19c53f7e0b5327c95f4651e413c74b785147f9637b17410ac8c846d5d4a20a5a33eb6dc3a45 - languageName: node - linkType: hard - -"totalist@npm:^1.0.0": - version: 1.1.0 - resolution: "totalist@npm:1.1.0" - checksum: dfab80c7104a1d170adc8c18782d6c04b7df08352dec452191208c66395f7ef2af7537ddfa2cf1decbdcfab1a47afbbf0dec6543ea191da98c1c6e1599f86adc - languageName: node - linkType: hard - -"tr46@npm:~0.0.3": - version: 0.0.3 - resolution: "tr46@npm:0.0.3" - checksum: 726321c5eaf41b5002e17ffbd1fb7245999a073e8979085dacd47c4b4e8068ff5777142fc6726d6ca1fd2ff16921b48788b87225cbc57c72636f6efa8efbffe3 - languageName: node - linkType: hard - -"trim-trailing-lines@npm:^1.0.0": - version: 1.1.4 - resolution: "trim-trailing-lines@npm:1.1.4" - checksum: 5d39d21c0d4b258667012fcd784f73129e148ea1c213b1851d8904f80499fc91df6710c94c7dd49a486a32da2b9cb86020dda79f285a9a2586cfa622f80490c2 - languageName: node - linkType: hard - -"trim@npm:0.0.1": - version: 0.0.1 - resolution: "trim@npm:0.0.1" - checksum: 2b4646dff99a222e8e1526edd4e3a43bbd925af0b8e837c340455d250157e7deefaa4da49bb891ab841e5c27b1afc5e9e32d4b57afb875d2dfcabf4e319b8f7f - languageName: node - linkType: hard - -"trough@npm:^1.0.0": - version: 1.0.5 - resolution: "trough@npm:1.0.5" - checksum: d6c8564903ed00e5258bab92134b020724dbbe83148dc72e4bf6306c03ed8843efa1bcc773fa62410dd89161ecb067432dd5916501793508a9506cacbc408e25 - languageName: node - linkType: hard - -"tslib@npm:^2.0.3, tslib@npm:^2.1.0, tslib@npm:^2.4.0": - version: 2.4.1 - resolution: "tslib@npm:2.4.1" - checksum: 19480d6e0313292bd6505d4efe096a6b31c70e21cf08b5febf4da62e95c265c8f571f7b36fcc3d1a17e068032f59c269fab3459d6cd3ed6949eafecf64315fca - languageName: node - linkType: hard - -"type-fest@npm:^0.20.2": - version: 0.20.2 - resolution: "type-fest@npm:0.20.2" - checksum: 4fb3272df21ad1c552486f8a2f8e115c09a521ad7a8db3d56d53718d0c907b62c6e9141ba5f584af3f6830d0872c521357e512381f24f7c44acae583ad517d73 - languageName: node - linkType: hard - -"type-fest@npm:^2.5.0": - version: 2.19.0 - resolution: "type-fest@npm:2.19.0" - checksum: a4ef07ece297c9fba78fc1bd6d85dff4472fe043ede98bd4710d2615d15776902b595abf62bd78339ed6278f021235fb28a96361f8be86ed754f778973a0d278 - languageName: node - linkType: hard - -"type-is@npm:~1.6.18": - version: 1.6.18 - resolution: "type-is@npm:1.6.18" - dependencies: - media-typer: 0.3.0 - mime-types: ~2.1.24 - checksum: 2c8e47675d55f8b4e404bcf529abdf5036c537a04c2b20177bcf78c9e3c1da69da3942b1346e6edb09e823228c0ee656ef0e033765ec39a70d496ef601a0c657 - languageName: node - linkType: hard - -"typedarray-to-buffer@npm:^3.1.5": - version: 3.1.5 - resolution: "typedarray-to-buffer@npm:3.1.5" - dependencies: - is-typedarray: ^1.0.0 - checksum: 99c11aaa8f45189fcfba6b8a4825fd684a321caa9bd7a76a27cf0c7732c174d198b99f449c52c3818107430b5f41c0ccbbfb75cb2ee3ca4a9451710986d61a60 - languageName: node - linkType: hard - -"typescript@npm:^4.7.4": - version: 4.9.4 - resolution: "typescript@npm:4.9.4" - bin: - tsc: bin/tsc - tsserver: bin/tsserver - checksum: e782fb9e0031cb258a80000f6c13530288c6d63f1177ed43f770533fdc15740d271554cdae86701c1dd2c83b082cea808b07e97fd68b38a172a83dbf9e0d0ef9 - languageName: node - linkType: hard - -"typescript@patch:typescript@^4.7.4#~builtin": - version: 4.9.4 - resolution: "typescript@patch:typescript@npm%3A4.9.4#~builtin::version=4.9.4&hash=ad5954" - bin: - tsc: bin/tsc - tsserver: bin/tsserver - checksum: 1caaea6cb7f813e64345190fddc4e6c924d0b698ab81189b503763c4a18f7f5501c69362979d36e19c042d89d936443e768a78b0675690b35eb663d19e0eae71 - languageName: node - linkType: hard - -"typesync@npm:^0.9.2": - version: 0.9.2 - resolution: "typesync@npm:0.9.2" - dependencies: - awilix: ^7.0.3 - axios: ^0.27.2 - chalk: ^4.1.0 - cosmiconfig: ^7.0.1 - detect-indent: ^6.0.0 - glob: ^7.2.0 - ora: ^5.1.0 - semver: ^7.3.7 - bin: - typesync: bin/typesync - checksum: 8905b7deec2e23306fa54fbb8e12afce7fbb1cd311001176cbe5b7833758a9f172d3e2a5301decf10622272ee0e2d55f40f43506c37be2b59fb837b1fc9e6f67 - languageName: node - linkType: hard - -"ua-parser-js@npm:^0.7.30": - version: 0.7.32 - resolution: "ua-parser-js@npm:0.7.32" - checksum: 6b6b035dd78a0ab3369f166ab6f26225d823d83630788806d634f16259297a8f4ae6fe0be4e48f4353ac10dffded3971d7745c55d1432fdfc78a893ba58ef044 - languageName: node - linkType: hard - -"unherit@npm:^1.0.4": - version: 1.1.3 - resolution: "unherit@npm:1.1.3" - dependencies: - inherits: ^2.0.0 - xtend: ^4.0.0 - checksum: fd7922f84fc0bfb7c4df6d1f5a50b5b94a0218e3cda98a54dbbd209226ddd4072d742d3df44d0e295ab08d5ccfd304a1e193dfe31a86d2a91b7cb9fdac093194 - languageName: node - linkType: hard - -"unicode-canonical-property-names-ecmascript@npm:^2.0.0": - version: 2.0.0 - resolution: "unicode-canonical-property-names-ecmascript@npm:2.0.0" - checksum: 39be078afd014c14dcd957a7a46a60061bc37c4508ba146517f85f60361acf4c7539552645ece25de840e17e293baa5556268d091ca6762747fdd0c705001a45 - languageName: node - linkType: hard - -"unicode-match-property-ecmascript@npm:^2.0.0": - version: 2.0.0 - resolution: "unicode-match-property-ecmascript@npm:2.0.0" - dependencies: - unicode-canonical-property-names-ecmascript: ^2.0.0 - unicode-property-aliases-ecmascript: ^2.0.0 - checksum: 1f34a7434a23df4885b5890ac36c5b2161a809887000be560f56ad4b11126d433c0c1c39baf1016bdabed4ec54829a6190ee37aa24919aa116dc1a5a8a62965a - languageName: node - linkType: hard - -"unicode-match-property-value-ecmascript@npm:^2.1.0": - version: 2.1.0 - resolution: "unicode-match-property-value-ecmascript@npm:2.1.0" - checksum: 8d6f5f586b9ce1ed0e84a37df6b42fdba1317a05b5df0c249962bd5da89528771e2d149837cad11aa26bcb84c35355cb9f58a10c3d41fa3b899181ece6c85220 - languageName: node - linkType: hard - -"unicode-property-aliases-ecmascript@npm:^2.0.0": - version: 2.1.0 - resolution: "unicode-property-aliases-ecmascript@npm:2.1.0" - checksum: 243524431893649b62cc674d877bd64ef292d6071dd2fd01ab4d5ad26efbc104ffcd064f93f8a06b7e4ec54c172bf03f6417921a0d8c3a9994161fe1f88f815b - languageName: node - linkType: hard - -"unified@npm:9.2.0": - version: 9.2.0 - resolution: "unified@npm:9.2.0" - dependencies: - bail: ^1.0.0 - extend: ^3.0.0 - is-buffer: ^2.0.0 - is-plain-obj: ^2.0.0 - trough: ^1.0.0 - vfile: ^4.0.0 - checksum: 0cac4ae119893fbd49d309b4db48595e4d4e9f0a2dc1dde4d0074059f9a46012a2905f37c1346715e583f30c970bc8078db8462675411d39ff5036ae18b4fb8a - languageName: node - linkType: hard - -"unified@npm:^9.2.2": - version: 9.2.2 - resolution: "unified@npm:9.2.2" - dependencies: - bail: ^1.0.0 - extend: ^3.0.0 - is-buffer: ^2.0.0 - is-plain-obj: ^2.0.0 - trough: ^1.0.0 - vfile: ^4.0.0 - checksum: 7c24461be7de4145939739ce50d18227c5fbdf9b3bc5a29dabb1ce26dd3e8bd4a1c385865f6f825f3b49230953ee8b591f23beab3bb3643e3e9dc37aa8a089d5 - languageName: node - linkType: hard - -"unique-filename@npm:^2.0.0": - version: 2.0.1 - resolution: "unique-filename@npm:2.0.1" - dependencies: - unique-slug: ^3.0.0 - checksum: 807acf3381aff319086b64dc7125a9a37c09c44af7620bd4f7f3247fcd5565660ac12d8b80534dcbfd067e6fe88a67e621386dd796a8af828d1337a8420a255f - languageName: node - linkType: hard - -"unique-slug@npm:^3.0.0": - version: 3.0.0 - resolution: "unique-slug@npm:3.0.0" - dependencies: - imurmurhash: ^0.1.4 - checksum: 49f8d915ba7f0101801b922062ee46b7953256c93ceca74303bd8e6413ae10aa7e8216556b54dc5382895e8221d04f1efaf75f945c2e4a515b4139f77aa6640c - languageName: node - linkType: hard - -"unique-string@npm:^2.0.0": - version: 2.0.0 - resolution: "unique-string@npm:2.0.0" - dependencies: - crypto-random-string: ^2.0.0 - checksum: ef68f639136bcfe040cf7e3cd7a8dff076a665288122855148a6f7134092e6ed33bf83a7f3a9185e46c98dddc445a0da6ac25612afa1a7c38b8b654d6c02498e - languageName: node - linkType: hard - -"unist-builder@npm:2.0.3, unist-builder@npm:^2.0.0": - version: 2.0.3 - resolution: "unist-builder@npm:2.0.3" - checksum: e946fdf77dbfc320feaece137ce4959ae2da6614abd1623bd39512dc741a9d5f313eb2ba79f8887d941365dccddec7fef4e953827475e392bf49b45336f597f6 - languageName: node - linkType: hard - -"unist-util-generated@npm:^1.0.0": - version: 1.1.6 - resolution: "unist-util-generated@npm:1.1.6" - checksum: 86239ff88a08800d52198f2f0e15911f05bab2dad17cef95550f7c2728f15ebb0344694fcc3101d05762d88adaf86cb85aa7a3300fedabd0b6d7d00b41cdcb7f - languageName: node - linkType: hard - -"unist-util-is@npm:^4.0.0": - version: 4.1.0 - resolution: "unist-util-is@npm:4.1.0" - checksum: 726484cd2adc9be75a939aeedd48720f88294899c2e4a3143da413ae593f2b28037570730d5cf5fd910ff41f3bc1501e3d636b6814c478d71126581ef695f7ea - languageName: node - linkType: hard - -"unist-util-position@npm:^3.0.0": - version: 3.1.0 - resolution: "unist-util-position@npm:3.1.0" - checksum: 10b3952e32a1ffabbecad41c3946237f7059f5bb6436796da05531a285f50b97e4f37cfc2f7164676d041063f40fe1ad92fbb8ca38d3ae8747328ebe738d738f - languageName: node - linkType: hard - -"unist-util-remove-position@npm:^2.0.0": - version: 2.0.1 - resolution: "unist-util-remove-position@npm:2.0.1" - dependencies: - unist-util-visit: ^2.0.0 - checksum: 4149294969f1a78a367b5d03eb0a138aa8320a39e1b15686647a2bec5945af3df27f2936a1e9752ecbb4a82dc23bd86f7e5a0ee048e5eeaedc2deb9237872795 - languageName: node - linkType: hard - -"unist-util-remove@npm:^2.0.0": - version: 2.1.0 - resolution: "unist-util-remove@npm:2.1.0" - dependencies: - unist-util-is: ^4.0.0 - checksum: 99e54f3ea0523f8cf957579a6e84e5b58427bffab929cc7f6aa5119581f929db683dd4691ea5483df0c272f486dda9dbd04f4ab74dca6cae1f3ebe8e4261a4d9 - languageName: node - linkType: hard - -"unist-util-stringify-position@npm:^2.0.0": - version: 2.0.3 - resolution: "unist-util-stringify-position@npm:2.0.3" - dependencies: - "@types/unist": ^2.0.2 - checksum: f755cadc959f9074fe999578a1a242761296705a7fe87f333a37c00044de74ab4b184b3812989a57d4cd12211f0b14ad397b327c3a594c7af84361b1c25a7f09 - languageName: node - linkType: hard - -"unist-util-visit-parents@npm:^3.0.0": - version: 3.1.1 - resolution: "unist-util-visit-parents@npm:3.1.1" - dependencies: - "@types/unist": ^2.0.0 - unist-util-is: ^4.0.0 - checksum: 1170e397dff88fab01e76d5154981666eb0291019d2462cff7a2961a3e76d3533b42eaa16b5b7e2d41ad42a5ea7d112301458283d255993e660511387bf67bc3 - languageName: node - linkType: hard - -"unist-util-visit@npm:2.0.3, unist-util-visit@npm:^2.0.0, unist-util-visit@npm:^2.0.3": - version: 2.0.3 - resolution: "unist-util-visit@npm:2.0.3" - dependencies: - "@types/unist": ^2.0.0 - unist-util-is: ^4.0.0 - unist-util-visit-parents: ^3.0.0 - checksum: 1fe19d500e212128f96d8c3cfa3312846e586b797748a1fd195fe6479f06bc90a6f6904deb08eefc00dd58e83a1c8a32fb8677252d2273ad7a5e624525b69b8f - languageName: node - linkType: hard - -"universalify@npm:^2.0.0": - version: 2.0.0 - resolution: "universalify@npm:2.0.0" - checksum: 2406a4edf4a8830aa6813278bab1f953a8e40f2f63a37873ffa9a3bc8f9745d06cc8e88f3572cb899b7e509013f7f6fcc3e37e8a6d914167a5381d8440518c44 - languageName: node - linkType: hard - -"unpipe@npm:1.0.0, unpipe@npm:~1.0.0": - version: 1.0.0 - resolution: "unpipe@npm:1.0.0" - checksum: 4fa18d8d8d977c55cb09715385c203197105e10a6d220087ec819f50cb68870f02942244f1017565484237f1f8c5d3cd413631b1ae104d3096f24fdfde1b4aa2 - languageName: node - linkType: hard - -"update-browserslist-db@npm:^1.0.9": - version: 1.0.10 - resolution: "update-browserslist-db@npm:1.0.10" - dependencies: - escalade: ^3.1.1 - picocolors: ^1.0.0 - peerDependencies: - browserslist: ">= 4.21.0" - bin: - browserslist-lint: cli.js - checksum: 12db73b4f63029ac407b153732e7cd69a1ea8206c9100b482b7d12859cd3cd0bc59c602d7ae31e652706189f1acb90d42c53ab24a5ba563ed13aebdddc5561a0 - languageName: node - linkType: hard - -"update-notifier@npm:^5.1.0": - version: 5.1.0 - resolution: "update-notifier@npm:5.1.0" - dependencies: - boxen: ^5.0.0 - chalk: ^4.1.0 - configstore: ^5.0.1 - has-yarn: ^2.1.0 - import-lazy: ^2.1.0 - is-ci: ^2.0.0 - is-installed-globally: ^0.4.0 - is-npm: ^5.0.0 - is-yarn-global: ^0.3.0 - latest-version: ^5.1.0 - pupa: ^2.1.1 - semver: ^7.3.4 - semver-diff: ^3.1.1 - xdg-basedir: ^4.0.0 - checksum: 461e5e5b002419296d3868ee2abe0f9ab3e1846d9db642936d0c46f838872ec56069eddfe662c45ce1af0a8d6d5026353728de2e0a95ab2e3546a22ea077caf1 - languageName: node - linkType: hard - -"uri-js@npm:^4.2.2": - version: 4.4.1 - resolution: "uri-js@npm:4.4.1" - dependencies: - punycode: ^2.1.0 - checksum: 7167432de6817fe8e9e0c9684f1d2de2bb688c94388f7569f7dbdb1587c9f4ca2a77962f134ec90be0cc4d004c939ff0d05acc9f34a0db39a3c797dada262633 - languageName: node - linkType: hard - -"url-loader@npm:^4.1.1": - version: 4.1.1 - resolution: "url-loader@npm:4.1.1" - dependencies: - loader-utils: ^2.0.0 - mime-types: ^2.1.27 - schema-utils: ^3.0.0 - peerDependencies: - file-loader: "*" - webpack: ^4.0.0 || ^5.0.0 - peerDependenciesMeta: - file-loader: - optional: true - checksum: c1122a992c6cff70a7e56dfc2b7474534d48eb40b2cc75467cde0c6972e7597faf8e43acb4f45f93c2473645dfd803bcbc20960b57544dd1e4c96e77f72ba6fd - languageName: node - linkType: hard - -"url-parse-lax@npm:^3.0.0": - version: 3.0.0 - resolution: "url-parse-lax@npm:3.0.0" - dependencies: - prepend-http: ^2.0.0 - checksum: 1040e357750451173132228036aff1fd04abbd43eac1fb3e4fca7495a078bcb8d33cb765fe71ad7e473d9c94d98fd67adca63bd2716c815a2da066198dd37217 - languageName: node - linkType: hard - -"use-composed-ref@npm:^1.3.0": - version: 1.3.0 - resolution: "use-composed-ref@npm:1.3.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - checksum: f771cbadfdc91e03b7ab9eb32d0fc0cc647755711801bf507e891ad38c4bbc5f02b2509acadf9c965ec9c5f2f642fd33bdfdfb17b0873c4ad0a9b1f5e5e724bf - languageName: node - linkType: hard - -"use-isomorphic-layout-effect@npm:^1.1.1": - version: 1.1.2 - resolution: "use-isomorphic-layout-effect@npm:1.1.2" - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - "@types/react": - optional: true - checksum: a6532f7fc9ae222c3725ff0308aaf1f1ddbd3c00d685ef9eee6714fd0684de5cb9741b432fbf51e61a784e2955424864f7ea9f99734a02f237b17ad3e18ea5cb - languageName: node - linkType: hard - -"use-latest@npm:^1.2.1": - version: 1.2.1 - resolution: "use-latest@npm:1.2.1" - dependencies: - use-isomorphic-layout-effect: ^1.1.1 - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - "@types/react": - optional: true - checksum: ed3f2ddddf6f21825e2ede4c2e0f0db8dcce5129802b69d1f0575fc1b42380436e8c76a6cd885d4e9aa8e292e60fb8b959c955f33c6a9123b83814a1a1875367 - languageName: node - linkType: hard - -"use-sync-external-store@npm:^1.2.0": - version: 1.2.0 - resolution: "use-sync-external-store@npm:1.2.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - checksum: 5c639e0f8da3521d605f59ce5be9e094ca772bd44a4ce7322b055a6f58eeed8dda3c94cabd90c7a41fb6fa852210092008afe48f7038792fd47501f33299116a - languageName: node - linkType: hard - -"util-deprecate@npm:^1.0.1, util-deprecate@npm:^1.0.2, util-deprecate@npm:~1.0.1": - version: 1.0.2 - resolution: "util-deprecate@npm:1.0.2" - checksum: 474acf1146cb2701fe3b074892217553dfcf9a031280919ba1b8d651a068c9b15d863b7303cb15bd00a862b498e6cf4ad7b4a08fb134edd5a6f7641681cb54a2 - languageName: node - linkType: hard - -"utila@npm:~0.4": - version: 0.4.0 - resolution: "utila@npm:0.4.0" - checksum: 97ffd3bd2bb80c773429d3fb8396469115cd190dded1e733f190d8b602bd0a1bcd6216b7ce3c4395ee3c79e3c879c19d268dbaae3093564cb169ad1212d436f4 - languageName: node - linkType: hard - -"utility-types@npm:^3.10.0": - version: 3.10.0 - resolution: "utility-types@npm:3.10.0" - checksum: 8f274415c6196ab62883b8bd98c9d2f8829b58016e4269aaa1ebd84184ac5dda7dc2ca45800c0d5e0e0650966ba063bf9a412aaeaea6850ca4440a391283d5c8 - languageName: node - linkType: hard - -"utils-merge@npm:1.0.1": - version: 1.0.1 - resolution: "utils-merge@npm:1.0.1" - checksum: c81095493225ecfc28add49c106ca4f09cdf56bc66731aa8dabc2edbbccb1e1bfe2de6a115e5c6a380d3ea166d1636410b62ef216bb07b3feb1cfde1d95d5080 - languageName: node - linkType: hard - -"uuid@npm:^8.3.2": - version: 8.3.2 - resolution: "uuid@npm:8.3.2" - bin: - uuid: dist/bin/uuid - checksum: 5575a8a75c13120e2f10e6ddc801b2c7ed7d8f3c8ac22c7ed0c7b2ba6383ec0abda88c905085d630e251719e0777045ae3236f04c812184b7c765f63a70e58df - languageName: node - linkType: hard - -"value-equal@npm:^1.0.1": - version: 1.0.1 - resolution: "value-equal@npm:1.0.1" - checksum: bb7ae1facc76b5cf8071aeb6c13d284d023fdb370478d10a5d64508e0e6e53bb459c4bbe34258df29d82e6f561f874f0105eba38de0e61fe9edd0bdce07a77a2 - languageName: node - linkType: hard - -"vary@npm:~1.1.2": - version: 1.1.2 - resolution: "vary@npm:1.1.2" - checksum: ae0123222c6df65b437669d63dfa8c36cee20a504101b2fcd97b8bf76f91259c17f9f2b4d70a1e3c6bbcee7f51b28392833adb6b2770b23b01abec84e369660b - languageName: node - linkType: hard - -"vfile-location@npm:^3.0.0, vfile-location@npm:^3.2.0": - version: 3.2.0 - resolution: "vfile-location@npm:3.2.0" - checksum: 9bb3df6d0be31b5dd2d8da0170c27b7045c64493a8ba7b6ff7af8596c524fc8896924b8dd85ae12d201eead2709217a0fbc44927b7264f4bbf0aa8027a78be9c - languageName: node - linkType: hard - -"vfile-message@npm:^2.0.0": - version: 2.0.4 - resolution: "vfile-message@npm:2.0.4" - dependencies: - "@types/unist": ^2.0.0 - unist-util-stringify-position: ^2.0.0 - checksum: 1bade499790f46ca5aba04bdce07a1e37c2636a8872e05cf32c26becc912826710b7eb063d30c5754fdfaeedc8a7658e78df10b3bc535c844890ec8a184f5643 - languageName: node - linkType: hard - -"vfile@npm:^4.0.0": - version: 4.2.1 - resolution: "vfile@npm:4.2.1" - dependencies: - "@types/unist": ^2.0.0 - is-buffer: ^2.0.0 - unist-util-stringify-position: ^2.0.0 - vfile-message: ^2.0.0 - checksum: ee5726e10d170472cde778fc22e0f7499caa096eb85babea5d0ce0941455b721037ee1c9e6ae506ca2803250acd313d0f464328ead0b55cfe7cb6315f1b462d6 - languageName: node - linkType: hard - -"wait-on@npm:^6.0.1": - version: 6.0.1 - resolution: "wait-on@npm:6.0.1" - dependencies: - axios: ^0.25.0 - joi: ^17.6.0 - lodash: ^4.17.21 - minimist: ^1.2.5 - rxjs: ^7.5.4 - bin: - wait-on: bin/wait-on - checksum: e4d62aa4145d99fe34747ccf7506d4b4d6e60dd677c0eb18a51e316d38116ace2d194e4b22a9eb7b767b0282f39878ddcc4ae9440dcb0c005c9150668747cf5b - languageName: node - linkType: hard - -"watchpack@npm:^2.4.0": - version: 2.4.0 - resolution: "watchpack@npm:2.4.0" - dependencies: - glob-to-regexp: ^0.4.1 - graceful-fs: ^4.1.2 - checksum: 23d4bc58634dbe13b86093e01c6a68d8096028b664ab7139d58f0c37d962d549a940e98f2f201cecdabd6f9c340338dc73ef8bf094a2249ef582f35183d1a131 - languageName: node - linkType: hard - -"wbuf@npm:^1.1.0, wbuf@npm:^1.7.3": - version: 1.7.3 - resolution: "wbuf@npm:1.7.3" - dependencies: - minimalistic-assert: ^1.0.0 - checksum: 2abc306c96930b757972a1c4650eb6b25b5d99f24088714957f88629e137db569368c5de0e57986c89ea70db2f1df9bba11a87cb6d0c8694b6f53a0159fab3bf - languageName: node - linkType: hard - -"wcwidth@npm:^1.0.1": - version: 1.0.1 - resolution: "wcwidth@npm:1.0.1" - dependencies: - defaults: ^1.0.3 - checksum: 814e9d1ddcc9798f7377ffa448a5a3892232b9275ebb30a41b529607691c0491de47cba426e917a4d08ded3ee7e9ba2f3fe32e62ee3cd9c7d3bafb7754bd553c - languageName: node - linkType: hard - -"web-namespaces@npm:^1.0.0": - version: 1.1.4 - resolution: "web-namespaces@npm:1.1.4" - checksum: 5149842ccbfbc56fe4f8758957b3f8c8616a281874a5bb84aa1b305e4436a9bad853d21c629a7b8f174902449e1489c7a6c724fccf60965077c5636bd8aed42b - languageName: node - linkType: hard - -"webidl-conversions@npm:^3.0.0": - version: 3.0.1 - resolution: "webidl-conversions@npm:3.0.1" - checksum: c92a0a6ab95314bde9c32e1d0a6dfac83b578f8fa5f21e675bc2706ed6981bc26b7eb7e6a1fab158e5ce4adf9caa4a0aee49a52505d4d13c7be545f15021b17c - languageName: node - linkType: hard - -"webpack-bundle-analyzer@npm:^4.5.0": - version: 4.7.0 - resolution: "webpack-bundle-analyzer@npm:4.7.0" - dependencies: - acorn: ^8.0.4 - acorn-walk: ^8.0.0 - chalk: ^4.1.0 - commander: ^7.2.0 - gzip-size: ^6.0.0 - lodash: ^4.17.20 - opener: ^1.5.2 - sirv: ^1.0.7 - ws: ^7.3.1 - bin: - webpack-bundle-analyzer: lib/bin/analyzer.js - checksum: 4ce3b379c61ce16b2219756843407cc99f2b82cd191f653043f1b705a3e32b3af03834af0dfded98ab852313a892a148bed1a8effaacd6440f028c19f41581f3 - languageName: node - linkType: hard - -"webpack-dev-middleware@npm:^5.3.1": - version: 5.3.3 - resolution: "webpack-dev-middleware@npm:5.3.3" - dependencies: - colorette: ^2.0.10 - memfs: ^3.4.3 - mime-types: ^2.1.31 - range-parser: ^1.2.1 - schema-utils: ^4.0.0 - peerDependencies: - webpack: ^4.0.0 || ^5.0.0 - checksum: dd332cc6da61222c43d25e5a2155e23147b777ff32fdf1f1a0a8777020c072fbcef7756360ce2a13939c3f534c06b4992a4d659318c4a7fe2c0530b52a8a6621 - languageName: node - linkType: hard - -"webpack-dev-server@npm:^4.9.3": - version: 4.11.1 - resolution: "webpack-dev-server@npm:4.11.1" - dependencies: - "@types/bonjour": ^3.5.9 - "@types/connect-history-api-fallback": ^1.3.5 - "@types/express": ^4.17.13 - "@types/serve-index": ^1.9.1 - "@types/serve-static": ^1.13.10 - "@types/sockjs": ^0.3.33 - "@types/ws": ^8.5.1 - ansi-html-community: ^0.0.8 - bonjour-service: ^1.0.11 - chokidar: ^3.5.3 - colorette: ^2.0.10 - compression: ^1.7.4 - connect-history-api-fallback: ^2.0.0 - default-gateway: ^6.0.3 - express: ^4.17.3 - graceful-fs: ^4.2.6 - html-entities: ^2.3.2 - http-proxy-middleware: ^2.0.3 - ipaddr.js: ^2.0.1 - open: ^8.0.9 - p-retry: ^4.5.0 - rimraf: ^3.0.2 - schema-utils: ^4.0.0 - selfsigned: ^2.1.1 - serve-index: ^1.9.1 - sockjs: ^0.3.24 - spdy: ^4.0.2 - webpack-dev-middleware: ^5.3.1 - ws: ^8.4.2 - peerDependencies: - webpack: ^4.37.0 || ^5.0.0 - peerDependenciesMeta: - webpack-cli: - optional: true - bin: - webpack-dev-server: bin/webpack-dev-server.js - checksum: b7601a39ee0f413988259e29a36835b0a68522cfaa161de5b7ec99b3399acdd99d44189add4aaf4a5191258bb130f9cf3e68919324a1955c7557f5fe6ab0d96c - languageName: node - linkType: hard - -"webpack-merge@npm:^5.8.0": - version: 5.8.0 - resolution: "webpack-merge@npm:5.8.0" - dependencies: - clone-deep: ^4.0.1 - wildcard: ^2.0.0 - checksum: 88786ab91013f1bd2a683834ff381be81c245a4b0f63304a5103e90f6653f44dab496a0768287f8531761f8ad957d1f9f3ccb2cb55df0de1bd9ee343e079da26 - languageName: node - linkType: hard - -"webpack-sources@npm:^3.2.2, webpack-sources@npm:^3.2.3": - version: 3.2.3 - resolution: "webpack-sources@npm:3.2.3" - checksum: 989e401b9fe3536529e2a99dac8c1bdc50e3a0a2c8669cbafad31271eadd994bc9405f88a3039cd2e29db5e6d9d0926ceb7a1a4e7409ece021fe79c37d9c4607 - languageName: node - linkType: hard - -"webpack@npm:^5.73.0": - version: 5.75.0 - resolution: "webpack@npm:5.75.0" - dependencies: - "@types/eslint-scope": ^3.7.3 - "@types/estree": ^0.0.51 - "@webassemblyjs/ast": 1.11.1 - "@webassemblyjs/wasm-edit": 1.11.1 - "@webassemblyjs/wasm-parser": 1.11.1 - acorn: ^8.7.1 - acorn-import-assertions: ^1.7.6 - browserslist: ^4.14.5 - chrome-trace-event: ^1.0.2 - enhanced-resolve: ^5.10.0 - es-module-lexer: ^0.9.0 - eslint-scope: 5.1.1 - events: ^3.2.0 - glob-to-regexp: ^0.4.1 - graceful-fs: ^4.2.9 - json-parse-even-better-errors: ^2.3.1 - loader-runner: ^4.2.0 - mime-types: ^2.1.27 - neo-async: ^2.6.2 - schema-utils: ^3.1.0 - tapable: ^2.1.1 - terser-webpack-plugin: ^5.1.3 - watchpack: ^2.4.0 - webpack-sources: ^3.2.3 - peerDependenciesMeta: - webpack-cli: - optional: true - bin: - webpack: bin/webpack.js - checksum: 2bcc5f3c195f375944e8af2f00bf2feea39cb9fda5f763b0d1b00077f1c51783db25c94d3fae96a07dead9fa085e6ae7474417e5ab31719c9776ea5969ceb83a - languageName: node - linkType: hard - -"webpackbar@npm:^5.0.2": - version: 5.0.2 - resolution: "webpackbar@npm:5.0.2" - dependencies: - chalk: ^4.1.0 - consola: ^2.15.3 - pretty-time: ^1.1.0 - std-env: ^3.0.1 - peerDependencies: - webpack: 3 || 4 || 5 - checksum: 214a734b1d4d391eb8271ed1b11085f0efe6831e93f641229b292abfd6fea871422dce121612511c17ae8047522be6d65c1a2666cabb396c79549816a3612338 - languageName: node - linkType: hard - -"websocket-driver@npm:>=0.5.1, websocket-driver@npm:^0.7.4": - version: 0.7.4 - resolution: "websocket-driver@npm:0.7.4" - dependencies: - http-parser-js: ">=0.5.1" - safe-buffer: ">=5.1.0" - websocket-extensions: ">=0.1.1" - checksum: fffe5a33fe8eceafd21d2a065661d09e38b93877eae1de6ab5d7d2734c6ed243973beae10ae48c6613cfd675f200e5a058d1e3531bc9e6c5d4f1396ff1f0bfb9 - languageName: node - linkType: hard - -"websocket-extensions@npm:>=0.1.1": - version: 0.1.4 - resolution: "websocket-extensions@npm:0.1.4" - checksum: 5976835e68a86afcd64c7a9762ed85f2f27d48c488c707e67ba85e717b90fa066b98ab33c744d64255c9622d349eedecf728e65a5f921da71b58d0e9591b9038 - languageName: node - linkType: hard - -"whatwg-url@npm:^5.0.0": - version: 5.0.0 - resolution: "whatwg-url@npm:5.0.0" - dependencies: - tr46: ~0.0.3 - webidl-conversions: ^3.0.0 - checksum: b8daed4ad3356cc4899048a15b2c143a9aed0dfae1f611ebd55073310c7b910f522ad75d727346ad64203d7e6c79ef25eafd465f4d12775ca44b90fa82ed9e2c - languageName: node - linkType: hard - -"which@npm:^1.3.1": - version: 1.3.1 - resolution: "which@npm:1.3.1" - dependencies: - isexe: ^2.0.0 - bin: - which: ./bin/which - checksum: f2e185c6242244b8426c9df1510e86629192d93c1a986a7d2a591f2c24869e7ffd03d6dac07ca863b2e4c06f59a4cc9916c585b72ee9fa1aa609d0124df15e04 - languageName: node - linkType: hard - -"which@npm:^2.0.1, which@npm:^2.0.2": - version: 2.0.2 - resolution: "which@npm:2.0.2" - dependencies: - isexe: ^2.0.0 - bin: - node-which: ./bin/node-which - checksum: 1a5c563d3c1b52d5f893c8b61afe11abc3bab4afac492e8da5bde69d550de701cf9806235f20a47b5c8fa8a1d6a9135841de2596535e998027a54589000e66d1 - languageName: node - linkType: hard - -"wide-align@npm:^1.1.5": - version: 1.1.5 - resolution: "wide-align@npm:1.1.5" - dependencies: - string-width: ^1.0.2 || 2 || 3 || 4 - checksum: d5fc37cd561f9daee3c80e03b92ed3e84d80dde3365a8767263d03dacfc8fa06b065ffe1df00d8c2a09f731482fcacae745abfbb478d4af36d0a891fad4834d3 - languageName: node - linkType: hard - -"widest-line@npm:^3.1.0": - version: 3.1.0 - resolution: "widest-line@npm:3.1.0" - dependencies: - string-width: ^4.0.0 - checksum: 03db6c9d0af9329c37d74378ff1d91972b12553c7d72a6f4e8525fe61563fa7adb0b9d6e8d546b7e059688712ea874edd5ded475999abdeedf708de9849310e0 - languageName: node - linkType: hard - -"widest-line@npm:^4.0.1": - version: 4.0.1 - resolution: "widest-line@npm:4.0.1" - dependencies: - string-width: ^5.0.1 - checksum: 64c48cf27171221be5f86fc54b94dd29879165bdff1a7aa92dde723d9a8c99fb108312768a5d62c8c2b80b701fa27bbd36a1ddc58367585cd45c0db7920a0cba - languageName: node - linkType: hard - -"wildcard@npm:^2.0.0": - version: 2.0.0 - resolution: "wildcard@npm:2.0.0" - checksum: 1f4fe4c03dfc492777c60f795bbba597ac78794f1b650d68f398fbee9adb765367c516ebd4220889b6a81e9626e7228bbe0d66237abb311573c2ee1f4902a5ad - languageName: node - linkType: hard - -"wrap-ansi@npm:^7.0.0": - version: 7.0.0 - resolution: "wrap-ansi@npm:7.0.0" - dependencies: - ansi-styles: ^4.0.0 - string-width: ^4.1.0 - strip-ansi: ^6.0.0 - checksum: a790b846fd4505de962ba728a21aaeda189b8ee1c7568ca5e817d85930e06ef8d1689d49dbf0e881e8ef84436af3a88bc49115c2e2788d841ff1b8b5b51a608b - languageName: node - linkType: hard - -"wrap-ansi@npm:^8.0.1": - version: 8.0.1 - resolution: "wrap-ansi@npm:8.0.1" - dependencies: - ansi-styles: ^6.1.0 - string-width: ^5.0.1 - strip-ansi: ^7.0.1 - checksum: 5d7816e64f75544e466d58a736cb96ca47abad4ad57f48765b9735ba5601221013a37f436662340ca159208b011121e4e030de5a17180c76202e35157195a71e - languageName: node - linkType: hard - -"wrappy@npm:1": - version: 1.0.2 - resolution: "wrappy@npm:1.0.2" - checksum: 159da4805f7e84a3d003d8841557196034155008f817172d4e986bd591f74aa82aa7db55929a54222309e01079a65a92a9e6414da5a6aa4b01ee44a511ac3ee5 - languageName: node - linkType: hard - -"write-file-atomic@npm:^3.0.0": - version: 3.0.3 - resolution: "write-file-atomic@npm:3.0.3" - dependencies: - imurmurhash: ^0.1.4 - is-typedarray: ^1.0.0 - signal-exit: ^3.0.2 - typedarray-to-buffer: ^3.1.5 - checksum: c55b24617cc61c3a4379f425fc62a386cc51916a9b9d993f39734d005a09d5a4bb748bc251f1304e7abd71d0a26d339996c275955f527a131b1dcded67878280 - languageName: node - linkType: hard - -"ws@npm:^7.3.1": - version: 7.5.9 - resolution: "ws@npm:7.5.9" - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: ^5.0.2 - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true - checksum: c3c100a181b731f40b7f2fddf004aa023f79d64f489706a28bc23ff88e87f6a64b3c6651fbec3a84a53960b75159574d7a7385709847a62ddb7ad6af76f49138 - languageName: node - linkType: hard - -"ws@npm:^8.4.2": - version: 8.12.0 - resolution: "ws@npm:8.12.0" - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: ">=5.0.2" - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true - checksum: 818ff3f8749c172a95a114cceb8b89cedd27e43a82d65c7ad0f7882b1e96a2ee6709e3746a903c3fa88beec0c8bae9a9fcd75f20858b32a166dfb7519316a5d7 - languageName: node - linkType: hard - -"xdg-basedir@npm:^4.0.0": - version: 4.0.0 - resolution: "xdg-basedir@npm:4.0.0" - checksum: 0073d5b59a37224ed3a5ac0dd2ec1d36f09c49f0afd769008a6e9cd3cd666bd6317bd1c7ce2eab47e1de285a286bad11a9b038196413cd753b79770361855f3c - languageName: node - linkType: hard - -"xml-js@npm:^1.6.11": - version: 1.6.11 - resolution: "xml-js@npm:1.6.11" - dependencies: - sax: ^1.2.4 - bin: - xml-js: ./bin/cli.js - checksum: 24a55479919413687105fc2d8ab05e613ebedb1c1bc12258a108e07cff5ef793779297db854800a4edf0281303ebd1f177bc4a588442f5344e62b3dddda26c2b - languageName: node - linkType: hard - -"xtend@npm:^4.0.0, xtend@npm:^4.0.1": - version: 4.0.2 - resolution: "xtend@npm:4.0.2" - checksum: ac5dfa738b21f6e7f0dd6e65e1b3155036d68104e67e5d5d1bde74892e327d7e5636a076f625599dc394330a731861e87343ff184b0047fef1360a7ec0a5a36a - languageName: node - linkType: hard - -"yallist@npm:^3.0.2": - version: 3.1.1 - resolution: "yallist@npm:3.1.1" - checksum: 48f7bb00dc19fc635a13a39fe547f527b10c9290e7b3e836b9a8f1ca04d4d342e85714416b3c2ab74949c9c66f9cebb0473e6bc353b79035356103b47641285d - languageName: node - linkType: hard - -"yallist@npm:^4.0.0": - version: 4.0.0 - resolution: "yallist@npm:4.0.0" - checksum: 343617202af32df2a15a3be36a5a8c0c8545208f3d3dfbc6bb7c3e3b7e8c6f8e7485432e4f3b88da3031a6e20afa7c711eded32ddfb122896ac5d914e75848d5 - languageName: node - linkType: hard - -"yaml@npm:^1.10.0, yaml@npm:^1.10.2, yaml@npm:^1.7.2": - version: 1.10.2 - resolution: "yaml@npm:1.10.2" - checksum: ce4ada136e8a78a0b08dc10b4b900936912d15de59905b2bf415b4d33c63df1d555d23acb2a41b23cf9fb5da41c256441afca3d6509de7247daa062fd2c5ea5f - languageName: node - linkType: hard - -"yocto-queue@npm:^0.1.0": - version: 0.1.0 - resolution: "yocto-queue@npm:0.1.0" - checksum: f77b3d8d00310def622123df93d4ee654fc6a0096182af8bd60679ddcdfb3474c56c6c7190817c84a2785648cdee9d721c0154eb45698c62176c322fb46fc700 - languageName: node - linkType: hard - -"zwitch@npm:^1.0.0": - version: 1.0.5 - resolution: "zwitch@npm:1.0.5" - checksum: 28a1bebacab3bc60150b6b0a2ba1db2ad033f068e81f05e4892ec0ea13ae63f5d140a1d692062ac0657840c8da076f35b94433b5f1c329d7803b247de80f064a - languageName: node - linkType: hard